Нейронные сети (Neural Networks) – это модели биологических нейронных сетей мозга, в которых нейроны имитируются относительно простыми, часто однотипными, элементами (искусственными нейронами). Идея нейронных сетей родилась в рамках теории искусственного интеллекта, в результате попыток имитировать способность биологических нервных систем обучаться и исправлять ошибки. В 1948 году была опубликована книга Н. Винера о кибернетике. Основной идеей является представление сложных биологических процессов математическими моделями [1]. Нейронные сети широко используются для решения разнообразных задач. Среди областей применения нейронных сетей: автоматизация процессов распознавания образов, прогнозирование, адаптивное управление, создание экспертных систем, организация ассоциативной памяти, обработка аналоговых и цифровых сигналов, синтез и идентификация электронных цепей и систем. Модели нейронных сетей могут быть программного и аппаратного исполнения. Нейронная сеть представляет собой совокупность нейронов, которые составляют слои. В каждом слое нейроны между собой никак не связаны, но связаны с нейронами предыдущего и следующего слоев. Информация поступает с первого на второй слой, со второго – на третий и т.д. Количество слоев и нейронов в них определяют точность и достоверность получаемых результатов при решении задач, т. е. чем больше слоев и нейронов на каждом слое – тем меньше ошибок и выше надежность работы сети. Однако, если построить слишком большую сеть, то можно столкнуться с уменьшением производительности и увеличением сложности модели. Потому при выборе архитектуры сети следует принимать во внимание условия решаемой задачи. Так как нейронные сети строятся на искусственных нейронах, имеет смысл рассмотреть их строение и функционирование.
Искусственный нейрон (формальный нейрон) – элемент искусственных нейронных сетей, моделирующий некоторые функции биологического нейрона. Главная функция искусственного нейрона – формировать выходной сигнал в зависимости от сигналов, поступающих на его входы. В самой распространенной конфигурации входные сигналы обрабатываются адаптивным сумматором, который выполняет сложение сигналов, поступающих по синаптическим связям от других нейронов и внешних входных сигналов. Затем выходной сигнал сумматора поступает в нелинейный преобразователь для вычисления состояния нейрона, где преобразуется функцией активации, и результат подается на выход (в точку ветвления). Нейрон характеризуется текущим состоянием и обладает группой синапсов – однонаправленных входных связей, соединенных с выходами других нейронов. Общий вид искусственного нейрона приведен на рисунке.
Нейрон имеет аксон – выходную связь данного нейрона, с которой сигнал поступает на синапсы следующих нейронов. Каждый синапс характеризуется величиной синаптической связи (ее весом wi). Текущее состояние нейрона определяется как взвешенная сумма его входов S, формула вычисления которой представлена на рисунке.
Выход нейрона есть функция его состояния: y = f(s).
Активационная (характеристическая) функция – это нелинейная функция, вычисляющая выходной сигнал формального нейрона. На практике при разработке НС часто используют жесткую пороговую, линейную или сигмоидальную функцию. Выбор функции определяется спецификой поставленной задачи, либо ограничениями, накладываемыми некоторыми алгоритмами обучения. Для более подробного ознакомления стоит обратиться к специальной литературе [2, 3].
Схема искусственного нейрона
Далее стоит рассмотреть применения нейронных сетей и их перспективы. Самое, пожалуй, известное применение этой технологии – это распознавание образов и классификация. Более подробно о строении и работе этой технологии можно узнать из книги [4]. В качестве образов могут выступать различные по своей природе объекты: символы текста, изображения, образцы звуков и т. д. При обучении сети предлагаются различные образцы образов с указанием того, к какому классу они относятся. Образец, как правило, представляется как вектор значений признаков. При этом совокупность всех признаков должна однозначно определять класс, к которому относится образец. В случае, если признаков недостаточно, сеть может соотнести один и тот же образец с несколькими классами, что неверно. По окончании обучения сети ей можно предъявлять неизвестные ранее образы и получать ответ о принадлежности к определённому классу. Топология такой сети характеризуется тем, что количество нейронов в выходном слое, как правило, равно количеству определяемых классов. При этом устанавливается соответствие между выходом нейронной сети и классом, который он представляет. Когда сети предъявляется некий образ, на одном из её выходов должен появиться признак того, что образ принадлежит этому классу. В то же время на других выходах должен быть признак того, что образ данному классу не принадлежит. Если на двух или более выходах есть признак принадлежности к классу, считается, что сеть «не уверена» в своём ответе.
Такое применение нейросети крайне полезно, например, правоохранительным органам. Например, в Китае активно работает подобная система. Каждый полицейский оснащен смарт-очками, оборудованными камерой и дисплеем. Очки связаны с базой данных правоохранительных органов Китая. Чтобы проверить личность подозрительного человека, полицейскому надо посмотреть на него с расстояния не больше пяти метров и с ракурса, при котором видно не меньше 70 % лица. Система распознавания лиц автоматически начнет искать совпадения в базе данных; на поиск нужно 2–3 минуты. Если совпадение найдено, система сообщит имя и домашний адрес человека. Первыми устройство начали использовать полицейские города Чжэнчжоу в китайской провинции Хэнань. С 1 февраля они надевают смарт-очки во время дежурства на железнодорожном вокзале Чжэнчжоу, дневной пассажиропоток которого обычно вырастает с 60 до 90 тысяч человек во время китайского нового года. За полторы недели использования смарт-очков полиция уже поймала с их помощью семерых человек, подозреваемых в разных преступлениях – от дорожных аварий до похищения людей. Еще 26 человек были задержаны за то, что пользовались фальшивыми ID-картами.
Вторым наиболее известным свойством данной технологии является прогнозирование. Способности нейронной сети к прогнозированию напрямую следуют из её способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказать будущее значение некой последовательности на основе нескольких предыдущих значений и (или) каких-то существующих в настоящий момент факторов. Следует отметить, что прогнозирование возможно только тогда, когда предыдущие изменения действительно в какой-то степени предопределяют будущие. Например, прогнозирование котировок акций на основе котировок за прошлую неделю может оказаться успешным (а может и не оказаться), тогда как прогнозирование результатов завтрашней лотереи на основе данных за последние 50 лет почти наверняка не даст никаких результатов. Более подробно данная тема рассматривается в книге [5].
Также нейронные сети используются и в медицине. Разработанный фирмой IBM суперкомпьютер Watson оснащен системой искусственного интеллекта, в основе которой лежит технология искусственных нейронов. Основная задача Уотсона – понимать вопросы, сформулированные на естественном языке, и находить на них ответы в базе данных. Watson состоит из 90 серверов IBM p750, каждый из которых оснащён четырьмя восьмиядерными процессорами архитектуры POWER7. Суммарный объём оперативной памяти – более 15 терабайт. Система имела доступ к 200 млн страниц структурированной и неструктурированной информации объёмом в 4 терабайта, включая полный текст Википедии. В 2013 году компьютер IBM Watson поступил в коммерческую эксплуатацию в качестве врача-диагноста. Врачи из института медицинских наук Токийского университета пытались лечить женщину, страдающую от лейкемии, но лечение оказалось неэффективным. Тогда они обратились за помощью к IBM Watson, чтобы попытаться найти более эффективное решение. Диагноз компьютера был неожиданным. Он определил, что женщина на самом деле страдает от другой формы лейкемии, а не от той, от которой её лечили врачи. IBM Watson поставил диагноз с учётом генетических данных пациентки и истории её болезни. Эти параметры компьютер сравнил с информацией из 20 млн других историй болезни в своей базе. Он диагностировал другую форму лейкемии и, соответственно, предложил другое лечение. Подробнее об устройстве и функционировании данной системы можно узнать из книги [6].
Как видно, нейронные сети имеют большие перспективы в будущем. Их применение практически безгранично, будь то распознавание образов и прогнозирование, или же анализ данных и постановка точных диагнозов. Поскольку, экономические, финансовые и социальные системы очень сложны и являются результатом действий и противодействий различных людей, то является очень сложным (если не невозможным) создать полную математическую модель с учетом всех возможных действий и противодействий. Нейронные сети же, способные обучаться на основе вложенных в них данных и результатах прошлых действий – способны решать задачи подобного рода сложности.