Настоящее и будущее нейронных сетей

advertisement
KiT#58(5).qxd
146
6/9/2006
11:48 AM
Page 146
искуственный интеллект
www.finestreet.ru
Настоящее и будущее
нейронных сетей
Виталий ГРИБАЧЕВ
reshebnik@rambler.ru
аз за разом смелая конструкторская
фантазия воплощала в жизнь только
очередную ползающую или летающую
бездушную железяку. Практически до конца
столетия машины были не в состоянии выполнять простейшие действия, доступные
любому насекомому. Например, выделить
среди многочисленных полевых цветов только цветы определенного вида. Или сделать
то, что свойственно человеку, — скажем, ходить и сохранять при этом равновесие, говорить, улыбаться в ответ на улыбку.
Со временем пришло осознание того, что
простое количественное наращивание оперативной памяти компьютеров и быстродействие процессоров не приведет автоматически к качественному скачку в технологиях.
Чтобы позволить компьютерам подняться на
следующую эволюционную ступень своего
развития и приблизиться в своих возможностях к биологическим объектам, требуется
значительно более глубокое понимание принципов организации биосистем, чем могла
на тот момент похвастать кибернетическая
наука. И начать следовало, как обычно, с построения математической модели. Теория
нейронных сетей в том виде, в котором она
существует сейчас, стала плодом многолетних совместных исследований нейрофизиологов и программистов.
Впервые модель искусственной нейронной
сети была предложена У. С. МакКаллоком
и У. Питтсом в 1943 году. МакКаллок и Питтс
показали и строго обосновали возможность
реализации такой сетью «...любого функционирования... при условии, что оно поддается сколь-нибудь логически точному и однозначному описанию конечным числом слов»
(цитируется по книге [1]). Исследователи этого периода ориентировались прежде всего
на структурные моменты, например в известной модели Хебба (1949 г.) было введено
понятие нейронной ассоциации и синапса
Хебба. Согласно этой теории всякому определенному внешнему раздражителю соответствует цепочка нейронов, связанных посред-
Оптимизм исследователей начала XX века, надеявшихся в ближайшем
будущем получить мыслящие и человекоподобные машины, к середине
столетия сменился разочарованием и растерянностью. Прогресс в области
искусственного интеллекта достигался не столь быстро, как хотелось бы.
Все попытки создать интеллектуальные или, по крайней мере, способные
принимать самостоятельные решения машины неизменно терпели фиаско.
Р
Рис. 1. Схема базового процессорного элемента
ством синаптической мембраны. Если корреляция с внешним раздражителем нарастает,
усиливается и синаптический контакт и, следовательно, улучшаются условия для распространения возбуждения. Если корреляция ослабевает, синаптический контакт ухудшается.
Эта и другие подобные теории вскоре привели американского ученого Ф. Розенблатта
к модели мозга, названной им перцептроном
(от лат. perceptio — «восприятие»). Сам ученый определяет перцептрон как «некоторое
множество элементов, генерирующих сигналы (нейроны), связанные в единую сеть».
Логические свойства перцептрона по Розенблатту определяются его топологией, то есть
связями между нейронами, набором алгоритмов, управляющих генерацией, и передачей
сигналов, а также набором функций памяти,
или алгоритмов преобразования свойств сети в результате активности. Начиная с этого
момента изображения нейронных сетей приобретают знакомый нам вид автономных
кружочков, соединенных многочисленными
связями, а структурно-функциональные схемы, которыми оперировали первые исследователи, уходят в прошлое.
На рис. 1 изображена функциональная схема модели нейрона, соотнесенная с биологическим нейроном (адалина). На рис. 2 нарисован простейший однослойный перцептрон.
На рис. 3 изображена простейшая однослойная сеть перцептронного типа. В данном
случае сеть имеет один входной нейрон (1),
один выходной (4), один нейрон скрытого
слоя (3) и один нейрон смещения (2), выделенный голубым цветом.
Прежде чем использовать нейронную сеть
для выполнения какой-либо прикладной задачи, необходимо настроить коэффициенты
W1–W3, чтобы выходные сигналы сети соответствовали заданной целевой функции.
Процесс настройки весовых коэффициентов
в нейросетевых терминах называется обучением. Нейроны смещения в многослойных
сетях выполняют особую функцию. В физиологии нервной деятельности есть понятие
Рис. 2. Простейший перцептрон
Рис. 3. Однослойная нейронная сеть
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 5 '2006
KiT#58(5).qxd
6/9/2006
11:48 AM
Page 147
искуственный интеллект
«закон всё или ничего», в соответствии с которым нейрон возбуждается, только если
входной раздражитель превысит некоторую
пороговую величину. Вот эта пороговая величина — «смещение» — как раз и задается
нейроном смещения, без него нейронная сеть
не сможет функционировать.
Перцептронные нейронные сети были основательно изучены М. Минским и С. Пейпертом в 1969 году [2]. Из-за слабого развития теоретической базы нейросетевых вычислений ученые сделали ошибочные выводы
о принципиальной невозможности эффективного обучения многослойной сети произвольной целевой функции. Авторитет данного исследования показался в то время настолько незыблемым, что дальнейшие работы
в области нейронных сетей были заморожены на много лет, до тех пор пока в 1986 году
исследовательская группа по параллельным
вычислениям (группа PDP: Д. Румельхарт,
Дж. Хинтон, Р. Вильямс, США) не разработала вычислительную процедуру обучения многослойных нейронных сетей (МНС), получившую название «error back propagation metod»
(BPM — метод обратного распространения
ошибки) [3]. После этого интерес к искусственным нейронным сетям и их практическому применению приобрел характер настоящего бума, продолжающегося до сих пор.
Однако, несмотря на явные успехи нейросетевых исследований, нейронные сети до сих
пор не вышли за пределы отдельных удачных опытных разработок и не превратились
в рядовую технологию серийного выпуска.
И тому есть серьезные причины.
Проблемы обучения
нейронных сетей
Хотя основной алгоритм обучения многослойных нейронных сетей (BPM) открыт уже
достаточно давно и весьма хорошо исследован, обучение нейронных сетей в данный момент по-прежнему больше напоминает шаманство, нежели технологию.
Исследователи вынуждены пробовать множество разнообразных архитектур сетей, обучать каждую из них в отдельности и затем
выбирать ту, которая наилучшим образом
решает поставленную задачу.
Разумеется, существуют общие рекомендации по выбору архитектуры сети для решения определенного класса задач, существует также известная формула для грубой
оценки количества элементов скрытого слоя
по количеству необходимого числа синаптических весов в многослойной сети с сигмоидальными передаточными функциями:
где n — размерность входного сигнала, m —
размерность выходного сигнала, N — число
элементов обучающей выборки [4].
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 5 '2006
Получив необходимое число весов, можно
рассчитать число нейронов в скрытых слоях.
Например, если речь идет о двухслойной сети, число нейронов в скрытом слое будет:
Однако это еще не решает проблемы, так
как после задания архитектуры нейронной
сети ее все равно необходимо обучать. По своей сути нейронная сеть является универсальным аппроксиматором. Это означает, что
в процессе настройки она не вычисляет целевую функцию, а как бы лишь подбирает
внутренний набор функций, при сложении
которых образуется функция, выдающая
на выходе ряд значений, напоминающий исходный ряд, предъявленный ей в процессе
обучения (аппроксимационный полином).
Отсюда следует вывод, что выходные данные
работающей нейронной сети всегда будут содержать ошибку, причем величина этой
ошибки никогда заранее не известна. Известно только, что в процессе обучения данная
ошибка, возможно, будет уменьшена до некоторого приемлемого уровня. Рабочая точка нейросетевой системы в процессе обучения скользит по поверхности ошибок по направлению к глобальному минимуму целевой
функции. Причем, в силу неровности рельефа поверхности ошибок, сеть может застрять в локальном минимуме очень далеко
от ожидаемого глобального. Если склон локального минимума достаточно крут, а шаг
обучения слишком мал, чтобы рабочая точка выкатилась на его край, наступает состояние, называемое параличом сети, при котором сеть на обучающей выборке дает недостаточно точные результаты, а обучение при
этом все равно останавливается.
Существует также состояние, когда ошибка обучения начинает беспорядочно колебаться (осциллировать) и сеть входит в состояние
переобучения (рис. 4). Это соответствует
слишком точной аппроксимации обучающих
данных.
Также имеются трудности, связанные
с внутренней организацией входных данных.
147
Это так называемое «проклятие размерности». В общем случае входные данные содержат шум и некоторое количество малозначащей информации. При попытке заставить
сеть разобрать все это по кластерам без предварительной подготовки входных данных мы
рискуем получить неверные обобщения.
С другой стороны, если внутренняя структура данных нам неизвестна (задача кластеризации в чистом виде), мы в подобной ситуации вынуждены увеличивать число входных
элементов сети. Необходимое число входных
нейронов быстро возрастает с увеличением
размерности кластеризуемого пространства
(приблизительно как 2N), а вслед за увеличением числа входных нейронов неизбежно изменяется и число нейронов скрытого слоя,
иначе процесс кластеризации может сопровождаться потерями значимой информации.
Это усложняет процесс обучения нейронной
сети и делает его менее предсказуемым.
Желающим получить более подробную информацию о процессах, происходящих в нейронных сетях во время обучения, рекомендую
замечательную книгу Роберта Каллана [5].
Свою первую нейронную сеть я программировал именно по этой книге.
Таким образом, для успешного решения задачи обучения нейронной сети необходимо:
1. Правильно выбрать структуру сети (то есть
количество слоев и количество нейронов
в каждом слое). Выбор подходящей структуры сети должен соответствовать характеру решаемой задачи.
2. Правильно выбрать параметры обучения,
в частности шаг обучения сети, норму обучения, количество обучающих примеров,
сам алгоритм обучения.
3. Правильно подготовить входные данные.
Желательно, чтобы перед началом обучения исследователь в общих чертах представлял себе структуру входных данных,
отфильтровал шум, желательно также избавиться от малозначащих составляющих
входных данных. В некоторых случаях
предварительная обработка данных может
предусматривать линейное преобразование, выделяющее из всей массы входных
данных некоторый набор наиболее значи-
Рис. 4. Состояние переобучения: 1 — истинная зависимость; 2 — слишком точная аппроксимация полиномом
KiT#58(5).qxd
148
6/9/2006
11:48 AM
Page 148
искуственный интеллект
мых направлений или векторов (метод
главных компонент, Bishop, 1995). Иногда
такое преобразование можно поручить дополнительной нейронной сети, содержащей в скрытом слое меньше нейронов, чем
во входном или выходном слоях, что позволяет понижать размерность входных
данных. То есть как бы сжимать их.
Из всего вышесказанного следует: обучение
нейронной сети в настоящее время по-прежнему является нетривиальной и в значительной степени творческой задачей, что сильно
затрудняет широкомасштабное и повсеместное применение нейросетевых технологий для
различных целей. Обычно на практике производят предварительное моделирование
и обучение сети в какой-либо подходящей для
этих целей среде, например в MatCad, затем
экспортируют полученную матрицу коэффициентов в программную или аппаратную
реализацию сети.
Рис. 5. Структура нечеткой сети на три управляющих правила:
1 — блок фуззификации; 2 — блок нечеткого вывода; 3 — блок дефуззификации
В случае использования нечеткой логики
структура сети полностью определяется начальными условиями, то есть набором упОбзор некоторых наиболее
равляющих правил, количеством входов
перспективных структур
и выходов. В этом случае каждому из начальных условий сопоставляется отдельный слой
нейронных сетей
нейронов. Таким образом, зная начальные
На самом деле всё не столь мрачно, как мо- условия, мы можем произвести послойный
жет показаться на первый взгляд. Существу- расчет топологии сети. Методика подобного
ют сети, структура которых полностью опре- расчета подробно описана в книге Рутковделяется структурой входных данных, и суще- ских [6].
ствуют алгоритмы обучения, не застревающие • L1 = 2 — количество нейронов первого слоя
в локальных минимумах. Например, генетисоответствует количеству входных каначеский или алгоритмы, основанные на нечетлов.
кой логике. Об этом мы сейчас и поговорим. • L2 = nLN = 2L3 = 6 нейронов во втором
Топология сетей,
слое сети, где n — количество нейронов
основанных на нечеткой логике
первого слоя, N — количество нечетких
правил (так как в каждое нечеткое правиНечеткая логика допускает существование
ло входит каждая из входных переменных).
у булевой переменной промежуточных значений, в отличие от традиционной логики, где • L3 = N = 3 — соответствует количеству незначений всего два (истина — 1) и (ложь — 0).
четких правил (мы задались тремя).
Это позволяет распространить применение • L4 = 2 нейрона, предназначенные для сумметодов математической логики на классы
мирования сигналов предыдущего слоя.
явлений, к которым традиционная логика • L5 = 1 — выходной слой содержит один
применяться не могла. Например, для опинейрон потому, что у нас всего один высания степени соотношения между явлениходной канал.
ями, или степени достоверности. С помощью
Общий вид полученной сети представлен
нечеткой логики, к примеру, можно строить на рис. 5. Следует отметить, что структура
модели, описывающие поведение игроков нечеткой нейронной сети всегда соответстна валютных рынках. Поскольку в данном вует формальной логике нечеткого логичеслучае мы неизбежно должны были бы ского вывода, в соответствие с которой входпользоваться некими оценками степени до- ная четкая величина подвергается операции
верия игроков к той или иной входящей ин- фуззификации путем пропускания ее через
формации, очевидно, что то же самое опи- набор так называемых функций принадлежсание, основанное на традиционной логике, ности µa (в нашем случае — это функции акбыло бы затруднительно. Более подробную тивации нейронов слоя L2), затем произвовводную статью о нечеткой логике можно дят операцию нечеткого вывода, согласно
почитать на сайте w
ww
.reshebnik.n
et.r
u набору управляющих правил (слой L 3),
(стоит также обратить внимание на раздел и в заключение для получения четкой выходссылок).
ной величины производят дефуззификацию
Со временем исследователи убедились, что (в нашем случае эта операция выполняется
аппарат нечеткой логики крайне удобен для слоями L4 и L5).
реализации с помощью нечетких нейронных
Каждое нечеткое управляющее правило таксетей.
же может быть представлено в виде некотоДля примера рассмотрим топологию не- рой функции принадлежности µB. Таким обчеткой сети на два входных канала, один вы- разом, общая формула функционирования
ходной канал и три управляющих правила. нечеткой нейронной сети будет иметь вид:
.
Здесь y — выходная четкая величина, yk —
точка, в которой функция принадлежности
µB достигает максимального значения (центр
распределения функции принадлежности),
N — количество нейронов в слое, k — номер
текущего нейрона. Знаки суммирования соответствуют нейронам слоя L4, а операция деления — нейрону слоя L5. На вход функции
принадлежности µB в числителе подаются нечеткие выходные значения нейронов слоя L2,
полученные после стадии фуззификации.
К нечетким нейронным сетям так же, как
и ко всем прочим, применим традиционный
способ обучения посредством алгоритма
BPM, однако в данном случае настройка коэффициентов связи сети сводится лишь к настройке коэффициентов связей, идущих
к верхнему нейрону слоя L4. Все остальные
коэффициенты связей сети фиксированные
и равны 1. Такой подход значительно уменьшает объем вычислений, необходимых для
настройки сети, гарантирует сходимость алгоритма обучения и в разы увеличивает скорость обучения.
Возможность устанавливать полное соответствие между математическим представлением процедуры нечеткого вывода и физической структурой сети, а также упрощенный
алгоритм настройки коэффициентов связей
является значительным преимуществом нечетких нейронных сетей и обеспечивает им
широчайшую сферу применения.
Топология сетей RBF
(Radial Basis Function)
В отличие от традиционных многослойных нейронных сетей, которые в принципе
могут иметь неограниченное число скрытых
слоев и нейронов, RBF-сети имеют только
один скрытый слой, состоящий из нейронов
с радиально-базисными функциями, и один
выходной нейрон. Дело в том, что согласно
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 5 '2006
KiT#58(5).qxd
6/9/2006
11:48 AM
Page 149
искуственный интеллект
теореме Т. Ковера, нелинейные проекции образов в некоторое многомерное пространство могут быть линейно разделены с большей
вероятностью, чем их проекции в пространство с меньшей размерностью. В переводе
на русский язык это означает, что если взять
достаточно много нейронов скрытого слоя
и отобразить на них сигналы с нейронов
входного слоя, то задача кластеризации может быть решена практически для любого набора входных данных. Если обозначить вектор слоя радиальных функций:
вектор весовой матрицы сети как w = [w1, w2, ...wn],
и вектор выходных значений как d = [d1, d2, ...dn],
общее уравнение функционирования сети
можно записать в виде матричного уравнения:
или в векторной форме:
ФLw=d,
откуда получаем вектор весов выходного нейрона сети:
Рис. 6. Структура RBF-сети
перцептронов. В случае если из начальных
условий параметры RBF-функций являются
известными, получить коэффициенты нейронов выходного слоя можно за один шаг,
просто решив матричное уравнение сети.
Для подбора количества нейронов скрытого слоя обычно используются эвристические
методы. Таким образом, к положительным
факторам можно отнести легкость настройки данного типа сетей, к отрицательным —
необходимость в некоторых случаях использовать эвристику.
Топология сетей двунаправленной
ассоциативной памяти (сети BAM —
Bidirectorial Associative Memory)
Предложена Б. Коско. Состоит из двух слоев нейронов, включенных встречным образом, как показано на рис. 7.
w = Ф–1Ld.
Радиальные функции представляют собой
класс функций, принимающих ненулевые
значения только вокруг некоторых заранее
выбранных центров и равны нулю вдали
от этих центров, в окрестности, превышающей некоторый радиус. Представителем таких функций является, например, функция
Гаусса.
Рис. 7. Структура сети BAM
где σi — параметр, от значения которого зависит ширина (радиус) функции, а сi — центр
распределения функции. Структура RBF-сети представлена на рис. 6.
Для успешного обучения подобной сети
следует, во-первых, подобрать параметры сi
и σi , во-вторых, подобрать веса нейронов выходного слоя.
Учитывая уравнение функционирования
RBF-сети, можно сделать вывод, что основной проблемой при обучении сетей RBF является подбор параметров RBF-функций
и количества нейронов скрытого слоя.
Для этих целей может успешно применяться алгоритм обратного распространения
ошибки, который в случае использования
RBF-сетей также работает значительно эффективнее, чем при обучении многослойных
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 5 '2006
Сети BAM служат для запоминания образцов, другими словами, если в процессе обучения на входы сети последовательно представлять образцы и соответствующим образом настраивать весовую матрицу, то сеть
запоминает предложенные пары образцов.
Если после окончания обучения на одну
из двух противоположных сторон сети подать какой-либо вектор из числа запомненных, то сеть воспроизведет на противоположной стороне комплиментарный вектор.
Принцип обучения сетей BAM заключается в пошаговой настройке коэффициентов
путем решения матричного уравнения:
149
где х и y — соответственно входной и выходной векторы предъявленного образца.
Для обучения можно применять стандартный
алгоритм BPM, таким образом, в сети протекает постепенно затухающий маятникообразный процесс, когда каждый из противоположных слоев попеременно становится то входным слоем, то выходным, по которому
вычисляются ошибки. Обучение продолжается до тех пор, пока ошибки нейронов для
данного образца не станут ниже некоторого
заранее выбранного значения.
Такая конфигурация сети применяется
в случаях, когда необходимо запоминать наборы образцов. Достоинства сети в легкости
и безусловной сходимости алгоритма обучения (по сути, настраиваем всего один слой!).
Существенный недостаток применения сети
заключается в том, что с увеличением количества запоминаемых образцов быстро растет число нейронов в слоях сети и число межнейронных связей. Соответственно увеличиваются вычислительные затраты на настройку
коэффициентов и громоздкость сети.
Разумеется, этим кратким обзором не исчерпывается все многообразие современных
нейросетевых архитектур. Кроме того, в процессе решения практических задач исследователю очень часто приходится применять
разнообразные гибридные структуры сетей,
поскольку ни одна из существующих нейросетевых архитектур, взятая в отдельности,
не в состоянии обеспечить решение поставленной задачи.
Несмотря на значительные успехи, достигнутые в нейросетевых технологиях, общепринятой устоявшейся методики, позволяющей гарантированно подобрать необходимую конфигурацию сети в зависимости
от конкретной задачи, до сих пор не создано.
Это обстоятельство увеличивает время проектирования, затрудняет практическое применение нейронных сетей и делает результат
недостаточно предсказуемым, превращая
каждую отдельную разработку если не в полноценное научное исследование, то, по крайней мере, в небольшую НИОКР.
Нейронные сети
и искусственный интеллект
Между искусственными нейронными сетями и традиционным ИИ существует такая
же принципиальная разница, какая существует между человеческим сознанием и отдельной популяцией нейронных клеток
в пробирке.
Исследования на тему ИИ базируются
на так называемой гипотезе символьных систем. Эта гипотеза предполагает, что если
создать достаточно объемистую память, занести в нее достаточно много довольно
сложно организованных структур данных
и связать все это достаточно хитрыми алгоритмами обработки, то можно получить
машину, поведение которой и способность
KiT#58(5).qxd
150
6/9/2006
11:48 AM
Page 150
искуственный интеллект
перерабатывать информацию ничем не будут отличаться от человеческого. По сути дела, это проецирование на область ИИ общефилософского принципа — закона перехода количества в качество.
Но есть один весьма существенный момент. Для создания системы ИИ в традиционном понимании необходимо в явном виде запрограммировать весь процесс приобретения и использования полученного
знания. При этом проектировщики такой
системы неизбежно вторгаются в недостаточно исследованную на сегодняшний момент
область. Им необходимо понять, как живые
существа приобретают новые знания и в каком виде они хранятся внутри. Очевидно,
часть знаний мы получаем из опыта, часть —
в виде готовых правил, а часть информации
достается нам генетически в виде рефлексов.
Но и это еще не все. Существуют определенные сложности с построением модели рассуждений (например, каскадные умозаключения, когда каждое последующее умозаключение делается на основе предыдущего
и корректируется с учетом вновь поступившей информации), наконец, традиционный
ИИ испытывает значительные трудности
с построением механизмов самомодифика-
ции своей внутренней структуры, то есть
с организацией процесса обучения. Таким образом, возможности нейронных сетей в некоторых смыслах превосходят традиционный ИИ. Так, в нейронной сети достаточно
легко организовать процесс самомодификации структуры путем удаления или добавления отдельных нейронов. Значительно легче
организуется и процесс обучения, поскольку
сеть обучается по сути, как «черный ящик»,
на примерах. Надобности в построении
структуры данных и разработке правил работы с ними у программиста в данном случае нет. Однако очевидно, что искусственный
мозг на паре нейронов не построишь, а с увеличением количества нейронов стремительно возрастает практическая сложность обучения подобной сети. А потому, вероятно,
лучшим выходом на данном этапе будет комбинирование этих двух основных подходов.
Искусственные нейронные сети можно с успехом использовать для моделирования рецепторов и первичной обработки информации, а традиционный ИИ хорош в области
наиболее абстрактных обобщений.
Кроме того, видимо пришло время более
масштабных экспериментов, чем проводились до сих пор. В этой связи следует отме-
тить, например, зарубежный проект CYC
ht
tp:
//ww
w.cyc.c
om и отечественный проект
«Ева» ht
tp:/
/aigood.na
rod.r
u.
■
Литература
1. Розенблатт Ф. Принципы нейродинамики: Перцептрон и теория механизмов мозга. М.: Мир.
1965.
2. Минский М., Пейперт С. Перцептроны. М.: Мир.
1971.
3. Rumelhart D. E., Hinton G. E., Williams R. J. Learning
internal representations by error propagation // Parallel
Distributed Processing. 1986. Vol. 1, № 8.
4. Круглов В. В., Дли М. И., Голунов Р. Ю. Нечеткая логика и искусственные нейронные сети:
Учеб. пособие. М.: Издательство физико-математической литературы. 2001.
5. Каллан Р. Основные концепции нейронных сетей. Пер. с англ. М.: Издательский дом «Вильямс». 2001.
6. Рутковская Д., Пилиньский М., Рутковский Л.
Нейронные сети, генетические алгоритмы и нечеткие системы. М.: Горячая линия — Телеком.
2004.
7. Круглов В. В., Борисов В. В. Искусственные нейронные сети теория и практика. М.: Горячая линия — Телеком. 2002.
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 5 '2006
Download