Сообщество студентов и преподавателей: блог Сазонова Дмитрия
Сообщество студентов и преподавателей
На главную страницу Статьи | Методика | Неделя информатики | Тесты | Гостевая книга
Еще по данной теме
 




Черномашенцев Максим Сергеевич
ЧТО ТАКОЕ НЕЙРОННАЯ СЕТЬ
Черномашенцев М.С. E-mail

В последние 10 – 15 лет происходит бурный рост интереса к искусственным нейронным сетям (НС). Для этого есть несколько причин. Во-первых, теоретические трудности внутри так-называемой модели перцептрона, популярного в конце 60-х годов, были решены. Во-вторых, появился дешевый доступ к мощным и недорогим процессорным устройствам, который облегчил как проведение исследований в области создания моделей, так и работу с реальными задачами.

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

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

Итак, дадим определение нейронной сети.

Нейронная сеть – это набор простых решающих элементов с высокой степенью взаимных связей.

Хотя мы и дали это короткое определение, нет универсально принятого определения нейронной сети. Большинство специалистов, работающих в этой области, согласятся, что НС это сеть из многих простых решающих устройств ("элементов"), возможно имеющих небольшие объемы локальной памяти. Эти элементы соединяются друг с другом по каналам связи ("соединениям"), по которым обычно передаются числовые данные, закодированные каким-либо образом. Элементы нейронной сети оперируют только со своими локальными данными, а на входы они получают информацию по соединениям.

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

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

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

Приведем несколько других определений нейронных сетей.

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

(DARPA Neural Network Study, AFCEA International Press, 1988, p.60)

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

  1. Знание приобретается сетью путем процесса обучения.
  2. Силы межнейронных соединений, известные как синаптические веса, используются для запоминания знания.

(Haykin S., Neural Networks: A Comprehensive Foundation, NY: Macmillan, 1994, p.2)

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

(Nigrin A., Neural Networks for Pattern Recognition, Cambridge, MA: The MIT Press, 1993, p.11)

Искусственные нейронные системы, или нейронные сети --- это физические ячеистые системы, которые могут приобретать, запоминать и использовать экспериментальное знание.

(Zurada J.M., Introduction To Artificial Neural Systems, Boston: PWS Publishing Company, 1992, p.xv)

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

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

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

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

Нейронные сети представляют интерес для достаточно большого числа специалистов:

  • Программистов – нейронные сети открывают область новых методов для решения сложных задач.
  • Физики используют нейронные сети для моделирования явлений в статистической механике и для многих других задач.
  • Нейрофизиологи могут использовать нейронные сети для моделирования и исследования функций мозга.
  • Психологов нейронные сети обеспечивают механизмом для тестирования моделей некоторых психологических теорий.
  • Другие специалисты (особенно коммерческих и индустриальных направлений) могут также интересоваться нейронными сетями по самым разнообразным причинам.

Простейшая модель нейронной сети

В простейшей модели, предложенной Мак-Каллоком и Питтсом [2], система биологических нейронов моделируется набором бинарных (т.е. имеющих только два состояния 0 и 1) объектов, связанных друг с другом и имеющих некоторый пороговый уровень возбуждения, при достижении которого состояние нейрона изменяется: выход нейрона Vi принимает потенциал 0 или 1. Выходной сигнал нейрона через аксон подается на синапс и через синаптическую связь (которая отличается для разных пар нейронов) подается через входные отростки нейрона (дендриты) на вход j-го нейрона. Таким образом образуется глобальная петля обратной связи, в связи с чем система нейронов обладает нетривиальным нелинейным поведением. Схематическое изображение такого нейрона дано на рис. "Модель нейрона".

Наиболее общей упрощенной формой нейрона является пороговый нейрон, динамика которого описывается уравнением:

(1.1)

где Vi нейроны, соединенные с нейроном Vi через (синапсические) веса Wij. Веса могут быть как положительными (возбуждающими), так и отрицательными (гасящими). Параметр θi является порогом, соответствующим мембранному потенциалу в биологическом нейроне. Неинейная передаточная функция g(t) обычно является сигмоидной функцией:

(1.2)

и изображена на рис. "Вид сигмоидной функции". "Температура" T определяет плавность перехода из одного состояния в другое: малая величина T делает переход близким к ступенчатому, а большая --- делает выход почти константой. Предел T -> 0 соответствует бинарным нейронам, которые в литературе обычно обозначаются Si.

Алгоритм в модели Мак-Каллока – Питтса является асинхронным.

Типы нейронных сетей

Обычно нейронные сети классифицируются по их архитектуре. Наиболее часто используемыми в физике высоких энергий являются прямоточные (feed-forward) ИНС и рекурентные (recurrent) ИНС (рис. "Прямоточная ИНС" и "Рекурентная ИНС").

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

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

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

Пример программы в NeuroSolution

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

Одной из таких программ является NeuroSolution. Для обучения необходим набор входных и соответствующих им выходных сигналов (обучающая выборка), содержащийся в файле образцов (pattern file). Его необходимо создать перед процессом обучения. Формат файла - текстовая база данных с разделителями - символ табуляции. Файл может быть текстовым. Необходимо отметить, что здесь и далее в качестве разделителя целой и дробной части числа используется точка.Тестовый файл (test file) используется для тестирования сети и имеет такой же формат, как и файл образцов.Выходной файл (output file) служит для вывода результатов работы программы и может содержать в себе (в зависимости от выбранных параметров программы) номер образца, входные сигналы, соответствующие им выходные сигналы образца и полученные на выходе сети и состояние каждого нейрона сети.

Дополнительно возможно сохранить параметры файла образцов, размер и конфигурацию сети в файле проекта, называемом "setup file". Если произвести сохранение после обучения сети, то в этом файле сохранятся также все вычисленные весовые коэффициенты.

Сначала необходимо создать файл входных данных, используя, например, блокнот. Вначале выбираем NBuilder (на панели быстрого вызова). Выбираем к примеру Multilayer Perceptron.

Рис. 5

Далее указать программе место положение этого файла. Затем укажите место файла выходных данных, также созданный заранее. После того как вы разберётесь с данными, необходимо перейти к окну Multiplayer, где определите количество нейронов, а затем перейти к меню каждого из них и произвести необходимые настройки.

Рис. 6

После этого можете не производить ни каких изменений. В последнем окне нажмите Build.

Рис. 7

После этого произойдёт переход в рабочую область, где вы можете приступить к обучению сети.

Приведём пример сети. Входные данные (x 0 0 1 1;y 0 1 0 1), выходные
(z 0 1 1 0), нейронов 5, количество эпох 10. Обучаем и проверяем. Слева выходные данные, справа полученные сетью.

Рис. 8

Заключение

Надеюсь, что я смог вас заинтересовать данной темой. Запомните главное – нейронная сеть открывает новые возможности, которые ранее не могли быть реализованы в последовательном компьютере. Задачи, которые сложно решались целым коллективом специалистов, теперь могут быть решены с помощью правильно обученной сети. И возможно через очень короткое время мы сможем наконец изучить строение мозга человека, благодаря сетям, созданным по образам его частей. И может быть когда-нибудь компьютер заговорит с нами на понятном человеческом языке.

Список использованной литературы

  1. И. Кисель, “Введение в искусственные нейронные сети” http://nuweb.jinr.ru/~kisel/ANN/.
  2. Сочков А.Л., Соболев А.А., Калин С.А. “Программы для обучения и тестирования нейронных сетей”.
  3. Суровцев И.С., Клюкин В.И., Пивоварова Р.П. Нейронные сети. — Воронеж: ВГУ, 1994. — 224с.
  4. Уоссермен Ф. Нейрокомпьютерная техника: теория и практика. — М.: Мир, 1992.
  5. Горбань А.Н. и др. Нейроинформатика. — Электронная публикация.


Случайный афоризм
Совет - это не руководство к действию, а информация к размышлению.  

 

Rambler's Top100

Использование любых материалов этого сайта, без разрешения автора, ЗАПРЕЩЕНО
Автор сайта Сазонов Д. О. (Подробнее) Форма обратной связи