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

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

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

Мы учились на прошлой неделелогистическая регрессия, и используйте его для решения простой задачи классификации 0/1. На этой неделе мы впервые попробуем использоватьлогистическая регрессиярешатьПроблема мультиклассификации(Распознавание рукописных символов). Благодаря этой проблеме мы узнали, что, когда нам нужно решить задачи нелинейной классификации с большим количеством признаков (например, задачи компьютерного зрения), мы изначально предполагали, что метод признаков высокого порядка сделает количество признаков чрезвычайно большим, поэтому ведет к новым методам.Нейронные сети.

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

Вот заметки с третьей недели курса машинного обучения Нг.

Проблема мультиклассификации

мы использовалилогистическая регрессияРешена проблема классификации 0/1, на этот раз новая проблема — распознавание рукописных символов. Существует коллекция изображений рукописных символов, каждое изображение представляет собой написанное от руки число от 0 до 9, для каждого изображения рукописного символа мы хотим вывести, какое это число. (Изображение ниже представляет собой случайный выбор из 100 изображений)

Для этой проблемы наше решение состоит в том, чтобы обучить 10 классификаторов 0/1, чтобы определить вероятность того, что изображение принадлежит этой категории (логистическая регрессияoutput ), а затем выберите наибольший из этих 10 результатов в качестве результата. Для данных в задании (набор данных такой же, как и набор для обучения) этот классификатор может достигать точности 95%. Чтобы еще больше повысить точность, нам нужно сопоставить функции с более высоким порядком, например, 6 раз в предыдущем задании. В этом случае их будет столько, сколько342505341313200особенность. Поэтому, чтобы лучше решать подобные проблемы, нам нужно внедрять новые методы.

Нейронные сети

Нейронная сеть — это очень старый алгоритм, цель которого — имитировать алгоритм работы мозга для создания интеллектуальных машин. Причина этой идеи в том, что исследования в области нейробиологии показывают, что мозг не обрабатывает разные сигналы по-разному (разные алгоритмы), а использует один и тот же для ответа на разные сигналы (зрительные, слуховые и т. д.). Это сильно подстегнуло энтузиазм исследователей по поиску такого алгоритма, хотя на некоторое время он замолчал из-за различных технических проблем (отсутствие эффективного алгоритма обучения и аппаратного ограничения скорости), но, наконец, с помощьюобратное распространение,общий вес,Ускорение графического процессораПодождите, пока технология воспроизведет блеск. И стать одним из самых эффективных методов в современной технологии машинного обучения.

Математическое представление

мы ставим синглнейроныабстракция каклогическая единица,x_0,x_1,x_2,x_3задендритывходящий сигнал (x_0уклон, не показанный на рисунке), активироватьнейроныпозже изаксонвыводh_\theta(x).

логическая единицаЭто может быть выражено в математической нотации следующим образом:

hθ(x)=11+e−θTx x=[x0x1x2x3] θ=[θ0θ1θ2θ3]

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

На картинке выше есть слойскрытый слой, входной блок нейронной сетиx_0,x_1,x_2,x_3передать значениескрытый слой(Входящие на входную ячейкумассаэто отличается). потомскрытый слойЗатем выходное значение передается выходному слою.нейроны. Выражаясь математическим языком, это:

[а(2)1а(2)2а(2)3]=g([Θ(1)10Θ(1)11Θ(1)12Θ(1)13x3)Θ(1)20Θ(1)21Θ(1)22Θ (1) 23Θ(1)30Θ(1)31Θ(1)32Θ(1)33x3)][x0x1x2x3])hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ (2)11а(2)1+0(2)12а(2)2+0(2)13а(2)3)

в формулеg(z)зафункция активации, это,логистическая регрессияупоминается вSigmoidфункция.a_0^{(2)}=1за предвзятость.h_\Theta(x)Поскольку выходной слой имеет только один элемент, он не записывается в матричной форме для эстетики. На рисунке только один выходной слойлогическая единица, но на самом деле их может быть больше одного.

способность выражения

контролируемое обучениеЦель состоит в том, чтобы использовать алгоритм для получения проблемыфункция предсказания, такфункция предсказанияЧем больше функций можно выразить, тем шире может быть приложение. ТакНейронные сетиКак твоя выразительная способность? Эндрю Нг показывает, как использоватьлогическая единицасформировать цифровую цепьлогический вентиль. И мы знаемлогический вентильЭто основа компьютерных вычислений, и их комбинация может выражать все функции, которые можно вычислить, поэтому, исходя из определенной интуиции,Нейронные сетиЕсть так много вещей, которые можно выразить.
Вот очень рекомендуюНаглядное доказательство того, что нейронные сети могут соответствовать произвольным функциям(извините~, в Главе 4 есть взаимодействие, но я не смог найти хороший перевод), в статье вы можете настроить различные параметры и чувствовать себя в интерактивном режимеНейронные сетивыразительная способность.

распознавание рукописных символов

Класс этой недели, наконец, возвращается в нашПроблема мультиклассификациизадачу, мы строимНейронные сетивыполнить задание по распознаванию рукописных символов. Вход в сеть представляет собой изображение размером 20x20, поэтому входной слой имеет 401 единицу. Нам нужно классифицировать 10 чисел от 0 до 9, поэтому выходной слой имеет 10 единиц, первыйiединицы представляют картину какi\ mod\ 10Вероятность (смещение не показано на рисунке).

Скрытый слой, данный в задании, равен 26. единицы, а матрица весов перед слоем и слой заданы, мы передаемНейронные сетиматематическое выражение для расчета его выхода. В итоге мы получили точность распознавания 97%. ВидетьНейронные сетиУдивительно правильно классифицировать изображения.

На следующем уроке мы узнаем, как тренироватьНейронные сети, давая своефункция стоимостии использоватьобратное распространениеалгоритм вычисления градиента.

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


hertzcat

2018-04-07