Обзор нейронных сетей

искусственный интеллект

В настоящее время, с приливом ИИ, особенно в этом году, его также называют «первым годом искусственного интеллекта». С «умными» проектами различных предприятий машинное обучение, особенно глубокое обучение (сокращенно DL)) может можно назвать большим хитом в области алгоритмов. Чтобы изучить глубокое обучение, вы должны сначала ознакомиться с некоторыми основными понятиями нейронных сетей (NN). Конечно, упомянутая здесь нейронная сеть не является биологической нейронной сетью, более разумным представляется назвать ее искусственными нейронными сетями (ИНС). Первоначально нейронная сеть была алгоритмом или моделью в области искусственного интеллекта, В настоящее время нейронная сеть превратилась в междисциплинарную область, а также снова стала цениться и уважаться с прогрессом глубокого обучения.

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

нейронная модель

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

生物学上的神经元结构示意图Схематическая диаграмма структуры нейрона в биологии

В 1943 году МакКаллох и Питтс представили структуру нейрона на приведенном выше рисунке с помощью простой модели, сформировав модель искусственного нейрона, которая является «моделью нейрона MP», которую мы часто используем сейчас, как показано на следующем рисунке.

M-P神经元模型Модель нейрона MP

Как видно из модели нейрона MP на приведенном выше рисунке, выход нейрона

y=f(\sum_{i=1}^n w_i x_i - θ)

где θ — порог активации упомянутого ранее нейрона, а функция f( ) также называется функцией активации. Как показано на рисунке выше, функция f( ) может быть представлена ​​ступенчатым уравнением, которое активизируется при превышении порога, в противном случае тормозится. Но это слишком грубо, потому что ступенчатая функция не является гладкой, прерывистой и невыводимой, поэтому наш более распространенный метод — использовать сигмовидную функцию для представления функции f( ) (сигмоидальная — это обычно используемая функция активации). .
Выражение и распределение сигмовидной функции показаны ниже:

f(x)=\frac{1}{1 + e_{-x}}

Персептроны и многослойные сети

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

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

y=f(W \cdot X + b)

Среди них W — вес связи между входным и выходным слоями персептрона, а b — смещение выходного слоя. Фактически, персептрон представляет собой дискриминационную линейную классификационную модель, которая может решать простые линейно разделимые задачи, такие как и, или, нет, Схематическая диаграмма линейно разделимой задачи показана на следующем рисунке:

Но поскольку он имеет только один слой функциональных нейронов, его способность к обучению очень ограничена. Получается, что однослойный персептрон не может решить простейшую нелинейную разделимую задачу - задачу XOR (для студентов, которые хотят понять задачу XOR или доказательство того, что персептрон не может решить задачу XOR, пожалуйста, перейдите сюда "Доказательство: Однослойный «Персептроны не могут представлять логику исключающего ИЛИ»).

История персептрона, решившего проблему исключающего ИЛИ, все еще существует, и ее стоит кратко рассмотреть: персептрон может выполнять только простые задачи линейной классификации. Но энтузиазм народа в то время был слишком высок, и никто этого четко не осознавал. Так что все изменилось, когда на это указал ИИ-гигант Мински. Минский опубликовал книгу под названием «Персептрон» в 1969 году, в которой использовалась подробная математика для доказательства слабых сторон персептрона, в частности, персептрон не может решать простые задачи классификации, такие как XOR (исключающее или). Мински считает, что если вычислительный слой увеличить до двух, то объем вычислений будет слишком большим, и не будет эффективного алгоритма обучения. Поэтому он считает, что нет смысла изучать более глубокие сети. Из-за огромного влияния Мински и пессимистического отношения, представленного в книге, многие ученые и лаборатории отказались от исследований нейронных сетей. Исследования нейронных сетей попали в ледниковый период. Этот период также известен как «ИИ». зима». Почти 10 лет спустя исследования двухслойных нейронных сетей привели к возрождению нейронных сетей.

Мы знаем, что многие проблемы в нашей повседневной жизни, и даже большинство проблем, не являются линейно разделимыми проблемами, так как же нам решать нелинейные разделимые задачи? Это концепция «многослойности», которую мы собираемся представить в этой части. Поскольку однослойный персептрон не может решить нелинейную задачу, мы используем многослойный персептрон.На следующем рисунке представлена ​​схема двухслойного персептрона для решения проблемы XOR:

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

Можно видеть, что многослойный персептрон может очень хорошо решать нелинейную проблему сепарабельности.Мы обычно называем многослойную структуру, такую ​​​​как многослойный персептрон, нейронной сетью. Однако, как ранее беспокоил Мински, хотя многослойный персептрон теоретически может решать нелинейные задачи, сложность проблемы в реальной жизни намного больше, чем проблема XOR, поэтому нам часто приходится строить многослойную сеть. Какой алгоритм обучения? использовать для многослойной нейронной сети является огромной проблемой Структура сети с 2 скрытыми слоями, как показано на рисунке ниже, имеет как минимум 33 параметра (исключая параметр смещения), мы должны Как быть уверенным?

Алгоритм обратного распространения ошибки (BP)

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

Говоря об алгоритмах обучения нейронных сетей, нельзя не упомянуть о наиболее ярком и успешном их представителе — алгоритме обратного распространения ошибки (ОПР). Алгоритм обучения BP обычно используется в наиболее широко используемых многослойных нейронных сетях с прямой связью.

Основной процесс алгоритма BP можно резюмировать следующим образом:


входить:Обучающий набор $D={(x_k, yk)}{k=1}^m;скорость обучения \eta$;

процесс:

1: случайным образом инициализировать все веса и пороги соединения в сети в диапазоне (0, 1)

2:repeat:

3:for all (x_k,y_k) \in D do

4: Рассчитать выход текущего образца в соответствии с текущими параметрами;

5: Рассчитать градиентный член нейронов выходного слоя;

6: вычислить градиентный термин нейронов скрытого слоя;

7: Обновите вес соединения и порог

8:end for

9:untilдостигнуто состояние остановки

вывод:Многослойные нейронные сети с прямой связью, определяемые весами и порогами соединения


Вывод формулы алгоритма БП:

Общие модели нейронных сетей

сеть РБФ

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

\varphi{(\bold{x})}=\sum_{i=1}^q {\omega}_i {\varrho}(\bold{x},\bold{c_i})

Среди них q — количество нейронов в скрытом слое, \bold{c_i} и \bold{\omega}_i — центр и вес, соответствующие i-му нейрону скрытого слоя, \varrho(\bold{x} ,\ жирный {c_i}) — функция радиального базиса.

  • Обучение сети RBF обычно состоит из двух шагов:

    1. Для определения центра нейронов распространены методы случайной выборки, кластеризации и т. д.;
    2. Для определения параметров нейронной сети обычно используется алгоритм BP.

АРТ Сеть

Сеть теории адаптивного резонанса ART (Adaptive Resonance Theory) является важным представителем конкурентного обучения.Сеть состоит из слоя сравнения, слоя распознавания, порога слоя распознавания и модуля сброса. ART лучше решает "дилемму стабильности-пластичности" в соревновательном обучении. Пластичность относится к способности нейронной сети усваивать новые знания, а стабильность относится к способности нейронной сети усваивать новые знания. Сохранять память о старых знаниях, когда ты знаешь это. Это дает сети ART важное преимущество: возможно поэтапное обучение или онлайн-обучение.

сеть СОМ

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

Структурная адаптивная сеть

Общая нейронная сеть должна сначала указать структуру сети, а цель обучения — использовать обучающие выборки для определения соответствующих весов соединения, пороговых значений и других параметров. В отличие от этого, структурно-адаптивная сеть рассматривает структуру сети как одну из целей обучения и надеется найти структуру сети, которая наилучшим образом соответствует характеристикам данных в процессе обучения. например, предыдущая сеть ART, а также сеть каскадной корреляции (Cascade-Correlation)

RNN (рекуррентная нейронная сеть)

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

Общий алгоритм обучения RNN использует обобщенный алгоритм BP. Стоит отметить, что результат сети RNN в момент времени (t+1) O(t+1) является результатом взаимодействия между входными данными и всеми историями в это время, что позволяет достичь цели моделирования временных рядов. Следовательно, в некотором смысле RNN можно рассматривать как глубокое обучение на временной глубине.

Результат сети RNN в (t + 1) момент времени O (t + 1) является результатом взаимодействия между входом и всей историей в это время.Это не очень точно, потому что «градиентное расхождение» также происходит на оси времени, то есть для времени t создаваемый им градиент исчезает после распространения нескольких слоев истории на оси времени и никак не может повлиять на слишком далекое прошлое. Так что «вся история» — это как раз идеальная ситуация. На практике этот эффект может поддерживаться только для нескольких меток времени. Другими словами, ложные сигналы на более поздних временных шагах часто не уходят достаточно далеко в прошлое, чтобы повлиять на сеть, как на более ранних временных шагах, что затрудняет изучение долгосрочных эффектов.

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

В обычной РНС, кроме вышеперечисленных, есть еще два вида классических сетей:

  • Сеть Элмана, которая является одной из наиболее часто используемых рекуррентных нейронных сетей, ее структура показана на следующем рисунке:

  • Машины Больцмана и ограниченные машины Больцмана

В нейронных сетях есть класс моделей, которые определяют «энергию» для состояния сети.Когда энергия минимизируется, сеть достигает идеального состояния, и обучение сети заключается в минимизации этой энергетической функции. Машина Больцмана — это модель, основанная на энергии, и ее нейроны разделены на два слоя: явный слой и скрытый слой. Явный уровень используется для представления ввода и вывода данных, а скрытый уровень понимается как внутреннее выражение данных. Все нейроны машины Больцмана являются булевыми, то есть они могут принимать только значения 0 и 1. Стандартная машина Больцмана полностью связана, что означает, что нейроны в каждом слое связаны друг с другом, поэтому вычислительная сложность очень высока, и с ней трудно решать практические задачи. Поэтому мы часто используем особый тип машины Больцмана, ограниченную машину Больцмана. Boltzmann Mechine, именуемый RBM), он не имеет связей внутри слоев и связей между слоями, что можно рассматривать как двудольный граф. На следующем рисунке показана принципиальная схема машины Больцмана и RBM:

RBM часто тренируются с помощью конструктивной дивергенции (CD).

глубокое обучение

Глубокое обучение относится к модели глубокой нейронной сети, которая обычно относится к структуре нейронной сети с тремя или более сетевыми слоями.

Теоретически, чем больше параметров у модели, тем выше сложность и больше «емкость», а значит, она может выполнять более сложные учебные задачи. Точно так же, как открытие, принесенное нам предыдущим многослойным персептроном, количество слоев нейронной сети напрямую определяет ее способность описывать реальность. Однако в целом эффективность обучения сложных моделей низка, и легко впасть в переобучение, поэтому людям трудно понравиться. В частности, с углублением числа слоев нейронной сети функция оптимизации все чаще и чаще попадает в локально оптимальное решение (то есть переобучение, которое имеет хороший эффект подгонки на обучающей выборке, но имеет очень хороший влияние на тестовый набор. Разница). В то же время нельзя игнорировать проблему, заключающуюся в том, что по мере увеличения количества слоев сети явление «исчезновения градиента» (или расхождения градиента) становится более серьезным. Мы часто используем сигмовидную функцию в качестве функционального нейрона скрытого слоя.Для сигнала с амплитудой 1, когда BP распространяет градиент обратно, градиент затухает до исходного 0,25 для каждого пройденного слоя. Когда количество слоев больше одного, после экспоненциального затухания градиента нижние слои в основном не могут получать эффективные обучающие сигналы.

Чтобы решить проблему обучения глубокой нейронной сети, эффективным методом является принятие неконтролируемого послойного обучения, выход используется как вход, а выход скрытых узлов этого слоя используется как вход скрытого узлов следующего слоя, который называется «предобучение», после завершения предобучения вся сеть проходит «тонкую настройку» (fine-tuning) обучение. Например, в сетях Deep Belief Networks (DBN) Хинтона каждый уровень представляет собой RBM, то есть всю сеть можно рассматривать как стек из нескольких RBM. При использовании неконтролируемого обучения сначала обучают первый слой, который представляет собой модель RBM, на обучающих выборках, которые можно обучать в соответствии со стандартным RBM, затем скрытые узлы предтренировочного числа первого слоя рассматриваются как входные узлы второго слоя, предобучение второго слоя; … После завершения предварительной подготовки каждого слоя алгоритм BP используется для обучения всей сети.

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

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

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

использованная литература

[1] Машинное обучение, Чжихуа Чжоу.