Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Equipment >> Промышленный робот

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

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

Добро пожаловать в серию AAC по машинному обучению.

Следите за серией здесь:

  1. Как выполнить классификацию с помощью нейронной сети:что такое перцептрон?
  2. Как использовать простой пример нейронной сети персептрона для классификации данных
  3. Как обучить базовую нейронную сеть персептрона
  4. Общие сведения об обучении простой нейронной сети
  5. Введение в теорию обучения нейронных сетей.
  6. Скорость обучения в нейронных сетях
  7. Расширенное машинное обучение с многоуровневым персептроном
  8. Функция активации сигмовидной кишки:активация в многослойных перцептронных нейронных сетях.
  9. Как обучить многослойную нейронную сеть персептрона
  10. Понимание формул обучения и обратного распространения ошибки для многослойных персептронов
  11. Архитектура нейронной сети для реализации Python
  12. Как создать многослойную нейронную сеть персептрона на Python.
  13. Обработка сигналов с использованием нейронных сетей:проверка при проектировании нейронных сетей
  14. Обучающие наборы данных для нейронных сетей:как обучить и проверить нейронную сеть Python

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

Обновление веса

Информация, связанная с обучением для MLP, сложна. Что еще хуже, онлайн-ресурсы используют другую терминологию и символы, и даже кажется, что они дают разные результаты. Однако я не уверен, действительно ли результаты различаются или одна и та же информация представлена ​​по-разному.

Уравнения, содержащиеся в этой статье, основаны на выводах и объяснениях, предоставленных доктором Дастином Стэнсбери в этом сообщении в блоге. Его трактовка - лучшее, что я нашел, и это отличное место для начала, если вы хотите вникнуть в математические и концептуальные детали градиентного спуска и обратного распространения ошибки.

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


Терминология

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

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


Уравнения обновления веса выводятся путем взятия частной производной функции ошибок (мы используем суммарную квадратичную ошибку, см. Часть 8 серии, в которой рассматриваются функции активации) по отношению к изменяемому весу. Пожалуйста, обратитесь к сообщению доктора Стэнсбери, если вы хотите увидеть математику; в этой статье мы сразу перейдем к результатам. Для весов, скрытых для вывода, мы имеем следующее:

\ [S_ {ERROR} =FE \ times {f_A} '(S_ {preA, O}) \]

\ [gradient_ {HtoO} =S_ {ERROR} \ times S_ {postA, H} \]

\ [weight_ {HtoO} =weight_ {HtoO} - (LR \ times gradient_ {HtoO}) \]

Рассчитываем знак ошибки l умножением на окончательную ошибку по значению, которое получается, когда мы применяем производную функции активации на сигнал предварительной активации доставляется в выходной узел (обратите внимание на символ штриха, который указывает первую производную в \ ({f_A} '(S_ {preA, O}) \)). градиент затем вычисляется путем умножения сигнала ошибки по сигналу постактивации из скрытого слоя. Наконец, мы обновляем вес, вычитая этот градиент . от текущего значения веса, и мы можем умножить градиент по скорости обучения если мы хотим изменить размер шага.

Для весов, которые вводятся в скрытые, у нас есть следующее:

\ [gradient_ {ItoH} =FE \ times {f_A} '(S_ {preA, O}) \ times weight_ {HtoO} \ times {f_A}' (S_ {preA , H}) \ times input \]

\ [\ Rightarrow gradient_ {ItoH} =S_ {ERROR} \ times weight_ {HtoO} \ times {f_A} '(S_ {preA, H}) \ times input \]

\ [weight_ {ItoH} =weight_ {ItoH} - (LR \ times gradient_ {ItoH}) \]

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

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

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

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

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

Заключение

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


Промышленный робот

  1. Двунаправленные трансиверы 1G для поставщиков услуг и приложений Интернета вещей
  2. CEVA:AI-процессор второго поколения для глубоких рабочих нагрузок нейронных сетей
  3. Разблокировать нарезку интеллектуальной базовой сети для Интернета вещей и MVNO
  4. Пять основных проблем и проблем для 5G
  5. Как кормить беспроводные сенсорные сети и ухаживать за ними
  6. Руководство по пониманию бережливого производства и шести сигм для производства
  7. Обучение по вакуумному насосу BECKER для вас и меня
  8. Senet и SimplyCity объединяются для расширения LoRaWAN и IoT
  9. Понимание преимуществ и проблем гибридного производства
  10. Понимание ударопрочных инструментальных сталей для изготовления пуансонов и штампов