Разделы
Счетчики
Нейронные сети
Нейронная сеть представляет собой совокупность большого числа сравнительно простых элементов - нейронов, топология соединений которых зависит от типа сети. В основу искусственных нейронных сетей положены следующие черты живых нейронных сетей, позволяющие им хорошо справляться с нерегулярными задачами: простой обрабатывающий элемент - нейрон, очень большое число нейронов участвует в обработке информации, один нейрон связан с большим числом других нейронов (глобальные связи), изменяющиеся по весу связи между нейронами, массированная параллельность обработки информации.
Прототипом для создания нейрона послужил биологический нейрон головного мозга. Биологический нейрон имеет тело, совокупность отростков - дендритов, по которым в нейрон поступают входные сигналы, и отросток иного рода - аксон, передающий выходной сигнал нейрона другим клеткам. Точка соединения дендрита и аксона называется синапсом. Упрощенно функционирование нейрона можно представить следующим образом.
Нейрон получает от дендритов набор (вектор) входных сигналов. В теле нейрона оценивается суммарное значение входных сигналов. Однако входы нейрона неравнозначны. Каждый вход характеризуется некоторым весовым коэффициентом, определяющим важность поступающей по нему информации. Таким образом, нейрон не просто суммирует значения входных сигналов, а вычисляет скалярное произведение вектора входных сигналов и вектора весовых коэффициентов. Далее нейрон формирует выходной сигнал, интенсивность которого зависит от значения вычисленного скалярного произведения. Если оно не превышает некоторого заданного порога, то выходной сигнал не формируется вовсе - нейрон "не срабатывает". И затем выходной сигнал поступает на аксон и передается дендритам других нейронов.
Поведение искусственной нейронной сети зависит как от значения весовых параметров, так и от функции возбуждения нейронов. Известны три основных вида функции возбуждения: пороговая, линейная и сигмоидальная. Для пороговых элементов выход устанавливается на одном из двух уровней в зависимости от того, стал ли суммарный сигнал на входе нейрона больше или меньше некоторого порогового значения. Для линейных элементов выходная активность пропорциональна суммарному взвешенному входу нейрона. Для сигмоидальных элементов в зависимости от входного сигнала выход варьируется непрерывно (но не линейно) по мере изменения входа. Сигмоидальные элементы имеют больше сходства с реальными нейронами, чем линейные или пороговые, но любой из этих типов можно рассматривать лишь как приближение.
Дальше обсудим известные модели нейронных сетей: модель Маккалоха и Питтса, модель Розенблата, модели Хопфилда и Больцмана, модель на основе обратного распространения. Также рассмотрим структуру и особенности каждой из моделей, а затем перечислим основные задачи, решаемые на основе нейронных сетей, и одновременно опишем способы реализации таких сетей.
Модель нейронной сети Маккалоха
Теоретические основы нейроматематики были заложены в начале 40-х годов прошлого века. В 1943 году У.Маккалох и его ученик У.Питтс сформулировали основные положения теории деятельности головного мозга. Ими были получены следующие результаты. Во-первых, разработана модель нейрона как простейшего процессорного элемента, выполняющего вычисление переходной функции от скалярного произведения вектора входных сигналов и вектора весовых коэффициентов. Во-вторых, предложена конструкция сети таких элементов для выполнения логических и арифметических операций. В-третьих, сделано основополагающее предположение о том, что такая сеть способна обучаться, распознавать образы, обобщать полученную информацию.
Несмотря на то, что за прошедшие годы нейроматематика ушла далеко вперед, многие утверждения Маккалоха остаются актуальными и поныне. В частности, при большом разнообразии моделей нейронов принцип их действия, заложенный Макклохом и Питтсом, остается неизменным.
Недостатком данной модели является сама модель нейрона - "пороговый" вид переходной функции. В формализме У.Маккалоха и У.Питтса нейроны имеют состояния 0 или 1 и пороговую логику перехода из состояния в состояние. Каждый нейрон в сети определяет взвешенную сумму состояний всех других нейронов и сравнивает ее с порогом, чтобы определить свое собственное состояние. Пороговый вид функции не предоставляет нейронной сети достаточную гибкость при обучении и настройке на заданную задачу. Если значение вычисленного скалярного произведения даже незначительно не достигает до заданного порога, то выходной сигнал не формируется. Это значит, что теряется интенсивность выходного сигнала (аксона) данного нейрона и, следовательно, формируется невысокое значение уровня на взвешенных входах в следующем слое нейронов.
Модель нейронной сети Розенблата
Серьезное развитие нейрокибернетика получила в работах американского нейрофизиолога Френсиса Розенблата (Корнельский университет). В 1958 году он предложил свою модель нейронной сети. Розенблат ввел в модель Маккаллока и Питтса способность связей к модификации, что сделало ее обучаемой. Эта модель была названа персептроном. Первоначально персептрон представлял собой однослойную структуру с жесткой пороговой функцией процессорного элемента и бинарными или многозначными входами. Первые персептроны были способны распознавать некоторые буквы латинского алфавита. Впоследствии модель персептрона была значительно усовершенствована.
Персептрон применялся для задач автоматической классификации, которые в общем случае заключаются в разделении пространства признаков между заданным количеством классов. В двухмерном случае требуется провести линию на виртуальной плоскости признаков, отделяющую одну область (класс признаков) от другой. Персептрон способен делить пространство только прямыми линиями, то есть делить пространство на плоскости.
Алгоритм обучения персептрона выглядит следующим образом. Системе предъявляется эталонный образ. Если выходы системы срабатывают правильно, весовые коэффициенты связей не изменяются. Если выходы срабатывают неправильно, весовым коэффициентам дается небольшое приращение в сторону повышения качества распознавания.
Серьезным недостатком персептрона является то, что не всегда существует такая комбинация весовых коэффициентов, при которой имеющееся множество образов будет распознаваться данным персептроном. Причина этого недостатка состоит в том, что лишь небольшое количество задач предполагает, что линия, разделяющая эталоны, будет прямой. Обычно это достаточно сложная кривая, замкнутая или разомкнутая. Если учесть, что однослойный персептрон реализует только линейную разделяющую поверхность, применение его там, где требуется нелинейная поверхность, приводит к неверному распознаванию (такая проблема называется линейной неразделимостью пространства признаков). Выходом из этого положения является использование многослойного персептрона, способного строить ломаную границу между распознаваемыми образами.
Описанная проблема не является единственной трудностью, возникающей при работе с персептронами. Еще одна трудность - также слабо формализован метод обучения персептрона. Персептрон поставил ряд вопросов, работа над решением которых привела к созданию более "разумных" нейронных сетей и разработке методов, нашедших применение не только в нейрокибернетике (например, метод группового учета аргументов, применяемый для идентификации математических моделей).
Модель нейронной сети Хопфилда
В 70-е годы прошлого века интерес к нейронным сетям значительно упал, однако работы по их исследованию продолжались. Был предложен ряд интересных разработок, таких, например, как когнитрон, способный хорошо распознавать достаточно сложные образы (иероглифы и тому подобное) независимо от поворота и изменения масштаба изображения. Автором когнитрона является японский ученый И.Фукушима.
Новый виток быстрого развития моделей нейронных сетей, который начался больше десятка лет тому назад, связан с работами Амари, Андерсона, Карпентера, Кохена и других, и в особенности Хопфилда, а также под влиянием обещающих успехов оптических технологий и зрелой фазы развития сверхсложных микросхем для реализации новых архитектур.
Начало современному математическому моделированию нейронных вычислений было положено работами Хопфилда в 1982 году, в которых была сформулирована математическая модель ассоциативной памяти на нейронной сети с использованием правила Хеббиана для программирования сети. Но не столько сама модель послужила толчком к появлению работ других авторов на эту тему, сколько введенная Хопфилдом функция вычислительной энергии нейронной сети. Это аналог функции Ляпунова в динамических системах. Показано, что для однослойной нейронной сети со связями типа "все на всех" характерна сходимость к одной из конечного множества равновесных точек, которые являются локальными минимумами функции энергии, содержащей в себе всю структуру взаимосвязей в сети. Понимание такой динамики в нейронной сети было и у других исследователей. Однако Хопфилд и Тэнк показали, как конструировать функцию энергии для конкретной оптимизационной задачи и как использовать ее для отображения задачи в нейронную сеть. Этот подход получил развитие и для решения других комбинаторных оптимизационных задач. Привлекательность подхода Хопфилда состоит в том, что нейронная сеть для конкретной задачи может быть запрограммирована без обучающих итераций. Веса связей вычисляются на основании вида функции энергии, сконструированной для поставленной задачи.
Развитием модели Хопфилда для решения комбинаторных оптимизационных задач и задач искусственного интеллекта является машина Больцмана, предложенная и исследованная Джефери Е.Хинтоном и Р.Земелом. В ней, как и в других моделях, нейрон имеет состояния 0 или 1 и связь между нейронами обладает весом. Каждое состояние сети характеризуется определенным значением функции консенсуса (аналог функции энергии). Максимум функции консенсуса соответствует оптимальному решению задачи.
Имеется следующая информация о результатах моделирования на компьютерах работы нейронной сети. Моделировалась асинхронная работа сети Хопфилда. Сеть работает хорошо, то есть без ошибок восстанавливает эталонные образы из случайных, если в нее записывается не более 15 процентов эталонных образов. Испытания проводились для 30 нейронов и для 100 нейронов в сети. Бралось некоторое количество случайных векторов в качестве эталонных и строилась соответствующая матрица весов связей. Моделирование при 100 нейронах было существенно более медленным процессом, чем при 30 нейронах, хотя качественная картина и в том и в другом случаях была одна и та же. Приблизительно 88 процентов испытаний заканчивались в эталонных состояниях, 10 процентов - в устойчивых состояниях, близких к эталонным. При расстоянии менее или равном 5 между начальным и эталонным векторами всякое эталонное состояние достигалось в 90 процентах случаев. С увеличением расстояния вероятность попадания в наиболее близкое эталонное состояние гладко падала. При расстоянии 12 вероятность была равна 0.2. Устойчивые состояния, слишком близкие друг к другу, имеют тенденцию "сливаться", они попадают в одну впадину на энергетической поверхности.
Программировалась задача коммивояжера на основе сети Хопфилда. Сетью из 100 нейронов для 20 различных случайных начальных состояний были определены маршруты, 16 из которых были приемлемыми, и 50 процентов попыток дали 2 пути 2.83 и 2.71 (цифры приводятся, чтобы показать, как они близки) при кратчайшем пути 2.67. Это результаты моделирования работы сети с непрерывной моделью нейрона.
Моделировалась также задача коммивояжера, но для сети типа машины Больцмана. Моделирование проводилось при следующих значениях управляющих параметров: A=0.95, L=10, M=100 (A - положительное число меньше единицы, но близкое к ней, L - число испытаний, которые проводятся без изменений, M - число последовательных испытаний, не приводящих к изменению состояния машины как критерия завершения процесса). Процесс запускался 100 раз для n=10 (всего в сети N=n2 нейронов) и 25 раз для n=30 при различных нормальных состояниях машины Больцмана. Для n=10 получился оптимальный результат, для n=30 - решение на 14 процентов хуже оптимального. Отметим, что вероятностный механизм функционирования машины Больцмана дает возможность получить на ней несколько лучшие результаты оптимизации, чем на модели Хопфилда.
Модель сети с обратным распространением
Способом обратного распространения (back propogation) называется способ обучения многослойных нейронных сетей. В таких сетях связи между собой имеют только соседние слои, при этом каждый нейрон предыдущего слоя связан со всеми нейронами последующего слоя. Нейроны обычно имеют сигмоидальную функцию возбуждения. Первый слой нейронов называется входным и содержит число нейронов, соответствующее распознаваемому образу. Последний слой нейронов называется выходным и содержит столько нейронов, сколько классов образов распознается. Между входным и выходным слоями располагается один или более скрытых (теневых) слоев. Определение числа скрытых слоев и числа нейронов в каждом слое для конкретной задачи является неформальной задачей.
Принцип обучения такой нейронной сети базируется на вычислении отклонений значений сигналов на выходных процессорных элементах от эталонных и обратном "прогоне" этих отклонений до породивших их элементов с целью коррекции ошибки. Еще в 1974 году Поль Дж.Вербос изобрел значительно более эффективную процедуру для вычисления величины, называемой производной ошибки по весу, когда работал над своей докторской диссертацией в Гарвардском университете. Процедура, известная теперь как алгоритм обратного распространения, стала одним из наиболее важных инструментов в обучении нейронных сетей. Однако этому алгоритму свойственны и недостатки, главный из которых - отсутствие сколько-нибудь приемлемых оценок времени обучения. Понимание, что сеть в конце концов обучится, мало утешает, если на это могут уйти годы. Тем не менее, алгоритм обратного распространения имеет широчайшее применение. Например, успех фирмы NEC в распознавании букв был достигнут именно благодаря алгоритму обратного распространения.
Задачи, решаемые на основе нейронных сетей
В литературе по нейрокомпьютерным вычислениям встречается значительное число признаков, которыми должна обладать задача, чтобы применение нейронной сети было оправдано и сама сеть могла бы решить поставленную задачу. Важными признаками считаются следующие: отсутствует алгоритм или не известны принципы решения задачи, но накоплено достаточное число примеров; проблема характеризуется большими объемами входной информации; данные неполны или избыточны, зашумлены, частично противоречивы.
Таким образом, нейронные сети хорошо подходят для распознавания образов и решения задач классификации, оптимизации и прогнозирования. Ниже приведен перечень возможных промышленных применений нейронных сетей, на базе которых либо уже созданы коммерческие продукты, либо реализованы демонстрационные прототипы.
Банки и страховые компании: - автоматическое считывание чеков и финансовых документов - проверка достоверности подписей - оценка риска для займов - прогнозирование изменений экономических показателей Административное обслуживание: - автоматическое считывание документов - автоматическое распознавание штриховых кодов Нефтяная и химическая промышленность: - анализ геологической информации - идентификация неисправностей оборудования - разведка залежей минералов по данным аэрофотосъемок - анализ составов примесей - управление процессами Военная промышленность и аэронавтика: - обработка звуковых сигналов (разделение, идентификация, локализация, устранение шума, интерпретация) - обработка радарных сигналов (распознавание целей, идентификация и локализация источников) - обработка инфракрасных сигналов (локализация) - обобщение информации - автоматическое пилотирование Промышленное производство: - управление манипуляторами - управление качеством - управление процессами - обнаружение неисправностей - адаптивная робототехника - управление голосом Служба безопасности: - распознавание лиц, голосов, отпечатков пальцев Биомедицинская промышленность: - анализ рентгенограмм - обнаружение отклонений в электрокардиограммах Телевидение и связь: - адаптивное управление сетью связи - сжатие и восстановление изображений
Представленный перечень далеко не полон. Ежемесячно западные средства массовой информации сообщают о новых коммерческих продуктах на базе нейронных сетей. Так, фирма LIAC выпускает аппаратуру для контроля качества воды. Нейросистемы фирмы SAIC находят пластиковые бомбы в багаже авиапассажиров. Специалисты инвестиционного банка Citicomp (Лондон) с помощью программного нейропакета делают краткосрочные прогнозы колебаний курсов валют.
Способы реализации нейронных сетей
Нейронные сети могут быть реализованы двумя путями: первый - это программная модель нейронной сети, второй - аппаратная реализация. На современном рынке изделия, основанные на использовании механизма действия нейронных сетей, первоначально появились в виде нейроплат. В качестве типичного примера нейроплаты можно назвать плату МВ 86232 японской фирмы Fujitsu. На плате размещены процессор цифровой обработки сигналов и оперативная память емкостью 4 Мбайт, что позволяет использовать такую плату для реализации нейронных сетей, содержащих до тысячи нейронов. Есть и более совершенные платы.
Основными коммерческими аппаратными изделиями на основе нейронных сетей являются и, вероятно, в ближайшее время ими будут и оставаться нейрочипы, то есть нейронные микросхемы. Сейчас выпускаются более 20 типов нейрочипов, параметры которых порой различаются на несколько порядков. Среди них - модель ETANN фирмы Intel. Данная микросхема, выполненная по микронной технологии, является реализацией нейронной сети с 64 нейронами и 10240 синапсами. Ее цена - 2 тысячи долларов. К числу самых дешевых нейрочипов (стоимость - 41 доллар) относится модель MD 1220 фирмы Micro Devices. Эта микросхема реализует нейронную сеть с 8 нейронами и 120 синапсами.
Среди разрабатываемых в настоящее время нейрочипов выделяются модели фирмы Adaptive Solutions (США) и Hitachi (Япония). Нейрочип фирмы Adaptive Solutions, вероятно, станет одним из самых быстродействующих: объявленная скорость обработки составляет 1,2 миллиарда межсоединений в секунду (нейронная схема в чипе содержит 64 нейрона и 262144 синапса). Нейрочип фирмы Hitachi позволяет реализовать нейронную схему, содержащую до 576 нейронов. Такие нейрочипы, несомненно, станут основой новых нейрокомпьютеров и специализированных многопроцессорных изделий.
Большинство сегодняшних нейрокомпьютеров представляют собой просто персональный компьютер или рабочую станцию, в состав которых входит дополнительная нейроплата. К их числу относятся, например, компьютеры серии FMR фирмы Fujitsu. Такие системы имеют бесспорное право на существование, поскольку их возможностей вполне достаточно для разработки новых алгоритмов и решения большого числа прикладных задач методами нейроматематики. Однако наибольший интерес представляют специализированные нейрокомпьютеры, непосредственно реализующие принципы нейронных сетей. Типичными представителями таких систем являются компьютеры семейства Mark фирмы TRW (первая реализация персептрона, разработанная Розенблатом, называлась Mark I).
Модель Mark III фирмы TRW представляют собой рабочую станцию, содержащую до 15 процессоров семейства Motorola 68000 с математическими сопроцессорами. Все процессоры объединены шиной VME. Архитектура системы, поддерживающая до 65 тысячи виртуальных процессорных элементов с более чем 1 миллионом настраиваемых соединений, позволяет обрабатывать до 450 тысяч межсоединений в секунду.
Mark IV - это однопроцессорный суперкомпьютер с конвейерной архитектурой. Он поддерживает до 236 тысяч виртуальных процессорных элементов, что позволяет обрабатывать до 5 миллионов межсоединений в секунду. Компьютеры семейства Mark имеют общую программную оболочку ANSE (Artificial Neural System Environment), обеспечивающую программную совместимость моделей. Помимо указанных моделей фирма TRW предлагает также пакет Mark II - программный эмулятор нейронных сетей.
Другой интересной моделью является нейрокомпьютер NETSIM, созданный фирмой Texas Instruments на базе разработок Кембриджского университета. Его топология представляет собой трехмерную решетку стандартных вычислительных узлов на базе процессоров 80188. Компьютер NETSIM используется для моделирования таких моделей нейронных сетей как сеть Хопфилда-Кохонена и нейронных сетей с обратным распространением. Его производительность достигает 450 миллионов межсоединений в секунду.
Фирма Computer Recognitiion Systems (CRS) продает серию нейрокомпьютеров WIZARD/CRS 1000, предназначенных для обработки видеоизображений. Размер входного изображения - 512x512 пикселей. Модель CRS 1000 уже нашла применение в промышленных системах автоматического контроля.
Сегодня на рынке представлено много моделей нейрокомпьютеров. На самом деле их, видимо, гораздо больше, но наиболее мощные и перспективные модели по-прежнему создаются по заказам военных. К сожалению, не имея достаточной информации о моделях специального назначения, трудно составить представление об истинных возможностях современных нейрокомпьютеров.
Подходы к обучению
Нейронные сети принадлежат классу коннекционистских моделей обработки информации. Основная их черта - использовать взвешенные связи между обрабатывающими элементами как принципиальное средство запоминания информации. Обработка в таких сетях ведется одновременно большим числом элементов, благодаря чему они терпимы к неисправностям и способны к быстрым вычислениям.
Задать нейронную сеть, способную решить конкретную задачу, - это значит определить модель нейрона, топологию связей, веса связей. Нейронные сети различаются между собой меньше всего моделями нейрона, а в основном топологией связей и правилами определения весов или правилами обучения, программирования.
По структуре связей сети делятся на два больших класса: однослойные и многослойные. К однослойным относятся модель Хопфилда и последующие разработки, некоторые типы модели нейронной сети, известной под названием "машина Больцмана". Многослойная сеть имеет входной, выходной и скрытые слои, на входной подается информация, с выходного снимается ответ, скрытые слои участвуют в обработке. В настоящее время существует два подхода к решению задачи обучения нейронной сети возможности распознавания образов, оптимизации и так далее. Один, исторически более ранний, состоит в постепенной модификации весовых коэффициентов в процессе обучения.
Подходы к обучению однослойных и многослойных сетей различны. Обучение многослойных сетей состоит в том, что на основе набора примеров (входное состояние -> выходное состояние) постепенно подбираются веса всех связей так, чтобы каждое входное состояние вызывало соответствующее выходное. Обучающие алгоритмы представляют собою итерационные процедуры с медленным приближением к окончательным значениям весов связей. Этот способ впервые был реализован в персептроне Розенблата и локальных правилах обучения на основе модели Хебба. В последующие годы такой подход получил дальнейшее развитие в алгоритмах типа обратного распространения. В однослойных сетях часто удается выразить веса связей через параметры задачи (так обстоит дело с моделью Хопфилда и однослойной машиной Больцмана). Подход состоит в вычислении значений синаптических весов на основе заданного описания функционирования нейронной сети как "черного ящика". Если сеть должна реализовать заданную функцию, ее рассматривают как набор элементов пороговой логики и задача сводится к кусочно-линейной аппроксимации этой зависимости и синтезу соответствующего автомата.
Для общего случая, когда описание поведения сети задано в виде набора векторов возможных состояний, поиск синаптических весов сводится к решению соответствующей системы нелинейных уравнений. Такое решение было впервые найдено Хопфилдом. Появление этой работы в свое время продемонстрировало эффективность применения аналитических методов для интерпретации поведения нейронных сетей и привело к разработке проекционного алгоритма, позволяющего вычислять значения синаптических весов, сократив тем самым затраты времени на обучение.
Исследования проекционного алгоритма показывают, что при очевидных достоинствах ему свойственен ряд недостатков, в частности склонность сети к ложным реакциям и низкая эффективность при доучивании, когда необходимо ввести новые данные, не разрушая информации, запомненной ранее. Кроме того, до настоящего времени принято считать, что данный алгоритм пригоден лишь для полносвязных нейронных сетей и неприменим в сетях другой архитектуры. Указанные недостатки и малая изученность таких вопросов как структура и частота появления ложных реакций, реализация итеративных процедур доучивания и применение в неполносвязных сетях затрудняют использование проекционного алгоритма в исследованиях по нейробионике и при проектировании нейропроцессоров. Недостатком проекционного алгоритма с точки зрения решения задач прогнозирования является то, что при обучении необходимо сначала сформировать эталоны распознаваемых образов. В задачах прогнозирования это либо вовсе невозможно, либо чрезвычайно затруднено. Эталоны должны формироваться в самой сети на основе анализа исторических данных.
Знайкина копилка, 5 февраля 2005 года