Статья для понимания основных принципов нейронных сетей

глубокое обучение Нейронные сети

Это краткое введение в знания о нейронных сетях и представляет особый вид нейронной сети —Многослойный персептрон (MLP).

Переведено сМожешь ли ты, Джей Джей, ходить по AR./2016/08/09/…

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


1. Нейроны

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

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

Вот некоторые из наиболее распространенных функций активации:

  • Sigmoid: Диапазон вывода: [0,1]
\sigma(x) =\frac{1}{1+e^{-x}}
  • tanh:Выходной диапазон [-1,1]
tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2\sigma(2x)-1
  • ReLU:
f(x) = max(0,x)

Изображение вышеуказанной функции активации приведено ниже:

Здесь нужно кратко рассказать о значении смещенияbias, который может предоставить каждому нейрону обучаемое постоянное значение. В частности, вы можете увидетьStackoverflowна этомотвечать.

2. Прямая нейронная сеть

Нейронная сеть с прямой связью — это первый и самый простой тип искусственной нейронной сети. Ниже приведен простой пример схемы нейронной сети с прямой связью.

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

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

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

Вот два примера нейронных сетей с прямой связью:

  1. Однослойный персептрон — простейшая нейронная сеть с прямой связью, не содержащая скрытых слоев.
  2. Многослойный персептрон — имеет 1 или более скрытых слоев.

3. Многослойный персептрон (MLP)

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

На рисунке выше показаноMLPЕсть два входных значенияX1иX2, в скрытом слое есть два нейрона, а затем есть два выходных значенияY1иY2. На рисунке также показано вычисление одного из нейронов скрытого слоя:

f(summation) = f(w_0 * 1 + w_1 * X1 + w_2 * X2)

4. Алгоритм обратного распространения

MLPЧтобы получить лучшие результаты, недостаточно вычислять только через прямое распространение.В дополнение к расчету прямого распространения нейронная сеть также имеет алгоритм обратного распространения, который обновляет веса посредством обратного распространения для получения лучших результатов обучения. Ниже приведено изthis Quora answer by Hemanth KumarОбъяснение обратного распространения:

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

Проще говоря, обратное распространение — это **«обучение на ошибках»**, и супервизор исправит нейронную сеть, когда она сделает ошибку.

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

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

Алгоритм обратного распространения:

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

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

На рисунке ниже показанMLPПроцесс обратного распространения:

На рисунке показаны данные обучения для данного примера, данные обучения следующие:

учебное время результаты промежуточных экзаменов Окончательные результаты экзамена
35 67 1 (проходит)
12 75 0 (неудачно)
16 89 1 (проходит)
45 56 1 (проходит)
10 90 0 (неудачно)

Пример для прогнозирования выглядит следующим образом:

учебное время результаты промежуточных экзаменов Окончательные результаты экзамена
25 70 ?

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

На картинке выше показано, чтоMLPЭто пример со скрытым слоем 1. Входной слой имеет 3 узла, один из которых имеет значение 1, то есть значение соединения между ним и узлом представляет значение смещения, а два других узла передают два входных данных, в скрытом слое, помимо узла, представляющего значение смещения, есть два узла, а выходной слой также имеет два выходных узла, верхний узел представляет вероятность прохождения (Pass), а нижний узел представляет вероятность непрохождения (Fail).

В задачах классификации мы обычно используемSoftmax functionВ качестве функции активации выходного слоя это должно гарантировать, что выходное значение является значением вероятности, а сумма выходного значения равна 1.SoftmaxФункция превращает входной вектор произвольных действительных чисел в вектор чисел в диапазоне от 0 до 1. Итак, в примере здесь естьProbability(Pass) + Probability(Fail) = 1

Шаг 1: прямое распространение

Здесь приведенный выше рисунок отмечен какVУзлы скрытого слоя удаляются, чтобы ввести процесс прямого распространения. Предположим, что веса на его связных узлах равныw1,w2,w3.

Сеть сначала принимает первые обучающие входы, которые являются входами 35 и 67, а ожидаемое выходное значение равно 1, что является результатом прохождения.

  • вход в сеть = [35, 67]
  • Желаемый выход сети = [1, 0]

в узлеVРасчет выполняется на:

V = f(1 * w1 + 35 * w2 + 67 * w3)

Расчет остальных узлов аналогичен этому. Наконец, два узла в выходном слое получат два значения вероятности соответственно, скажем, 0,4 и 0,6 соответственно (поскольку веса назначаются случайным образом, поэтому выходные значения также случайны). Очевидно, что эти два значения не соответствуют ожидаемым значениям, поэтому левый верхний угол рисунка выше также показывает, что это неверный вывод.

Шаг 2: Обратное распространение и обновление веса

На следующем рисунке показан процесс обратного распространения ошибки и обновления веса:

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

Здесь предполагается, что после обновления веса узелVВеса на соединениях обновляются до новых весовw4,w5,w6.

Затем продолжите ввод прямо сейчас. В это время из-за обратного распространения вес корректируется в сторону уменьшения ошибки, поэтому должен быть лучший результат вывода, как показано на рисунке ниже. В это время ошибка выходного слоя меняется на [0,2, -0,2], по сравнению с предыдущим [0,6, -0,4], а это значит, что сеть научилась правильно классифицировать первые обучающие данные.

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

5. Резюме

Вот краткое введение в нейронные сети, иMLPСтруктура сети вводит процесс реализации прямого и обратного распространения, но игнорирует подробную математическую формулу реализации.

Ссылаться на:

  1. this Quora answer by Hemanth Kumar
  2. stackoverflow.com/questions/2…
  3. excellent visual explanation of the backpropagation algorithm

Добро пожаловать в мой общедоступный аккаунт WeChat--Рост алгоритма обезьяны, или отсканируйте QR-код ниже, чтобы общаться, учиться и развиваться вместе!