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

Слои ввода и вывода говорят сами за себя, но что такое скрытый слой?

Скрытые слои

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

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

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

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

Как нейроны принимают решения

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

  • Подключения: отдельные связи между каждым узлом (входы, нейроны, выходы).
  • Веса соединения. Каждый вес представляет собой силу соединений между узлами. Другой способ думать об этом - насколько каждый «нейрон» заботится об определенном входном значении.

С этими двумя новыми компонентами давайте рассмотрим нашу исходную диаграмму перцептрона:

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

Функция активации

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

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

  • Шаг Функция
  • Сигмовидная
  • Линейный
  • Гауссовский

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

Собираем все вместе

Давайте быстро соберем все, что мы узнали, и напишем простой перцептрон:

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

Запуск перцептрона вернет примерно следующее:

Training Perceptron for 1000 iterations
Starting weights: [ 0.90185083  0.75965753  0.10658775]
.......................................................
Training completed
Weights after training: [ 0.90185083  0.35965753 -0.49341225]
Running trained Network against Test Data
[0 0 0]: 0.0 -> 0
[0 1 0]: 0.359657525652 -> 1
[1 1 1]: 0.768096100245 -> 1
[0 0 1]: -0.49341225179 -> 0
[1 0 0]: 0.901850826383 -> 1

Результат

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

Резюме

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

Эта статья изначально была размещена на моем собственном сайте.

Хакерский полдень - это то, с чего хакеры начинают свои дни. Мы часть семьи @AMI. Сейчас мы принимаем заявки и рады обсуждать рекламные и спонсорские возможности.

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