Нейронная сеть

Нейро́нная сеть(такжеиску́сственная нейро́нная сеть,ИНС, или простонейросе́ть) —математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации биологических нейронных сетей — сетейнервных клетокживого организма. Это понятие возникло при изучении процессов, протекающих вмозге, и при попыткесмоделироватьэти процессы. Первой такойпопыткойбыли нейронные сетиУ. МаккалокаиУ. Питтса. После разработки алгоритмов обучения получаемые модели стали использовать в практических целях: взадачах прогнозирования, дляраспознавания образов, в задачахуправленияи др.
ИНС представляет собойсистемусоединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только ссигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие простые по отдельности процессоры вместе способны выполнять довольно сложные задачи.
Нейронные сети непрограммируютсяв привычном смысле этого слова, ониобучаются. Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционнымиалгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными и выходными данными, а также выполнятьобобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумлённых», частично искажённых данных.
В качестве образов могут выступать различные по своей природе объекты: символы текста, изображения, образцы звуков и так далее. При обучении сети предлагаются различные образцы образов с указанием того, к какому классу они относятся. Образец, как правило, представляется как вектор значений признаков. При этом совокупность всех признаков должнаоднозначно определять класс, к которому относится образец. В случае, если признаков недостаточно, сеть может соотнести один и тот же образец с несколькими классами, что неверно. По окончании обучения сети ей можно предъявлять неизвестные ранее образы и получать ответ о принадлежности к определённому классу.
Топология такой сети характеризуется тем, что количество нейронов в выходном слое, как правило, равно количеству определяемых классов. При этом устанавливается соответствие между выходом нейронной сети и классом, который он представляет. Когда сети предъявляется некий образ, на одном из её выходов должен появиться признак того, что образ принадлежит этому классу. В то же время на других выходах должен быть признак того, что образ данному классу не принадлежит. Если на двух или более выходах есть признак принадлежности к классу, считается, что сеть «не уверена» в своём ответе.
Эта задача близка к задаче классификации. Классификации подлежат ситуации, характеристики которых поступают на вход нейронной сети. На выходе сети при этом должен появиться признак решения, которое она приняла. При этом в качестве входных сигналов используются различные критерии описания состояния управляемой системы.
Под кластеризацией понимается разбиение множества входных сигналов на классы, при том, что ни количество, ни признаки классов заранее неизвестны. После обучения такая сеть способна определять, к какому классу относится входной сигнал. Сеть также может сигнализировать о том, что входной сигнал не относится ни к одному из выделенных классов — это является признаком новых, отсутствующих в обучающей выборке, данных. Таким образом, подобная сетьможет выявлять новые, неизвестные ранее классы сигналов. Соответствие между классами, выделенными сетью, и классами, существующими в предметной области, устанавливается человеком. Кластеризацию осуществляют, например,нейронные сети Кохонена.
Нейронные сети в простом варианте Кохонена не могут быть огромными, поэтому их делят на гиперслои (гиперколонки) и ядра (микроколонки). Если сравнивать с мозгом человека, то идеальное количество параллельных слоёв не должно быть более 112. Эти слои в свою очередь составляют гиперслои (гиперколонку), в которой от 500 до 2000 микроколонок (ядер). При этом каждый слой делится на множество гиперколонок, пронизывающих насквозь эти слои. Микроколонки кодируются цифрами и единицами с получением результата на выходе. Если требуется, то лишние слои и нейроны удаляются или добавляются. Идеально для подбора числа нейронов и слоёв использовать суперкомпьютер. Такая система позволяет нейронным сетям быть пластичными.
Способности нейронной сети к прогнозированию напрямую следуют из её способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказать будущее значение некой последовательности на основе нескольких предыдущих значений и (или) каких-то существующих в настоящий момент факторов. Прогнозирование возможно только тогда, когдапредыдущие изменения в какой-то степени действительно предопределяют будущие. Например, прогнозирование котировок акций на основе котировок за прошлую неделю может оказаться успешным (а может и не оказаться), тогда как прогнозирование результатов завтрашней лотереи на основе данных за последние 50 лет почти наверняка не даст никаких результатов.
Нейронные сети могут аппроксимировать непрерывные функции. Доказана обобщённаяаппроксимационнаятеорема: с помощью линейных операций и каскадного соединения можно из произвольного нелинейного элемента получить устройство, вычисляющее любуюнепрерывную функциюс некоторой наперёд заданнойточностью. Это означает, что нелинейная характеристика нейрона может быть произвольной: отсигмоидальнойдо произвольного волнового пакета иливейвлета,синусаилимногочлена. От выбора нелинейной функции может зависетьсложностьконкретной сети, но с любой нелинейностью сеть остаётсяуниверсальным аппроксиматороми при правильном выборе структуры может достаточно точно аппроксимировать функционирование любого непрерывного автомата.
Способность нейросетей к выявлению взаимосвязей между различными параметрами даёт возможность выразить данные большой размерности более компактно, если данные тесно взаимосвязаны друг с другом. Обратный процесс — восстановление исходного набора данных из части информации — называется (авто)ассоциативной памятью. Ассоциативная память позволяет также восстанавливать исходный сигнал/образ из зашумлённых/повреждённых входных данных. Решение задачи гетероассоциативной памяти позволяет реализовать память, адресуемую по содержимому.
Следует рассмотреть подробнее некоторые из этих этапов.
Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения должен удовлетворять нескольким критериям:
Исходные данные преобразуются к виду, в котором их можно подать на входы сети. Каждая запись в файле данных называетсяобучающей паройилиобучающим вектором. Обучающий вектор содержит по одному значению на каждый вход сети и, в зависимости от типа обучения (с учителем или без), по одному значению для каждого выхода сети. Обучение сети на «сыром» наборе, как правило, не даёт качественных результатов. Существует ряд способов улучшить «восприятие» сети.
Кроме того, большую роль играет само представление как входных, так и выходных данных. Предположим, сеть обучается распознаванию букв на изображениях и имеет один числовой выход — номер буквы в алфавите. В этом случае сеть получит ложное представление о том, что буквы с номерами 1 и 2 более похожи, чем буквы с номерами 1 и 3, что, в общем, неверно. Для того, чтобы избежать такой ситуации, используют топологию сети с большим числом выходов, когда каждый выход имеет свой смысл. Чем больше выходов в сети, тем большее расстояние между классами и тем сложнее их спутать.
Выбирать тип сети следует, исходя из постановки задачи и имеющихся данных для обучения. Для обучения с учителем требуется наличие для каждого элемента выборки «экспертной» оценки. Иногда получение такой оценки для большого массива данных просто невозможно. В этих случаях естественным выбором является сеть, обучающаяся без учителя (например,самоорганизующаяся карта Кохоненаилинейронная сеть Хопфилда). При решении других задач (таких, как прогнозирование временных рядов) экспертная оценка уже содержится в исходных данных и может быть выделена при их обработке. В этом случае можно использоватьмногослойный перцептронилисеть Ворда.
После выбора общей структуры нужно экспериментально подобрать параметры сети. Для сетей, подобных перцептрону, это будет число слоёв, число блоков в скрытых слоях (для сетей Ворда), наличие или отсутствие обходных соединений, передаточные функции нейронов. При выборе количества слоёв и нейронов в них следует исходить из того, чтоспособности сети к обобщению тем выше, чем больше суммарное число связей между нейронами. С другой стороны, число связей ограничено сверху количеством записей в обучающих данных.
После выбора конкретной топологии необходимо выбрать параметры обучения нейронной сети. Этот этап особенно важен для сетей,обучающихся с учителем. От правильного выбора параметров зависит не только то, насколько быстро ответы сети будут сходиться к правильным ответам. Например, выбор низкой скорости обучения увеличит время схождения, однако иногда позволяет избежатьпаралича сети. Увеличение момента обучения может привести как к увеличению, так и к уменьшению времени сходимости, в зависимости от формыповерхности ошибки. Исходя из такого противоречивого влияния параметров, можно сделать вывод, что их значения нужно выбирать экспериментально, руководствуясь при этом критерием завершения обучения (например, минимизация ошибки или ограничение по времени обучения).
В процессе обучения сеть в определённом порядке просматривает обучающую выборку. Порядок просмотра может быть последовательным, случайным и т. д. Некоторые сети,обучающиеся без учителя(например,сети Хопфилда), просматривают выборку только один раз. Другие (например,сети Кохонена), а также сети, обучающиеся с учителем, просматривают выборку множество раз, при этом один полный проход по выборке называетсяэпохой обучения. При обучении с учителем набор исходных данных делят на две части — собственно обучающую выборку и тестовые данные; принцип разделения может быть произвольным. Обучающие данные подаются сети для обучения, а проверочные используются для расчёта ошибки сети (проверочные данные никогда для обучения сети не применяются). Таким образом, если на проверочных данных ошибка уменьшается, то сеть действительно выполняет обобщение. Если ошибка на обучающих данных продолжает уменьшаться, а ошибка на тестовых данных увеличивается, значит, сеть перестала выполнять обобщение и просто «запоминает» обучающие данные. Это явление называется переобучением сети илиоверфиттингом. В таких случаях обучение обычно прекращают. В процессе обучения могут проявиться другие проблемы, такие как паралич или попадание сети в локальный минимум поверхности ошибок. Невозможно заранее предсказать проявление той или иной проблемы, равно как и дать однозначные рекомендации к их разрешению.
Всё выше сказанное относится только к итерационным алгоритмам поиска нейросетевых решений. Для них действительно нельзя ничего гарантировать и нельзя полностью автоматизировать обучение нейронных сетей.Однако, наряду с итерационными алгоритмами обучения, существуют не итерационные алгоритмы, обладающие очень высокой устойчивостью и позволяющие полностью автоматизировать процесс обучения.
Даже в случае успешного, на первый взгляд, обучения сеть не всегда обучается именно тому, чего от неё хотел создатель. Известен случай, когда сеть обучалась распознаванию изображений танков по фотографиям, однако позднее выяснилось, что все танки были сфотографированы на одном и том же фоне. В результате сеть «научилась» распознавать этот тип ландшафта, вместо того, чтобы «научиться» распознавать танки. Таким образом, сеть «понимает» не то, что от неё требовалось, а то, что проще всего обобщить.
Тестирование качества обучения нейросети необходимо проводить на примерах, которые не участвовали в её обучении. При этом число тестовых примеров должно быть тем больше, чем выше качество обучения. Если ошибки нейронной сети имеют вероятность близкую к одной миллиардной, то и для подтверждения этой вероятности нужен миллиард тестовых примеров. Получается, что тестирование хорошо обученных нейронных сетей становится очень трудной задачей.
В ряде нейронных сетей активирующая функция может зависеть не только от весовых коэффициентов связейwij{\displaystyle w_{ij}}, но и от времени передачи импульса (сигнала) по каналам связиτij{\displaystyle \tau _{ij}}. Поэтому в общем виде активирующая (передающая) функция связиcij{\displaystyle c_{ij}}от элементаui{\displaystyle u_{i}}к элементуuj{\displaystyle u_{j}}имеет вид:cij∗=f[wij(t),ui∗(t−τij)]{\displaystyle c_{ij}^{*}=f[w_{ij}(t),u_{i}^{*}(t-\tau _{ij})]}.
Тогдасинхронной сетьюназывают такую сеть, у которой время передачиτij{\displaystyle \tau _{ij}}каждой связи равно либо нулю, либо фиксированной постояннойτ{\displaystyle \tau }.Асинхроннойназывают такую сеть, у которой время передачиτij{\displaystyle \tau _{ij}}для каждой связи между элементамиui{\displaystyle u_{i}}иuj{\displaystyle u_{j}}своё, но тоже постоянное.
В нейронных сетях прямого распространения (англ.feedforward neural network) все связи направлены строго от входных нейронов к выходным. Примерами таких сетей являютсяперцептрон Розенблатта,многослойный перцептрон,сети Ворда.
Сигнал с выходных нейронов или нейронов скрытого слоя частично передаётся обратно на входы нейронов входного слоя (обратная связь). Рекуррентнаясеть Хопфилда«фильтрует» входные данные, возвращаясь к устойчивому состоянию и, таким образом, позволяет решать задачикомпрессии данныхи построенияассоциативной памяти. Частным случаем рекуррентных сетей являются двунаправленные сети. В таких сетях между слоями существуют связи как в направлении от входного слоя к выходному, так и в обратном. Классическим примером являетсяНейронная сеть Коско.
Разработаны нейронные сети, использующие в качестве активационных функций радиально-базисные (также называются RBF-сетями). Общий вид радиально-базисной функции:
f(x)=ϕ(x2σ2){\displaystyle f(x)=\phi \left({\frac {x^{2}}{\sigma ^{2}}}\right)}, например,f(x)=e−x2σ2,{\displaystyle f(x)=e^{-{{x^{2}} \over {\sigma ^{2}}}},}
гдеx{\displaystyle x}— вектор входных сигналов нейрона,σ{\displaystyle \sigma }— ширина окна функции,ϕ(y){\displaystyle \phi (y)}— убывающая функция (чаще всего, равная нулю вне некоторого отрезка).
Радиально-базисная сеть характеризуется тремя особенностями:
Такие сети представляют собой соревновательную нейронную сеть собучением без учителя, выполняющую задачу визуализации икластеризации. Является методом проецирования многомерного пространства в пространство с более низкой размерностью (чаще всего, двумерное), применяется также для решения задач моделирования, прогнозирования и др. Является одной из версийнейронных сетей Кохонена. Самоорганизующиеся карты Кохонена служат, в первую очередь, для визуализации и первоначального («разведывательного»)анализа данных.
Сигнал в сеть Кохонена поступает сразу на все нейроны, веса соответствующих синапсов интерпретируются как координаты положения узла, и выходной сигнал формируется по принципу «победитель забирает всё» — то есть ненулевой выходной сигнал имеет нейрон, ближайший (в смысле весов синапсов) к подаваемому на вход объекту. В процессе обучения веса синапсов настраиваются таким образом, чтобы узлы решётки «располагались» в местах локальных сгущений данных, то есть описывали кластерную структуру облака данных, с другой стороны, связи между нейронами соответствуют отношениям соседства между соответствующими кластерами в пространстве признаков.
Удобно рассматривать такие карты как двумерные сетки узлов, размещённых в многомерном пространстве. Изначально самоорганизующаяся карта представляет собой сетку из узлов, соединённую между собой связями. Кохонен рассматривал два варианта соединения узлов — в прямоугольную и гексагональную сетку — отличие состоит в том, что в прямоугольной сетке каждый узел соединён с четырьмя соседними, а в гексагональной — с шестью ближайшими узлами. Для двух таких сеток процесс построения сети Кохонена отличается лишь в том месте, где перебираются ближайшие к данному узлу соседи.
Начальное вложение сетки в пространство данных выбирается произвольным образом. В авторском пакете SOM_PAK предлагаются варианты случайного начального расположения узлов в пространстве и вариант расположения узлов в плоскости. После этого узлы начинают перемещаться в пространстве согласно следующему алгоритму:
Вычислительные системы, основанные на нейронных сетях, обладают рядом качеств, которые отсутствуют в машинах сархитектурой фон Неймана(но присущи мозгу человека):
Входные данные — курс акций за год. Задача — определить завтрашний курс. Проводится следующее преобразование — выстраивается в ряд курс за сегодня, вчера, за позавчера. Следующий ряд — смещается по дате на один день и так далее. На полученном наборе обучается сеть с тремя входами и одним выходом — то есть выход: курс на дату, входы: курс на дату минус один день, минус два дня, минус три дня. Обученной сети подаётся на вход курс за сегодня, вчера, позавчера и получается ответ на завтра. В этом случае сеть выведет зависимость одного параметра от трёх предыдущих. Если желательно учитывать ещё какой-то параметр (например, общий индекс по отрасли), то его надо добавить как вход (и включить в примеры), переобучить сеть и получить новые результаты.
Для наиболее точного обучения стоит использоватьметод ОРО, как наиболее предсказуемый и несложный в реализации.
Серия работ М. Г. Доррера с соавторами посвящена исследованию вопроса о возможности развития психологическойинтуицииу нейросетевыхэкспертных систем. Полученные результаты дают подход к раскрытию механизма интуиции нейронных сетей, проявляющейся при решении ими психодиагностических задач. Создан нестандартный для компьютерных методикинтуитивныйподход кпсиходиагностике, заключающийся в исключении построенияописанной реальности. Он позволяет сократить и упростить работу над психодиагностическими методиками.
Нейронные сети широко используются в химических и биохимических исследованиях. В настоящее время нейронные сети являются одним из самых распространённых методовхемоинформатикидляпоиска количественных соотношений структура-свойство, благодаря чему они активно используются как для прогнозирования физико-химических свойств и биологической активности химических соединений, так и для направленного дизайна химических соединений и материалов с заранее заданными свойствами, в том числе при разработке новых лекарственных препаратов.
Нейронные сети успешно применяются для синтезасистем управлениядинамическими объектами.
В области управления нейронные системы находят применение в задачах идентификации объектов, в алгоритмах прогнозирования и диагностики, а также для синтеза оптимальных АСР. Для реализации АСР на основе ИНС в настоящее время интенсивно развивается производствонейрочипов и нейроконтроллеров(НК).
В определённом смысле ИНС является имитатороммозга, обладающего способностью к обучению и ориентации в условиях неопределённости. Искусственная нейросеть сходна с мозгом в двух аспектах. Сеть приобретает знания в процессе обучения, а для сохранения знаний использует не сами объекты, а их связи — значения коэффициентов межнейронных связей, называемые синаптическими весами или синаптическими коэффициентами.
Процедура обучения ИНС состоит в идентификации синаптических весов, обеспечивающих ей необходимые преобразующие свойства. Особенностью ИНС является её способность к модификации параметров и структуры в процессе обучения.
Алгоритмы нейронных сетей нашли широкое применение в экономике. С помощью нейронных сетей решается задача разработки алгоритмов нахождения аналитического описания закономерностей функционирования экономических объектов (предприятие, отрасль, регион). Эти алгоритмы применяются к прогнозированию некоторых «выходных» показателей объектов. Применение нейросетевых методов позволяет решить некоторые проблемы экономико-статистического моделирования, повысить адекватность математических моделей, приблизить их к экономической реальности. Поскольку экономические, финансовые и социальные системы очень сложны и являются результатом человеческих действий и противодействий, создание полнойматематической моделис учётом всех возможных действий и противодействий является очень сложной (если разрешимой) задачей. В системах подобной сложности естественным и наиболее эффективным является использование моделей, которые напрямую имитируют поведение общества и экономики. Именно это способна предложить методология нейронных сетей.
Самостоятельные системы, такие как роботы, беспилотные автомобили и дроны, все чаще применяются в различных отраслях, а для их разработки нейросети играют ключевую роль в решении задач, таких как распознавание образов, анализ текста и управление системами. Нейросети используются для анализа данных, полученных от датчиков, для управления устройствами и принятия решений. Методы глубокого обучения часто применяются для решения проблем обнаружения и распознавания объектов, но возникают трудности при работе с объектами, находящимися в труднодоступных местах или в условиях плохой освещённости. В области автономного транспорта, нейросети являются примером заимствования концепций работы мозга и разума. Исследования используют нейронные сети для интеллектуального восприятия транспорта и определения типа транспорта.
Нейросети представляют собой ценный инструмент для усовершенствования систем рекомендаций, которые основываются на нашей предыдущей активности, чтобы подсказывать нам что-то новое и интересное, например, музыку, фильмы или товары. Однако, с ростом объёма данных возникает потребность в более продвинутых методах обработки, и здесь на помощь приходят нейросети, которые способны обработать информацию, обнаружить скрытые связи между данными и определить, что может быть наиболее интересным и релевантным для нас. Например, они могут использоваться, чтобы с большей точностью рекомендовать товары, исходя из нашего прошлого поведения и покупок. Благодаря применению нейросетей в этой области, удаётся значительно улучшить качество рекомендаций и повысить уровень удовлетворения пользователей.