Книги онлайн » Книги » Разная литература » Зарубежная образовательная литература » Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун
1 ... 35 36 37 38 39 ... 82 ВПЕРЕД
Перейти на страницу:
самому дьяволу!

Вскоре Джеффри столкнулся с трудностями, связанными с машинами Больцмана. Поэтому он в дальнейшем сосредоточился на идее Дэйва Рамелхарта 1982 г. об обратном распространении, которую ему и удалось воплотить в жизнь. Это случилось весной 1985 г., сразу же после Лез-Уш. Вскоре я встретился с Джеффри в Париже, где он поделился со мной своими результатами. Я уже начал менять свою программу HLM, чтобы учесть обратное распространение, но у меня не было времени протестировать ее, пока Джеффри не закончил свою работу. Поэтому в сентябре 1985 г. он опубликовал технический отчет с Рамелхартом и Уильямсом, а затем вставил его как главу в книгу, опубликованную в 1986 г.[54]

Там он процитировал и мою статью о методе HLM. Он – Великий Маниту, я – маленькое перышко! Я упустил возможность предоставить ему новую версию, но все равно был счастлив.

Грааль… и немного математики

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

Чтобы объяснить это, необходимо рассматривать линейные и нелинейные функции по отдельности.

Математическое понятие, на котором основано обратное распространение, есть не что иное, как правило вывода сложных функций. Как известно из школьной программы, сложная функция – это применение одной функции к выходу другой функции. К x применяется сначала функция f, а затем – к ее выходу – функция h. Почему это важно? Поскольку два последовательных слоя, линейный и нелинейный, можно рассматривать как применение двух функций, например, f для первой и h для второй. Если есть несколько слоев, будут и несколько вложений функций. В результате уравнения упрощаются. Вот в чем прелесть математики!

Рис. 5.5. Обратное распространение градиента через передаточную функцию

Производная стоимости по отношению к входу передаточной функции равна производной стоимости по отношению к выходу передаточной функции, умноженной на производную передаточной функции: dc_ds = dc_dz * hʼ(s).

Представьте себе сложную сеть из нескольких слоев, природа которых нам неизвестна (рис. 5.5). На выходе этой сети стоимость измеряет разницу между выходом сети и желаемым выходом. Рассмотрим конкретную единицу в этой сети. Она вычисляет взвешенную сумму своих входов и передает эту сумму s через передаточную функцию h и выдает выход z = h(s). Если бы мы знали производную функции стоимости по отношению к выходу передаточной функции dc_dz (то есть отношение dc/dz между изменением dc стоимости c в результате изменения dz к z), то это означало бы, что если z изменится на незначительную величину dz, стоимость c изменится на незначительную величину dc = dz * dc_dz.

Какова будет производная c по отношению к s, которую мы обозначим как dc_ds?

Если мы изменим s на незначительную величину ds, выходной сигнал передаточной функции изменится на незначительную величину dz = ds * hʼ(s), где hʼ(s) – производная h в точке s. Значит, стоимость изменится на сумму dc = ds * hʼ(s) * dc_dz. Другими словами:

dc_ds = hʼ (s) * dc_dz.

Рис. 5.6. Обратное распространение градиента через взвешенную сумму

Производная стоимости по отношению к выходу z единицы представляет собой сумму производных стоимости по отношению к последующим единицам, взвешенных по весам, соединяющим рассматриваемую единицу с этими последующими единицами:

dc_dz = w[0] * dc_ds[0] + w[1] * dc_ds[1] + w[2] * dc_ds[2]

Итак, если мы знаем производную c по отношению к z, мы можем вычислить производную c по отношению к s, умножив на производную h в точке s. Таким образом мы возвращаем градиенты через передаточную функцию.

Теперь разберемся с обратным распространением через взвешенную сумму. Рассмотрим выход единицы z, который направляется к нескольким нижестоящим единицам для вычисления взвешенных сумм. Этот выходной сигнал z направляется к нижестоящим единицам с помощью весов w[0], w[1], w[2], которые используются для вычисления взвешенных сумм s[0], s[1], s[2], как показано на рисунке 5.6.

Предположим, мы знаем производные c по отношению к нижележащим единицам dc_ds[0], dc_ds[1], dc_ds[2]

Если мы изменим z на незначительную величину, взвешенная сумма s[0] изменится на w[0] * dz.

Следовательно, стоимость изменится на dz * w[0] * dc_ds[0].

Но изменение dz также вызовет две цепочки изменений.

Первая, где s[1] изменяется на значение w[1] * dz, что само по себе вызывает изменение стоимости значения dz * w[1] * dc_ds[1].

Вторая, где s[2] изменяется на значение w[2] * dz, вызывая изменение стоимости dz * w[2] * dc_ds[2].

В итоге стоимость будет изменена на сумму всех этих помех:

dc = dz * w[0] * dc_ds[0] + dz * w[1] * dc_ds[1] + dz * w[2] * dc_ds[2]

Это – способ доказать, что производная dc/dz равна:

dc_dz = w[0] * dc_ds[0] + w[1] * dc_ds[1] + w[2] * dc_ds[2]

Это и есть формула обратного распространения градиента через линейный слой (вычисление взвешенных сумм).

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

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

1. Cлой передаточных функций:

a) распространение с прямой связью

z[i] = h(s[i]);

b) обратное распространение

dc_ds[i] = hʼ(s[i]) * dc_dz[i].

2. Cлой взвешенных сумм:

a) распространение с прямой связью

b) обратное распространение:

Нам остается теперь вычислить производные стоимости по сравнению с весами. Когда мы изменяем вес w[i, j] на незначительную величину dw[i, j], взвешенная сумма, в которую он вносится, изменится на

dw[i, j] * z[j]

Стоимость изменится на

dc = dw[i, j] * z[j] * dc_ds[i].

Следовательно, градиент стоимости относительно веса w[i, j] будет равен:

dc_dw[i, j] = z[j] * dc_ds[i]

Мы располагаем тремя формулами обратного распространения градиента в классических многослойных нейронных сетях!

Используя производную стоимости по отношению к весам, мы можем

1 ... 35 36 37 38 39 ... 82 ВПЕРЕД
Перейти на страницу:
В нашей электронной библиотеке 📖 можно онлайн читать бесплатно книгу Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун. Жанр: Зарубежная образовательная литература / Науки: разное. Электронная библиотека онлайн дает возможность читать всю книгу целиком без регистрации и СМС на нашем литературном сайте kniga-online.com. Так же в разделе жанры Вы найдете для себя любимую 👍 книгу, которую сможете читать бесплатно с телефона📱 или ПК💻 онлайн. Все книги представлены в полном размере. Каждый день в нашей электронной библиотеке Кniga-online.com появляются новые книги в полном объеме без сокращений. На данный момент на сайте доступно более 100000 книг, которые Вы сможете читать онлайн и без регистрации.
Комментариев (0)