Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции и вопросы Интеллектуальные ИС (2010, акк....doc
Скачиваний:
50
Добавлен:
11.12.2018
Размер:
954.37 Кб
Скачать

3.5. Нейрокомпьютеры. Персептрон Розенблатта

Формальный нейрон и персептрон Розенблатта. В 1957 г. Ф.Розенблаттом было предложено устройство, названное «Персептрон». В основу его была положена идея объединения искусственных нейронов в сеть, наподобие того, как это наблюдается в природе. Идея искусственного («формального») нейрона была предложена еще в 1943 г. учеными У.Маккаллоком и У.Питсом. Нейрон в их представлении – это вычислительная структура с N входами и одним выходом (который далее может ветвиться) в котором входные сигналы умножаются на некоторую величину, затем суммируются и в зависимости от величины этой суммы нейрон приходит (не приходит) в возбужденное состояние. Он возбуждается, если сумма превышает некоторый порог и нет, если этот порог не превышен. Графически его можно изобразить так (рис. 3.9)

Здесь xi – величина входного сигнала, а wi – коэффициент умножения. Входы нейрона называются синапсами, выход – аксоном Реакция нейрона (с условиями срабатывания) выглядит следующим образом:

r =

Обычно принято считать, что R0 = 0, R1 = 1, в качестве значения порога нередко используют T = 0. Соединение выходов одних нейронов со входами других формирует нейронную сеть.

Простейший персептрон Розенблатта для классификации двух образов – это нейронная сеть, представленная на рис.3.10. Он состоит из трех слоев.

  1. Сетчатки S (системы входных рецепторов произвольным образом связанных с нейронами слоя A).

  2. Ассоциативного слоя A в котором происходит суммирование сигналов рецепторов. Нейроны ассоциативного слоя срабатывают при условии превышения суммарным сигналом порогового значения.

  3. Решающего элемента R, который переходит в возбужденное состояние, если образ принадлежит классу W1 и остается в невозбужденном состоянии, если на вход персептрона подан образ из класса W2.

Рассмотрим как работает данная сеть.

Алгоритм персептрона. Принцип подкрепления-наказания. Работа схемы 1 строится следующим образом.

  1. Элементы сетчатки S формируют выходные сигналы и подают их на элементы ассоциативного слоя.

  2. В ассоциативном слое сигналы рецепторов суммируются

  3. Если сумма превышает заданный порог, нейрон передает сигнал xi на решающий элемент R.

  4. Выходные сигналы нейронов ассоциативного слоя суммируются с весами wi.

  5. Если сумма превышает установленный порог, то нейрон R возбуждается , если нет - остается в невозбужденном состоянии (образ принадлежит классу W2).

Перед тем, как «запустить персептрон в работу» он соответствующим образом настраивается (обучается). Алгоритм обучения строится по принципу подкрепления-наказания и обычно называется алгоритмом персептрона.

Пусть заданы два обучающих множества, представляющие классы W1 и W2 соответственно. Пусть w(1) – начальный вектор весов, задаваемый произвольно (например, все нули). В таком случае k-й шаг обучения выглядит следующим образом.

  1. Если вектор образа x  W1, а скалярное произведение w(k)x(k)  T = 0, (т.е. решающий элемент классифицировал образ как x  W2), то веса w(k) корректируются в сторону увеличения:

w(k+1) = w(k) + cx(k),

где с – произвольная константа, единая для всех xi.

  1. Если образ x  W2, а скалярное произведение w(k)x(k)  T = 0, (т.е. решающий элемент классифицировал образ как x  W1), то веса w(k) корректируются в сторону уменьшения:

w(k+1) = w(k)  cx(k).

  1. Если образ классифицирован правильно, то веса не меняются:

w(k+1) = w(k).

Обратим внимание, что корректировка происходит всегда, если произведение w(k)x(k) = 0.

Итак, настройка состоит в корректировании или не-корректировании весов в зависимости от того, правильно или нет классифицирован образ. Рассматривая коррекцию весов как «наказание» за неверную классификацию, а отсутствие коррекции, как «подкрепление» за правильный ответ, всю процедуру назвали методом подкрепления-наказания. Это – основной метод обучения нейронных сетей. В теории персептронов доказано, что данный алгоритм сходится за конечное число шагов.

Разберем пример (рис. 3.11). Пусть имеются две группы образов, принадлежащих классам W1 и W2. Это (0, 0), (0,1) W1 и (1, 0), (1,1) W2.

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

Перед началом настройки перейдем к пополненным векторам образов: x1 = (0, 0, 1), x2 = (0,1,1), x3 = (1, 0, 1), x4 = (1, 1, 1). Константу c примем равной 1.

Итерация 1.

Зададим w(0) = (0, 0, 0).

В этом случае скалярное произведение для образа x1 = (0, 0, 1)  W1. равно

w(0)x1 = 0*0 + 0*0 + 0*1 = 0.

Произведение равно 0. «Наказываем» сеть корректировкой весов по п.1 алгоритма:

w(1) = w(0) + x1= (0, 0, 1).

Предъявляем образ x2 = (0, 1, 1)  W1. Скалярное произведение

w(1)x2 = 0*0 + 0*1 + 1*1 = 1.

Образ классифицирован правильно. «Подкрепляем» сеть, сохраняя вектор w без изменения.

Предъявляем образ x3 = (1, 0, 1)  W2. Скалярное произведение

w(1)x3 = 0*1 + 0*0 + 1*1 = 1.

Образ из класса W2 классифицирован как образ класса W1. «Наказываем» сеть корректировкой весов по п.2 алгоритма:

w(2) = w(1)  x3 = (1, 0, 0)

Предъявляем образ x4 = (1, 1, 1)  W2. Скалярное произведение

w(2)x4 = 1*1 + 0*1 + 0*1 = 1.

Образ классифицирован правильно. Поскольку на данной итерации происходила корректировка весов, переходим к итерации 2.

Итерация 2.

Предъявляем образ x1 = (0, 0, 1)  W1. Скалярное произведение

w(2)x1 = 1*0 + 0*0 + 0*1 = 0.

Произведение равно 0. Корректируем вектор весов:

w(3) = w(2) + x1 = (1, 0, 1)

Предъявляем образ x2 = (0, 1, 1)  W1. Скалярное произведение

w(3)x2 = 1*0 + 0*1 + 1*1 = 1.

Образ классифицирован правильно. Корректировку весов не производим

Предъявляем образ x3 = (1, 0, 1)  W2. Скалярное произведение

w(3)x3 = 1*1 + 0*0 + 1*1 = 0.

Произведение равно 0. Выполняем корректировку:

w(4) = w(3)  x3 = (2, 0, 0).

Предъявляем образ x4 = (1, 1, 1)  W2. Скалярное произведение

w(4)x4 = 2*1 + 0*1 + 0*1 = 2.

Образ классифицирован правильно. Поскольку на данной итерации происходила корректировка весов, переходим к итерации 3.

Итерация 3.

Предъявляем образ x1 = (0, 0, 1)  W1. Скалярное произведение

w(4)x1 = 2*0 + 0*0 + 0*1 = 0.

Произведение равно 0. Корректируем вектор весов:

w(5) = w(4) + x1 = (2, 0, 1).

Предъявляем образ x2 = (0, 1, 1)  W1. Скалярное произведение

w(5)x2 = 2*0 + 0*1 + 1*1 = 1.

Образ классифицирован правильно. Корректировку весов не производим

Предъявляем образ x3 = (1, 0, 1)  W1. Скалярное произведение

w(5)x2 = 2*1 + 0*1 + 1*1 = 1.

Образ классифицирован правильно. Корректировку весов не производим

Предъявляем образ x4 = (1, 1, 1)  W2. Скалярное произведение

w(5)x4 = 2*1 + 0*1 + 1*1 = 1.

Образ классифицирован правильно. Поскольку на данной итерации происходила корректировка весов, переходим к итерации 4.

Предъявляем образ x1 = (0, 0, 1)  W1. Скалярное произведение

w(5)x1 = 2*0 + 0*0 + 1*1 = 1.

Образ классифицирован правильно. Корректировку весов не производим.

Поскольку все образы x1, x2, x3, x4 с вектором w(5) = (2, 0, 1) были классифицированы правильно, обучение (настройку сети) заканчиваем. Решающей является функция d(x) = 2x1 + 1 = 0 (рис. 3.12).

Распознавание в случае нескольких классов. Отличие персептронов для распознавания нескольких классов состоит в наличии нескольких решающих нейронов, каждый из которых отвечает своему классу (рис. 3.13).

Идеальный случай – когда при предъявлении образа срабатывает единственный выходной нейрон, отвечающий требуемому классу. Однако обычно это не так. В этом случае выходные сигналы ri формируются так, чтобы они могли различаться по величине и специальное сравнивающее устройство устанавливает сигнал какого из распознающих нейронов сильнее. Это соответствует поиску максимума скалярных произведений: d1 (x) = w1x, d2 (x) = w2x, …, dM (x) = wMx. Покрепление-наказание в этом случае происходит по схеме:

Если при предъявлении образа класса Wi для всех i ≠ j выполняется условия di (x) > dj (x), веса не меняются. Если это не так, то производится их корректировка по правилу:

wi(k+1) = wi(k) + cx(k), для класса Wi;

wj(k+1) = wj(k)  cx(k), если di (x)  dj (x);

wl(k+1) = wl(k) , если di (x) > dl (x).

Рассмотренный выше перцептрон не обладает универсальностью. Например, он не способен разделить на два класса образы на рис. 3.14 (объясните почему).

Однако идеи, заложенные Розенблаттом, оказались настолько плодотворны, что породили целое «движение», которое можно назвать нейрокомпьютингом. Это особое направление в информатике, В отличие от обычных компьютеров, нейрокомпьютеры решают задачи не после написания алгоритма их решения с последующим введением его в память ЭВМ для исполнения, а после обучения соответствующей нейросети. Обучение же, как уже ясно, состоит в настройке весов нейронов по обучающим выборкам до достижения удовлетворительного результата. На сегодня помимо перцептрона Розенблатта (фактически, первого нейрокомпьютера) известны многослойные перцептроны, самоорганизующиеся сети (когнитроны Фукусимы), сети Хопфилда, сети, способные обучаться без учителя (сети Кохонена) и т.д.

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

Поскольку с помощью нейросетей решаются главным образом неформализованные задачи, пользователя интересует в первую очередь не построение понятной и теоретически обоснованной зависимости, а получение удовлетворительно работающего устройства-классификатора или устройства-предсказателя. Тем не менее от нейросети часто ждут «логической прозрачности». Логически прозрачной называют сеть, по структуре которой легко можно сформировать понятный пользователю алгоритм решения задачи. Если это не соблюдено, пользователь может испытывать определенное недоверие и разочарование в сети. Для этого пользуются разнообразными приемами т.н. «упрощения сети».

Более подробно с проблемами нейрокомпьютинга можно познакомиться в специальной литературе.