Изменения

Перейти к: навигация, поиск

Нейронные сети, перцептрон

11 970 байт добавлено, 17:09, 16 января 2019
Finished neural net, started perceptron
[[File:Однослойная_нейронная_сеть.gif|350px|thumb|Схема однослойной нейронной сети]]
'''Однослойная нейронная сеть''' (англ. ''Single-layer neural network'') {{---}} сеть, в которой сигналы от входного слоя сразу подаются на выходной слой, который и преобразует сигнал и сразу же выдает ответ.
Как видно из схемы однослойной нейронной сети, представленной справа, сигналы <tex>x_1, x_2, \ldots x_n</tex> поступают на входной слой (который не считается за слой нейронной сети), а затем сигналы распределяются на выходной слой обычных нейронов. На каждом ребре от нейрона входного слоя к нейрону выходного слоя написано число {{---}} вес соответствующей связи.
[[File:Многослойная нейронная сеть.png|400px|thumb|Схема многослойной нейронной сети]]
'''Многослойная нейронная сеть''' (англ. ''Multilayer neural network'') {{---}} нейронная сеть, состоящая из входного, выходного и расположенного(ых) между ними одного (нескольких) скрытых слоев нейронов.
Помимо входного и выходного слоев эти нейронные сети содержат промежуточные, ''скрытые слои''. Такие сети обладают гораздо большими возможностями, чем однослойные нейронные сети, однако методы обучения нейронов скрытого слоя были разработаны относительно недавно.
Работу скрытых слоев нейронов можно сравнить с работой большого завода. Продукт (выходной сигнал) на заводе собирается по стадиям. После каждого станка получается какой-то промежуточный результат. Скрытые слои тоже преобразуют входные сигналы в некоторые промежуточные результаты.
 
 
 
===Сети прямого распространения===
 
'''Сети прямого распространения''' (англ. ''Feedforward neural network'') (feedforward сети) {{---}} искусственные нейронные сети, в которых сигнал распространяется строго от входного слоя к выходному. В обратном направлении сигнал не распространяется.
 
Все сети, описанные выше, являлись сетями прямого распространения, как следует из определения. Такие сети широко используются и вполне успешно решают определенный класс задач: прогнозирование, кластеризация и распознавание.
 
Однако сигнал в нейронных сетях может идти и в обратную сторону.
 
===Сети с обратными связями===
 
[[File:Сети_с_обратными_связями.png|400px|thumb|Схема сети с обратными связями]]
 
'''Сети с обратными связями''' (англ. ''Recurrent neural network'') {{---}} искусственные нейронные сети, в которых выход нейрона может вновь подаваться на его вход. В более общем случае это означает возможность распространения сигнала от выходов к входам.
 
В сетях прямого распространения выход сети определяется входным сигналом и весовыми коэффициентами при искусственных нейронах. В сетях с обратными связями выходы нейронов могут возвращаться на входы. Это означает, что выход какого-нибудь нейрона определяется не только его весами и входным сигналом, но еще и предыдущими выходами (так как они снова вернулись на входы).
 
Возможность сигналов циркулировать в сети открывает новые, удивительные возможности нейронных сетей. С помощью таких сетей можно создавать нейросети, восстанавливающие или дополняющие сигналы. Другими словами такие нейросети имеют свойства кратковременной памяти (как у человека).
 
 
 
 
 
 
 
 
==Обучение нейронной сети==
 
'''Обучение нейронной сети''' (англ. ''Neural net training'') {{---}} поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети преобразуется в нужный нам выходной.
 
Такой подход к термину «обучение нейронной сети» соответствует и биологическим нейросетям. Наш мозг состоит из огромного количества связанных друг с другом нейросетей. Каждая из них в отдельности состоит из нейронов одного типа (с одинаковой функцией активации). Мы обучаемся благодаря изменению синапсов {{---}} элементов, которые усиливают/ослабляют входной сигнал.
 
Если обучать сеть, используя только один входной сигнал, то сеть просто «запомнит правильный ответ». Со стороны будет казаться, что она очень быстро «обучилась». И как только мы подадим немного измененный сигнал, ожидая увидеть правильный ответ, то сеть выдаст бессмыслицу.
 
В самом деле, зачем нам сеть, определяющая лицо только на одном фото. Мы ждем от сети способности ''обобщать'' какие-то признаки и узнавать лица и на других фотографиях тоже. Именно с этой целью и создаются ''обучающие выборки''.
 
'''Обучающая выборка''' (англ. ''Training set'') {{---}} конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит обучение сети.
 
После обучения сети, то есть когда сеть выдает корректные результаты для всех входных сигналов из обучающей выборки, ее можно использовать на практике. Однако прежде чем сразу использовать нейронную сеть, обычно производят оценку качества ее работы на так называемой ''тестовой выборке''.
 
'''Тестовая выборка''' (англ. ''Testing set'') {{---}} конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит оценка качества работы сети.
 
Само обучение нейронной сети можно разделить на два подхода: '''обучение с учителем''' и '''обучение без учителя'''. В первом случае веса меняются так, чтобы ответы сети минимально отличались от уже готовых правильных ответов, а во втором случае сеть самостоятельно классифицирует входные сигналы.
 
==Перцептрон==
 
[[File:Перцептрон.png|350px|thumb|Схема перцептрона]]
 
'''Персептрон''' (англ. ''Perceptron'') {{---}} простейший вид нейронных сетей. В основе лежит математическая модель восприятия информации мозгом, состоящая из сенсоров, ассоциативных и реагирующих элементов.
 
===История===
 
Идею перцептрона предложил нейрофизиолог Фрэнк Розенблатт. Он предложил схему устройства, моделирующего процесс человеческого восприятия, и назвал его ''«персептроном»'' (от латинского ''perceptio'' {{---}} восприятие). В 1960 году Розенблатт представил первый нейрокомпьютер {{---}} «Марк-1», который был способен распознавать некоторые буквы английского алфавита.
 
Таким образом персептрон является одной из первых '''моделей нейросетей''', а «Марк-1» {{---}} первым в мире '''нейрокомпьютером'''.
 
===Описание===
 
В основе персептрона лежит математическая модель восприятия информации мозгом. Разные исследователи по-разному его определяют. В самом общем своем виде (как его описывал Розенблатт) он представляет систему из элементов трех разных типов: сенсоров, ассоциативных элементов и реагирующих элементов.
 
Принцип работы перцептрона следующий:
# Первыми в работу включаются S-элементы. Они могут находиться либо в состоянии покоя (сигнал равен ''0''), либо в состоянии возбуждения (сигнал равен ''1'').
# Далее сигналы от S-элементов передаются A-элементам по так называемым S-A связям. Эти связи могут иметь веса, равные только ''-1'', ''0'' или ''1''.
# Затем сигналы от сенсорных элементов, прошедших по S-A связям попадают в A-элементы, которые еще называют ассоциативными элементами
#* Стоит заметить, что одному A-элементу может соответствовать несколько S-элементов;
#* Если сигналы, поступившие на A-элемент, в совокупности превышают некоторый его порог ​<tex>\theta</tex>​, то этот A-элемент возбуждается и выдает сигнал, равный ''1'';
#* В противном случае (сигнал от S-элементов не превысил порога A-элемента), генерируется нулевой сигнал.
# Далее сигналы, которые произвели возбужденные A-элементы, направляются к сумматору (R-элемент), действие которого нам уже известно. Однако, чтобы добраться до R-элемента, они проходят по A-R связям, у которых тоже есть веса. Однако, здесь они уже могут принимать любые значения (в отличие от S-A связей).
# R-элемент складывает друг с другом взвешенные сигналы от A-элементов, а затем
#* если превышен определенный порог, генерирует выходной сигнал, равный ''1'';
#* eсли порог не превышен, то выход персептрона равен -1.
 
Для элементов перцептрона используют следующие названия:
* S-элементы называют сенсорами;
* A-элементы называют ассоциативными;
* R-элементы называют реагирующими.
 
==См. также==
*[[:Рекуррентные нейронные сети|Рекуррентные нейронные сети]]
*[[:Обзор библиотек для машинного обучения на Python|Обзор библиотек для машинного обучения на Python]]
==Примечания==
<references/>
== Источники информации ==
* Сергей Николенко, Артур Кадурин, Екатерина Архангельская. Глубокое обучение. Погружение в мир нейронных сетей. — «Питер», 2018. — С. 348-360.
* [https://neuralnet.info/book/ Нейронные сети {{---}} учебник ]
* [https://scikit-learn.org/ Документация по библиотеке scikit-learn ]
[[Категория: Машинное обучение]]
[[Категория: Глубокое обучение]]
69
правок

Навигация