Эндрю Нг Машинное обучение: обнаружение аномалий и совместная фильтрация

машинное обучение Python алгоритм
Эндрю Нг Машинное обучение: обнаружение аномалий и совместная фильтрация

Эндрю Нг Машинное обучение: обучение без учителя | Обнаружение аномалий и совместная фильтрация

Это последний урок машинного обучения Эндрю Нг, Содержание этого исследования — общее применение машинного обучения, обнаружения аномалий и совместной фильтрации. Обнаружение аномалий, представленное в курсе, в основном основано нанормальное распределение, используемый для обнаружения данных, которые отклоняются от нормального значения. в то время как совместная фильтрацияРекомендуемая системаЧасть , которая использует рейтинги существующих пользователей, чтобы рекомендовать вам продукты, видео и т. д.

нажмитеВидео курсаВы сможете изучать курсы Нг без перерыва, код Python для курсовой работы выложен на Github, нажмитекод курсаВы можете перейти на Github для просмотра (если у вас нет доступа к Github, вы можете нажатьCodingПроверьте ), ошибки и улучшения в коде приветствуются.

Далее идет восьмая неделя курса машинного обучения NG.

аномальное обнаружение

Обнаружение аномалий обычно используется в наборе данных, содержащем нормальные и аномальные данные, а количество аномальных выборок намного меньше, чем количество нормальных, что делает невозможным извлечение эффективных признаков из аномальных данных. Следовательно, аномальные данные могут быть идентифицированы только путем изучения распределения нормальных данных. В частности, мы изучаем вероятностную модель из данных п ( Икс )" роль="презентация">p(x), и проходит порог ϵ" роль="презентация">\epsilonчтобы определить, являются ли данные аномальными. Интуитивно понятно, что, хотя нормальные данные отклоняются из-за ошибок и других причин, они в основном все еще находятся в пределах области, в то время как аномальные данные будут находиться далеко от этой области (как показано на рисунке ниже, красный кружок можно рассматривать как как выброс).

алгоритм

При обнаружении аномалий предполагается, что признаки независимы друг от друга и подчиняются нормальному распределению. Икс Дж ∼ Н ( мю Дж , дельта Дж 2 )" роль="презентация">x_j \sim N(\mu_j,\delta_j^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

Затем мы просто вычисляем по данным мю я "роль="презентация">\mu_iи дельта я "роль="презентация">\delta_iвы можете получить п ( Икс )" роль="презентация">p(x), поэтому имеем следующий алгоритм:

  1. Выберите функции, которые помогут отличить аномальные данные Икс я "роль="презентация">x_i
  2. Рассчитать отдельно мю 1 , . . . , мю н , дельта 1 2 , . . . , дельта н 2 "роль="презентация">\mu_1,...,\mu_n,\delta_1^2,...,\delta_n^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
  3. Для данных, которые должны обнаруживать аномалии х" роль="презентация">xрассчитать п ( Икс )" роль="презентация">p(x),если п ( Икс ) p(x) < \epsilonЭто оценивается как ненормальное.

Алгоритм эффективен в вычислительном отношении, когда имеется много признаков, и в целом можно получить лучшие результаты, даже если признаки не являются независимыми. Если признаков мало и они связаны друг с другом, то можно использоватьмногомерное нормальное распределениекак модель, в это время п ( Икс )" роль="презентация">p(x)за:

п ( Икс ) знак равно 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−μ)

в формуле Σ" роль="презентация">\Sigmaзаковариационная матрица, упомянутые в предыдущих заметках к курсу.

ϵ" роль="презентация">\epsilonвыберите

Поскольку наши данные имеюткосой класспроблема, поэтому вам нужно использоватьточностьиотзыватьСвязывание Ф 1 "роль="презентация">F_1index для оценки модели и выберите Ф 1 "роль="презентация">F_1При взятии максимума соответствующее ϵ" роль="презентация">\epsilonкак порог.

Совместная фильтрация

Предположим, у нас есть н м "роль="презентация">n_mвидео и есть н ты "роль="презентация">n_uЧто люди говорят о некоторых из этих видео у ( я , Дж ) "роль="презентация">y^{(i,j)}, .

Некоторые из этих видео не оцениваются пользователями, и мы надеемся, что сможем оценить эти оценки и рекомендовать пользователям контент с высоким рейтингом. Пользователь j" роль="презентация">jты дал я" роль="презентация">iФильмы оцениваются как р ( я , Дж )" роль="презентация">R(i,j). Предположим, что у каждого фильма есть вектор признаков Икс ( я ) "роль="презентация">x^{(i)}, для пользователя ( 1 )" роль="презентация">(1), нам нравитсяЛинейная регрессиявыучить час θ ( Икс ) знак равно θ 0 ( 1 ) + θ 1 ( 1 ) Икс 1 + θ 2 ( 1 ) Икс 2 + ⋯ + θ н ( 1 ) Икс н "роль="презентация">h_\theta(x)=\theta_0^{(1)}+\theta_1^{(1)}x_1+\theta_2^{(1)}x_2+\dots+\theta_n^{(1)}x_nчтобы получить рейтинги, которые пользователи не оценили. Видно, что для всех пользователей таблица рейтинга может быть выражена как произведение матрицы признаков фильма и матрицы параметров пользователя:

Икс знак равно [ — ( Икс ( 1 ) ) Т — — ( Икс ( 2 ) ) Т — ⋮ — ( Икс ( н м ) ) Т — ] , Θ знак равно [ — ( θ ( 1 ) ) Т — — ( θ ( 2 ) ) Т — ⋮ — ( θ ( н ты ) ) Т — ] " role="presentation">X=⎡⎢ ⎢ ⎢ ⎢ ⎢⎣—(x(1))T—(x(2))T—⋮—(x(nm))T—⎤⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ,Θ=⎡⎢ ⎢ ⎢ ⎢ ⎢⎣—(θ(1))T——(θ(2))T—⋮—(θ(nu))T—⎤⎥ ⎥ ⎥ ⎥ ⎥⎦X=[— ( x(1))T——(x(2))T—⋮—(x(nm))T—],Θ=[—(θ(1))T—(θ(2))T— ⋮— (θ(nu))T—]

прогнозируемый счет п р е г я с а т е г знак равно Икс Θ Т "роль="презентация">Predicated = X \Theta^T, стоит отметить, что Икс , Θ" роль="презентация">X, \ThetaОба неизвестны, и все они являются переменными, которые необходимо изучить.

функция стоимости

После определения модели обучения следующим шагом является установкафункция стоимости. в этот разфункция стоимостиВ основном то же самое, что и раньше, разница заключается в вычислении градиента Икс , Θ" роль="презентация">X, \ThetaВсе нужно. приведен непосредственно нижефункция стоимости:

Дж ( Икс ( 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 )

Как и в предыдущем алгоритме обучения, нам просто нужно реализоватьфункция стоимостии рассчитайте значение градиента, вызовите функцию минимизации, чтобы получить оптимальное решение. имеют Икс , Θ" роль="презентация">X, \ThetaЗначение , мы можем получить прогнозируемый балл, и мы можем рекомендовать его в соответствии с баллом.

Краткое содержание курса

Курс Эндрю Нг по машинному обучению хорош для базового понимания машинного обучения. Но содержание курса старше, вродеглубокое обучение,обучение с подкреплениемСодержание не раскрывается, перспектива вероятности отсутствует, а инженерный аспект упоминается лишь немного, а это как раз то, что нужно изучать в будущем.
когда направляешься кморе машинного обученияКогда я чувствую, что важно иметь в голове направление, каким бы нереалистичным оно ни было.

Итак~, на восьмой неделе все, спасибо за терпение.


hertzcat

2018-07-07