Эндрю Нг Машинное обучение: обучение без учителя | Обнаружение аномалий и совместная фильтрация
Это последний урок машинного обучения Эндрю Нг, Содержание этого исследования — общее применение машинного обучения, обнаружения аномалий и совместной фильтрации. Обнаружение аномалий, представленное в курсе, в основном основано нанормальное распределение, используемый для обнаружения данных, которые отклоняются от нормального значения. в то время как совместная фильтрацияРекомендуемая системаЧасть , которая использует рейтинги существующих пользователей, чтобы рекомендовать вам продукты, видео и т. д.
нажмитеВидео курсаВы сможете изучать курсы Нг без перерыва, код Python для курсовой работы выложен на Github, нажмитекод курсаВы можете перейти на Github для просмотра (если у вас нет доступа к Github, вы можете нажатьCodingПроверьте ), ошибки и улучшения в коде приветствуются.
Далее идет восьмая неделя курса машинного обучения NG.
аномальное обнаружение
Обнаружение аномалий обычно используется в наборе данных, содержащем нормальные и аномальные данные, а количество аномальных выборок намного меньше, чем количество нормальных, что делает невозможным извлечение эффективных признаков из аномальных данных. Следовательно, аномальные данные могут быть идентифицированы только путем изучения распределения нормальных данных. В частности, мы изучаем вероятностную модель из данных
п
(
Икс
)" роль="презентация">, и проходит порог
ϵ" роль="презентация">чтобы определить, являются ли данные аномальными. Интуитивно понятно, что, хотя нормальные данные отклоняются из-за ошибок и других причин, они в основном все еще находятся в пределах области, в то время как аномальные данные будут находиться далеко от этой области (как показано на рисунке ниже, красный кружок можно рассматривать как как выброс).
алгоритм
При обнаружении аномалий предполагается, что признаки независимы друг от друга и подчиняются нормальному распределению. Икс Дж ∼ Н ( мю Дж , дельта Дж 2 )" роль="презентация">,так:
п ( Икс ) знак равно ∏ Дж знак равно 1 н п ( Икс Дж ; мю Дж , дельта Дж 2 ) знак равно ∏ Дж знак равно 1 н 1 2 число Пи дельта Дж е − ( Икс Дж − мю Дж ) 2 2 дельта Дж 2 " role="презентация">p(x)=n∏j=1p(xj;µj,δ2j)=n∏j=11√2πδje−(xj−µj)22δ2jp(x)=∏j=1np(xj; µj,δj2)=∏j=1n12πδje−(xj−µj)22δj2Затем мы просто вычисляем по данным мю я "роль="презентация">и дельта я "роль="презентация">вы можете получить п ( Икс )" роль="презентация">, поэтому имеем следующий алгоритм:
- Выберите функции, которые помогут отличить аномальные данные Икс я "роль="презентация">
- Рассчитать отдельно мю 1 , . . . , мю н , дельта 1 2 , . . . , дельта н 2 "роль="презентация">: мю Дж знак равно 1 м ∑ я знак равно 1 м Икс Дж ( я ) дельта Дж 2 знак равно 1 м ∑ я знак равно 1 м ( Икс Дж ( я ) − мю Дж ) 2 " роль="презентация">µj=1мм∑i=1x(i)jδ2j=1мм∑i=1(x(i)j−µj)2µj=1m∑i=1mxj(i)δj2=1m∑i=1m (xj(i)−µj)2
- Для данных, которые должны обнаруживать аномалии х" роль="презентация">рассчитать п ( Икс )" роль="презентация">,если п ( Икс ) Это оценивается как ненормальное.
Алгоритм эффективен в вычислительном отношении, когда имеется много признаков, и в целом можно получить лучшие результаты, даже если признаки не являются независимыми. Если признаков мало и они связаны друг с другом, то можно использоватьмногомерное нормальное распределениекак модель, в это время п ( Икс )" роль="презентация">за:
п ( Икс ) знак равно 1 ( 2 число Пи ) к | Σ | е − 1 2 ( Икс − мю ) Т Σ − 1 ( Икс − мю ) " role="презентация">p(x)=1√(2π)k|Σ|e−12(x−μ)TΣ−1(x−μ)p(x)=1(2π)k|Σ| e−12(x−μ)TΣ−1(x−μ)в формуле Σ" роль="презентация">заковариационная матрица, упомянутые в предыдущих заметках к курсу.
ϵ" роль="презентация">выберите
Поскольку наши данные имеюткосой класспроблема, поэтому вам нужно использоватьточностьиотзыватьСвязывание Ф 1 "роль="презентация">index для оценки модели и выберите Ф 1 "роль="презентация">При взятии максимума соответствующее ϵ" роль="презентация">как порог.
Совместная фильтрация
Предположим, у нас есть
н
м
"роль="презентация">видео и есть
н
ты
"роль="презентация">Что люди говорят о некоторых из этих видео
у
(
я
,
Дж
)
"роль="презентация">, .
Некоторые из этих видео не оцениваются пользователями, и мы надеемся, что сможем оценить эти оценки и рекомендовать пользователям контент с высоким рейтингом. Пользователь
j" роль="презентация">ты дал
я" роль="презентация">Фильмы оцениваются как
р
(
я
,
Дж
)" роль="презентация">. Предположим, что у каждого фильма есть вектор признаков
Икс
(
я
)
"роль="презентация">, для пользователя
(
1
)" роль="презентация">, нам нравитсяЛинейная регрессиявыучить
час
θ
(
Икс
)
знак равно
θ
0
(
1
)
+
θ
1
(
1
)
Икс
1
+
θ
2
(
1
)
Икс
2
+
⋯
+
θ
н
(
1
)
Икс
н
"роль="презентация">чтобы получить рейтинги, которые пользователи не оценили. Видно, что для всех пользователей таблица рейтинга может быть выражена как произведение матрицы признаков фильма и матрицы параметров пользователя:
прогнозируемый счет п р е г я с а т е г знак равно Икс Θ Т "роль="презентация">, стоит отметить, что Икс , Θ" роль="презентация">Оба неизвестны, и все они являются переменными, которые необходимо изучить.
функция стоимости
После определения модели обучения следующим шагом является установкафункция стоимости. в этот разфункция стоимостиВ основном то же самое, что и раньше, разница заключается в вычислении градиента Икс , Θ" роль="презентация">Все нужно. приведен непосредственно нижефункция стоимости:
Дж ( Икс ( 1 ) , . . . , Икс ( н м ) , θ ( 1 ) , . . . , θ ( н ты ) ) знак равно 1 2 ∑ ( я , Дж ) : р ( я , Дж ) знак равно 1 ( ( θ ( Дж ) ) Т Икс ( я ) − у ( я , Дж ) ) 2 + λ 2 ∑ я знак равно 1 н м ∑ к знак равно 1 н ( Икс к ( я ) ) 2 + λ 2 ∑ Дж знак равно 1 н ты ∑ к знак равно 1 н ( θ к ( Дж ) ) 2 " роль = "представление"> J (x (1),..., x (nm), θ (1),..., θ (nu)) = 12 ∑ (i, j): r (i, j)=1((θ(j))Tx(i)−y(i,j))2+λ2∑nmi=1∑nk=1(x(i)k)2+λ2∑nuj=1∑nk =1(θ(j)k)2J(x(1),...,x(nm),θ(1),...,θ(nu))=12∑(i,j):r( i,j)=1((θ(j))Tx(i)−y(i,j))2+λ2∑i=1nm∑k=1n(xk(i))2+λ2∑j=1nu∑ k=1n(θk(j))2Формула градиента может быть получена простым выводом:
∂ Дж ∂ Икс к ( я ) знак равно ∑ Дж : р ( я , Дж ) знак равно 1 ( ( θ ( Дж ) ) Т Икс ( я ) − у ( я , Дж ) ) θ к ( Дж ) + λ Икс к ( я ) ∂ Дж ∂ θ к ( Дж ) знак равно ∑ я : р ( я , Дж ) знак равно 1 ( ( θ ( Дж ) ) Т Икс ( я ) − у ( я , Дж ) ) Икс к ( я ) + λ θ к ( Дж ) " роль = "презентация" > ∂J∂x(i)k=∑j:r(i,j)=1((θ(j))Tx(i)−y(i,j))θ(j) k+λx(i)k∂J∂θ(j)k=∑i:r(i,j)=1((θ(j))Tx(i)−y(i,j))x(i) k+λθ(j)k∂J∂xk(i)=∑j:r(i,j)=1((θ(j))Tx(i)−y(i,j))θk(j)+ λxk(i)∂J∂θk(j)=∑i:r(i,j)=1((θ(j))Tx(i)−y(i,j))xk(i)+λθk(j )Как и в предыдущем алгоритме обучения, нам просто нужно реализоватьфункция стоимостии рассчитайте значение градиента, вызовите функцию минимизации, чтобы получить оптимальное решение. имеют Икс , Θ" роль="презентация">Значение , мы можем получить прогнозируемый балл, и мы можем рекомендовать его в соответствии с баллом.
Краткое содержание курса
Курс Эндрю Нг по машинному обучению хорош для базового понимания машинного обучения. Но содержание курса старше, вродеглубокое обучение,обучение с подкреплениемСодержание не раскрывается, перспектива вероятности отсутствует, а инженерный аспект упоминается лишь немного, а это как раз то, что нужно изучать в будущем.
когда направляешься кморе машинного обученияКогда я чувствую, что важно иметь в голове направление, каким бы нереалистичным оно ни было.
Итак~, на восьмой неделе все, спасибо за терпение.
hertzcat
2018-07-07