Обучение - самая важная способность и атрибут интеллектуальной системы. Система, которая приобретает знания на основе опыта, проб и ошибок или через коучинг, обнаруживает первые признаки интеллекта. В этом посте объясняется, как обучаются ИНС.

В предыдущем посте Введение в искусственный интеллект для непрофессионала мы исследовали простую аналогию того, как искусственная нейронная сеть или ИНС помогает понять вес знаний кошки (или то, что мы назвали кошачьем).

Краткое резюме

Мы сказали, что наилучшая арифметическая аналогия нейронной сети заключается в следующем уравнении (которое, кстати, является упрощенной ложью):

E=(x*w)-y

Где "E" - ошибка, которая должна стремиться к нулю.

x’ - входной вектор (пиксели изображения кошки)

w’ - это вес знаний, который сеть должна изучить (о кошачьем кошачьем).

а «y» - ожидаемый результат (в нашем случае это классификация «Кошка»).

Оператор * - это функция под названием Функция активации, которая была представлена ​​в сообщении под названием Математические основы функций активации. В этом сообщении теперь будет рассмотрен оператор минус (снова в качестве аналогии), который инкапсулирует потерю (или стоимость) и функцию обучения Нейронная сеть.

Как обучить свою ИНС?

В упрощенном уравнении E = (x * w) -y мы сказали, что не знаем, какой должен быть вес «w». Вместо этого мы начали строить предположения по «w», чтобы уменьшить ошибку E до нуля. Любое значение для «w», которое наилучшим образом соответствует уравнению и сводит ошибку к нулю, будет считаться «знанием».

Как теперь сопоставить эту аналогию с реальной ИНС?

Скажем, сеть на приведенном выше рисунке использует логистическую сигмоиду в качестве функции активации, как показано ниже.

Логит ‘’ в приведенной выше функции активации - это функция передаточного потенциала, как показано ниже.

Таким образом, оператор «*» является функцией активации следующим образом:

Здесь y ’(y-prime) - результат функции активации.

Итак, арифметическая аналогия E = (x * w) -y может быть заменена на E = y ’ -y

Почему я использую в этом примере логистическую сигмоидальную диаграмму?

  • Логистические сигмоиды легче понять.
  • Важным свойством логистической сигмоиды является то, что на выходе она всегда выдает реальное значение от нуля до единицы.
  • Значения, близкие к нулю, препятствуют возбуждению нейронов, в то время как значения, близкие к единице, возбуждают нейрон.
  • Она имеет реальные значения и дифференцируема, что является основным требованием для функции активации в ИНС.
  • Также он симметричен в левой и правой асимптотах (что не является требованием для ИНС, но помогает понять концепцию пороговой обработки).
  • Порог находится почти посередине сигмовидной кишки.

Вот иллюстрация логистической сигмоиды из вольфрамальфы. Здесь я построил логит между -10 и 10. Обратите внимание, как пороговые значения кривой составляют 0,5 и переключаются. Это довольно интуитивно понятно.

Все идет нормально. Но как рассчитать ошибку? Войдите в функцию потерь…

Функция потерь (или функция затрат)

Обучение на ИНС происходит итерациями. Давайте рассмотрим итерацию как один прямой проход входного вектора от скрытых блоков к выходу нейронной сети.

Всякий раз, когда мы видим отклонение ошибки в этой единственной итерации, это рассматривается как локальная ошибка.

Уравнение E = y'-y на самом деле является истинным представлением локальной ошибки, которая является стандартной линейной ошибкой, где y '- результат функции активации, а y - фактический ожидаемый результат.

Обучение также можно проводить партиями. Например, если у нас есть 500 изображений кошек, используемых для обучения, мы можем установить размер пакета 250. Это означает, что мы будем отправлять 250 изображений кошек одно за другим и фиксировать все локальные ошибки для каждого изображения и объединять их в глобальная ошибка. Здесь мы выполняем 2 итерации размера пакета 250. Глобальная ошибка рассчитывается для каждой итерации.

(Одна тренировка на всех 500 изображениях называется эпохой.)

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

Теперь мы знаем, в чем ошибка. Как мы можем сказать ИНС, что полученный ею ответ не был ожидаемым? (Это концепция обучения с учителем, когда мы знаем, чего ожидать). Войти в обратное распространение…

Обратное распространение

Обратное распространение - мощный обучающий инструмент, используемый большинством ИНС для определения веса знаний скрытых единиц. К настоящему времени у нас есть функция активации и функция потерь. Чего мы не знаем, так это того, как изменить скрытые единицы или, в частности, веса знаний «w» скрытой единицы таким образом, чтобы ошибка уменьшилась до нуля.

В многослойной ИНС каждая единица нейрона влияет на множество единиц вывода на следующем уровне. Рассмотрим иллюстрацию ниже.

Здесь каждое скрытое действие в слое «i» может повлиять на множество выходных данных в слое «j» и, следовательно, будет иметь много разных ошибок. Эти ошибки целесообразно объединить. Идея объединения различных ошибок состоит в том, чтобы вычислить скорость изменения ошибки для всех блоков одновременно для каждой итерации.

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

Производная по погрешности, которую мы планируем найти, - это функция Градиентный спуск. Другими словами, мы пытаемся найти способ уменьшить ошибку до нуля на каждом шаге итерации (и, следовательно, спуск градиента как функции).

Фундаментальная математика, лежащая в основе обратного распространения

Чтобы по-настоящему понять обратное распространение, нам нужно понять 2 простых истины:

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

(Если вы все еще чешете в затылке, давайте разберемся дальше)

На приведенной выше иллюстрации мы имеем:

  • y (j), который является выходом функции активации в слое «j».
  • y (i), который является выходом функции активации в слое «i».
  • Вес знаний «w (ij)», который представляет собой силу связей между нейронами в слое «i» и слое «j».
  • ‘Theta’ как логит, который представляет собой потенциал переноса в слой ‘j’.
  • Предположим, что ошибка E, которая представляет собой разницу между выходом y (j) и некоторым ожидаемым значением t (j), такое, что E = t (j) -y (j)

Чтобы вычислить скорость изменения ошибки E относительно веса w (ij), мы должны вычислить в следующем порядке.

  • Вычислите скорость изменения ошибки E относительно передаточного потенциала 𝛉 (j)
  • Вычислите скорость изменения ошибки E относительно функции активации скрытых единиц в слое «i».
  • Это приведет к вычислению скорости изменения ошибки E относительно скрытых весов w (ij)

Вот математика:

И это математическая основа для понимания обновлений веса.

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

Обратная связь скорости изменения ошибки по отношению к весу - это то, что называется обратным распространением ошибки.

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

В заключение, обратное распространение - мощный инструмент, который позволяет ИНС изучать знания входных векторов без необходимости писать какие-либо конкретные правила для кодирования знаний. Обратите внимание, что обратное распространение используется ТОЛЬКО при обучении с учителем, поскольку для обучения ему нужны известные выходные данные, которые помогают в определении радиационного спуска g функции потерь, как объяснялось.

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