К книге
Рождение разума: Как интеллект зарождается в людях и нейросетяхЧасть III Знание и обучение – все это в связях. Глава 9 Когда мы учимся, мы изменяем связи. Обратное распространение
79%
Часть III Знание и обучение – все это в связях. Глава 9 Когда мы учимся, мы изменяем связи. Обратное распространение
81

Чтобы разобраться в алгоритме обратного распространения, рассмотрим нейронную сеть на рисунке 9.4. У нее один промежуточный скрытый слой из трех элементов. Для удобства связи от скрытого слоя к выходному элементу обозначены заглавной буквой W, а связи от входного слоя к скрытому – строчной w. Именно эти связи нам предстоит настраивать. Это очень простая сеть – особенно в сравнении с сетями из главы 8, где множество скрытых слоев и миллионы элементов. Но ее достаточно, чтобы понять, как обратное распространение обеспечивает обучение. Когда мы подаем сети обучающий пример – скажем, бутылку вина, – сеть получает входные данные через два элемента, обозначенные как I1 и I2. Входной сигнал вызывает активацию (показана как ореол вокруг элементов), которая каскадом распространяется по всей сети. Активация выходного элемента дает прогноз. Как и прежде, этот прогноз сравнивается с правильным ответом, и вычисляется ошибка. Предположим, как и раньше, что наш прогноз оказался заниженным (если бы прогноз был завышенным, логика рассуждений была бы аналогичной).

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

В сетях без скрытого слоя мы могли настраивать только связи между входным и выходным слоями. Что же можно настраивать в нашем случае? Как и прежде, можно корректировать связи, ведущие к выходному элементу. На рисунке 9.4 это веса связей, обозначенные заглавными W: W7, W8, W9.

Рисунок 9.4. Простая нейронная сеть со скрытым слоем. Сеть делает прогноз, затем использует ошибку для изменения силы связей. Обратное распространение ошибки, показанное для части связей, – эффективный способ настройки весов как I1 и I2. Входной сигнал вызывает активацию (показана как ореол вокруг элементов), которая каскадом распространяется по всей сети. Активация выходного элемента дает прогноз. Как и прежде, этот прогноз сравнивается с правильным ответом, и вычисляется ошибка. Предположим, как и раньше, что наш прогноз оказался заниженным (если бы прогноз был завышенным, логика рассуждений была бы аналогичной)

Есть ли что-то еще, что поможет приблизить прогноз сети к правильному ответу? Да – активация скрытых элементов. Напрямую мы не можем изменить активацию этих скрытых элементов, но можем изменить связи от входных элементов к скрытым – это строчные w.

Как же изменить эти связи, чтобы получить максимальную отдачу от корректировок?

Сначала разберемся с заглавными W, а затем перейдем к изменениям активаций скрытых элементов и соответствующим изменениям строчных w. Какие W следует корректировать для наиболее эффективного увеличения прогноза? Наибольшую отдачу дадут связи от самых активных скрытых элементов (вспомните: мы перемножаем активацию и вес связи от каждого передающего элемента, чтобы вычислить активацию выходного элемента). На рисунке 9.4 это означает, что W9 должен получить наибольшую корректировку, поскольку нижний скрытый элемент активирован сильнее всех. А от настройки W8 пользы меньше, так как активация среднего скрытого элемента относительно мала. Обратите внимание: активации скрытых элементов подсказывают нам, как изменять веса – а именно заглавные W.

Теперь подумаем об активациях скрытых элементов. Какие из них стоит увеличить? Максимальную отдачу дадут те, что связаны с выходными элементами через наибольшие веса. Например, если W8 больше, чем W7 и W9, нам следует увеличить активацию среднего скрытого элемента. Интересно, что теперь уже веса подсказывают нам, какие активации скрытых элементов следует увеличивать. В этом и заключается суть обратного распространения: мы получаем ошибку на выходном элементе, как и раньше, затем умножаем ее на вес от каждого скрытого элемента к выходному. Это произведение становится тем, что Румельхарт назвал обратно распространенной ошибкой от выходного элемента к скрытому. Если выходных элементов несколько, полная обратно распространенная ошибка для скрытого элемента равна сумме ошибок, распространенных от всех выходных элементов.

Разумеется, напрямую изменить активации скрытых элементов невозможно. Но понимание того, какими мы хотели бы их видеть для максимальной эффективности корректировок, позволяет рекурсивно применить тот же процесс к предыдущему слою. В нашем примере мы используем активации входных элементов I1 и I2, чтобы вычислить, какие изменения строчных w приблизят нас к желаемым уровням активации скрытых элементов.

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

Обобщим, как нейронные сети обучаются методом обратного распространения. Сначала подаются входные данные, которые задают активацию входных элементов. Затем активация распространяется вперед по сети. Далее мы сравниваем выход сети с целевым значением и вычисляем ошибку. После этого используем веса связей для определения обратно распространенной ошибки каждого скрытого элемента. Теперь у нас есть величины ошибок для всех элементов и их активации, полученные при прямом распространении. Наконец, мы корректируем каждый вес на величину, равную произведению скорости обучения, ошибки принимающего элемента и активации передающего элемента. Здесь кроется интересная тонкость: изменения весов связей от скрытых элементов к выходным (заглавные W на рисунке 9.4) зависят от весов связей от входных элементов к скрытым (строчные w). Дело в том, что строчные w определяют активацию скрытых элементов, которая, в свою очередь, влияет на то, как должны изменяться заглавные W. И наоборот: изменения строчных w зависят от значений заглавных W, поскольку заглавные W определяют величины обратно распространенных ошибок, указывающие, какие активации скрытых элементов следует изменить для максимального воздействия на ошибку выходного слоя. А это, в свою очередь, определяет, как нужно менять строчные w для минимизации ошибки.

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

Предыдущая главаГлава 81 из 102Следующая глава