Читаем Нейронный сети. Эволюция полностью

Для понимания как мы будем обновлять наши коэффициенты (делать шаги в нужном направлении), прибегнем к помощи так уже нам хорошо знакомой – иллюстрации. Напомню, величина шага зависит от крутизны наклона прямой (tg).       А значит величина, на которую мы обновляем наши веса, в соответствии со своим входом, и будет величиной производной по функции ошибки:




Вот теперь иллюстрируем:



Из графика видно, что для того чтобы обновить вес в большую сторону, до значения (w2), нужно к старому значению (w1) прибавить дельту (w), откуда: (w2 = =w1+w). Приравняв (w) к производной ошибки (величину которой уже знаем), мы спускаемся на эту величину в сторону уменьшения ошибки.

Так же замечаем, что (E2 – E1 = -E) и (w2 w1 = w), откуда делаем вывод:

w = -E/w

Ничего не напоминает? Это почти то же, что и дельта линейного классификатора (А = E/х), подтверждение того что наша эволюция прошла с поэтапным улучшением математического моделирования. Таким же образом, как и с обновлением коэффициента (А = А+А), линейного классификатора, обновляем весовые коэффициенты:

новыйwij= старый wij-(E/w)

Знак минус, для того чтобы обновить вес в большую сторону, для уменьшения ошибки. На примере графика – от w1 до w2.

В общем виде выражение записывается как:

новыйwij= старый wijdE/dwij

Еще одно подтверждение, постепенного, на основе старого аппарата, хода эволюции, в сторону улучшения классификации искусственного нейрона.

Теперь, зайдем с другой стороны функции ошибки:



Снова замечаем, что (E2 – E1 = E) и (w2 w1 = w), откуда делаем вывод:

w = E/w

В этом случае, для обновления весового коэффициента, в сторону снижения функции ошибки, а значит до значения находящееся левее (w1), необходимо от значения (w1) вычесть дельту (w):

новыйwij= старый wij- E/w

Получается, что независимо от того, какого знака производная ошибки от весового коэффициента по входу, вычитая из старого значения – значение этой производной, мы движемся в сторону уменьшения функции ошибки. Откуда можно сделать вывод, что последнее выражение, общее для всех возможных случаев обновления градиента.

Запишем еще раз, обновление весовых коэффициентов в общем виде:

новыйwij= старый wijdE/dwij

Но мы забыли еще об одной важной особенности… Сглаживания! Без сглаживания величины дельты обновления, наши шаги будут слишком большие. Мы подобно кенгуру, будем прыгать на большие расстояния и можем перескочить минимум ошибки! Используем прошлый опыт, чтоб устранить этот недочёт.

      Вспоминаем старое выражение при нахождении сглаженного значения дельты линейного классификатора: А = L*(Е/х). Где (L) – скорость обучения, необходимая для того, чтобы мы делали спуск, постепенно, небольшими шашками.

Ну и наконец, давайте запишем окончательный вариант выражения при обновлении весовых коэффициентов:

новыйwij= старый wijL*(dE/dwij)

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

Ложный минимум

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



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





Поздравляю! Мы прошли самую основу в теории нейронных сетей – метод градиентного спуска. Освоив этот материал, в дальнейшем, изучение теории искусственных нейронных сетей, не будет представлять для вас значимого труда.

Как работает эволюционировавший нейрон

Ну вот и настало время проверить практически, все наши умозаключения, касающиеся работы нашего искусственного нейрона, после первой эволюции. Для этого прибегнем к помощи Python, но сначала покажем наш список с данными, с которого мы это всё затеяли:



Если по координатам построить точки на плоскости, то мы заметим, что их значения лежат возле значений графика функции – y = 2x + 2,5.

Программа

import random

# Инициализируем любым числом крутизны наклона прямой w1 = A

w1 = 0.4

w1_vis = w1 # Запоминаем начальное значение крутизны наклона

# Инициализируем параметр w2 = b – отвечающий за точку прохождения прямой через ос Y

w2 = random.uniform(-4, 4)

w2_vis = w2 # Запоминаем начальное значение параметра

# Вывод данных начальной прямой

print('Начальная прямая: ', w1, '* X + ', w2)


# Скорость обучения

lr = 0.001

# Зададим количество эпох

epochs = 3000

# Создадим массив (выборку входных данных) входных данных x1

arr_x1 = [1, 2, 3, 3.5, 4, 6, 7.5, 8.5, 9]


# Значение входных данных второго входа всегда равно 1

x2 = 1

# Создадим массив значений (целевых значений)

Перейти на страницу:

Похожие книги

Чем женщина отличается от человека
Чем женщина отличается от человека

Я – враг народа.Не всего, правда, а примерно половины. Точнее, 53-х процентов – столько в народе женщин.О том, что я враг женского народа, я узнал совершенно случайно – наткнулся в интернете на статью одной возмущенной феминистки. Эта дама (кандидат филологических наук, между прочим) написала большой трактат об ужасном вербальном угнетении нами, проклятыми мужчинами, их – нежных, хрупких теток. Мы угнетаем их, помимо всего прочего, еще и посредством средств массовой информации…«Никонов говорит с женщинами языком вражды. Разжигает… Является типичным примером… Обзывается… Надсмехается… Демонизирует женщин… Обвиняет феминизм в том, что тот "покушается на почти подсознательную протипическую систему ценностей…"»Да, вот такой я страшный! Вот такой я ужасный враг феминизма на Земле!

Александр Петрович Никонов

Публицистика / Прочая научная литература / Образование и наука / Документальное
Введение в логику и научный метод
Введение в логику и научный метод

На протяжении десятилетий эта книга служила основным учебником по логике и научному методу в большинстве американских вузов и до сих пор пользуется спросом (последнее переиздание на английском языке увидело свет в 2007 г.). Авторам удалось органично совместить силлогистику Аристотеля с формализованным языком математической логики, а методология познания излагается ими в тесной связи с логикой. Освещаются все стандартные темы, преподаваемые в базовом курсе по логике, при этом их изложение является более подробным, чем в стандартных учебниках. Как синтетический курс логики и научной методологии не имеет аналога среди отечественных учебников.Значительная часть книги посвящена исследованию проблем прикладной логики: экспериментальным исследованиям, индукции, статистическим методам, анализу оценочных суждений.В книге дается анализ предмета логики и природы научного метода, рассмотрение той роли, которую методы логики играют в научном познании, а также критика многих альтернативных подходов к истолкованию логики и науки в целом. В этом отношении она представляет собой самостоятельное философское произведение и будет интересна специалистам в области философии и методологии науки.Для преподавателей логики, философии науки, теории аргументации и концепций современного естествознания, студентов, изучающих логику и методологию науки.

Моррис Коэн , Эрнест Нагель

Философия / Прочая научная литература / Образование и наука