Нейронные сети
МЕТОДЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
ЛЕКЦИЯ № 6
В течение последних лекций мы с вами изучали интегральную теорию создания искусственного интеллекта, в которой предлагается отказаться от традиционного взгляда на искусственный интеллект и применить для его создания теорию объектов. Понятно, что это дело отдалённого будущего.
Мы же теперь начнём заниматься вещами более земными и реальными, а именно — нейросетями, генетическими алгоритмами и другими методами, позволяющими построить искусственный интеллект 1-го уровня. На первом уровне объект способен применять известные решения известных классов задач, совершенствоваться эволюционным путём, улучшая соотношение частот применяемых решений и уменьшая стоимость их получения.
НЕЙРОННЫЕ СЕТИ
Нейронные сети начали активно распространяться 20 лет назад, они позволяют решать сложные задачи обработки данных. Нейросетевые методы были названы одной из ключевых технологий японской национальной программы «Вычисления в реальном мире», которая в 1992 году сменила программу создания компьютеров пятого поколения.
Нейронные сети названы так потому, что их архитектура в некоторой степени имитирует построение биологической нервной ткани из нейронов в мозге человека.
И хотя изучению работы человеческого мозга — тысячи лет, первые попытки аппаратного воспроизведения процесса мышления начались с появлением современной электроники. Первый шаг был сделан в 1943 году с выходом статьи нейрофизиолога Уоррена Маккалоха и математика Уолтера Питтса про работу искусственных нейронов и представления модели нейронной сети на электрических схемах.
Рекомендуемые материалы
В 50-х годах появились первые программные модели нейросетей. В 1959 году Бернард Видров и Марсиан Хофф разработали модель MADALINE, она действовала как адаптивный фильтр, устраняющий эхо в телефонных линиях. К слову, эта нейросеть до сих пор находится в коммерческой эксплуатации.
Но в то время потенциал нейронных сетей был сильно преувеличен из-за ограниченных возможностей электроники, и вскоре финансирование работ по созданию нейросетей было свёрнуто. Период спада продолжался до начала 80-х годов, как раз когда началась развиваться современная вычислительная техника.
http://victoria.lviv.ua/html/oio/html/theme5_rus.htm
Итак, нейронные сети появились как результат моделирования биологических процессов.
О биологии
То, что нервная система состоит из множества отдельных клеток, учёные доказали в начале XX века. Эти клетки назвали нейронами. Нейроны обмениваются информацией с множеством своих соседей, ближних и дальних.
Каждый нейрон состоит из сомы и отростков — аксонов и дендритов. Сома — это клетка диаметром от 3 до 100 мкм, содержащая ядро и другие клеточные составляющие, погружённые в цитоплазму. Аксоны — это передатчики сигналов, а дендриты — сильно разветвлённые отростки — приёмники сигналов.
node — узел,
sheath — оболочка
Schwann cell — клетки Шванна(?)
http://en.wikipedia.org/wiki/Neuron
Окончания аксонов и дендритов разбросаны по всему телу. Всего у человека около 25 млрд. нейронов, причём подавляющее их число — где? — в головном мозге, в нём до 20 млрд. нейронов.
Сообщения, которые может передавать нейрон, очень просты. Он может находиться всего в двух положениях: включенном, передающем сигнал, и выключенном. Никаких промежуточных положений ему не дано. И поэтому импульсы нейронов зрительной системы ничем не отличаются от импульсов нервных клеток носа, кожи или уха. Мозг воспринимает их сообщения как образы только потому, что знает, откуда они поступили. Поэтому если постучать пальцем по глазу, то мозг расшифрует этот сигнал как свет. Отсюда как раз и выражение „искры из глаз“.
Получив зрительный, звуковой, осязательный сигнал, нейрон передаёт его в нервный центр, а оттуда после анализа сообщения посылается ответная команда к рабочему органу. Биологи называют эту цепочку рефлекторной дугой. Самый простой пример — кончик пальца почувствовал, что горячо, и человек одёргивает руку.
Импульс движется по аксону, это электрический сигнал.
Некоторые аксоны имеют гигантскую длину. Аксон в пальце жирафа едва достигает 1/10 мм в поперечнике, а проходит расстояние в несколько метров до своего окончания в спинном мозгу. Пучки аксонов и составляют те нервы, которые можно увидеть невооружённым глазом.
От одного нейрона к другому информация передаётся через место соединения, называемое синапсом. Синапс — это область контакта со следующим нейроном, в этом месте происходит химическая реакция, которая и передаёт импульс дендриту. Т.е. по аксону идёт электрический сигнал, а в синапсе — химическая реакция. Синапсы передают сигнал только в одном направлении.
{рисунок c.20}
Нервные импульсы распространяются со скоростью от 50 см/с до 120 м/с. 120 м/с — это 400 км/ч! Быстрей всего идут сигналы от скелетных мышц, а сигналы боли — со скоростью лишь 1 м/с.
Перейдём теперь к искусственному нейрону.
Только ещё назову очень полезную книжечку по нейроуправлению.
Сигеру Омату. Нейроуправление и его приложения. Кн. 2. / Сигеру Омату, Марзуки Халид, Рубия Юсоф; Пер. с англ. Н. В. Батина; Под ред. А. И. Галушкина, В. А. Птичкина. — М.: ИПРЖР, 2000. — 272 с.: ил. (Нейрокомпьютеры и их применение.)
681.5
01-2149
ЧЗТЛ, остался один экз.
Книжечку эту всегда рекомендует Валерий Иванович Гончаров, когда к нему подходят студенты и просят рассказать что-нибудь про нейросети.
Искусственный нейрон
Базовый модуль нейронных сетей — искусственный нейрон — моделирует основные функции естественного нейрона.
Схема искусственного нейрона
Здесь
— входные сигналы (как бы с дендритов);
— весовые коэффициенты;
тета — вес смещения, на входе единица.
Входные сигналы, взвешенные весовыми коэффициентами складываются, проходят через передаточную функцию, которая генерирует результат, который, собственно, и выводится. (Как бы аксоном.)
В существующих нынче пакетах программ искусственные нейроны называются элементами обработки и имеют больше возможностей, чем простой искусственный нейрон, который мы сейчас представили.
Математическая модель нейрона, её как раз и предложили Маккаллок и Питтс, имеет вид:
,
где
— входной сигнал сети для -го нейрона,
— вес смещения,
— сила синаптической связи -го нейрона с -ым,
— выходной сигнал -го нейрона,
— функция выхода.
Для простоты обычно рассматривают только три типа функции выхода:
1) функция знака, или сигнум-функция:
2) линейная функция: ;
3) сигмоидная функция: .
сигмоидная функция:
Необходимо учитывать, что при сигмоидная функция переходит в линейную, а при — в функцию знака.
В 1974 году г-н Вербос предложил концептуальные основы подхода к построению нейросетей, который получил название алгоритма обратного распространения ошибок. Мы рассмотрим этот алгоритм.
Алгоритм обратного распространения
Алгоритм обратного распространения — backpropagation algorithm — основывается на многослойной нейронной сети. В нём используется не менее трёх слоёв нейронов. Для простоты мы трёхслойные сети и будем рассматривать. Три слоя: входной, скрытый и выходной.
Таким образом на выходном слое:
на скрытом слое:
где
Процедура обучения включает представление набора пар входных и выходных образов. Т.е. мы должны показать нашей нейросети, что должно быть на выходе, когда на входе какая-то комбинация сигналов. Сначала нейронная сеть на основе входного образа создаёт собственный выходной образ, а затем сравнивает его с целевым выходным образом. Если различий между фактическим и целевым образами нет, то обучения не происходит. В противном случае веса связей изменяются таким образом, чтобы различие уменьшилось. Мерой различия при этом является функция квадрата ошибки , задаваемая следующим образом:
где
— желаемый вход для -й компоненты -го выходного образа,
— соответствующий фактический выход.
Таким образом, — мера ошибки вход-выход для -го образа, а — общая мера ошибки.
Задача алгоритма — добиться минимума этой ошибки, управляя весовыми коэффициентами. Можно воспользоваться градиентным методом наискорейшего спуска.
{рисунок}
Я не буду здесь подробно расписывать правила для входных и выходных слоёв, чтобы не загружать вас лишней математикой. А сразу перейду к порядку реализации алгоритма обратного распространения.
Алгоритм этот может быть представлен в виде следующих шагов:
Шаг 1. Присвоить начальные значения величинам , , , , и .
— это скорость обучения, ; Это константа, представляющая собой коэффициент пропорциональности между изменением веса связи и градиентом ошибки E относительно веса. Чем больше эта константа, тем больше изменения в весах связей.
— константа, определяющая влияние предыдущего изменения весов на текущее направление движения в пространстве весов связей. Учёный с мировым именем Румельхарт рекомендует использовать величину альфа, приблизительно равную 0,9.
Шаг 2. Подать на нейронную сеть входной сигнал. Задать соответствующий ему желаемый выход , вычислить , и по формуле:
.
— это величина обобщённого сигнала ошибки, задаваемая выражением:
.
Шаг 3. Изменить веса связей на величину:
.
Шаг 4. Вычислить по формуле:
.
Шаг 5. Изменить веса связей на величину:
.
Шаг 6. Положить равным и перейти к шагу 2.
Алгоритм обратного распространения получен на основе градиентного метода наискорейшего спуска и предназначен для поиска минимума ошибки. Это приводит, однако, к поиску локального минимума или точки перегиба. В идеальном же случае должен отыскиваться глобальный минимум, представляющий собой нижнюю точку всей области определения.
{рисунок}
Так как локальный минимум окружён более высокими точками, стандартный алгоритм обратного распространения обычно не пропускает локальных минимумов.
Чтобы избежать ловушек на локальных минимумах, можно изменять параметры обучения, количество скрытых слоёв, начальные значения весов связей. Обычно эти методы разрабатываются так, чтобы попытаться изменить сценарий перемещения по участку, содержащему локальные минимумы и максимумы.
Выбор количества скрытых узлов или скрытых слоёв является проблемой. Регрессивный анализ показывает, что если выбрать достаточно много видов описывающих переменных, то ошибка предсказания окажется небольшой.
(Регрессивный анализ — это нахождение зависимостей определённой величины от других величин.)
Но минимизация квадрата ошибки, достигаемая за счёт увеличения количества нейронов, не означает построения хорошей нейронной сети. Если использовать большое количество нейронов, то нейросеть может с высокой точностью обучаться на зашумлённых данных. В этом случае следует выбрать нейросеть меньшего размера, даже если ошибка при этом оказывается не такой малой.
http://victoria.lviv.ua/html/oio/html/theme5_rus.htm
Сегодня мы в упрощённом виде рассмотрели структуру и функции биологической нейронной сети. Можно видеть, что в терминологии, моделях и функциях, используемых для искусственных нейронных сетей, многое заимствовано из биологических нейронных сетей. В то же время обучение в искусственных нейронных сетях во многом отличается от соответствующих процессов в биологических сетях. Искусственные нейронные сети обучаются на основе упрощённых алгоритмов, адаптирующих синаптические веса. Эти алгоритмы могут классифицироваться на алгоритмы управляемого и неуправляемого обучения. Мы остановились на алгоритме обратного распространения ошибки — это наиболее широко применяемый алгоритм обучения многослойных нейронных сетей. Он составляет основу для большинства схем нейронного управления.
Рекомендуем посмотреть лекцию "1.2. Основные программные компоненты сети".
http://www.pcweek.ru/Year2001/N9/CP1251/Opinions/chapt3.htm
http://www.neuropro.ru/neu.shtml
http://neuronet.narod.ru/Neuroinformatics_r.html
http://nehudlit.ru/0/1/7/
http://www.bogatstvo.ru/atfin/algorit.htm
http://www.orc.ru/~stasson/neurox.html