ИД "Мой компьютер"   "Игроград"   "Реальность фантастики"   Ассамблея "Портал"
Сделать стартовой   

 
Домашняя страница
Расширенный поиск
E-mail

 

N 16 (447)




МОЙ КОМПЬЮТЕР




  Новости:

 
МК
Украина
Игры
Интернет
Железо
Софт
Пресс-релизы

  Статьи:

 
Уголок читателя
Прочее
Имеющий уши
Программирование
Интернет
Железо
Софт
Игры


 
КОНКУРСЫ



Правила конкурсов

Конкурс "АВЧ"

Рейтинг победителей


ОПРОС

Вы посещаете нас:
первый раз
1-2 раза в месяц
1-2 раза в неделю
1-2 раза в день
более 2-х раз в день Что привело Вас к нам?
поиск информации
интерес к статьям
интерес к новостям
любопытство
реклама
другое








?????????? ?????????????-??????? ??????


www.geodata.org.ua















Argumentum ad ignorantiam!

 

статьи
Прочее



 

На правах рекламы  
Прочее  
Репортаж  
Юмор  




    Прочее


Нервные сети

Павленко Максим
N 7 (334) 14.02.2005


Вторая статья цикла (начало в МК № 3 (330) за 2005 год) посвящена теории создания искусственных нейронных сетей. А вскоре, скажем по секрету, мы научим вас их строить.

Наверное, я буду недалек от истины, если скажу, что читатели журнала МК так или иначе связаны с компьютерами. Естественно, разговоры зачастую вертятся вокруг компьютеров, программного обеспечения, компиляторов, интерпретаторов... И рано или поздно все приходят к мысли: «А как сделать машину умнее! Чтобы она сама…». А что именно «сама», не так уж и важно. Важно, чтобы умной была, рассуждала, да и поговорить…

Ведь не зря в голливудских фантастических фильмах нормальные :-) гении больше общаются с компьютером, чем с живыми и приятными женщинами — притом на естественном человеческом языке, да еще и с юмором! Вот и мы рассуждаем подобным образом — и чаще всего в качестве средства интеллектуализации ЭВМ всплывает в памяти знакомое выражение «искусственные нейронные сети». Что это, кто это и как это — зачастую никто не знает. А на вопрос, как оно работает, и вовсе редко услышишь внятный ответ. При этом все всё и о обо всём знают, и у каждого есть свое мнение, которое человек отстаивает до хрипоты.

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

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

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

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

Уголок маньяка

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

Выход из этого темного уголка

Давайте посмотрим на рисунок 1.

Рис. 1. Структура исскуственного нейрона.

Это простая математическая абстракция биологического нейрона.

Xn — значения, которые подаются на вход нейрона для обработки.

Нейрон состоит из элементов трех типов: умножителей (синапсов), сумматора и нелинейного преобразователя.

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

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

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

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

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

• уравнение для сумматора, которое учитывает внешние входные сигналы для нейрона (например, прикосновение к горячему утюгу) и значения коэффициентов передачи синапсов:

S = (X1 W1 +X2  W2 + ... + Xn  Wn) (1)

• и теперь окончательно для выходного сигнала нейрона необходимо полученную сумму в виде аргумента подставить в активационную функцию нейрона f (о ней ниже):

y = f(S) (2)

Необходимо рассмотреть также, что такое b на рисунке, и зачем оно нужно (посмотрите внимательно, там это есть?) b — это ничто иное, как единичная функция, которая подается на все — подчеркиваю, все — нейроны, или, по-другому, функция смещения. Зачем, спросите вы? Объяснение простое. Оказывается, биологические нейроны имеют как бы опорную частоту, относительно которой они отсчитывают и передают свои сигналы. В искусственных же нейронах работа идет почти на частоте процессора (если бы!!!), а опорой служит та самая маленькая единичка, относительно которой настраивается работа каждого нейрона и всей сети в целом.

Теперь вернемся к активационным функциям нейронов. Их существует великое множество. Приведу часть из них [1,2].

Таблица.

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

Одной из наиболее распространенных является логистическая функция или сигмоид (функция S-образного вида):

(3)

При изменении параметра а сигмоид может изменять свои свойства, становясь более пологим и при а = 0 вырождаясь в горизонтальную линию на уровне 0.5.

Рис. 2. Сигмоид.

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

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

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

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

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

•  выходные нейроны, выходные значения которых представляют выходы нейронной сети; преобразования в них осуществляются по выражениям (1) и (2);

•  промежуточные нейроны, составляющие основу нейронных сетей, преобразования в которых выполняются также по выражениям (1) и (2).

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

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

С точки зрения строения ИНС можно выделить три основных типа таких сетей:

•  полносвязные ( рис. 3 — а);

•  многослойные или слоистые ( рис. 3 — б);

•  слабосвязные (с локальными связями) ( рис. 3 — в).

Рис. 3. Архитектуры нейронных сетей.

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

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

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

Кроме входного и выходного слоев в нейронной сети есть один или несколько скрытых. Связи от выходов нейронов некоторого слоя n ко входам следующего слоя n+1 называются последовательными ( рис. 4).

Рис. 4. Многослойный персептрон прямого распространения.

Еще существуют сети с обратными связями, которых также есть несколько видов.

В качестве примера сетей с обратными связями на рис. 5 представлены частично-рекуррентные сети Элмана.

Рис. 5. Частично-рекурентные сети Элмана.

В предложенной ниже литературе [1, 2, 3, 6] описаны типы задач, решение которых возможно с применением сетей определенной структуры.

Рассмотрим вопрос обучения сетей, составленных из таких элементов.

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

Этот этап называется обучением нейронной сети.

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

Давайте сначала рассмотрим методы решения задачи обучения ИНС.

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

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

• локальной оптимизации с вычислением частных производных первого порядка;

• локальной оптимизации с вычислением частных производных первого и второго порядка;

• стохастической оптимизации;

• глобальной оптимизации.

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

Ко второй группе относятся: метод Ньютона, методы оптимизации с разреженными матрицами Гессе, квазиньютоновские методы, метод Гаусса-Ньютона, метод Левенберга-Маркардта.

Стохастическими методами являются: поиск в случайном направлении и имитация отжига, метод Монте-Карло (численный метод статистических испытаний), метод генетических алгоритмов.

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

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

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

Этот алгоритм обучения ИНС получил название процедуры обратного распространения. Рассмотрим на его основе подход к решению задачи обучения ИНС.

На рисунке 6 представлена структура алгоритма обратного распространения ошибки. Рассмотрим ее.

Рис. 6. Процесс обучения нейронной сети.

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

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

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

Если же разница велика, тогда происходит переход к процедуре коррекции весов ИНС.

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

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

Теперь коснемся вопроса емкости ИНС, то есть числа образов, предъявляемых на ее входы, которые она способна научиться распознавать. Для сетей с числом слоев больше двух вопрос остается открытым.

Как показано в [1], для ИНС с двумя слоями, то есть выходным и одним скрытым слоем, емкость сети Cd оценивается так:

Nw/Ny< Cd<Nw/Nylog(Nw/Ny)

где Nw — число подстраиваемых весов, Ny — число нейронов в выходном слое.

Следует отметить, что данное выражение получено с учетом некоторых ограничений. Во-первых, число входов Nx и нейронов в скрытом слое Nh должно удовлетворять неравенству Nx+Nh>Ny. Во-вторых, Nw/Ny>1000. Однако вышеприведенная оценка выполнялась для сетей с активационными функциями нейронов в виде порога, а емкость сетей с гладкими активационными функциями, например — (3), обычно больше [2]. Кроме того, полученная оценка емкости подходит абсолютно для всех возможных входных образов, которые могут быть представлены Nx входами.

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

Вот, пожалуй, и все основные вопросы теории нейронных сетей.

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

При некоторой доле упорства достаточно просто реализовать ИНС и процедуру ее обучения на своем компьютере. Потренировать ее, изучить ее свойства. И, быть может, она у вас заговорит :-) — значит, вы точно гений!

Литература

1. Нейрокомпьютеры и интеллектуальные роботы./ Под ред. Н.М. Амосова.- К: Наукова думка, 1991г. — 272 с.

2. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика.- М: Горячая линия-Телеком, 2001. — 382 с.

3. Куссуль Э.М. Ассоциативные нейроподобные структуры.- К: Наукова думка, 1992. — 144 с.

4. С. Короткий Нейронные сети: основные положения (из Интернета).

5. Sankar K. Pal, Sushmita Mitra, Multilayer Perceptron, Fuzzy Sets, and Classification //IEEE Transactions on Neural Networks, Vol.3, N5,1992, pp.683-696.

6. С. Короткий Нейронные сети: алгоритм обратного распространения (из Интернета).

7. Ф. Уоссермен Нейрокомпьютерная техника, М., Мир, 1992.

8. Bernard Widrow, Michael A. Lehr, 30 Years of Adaptive NeuralNetworks: Perceptron, Madaline, and Backpropagation //Artificial Neural Networks: Concepts and Theory, IEEE Computer Society Press, 1992, pp.327-354.

9. Paul J. Werbos, Backpropagation Through Time: What It Does and How to Do It //Artificial Neural Networks: Concepts and Theory, IEEE Computer Society Press, 1992, pp.309-319.

10. Бондарев В.Н., Аде Ф.Г. Искусственный интеллект: Учебное пособие для вузов. — Севастополь: СевНТУ, 2002. — 615 с.







Расширенный поиск 
 

О проекте  Рекламодателям  Карта сайта  Контакт  Обратная связь 

© ИД "Мой компьютер"®, 1998-2004
Купить деревообрабатывающий станок | Где купить бетон | Як купити квартиру від Києвом | Купити алюмінієвий профіль | return_links(); ?>