Справочник от Автор24
Поделись лекцией за скидку на Автор24

Нейрокомпьютерные экономические системы

  • ⌛ 2010 год
  • 👀 670 просмотров
  • 📌 649 загрузок
  • 🏢️ КубГТУ
Выбери формат для чтения
Статья: Нейрокомпьютерные экономические системы
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Нейрокомпьютерные экономические системы» doc
ГОУ ВПО «Кубанский государственный технологический университет» (КубГТУ) Армавирский механико-технологический институт Кафедра внутризаводского электрооборудования и автоматики Дубенко Ю.В. Нейрокомпьютерные экономические системы Конспект лекций для студентов дневной и заочной форм обучения специальности 080801 (351400) – Прикладная информатика (по областям) Армавир 2010 ВОПРОСЫ для подготовки к ЭКЗАМЕНУ. 1. Характерные черты искусственных и биологических нейросетей. Идея коннекционизма. 2. Биологический нейрон. Структура. Функции. 3. Формальный нейрон. Модели формальных нейронов. 4. Виды функций активации. 5. Схема абстрактного нейрокомпьютера. Сравнение нейрокомпьютера с машиной фон Неймана. 6. Нейрокомпьютеры и их место среди высокопроизводительных ЭВМ. 7. Классификация нейронных сетей по виду топологии. 8. Классификация нейронных сетей по способу решения задачи. 9. Методика решения задач в нейросетевом базисе. 10. Парадигмы обучения нейросетей. Основные типы правил обучения. 11. Персептрон Розенблатта. Алгоритм обучения. 12. Линейная разделимость и персептронная представляемость. 13. Проблема функции ИСКЛЮЧАЮЩЕЕ ИЛИ. 14. Многослойный персептрон. Структура сети. Персептронные алгоритмы обучения. 15. Алгоритм решения задачи с помощью многослойного персептрона. Примеры формализации задач. 16. Алгоритм обратного распространения ошибки. Проблема локальных минимумов. 17. Структура сети Кохонена. Процедура конкуренции. 18. Алгоритм обучения сети Кохонена и его геометрическая интерпретация. 19. Рекуррентные сети. Сеть Хопфилда. 20. Сеть Хопфилда. Энергия и динамика сети. 21. Обучение сети Хопфилда. Сеть Хопфилда как ассоциативная память. 22. Модификации сети Хопфилда. Сеть Хэмминга. 23. Двунаправленная ассоциативная память. 24. Решение задачи комбинаторной оптимизации с помощью сети Хопфилда. 25. Решение задачи комбинаторной оптимизации с помощью генетических алгоритмов. 26. Метод имитации отжига. Машина Больцмана. 27. Звезды Гроссберга. Основные понятия. 28. Сеть встречного распространения. Алгоритм обучения. 29. Проблема стабильности-пластичности восприятия. Сеть АРТ-1. 30. Сеть АРТ-1. Структура описание элементов сети. 31. Работа сети АРТ-1. Запоминание и классификация векторов сетью. 32. Классификация нейроимитаторов. 33. Элементная база для аппаратной реализации нейрокомпьютеров. 34. Особенности ПЛИС как элементной базы нейрокомпьютеров. 35. Особенности ЦСП как элементной базы нейрокомпьютеров. 36. Нейрочипы. Классификация нейрочипов. 37. Компоненты нейрокомпьютера. 38. Способы предобработки (препроцессирования) данных. 39. Интерпретатор ответов сети. 40. Оценка качества работы нейронной сети. 41. Нечеткая логика. Нечеткие нейронные сети. ЛЕКЦИЯ №1 1. Краткий исторический обзор. 2. Классы задач, решаемых нейронными сетями. 3. Обобщенная структурная схема нейрокомпьютера. 4. Машина фон Неймана по сравнению с биологической нейронной системой. 5. Определения нейрокомпьютера. 1. Краткий исторический обзор. Считается, что теория нейронных сетей, как научное направление, впервые была обозначена в 1943 г. классической работе МакКаллока и Питтса "Логическое исчисление идей, относящихся к нервной активности", в которой утверждалось, что, в принципе, любую арифметическую или логическую функцию можно реализовать с помощью простой нейронной сети. Рис.1 Две ветви эволюции ЭВМ Две базовые архитектуры компьютеров - последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам - появились практически одновременно. Концептуально они оформились в 30-40-х годах. Первая - в теоретической работе Тьюринга 1936 г., предложившего гипотетическую машину для формализации действий человека, и затем уже в практической плоскости - в так и не законченном отчете фон Неймана 1945 г. на 101 странице, обобщившего уроки создания первой ЭВМ ENIAC и предложившего методологию конструирования машин с запоминаемыми программами (ENIAC программировался штекерами). Фон Нейман, кстати, использовал не только идеи Тьюринга. Так, в качестве базовых элементов ЭВМ фон Нейман предложил модифицированные формальные нейроны (!) Мак-Каллока и Питтса - основателей нейросетевой архитектуры. Интерес к реализации нейроподобных систем, способных решать интеллектуальные задачи, возрос в конце пятидесятых годов. В это время появился ряд научных работ, раскрывающих фундаментальные принципы переработки информации в живых системах. В конце 50-х - начале 60-х с этим направлением связывали большие надежды, в основном благодаря Фрэнку Розенблатту, разработавшему первое обучаемое нейросетевое устройство для распознавания образов, персептрон (от английского perception - восприятие). Персептрон был впервые смоделирован в 1958 году, причем его обучение требовало около получаса машинного времени на одной из самых мощных в то время ЭВМ IBM-704. Аппаратный вариант - Mark I Perceptron - был построен в 1960 г. и предназначался для распознавания зрительных образов. Его рецепторное поле состояло из матрицы фотоприемников 20x20, и он успешно справлялся с решением ряда задач - мог, например, различать транспаранты некоторых букв. Тогда же возникли первые коммерческие нейрокомпьютинговые компании. Энтузиазм этого героического периода "бури и натиска" был так велик, что многие, увлекшись, предсказывали появление думающих машин в самом ближайшем будущем. В 1969 году бывший однокашник Розенблатта по Высшей научной школе в Бронксе Марвин Минский, сам в свое время отдавший дань конструированию нейрокомпьютеров, решил положить этому конец, выпустив вместе с южноафриканским математиком Пейпертом книгу "Персептроны". В этой роковой для нейрокомпьютинга книге была строго доказана принципиальная, как тогда казалось, ограниченность персептронов. Утверждалось, что им доступен лишь очень узкий круг задач. В действительности критика относилась лишь к персептрону с одним слоем обучающихся нейронов. Но для многослойных нейронных сетей алгоритм обучения, предложенный Розенблаттом, не годился. Холодный душ критики, умерив пыл энтузиастов, затормозил развитие нейрокомпьютинга на многие годы. Исследования в этом направлении были свернуты вплоть до 1983 года, когда они, наконец, получили финансирование от Агентства перспективных военных исследований США (DARPA). Этот факт стал сигналом к началу нового нейросетевого бума. Интерес широкой научной общественности к нейросетям пробудился вновь после теоретической работы физика Джона Хопфилда (1982 г.), предложившего модель ассоциативной памяти в нейронных ансамблях. Холфилд и его многочисленные последователи обогатили теорию нейросетей многими идеями из арсенала физики, такими как коллективные взаимодействия нейронов, энергия сети, температура обучения и т. д. Однако настоящий бум практического применения нейросетей начался после публикации в 1986 году Дэвидом Румельхартом с соавторами метода обучения многослойного персептрона, названного ими методом обратного распространения ошибки (error back-propagation). Ограничения персептронов, о которых писали Минский и Пайперт, оказались преодолимыми, а возможности вычислительной техники - достаточными для решения широкого круга прикладных задач. В 90-х годах производительность компьютеров возросла настолько, что это позволило моделировать с их помощью работу параллельных нейронных сетей с числом нейронов от нескольких сотен до десятков тысяч. Такие эмуляторы нейросетей способны решать многие интересные с практической точки зрения задачи. Фирмой TRW (США) в 1985 году был разработан компьютер Mark3, который был реализован в виде дополнительной многопроцессорной платы к мини-компьютерам серии VAX, дальнейшим развитием системы Mark3 была система Mark4. Наиболее яркими примерами нейрокомпьютеров являются: Нейрокомпьютер Synaps 1 (Siemens, Германия), нейрокомпьютер "Силиконовый мозг" (созданный в США по программе "Электронный мозг", предназначен для обработки аэрокосмических изображений, производительность 80 петафлоп (80х1015 операций в секунду, потребляемая мощность 20 Вт.), нейрокомпьютер Эмбрион (Россия). Фирма NEC (Япония) в 1988 предложила нейрокомпьютер "Neuro Engine" в виде одноплатного сопроцессора к персональному компьютеру IBM PC. Фирмой Adaptive Solutions была разработана параллельная система SNAPS на 256 процессорах, позволяющая выполнять до 10 млрд. операций в сек. для решения задач обработки изображений и реконструкции объектов. Аппаратный подход связан с созданием нейрокомпьютеров в виде нейроподобных структур (нейросетей) электронно-аналогового, оптоэлектронного и оптического типов. Для таких компьютеров разрабатываются специальные СБИС (нейрочипы).В 1988 г. фирма Havard изготовила СБИС на 256 аналоговых элементах, включающую 25 тысяч транзисторов, 100 тысяч резисторов. Основу нейросетей составляют относительно простые, в большинстве случаев - однотипные, элементы (ячейки), имитирующие работу нейронов мозга - искусственные нейроны. В период 1983-86 гг. работы в области ИНС принимают характер настоящего бума. В США, Японии и странах ЕЭС разворачиваются крупные государственные программы исследований, ставящие целью создание к 1995 г. опытных образцов и освоение до 2000 г. массового производства нейрокомпьютеров - ЭВМ нового поколения на основе ИНС. Вот наиболее известные из этих программ: • США - программа DARPA - Управления перспективного планирования НИР военного применения - 1987-1995 гг. - 400 млн. долл.; • Япония - программа Human Frontier - 1988-1996 гг. - 1 триллион иен (6,6 млрд. долл.); • ЕЭС - программа BRAIN (Basic Research on Adaptive Inteligence - Базовые исследования адаптивного интеллекта) - 1988-1996 гг. - 1,2 млн. долл. ежегодно. Атмосферу нейрокомпьютерного бума, охватившую мир в конце 80-х, характеризует высказывание президента США Буша, который в связи с бурным развитием ИНС назвал 90-е годы "десятилетием мозга". 2. Задачи, решаемые на нейрокомпьютерах. Все задачи, которые решают с помощью средств вычислительной техники, с точки зрения формализма разработки алгоритма решения, удобно разделить на три класса: формализуемые, трудноформализуемые и неформализуемые. Рис. 2 Задача распознавания образов состоит в отнесении входного набора данных, представляющего распознаваемый объект, к одному из заранее известных классов (распознавание рукописных и печатных символов, распознавание типов клеток крови, распознавание речи и т.д.). Задача кластеризации данных состоит в группировке входных данных по присущей им "близости" (сжатие данных, анализ данных и поиск в них закономерностей). Задача предсказания заключается в определении значения параметра системы на будущий, еще не наступивший момент времени, по известным значениям этого параметра в предыдущие моменты времени (прогнозирование рынков, прогнозирование банкротств, управление складскими запасами). Задача аппроксимации функции заключается в определении по экспериментальным данным функции, наилучшим образом приближающейся к неизвестной и удовлетворяющим определенным критериям (моделирование сложных динамических систем). До недавнего времени НК использовались в основном для решения неформализуемых задач. Именно необходимость решения таких задач породило появление реальных нейронных ЭВМ в СССР еще 30 лет назад. Однако развитие теории и элементной базы позволило разработать методы проектирования НК для решения формализуемых, и трудноформализуемых задач. Таким образом, сегодня НК приобретают черты универсальной вычислительной машины. 3. Обобщенная структурная схема абстрактного нейрокомпьютера. На рис.3 представлена структурная схема абстрактного НК. Схема является обобщенной, т.к. она поясняет принцип работы любого НК независимо от его конструктивного исполнения. Рис.3 Структурная схема абстрактного НК Эта схема напоминает классическую схему однопроцессорной машины фон Неймана, однако НК в принципе отличается от этой машины. Основным операционным блоком НК, его процессором, является ИНС. ИНС – совокупность простейших модулей, называемых формальными нейронами, соединенными каналами передачи информации. ИНС не производит вычислений, как это делает АЛУ машин фон Неймана. Она трансформирует входной сигнал (входной образ) в выходной в соответствии со своей топологией и значениями коэффициентов межнейронной связи. В ЗУ НК хранится не программа решения задачи, как это имеет место в машинах фон Неймана, а программа изменения коэффициентов связи между нейронами. Устройства ввода и вывода информации в принципе выполняют те же функции, что и в машине фон Неймана. Устройство управления служит для синхронизации работы всех структурных блоков НК. В работе абстрактного НК выделяют два главных режима работы – обучения и рабочий. Для того чтобы НК решал требуемую задачу, его НС должна пройти обучение на эту задачу. Суть режима обучения заключается в настройке коэффициентов межнейронных связей на совокупность входных образов этой задачи. Установка коэффициентов осуществляется на примерах, сгруппированных в обучающие множества. 6. Машина фон Неймана по сравнению с биологической нейронной системой. Таблица 1.Машина фон Неймана по сравнению с биологической нейронной системой. Машина фон Неймана Нейронная система Процессор Сложный Простой Высокоскоростной Низкоскоростной Один или несколько Большое количество Память Отделена от процессора Интегрирована в процессор Локализована Распределенная Адресация не по содержанию Адресация по содержанию Вычисления Централизованные Распределенные Последовательные Параллельные Хранимые программы Самообучение Надежность Высокая уязвимость Живучесть Специализация Численные и символьные oперации Проблемы восприятия Среда функционирования Строго определенная Плохо определенная Строго ограниченная Без ограничений 7. Определения нейрокомпьютера. Нейрокомпьютеры являются предметом исследований сразу нескольких дисциплин, поэтому единое определение нейрокомпьютера можно дать только с учетом различных точек зрения, адекватных разным направлениям науки. Математическая статистика. Нейрокомпьютеры - это системы, позволяющие сформировать описания характеристик случайных процессов имеющих сложные или вообще неизвестные функции распределения. Математическая логика и теория автоматов. Нейрокомпьютеры - это системы, в которых алгоритм решения задачи представлен логической сетью элементов частного вида - нейронов с полным отказом от булевских элементов типа И, ИЛИ, НЕ. Вычислительная математика. В отличие от классических методов решения задач нейрокомпьютеры реализуют алгоритмы решения задач, представленные в виде нейронных сетей. Это ограничение позволяет разрабатывать алгоритмы, потенциально более параллельные, чем любая другая их физическая реализация. Множество нейросетевых алгоритмов решения задач составляет новый перспективный раздел вычислительной математики, условно называемый нейроматематикой. Вычислительная техника. Нейрокомпьютер - это вычислительная система с архитектурой MSIMD, в которой реализованы два принципиальных технических решения: 1. упрощен до уровня нейрона процессорный элемент однородной структуры и резко усложнены связи между элементами; 2. программирование вычислительной структуры перенесено на изменение весовых связей между процессорными элементами. Общее определение нейрокомпьютера может быть представлено в следующем виде. Нейрокомпьютер - это вычислительная система с архитектурой аппаратного и программного обеспечения, адекватной выполнению алгоритмов, представленных в нейросетевом логическом базисе. Лекция 2. 1. Биологический нейрон 2. Модели формальных нейронов 3. Виды функций активации 4. Ограничения модели нейрона 1. Биологический нейрон Как видно из предыдущей лекции, моделирование биологических нейронных сетей обоснованно и перспективно. Но для исследования НС необходимо иметь математическую модель биологического нейрона и биологической нейронной сети. Центральная нервная система имеет клеточное строение. Единица – нервная клетка, нейрон. Нейрон имеет следующие основные свойства: 1. Участвует в обмене веществ и рассеивает энергию. Меняет внутреннее состояние с течением времени, реагирует на входные сигналы и формирует выходные воздействия и поэтому является активной динамической системой. 2. Имеет множество синапсов – контактов для передачи информации. 3. Нейрон взаимодействует путем обмена электрохимическими сигналами двух видов: электротоническими (с затуханием) и нервными импульсами (спайками), распространяющимися без затухания. Нейрон (нервная клетка) является особой биологической клеткой, которая обрабатывает информацию (рис. 1). Она состоит из тела клетки или сомы (soma), и двух типов внешних древоподобных ветвей: аксона (axon) и дендритов (dendrites). Тело клетки включает ядро (nucleus), которое содержит информацию о наследственных свойствах, и плазму, обладающую молекулярными средствами для производства необходимых нейрону материалов. Нейрон получает сигналы (импульсы) от других нейронов через дендриты (приемники) и передает сигналы, сгенерированные телом клетки, вдоль аксона (передатчик), который в конце разветвляется на волокна (strands). На окончаниях этих волокон находятся синапсы (synapses). Рисунок 1.Схема биологического нейрона. Биологический нейрон содержит следующие структурные единицы: Тело клетки (т) — сома: содержит ядро (я), митохондрии (обеспечивают клетку энергией), другие органеллы, поддерживающие жизнедеятельность клетки. Дендриты (д) – входные волокна, собирают информацию от других нейронов. Активность в дендритах меняется плавно. Длина их обычно не больше 1 мм. Мембрана – поддерживает постоянный состав цитоплазмы внутри клетки, обеспечивает проведение нервных импульсов. Цитоплазма — внутренняя среда клетки. Отличается концентрацией ионов K+, Na+, Ca++ и других веществ по сравнению с внеклеточной средой. Аксон (а), один или ни одного у каждой клетки, – длинное, иногда больше метра, выходное нервное волокно клетки. Импульс генерируется в аксонном холмике (а.х.). Аксон обеспечивает проведение импульса и передачу воздействия на другие нейроны или мышечные волокна (мв). Ближе к концу аксон часто ветвится. Синапс (с) – место контакта нервных волокон — передает возбуждение от клетки к клетке. Передача через синапс почти всегда однонаправленная. Различают пресинаптические и постсинаптические клетки — по направлению передачи импульса. Синапс является элементарной структурой и функциональным узлом между двумя нейронами (волокно аксона одного нейрона и дендрит другого). Когда импульс достигает синаптического окончания, высвобождаются определенные химические вещества, называемые нейротрансмиттерами. Нейротрансмиттеры диффундируют через синаптическую щель, возбуждая или затормаживая, в зависимости от типа синапса, способность нейрона-приемника генерировать электрические импульсы. Результативность синапса может настраиваться проходящими через него сигналами, так что синапсы могут обучаться в зависимости от активности процессов, в которых они участвуют. Эта зависимость от предыстории действует как память, которая, возможно, ответственна за память человека. Шванновские клетки (шв.кл). Специфические клетки, почти целиком состоящие из миелина, органического изолирующего вещества. Плотно "обматывают" нервное волокно 250 слоями миелина. Неизолированные места нервного волокна между шванновскими клетками называются перехватами Ранвье (пР). За счет миелиновой изоляции скорость распространения нервных импульсов возрастает в 5-10 раз и уменьшаются затраты энергии на проведение импульсов. Миелинизированные волокна встречаются только у высших животных. В центральной нервной системе человека насчитывается от 100 до 1000 типов нервных клеток, в зависимости выбранной степени детализации. Они отличаются картиной дендритов, наличием и длиной аксона и распределением синапсов около клетки. Клетки сильно связаны между собой. У нейрона может быть больше 1000 синапсов. Близкие по функциям клетки образуют скопления, шаровидные или параллельные слоистые. В мозге выделены сотни скоплений. Кора головного мозга – тоже скопление. Кора головного мозга человека является протяженной, образованной нейронами поверхностью толщиной от 2 до 3 мм с площадью около 2200 см2, что вдвое превышает площадь поверхности стандартной клавиатуры. Кора головного мозга содержит около 1011 нейронов, что приблизительно равно числу звезд Млечного пути. Каждый нейрон связан с 103 - 104 другими нейронами. В целом мозг человека содержит приблизительно от 1014 до 1015 взаимосвязей. Нейроны взаимодействуют посредством короткой серии импульсов, как правило, продолжительностью несколько мсек. Сообщение передается посредством частотно-импульсной модуляции. Частота может изменяться от нескольких единиц до сотен герц, что в миллион раз медленнее, чем самые быстродействующие переключательные электронные схемы. Тем не менее сложные решения по восприятию информации, как, например, распознавание лица, человек принимает за несколько сотен мс. Эти решения контролируются сетью нейронов, которые имеют скорость выполнения операций всего несколько мс. Это означает, что вычисления требуют не более 100 последовательных стадий. Другими словами, для таких сложных задач мозг "запускает" параллельные программы, содержащие около 100 шагов. Это известно как правило ста шагов. Рассуждая аналогичным образом, можно обнаружить, что количество информации, посылаемое от одного нейрона другому, должно быть очень маленьким (несколько бит). Отсюда следует, что основная информация не передается непосредственно, а захватывается и распределяется в связях между нейронами. Этим объясняется такое название, как коннекционистская модель, применяемое к ИНС. 2. Модели формальных нейронов Биологический нейрон — сложная система, математическая модель которого до сих пор полностью не построена. Введено множество моделей, различающихся вычислительной сложностью и сходством с реальным нейроном. Одна из важнейших — формальный нейрон. В дальнейшем будем говорить о нейронах, НС, понимая под этим искусственно созданные технические объекты, принцип работы которых сравним с работой одноименных биологических объектов. Нейронной сетью называется динамическая система, состоящая из совокупности связанных между собой, по типу узлов направленного графа, элементарных процессоров и способная генерировать выходную информацию в ответ на входное воздействие. Формальным нейроном – называется элементарный процессор, используемый в узлах нейронной сети. Математическую модель ФН можно представить уравнением: y = f(g) = f( ∑ni=1 aixi + ao) (1) y- выходной сигнал ФН; f(g) – функция выходного блока нейрона; ai – постоянный коэффициент – вес i – го входа; xi - i – й входной сигнал; ao – начальное состояние (возбуждение нейрона); i – 1,2,3,….,n.- номер входа нейрона; n – число входов. Несмотря на простоту ФН, сети, построенные из таких нейронов, могут сформировать произвольную многомерную функцию на выходе. Выражению (1) может быть поставлена в соответствие структурная схема ФН представленная на рис. 2. Схема включает в себя n входных блоков умножения на коэффициенты аi, один сумматор и выходной блок функционального преобразования. Функция которую реализует выходной блок, получила название функции активации. Коэффициенты аi – синаптические коэффициенты или коэффициенты межнейронной связи (являются аналогами синапсов биологических нейронов). Если значение коэффициента отрицательное, то принято считать i – ую связь тормозящей, в противном случае – возбуждающей. рис.2 Структурная схема ФН В общем случае работа формального нейрона заключается в следующем (см. рис. 2). Перед началом работы на блок сумматора подают сигнал начального состояния (начального возбуждения) а0. На каждый i-й вход нейрона поступают сигналы xi от других нейронов, либо с устройства ввода НК. Каждый i-й входной сигнал х. умножается на коэффициент межнейронной связи (синаптический коэффициент) аi . В блоке сумма­тора взвешенные входные сигналы и начальное возбуждение а0 алгебраически складываются. Результат суммирования (взвешенная сумма) g подается на блок функционального преобразования f(g) . Нейрон, схема которого приведена на рис. 2, является классическим, в некотором смысле стандартным. Однако разработчики нейронных сетей применяют и нестандартные модели нейронов. К таким нейронам относится паде-нейрон, нейрон с квадратичным сумматором, нейрон со счетчиком совпадений. Паде-нейрон (рис. 3) состоит из двух сумматоров, элемента, вычисляющего частное от взвешенных сумм, блока нелинейного преобразования (выходной блок). Свое название этот нейрон получил от аппроксимации Паде-метода рациональной аппроксимации функций. Нетрудно заметить, что он имеет в два раза больше настраиваемых параметров по сравнению с обычным нейроном. Математическую модель паде-нейрона можно представить в таком виде: (2) Здесь bi - синаптические коэффициенты второго сумматора. Рис. 3 Структурная схема паде-нейрона. У нейрона с квадратичным сумматором (рис. 4) на выходной блок подается взвешенная квадратичная форма входного сигнала. Математическая модель этого нейрона описывается следующим выражением: (3) В этом случае нейрон имеет n(n+1)/2 настраиваемых параметров. Рис. 4. Схема нейрона с квадратичным сумматором Нейрон со счетчиком совпадений, получая на вход n-мерный двоичный вектор X, на выходе выдает целое число, равное числу совпадений хi с ai., т.е. число тех i, для которых xi = ai. В практике разработки НК применяют и другие модели нейронов, определяемые характером конкретной решаемой задачи. 3. Виды функций активации Вид функции активации во многом определяет функциональные возможности нейронной сети и метод обучения данной сети. Рассмотрим основные виды функций активации, получившие распространение в искусственных НС. 1. Пороговая функция. В общем случае эта функция описывается следующим выражением: b, если g<0; sign (g) = c, если g>=0; где b,c –некоторые постоянные. На практике чаще всего используют две пары постоянных b,c: первая (-1;1); вторая –(0;1). Первая пара определяет симметричную пороговую функцию, вторая – смещенную. а) б) рис.5 Графики пороговых функций активации: а) – симметричная; б) – смещенная. Используется в классическом формальном нейроне. Развита полная теория [Мкртчян71], позволяющая синтезировать произвольные логические схемы на основе ФН с такой нелинейностью. Функция вычисляется двумя тремя машинными инструкциями, поэтому нейроны с такой нелинейностью требуют малых вычислительных затрат. Эта функция чрезмерно упрощена и не позволяет моделировать схемы с непрерывными сигналами. Отсутствие первой производной затрудняет применение градиентных методов для обучения таких нейронов. 2. Логистическая функция (сигмоида, функция Ферми): смещенная: f (g(t)) = 1/(1+e-g), симметричная: f (g(t)) = (1-e-g)/(1+e-g). а)-смещенная б) - симметричная рис.6 Графики сигмоидных функций активации на базе экспоненты. Применяется очень часто для многослойных перцептронов и других сетей с непрерывными сигналами. Гладкость, непрерывность функции — важные положительные качества. Непрерывность первой производной позволяет обучать сеть градиентными методами (например, метод обратного распространения ошибки). 3. Линейная функция активации. Эта функция относится к классу непрерывных. Линейный участок позволяет оперировать с непрерывными сигналами. Зоны нечувствительности определяются физической реализуемостью этих функций. а)- симметричная б) - смещенная рис.7 Графики линейной функции активации. 4.Степенные функции активации. Функции этого вида используют при проектировании НС, предназначенных для решения задач аппроксимации функций одной или многих переменных, для реализации степенных рядов, для реализации сложных вычислительных алгоритмов. Математическая модель таких функций имеет вид: где n = 2,3,4,5... - показатель степени. (Очевидно, что при n=1 имеем случай линейной функции). В настоящее время наиболее распространены функции второй и третьей степени (n = 2, 3). Лишь степенные функции с нечетными показателями степени в полной мере отвечают требованиям, предъявляемым к функциям активации - монотонны, дифференцируемы, непрерывны. В практике разработки НС применяют функции активации и других видов, отличных от перечисленных выше. Все определяется характером решаемой задачи. В каждом конкретном случае разработчик должен обосновать свой выбор. Перспективным направлением в теории НС является применение функции активации с переменной «крутизной». В этом случае уравнение формального нейрона, например со степенной функцией активации, можно записать в следующем виде: В этой модели коэффициент b изменяет крутизну параболы k-ой степени, что значительно расширяет функциональные возможности как отдельного нейрона, так и всей нейронной сети, состоящей из таких нейронов. Основным недостатком нейронов с пороговым элементом является отсутствие достаточной гибкости при обучении и настройке нейронной сети на решаемую задачу. Если значение вычисляемого скалярного произведения xiai. даже незначительно не достигает заданного порога, то выходной сигнал не формируется, и нейрон «не срабатывает». Это означает, что теряется интенсивность выходного сигнала данного нейрона и, следовательно, формируется невысокое значение уровня на взвешенных входах в следующем слое нейронов. Такого недостатка в большей степени лишена линейная (в общем случае кусочно-линейная) функция активации, реализация которой обеспечивает невысокую вычислительную сложность. Сигмоидальная функция является некоторым компромиссом между линейной и ступенчатой функцией, и содержит достоинства обеих. По аналогии со ступенчатой функцией она нелинейна, и это дает возможность выделять в поисковом пространстве исследуемых объектов области сложной формы, в том числе невыпуклые и несвязные. С другой стороны, в отличие от ступенчатой функции, она позволяет переходить от одного значения входного сигнала к другому без разрывов. Однако любую из преобразующих функций активации необходимо рассматривать как приближенную. Учитывая сложность архитектуры и трудность настройки ее параметров на решение определенной задачи, необходимо переходить к более гибким произвольным нелинейным функциям. Формальный нейрон фактически представляет собой процессор с очень ограниченной специальной системой команд (в литературе принято называть нейросетевой базис). Формальные нейроны по способу представления информации бывают аналоговые и цифровые. И те и другие выполняют единообразные вычислительные действия и не требуют внешнего управления. Большое число параллельно работающих процессоров обеспечивает высокое быстродействие. Выбор функции активации определяется: 1. Спецификой задачи. 2. Удобством реализации на ЭВМ, в виде электрической схемы или другим способом. 3. Алгоритмом обучения: некоторые алгоритмы накладывают ограничения на вид функции активации, их нужно учитывать. Чаще всего вид нелинейности не оказывает принципиального влияния на решение задачи. Однако удачный выбор может сократить время обучения в несколько раз. 3. Ограничения модели нейрона 1. Вычисления выхода нейрона предполагаются мгновенными, не вносящими задержки. Непосредственно моделировать динамические системы, имеющие "внутреннее состояние", с помощью таких нейронов нельзя. 2. В модели отсутствуют нервные импульсы. Нет модуляции уровня сигнала плотностью импульсов, как в нервной системе. Не появляются эффекты синхронизации, когда скопления нейронов обрабатывают информацию синхронно, под управлением периодических волн возбуждения - торможения. 3. Нет четких алгоритмов для выбора функции активации. 4. Нет механизмов, регулирующих работу сети в целом (пример гормональная регуляция активности в биологических нервных сетях). 5. Чрезмерная формализация понятий: "порог", "весовые коэффициенты". В реальных нейронах нет числового порога, он динамически меняется в зависимости от активности нейрона и общего состояния сети. Весовые коэффициенты синапсов тоже не постоянны. "Живые" синапсы обладают пластичностью и стабильностью: весовые коэффициенты настраиваются в зависимости от сигналов, проходящих через синапс. 6. Существует большое разнообразие биологических синапсов. Они встречаются в различных частях клетки и выполняют различные функции. Тормозные и возбуждающие синапсы реализуются в данной модели в виде весовых коэффициентов противоположного знака, но разнообразие синапсов этим не ограничивается. Дендро-дендритные, аксо-аксональные синапсы не реализуются в модели ФН. 7. В модели не прослеживается различие между градуальными потенциалами и нервными импульсами. Любой сигнал представляется в виде одного числа. Итак, модель формального нейрона не является биоподобной и скорее похожа на математическую абстракцию, чем на живой нейрон. Тем удивительнее оказывается многообразие задач, решаемых с помощью таких нейронов и универсальность получаемых алгоритмов. Лекция №3 Нейронные сети основные понятия. 1. Классификация НС по виду топологии. 2. Парадигмы обучения НС. 3. Правила обучения НС. 1.Классификация НС по виду топологии. Объединяясь в сети, нейроны образовывают системы обработки информации, которые обеспечивают эффективную адаптацию модели к постоянным изменениям со стороны внешней среды. В процессе функционирования сети происходит преобразование входного вектора сигналов в выходной. Конкретный вид преобразования определяется как архитектурой нейросети так и характеристиками нейронных элементов, средствами управления и синхронизацией информационных потоков между нейронами. Важным фактором эффективности сети является установление оптимального количества нейронов и типов связей между ними. При описании нейросетей используют несколько терминов, которые в разных источниках могут иметь разное трактование, в частности: • структура нейросети - способ связей нейронов в нейросети; • архитектура нейросети - структура нейросети и типы нейронов; • парадигма нейросети - способ обучения и использования. На основе одной архитектуры могут быть реализованы разные парадигмы нейросети и наоборот. Нейронные сети разделяют на однослойные и многослойные. Однослойные НС. Среди известных архитектурных решений выделяют группу слабосвязанных (регулярных) нейронных сетей, когда каждый нейрон сети связан лишь с соседними. Рис.1. Слабосвязанные нейросети Если входы каждого нейрона связаны с выходами всех остальных нейронов, то такие сети называют полносвязанными. Рис. 2. Полносвязанная сеть Понятно, что такое деление носит теоретический характер. Анализируя наиболее известные на данное время разработки нейросетей, следует отметить, что самым распространенным вариантом архитектуры являются многослойные сети. Многослойные НС. В многослойных НС нейроны группируют по слоям. Внешние слои многослойной сети называют входными и выходными слоями. Внутренние слои называют скрытыми. Число скрытых слоев неограниченно. ИНС может рассматриваться как направленный граф со взвешенными связями, в котором искусственные нейроны являются узлами. По архитектуре связей ИНС могут быть сгруппированы в два класса: сети прямого распространения, в которых графы не имеют петель, и рекуррентные сети, или сети с обратными связями. В наиболее распространенном семействе сетей первого класса, называемых многослойным персептроном, нейроны расположены слоями и имеют однонаправленные связи между слоями. Сети прямого распространения являются статическими в том смысле, что на заданный вход они вырабатывают одну совокупность выходных значений, не зависящих от предыдущего состояния сети. Рекуррентные сети являются динамическими, так как в силу обратных связей в них модифицируются входы нейронов, что приводит к изменению состояния сети. Существует множество спорных вопросов при проектировании сетей прямого распространения - например, сколько слоев необходимы для данной задачи, сколько следует выбрать элементов в каждом слое, как сеть будет реагировать на данные, не включенные в обучающую выборку (какова способность сети к обобщению), и какой размер обучающей выборки необходим для достижения "хорошей" способности сети к обобщению. Хотя многослойные сети прямого распространения широко применяются для классификации и аппроксимации функций, многие параметры еще должны быть определены путем проб и ошибок. Существующие теоретические результаты дают лишь слабые ориентиры для выбора этих параметров в практических приложениях. На способ обработки информации решающим образом сказывается наличие или отсутствие в сети петель обратных связей. Если обратные связи между нейронами отсутствуют, обработка информации в сети однонаправленная. Входной сигнал обрабатывается последовательностью слоев и ответ гарантированно получается через число тактов равное числу слоев. Наличие же обратных связей может сделать динамику нейросети (называемой в этом случае рекуррентной) непредсказуемой. В принципе, сеть может "зациклиться" и не выдать ответа никогда. Причем, согласно Тьюрингу, не существует алгоритма, позволяющего для произвольной сети определить придут ли когда-либо ее элементы в состояние равновесия (т.н. проблема останова). Так, как нейроны в рекуррентных сетях по многу раз принимают участие в обработке информации, то такие сети производят более разнообразную и глубокую обработку информации. Но в этом случае следует принимать специальные меры к тому, чтобы сеть не зацикливалась (например, использовать симметричные связи, как в сети Хопфилда, или принудительно ограничивать число итераций, как это делается в эмуляторе MultiNeuron группы НейроКомп). Таблица 1. Сравнение архитектур связей нейросетей Сравнение сетей: Без обратных связей (многослойные) С обратными связями Преимущества Простота реализации. Гарантированное получение ответа после прохождения данных по слоям. Минимизация размеров сети - нейроны многократно участвуют в обработке данных. Меньший объем сети облегчает процесс обучения. Недостатки Требуется большее число нейронов для алгоритмов одного и того же уровня сложности. Следствие - большая сложность обучения. Требуются специальные условия, гарантирующие сходимость вычислений. 2.Парадигмы обучения НС Способность к обучению является фундаментальным свойством мозга. В контексте ИНС процесс обучения может рассматриваться как настройка архитектуры сети и весов связей для эффективного решения задачи. Обычно нейронная сеть должна настроить веса связей по имеющейся обучающей выборке. Функционирование сети улучшается по мере итеративной настройки весовых коэффициентов. Свойство сети обучаться на примерах делает их более привлекательными по сравнению с системами, которые следуют определенной системе правил функционирования, сформулированной экспертами. Существуют три парадигмы обучения: "с учителем", "без учителя" (самообучение), “с подкреплением”. В первом случае нейронная сеть располагает правильными ответами (выходами сети) на каждый входной пример. Веса настраиваются так, чтобы сеть производила ответы как можно более близкие к известным правильным ответам. Обучение без учителя не требует знания правильных ответов на каждый пример обучающей выборки. В этом случае раскрывается внутренняя структура данных или корреляции между образцами в системе данных, что позволяет распределить образцы по категориям. Иногда выходная информация известна не полностью. Например, вместо эталонных ответов известно лишь хуже или лучше данная конфигурация сети справляется с задачей (вспомним детскую игру "холоднее-горячее" или лабораторную мышь в лабиринте с лакомствами и электрошоком). Этот тип обучения называют обучением с подкреплением (reinforcement learning). Таблица 2. Сравнение режимов обучения нейросетей Вид обучения: С "учителем" С "подкреплением" Без "учителя" Что подается в качестве обучающих примеров Набор пар входов-выходов Оценка выходов сети Только набор входных значений Что требуется от сети Найти функцию, обобщающую примеры, в случае дискретных - классифицировать входы. В целом - научиться реагировать схожим образом в схожих ситуациях. Научиться заданной "правильной" линии поведения. Найти закономерности в массиве данных, отыскать порождающую данные функцию распределения, найти более компактное описание данных. Теория обучения рассматривает три фундаментальных свойства, связанных с обучением по примерам: емкость, сложность образцов и вычислительная сложность. Под емкостью понимается, сколько образцов может запомнить сеть, и какие функции и границы принятия решений могут быть на ней сформированы. Сложность образцов определяет число обучающих примеров, необходимых для достижения способности сети к обобщению. Слишком малое число примеров может вызвать "переобученность" сети, когда она хорошо функционирует на примерах обучающей выборки, но плохо - на тестовых примерах, подчиненных тому же статистическому распределению. 4. Правила обучения НС Известны 4 основных типа правил обучения: коррекция по ошибке, алгоритм иммитации отжига, правило Хебба и обучение методом соревнования. Правило Хебба. Самым старым обучающим правилом является постулат обучения Хебба Большинство современных алгоритмов обучения выросло из концепций Хэбба. Хебб опирался на следующие нейрофизиологические наблюдения: если нейроны с обеих сторон синапса активизируются одновременно и регулярно, то сила синаптической связи возрастает. Им предложена модель обучения без учителя, в которой синаптическая сила (вес) возрастает, если активированны оба нейрона, источник и приемник. Таким образом, часто используемые пути в сети усиливаются и феномен привычки и обучения через повторение получает объяснение. В искусственной нейронной сети, использующей обучение по Хэббу, наращивание весов определяется произведением уровней возбуждения передающего и принимающего нейронов. Это можно записать как аij(n+1) = а(n) + αOUTi OUTj, где аij(n) – значение веса от нейрона i к нейрону j до подстройки; аij(n+1) – значение веса от нейрона i к нейрону j после подстройки; α – коэффициент скорости обучения; OUTi – выход нейрона i и вход нейрона j; OUTj – выход нейрона j. Сети, использующие обучение по Хэббу, конструктивно развивались, однако за последние 20 лет были развиты более эффективные алгоритмы обучения. Правило коррекции по ошибке. При обучении с учителем для каждого входного примера задан желаемый выход d. Реальный выход сети y может не совпадать с желаемым. Принцип коррекции по ошибке при обучении состоит в использовании сигнала (y-d) для модификации весов, обеспечивающей постепенное уменьшение ошибки. Обучение имеет место только в случае, когда персептрон ошибается. Известны различные модификации этого алгоритма обучения . Алгоритм иммитации отжига. Представляет собой стохастическое правило обучения, которое следует из термодинамических принципов. Целью алгоритма является такая настройка весовых коэффициентов, при которой состояния нейронов удовлетворяют желаемому распределению вероятностей. Алгоритм может рассматриваться как специальный случай коррекции по ошибке, в котором под ошибкой понимается расхождение корреляций состояний в двух режимах. Обучение методом соревнования. В отличие от обучения Хебба, в котором множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. Это явление известно как правило "победитель забирает все". Подобное обучение имеет место в биологических нейронных сетях. Обучение посредством соревнования позволяет кластеризовать входные данные: подобные примеры группируются сетью в соответствии с корреляциями и представляются одним элементом. В Таблице 3 представлены различные алгоритмы обучения и связанные с ними архитектуры сетей (список не является исчерпывающим). В последней колонке перечислены задачи, для которых может быть применен каждый алгоритм. Каждый алгоритм обучения ориентирован на сеть определенной архитектуры и предназначен для ограниченного класса задач. Таблица 3. Известные алгоритмы обучения. Парадигма Обучающее правило Архитектура Алгоритм обучения Задача С учителем Коррекция ошибки Однослойный и многослойный перцептрон Алгоритмы обучения перцептрона Обратное распространение Adaline и Madaline Классификация образов Аппроксимация функций Предсказание, управление Отжиг Рекуррентная Алгоритм обучения Больцмана Классификация образов Хебб Многослойная прямого распространения Линейный дискриминантный анализ Анализ данных Классификация образов Соревнование Соревнование Векторное квантование Категоризация внутри класса Сжатие данных Сеть ART ARTMap Классификация образов Без учителя Коррекция ошибки Многослойная прямого распространения Проекция Саммона Категоризация внутри класса Анализ данных Хебб Прямого распространения или соревнование Анализ главных компонентов Анализ данных Сжатие данных Сеть Хопфилда Обучение ассоциативной памяти Ассоциативная память Соревнование Соревнование Векторное квантование Категоризация Сжатие данных SOM Кохонена SOM Кохонена Категоризация Анализ данных Сети ART ART1, ART2 Категоризация Смешанная Коррекция ошибки и соревнование Сеть RBF Алгоритм обучения RBF Классификация образов Аппроксимация функций Предсказание, управление ЛЕКЦИЯ №4 ПЕРСЕПТРОНЫ. ТОПОЛОГИЯ И ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ 1. ПЕРСЕПТРОН Розенблатта. 2. Алгоритм обучения ПЕРСЕПТРОНА. 3. Теорема об обучении ПЕРСЕПТРОНА. 4. Линейная разделимость и персептронная представляемость 4.1 Проблема функции ИСКЛЮЧАЮЩЕЕ ИЛИ В этой и последующих лекциях мы приступаем к непосредственному рассмотрению основных, описанных в литературе, моделей искусственных нейронных сетей и решаемых ими задач. Исходным будет изложение ПЕРСЕПТРОНА - первой нейросетевой парадигмы, доведенной до кибернетической реализации. 1. ПЕРСЕПТРОН Розенблатта. Одной из первых искусственных сетей, способных к перцепции (восприятию) и формированию реакции на воспринятый стимул, явился PERCEPTRON Розенблатта (F.Rosenblatt, 1957). Персептрон рассматривался его автором не как конкретное техническое вычислительное устройство, а как модель работы мозга. Нужно заметить, что после нескольких десятилетий исследований современные работы по искусственным нейронным сетям редко преследуют такую цель. Рис. 1. Элементарный персептрон Розенблатта. Простейший классический персептрон содержит нейрободобные элементы трех типов (Рис. 1), назначение которых в целом соответствует нейронам рефлекторной нейронной сети. S-элементы формируют сетчатку сенсорных клеток, принимающих двоичные сигналы от внешнего мира. Далее сигналы поступают в слой ассоциативных или A-элементов (для упрощения изображения часть связей от входных S-клеток к A-клеткам не показана). Только ассоциативные элементы, представляющие собой формальные нейроны, выполняют нелинейную обработку информации и имеют изменяемые веса связей. R-элементы с фиксированными весами формируют сигнал реакции персептрона на входной стимул. Розенблатт называл такую нейронную сеть трехслойной, однако по современной терминологии представленная сеть обычно называется однослойной, так как имеет только один слой нейропроцессорных элементов. Однослойный персептрон характеризуется матрицей синаптических связей W от S- к A-элементам. Элемент матрицы отвечает связи, ведущей от i-го S-элемента к j-му A-элементу. В Корнельской авиационной лаборатории была разработана электротехническая модель персептрона MARK-1, которая содержала 8 выходных R-элементов и 512 A-элементов, которые можно было соединять в различных комбинациях. На этом персептроне была проведена серия экспериментов по распознаванию букв алфавита и геометрических образов. В работах Розенблатта был сделано заключение о том, что нейронная сеть рассмотренной архитектуры будет способна к воспроизведению любой логической функции, однако, как было показано позднее М.Минским и С.Пейпертом (M.Minsky, S.Papert, 1969), этот вывод оказался неточным. Были выявлены принципиальные неустранимые ограничения однослойных персептронов, и в последствии стал в основном рассматриваться многослойный вариант персептрона, в котором имеются несколько слоев процессорных элементов. С сегодняшних позиций однослойный персептрон представляет скорее исторический интерес, однако на его примере могут быть изучены основные понятия и простые алгоритмы обучения нейронных сетей. 2 АЛГОРИТМ ОБУЧЕНИЯ ПЕРСЕПТРОНА Персептрон обучают, подавая множество образов по одному на его вход и подстраивая веса до тех пор, пока для всех образов не будет достигнут требуемый выход. Допустим, что входные образы нанесены на демонстрационные карты. Каждая карта разбита на квадраты и от каждого квадрата на персептрон подается вход. Если в квадрате имеется линия, то от него подается единица, в противном случае – ноль. Множество квадратов на карте задает, таким образом, множество нулей и единиц, которое и подается на входы персептрона. Цель состоит в том, чтобы научить персептрон включать индикатор при подаче на него множества входов, задающих нечетное число, и не включать в случае четного. Рис. 2. Персептронная система распознавания изображений На рис.2. показана такая персептронная конфигурация. Допустим, что вектор Х является образом распознаваемой демонстрационной карты. Каждая компонента (квадрат) Х – (x1, x2, …, xn) – умножается на соответствующую компоненту вектора весов W – (w1, w2, ..., wn). Эти произведения суммируются. Если сумма превышает порог Θ, то выход нейрона Y равен единице (индикатор зажигается), в противном случае – ноль, эта операция компактно записывается в векторной форме как Y = XW, а после нее следует пороговая операция. Для обучения сети образ Х подается на вход и вычисляется выход Y. Если Y правилен, то ничего не меняется. Однако если выход неправилен, то веса, присоединенные к входам, усиливающим ошибочный результат, модифицируются, чтобы уменьшить ошибку. Чтобы увидеть, как это осуществляется, допустим, что демонстрационная карта с цифрой 3 подана на вход и выход Y равен 1 (показывая нечетность). Так как это правильный ответ, то веса не изменяются. Если, однако, на вход подается карта с номером 4 и выход Y равен единице (нечетный), то веса, присоединенные к единичным входам, должны быть уменьшены, так как они стремятся дать неверный результат. Аналогично, если карта с номером 3 дает нулевой выход, то веса, присоединенные к единичным входам, должны быть увеличены, чтобы скорректировать ошибку. 3 Теорема об обучении персептрона. Обучение сети состоит в подстройке весовых коэффициентов каждого нейрона. Пусть имеется набор пар векторов (xa,ya), a=1..p, называемый обучающей выборкой. Будем называть нейронную сеть обученной на данной обучающей выборке, если при подаче на входы сети каждого вектора xa на выходах всякий раз получается соответствующий вектор ya.. Предложенный Ф.Розенблаттом метод обучения состоит в итерационной подстройке матрицы весов, последовательно уменьшающей ошибку в выходных векторах. Алгоритм включает несколько шагов: Шаг 0. Начальные значения весов всех нейронов полагаются случайными. Шаг 1. Сети предъявляется входной образ xa, в результате формируется выходной образ Шаг 2. Вычисляется вектор ошибки , делаемой сетью на выходе. Дальнейшая идея состоит в том, что изменение вектора весовых коэффициентов в области малых ошибок должно быть пропорционально ошибке на выходе, и равно нулю если ошибка равна нулю. Шаг 3. Вектор весов модифицируется по следующей формуле: . Здесь - темп обучения. Шаг 4. Шаги 1-3 повторяются для всех обучающих векторов. Один цикл последовательного предъявления всей выборки называется эпохой. Обучение завершается по истечении нескольких эпох: а) когда итерации сойдутся, т.е. вектор весов перестает измеяться, или б) когда полная просуммированная по всем векторам абсолютная ошибка станет меньше некоторого малого значения. Используемая на шаге 3 формула учитывает следующие обстоятельства: а) модифицируются только компоненты матрицы весов, отвечающие ненулевым значениям входов; б) знак приращения веса соответствует знаку ошибки, т.е. положительная ощибка (>0, значение выхода меньше требуемого) проводит к усилению связи; в) обучение каждого нейрона происходит независимо от обучения остальных нейронов, что соответствует важному с биологической точки зрения, принципу локальности обучения. Данный метод обучения был назван Ф.Розенблаттом “методом коррекции с обратной передачей сигнала ошибки”. Позднее более широко стало известно название “-правило”. Представленный алгоритм относится к широкому классу алгоритмов обучения с учителем, поскольку известны как входные вектора, так и требуемые значения выходных векторов (имеется учитель, способный оценить правильность ответа ученика)1. Доказанная Розенблаттом теорема о сходимости обучения по -правилу говорит о том, что персептрон способен обучится любому обучающему набору, который он способен представить. Ниже мы более подробно обсудим возможности персептрона по представлению информации. 4 Линейная разделимость и персептронная представляемость Каждый нейрон персептрона является формальным пороговым элементом, принимающим единичные значения в случае, если суммарный взвешенный вход больше некоторого порогового значения: Таким образом, при заданных значениях весов и порогов, нейрон имеет определенное значение выходной активности для каждого возможного вектора входов. Множество входных векторов, при которых нейрон активен (y=1), отделено от множества векторов, на которых нейрон пассивен (y=0) гиперплоскостью, уравнение которой есть, суть: Следовательно, нейрон способен отделить (иметь различный выход) только такие два множества векторов входов, для которых имеется гиперплоскость, отсекающая одно множество от другого. Такие множества называют линейно разделимыми. Проиллюстрируем это понятие на примере. 4.1 Проблема функции ИСКЛЮЧАЮЩЕЕ ИЛИ Один из самых пессимистических результатов Минского показывает, что однослойный персептрон не может воспроизвести такую простую функцию, как ИСКЛЮЧАЮЩЕЕ ИЛИ. Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение единицы, когда один из аргументов равен единице (но не оба). Проблему можно проиллюстрировать с помощью однослойной однонейронной системы с двумя входами, показанной на рис.3. Обозначим один вход через х, а другой через у, тогда все их возможные комбинации будут состоять из четырех точек на плоскости х-у, как показано на рис. 2.5. Например, точка х = 0 и у = 0 обозначена на рисунке как точка А Табл. 2.1 показывает требуемую связь между входами и выходом, где входные комбинации, которые должны давать нулевой выход, помечены А0 и А1, единичный выход – В0 и В1. Рис.3. Однонейронная система В сети на рис.3 функция F является обычным порогом, так что OUT принимает значение ноль, когда NET меньше 0,5, и единица в случае, когда NET больше или равно 0,5. Нейрон выполняет следующее вычисление: NET = xw1 + yw2 (*) Никакая комбинация значений двух весов не может дать соотношения между входом и выходом, задаваемого табл. 1. Чтобы понять это ограничение, зафиксируем NET на величине порога 0,5. Сеть в этом случае описывается уравнением (*). Это уравнение линейно по х и у, т.е. все значения по х и у, удовлетворяющие этому уравнению, будут лежать на некоторой прямой в плоскости х-у. xw1 + yw2 = 0,5 Таблица 1. Таблица истинности для функции ИСКЛЮЧАЮЩЕЕ ИЛИ Точки Значения х Значения у Требуемый выход A0 B0 1 1 B1 1 1 A1 1 1 Любые входные значения для х и у на этой линии будут давать пороговое значение 0,5 для NET. Входные значения с одной стороны прямой обеспечат значения NET больше порога, следовательно, OUT=1. Входные значения по другую сторону прямой обеспечат значения NET меньше порогового значения, делая OUT равным 0. Изменения значений w1, w2 и порога будут менять наклон и положение прямой. Для того чтобы сеть реализовала функцию ИСКЛЮЧАЮЩЕЕ ИЛИ, заданную табл. 1, нужно расположить прямую так, чтобы точки А были с одной стороны прямой, а точки В – с другой. Попытавшись нарисовать такую прямую на рис. 4, убеждаемся, что это невозможно. Это означает, что какие бы значения ни приписывались весам и порогу, сеть неспособна воспроизвести соотношение между входом и выходом, требуемое для представления функции ИСКЛЮЧАЮЩЕЕ ИЛИ. Рис. 4. Проблема ИСКЛЮЧАЮЩЕЕ ИЛИ Столь скромные возможности нейрона и послужили основой для критики персептронного направления Ф.Розенблатта со стороны М.Минского и С.Пейперта. При возрастании числа аргументов ситуация еще более катастрофична: относительное число функций, которые обладают свойством линейной разделимости резко уменьшается. А значит и резко сужается класс функций, который может быть реализован персептроном (так называемый класс функций, обладающий свойством персептронной представляемости). Соотвествующие данные приведены в следующей таблице: Видно, что однослойный персептрон крайне ограничен в своих возможностях точно представить наперед заданную логическую функцию. Нужно отметить, что позднее, в начале 70-х годов, это ограничение было преодолено путем введения нескольких слоев нейронов, однако критическое отношение к классическому персептрону сильно заморозило общий круг интереса и научных исследований в области искусственных нейронных сетей. В завершении остановимся на тех проблемах, которые остались открытыми после работ Ф.Розенблатта. Часть из них была впоследствии решена (и будет частично рассмотрена в следующих лекциях), некоторые остались без полного теоретического решения. 1) Практическая проверка условия линейной разделимости множеств. Теорема Розенблатта гарантирует успешное обучение только для персептронно представимых функций, однако ничего не говорит о том, как это свойство практически обнаружить до обучения. 2) Сколько шагов потребуется при итерационном обучении? Другими словами, затянувшееся обучение может быть как следствием не представимости функции (и в этом случае оно никогда не закончится), так и просто особенностью алгоритма. 3) Как влияет на обучение последовательность предъявления образов в течение эпохи обучения? 4) Имеет ли вообще -правило преимущества перед простым перебором весов, т.е. является ли оно конструктивным алгоритмом быстрого обучения? 5) Каким будет качество обучения, если обучающая выборка содержит не все возможные пары векторов? Какими будут ответы персептрона на новые вектора? Последний вопрос затрагивает глубокие пласты вычислительной нейронауки, касающиеся способностей искусственных систем к обобщению ограничеснного индивидуального опыта на более широкий класс ситуаций, для которых отклик был заранее не сообщен нейросети. Ситуация, когда системе приходится работать с новыми образами, является типичной, так как число всех возможных примеров экспоненциально быстро растет с ростом числа переменных, и поэтому на практике индивидуальный опыт сети всегда принципиально не является полным. Возможности обобщения в нейросетях будут подробнее рассмотрены на следующих лекциях. ЛЕКЦИЯ №5. Алгоритм обратного распространения ошибки. 1. Алгоритм обратного распространения ошибки. 2. Дальнейшее развитие алгоритма 3. Паралич сети 4. Локальные минимумы 5. Чувствительность к порядку предъявления образов. Временная неустойчивость. 1. Алгоритм обратного распространения ошибки. Для однослойного персептрона алгоритм обучения очевиден. Как обобщить этот простой алгоритм на случай многослойной сети? Эту задачу решает алгоритм Румельхарта-Хинтона-Вильямса (алгоритм обратного распространения ошибки). Он был предложен в различных вариациях в нескольких научных работах, существует также множество улучшенных версий алгоритма. Другие названия: • backprop, • back propagation (neural) network, • сеть обратного распространения (ошибки), • multi-layer perceptron with back propagation training algorithm - многослойный персептрон с обучением по методу обратного распространения ошибки. Пусть задан многослойный персептрон Рис.1. Многослойный персептрон. Его работа задается: где i - номер входа, j — номер нейрона в слое, l — номер слоя. Выберем суммарную квадратическую ошибку в качестве целевой функции: где s=1..S — номер предъявленного образа, S — количество элементов в обучающем множестве Сеть задается своим вектором параметров — набором весовых коэффициентов и пороговых уровней: где W — вектор, компоненты которого — все весовые коэффициенты сети; Θ— вектор пороговых уровней сети. Таким образом, если считать обучающее множество заданным, то ошибка сети зависит только от вектора параметров: При обучении на каждой итерации будем корректировать параметры в направлении антиградиента E: В теории оптимизации доказано, что такой алгоритм обеспечивает сходимость к одному из локальных минимумов функции ошибки, при условии правильного выбора на каждой итерации. Такой метод оптимизации называется методом наискорейшего спуска. Коррекции необходимо рассчитывать на каждой итерации. Поэтому каждая итерация требует расчета компонент градиента и выбора оптимального шага . Как рассчитать градиент с наименьшими вычислительными затратами? Самое простое, но не лучшее решение для этого — воспользоваться определением градиента: где — приращение i-ой компоненты вектора параметров P. Однако чтобы рассчитать каждое значение функции E, требуется подать входной вектор и просчитать выходные значения для всех нейронов в сети. Это — очень большой объем вычислений. Если учесть, что требуется рассчитать все компоненты градиента таким образом, неэффективность метода становится очевидной. Алгоритм обратного распространения — способ ускоренного расчета компонент градиента. Идея метода в том, чтобы представить E в виде сложной функции и последовательно рассчитать частные производные по формуле для сложной функции. Запишем (5) для весовых коэффициентов: — значение производной рассчитывается для текущих значений параметров на данном шаге обучения. — значение веса на следующем шаге обучения, — на данном шаге. Индексы имеют тот же смысл, что и раньше. Аналогичные коррекции вводятся для пороговых уровней. Для выходного слоя легко записать компоненты градиента по весам как производную сложной функции: Здесь индекс l равен номеру выходного слоя. — сигнал NET для j-го нейрона в выходном слое l. -i-й вход j-го нейрона в выходном слое. Точно так же распишем производную по порогам: Для выходного слоя: Производная функции ошибки: Для удобства приведем схему формального нейрона: Производная от взвешенной суммы по весам: Производная от функции активации: Производная по пороговому уровню: — это текущее значение выходного сигнала нейрона. Поэтому производная рассчитывается через текущее значение сигнала Аналогично рассчитывается производная сигмоиды (функции Ферми): Благодаря тому, что для сигмоиды и гиперболического тангенса производная рассчитывается через значение выхода нейрона, эти две функции чаще всего применяются в сетях, обучаемых методом обратного распространения. Значения производных, рассчитанные по формулам (12)-(19), позволяют ввести коррекции для нейронов последнего слоя. Как обобщить полученные результаты для оставшихся слоев? Для последнего слоя: Но производная по входному значению xijl для последнего слоя совпадает по смыслу с производной по соответствующему выходу для предыдущего слоя: Это выражение обеспечивает рекурсивный переход от последующего слоя к предыдущему и является аналогом (11) для предыдущих слоев. Мы получили полный набор формул обратного распространения, который дает значения компонент градиента для всех слоев и всех нейронов в сети. Зная вектор градиента, можно проводить обучение в виде итераций по формуле (5). Итак, метод обратного распространения — способ быстрого расчета градиента функции ошибки. Расчет производится от выходного слоя к входному по рекуррентным формулам и не требует пересчета выходных значений нейронов. Обратное распространение ошибки позволяет во много раз сократить вычислительные затраты на расчет градиента по сравнению с расчетом по определению градиента. Зная градиент, можно применить множество методов теории оптимизации, использующих первую производную. Применимы также квазиньютоновские методы, в которых строится матрица вторых производных H (гессиан) на основе нескольких последовательных значений градиента. Быстрый расчет градиента необходим во многих методах оптимизации (обучения), поэтому значение алгоритма обратного распространения в теории нейросетей велико. 2. Дальнейшее развитие алгоритма В (11) суммирование по s обычно опускают, рассчитывают градиент ошибки для одного образа, а не всего обучающего множества. После расчета градиента можно либо сразу ввести поправки в веса и пороги по одному предъявленному образу, либо усреднить поправки по всем образам обучающего множества (пакетная коррекция). Нужно помнить, что усреднение требует запоминания одного вещественного числа на каждый параметр сети для хранения усредняемой коррекции, что существенно увеличивает объем памяти, занимаемый сетью. Как и в однослойном персептроне, можно использовать расписание обучения, где t —время обучения. Это повышает скорость и точность сходимости во многих случаях. Обратное распространение может применяться и в том случае, когда у функции активации несколько параметров, например, Компонента градиентарассчитывается аналогично остальным производным. Конечно, ввод дополнительных параметров может быть избыточным с точки зрения представимости выходной функции. Например, параметр в данном примере эквивалентен умножению всех весовых коэффициентов данного нейрона на . Но иногда избыточные параметры повышают скорость сходимости алгоритма. Например, в нашем случае может потребоваться столько коррекций весов, сколько входов у нейрона, чтобы добиться того же эффекта, который даст изменение на одной итерации. В 1987 г. Паркером предложен вариант алгоритма с производными второго порядка, дающий быструю сходимость, когда функция зависимость ошибки от параметров сети близка к квадратичной. Было также доказано, что использование производных высших порядков не дает выигрыша в обучении. В 1987 г. Сторнетта и Хьюберман показали, что симметричный диапазон (например, от -1 до 1)изменения весов и сигналов в сети дает прирост скорости обучения на 30-50%. Было предложено множество ускоренных видов обратного распространения, но практическое применение получили в основном алгоритмы QuickProp и RProp. 3. Паралич сети Если один из весов при обучении получает слишком большое значение, то при обычных значениях этого входа выход нейрона окажется в насыщении, т.е. будет близок к предельному значению функции активации. Выход нейрона будет мало зависеть от w, и поэтому производная . Обучение по этому весу будет очень медленным, ведь изменение веса пропорционально производной. Выходной сигнал нейрона будет мало зависеть не только от веса, но и от входного сигнала x данного нейрона, а производная по x участвует в обратном распространении ошибки. Следовательно, предшествующие нейроны тоже будут обучаться медленно. Такое замедление обучения называется параличом сети. Чтобы избежать паралича при обучении, можно: 1. Уменьшить размер шага по При этом увеличится время обучения. 2. В области больших весов отказаться от зависимости, т.е. считать что длина шага не связана с модулем градиента. 3. Применять эвристические правила для ограничения роста весов. Эти правила пока не систематизированы, нет выкладок, оправдывающих тот или иной выбор ограничений. 4. Локальные минимумы Как и любой градиентный алгоритм, метод обратного распространения "застревает" в локальных минимумах функции ошибки, т.к. градиент вблизи локального минимума стремится к нулю. Шаг в алгоритме обратного распространения выбирается не оптимально. Точный одномерный поиск дает более высокую скорость сходимости. Возникает интересное явление, которое оправдывает неоптимальный выбор шага. Поверхность функции имеет множество долин, седел и локальных минимумов. Поэтому первый найденный минимум редко имеет малую величину E, и чем больше нейронов и синапсов в сети, тем меньше вероятность сразу найти глубокий минимум целевой функции. Если же шаг выбирается не оптимально, то он может оказаться достаточно большим, чтобы выйти из окрестности данного локального минимума и попасть в область притяжения соседнего минимума, который может оказаться глубже. Благодаря этому алгоритм способен находить более глубокие минимумы целевой функции, что повышает качество обучения. Есть другой способ преодоления локальных минимумов — обучение с шумом. Будем выбирать коррекцию для весов в виде: где n — случайная величина, имеющая нулевое математическое ожидание и небольшую дисперсию. Часто используется гауссовское распределение для n. Казалось бы, добавление шума должно снижать точность обучения. Так и происходит, скорость сходимости к данному локальному минимуму (если он единственный) снижается. Но если поверхность E(P) сложная, то шум помогает "вырваться" из данного локального минимума (выход из минимума тем вероятнее, чем меньше размеры его области притяжения), и найти более глубокий, возможно — глобальный минимум. Обучение с шумом снижает вероятность остановки алгоритма в неглубоком локальном минимуме целевой функции. 5. Чувствительность к порядку предъявления образов. Временная неустойчивость. Алгоритм требует, чтобы все обучающие образы предъявлялись перед каждой коррекцией параметров. Это следует из необходимости суммировать функцию ошибки по всем образам из обучающего множества. В этом случае алгоритм всегда сходится, хотя количество итераций для сходимости может оказаться сколь угодно большим. Если же суммирования по s нет, и коррекции параметров проводятся после предъявления каждого образа, или даже после расчета каждой компоненты градиента E, то алгоритм может не сойтись вообще, если: а) образы предъявляются не в случайном порядке. Должно быть s = random(S) на каждой итерации, если же есть простая закономерность в выборе s, алгоритм часто расходится; б) обучающее множество постоянно меняется, и каждый образ предъявляется малое количество раз; это встречается для систем, работающих в реальном времени, например, систем управления сложными системами или систем прогнозирования в реальном времени; расходимость в этом случае называется временной неустойчивостью. Проблема а) решается случайным предъявлением образов или применением алгоритма обучения с пакетной коррекцией. Проблема б) изначально присуща методу обратного распространения и устраняется выбором другого алгоритма обучения или другой модели нейронной сети. Таблица 1. – Характеристика алгоритма BP. Области применения: Распознавание образов, классификация, прогнозирование. Были попытки построения экспертных систем на основе многослойных персептронов с обучением по методу обратного распространения. Недостатки: Многокритериальная задача оптимизации в методе обратного распространения рассматривается как набор однокритериальных - на каждой итерации происходят изменения значений параметров сети, улучшающие работу лишь с одним примером обучающей выборки. Такой подход существенно уменьшает скорость обучения. Классический метод обратного распространения относится к алгоритмам с линейной сходимостью. Для увеличения скорости сходимости необходимо использовать матрицы вторых производных функции ошибки. Преимущества: Обратное распространение - первый эффективный алгоритм обучения многослойных нейронных сетей. Один из самых популярных алгоритмов обучения, с его помощью были решены и решаются многочисленные практические задачи. Модификации: Модификации алгоритма обратного распространения связаны с использованием различных функций ошибки, различных процедур определения направления и величины шага: 1) функции ошибки: - интегральные функций ошибки по всей совокупности обучающих примеров, - функции ошибки целых и дробных степеней. 2) процедуры определения величины шага на каждой итерации: - дихотомия, - инерционные соотношения, 3) процедуры определения направления шага: - с использованием матрицы производных второго порядка (метод Ньютона и др.), - с использованием направлений на нескольких шагах (пар-тан метод и др.). ЛЕКЦИЯ №6. Решение задач с помощью МСП. 1 Общий алгоритм решения. 2 Формализация задачи. 2.1 Задача классификации. 2.2 Задача распознавания образов. 2.3 Прогнозирование одномерной функции. 2.4 Аппроксимация многомерной функции. 3 Выбор количества нейронов и слоев. 4 Подготовка входных и выходных данных. 1.Общий алгоритм решения: 1. Определить, какой смысл вкладывается в компоненты входного вектора x. Входной вектор должен содержать формализованное условие задачи, т.е. всю информацию, необходимую для получения ответа. 2. Выбрать выходной вектор y таким образом, чтобы его компоненты содержали полный ответ поставленной задачи. 3. Выбрать вид нелинейности в нейронах (функцию активации). При этом желательно учесть специфику задачи, т.к. удачный выбор сократит время обучения. 4. Выбрать число слоев и нейронов в слое. 5. Задать диапазон изменения входов, выходов, весов и пороговых уровней, учитывая множество значений выбранной функции активации. 6. Присвоить начальные значения весовым коэффициентам и пороговым уровням и дополнительным параметрам (например, крутизне функции активации, если она будет настраиваться при обучении). Начальные значения не должны быть большими, чтобы нейроны не оказались в насыщении (на горизонтальном участке функции активации), иначе обучение будет очень медленным. Начальные значения не должны быть и слишком малыми, чтобы выходы большей части нейронов не были равны нулю, иначе обучение также замедлится. 7. Провести обучение, т.е. подобрать параметры сети так, чтобы задача решалась наилучшим образом. По окончании обучения сеть готова решить задачи того типа, которым она обучена. 8. Подать на вход сети условия задачи в виде вектора x. Рассчитать выходной вектор y, который и даст формализованное решение задачи. 2.Формализация задачи. Многослойный персептрон может рассчитывать выходной вектор y для любого входного вектора x , т.е. давать значение некоторой векторной функции y = f (x). Следовательно, условие любой задачи, которая может быть поставлена персептрону, должно являться множеством векторов с N1 компонентами каждый: Решением задачи будет множество векторов , каждый вектор компонентами; , где s = 1..S — номер предъявленного образа. Все, что способен сделать персептрон — это сформировать отображение X → Y для . Данное отображение мы не можем "извлечь" полностью из персептрона, а можем только посчитать отображение произвольного количества точек здесь множество векторов — формализованное условие задачи, а множество — формализованное решение. Задача формализации, т.е. выбора смысла, которым наделяются компоненты входного и выходного векторов, пока решается только человеком на основе практического опыта. Жестких рецептов формализации для нейронных сетей пока не создано. Рассмотрим, как выбирается смысл входных и выходных данных в наиболее распространенных случаях. 2.1. Задача классификации. Пусть есть некоторый объект, который характеризуется несколькими параметрами p1..pN. Пусть также есть M классов объектов, C1..CM. Мы наблюдаем объект и можем рассчитать или измерить его параметры. Вектор p характеризует наблюдаемый объект: На основании вектора p мы должны решить, к какому классу отнести объект, т.е. выбрать Ci, к которому принадлежит объект, характеризуемый набором параметров p. Решение задачи можно представить в виде вектора: и выполняются условия: Здесь cm — вероятность, с которой объект относится к классу Cm . Если рассматривать cm как вероятности, то должны выполняться условия (1). К примеру, c1= 0,9, c2= 0,1 означает, что объект с данным набором параметров p с вероятностью 0,9 относится к классу C1 и с вероятностью 0,1 — к классу C2. Если создать МСП с N входами и M выходами и обучить его давать на выходе вектор c, когда на вход подается p, то мы решим поставленную задачу. Сеть строит отображение P→C в процессе обучения. Целиком извлечь это отображение сеть не позволяет, но можно получить произвольное количество пар (p → c) , связанных отображением. Для произвольного вектора p на входе мы можем получить вероятности принадлежности к классам на выходе. Почему на выходе будут получены именно вероятности cm и будут ли выполняться условия (1)? Если обучение прошло успешно, то мы наверняка получим на выходе что-то похожее на вероятности. Это определяется алгоритмом обучения. Но чаще всего оказывается, что компоненты выходного вектора могут быть меньше 0 или больше 1, а второе условие (1) выполняется лишь приблизительно: Неточность — следствие аналоговости нейронных сетей. Большинство результатов, даваемых нейросетями, неточно. Кроме того, при обучении сети указанные условия, накладываемые на вероятности, не вводятся в сеть непосредственно, а неявно содержатся во множестве данных, на которых обучается сеть. Это — вторая причина некорректности результата. Такой способ формализации — не единственный, но один из удачных. Можно обучить сеть и по другому. Пусть у сети только один выход, и пусть его смысл — номер класса m для вектора p, предъявленного на входе. Следовательно, сеть обучается зависимости m(p). Если обучение прошло успешно, то когда на вход сети подан вектор p, характеризующий объект, на выходе будет получено число m, и нами принимается решение о принадлежности p к классу Cm. На первый взгляд такой способ формализации более экономичен: используется всего один выход. Но существует важный недостаток. Рассмотрим пример классификации (рис.1 ). Рис.1 . Пример некорректной классификации. Пусть требуется разделить объекты по двум признакам, p1, p2, на три класса, m=1, m=2, m=3. Если входной вектор p примет значение, обозначенное жирной точкой, то выход сети, при правильном обучении, примет значение m=2, т.е. объект будет отнесен к классу 2, совершенно неподходящему. Данное явление возникает, т.к. сеть склонна интерполировать входные и выходные данные. Если функции активации плавные, весовые коэффициенты не слишком большие, и количество слоев не слишком велико, то выход сети тоже будет гладким и непрерывным. Для близких p будут получены близкие m на выходе. Но при решении задачи классификации такое допущение бывает неверным. Отсюда неправильное решение. Чтобы избежать ошибок, можно применить другие способы формализации или упорядочить номера классов m так, чтобы близким m соответствовали близкие в пространстве P классы. 2.2. Задача распознавания образов. Будем представлять буквы в виде точечных изображений (рис.2 ). Рис. 2. Точечное изображение. Темной клетке - пикселу на изображении соответствует Iij=1, светлому — Iij=0. Задача состоит в том, чтобы определить по изображению букву, которая была предъявлена. Построим МСП с Ni*Nj входами, каждому входу соответствует один пиксел: Яркости пикселов будут компонентами входного вектора. В качестве выходных сигналов выберем вероятности того, что предъявленное изображение соответствует данной букве: . Сеть рассчитывает выход: где выход c1 = 0,9означает, к примеру, что предъявлено изображение буквы "А", и сеть уверена в этом на 90%, выход c2 = 0,1— что изображение соответствовало букве "Б" с вероятностью 10% и т.д. Другой способ: входы сети выбираются так же, а выход — только один, номер m предъявленной буквы. Сеть учится давать значение m по предъявленному изображению I: Недостаток, рассмотренный в примере 1, сохраняется и здесь: буквы, имеющие близкие номера m, но непохожие изображения, могут быть перепутаны сетью при распознавании. 2.3. Прогнозирование одномерной функции. Пусть задана функция, определенная на интервале времени [0,t0], где t0 - текущее значение времени. Требуется предсказать значение функции при t> t0. Чтобы применить многослойный перcептрон для прогнозирования, время придется дискретизировать. Будем считать известными значения функции в моменты времени: Будем предсказывать значение функции в момент времени называется интервалом прогнозирования. Решением задачи будем считать значение . Построим сеть, имеющую n входов и 1 выход. В качестве входного вектора возьмем вектор x, а выходного — один сигнал y. Такая сеть предсказывает значение функции в одной точке y по (n+1) известным значениям функции, заданным вектором x. Выбрав при обучении сети набор интервалов , его нельзя изменить после обучения. Сеть с данными параметрами , полученными при обучении, может прогнозировать только с одним набором . Можно ли прогнозировать функцию в виде дискретного процесса во времени? Как предсказать несколько значений функции в разных точках? Для этого найден интересный способ. Выберем все интервалы одинаковыми: . Построим и обучим сеть. Подадим на вход вектор x со значениями функции в известных точках. Рассчитав выход сети, получим прогнозируемое значение функции в точке. Теперь “сдвинем” компоненты входных и выходных векторов следующим образом (знак равенства означает “присвоить значение”): Теперь выходной вектор стал одной из компонент входного. Снова рассчитываем выход, и получаем значение функции в точке . Повторив эти операции, можно прогнозировать функцию в любом количестве точек с дискретным шагом по времени, равным δ. 2.4. Аппроксимация многомерной функции. Рассмотрим многомерную функцию , где вектор y имеет NO компонент, а вектор x — N1 компонент. Самый простой способ формализации — использовать сеть с N1 входами и NO выходами. Компоненты вектора x подаются на вход сети, y — снимаются на выходе. Сеть обучается на известных значениях функции f. 3. Выбор количества нейронов и слоев Нет строго определенной процедуры для выбора количества нейронов и количества слоев в сети. Чем больше количество нейронов и слоев, тем шире возможности сети, тем медленнее она обучается и работает и тем более нелинейной может быть зависимость вход-выход. Количество нейронов и слоев связано: 1) со сложностью задачи; 2) с количеством данных для обучения; 3) с требуемым количеством входов и выходов сети; 4) с имеющимися ресурсами: памятью и быстродействием машины, на которой моделируется сеть. Были попытки записать эмпирические формулы для числа слоев и нейронов, но применимость формул оказалась очень ограниченной. Если в сети слишком мало нейронов или слоев: 1) сеть не обучится и ошибка при работе сети останется большой; 2) на выходе сети не будут передаваться резкие колебания аппроксимируемой функции y(x). Превышение требуемого количества нейронов тоже мешает работе сети. Если нейронов или слоев слишком много: 1) быстродействие будет низким, а памяти потребуется много; 2) сеть переобучится: выходной вектор будет передавать незначительные и несущественные детали в изучаемой зависимости y(x), например, шум или ошибочные данные; 3) зависимость выхода от входа окажется резко нелинейной: выходной вектор будет существенно и непредсказуемо меняться при малом изменении входного вектора x; 4) сеть будет неспособна к обобщению: в области, где нет или мало известных точек функции y(x) выходной вектор будет случаен и непредсказуем, не будет адекватен решаемой задаче. 4. Подготовка входных и выходных данных Данные, подаваемые на вход сети и снимаемые с выхода, должны быть правильно подготовлены. Один из распространенных способов — масштабирование: где — исходный вектор, x — масштабированный. Вектор m — усредненное значение совокупности входных данных. с — масштабный коэффициент. Масштабирование желательно, чтобы привести данные в допустимый диапазон. Если этого не сделать, то возможно несколько проблем: 1) нейроны входного слоя или окажутся в постоянном насыщении (|m| велик, дисперсия входных данных мала) или будут все время заторможены (|m| мал, дисперсия мала); 2) весовые коэффициенты примут очень большие или очень малые значения при обучении (в зависимости от дисперсии), и, как следствие, растянется процесс обучения и снизится точность. Рассмотрим набор входных данных для сети с одним входом: Если функция активации — гиперболический тангенс с множеством значений, то при весовых коэффициентах около единицы нейроны входного слоя окажутся в насыщении для всех Применим масштабирование с m=10,2 и c=4. Это даст значения в допустимом диапазоне (-1;1) . Рис. 3Функция активации гиперболический тангенс Выходы сети масштабируются так же. Т.к. мы сами выбираем смысл выходного вектора при создании сети, то мы должны подготовить данные так, чтобы диапазон изменения выходных сигналов лежал на рабочем участке функции активации. Другие способы подготовки данных Исходя из условий конкретной задачи, можно выбрать другой способ подготовки данных. Можно использовать нелинейные преобразования. Рассмотрим задачу прогнозирования курса доллара в следующий день на основе курсов в предыдущие дни. Хорошие результаты были получены при таком выборе выхода сети: От сети требуется предсказать или только направление изменения курса (первая формула), или само изменение. Оказалось, что точность предсказания в первом случае выше, чем когда предсказывается абсолютное значение курса. Направление изменения предсказывается, когда для прогнозирования точного значения недостаточно данных. Если диапазон изменения входных данных очень велик (например, при обработке яркостной информации о реальных объектах), можно использовать логарифмическую шкалу для данных. Другие нелинейные преобразования при подготовке данных тоже находят применение. ЛЕКЦИЯ №7. СЕТЬ КОХОНЕНА 1. Обучение и функционирование сети Кохонена 2. Модификация весовых коэффициентов 3. Процедура конкуренции 4. Алгоритм обучения сети Кохонена 5. Выводы Как известно, существуют две стратегии обучения - обучение с учителем и самоорганизация. Обучение с учителем используется при решении задач преобразования данных в тех случаях, когда можно составить представительную обучающую выборку, содержащую входные данные и желаемые результаты, которые должны появляться на выходе сети в ответ на предъявление ей этих входных данных. Однако такая возможность есть не всегда. Гораздо чаще множество пар (вход, желаемый выход) нельзя использовать для обучения методом "с учителем", поскольку оно не является представительным и может возникнуть эффект недообучения сети. Тогда для решения задачи применяют обучение методом самоорганизации, а для реализации этого метода - сеть Кохонена. Суть метода самоорганизации заключается в том, что сеть, руководствуясь определенными правилами функционирования, определяет некоторую меру сходства между предъявляемыми ей данными и на основании этого сходства относит их к той или иной группе. Самоорганизующиеся сети могут применяться для широкого круга задач преобразования данных, однако наиболее эффективным является их использование при решении задач визуализации многомерных данных в пространстве меньшей размерности и кластеризации данных. Решение этих задач предполагает отображение зависимостей между элементами многомерных данных в простые топологические отношения в пространстве меньшей размерности, обычно двухмерном или одномерном. Весовые коэффициенты сети при этом настраиваются так, чтобы близко расположенные друг к другу нейроны выходного слоя активизировались при подаче на вход сходных в некотором смысле входных данных. Одной из последних разработок Кохонена в этой области является его WEBSOM-метод, предназначенный для автоматического размещения наименований Internet-ссылок на многоуровневой двухмерной карте так, чтобы близкие по содержанию документы находились рядом. Выгода от такой организации ссылок очевидна - если найден некоторый документ, не составляет труда и поиск документов, содержащих информацию, имеющую к нему отношение. Более подробную информацию можно найти на сайте Хельсинского технологического университета, где работает Т. Кохонен. Интересно, что идея Кохонена опирается на данные нейрофизиологических исследований. Согласно им, кора головного мозга разделена на области, отличающиеся друг от друга структурой нейронов и связей. Эти области "отвечают" за обработку различных функций организма (например, моторная область - за обработку моторных функций, зрительная область - за прием и обработку зрительной информации, речевая - за речь и т. д.). Различные внешние сигналы (звуковые, визуальные и др.) принимаются и обрабатываются различными областями головного мозга, в результате в коре головного мозга формируется так называемая карта отображения различных внешних раздражителей. Кохонен так сформулировал этот принцип применительно к сети искусственных нейронов: пространственное положение нейрона в выходном слое сети соответствует той или иной характеристике входных данных. . Рис. 1 Поскольку нейроны выходного слоя сети обычно объединяются в двухмерные прямоугольные (рис. 1, а) или гексагональные (рис. 1,б) решетки, сети Кохонена называют также картами Кохонена. 1. Обучение и функционирование сети Кохонена Пример структуры сети Кохонена представлен на рис.2. На вход данной сети поступает последовательность из p входных образов, представленных векторами Х = [х1 x2 ... xN]T в N-мерном пространстве признаков. Входные образы предъявляются сети по одному в единицу времени. Выходной слой организован в виде прямоугольной решетки нейронов, состоящей из Μ строк и K столбцов. Предполагается, что нейроны выходного слоя соединены между собой так называемыми боковыми или латеральными связями, которые на рисунке не представлены. Об этих связях и их роли в обучении сети будет подробно рассказано позже. Весовые коэффициенты связей между нейронами входного и выходного слоев - это матрица из МК векторов Wj = [wj1 wj2 ... wjN]T, где j-номер нейрона выходного слоя, j = 1,2, ..., МК. Функционирование и обучение сети Кохонена связано с так называемой процедурой конкуренции. Основная идея конкуренции состоит в том, что при подаче на вход некоторого образа из входного множества с помощью специальной процедуры конкуренции определяется единственный нейрон выходного слоя сети, который принимает значение, отличное от нуля, т. е. активизируется. Такой нейрон называют нейроном-победителем. Рис. 2 Далее, если сеть еще не обучена, происходит модификация весовых коэффициентов сети, причем изменению подлежат не все весовые векторы сети, а только весовые векторы нейрона-победителя и, возможно, его соседей, которые определяются специальным образом. Если сеть уже обучена, то положение нейрона-победителя в выходном слое интерпретируется как решение в зависимости от конкретной задачи. 2. Модификация весовых коэффициентов Модификация весовых коэффициентов нейрона-победителя осуществляется по закону Хебба. Как известно [1], при обучении с помощью закона Хебба возможны "взрывы" сети, поэтому предлагается изменить его, добавив так называемый фактор забывания. Фактор забывания ограничивает рост значений весовых коэффициентов сети и, следовательно, снижает вероятность "взрыва". Приращение вектора весовых коэффициентов j-го нейрона выходного слоя в соответствии с законом Хебба и с учетом фактора забывания где η1 - скорость обучения; g(yj) - скалярная положительная функция, причем g(yj) = 0 при yj = 0 для всех j. Сеть Кохонена функционирует так, что при предъявлении ей некоторого образа X из входного набора в выходном слое сети активизируется единственный нейрон, т. е. в некоторый момент времени отличным от нуля может быть значение единственного нейрона выходного слоя сети. Тогда для j-го нейрона В соответствии с определением функции g(yi) Тогда, если η = аη1, то Пусть η = α, тогда приращение вектора весовых коэффициентов Таким образом, учитывая, что при функционировании активизируется именно нейрон, победивший в процедуре конкуренции, правило модификации весовых коэффициентов нейрона-победителя формулируется следующим образом: Здесь t - дискретное время, η(t) - скорость обучения. Сначала η(t) выбирается близкой к 1. Затем ее постепенно уменьшают, но не менее чем до 0.1. Изменение может быть линейным, экспоненциальным, обратно пропорциональным t и т. д. Обычно выбирают начальное ηmin и конечное ηmax значения скорости обучения, конечное tmax время обучения и определяют правило изменения скорости обучения: Теперь опишем процедуру определения нейрона-победителя. 3. Процедура конкуренции Сущность процедуры конкуренции - поиск нейрона-победителя -можно определить в терминах расстояния между векторами. Нейроном-победителем является тот нейрон, весовой вектор которого наиболее близок в смысле расстояния по Евклиду к вектору данных, подаваемых на вход сети. Если i(X) - номер нейрона, весовой вектор которого наиболее близок к вектору входного сигнала X, т.е. i(X) = arg minj X - Wj, где j - индекс нейрона выходного слоя, то нейрон i(X) называется нейроном-победителем для входного вектора X. Опишем нейронную сеть для определения нейрона-победителя. Это сеть с латеральными (боковыми) обратными связями. Рассмотрим ситуацию, когда выходной слой сети Кохонена является одномерным (рис. 3). На этом рисунке боковые обратные связи обозначены сплошными линиями. Рис. 3 Нейроны выходного слоя сети Кохонена связаны между собой горизонтальными обратными связями, которые могут быть как возбуждающими, так и тормозящими, в зависимости от расстояния между нейроном-источником связи и нейроном-приемником. На рис. 3 показаны горизонтальные обратные связи только для одного нейрона, который находится в центре. Горизонтальные обратные связи функционируют в двух режимах (рис. 4): 1. Возбуждающие связи для нейронов, близких к нейрону-приемнику. 2. Тормозящие связи - для дальних нейронов. На рис. 4 оси абсцисс соответствует расстояние в нейронах от центрального нейрона с индексом j, а оси ординат - значения весовых коэффициентов, определяющие вид связи. Если значения весовых Рис. 4 коэффициентов больше нуля, связи возбуждающие, иначе - тормозящие. Пусть х1, x2, ..., xN - входные сигналы, подаваемые сети; wj1, wj2, ..., wjN - весовые коэффициенты нейрона j; cj,-K, ..., сj, - 1, сj,0, 0. сj,1, ..., cj,K - весовые коэффициенты горизонтальных связей, заканчивающихся на нейроне j, К - радиус нейрона j; у1,y2,...,yM - выходные сигналы сети. Выходные сигналы сети с горизонтальными обратными связями определяются следующим образом: где f - нелинейная функция, ограниченная некоторым положительным значением; Ij - внутренний выход j-го нейрона, - дискретное время; β - скорость сходимости. В этом случае можно так выбрать скорость сходимости, чтобы отклики сети формировали так называемые пузырьки активности вокруг некоторого нейрона. Центр пузырька активности - нейрон, для которого начальный отклик уj(0), равный значению внутреннего выхода Ij, максимален. Ширина пузырька активности зависит от соотношения возбуждающих и тормозящих обратных связей. Пример 1. Рассмотрим сеть с горизонтальными обратными связями, состоящую из N = 51 нейрона. На рис. 5 представлены значения весовых коэффициентов горизонтальных связей. Пусть f - кусочно-линейная функция активации, ограниченная сверху некоторым положительным значением а (рис. 6). Примем а = 10. Рис. 5 Пусть входные данные таковы, что внутренний выход j-го нейрона определяется как Ij = 2sin(πj/50), где j = 0,1, ...,N-1. Тогда внутренние выходы крайних нейронов будут равны 0, а внутренний выход центрального нейрона имеет максимальное значение 2 и, следовательно, центральный нейрон является центром пузырька активности сети. На рис. 7 представлены полученные в результате вычислительного эксперимента результаты функционирования сети после 10 итераций обновления весовых коэффициентов при различных параметрах скорости обучения. Очевидно, что при β = 0.75 (рис. 7, а) сеть неспособна к формированию пузырька активности. Поскольку функция f ограничена некоторым положительным значением а, будем считать, что активность нейронов выходного слоя сети Кохонена ограничена внутри пузырька активности: Рис. 6 Рис. 7 Шириной пузырька активности можно управлять: увеличив силу возбуждающих связей, делаем пузырек шире, уменьшив - уже. Таким образом, сеть с горизонтальными обратными связями можно использовать для нахождения нейрона-победителя и радиуса соседства, определяющего соседей нейрона-победителя. Введем функцию дискретного времени Λi(X)(t), определяющую радиус топологического соседства нейрона-победителя i(X). Для нахождения радиуса соседства обычно используется Гауссова функция где rj и ri - целочисленные векторы, определяющие положение нейронов i и j в карте Кохонена; σ(t) - отклонение, определяющее радиус соседства, обычно находится на основании значений начального σmin конечного σmax отклонений и конечного значения времени tmax: Тогда правило модификации весовых коэффициентов нейрона-победителя i(X) и его соседей можно сформулировать по-другому: 4. Алгоритм обучения сети Кохонена 1. Инициализация весовых коэффициентов сети различными случайными значениями Wj(0), где j - индексы нейронов выходного слоя сети Кохонена. 2. Предъявление сети очередного входного образа X(t). 3. Поиск нейрона-победителя в процедуре конкуренции нейронов выходного слоя. Нейрон-победитель i(X) определяется как arg minj||X(t) - Wj ||, где j - индекс нейрона выходного слоя. 4. Определение радиуса соседства Λi(X) нейрона-победителя. 5. Обновление весов связей нейронов, принадлежащих радиусу соседства нейрона-победителя: 6. Повторение с п. 2, пока изменяются активации выходных нейронов. Пример 2. Пусть входной слой сети Кохонена состоит из двух нейронов, выходной слой представляет собой одномерную решетку из 6 нейронов. Весовые коэффициенты входных связей нейронов выходного слоя определяются их координатами (рис. 8). Входные данные, предъявляемые сети в процессе обучения, выбираются случайно и определяются координатами точек заштрихованных областей 1 и 2 на рис. 8. Рис. 8 Рис. 9 Требуется определить весовые коэффициенты нейронов сети после трех шагов обучения при условии, что входные данные предъявляются поочередно из каждой заштрихованной области, скорость обучения постоянна и равна 1 и радиус соседства каждого нейрона равен 1. Предъявим сети некоторый вектор X(1) из области 1. Нейроном-победителем в этом случае является нейрон с индексом 1. Вектор весовых коэффициентов 1-го нейрона W1 = [5 5] . В радиус соседства 1-го нейрона входит нейрон с индексом 2. Вектор весовых коэффициентов 2-го нейрона W2 = [6 5]т. Изменение весовых коэффициентов 1-го и 2-го нейронов происходит в соответствии с правилом обучения по Кохонену: Конфигурация сети показана на рис. 9. Рис. 10 Рис. 11 Предъявим сети вектор Х(2) из области 2. Пусть победителем является нейрон с индексом 3. Его радиус соседства - 2-й и 4-й нейроны. Конфигурация сети после модификации весовых коэффициентов показана на рис. 10. Теперь предъявим сети вектор Х(3) из области 1. Победителем является нейрон с индексом 1. Его радиус соседства - 2-й нейрон. Конфигурация сети после модификации весовых коэффициентов показана на рис. 11. Таким образом, весовые векторы нейронов сети постепенно "подстраиваются" под входные данные. 5. Выводы Конкурентное обучение заключается в формировании весовых векторов сети так, чтобы каждый из них был схож в некотором смысле с векторами из определенного подмножества входных векторов. Это общее для группы входных векторов сходство может определяться различными способами. Проще всего считать схожими между собой векторы, для которых расстояние по Евклиду является минимальным, или для которых является максимальным их скалярное произведение. Рис. 12 При подаче на вход сети Кохонена некоторого образа, представленного вектором в пространстве признаков, в выходном слое сети активизируется один нейрон, весовой вектор которого наиболее схож с входным вектором. Таким образом, сеть можно использовать для решения задач кластеризации многомерных входных данных. Активизация определенного нейрона выходного слоя указывает, к какой группе или кластеру принадлежит входной образ. Перед использованием карту нейронов необходимо разметить с помощью ограниченного количества пар <входной образ, желаемый выход>. Закон обучения сети Кохонена имеет достаточно простую геометрическую интерпретацию (рис. 12). Обучение состоит во вращении весового вектора в направлении входного вектора без существенного изменения его длины. Алгоритм нейронного газа. Значительно лучшую самоорганизацию сети и ускорение сходимости алгоритма WTM можно получить применением метода, предложенного М. Мартинесом, С. Берковичем и К. Шультеном в работе (Martinetz M., Berkovich S., Schulten K. "Neural-gas" network for vector quantization and its application to time series prediction) и названного авторами алгоритмом нейронного газа из-за подобия его динамики движению молекул газа. В этом алгоритме на каждой итерации все нейроны сортируются в зависимости от их расстояния до вектора х. После сортировки нейроны размечаются в последовательности, соответствующей увеличению удаленности где обозначает удаленность i- го нейрона, занимающего в результате сортировки m-ю позицию в последовательности, возглавляемой нейроном-победителем, которому сопоставлена удаленность d0 . Значение функции соседства для i- го нейрона G(i,x) определяется по формуле (*) в которой m(i) обозначает очередность, полученную в результате сортировки (m(i) =0,1,2,…,n-1), а - параметр, аналогичный уровню соседства в алгоритме Кохонена, уменьшающийся с течением времени. При =0 адаптации подвергается только нейрон-победитель, и алгоритм превращается в обычный алгоритм WTA, но при уточнению подлежат веса многих нейронов, причем уровень уточнения зависит от величины G(i,x). Алгоритм нейронного газа напоминает стратегию нечетких множеств, в соответствии с которой каждому нейрону приписывается значение функции принадлежности к окрестности, определенной соотношением (*). Для достижения хороших результатов самоорганизации процесс обучения должен начинаться с большого значения , однако с течением времени его величина уменьшается до 0. Изменение может быть линейным или показательным. В работе Ritter H., Schulten K. On the stationary state of the Kohonen self organizing sensory mapping предложено изменять значение в соответствии с выражением , где обозначает значение на k-ой итерации, а и -принятые минимальное и максимальное значение соответственно. Коэффициент определяет максимальное заданное количество итераций. Коэффициент скорости обучения i- го нейрона также может изменяться как линейно, так и показательно, причем его степенная изменчивость определяется формулой , в которой обозначает начальное значение коэффициента обучения, - минимальное значение, соответствующее k=kmax. Для сокращения объема вычислений, необходимых для реализации алгоритма нейронного газа, можно применить упрощение, состоящее в учете при сортировке только нейронов с наиболее значимой функции G(i,x). При этом используется зависимость (*), в соответствии с которой если m(i)>>1, то значение . Например, если принять К=3λ, то при сортировке нейронов можно ограничиться первыми К элементами. Алгоритм нейронного газа считается одним из наиболее эффективных средств самоорганизации нейронов в сети Кохонена. При соответствующем подборе параметров управления процессом обучения можно добиться очень хорошей организации сети при скорости функционирования, превышающей достижимую в классическом алгоритме Кохонена. ЛЕКЦИЯ №8. сеть хопфилда. 1.Введение. 2. Архитектура сетей с обратными связями. 3. Устойчивость сети. 4. Ассоциативная память. 5. Обучение сети. 6. Модель Крика - Митчисона. Разобучение. 1.ВВЕДЕНИЕ. Мы уже познакомились с сетями, обучаемыми с учителем, задающим образцы правильных ответов, и обучаемыми без учителя, которые адаптируют свою структуру к данным не требуя дополнительной информации о принадлежности их к тому или иному классу. Однако до сих пор мы ограничивались сетями без обратных связей. Такие сети, будучи обучены, выдают ответ сразу после прохождения через них входного сигнала. Каждый нейрон, при этом срабатывает лишь однажды. Соответственно, достаточно глубокая, многостадийная обработка данных подразумевает наличие многих слоев, что усложняет обучение. Естественным обобщением таких однопроходных схем служат т.н. рекуррентные сети, выходы которых возвращаются обратно на их входы. Тем самым, информация пропускается через одну и ту же сеть многократно. Новое качество, присущее рекуррентным сетям, - динамическая обработка информации. Отсутствие обратной связи гарантирует безусловную устойчивость сетей. Они не могут войти в режим, когда выход беспрерывно блуждает от состояния к состоянию и не пригоден к использованию. Но это весьма желательное свойство достигается не бесплатно, сети без обратных связей обладают более ограниченными возможностями по сравнению с сетями с обратными связями. Так как сети с обратными связями имеют пути, передающие сигналы от выходов к входам, то отклик таких сетей является динамическим, т. е. после приложения нового входа вычисляется выход и, передаваясь по сети обратной связи, модифицирует вход. Затем выход повторно вычисляется, и процесс повторяется снова и снова. Для устойчивой сети последовательные итерации приводят к все меньшим изменениям выхода, пока в конце концов выход не становится постоянным. Для многих сетей процесс никогда не заканчивается, такие сети называют неустойчивыми. Неустойчивые сети обладают интересными свойствами и изучались в качестве примера хаотических систем. Однако такой большой предмет, как хаос, находится за пределами этой лекции. Вместо этого мы сконцентрируем внимание на устойчивых сетях, т.е. на тех, которые в конце концов дают постоянный выход. Проблема устойчивости ставила в тупик первых исследователей. Никто не был в состоянии предсказать, какие из сетей будут устойчивыми, а какие будут находиться в постоянном изменении. Более того, проблема представлялась столь трудной, что многие исследователи были настроены пессимистически относительно возможности решения. В 1982 году в докладах Американской академии наук была опубликована статья американского физика, специалиста в области физики твердого тела из Калифорнийского Технологического Института, Джона Хопфилда (Hopfield, 1982). С этой работы начался бурный процесс возрождения интереса к искусственным нейронным сетям, на который так негативно повлияла в конце шестидесятых книга Минского и Пейперта. В работе Хопфилда впервые было обращено внимание на аналогию, которая существует между сетями с симметричными связями и давно известными физикам объектами - спиновыми стеклами. Кроме того, стало ясно, что такие сети служат прекрасной основой для построения моделей содержательно-адресованной памяти. И наконец, обнаружилось, что нейронные сети могут быть успешно исследованы с помощью методов теоретической физики, в частности, статистической механики. Результатом этого обстоятельства явилось массовое внедрение физиков и физических методов в эту новую область знания. 2. Архитектура СЕТЕЙ С ОБРАТНЫМИ СВЯЗЯМИ На рис.1 показана сеть с обратными связями, состоящая из двух слоев. Нулевой слой, не выполняет вычислительной функции, а лишь распределяет выходы сети обратно на входы. Каждый нейрон первого слоя вычисляет взвешенную сумму своих входов, давая сигнал NET, который затем с помощью нелинейной функции F преобразуется в сигнал OUT. В первой работе Хопфилда функция F была просто пороговой функцией. Выход такого нейрона равен единице, если взвешенная сумма выходов с других нейронов больше порога Θj, в противном случае она равна нулю. Он вычисляется следующим образом: , (1) OUT, = 1, если NETj>Θj, OUT. = 0, если NETj<Θj, OUT не изменяется, если NETj = Θj, Рис.1. Однослойная сеть с обратными связями. Пунктирные линии обозначают нулевые веса Состояние сети – это просто множество текущих значений сигналов OUT от всех нейронов. В первоначальной сети Хопфилда состояние каждого нейрона менялось в дискретные случайные моменты времени, в последующей работе состояния нейронов могли меняться одновременно. Так как выходом бинарного нейрона может быть только ноль или единица (промежуточных уровней нет), то текущее состояние сети является двоичным числом, каждый бит которого является сигналом OUT некоторого нейрона. Функционирование сети легко визуализируется геометрически. На рис.2а показан случай двух нейронов в выходном слое, причем каждой вершине квадрата соответствует одно из четырех состояний системы (00, 01, 10, 11). На рис.2б показана трехнейронная система, представленная кубом (в трехмерном пространстве), имеющим восемь вершин, каждая из которых помечена трехбитовым бинарным числом. В общем случае система с n нейронами имеет 2n различных состояний и представляется n-мерным гиперкубом. Рис.2а. Два нейрона порождают систему с четырьмя состояниями Рис.2б. Три нейрона порождают систему с восемью состояниями Когда подается новый входной вектор, сеть переходит из вершины в вершину, пока не стабилизируется. Устойчивая вершина определяется сетевыми весами, текущими входами и величиной порога. Если входной вектор частично неправилен или неполон, то сеть стабилизируется в вершине, ближайшей к желаемой. 3. Устойчивость сети Как и в других сетях, веса между слоями в этой сети могут рассматриваться в виде матрицы W. Было доказано, что сеть с обратными связями является устойчивой, если ее матрица симметрична и имеет нули на главной диагонали, т.е. если wij = wji и wii = 0 для всех i. Устойчивость такой сети может быть доказана с помощью элегантного математического метода. Допустим, что найдена функция, которая всегда убывает при изменении состояния сети. В конце концов эта функция должна достичь минимума и прекратить изменение, гарантируя тем самым устойчивость сети. Такая функция, называемая функцией Ляпунова, для рассматриваемых сетей с обратными связями может быть введена следующим образом: (2) где Е – искусственная энергия сети; wij – вес от выхода нейрона i к входу нейрона j; OUTj – выход нейрона j; Ij – внешний вход нейрона j; Θj – порог нейрона j. Изменение энергии Е, вызванное изменением состояния j-нейрона, есть (3) где δOUTj – изменение выхода j-го нейрона. Допустим, что величина NET нейрона j больше порога. Тогда выражение в скобках будет положительным, а из уравнения (1) следует, что выход нейрона j должен измениться в положительную сторону (или остаться без изменения). Это значит, что δOUT. может быть только положительным или нулем и δЕ должно быть отрицательным. Следовательно, энергия сети должна либо уменьшиться, либо остаться без изменения. Далее, допустим, что величина NET меньше порога. Тогда величина δOUTj может быть только отрицательной или нулем. Следовательно, опять энергия должна уменьшиться или остаться без изменения. И окончательно, если величина NET равна порогу, δj равна нулю и энергия остается без изменения. Это показывает, что любое изменение состояния нейрона либо уменьшит энергию, либо оставит ее без изменения. Благодаря такому непрерывному стремлению к уменьшению энергия в конце концов должна достигнуть минимума и прекратить изменение. По определению такая сеть является устойчивой. Мы можем представить динамику сети, сопоставив ее состояние с шариком, движущимся с большим трением в сложном рельефе со множеством локальных минимумов. Сами эти минимумы будут устойчивыми состояниями памяти, а окружающие точки на склонах - переходными состояниями.2 Рисунок 3. Поведение состояния в сети Хопфилда аналогично движению шарика, скатывающегося со склона в ближайшую лунку. Начальное состояние шарика соответствует вектору, содержащему неполную информацию об образе памяти, которому отвечает дно лунки. Такая динамика определяет главное свойство сети Хопфилда - способность восстанавливать возмущенное состояние равновесия - "вспоминать" искаженные или потерянные биты информации. Восстановление полной информации по какой-либо ее части - вспоминание по ассоциации - наделяет модель Хопфилда свойством ассоциативной памяти. 4. Ассоциативная память Человеческая память ассоциативна, т.е. некоторое воспоминание может порождать большую связанную с ним область. Например, несколько музыкальных тактов могут вызвать целую гамму чувственных воспоминаний, включая пейзажи, звуки и запахи. Напротив, обычная компьютерная память является локально адресуемой, предъявляется адрес и извлекается информация по этому адресу. Ассоциативная память (память с адресацией по содержанию)-запоминающее устройство, состоящее из ячеек, в которых хранятся данные. Выборка и запись в эти ячейки производится в зависимости от содержащейся в ней информации. По степени соответствия объектов различают автоассоциации и гетероассоциации. Автоассоциации реализуются при условии соответствия соотносимых объектов, при этом объект обнаруживается по его произвольным частям, имеющим большую или меньшую корреляцию с искомым объектом. Для гетероассоциаций характерно то, что определяемый объект структурно не соответствует ни одному из хранимых объектов и формируется как ответ на ключевой образ. Сеть с обратной связью формирует ассоциативную память. Подобно человеческой памяти по заданной части нужной информации вся информация извлекается из «памяти». Чтобы организовать ассоциативную память с помощью сети с обратными связями, веса должны выбираться так, чтобы образовывать энергетические минимумы в нужных вершинах единичного гиперкуба. 5. Обучение сети. Хопфилд разработал ассоциативную память с непрерывными выходами, изменяющимися в пределах от +1 до –1, соответствующих двоичным значениям 0 и 1, и предложил использовать для решения этой задачи Хеббовское правило построения межнейронных связей. На стадии инициализации сети весовые коэффициенты синапсов устанавливаются следующим образом: (4) Здесь i и j – индексы, соответственно, пресинаптического и постсинаптического нейронов; xik, xjk – i-ый и j-ый элементы вектора k-ого образца, r-количество образцов. Алгоритм функционирования сети следующий (p – номер итерации): 1. На входы сети подается неизвестный сигнал. Фактически его ввод осуществляется непосредственной установкой значений аксонов: yi(0) = xi , i = 1...m, (5) 2. Рассчитывается новое состояние нейронов , j=1…m (6) и новые значения аксонов (7) где f – активационная функция в виде скачка. 3. Проверка, изменились ли выходные значения аксонов за последнюю итерацию. Если да – переход к пункту 2, иначе (если выходы стабилизировались) – конец. При этом выходной вектор представляет собой образец, наилучшим образом сочетающийся с входными данными. Как говорилось выше, иногда сеть не может провести распознавание и выдает на выходе несуществующий образ. Это связано с проблемой ограниченности возможностей сети. Для сети Хопфилда число запоминаемых образов r не должно превышать величины, примерно равной 0.15•m. Кроме того, если два образа А и Б сильно похожи, они, возможно, будут вызывать у сети перекрестные ассоциации, то есть предъявление на входы сети вектора А приведет к появлению на ее выходах вектора Б и наоборот. Аттракторам, не совпадающим с стационарными состояниями, часто присваиваются такие негативные названия, как ложная или паразитная память, химеры, русалки и даже мусорная куча. Подобное отношение вызвано тем, что при релаксации начального состояния сети в одно из состояний ложной памяти интерпретировать результат распознавания становится затруднительно. Однако само по себе появление таких непредвиденных аттракторов является замечательным свойством модели Хопфилда и свидетельствует о том, что она способна не просто на ассоциативную выборку запомненной информации, но также и на синтез новых образов. Можно сказать, что сеть активно преобразует исходную информацию, а не является пассивным хранилищем образов. Конечно, ассоциативная память может быть реализована и без использования нейронных сетей. Для достаточно с помощью обычного компьютера осуществить последовательное сравнение внешнего стимула со всеми предварительно запомненными образами, выбрав из них тот, для которого Хэммингово расстояние до входного сигнала минимально. Однако, сеть Хопфилда позволяет исключить перебор состояний памяти и осуществить эту процедуру параллельным способом, при котором время выборки из памяти не увеличивается с ростом числа запомненных образов. 6. Модель Крика - Митчисона. Разобучение В 1983 году в журнале Nature одновременно появились две публикации (Hopfield, Feinstein & Palmer 1983 и Crick & Mitchison, 1983), в которых была описана процедура уменьшения доступа к состояниям ложной памяти и ее возможная биологическая интерпретация. Эта процедура, названная разобучением, применяется к уже обученной сети, в пространстве которой есть ложные состояния. Она предполагает многократное предъявление сети в качестве начальных состояний случайно сгенерированных векторов и прослеживание их эволюции вплоть до стационарного состояния , которое может принадлежать как истинной, так и ложной памяти. После этого связи в сети модифицируются следующим образом:, где - небольшая константа. Хопфилд с коллегами установили, что применение такой процедуры к сети, обученной по правилу Хебба на наборе случайных векторов, приводит к увеличению и выравниванию доступности состояний, соответствующих запоминаемым образам, и снижению доступности состояний ложной памяти. Эти явления они объяснили тем, что в рассматриваемом случае состояниям ложной памяти соответствуют гораздо более “мелкие” энергетические минимумы, чем состояниям, соответствующим запоминаемым образом. Поэтому ложные состояния сильнее подвержены разобучению, которое выражается в “закапывании” энергетических минимумов, в которые попадает система. Выравнивание доступности состояний памяти объясняется тем, что состояния с большими областями притяжения чаще притягивают случайный стимул и их область притяжения уменьшается быстрее, чем у состояний с меньшими сферами притяжения. Крик и Митчисон, кроме того, предположили, что процесс, аналогичный разобучению, происходит в мозгу человека и животных во время фазы быстрого (парадоксального) сна, для которого характерны фантастические сюжеты (составленные из аналогов ложных образов). В этот период кора головного мозга постоянно возбуждается случайными воздействиями ствола мозга, и возникающие картины далеки от тех, которые дает сенсорный опыт. Разобучение при этом эффективно приводит к забыванию подобных парадоксальных картин и к увеличению доступа к образам, соответствующим объектам внешнего мира. Гипотеза о роли быстрого сна была сформулирована Криком и Митчисоном в виде афоризма: “Мы грезим, чтобы забыть”. ЛЕКЦИЯ №9. модификации сети Хопфилда. Двунаправленная ассоциативная память. машина больцмана 1. Двунаправленная ассоциативная память. 2. Машина Больцмана. 3. Выводы. 1.Двунаправленная ассоциативная память. Двунаправленная ассоциативная память (ДАП) является модификацией сети Хопфилда и предназначена для решения задач гетероассоциативной памяти. Это рекуррентная и, в отличие от сети Хопфилда, двухслойная сеть. Как и сеть Хопфилда, ДАП способна к обработке неполных и зашумленных данных. На рис.1 приведена базовая конфигурация ДАП. Эта сеть ассоциирует образы А и В. Образ А подается на вход сети, а В получается на выходе. ДАП состоит из двух слоев нейронов, первый слой из N элементов имеет выходной сигнал X , а M нейронов второго слоя - выходной сигнал Y. Весовые коэффициенты связей между вторым (с выходами Y) и первым (с выходами X) слоями определяются матрицей W = {Wij}, i = 1,2,...,N; j = l,2,...,M. Рис. 1 Структурная схема ДАП Весовая матрица сети ДАП формируется обучением с помощью правила Хебба. Пусть общая память сети ξ содержит ρ пар ассоциируемых друг с другом образов, представленных векторами в пространстве признаков: Тогда . Смена состояний нейронов первого и второго слоев происходит следующим образом: где νi(1) и νj(1)- внутренние выходы нейронов первого и второго слоев соответственно, а Si и Тj - пороговые значения функции активации для первого и второго слоев. Внутренние выходы вычисляются следующим образом: Таким образом, Xnew = f(WTYold) и Ynew = f(WXold). Все нейроны слоя с выходным сигналом X обновляют свои состояния одновременно в определенный момент времени, все нейроны второго слоя -также одновременно в следующий момент времени. Этот процесс продолжается до тех пор, пока X и Υ не перестанут изменяться. Пример 1. Используем ДАП, состоящую из трех нейронов, для решения задачи автоассоциативной памяти. Пусть в общей памяти сети хранятся образы А1 = [-1 1 -1], Α2 = [11 -1], А3 = [-1 1 1], которые ассоциируются с образами В1 = [-11 -1], B2 = [1 1 -1], В3 = [-1 1 1] соответственно. Весовая матрица сети Убедимся, что сеть действительно функционирует правильно, т. е. воспроизводит образы В в ответ на предъявление образов А: Для образов A2 и A3 аналогично. Пример 2 Пусть в общей памяти сети хранятся образы А1 = [1 -1 -1], A2 = [-1 1 -1], А3 = [-1 -1 1], которые ассоциируются с образами В1 = [1 -1], B2 = [-1 -1], B3 = [-1 1] соответственно Весовая матрица сети Транспонированная весовая матрица сети: Убедимся, что сеть действительно функционирует правильно, т. е. воспроизводит образы В в ответ на предъявление образов А: Для образов A1 и В2, А3, и B3 аналогично. Отметим, что двунаправленная ассоциативная память, как и сеть Хопфилда, не всегда приходит к правильному решению, поскольку ее энергетическая функция также может иметь локальные экстремумы, из которых ей не "выбраться" ввиду детерминированного функционирования сети. 2. Машина Больцмана. Одним из основных недостатков сети Хопфилда является тенденция "стабилизации" выходного сигнала в локальном, а не глобальном минимуме. Желательно, чтобы сеть находила глобальные минимумы чаще, чем мелкие, и чтобы относительная вероятность перехода сети в один из двух различных минимумов зависела только от соотношения их глубин. Идея использования теплового шума для выхода из локальных минимумов и повышения вероятности попадания в глобальные минимумы принадлежит С. Кирпатрику. Положительная роль температуры заключается в том, что шум позволяет системе покидать локальные минимумы энергии и двигаться в сторону более глубоких энергетических минимумов. Соответствующий (не нейросетевой) алгоритм оптимизации был предложен в 1953 г. и получил название имитации отжига (Metropolis et al., 1953). Этот термин происходит от названия способа выжигания дефектов в кристаллической решетке. Атомы, занимающие в ней неправильное место, при низкой температуре не могут сместиться в нужное положение - им не хватает кинетической энергии для преодоления потенциального барьера. При этом система в целом находится в состоянии локального энергетического минимума. Для выхода из него металл нагревают до высокой температуре, а затем медленно охлаждают, позволяя атомам занять правильные положения в решетке, соответствующее глобальному минимуму энергии. На основе этой идеи разработан нейросетевой алгоритм имитации отжига. Сеть, использующая для обучения алгоритм имитации отжига, названа машиной Больцмана, в честь австрийского физика, одного из создателей статистической механики. Машина Больцмана - это модификация сети Хопфилда, в которой используется так называемое стохастическое функционирование, позволяющее сети чаще достигать глобального экстремума энергетической функции и, следовательно, находить правильное решение. Машина Больцмана и сеть Хопфилда имеют следующие общие характеристики: • сеть предназначена для решения задач ассоциативной памяти; • сеть однослойная, рекуррентная; • состояния принимают значения ±1; • весовая матрица межнейронных связей симметричная; • нейроны не имеют обратных связей к самим себе, т. е. значения диагональных элементов весовой матрицы равны нулю; • нейроны обновляют свое состояние по одному в единицу времени и выбираются случайно. Однако существует и важное отличие: алгоритм обновления состояний нейронов машины Больцмана является вероятностным, а не детерминированным, как в сети Хопфилда, а сами нейроны называются стохастическими. Стохастический нейрон j изменяет свое состояние sj в зависимости от значения его внутреннего выхода vj с вероятностью P(vj). Тогда состояние j-го нейрона определяется следующим образом: (1) Вероятность изменения состояния нейрона определяется с помощью функции (2) где Т - параметр, определяющий характер функционирования нейрона. Если Т → 0, то функция становится пороговой и правило активации стохастического нейрона сводится к правилу функционирования нейрона сети Хопфилда. Чем больше Т, тем сильнее вероятностный характер функционирования стохастического нейрона. При Т → ∞ вероятность смены состояния составляет 1/2. Рис. 2 Изменение вероятности активности нейрона в зависимости от параметра Т Функционирование нейронов можно объяснить и в терминах изменения энергии сети ΔΕ. Вероятность перехода j-го нейрона на некотором шаге процесса функционирования сети из состояния sj в состояние -sj (3) где ∆Ej - изменение энергии в результате смены состояния. Обозначим Е+ - энергию сети при условии, что j-й нейрон находится в состоянии sj, а Е- - в состоянии -sj. Тогда изменение энергии при переходе j-го нейрона из состояния sj в состояние -sj. Вероятность смены состояний в соответствии с (3): Если начальное состояние нейрона -1, то вероятность смены состояния на противоположное: а если начальное состояние нейрона 1, то вероятность смены состояния на -1: т. е. определения (2) и (3) эквивалентны. Алгоритм функционирования машины Больцмана следующий: 1. Вычисление весовых коэффициентов в соответствии с правилом Хебба. 2. Инициализация состояний sj значениями тестового вектора. 3. Выбор начального значения параметра Т = T0 . 4. Обновление состояний нейронов сети по (1). 5. Возвращение к этапу 4. После L итераций (количество итераций определяют эмпирически) уменьшение параметра Т. 6. Возвращение к этапу 4 до тех пор, пока не будет найдено стабильное состояние, соответствующее минимуму энергетической функции. Замечание. Уменьшение значения параметра Т предполагается медленным. Если это требование не соблюдать, то сеть игнорирует малые энергетические изменения и может не достичь глобального минимума. Теоретически доказано, что скорость уменьшения Т должна быть обратно пропорциональна логарифму времени: но сходимость алгоритма машины Больцмана при этом будет слишком медленной. Поэтому на практике используют процедуру с ограничением по времени: • определяют T0; • правило изменения Т определяют рекуррентно как Ti = α Ti - 1, где i = 1,2, ...,и 0.8 < α < 0.99; • определяют конечное значение Tk. 3. Выводы Процесс функционирования рекуррентной сети заключается в поиске экстремума характеристической функции, называемой также энергетической функцией. Поэтому естественным является применение рекуррентных нейронных сетей для решения задач, которые сводятся к поиску экстремума. В частности, это задачи ассоциативной памяти. В данной лекции рассмотрены модели сетей Хопфилда, двунаправленной ассоциативной памяти и машина Больцмана. Сеть Хопфилда и машина Больцмана решают задачи автоассоциативной, а ДАП -задачи гетероассоциативной памяти. Эти модели взаимно дополняют друг друга. Сети Хопфилда и ДАП присуще детерминированное функционирование, поэтому не всегда эти сети достигают правильного решения. Машина Больцмана имеет стохастический характер функционирования, поэтому сеть приобретает способность "выбираться" из локальных экстремумов и чаще, чем детерминированные сети, достигает правильного решения. ЛЕКЦИЯ №10. решение задач комбинаторной оптимизации при помощи нейронных сетей 1. Введение. 2. Решение задачи комбинаторной оптимизации с помощью сети Хопфилда. 3. Решение задачи комбинаторной оптимизации с помощью метода имитации отжига. 4. Решение задачи комбинаторной оптимизации с помощью сети Кохонена. 5. Решение задачи комбинаторной оптимизации с помощью генетических алгоритмов. 1. Введение. Высокая степень распараллеленности обработки информации позволяет успешно применять нейросетевые технологии для решения задач комбинаторной оптимизации. Среди оптимизационных задач, эффективно решаемых нейросетевыми методами, в первую очередь следует отметить задачи транспортно-ориентированной оптимизации (например, задача коммивояжера и ее модификации) и задачи распределения ресурсов (задача о назначениях, задача целераспределения и другие). Решение таких задач традиционными методами математического программирования, большинство из которых изначально ориентировано на вычислительную технику с последовательной архитектурой, сопряжено с большими временными затратами, неприемлемыми для многих приложений. При соответствующей аппаратной поддержке нейросетевые методы позволяют значительно повысить оперативность решения данного класса задач, сохраняя высокую точность результата. В частности, для задач распределения разнородных ресурсов по объектам назначения близкие к оптимальным решения могут быть получены на ускорительной плате с 4 процессорами TMS320C40 менее чем за 0,3 секунды. При этом увеличение количества параллельно работающих процессоров позволяет обеспечить рост производительности почти пропорциональный числу процессоров, что подтверждается экспериментально полученными графиками, представленными на рис. 1. Рис.1.Графики среднего времени решения задачи распределения ресурсов на одном и четырех процессорах TMS320C40. В задачах комбинаторной оптимизации требуется найти наилучшее из конечного, но обычно очень большого числа возможных решений. Если задача характеризуется характерным числом элементов (размерностью задачи), то типичное число возможных решений, из которых предстоит сделать выбор, растет экспоненциально - как или еще скорее - как . Это свойство делает простой метод перебора всех вариантов, в принципе гарантирующий решение при конечном числе альтернатив, чрезвычайно неэффективным, т.к. такое решение требует экспоненциально большого времени. Эффективными же признаются решения, гарантирующие получение ответа за полиномиальное время, растущее как полином с ростом размерности задачи, т.е. как . Задачи, допускающие гарантированное нахождение оптимума целевой функции за полиномиальное время, образуют класс . Этот класс являюется подклассом более обширного класса задач, в которых за полиномиальное время можно всего лишь оценить значение целевой функции для конкретной конфигурации, что гораздо проще, чем выбрать наилучшую из всех конфигураций. Для более трудных задач достаточно было бы и более слабого условия - нахождения субоптимальных решений, локальных минимумов целевой функции, не слишком сильно отличающихся от абсолютного минимума. Нейросетевые решения как раз и представляют собой параллельные алгоритмы, быстро находящие субоптимальные решения оптимизационных задач, минимизируя целевую функцию в процессе своего функционирования или обучения. Самые трудные задачи класса называют -полными. Это название объясняется тем, что если бы удалось доказать, что существует полиномиальное решение такой задачи, то такое решение существовало бы и для любой другой задачи класса , т.е. классы и совпадали бы. Поскольку, такой сценарий крайне маловероятен, именно для таких проблем наиболее важен поиск субоптимальных решений. Все -полные задачи одинаково сложны (поскольку все они сводятся друг к другу за полиномиальное время), и методы решения любой из них можно применять также и к другим задачам комбинаторной оптимизации. Исторически наиболее исследованной и популярной задачей такого рода , которая используется для сравнения различных алгоритмов, стала задача коммивояжера. В классической постановке, коммивояжер должен объехать городов по замкнутому маршруту, посетив каждый из них лишь однажды, таким образом, чтобы полная длина его маршрута была минимальной. Если решать задачу коммивояжера - перебором всех замкнутых путей, связывающих городов, то придется проверить все возможных маршрутов. Будучи -полной, задача коммивояжера не имеет практически реализуемого точного решения. На примере этой задачи рассмотрим различные методы ее приближенного решения с помощью нейросетей. 2. Решение задачи комбинаторной оптимизации с помощью сети Хопфилда. В 1985г. Хопфилд и Танк предложили использовать минимизирующие энергию нейронные сети для решения задач оптимизации (Hopfield & Tank, 1985). В качестве примера они рассмотрели задачу коммивояжера. Для решения этой задачи с помощью нейронной сети Хопфилда нужно закодировать маршрут активностью нейронов и так подобрать связи между ними, чтобы энергия сети оказалась связанной с полной длиной маршрута. Хопфилд и Танк предложили для этого следующий способ. Рассмотрим сеть, состоящую из бинарных нейронов, состояния которых мы обозначим , где индекс кодирует город, а индекс - номер города в маршруте (рис. 2). Если обозначить через расстояние между -м и-м городами, решение задачи коммивояжера сводится к минимизации целевой функции (1) при дополнительных условиях и , (2) первое из которых говорит о том, что любой город в маршруте встречается лишь однажды, а второе - что маршрут проходит через каждый город. Общий подход к ограничениям в задачах оптимизации состоит в том, что в итоговый функционал, подлежащий минимизации, включаются штрафные члены, увеличивающие целевую функцию при отклонении от накладываемых ограничений. В данном случае в качестве энергии состояния сети можно выбрать функционал , (3) где т.н. множитель Лагранжа регулирует строгость соблюдения дополнительных условий в конечном решении. Рис. 2. Слева - один из возможных маршрутов коммивояжера в случае задачи с 5 городами. Справа - кодировка этого маршрута состояниями 25 бинарных нейронов. Осмысленному решению будет соответствовать стационарное состояние сети, в котором лишь N нейронов сети будут активными () и в каждом столбце и в каждой строке матрицы будет находиться один и только один единичный элемент. Величина множителя Лагранжа регулирует “торг” между поиском маршрута минимальной протяженности и осмысленностью вида самого маршрута. Частное решение, соответствующее локальному минимуму функционала , может быть осмысленным (второе слагаемое обращаются на нем в ноль), но первое слагаемое (длина маршрута) для него, возможно будет слишком велико. Наоборот, длина маршрута может быть достаточно мала, но одно из оставшихся слагаемых будет ненулевым и маршрут окажется не интерпретируем или недостаточен (например, проходит не через все города). После того, как минимизируемая целевая функция для задачи коммивояжера построена, можно определить, какие связи в нейронной сети Хопфилда следует выбрать, так чтобы функционал энергии состояния в ней совпал с этой функцией. Для этого достаточно приравнять выражение для к энергии рекуррентной сети: . (4) Таким образом находятся значения синаптических связей в сети: (5) и значений порогов нейронов. Общее число весов в сети - порядка . После того как сеть построена, можно, стартуя со случайного начального состояния, проследить ее эволюцию к стационарной конфигурации, которая может дать если не оптимальное, то по крайней мере хорошее решение задачи. К сожалению, в описанном виде сеть чаще всего "застревает" в локальном минимуме относительно далеком от оптимума. Для улучшения ситуации Хопфилд и Танк предложили использовать сети с непрерывными (аналоговыми) нейронами, принимающими любые значения в интервале . В качестве тестовых они использовали задачи с 10 и 30 городами. В первом случае сеть в 20 попытках 16 раз эволюционировала к состояниям, описывающим осмысленный маршрут и в 10 случаях давала один из двух возможных оптимальных маршрутов. Поскольку для задачи с городами полное число всевозможных маршрутов равно (делитель 2N возникает вследствие инвариантности маршрута относительно циклического сдвига и обращения направления движения), то в задаче с 10 городами оно составляет 181440. Таким образом, выигрыш при использовании сети, по сравнению со случайным выбором составляет 105. В случае задачи с 30 городами полное число маршрутов приблизительно равно 4.4x1030. Экономия, даваемая сетью, составила в этом случае 1022. В дальнейшем было показано, что использование сети Кохонена дает лучшие результаты при решении той же задачи. Однако, поскольку на практике (в робототехнике, при проведении стыковки космических аппаратов, в автоматической навигации) необходимо быстро находить хорошее, но не обязательно лучшее решение, то при электронной реализации аналоговая сеть Хопфилда дает исключительно эффективное решение задач оптимизации. 3. Решение задачи комбинаторной оптимизации с помощью метода имитации отжига. В предыдущем разделе мы заметили, что переход от бинарных нейронов к аналоговым значительно улучшил свойства решения. Аналогичного эффекта можно добиться используя по-прежнему бинарные нейроны, но заменив детерминистскую динамику стохастической, характеризуемой некоторой эффективной температурой . При этом среднее значение состояния нейрона также будет лежать в допустимом интервале . Субоптимальное решение некоторой задачи оптимизации, например, задачи коммивояжера, также может рассматриваться как решение в котором имеются дефекты - неправильные части маршрута. Лин и Кернигэн (Lin & Kernigan, 1973) ввели элементарные операции изменения текущего решения, такие как перенос (часть маршрута вырезается и вставляется в другое место) и обращение (выбирается фрагмент маршрута и порядок прохождения городов в нем меняется на обратный). При применении одной из этих операций происходит изменение маршрута с на , и значение минимизируемого функционала меняется на . В соответствии с принципами термодинамики, это изменение принимается с вероятностью (6) где Т - эффективная температура. Таким образом в методе отжига с некоторой вероятностью допускается переход системы в состояния с более высокой энергией. Эта вероятность тем выше, чем выше эффективная температура. Поиск минимума начинается с некоторого начального маршрута при высоком значении температуры. По мере эволюции состояния системы эта температура медленно снижается (для примера - на 5% после осуществления элементарных операций изменения маршрута). Поиск продолжается до тех пор, пока система не захватывается энергетическим минимумом, из которого она уже не может выйти за счет тепловых флуктуаций. Многочисленные исследования показали, что метод имитации отжига является очень эффективным способом получения решений близких к оптимальному и часто служит эталоном сравнения для нейросетевых подходов. Сеть, использующая для обучения алгоритм имитации отжига, названа машиной Больцмана в честь австрийского физика Л. Больцмана, одного из создателей статистической механики. 4. Решение задачи комбинаторной оптимизации с помощью сети Кохонена. Успех применения метода эластичной сети для решении задачи коммивояжера был оценен Фаватой и Уолкером, понявшими, что в нем, по сути, используется отображение двумерного распределения городов на одномерный кольцевого маршрута (Favata & Walker, 1991). Поскольку в наиболее общем виде такой подход был сформулирован Кохоненом, то использование его самоорганизующихся карт для оптимизации оказалось вполне естественным. Сеть Кохонена позволяет обеспечить выполнение условия, которому должен удовлетворять хороший маршрут в задаче коммивояжера: близкие города на плоскости должны быть отображены на близкие в одномерном маршруте. Алгоритм решения задачи следует из оригинальной схемы Кохонена, в которую вносятся лишь небольшие изменения. Используется сеть, состоящая из двух одномерных слоев нейронов (т.е. содержащая лишь один слой синаптических весов). Входной слой состоит из трех нейронов, а выходной - из N (по числу городов). Каждый нейрон входного слоя связан с каждым выходным нейроном. Все связи вначале инициируются случайными значениями. Для каждого города входной 3-мерный вектор формируется из двух его координат на плоскости, а третья компонента вектора представляет из себя нормирующий параметр, вычисляемый так, чтобы все входные вектора имели одинаковую Евклидову длину и никакие два вектора не были бы коллинеарны. Это эквивалентно рассмотрению двумерных координат городов, как проекций трехмерных векторов, лежащих на сфере. Обозначим через 3-мерный вектор синаптических связей, связывающих j-й выходной нейрон с входными нейронами. Если - трехмерный входной вектор, определяющий i -й город, то активация j-го выходного нейрона при подаче на вход определяется скалярным произведением (,). Выходной нейрон, для которого это произведение максимально, называется образом города. Алгоритм формирования маршрута формулируется следующим образом. Выбираются значения для параметра усиления и радиуса взаимодействия r. Следующий цикл выполняется вплоть до выполнения условия . 1) Выбирается случайный город с. 2) Определяется номер образа города в выходном слое - . 3) Векторы связей , соединяющих нейрон , и всех его 2r близлежащих соседей справа и слева: j = - r, - r +1, ..., , ..., + r - 1, + r модифицируются следующим образом: , (7) где - Евклидова норма вектора . Для устранения концевых эффектов слой выходных нейронов считается кольцевым, так что N-й нейрон примыкает к первому. 4) Радиус взаимодействия постепенно уменьшается согласно некоторому правилу (например, вначале можно положить , затем за первые 10% циклов снизить его до значения 1, которое далее поддерживается постоянным). 5) Параметр усиления постепенно снижается на небольшую величину ( например, в экспериментах Фавата и Уолкера он линейно уменьшался до нуля). Конкретный вид законов изменения радиуса взаимодействия и параметра усиления, как правило, не имеет большого значения. После завершения процесса обучения, положение города в маршруте определится положением его образа в кольцевом выходном слое. Иногда случается, что два или большее число городов отображаются на один и тот же выходной нейрон. Подобная ситуация может интерпретироваться так, что локальное упорядочивание этих городов не имеет значения и требует только локальной оптимизации части маршрута. При нескольких десятках городов такая оптимизация может скорректировать его длину на величину до 25%. Для сотен городов она, как правило, не улучшает результат и поэтому не используется. Эксперименты Фаваты и Уолкера, проведенные для задачи коммивояжера с 30 городами дали лучшие результаты, чем полученные с помощью сети Хопфилда ( таблица 2). Таблица 2. Сравнение результатов решения задачи коммивояжера с 30 городами сеть Хопфилда сеть Кохонена Длина маршрута < 7 < 5.73 Средняя длина маршрута > 6 4.77 Наименьшая длина маршрута 5.07 4.26 Однако для большего числа городов сеть Кохонена все же в среднем дает более длинные маршруты, чем метод имитации отжига (примерно на 5%). При практическом применении нейросетевых подходов к решению задач оптимизации, однако, главное значение имеет не столько близость решения к глобальному оптимуму, сколько эффективность его получения. В этом смысле сеть Кохонена значительно эффективнее имитации отжига. 5. Решение задачи комбинаторной оптимизации с помощью генетических алгоритмов. Эти алгоритмы могут использоваться для поиска экстремума нелинейных функций с множественными локальными минимумами. Они имитируют адаптацию живых организмов к внешним условиям в ходе эволюции. Точнее, они моделируют эволюцию целых популяций организмов и поэтому требуют достаточно больших ресурсов памяти и высокой скорости вычислительных систем. Важным достоинством их является то, что они не накладывают никаках требований на вид минимизируемой функции (например, дифференцируемость). Поэтому их можно применять в случаях, когда градиентные методы не применимы. Генетические алгоритмы используют соответствующую терминологию, конфигурации системы называют хромосомами, над которой можно производить операции кроссинговера и мутации. Хромосома является основной информационной единицей, кодирующей переменную, относительно которой ищется оптимум. Обычно она представляет собой битовую строку, хотя компоненты этой строки могут иметь и более общий вид (для задачи коммивояжера компоненты хромосом представляют собой последовательность номеров городов в данном маршруте, например (145321)). Каждая компонента хромосомы называется геном. Выбор удачного представления для хромосомы, или же кодировка искомого решения, могут значительно облегчить нахождение решения. Обучение происходит в популяции хромосом, к которым на каждом шаге эволюции применяются две основные операции. При мутациях в хромосоме случайным образом выбираются и изменяются ее компоненты (гены). При кроссинговере две хромосомы А и В разрезаются на две части в случайно выбранной одной точке А=(А1, А2 ) и В=(В1, В2) и обмениваются ими, давая две новые хромосомы: А’=(А1, B2 ) и В’=(В1, A2) (рис. 3). Рис.3. Представление искомого решения в виде битовой строки - хромосомы (вверху). Операции мутации и кроссинговера (внизу) После каждого шага эволюции - генерации, на котором мутируют и подвергаются кроссинговеру все хромосомы, для каждой из новых хромосом вычисляется значение целевого функционала, которое достигается на кодируемых ими решениях. Чем меньше это значение для данной хромосомы, тем с большей вероятностью она отбираются для кроссинговера. В ходе эволюции усредненное по популяции значение функционала будет уменьшаться, и после завершения процесса (проведения заданного числа генераций) хромосома с минимальным его значаением выбирается в качестве приближенного решения поставленной задачи. Можно значительно улучшить свойства генетического алгоритма если после порождения новой генерации N хромосом предварительно объединить ее с предыдущей популяцией и выбрать из 2N полученных хромосом N наилучших. Опыт показывает, что генетические алгоритмы особенно эффективны при поиске глобального оптимума, поскольку они осуществляют поиск в широком пространстве решений. Если закодировать в виде хромосом значения весов и порогов нейронной сети заданной архитектуры и использовать в роли минимизируемой функции функционал ошибки, то генетические алгоритмы можно использовать для обучения этой нейронной сети. Очевидно, что для этой же цели можно использовать и описанный ранее метод иммитации отжига. Лекция №11 НЕЧЕТКАЯ ЛОГИКА 1. Введение. 2. Математический аппарат. 3. Нечеткий логический вывод. 4. Интеграция с интеллектуальными парадигмами. Математическая теория нечетких множеств (fuzzy sets) и нечеткая логика (fuzzy logic) являются обобщениями классической теории множеств и классической формальной логики. Данные понятия были впервые предложены американским ученым Лотфи Заде (Lotfi Zadeh) в 1965 г. Основной причиной появления новой теории стало наличие нечетких и приближенных рассуждений при описании человеком процессов, систем, объектов. Прежде чем нечеткий подход к моделированию сложных систем получил признание во всем мире, прошло не одно десятилетие с момента зарождения теории нечетких множеств. И на этом пути развития нечетких систем принято выделять три периода. Первый период (конец 60-х–начало 70 гг.) характеризуется развитием теоретического аппарата нечетких множеств (Л. Заде, Э. Мамдани, Беллман). Во втором периоде (70–80-е годы) появляются первые практические результаты в области нечеткого управления сложными техническими системами (парогенератор с нечетким управлением). Одновременно стало уделяться внимание вопросам построения экспертных систем, построенных на нечеткой логике, разработке нечетких контроллеров. Нечеткие экспертные системы для поддержки принятия решений находят широкое применение в медицине и экономике. Наконец, в третьем периоде, который длится с конца 80-х годов и продолжается в настоящее время, появляются пакеты программ для построения нечетких экспертных систем, а области применения нечеткой логики заметно расширяются. Она применяется в автомобильной, аэрокосмической и транспортной промышленности, в области изделий бытовой техники, в сфере финансов, анализа и принятия управленческих решений и многих других. Триумфальное шествие нечеткой логики по миру началось после доказательства в конце 80-х Бартоломеем Коско знаменитой теоремы FAT (Fuzzy Approximation Theorem). В бизнесе и финансах нечеткая логика получила признание после того как в 1988 году экспертная система на основе нечетких правил для прогнозирования финансовых индикаторов единственная предсказала биржевой крах. И количество успешных фаззи-применений в настоящее время исчисляется тысячами. Математический аппарат Характеристикой нечеткого множества выступает функция принадлежности (Membership Function). Обозначим через MFc(x) – степень принадлежности к нечеткому множеству C, представляющей собой обобщение понятия характеристической функции обычного множества. Тогда нечетким множеством С называется множество упорядоченных пар вида C={MFc(x)/x}, MFc(x) [0,1]. Значение MFc(x)=0 означает отсутствие принадлежности к множеству, 1 – полную принадлежность. Проиллюстрируем это на простом примере. Формализуем неточное определение 'горячий чай'. В качестве x (область рассуждений) будет выступать шкала температуры в градусах Цельсия. Очевидно, что она будет изменяется от 0 до 100 градусов. Нечеткое множество для понятия 'горячий чай' может выглядеть следующим образом: C={0/0; 0/10; 0/20; 0,15/30; 0,30/40; 0,60/50; 0,80/60; 0,90/70; 1/80; 1/90; 1/100}. Так, чай с температурой 60 С принадлежит к множеству 'Горячий' со степенью принадлежности 0,80. Для одного человека чай при температуре 60 С может оказаться горячим, для другого – не слишком горячим. Именно в этом и проявляется нечеткость задания соответствующего множества. Для нечетких множеств, как и для обычных, определены основные логические операции. Самыми основными, необходимыми для расчетов, являются пересечение и объединение. Пересечение двух нечетких множеств (нечеткое "И"): A B: MFAB(x)=min(MFA(x), MFB(x)). Объединение двух нечетких множеств (нечеткое "ИЛИ"): A B: MFAB(x)=max(MFA(x), MFB(x)). В теории нечетких множеств разработан общий подход к выполнению операторов пересечения, объединения и дополнения, реализованный в так называемых треугольных нормах и конормах. Приведенные выше реализации операций пересечения и объединения – наиболее распространенные случаи t-нормы и t-конормы. Для описания нечетких множеств вводятся понятия нечеткой и лингвистической переменных. Нечеткая переменная описывается набором (N,X,A), где N – это название переменной, X – универсальное множество (область рассуждений), A – нечеткое множество на X. Значениями лингвистической переменной могут быть нечеткие переменные, т.е. лингвистическая переменная находится на более высоком уровне, чем нечеткая переменная. Каждая лингвистическая переменная состоит из: • названия; • множества своих значений, которое также называется базовым терм-множеством T. Элементы базового терм-множества представляют собой названия нечетких переменных; • универсального множества X; • синтаксического правила G, по которому генерируются новые термы с применением слов естественного или формального языка; • семантического правила P, которое каждому значению лингвистической переменной ставит в соответствие нечеткое подмножество множества X. Рассмотрим такое нечеткое понятие как 'Цена акции'. Это и есть название лингвистической переменной. Сформируем для нее базовое терм-множество, которое будет состоять из трех нечетких переменных: 'Низкая', 'Умеренная', 'Высокая' и зададим область рассуждений в виде X=[100;200] (единиц). Последнее, что осталось сделать – построить функции принадлежности для каждого лингвистического терма из базового терм-множества T. Существует свыше десятка типовых форм кривых для задания функций принадлежности. Наибольшее распространение получили: треугольная, трапецеидальная и гауссова функции принадлежности. Треугольная функция принадлежности определяется тройкой чисел (a,b,c), и ее значение в точке x вычисляется согласно выражению: При (b-a)=(c-b) имеем случай симметричной треугольной функции принадлежности, которая может быть однозначно задана двумя параметрами из тройки (a,b,c). Аналогично для задания трапецеидальной функции принадлежности необходима четверка чисел (a,b,c,d): При (b-a)=(d-c) трапецеидальная функция принадлежности принимает симметричный вид. Рисунок 1. Типовые кусочно-линейные функции принадлежности. Функция принадлежности гауссова типа описывается формулой и оперирует двумя параметрами. Параметр c обозначает центр нечеткого множества, а параметр отвечает за крутизну функции. Рисунок 2. Гауссова функция принадлежности. Совокупность функций принадлежности для каждого терма из базового терм-множества T обычно изображаются вместе на одном графике. На рисунке 3 приведен пример описанной выше лингвистической переменной 'Цена акции', на рисунке 4 – формализация неточного понятия 'Возраст человека'. Так, для человека 48 лет степень принадлежности к множеству 'Молодой' равна 0, 'Средний' – 0,47, 'Выше среднего' – 0,20. Рисунок 3. Описание лингвистической переменной 'Цена акции'. Рисунок 4. Описание лингвистической переменной 'Возраст'. Количество термов в лингвистической переменной редко превышает 7. Нечеткий логический вывод Основой для проведения операции нечеткого логического вывода является база правил, содержащая нечеткие высказывания в форме 'Если-то' и функции принадлежности для соответствующих лингвистических термов. При этом должны соблюдаться следующие условия: 1. Существует хотя бы одно правило для каждого лингвистического терма выходной переменной. 2. Для любого терма входной переменной имеется хотя бы одно правило, в котором этот терм используется в качестве предпосылки (левая часть правила). В противном случае имеет место неполная база нечетких правил. Пусть в базе правил имеется m правил вида: R1: ЕСЛИ x1 это A11 … И … xn это A1n, ТО y это B1 …Ri: ЕСЛИ x1 это Ai1 … И … xn это Ain, ТО y это Bi …Rm: ЕСЛИ x1 это Ai1 … И … xn это Amn, ТО y это Bm,где xk , k=1..n – входные переменные; y – выходная переменная; Aik – заданные нечеткие множества с функциями принадлежности. Результатом нечеткого вывода является четкое значение переменной y* на основе заданных четких значений xk , k=1..n. В общем случае механизм логического вывода включает четыре этапа: 1. введение нечеткости (фазификация – процедура преобразования значений базовой переменной в нечеткую переменную, характеризующуюся функцией принадлежности); 2. нечеткий вывод; 3. композиция; 4. приведение к четкости, или дефазификация (см. рисунок 5). Рисунок 5. Система нечеткого логического вывода. Алгоритмы нечеткого вывода различаются главным образом видом используемых правил, логических операций и разновидностью метода дефазификации. Разработаны модели нечеткого вывода Мамдани, Сугено, Ларсена, Цукамото. Рассмотрим подробнее нечеткий вывод на примере механизма Мамдани (Mamdani). Это наиболее распространенный способ логического вывода в нечетких системах. В нем используется минимаксная композиция нечетких множеств. Данный механизм включает в себя следующую последовательность действий. 1. Процедура фазификации: определяются степени истинности, т.е. значения функций принадлежности для левых частей каждого правила (предпосылок). Для базы правил с m правилами обозначим степени истинности как Aik(xk), i=1..m, k=1..n. 2. Нечеткий вывод. Сначала определяются уровни 'отсечения' для левой части каждого из правил: Далее находятся 'усеченные' функции принадлежности: 3. Композиция, или объединение полученных усеченных функций, для чего используется максимальная композиция нечетких множеств: где MF(y) – функция принадлежности итогового нечеткого множества. 4. Дефазификация, или приведение к четкости. Существует несколько методов дефазификации. Например, метод среднего центра, или центроидный метод: . Геометрический смысл такого значения – центр тяжести для кривой MF(y). Рисунок 6 графически показывает процесс нечеткого вывода по Мамдани для двух входных переменных и двух нечетких правил R1 и R2. Рисунок 6. Схема нечеткого вывода по Мамдани. Интеграция с интеллектуальными парадигмами Гибридизация методов интеллектуальной обработки информации – девиз, под которым прошли 90-е годы у западных и американских исследователей. В результате объединения нескольких технологий искусственного интеллекта появился специальный термин – 'мягкие вычисления' (soft computing), который ввел Л. Заде в 1994 году. В настоящее время мягкие вычисления объединяют такие области как: нечеткая логика, искусственные нейронные сети, вероятностные рассуждения и эволюционные алгоритмы. Они дополняют друг друга и используются в различных комбинациях для создания гибридных интеллектуальных систем. Влияние нечеткой логики оказалось, пожалуй, самым обширным. Подобно тому, как нечеткие множества расширили рамки классической математическую теорию множеств, нечеткая логика 'вторглась' практически в большинство методов Data Mining, наделив их новой функциональностью. Ниже приводятся наиболее интересные примеры таких объединений. Нечеткие нейронные сети Нечеткие нейронные сети (fuzzy-neural networks) осуществляют выводы на основе аппарата нечеткой логики, однако параметры функций принадлежности настраиваются с использованием алгоритмов обучения НС. Поэтому для подбора параметров таких сетей применим метод обратного распространения ошибки, изначально предложенный для обучения многослойного персептрона. Для этого модуль нечеткого управления представляется в форме многослойной сети. Нечеткая нейронная сеть как правило состоит из четырех слоев: слоя фазификации входных переменных, слоя агрегирования значений активации условия, слоя агрегирования нечетких правил и выходного слоя. Наибольшее распространение в настоящее время получили архитектуры нечеткой НС вида ANFIS и TSK. Доказано, что такие сети являются универсальными аппроксиматорами. Быстрые алгоритмы обучения и интерпретируемость накопленных знаний – эти факторы сделали сегодня нечеткие нейронные сети одним из самых перспективных и эффективных инструментов мягких вычислений. Адаптивные нечеткие системы Классические нечеткие системы обладают тем недостатком, что для формулирования правил и функций принадлежности необходимо привлекать экспертов той или иной предметной области, что не всегда удается обеспечить. Адаптивные нечеткие системы (adaptive fuzzy systems) решают эту проблему. В таких системах подбор параметров нечеткой системы производится в процессе обучения на экспериментальных данных. Алгоритмы обучения адаптивных нечетких систем относительно трудоемки и сложны по сравнению с алгоритмами обучения нейронных сетей, и, как правило, состоят из двух стадий: 1. Генерация лингвистических правил; 2. Корректировка функций принадлежности. Первая задача относится к задаче переборного типа, вторая – к оптимизации в непрерывных пространствах. При этом возникает определенное противоречие: для генерации нечетких правил необходимы функции принадлежности, а для проведения нечеткого вывода – правила. Кроме того, при автоматической генерации нечетких правил необходимо обеспечить их полноту и непротиворечивость. Значительная часть методов обучения нечетких систем использует генетические алгоритмы. В англоязычной литературе этому соответствует специальный термин – Genetic Fuzzy Systems. Значительный вклад в развитие теории и практики нечетких систем с эволюционной адаптацией внесла группа испанских исследователей во главе с Ф. Херрера (F. Herrera). Нечеткие запросы Нечеткие запросы к базам данных (fuzzy queries) – перспективное направление в современных системах обработки информации. Данный инструмент дает возможность формулировать запросы на естественном языке, например: 'Вывести список недорогих предложений о съеме жилья близко к центру города', что невозможно при использовании стандартного механизма запросов. Для этой цели разработана нечеткая реляционная алгебра и специальные расширения языков SQL для нечетких запросов. Большая часть исследований в этой области принадлежит западноевропейским ученым Д. Дюбуа и Г. Праде. Нечеткие ассоциативные правила Нечеткие ассоциативные правила (fuzzy associative rules) – инструмент для извлечения из баз данных закономерностей, которые формулируются в виде лингвистических высказываний. Здесь введены специальные понятия нечеткой транзакции, поддержки и достоверности нечеткого ассоциативного правила. Нечеткие когнитивные карты Нечеткие когнитивные карты (fuzzy cognitive maps) были предложены Б. Коско в 1986 г. и используются для моделирования причинных взаимосвязей, выявленных между концептами некоторой области. В отличие от простых когнитивных карт, нечеткие когнитивные карты представляют собой нечеткий ориентированный граф, узлы которого являются нечеткими множествами. Направленные ребра графа не только отражают причинно-следственные связи между концептами, но и определяют степень влияния (вес) связываемых концептов. Активное использование нечетких когнитивных карт в качестве средства моделирования систем обусловлено возможностью наглядного представления анализируемой системы и легкостью интерпретации причинно-следственных связей между концептами. Основные проблемы связаны с процессом построения когнитивной карты, который не поддается формализации. Кроме того, необходимо доказать, что построенная когнитивная карта адекватна реальной моделируемой системе. Для решения данных проблем разработаны алгоритмы автоматического построения когнитивных карт на основе выборки данных. Нечеткая кластеризация Нечеткие методы кластеризации, в отличие от четких методов (например, нейронные сети Кохонена), позволяют одному и тому же объекту принадлежать одновременно нескольким кластерам, но с различной степенью. Нечеткая кластеризация во многих ситуациях более 'естественна', чем четкая, например, для объектов, расположенных на границе кластеров. Наиболее распространены: алгоритм нечеткой самоорганизации c-means и его обобщение в виде алгоритма Густафсона-Кесселя. Список можно продолжить и дальше: нечеткие деревья решений, нечеткие сети Петри, нечеткая ассоциативная память, нечеткие самоорганизующиеся карты и другие гибридные методы. ЛЕКЦИЯ 12. Теория адаптивного резонанса. Проблема стабильности - пластичности при распознавании образов. Принцип адаптивного резонаса Стефана Гроссберга и Гейла Карпентера. Нейросетевые архитектуры AРT. Дилемма стабильности-пластичности восприятия. Проблема стабильности-пластичности является одной из самых сложных и трудно решаемых задач при построении искусственных систем, моделирующих восприятие. Характер восприятия внешнего мира живыми организмами (и, прежде всего, человеком) постоянно связан с решением дилеммы, является ли некоторый образ "новой" информацией, и следовательно реакция на него должна быть поисково-познавательной, с сохранением этого образа в памяти, либо этот образ является вариантом "старой", уже знакомой картиной, и в этом случае реакция организма должна соотвествовать ранее накопленному опыту. Специальное запоминание этого образа в последнем случае не требуется. Таким образом, восприятие одновременно пластично, адаптированно к новой информации, и при этом оно стабильно, то есть не разрушает память о старых образах. Рассмотренные на предыдущих лекциях нейронные системы не приспособлены к решению этой задачи. Так например, многослойный персептрон, обучающийся по методу обратного распространения, запоминает весь пакет обучающей информации, при этом образы обучающей выборки пред'являются в процессе обучения многократно. Попытки затем обучить персептрон новому образу приведут к модификации синаптических связей с неконтролируемым, вообще говоря, разрушением структуры памяти о предыдущих образах. Таким образом, персептрон не способен к запоминанию новой информации, необходимо полное переобучение сети. Аналогичная ситуация имеет место и в сетях Кохонена и Липпмана-Хемминга, обучающихся на основе самоорганизации. Данные сети всегда выдают положительный результат при классификации. Тем самым, эти нейронные сети не в состоянии отделить новые образы от искаженных или зашумленных версий старых образов. Исследования по проблеме стабильности-пластичности, выполненные в Центре Адаптивных Систем Бостонского университета под руководством Стефана Гроссберга, привели к построению теории адаптивного резонанса (АРТ) и созданию нейросетевых архитектур нового типа на ее основе. Мы переходим к рассмотрению общих положений АРТ, выдвинутых С.Гроссбергом в 1976 г. и подробно изложенных в основополагающей работе 1987 г (S.Grossberg, G.Carpenter, 1987). Принцип адаптивного резонанса. Привлекательной особенностью нейронных сетей с адаптивным резонансом является то, что они сохраняют пластичность при запоминании новых образов, и, в то же время, предотвращают модификацию старой памяти. Нейросеть имеет внутренний детектор новизны - тест на сравнение пред'явленного образа с содержимым памяти. При удачном поиске в памяти пред'явленный образ классифицируется с одновременной уточняющей модификацией синаптических весов нейрона, выполнившего классификацию. О такой ситуации говорят, как о возникновении адаптивного резонанса в сети в ответ на пред'явление образа. Если резонанс не возникает в пределах некоторого заданного порогового уровня, то успешным считается тест новизны, и образ воспринимается сетью, как новый. Модификация весов нейронов, не испытавших резонанса, при этом не производится. Важным понятием в теории адаптивного резонанса является так называемый шаблон критических черт3 информации. Этот термин показывает, что не все черты (детали), представленные в некотором образе, являются существенными для системы восприятия. Результат распознавания определяется присутствием специфичных критических особенностей в образе. Рассмотрим это на примере. Рис.1. Иллюстрация к понятию критических черт образа. Обе пары картинок на Рис. 11.1 имеют общее свойство: в каждой из пар черная точка в правом нижнем углу заменена на белую, а белая точка левом нижнем углу - на черную. Такое изменение для нижней пары картинок (на рисунке - пара (b)), очевидно, является не более чем шумом, и оба образа (b) являются искаженными версиями одного и того же изображения. Тем самым, измененные точки не являются для этого образа критическими. Совершенно иная ситуация имеет место для верхней пары картинок (a). Здесь такое же изменение точек оказывается слишком существенным для образа, так что правая и левая картинки являются различными образами. Следовательно, одна и та же черта образа может быть не существенной в одном случае, и критической в другом. Задачей нейронной сети будет формирование правильной реакции в обоих случаях: "пластичное" решение о появлении нового образа для пары (a) и "стабильное" решение о совпадении картинок (b). При этом выделение критической части информации должно получаться автоматически в процессе работы и обучения сети, на основе ее индивидуального опыта. Отметим, что в общем случае одного лишь перечисления черт (даже если его предварительно выполнит человек, предполагая определенные условия дальнейшей работы сети) может оказаться недостаточно для успешного функционирования искусственной нейронной системы, критическими могут оказаться специфические связи между несколькими отдельными чертами. Вторым значительным выводом теории выступает необходимость самоадатации алгоритма поиска образов в памяти. Нейронная сеть работает в постоянно изменяющихся условиях, так что предопределенная схема поиска, отвечающая некоторой структуре информации, может в дальнейшем оказаться неэффективной при изменении этой структуры. В теории адаптивного резонанса это достигается введением специализированной ориентирующей системы, которая самосогласованно прекращает дальнейший поиск резонанса в памяти, и принимает решение о новизне информации. Ориентирующая система также обучается в процессе работы. В случае наличия резонанса теория АРТ предполагает возможность прямого доступа к образу памяти, откликнувшемуся на резонанс. В этом случает шаблон критических черт выступает ключем-прототипом для прямого доступа. Эти и другие особенности теории адаптивного резонанса нашли свое отражение в нейросетевых архитектурах, которые получили такое же название - АРТ. Нейронная сеть AРT-1. Имеется несколько разновидностей сетей АРТ. Исторически первой явилась сеть, в дальнейшем получившая название АРТ-1 (S.Grossberg, G.Carpenter, 1987). Эта сеть ориентирована на обработку образов, содержащих двоичную информацию. Дальнейший шаг - архитектура АРТ-2, опубликованная в том же 1987 году (S.Grossberg, G.Carpenter, 1987) - ориентирована на работу как с двоичными, так и с аналоговыми образами. В появившеемся относительно недавно сообщении о системе АРТ-3 (G.Carpenter, 1990) говорится о распространении адаптивной резонансной теории Гроссберга и Карпентер на многослойные нейроархитектуры. В нашей лекции мы остановимся на классической сети АРТ-1. Нейросистема АРТ-1 является классификатором входных двоичных образов по нескольким сформированным сетью категориям. Решение принимается в виде возбуждения одного из нейронов распознающего слоя, в зависимости от степени похожести образа на шаблон критических черт данной категории. Если эта степень похожести невелика, т.е. образ не соответствует ни одной из имеющихся категорий, то для него формируется новый класс, который в дальнейшем будет модифицироваться и уточняться другими образами, формируя свой шаблон критических признаков. Для описания новой категории отводится новый, ранее не задействованный нейрон в слое распознавания. Полное описание структуры сети адаптивного резонанса и теории ее работы, представленное в оригинальной публикации Гроссберга и Карпентер, является весьма громоздким, поэтому в своем изложении мы будем следовать более поздней книге Ф.Уоссермена4 , дополнив ее общим описанием особенностей АРТ-2 и новой архитектуры АРТ-3. Сеть АРТ-1 состоит из пяти функциональных модулей (Рис. 11.2): двух слоев нейронов - слоя сравнения и слоя распознавания, и трех управляющих специализированных нейронов - сброса, управления 1 и управления 2. Рис. 11.2. Общая схема нейронной сети АРТ-1. Начальное значение нейрона управления 1 полагается равным единице: G1=1. Входной двоичный вектор X поступает на слой сравнения, который первоначально пропускает его без изменения, при этом выходной вектор слоя сравнения C=X. Это достигается применением так называемого правила 2/3 для нейронов слоя сравнения. Каждый из нейронов этого слоя имеет три двоичных входа - сигнал от соответствующей компоненты вектора X, сигнал от нейрона управления 1 и сигнал обратной связи из слоя распознавания P (который в начальный момент равен нулю). Для активации нейрона в слое сравнения требуется, чтобы по крайней мере два из трех сигналов были равны единице, что и достигается в начальный момент входом от управления 1 и активными компонентами вектора X. Выработанный слоем сравнения сигнал C поступает на входы нейронов слоя распознавания. Каждый нейрон слоя распознавания имеет вектор весов bj - действительных чисел, при этом возбуждается только один нейрон этого слоя, вектор весов которого наиболее близок к C. Это может быть достигнуто, например, за счет механизма латерального торможения типа "Победитель забирает все" (Лекция 7). Выход нейрона-победителя устанавливается равным единице, остальные нейроны полностью заторможены. Сигнал обратной связи от нейрона-победителя поступает обратно в слой сравнения через синаптические веса T. Вектор T, по существу, является носителем критических черт категории, определяемой выигравшим нейроном. Выход нейрона управления 1 равен единице, только когда входной образ X имеет ненулевые компоненты, то есть этот нейрон выполняет функцию детекции факта поступления образа на вход. Однако, когда возникает ненулевой отклик нейронов слоя распознавания R, значение управления 1 зануляется G1=0. Сигнал нейрона управления 2 также устанавливается на единицу при ненулевом векторе X. Задачей этого нейрона является погашение активность на слое распознавания, если в сеть не поступило никакой информации. Итак, при генерации отклика R слоя распознавания выход G1=0, и теперь нейроны слоя сравнения активируются сигналами образа X и отклика R. Правило двух третей приводит к ативации только тех нейронов слоя сравнения, для которых и X, и R являются единичными. Таким образом, выход слоя сравнения C теперь уже не равен в точности X, а содержит лишь те компоненты X, которые соответствуют критическим чертам победившей категории. Этот механизм в теории АРТ получил название адаптивной фильтрации образа X. Теперь задачей системы является установить, достаточен ли набор этих критических черт для окончательного отнесения образа X к категории нейрона-победителя. Эту функцию осуществляет нейрон сброса, который измеряет сходство между векторами X и C. выход нейрона сброса определяется отношением числа единичных компонент в векторе C к числу единичных компонент исходного образа X. Если это отношение ниже некоторого определенного уровня сходства, нейрон выдает сигнал сброса, означающий что уровень резонанса образа X с чертами предлагаемой категории не достаточен для положительного заключения о завершении классификации. Условием возникновения сигнала сброса является соотношение , где <1 - параметр сходства. Сигнал сброса выполняет полное торможение нейрона-победителя-неудачника, который не принимает в дальнейшем участия в работе сети. Опишем последовательно события, происходящие в сети АРТ в процессе классификации. Начальное состояние сети. Нулевые значения компонент входного вектора X устанавливают сигнал нейрона управления 2 в нуль, одновременно устанавливая в нуль выходы нейронов слоя распознавания. При возникновении ненулевых значений X, оба сигнала управления (G1 и G2) устанавливаются равными единице. При этом по правилу двух третей выходы нейронов слоя сравнения C в точности равны компонентам X. Вектор C поступает на входы нейронов слоя распознавания, которые в конкурентной борьбе определяют нейрон-победитель, описывающий предполагаемый результат классификации. В итоге выходной вектор R слоя распознавания содержит ровно одну единичную компоненту, остальные значения равны нулю. Ненулевой выход нейрона-победителя устанавливает в нуль сигнал управления 1: G1=0. По обратной связи нейрон-победитель посылает сигналы в слой сравнения, и начинается фаза сравнения. Фаза сравнения. В слое сравнения веер сигналов отклика слоя распознавания сравнивается с компонентами вектора X. Выход слоя сравнения C теперь содержит единичные компоненты только в тех позициях, в которых единицы имеются и у входного вектора X и у вектора обратной связи P. Если врезультате сравнения векторов C и X не будет обнаружено значительных отличий, то нейрон сброса остается неактивным. Вектор C вновь вызовет возбуждение того-же нейрона-победителя5 в слое распознавания, что и удачно завершит процесс классификации. В противном случае будет выработан сигнал сброса, который затормозит нейрон-победитель в слое распознавания, и начнется фаза поиска. Фаза поиска. В результате действия тормозящего сигнала сброса все нейроны слоя распознавания получат нулевые выходы, и, следовательно, нейрон управления 1 примет единичное значение активности. Снова выходной сигнал слоя сравнения C установится равным в точности X, как и в начале работы сети. Однако теперь в конкурентной борьбе в слое распознавания предыдущий нейрон-победитель не участвует, и будет найдена новая категория - кандидат. После чего опять повторяется фаза сравнения. Итерационный процесс поиска завершается двумя возможными способами. 1) Найдется запомненная категория, сходство которой с входным вектором X будет достаточным для успешной классификации. После этого происходит обучающий цикл, в котором модифицируются веса bi и ti векторов B и T возбужденного нейрона, осуществившего классификацию. 2) В процессе поиска все запомненные категории окажутся проверенными, но ни одна из них не дала требуемого сходства. В этом случае входной образ X об'является новым для нейросети, и ему выделяется новый нейрон в слое распознавания. Весовые вектора этого нейрона B и T устанавливаются равными вектору X. Важно понимать, почему вообще требуется фаза поиска и окончательный результат классификации не возникает с первой попытки. Внимательный читатель вероятно уже обнаружил ответ на это вопрос. Обучение и функционирование сети АРТ происходит одновременно. Нейрон-победитель определяет в пространстве входных векторов ближайший к заданному входному образу вектор памяти, и если бы все черты исходного вектора были критическими, это и было бы верной классификацией. Однако множество критических черт стабилизируется лишь после относительно длительного обучения. На данной фазе обучения лишь некоторые компоненты входного вектора принадлежат актуальному множеству критических черт, поэтому может найтись другой нейрон-классификатор, который на множестве критических черт окажется ближе к исходному образу. Он и определяется в результате поиска. Отметим, что после относительной стабилизации процесса обучения классификация выполняется без фазы поиска. В этом случае говорят, что формируется прямой доступ к памяти. Возникновение в процессе обучения прямого доступа доказывается в теории АРТ. Обучение сети АРТ. В начале функционирования все веса B и T нейронов, а также параметр сходства получают начальные значения. Согласно теории АРТ, эти значения должны удовлетворять условию где m - число компонент входного вектора X, значение L>1 (например L=2). Такой выбор весов будет приводить к устойчивому обучению. Уровень сходства  выбирается на основе требований решаемой задачи. При высоких значениях этого параметра будет сформировано большое число категорий, к каждой из которых будут относиться только очень похожие вектора. При низком уровне  сеть сформирует небольшое число категорий с высокой степенью обобщения. Процесс обучения6 происходит без учителя, на основе самоорганизации. Обучение производится для весов нейрона-победителя в случае как успешной, так и неуспеншной классификации. При этом веса вектора B стремятся к нормализованной величине компонент вектора C: При этом роль нормализации компонент крайне важна. Вектора с большим число единиц приводят к небольшим значениям весов b, и наоборот. Таким образом, произведение оказывается масштабированным. Масштабирование приводит к тому, что возможно правильное различение векторов, даже если один является подмножеством другого. Пусть нейрон X1 соответствует образу (100000), а нейрон X2 - образу (111100). Эти образы являются, очевидно, различными. При обучении без нормализации (т.е. bi  ci ) при поступлении в сеть первого образа, он даст одинаковые скалярные произведения, равные 1, как с весами нейрона X1, так и X2. Нейрон X2, в присутствии небольших шумовых отклонений в значениях весов, может выиграть конкуренцию. При этом веса его вектора T устаноятся равными (100000), и образ (111100) будет безвозвратно "забыт" сетью. При применении нормализации исходные скалярные произведения будут равны единице для нейрона X1, и значению 2/5 для нейрона X2 (при L=2). Тем самым, нейрон X1 заслуженно и легко выиграет конкурентное соревнование. Компоненты вектора T, как уже говорилось, при обучении устанавливаются равными соответвующим значениям вектора C. Следует подчеркнуть, что это процесс необратим. Если какая-то из компонент tj оказалась равной нулю, то при дальнейшем обучении на фазах сравнения соотвествующая компонента cj никогда не получит подкрепления от tj=0 по правилу 2/3, и, следовательно, единичное значение tj не может быть восстановлено. Обучение, таким образом, сопровождается занулением все большего числа компонент вектора T, оставшиеся ненулевыми компоненты определяют множество критических черт данной категории. Эта особенность проиллюстрирована на Рис. 3. Рис. 3. Обучающие образы C и сформированный вектор критических черт T - минимальный набор общих элементов категории. Остановимся теперь кратко на основных теоремах теории АРТ, характеризующих обучение и функционирование сети. Некоторые из них нами уже упоминались в тексте. Теоремы АРТ. 1. По достижении стабильного состояния обучения пред'явление одного из обучающих векторов будет сразу приводить к правильной классификации без фазы поиска, на основе прямого доступа. 2. Процесс поиска устойчив (см. сноску на стр. 7). 3. Процесс обучения устойчив. Обучение весов нейрона-победителя не приведет в дальнейшем к переключению на другой нейрон. 4. Процесс обучения конечен. Обученное состояние для заданного набора образов будет достигнуто за конечное число итерации, при этом дальнейшее пред'явление этих образов не вызовет циклических изменений значений весов. Дальнейшее развитие АРТ: архитектуры АРТ-2 и АРТ-3. Нерешенные проблемы и недостатки АРТ-1. Нейронные сети АРТ, при всех их замечательных свойствах, имеют ряд недостатков. Одним из них является большое количество синаптических связей в сети, в расчете на единицу запоминаемой информации. При этом многие из весов этих связей (например, веткора T) оказываются после обучения нулевыми. Эту особенность следует учитывать при аппаратных реализациях. Сеть АРТ-1 приспособлена к работе только с битовыми векторами. Это неудобство преодолевается в сетях АРТ-2 и АРТ-3. Однако в этих архитектурах, равно как и в АРТ-1, сохраняется главный недостаток АРТ - локализованность памяти. Память нейросети АРТ не является распределенной, некоторой заданной категории отвечает вполне конкретный нейрон слоя распознавания. При его разрушении теряется память обо всей категории. Эта особенность, увы, не позволяет говорить о сетях адаптивной резонансной теории, как о прямых моделях биологических нейронных сетей. Память последних является распределенной. Сети АРТ-2 и АРТ-3. Основной отличительной чертой нейронной сети АРТ-2 является возможность работы с аналоговыми векторами и сигналами. По сравнению с АРТ-1 в архитектуре сети сделаны некоторые изменения, позволяющие отдельным подсистемам функционировать асинхронно, что принципиально для аппаратных реализаций. Важным отличием аналоговых сигналов от битовых является принципиальная возможность аналоговых векторов быть сколь угодно близкими друг к другу (в то время как простанство битовых векторов дискретно). Это накладывает дополнительные требования на функционирование нейронов слоя сравнения - требуется более тонкий и чувствительный механизм для выделения областей резонанса. Общим решением здесь является переход к многослойной архитектуре, с все более точной настройкой при переходе от слоя к слою, что и применено в АРТ-2. Функционирование слоя распознавания принципиально не изменяется. Сети АРТ-2 применялись для распознавания движущихся изображений. Успешные эксперименты выполнены в Массачусетском Технологическом Институте (MIT). Поскольку нейросистемы АРТ не содержат механизма инвариантного распознавания (в отличие от НЕОКОГНИТРОНА), то в сочетании с ними применяются специализированные (часто не нейросетевые) системы инвариантного представления образов, например двумерное преобразование Фурье, или более сложные алгоритмы. Более подробное рассмотрение особенностей и применений АРТ-2 требует профессионального изучения и не входит в наши цели. Следующим шагом в развитии АРТ явилась сеть АРТ-3. Особенности обучения нейронов сетей АРТ-1 и АРТ-2 не позволяют использовать эти сети, как элементы более крупных иерархических нейросистем, в частности, компоновать из них многослойные сети. Это затрудняет представление в АРТ иерархически организованной информации, что характерно для систем восприятия человека и животных. Эти проблемы решены в сети АРТ-3, которая выступает как многослойная архитектура. При переходе от слоя к слою происходит контрастирование входных образов и запоминание их в виде все более общих категорий. При этом основной задачей каждого отдельного слоя является сжатие входящей информации. Образ входит в адаптирующийся резонанс между некоторой парой слоев, в дальнейшем этот резонанс рапространяется на следующие слои иерархии. В АРТ-1 и АРТ-2 недостаточный уровень резонанса приводил к генерации сигнала сброса, что приводило к полному торможению слоя распознавания. В случае многослойной сети АРТ-3 это недопустимо, так как это разрывает поток информации. Поэтому в АРТ-3 введен специальный механизм зависимости активности синапсов обратных связей от времени, аналогичный рефрактерному торможению биологического нейрона после передачи возбуждения. Поэтому вместо полного сброса сигнала происходит торможение синаптических сигналов обратной связи, и слой сравнения получает исходное состояние возбуждения для выполнения фазы поиска нового резонанса. Интересным предложением является также использование в многослойной иерархии слоев, которые не являются слоями АРТ, а принадлежат некоторой другой архитектуре. В этом случае система получается гибридной, что может привести к возникновению новых полезных свойств. Развитие теории АРТ продолжается. По высказыванию авторов теории, АРТ представляет собой нечто существенно более конкретное, чем философское построение, но намного менее конкретное, чем законченная программа для компьютера. Однако уже в современном виде, опираясь на свою более чем 20-летнюю историю, сети АРТ демонстрируют свои успешные применения в различных областях. АРТ сделала также важный шаг в общей проблеме моделирования пластично-стабильного восприятия. ЛЕКЦИЯ 13. НЕОКОГНИТРОН Фукушимы. КОГНИТРОН и НЕОКОГНИТРОН Фукушимы. Правила обучения. Инвариантное распознавание образов НЕОКОГНИТРОНОМ. В этой лекции мы переходим к рассмотрению некоторых относительно новых современных архитектур, среди которых прежде всего следует отметить НЕОКОГНИТРОН и его модификации. В следующей лекции будут обсуждаться варианты сетей, построенных на теории адаптивного резонанса (АРТ). КОГНИТРОН: самоорганизующаяся многослойная нейросеть. Создание КОГНИТРОНА (K.Fukushima, 1975) явилось плодом синтеза усилий нейрофизиологов и психологов, а также специалистов в области нейрокибернетики, совместно занятых изучением системы восприятия человека. Данная нейронная сеть одновременно является как моделью процессов восприятия на микроуровне, так и вычислительной системой, применяющейся для технических задач распознавания образов. КОГНИТРОН состоит из иерархически связанных слоев нейронов двух типов - тормозящих и возбуждающих. Состояние возбуждения каждого нейрона определяется суммой его тормозящих и возбуждающих входов. Синаптические связи идут от нейронов одного слоя (далее слоя 1) к следующему (слою 2). Относительно данной синаптической связи соотвествующий нейрон слоя 1 является пресинаптическим, а нейрон второго слоя - постсинаптическим. Постсинаптические нейроны связаны не со всеми нейронами 1-го слоя, а лишь с теми, которые принадлежат их локальной области связей. Области связей близких друг к другу постсинаптических нейронов перекрываются, поэтому активность данного пресинаптического нейрона будет сказываться на все более расширяющейся области постсинаптических нейронов следующих слоев иерархии. Вход возбуждающего постсинаптического нейрона (на Рис. 10.1 - нейрон i) определяется суммы E его возбуждающих входов (a1, a2 и a3) к сумме I тормозящих входов (b1 и вход от нейрона X): где u - возбуждающие входы с весами a, v-тормозящие входы с весами b. Все веса имеют положительные значения. По значениям E и I вычисляется суммарное воздействие на i-й нейрон: neti =((1+E)/(1+I))-1 . Его выходная активность ui затем устанавливается равной neti, если neti>0. В противном случае выход устанавливается равным нулю. Анализ формулы для суммарного воздействия показывает, что при малом торможении I оно равно разности возбуждающего и тормозящего сигналов. В случае же когда оба эти сигнала велики, воздействие ограничивается отношением. Такие особенности реакции соответствуют реакциям биологических нейронов, способных работать в широком диапазоне воздействий. Рис. 1. Постсинаптический нейрон i слоя 2 связан с тремя нейронами в области связей (1,2 и 3) слоя 1 и двумя тормозящими нейронами (показаны темным цветом). Тормозящий нейрон X реализует латеральное торможение в области конкуренции нейрона i. Пресинаптические тормозящие нейроны имеют ту же область связей, что и рассматриваемый возбуждающий постсинаптический нейрон i. При этом веса таких тормозящих нейронов (c1, c2 и c3) являются заданными и не изменяются при обучении. Их сумма равна единице, таким образом, выход тормозного пресинаптического нейрона равен средней активности возбуждающих пресинаптических нейронов в области связей: Обучение весов возбуждающих нейронов происходит по принципу "победитель забирает все" в области конкуренции - некоторой окрестности данного возбуждающего нейрона. На данном шаге модифицируются только веса ai нейрона с максимальным возбуждением: где cj - тормозящий вес связи нейрона j в первом слое, uj - состояние его возбуждения, q - коэффициент обучения. Веса тормозящего нейрона i второго слоя модифицируются пропорционально отношению суммы возбуждающих входов к сумме тормозящих входов: В случае, когда победителя в области конкуренции (на слое 2) нет, как это имеет место, например в начале обучения, веса подстраиваются по другим формулам: Данная процедура обучения приводит к дальнейшему росту возбуждающих связей активных нейронов и торможению пассивных. При этом веса каждого из нейронов в слое 2 настраиваются на некоторый образ, часто пред'являемый при обучении. Новое пред'явление этого образа вызовет высокий уровень возбуждения соответсвующего нейрона, при появлении же других образов, его активность будет малой и будет подавлена при латеральном торможении. Веса нейрона X, осуществляющего латеральное торможение в области конкуренции, являются немодифицируемыми, их сумма равна единице. При этом во втором слое выполняются итерации, аналогичные конкурентным итерациям в сети Липпмана-Хемминга7, рассмотренной нами в 7-й лекции. Отметим, что перекрывающиеся области конкуренции близких нейронов второго слоя содержат относительно небольшое число других нейронов, поэтому конкретный нейрон-победитель не может осуществить торможение всего второго слоя. Следовательно, в конкурентной борьбе могут выиграть несколько нейронов второго слоя, обеспечивая более полную и надежную переработку информации. В целом КОГНИТРОН представляет собой иерархию слоев, последовательно связанных друг с другом, как было рассмотрено выше для пары слой 1 - слой 2. При этом нейроны слоя образуют не одномерную цепочку, как на Рис. 10.1, а покрывают плоскость, аналогично слоистому строению зрительной коры человека. Каждый слой реализует свой уровень обобщения информации. Входные слои чувствительны к отдельным элементарным структурам, например, линиям определенной ориентации или цвета. Последующие слои реагируют уже на более сложные обобщенные образы. В самом верхнем уровне иерархии активные нейроны определяют результат работы сети - узнавание определенного образа. Для каждого в значительной степени нового образа картинка активности выходного слоя будет уникальной. При этом она сохранится и при пред'явлении искаженной или зашумленной версии этого образа. Таким образом, обработка информации КОГНИТРОНОМ происходит с формированием ассоциаций и обобщений. Автором КОГНИТРОНА Фукушимой эта сеть применялась для оптического распознавания символов - арабских цифр. В экспериментах использовалась сеть с 4-мя слоями нейронов, упорядоченными в матрицы 1212 с квадратной областью связей каждого нейрона размером 55 и областью конкуренции в форме ромба с высотой и шириной 5 нейронов. Параметры обучения были равны q=16, q'=2. В результате было получено успешное обучение системы на пяти образах цифр (аналогичных картинкам с буквами, которые мы рассматривали для сети Хопфилда), при этом потребовалось около 20 циклов обучения для каждой картинки. Рис.2. Смещенные друг относительно друга "одинаковые" образы требуют для установления их "одинаковости" инвариантного относительно произвольных сдвигов характера распознавания. Несмотря на успешные применения и многочисленные достоинства, как то соответствие нейроструктуры и механизмов обучения биологическим моделям, параллельность и иерархичность обработки информации, распределенность и ассоциативность памяти и др., КОГНИТРОН имеет и свои недостатки. По-видимому, главным из них является не способность этой сети распознавать смещенные или повернутые относительно их исходного положения образы. Так например, две картинки на Рис. 10.2 с точки зрения человека несомненно являются образами одной и той же цифры 5, однако КОГНИТРОН не в состоянии уловить это сходство. О распознавании образов независимо от их положения, ориентации, а иногда и размера и других деформации, говорят как об инвариантном относительно соотвествующих преобразований распознавании. Дальнейшие исследования группы под руководством К.Фукушимы привели к развитию КОГНИТРОНА и разработке новой нейросетевой парадигмы - НЕОКОГНИТРОНА, который способен к инвариантному распознаванию. НЕОКОГНИТРОН и инвариантное распознавание образов. Новая работа Фукушимы была опубликована в 1980 г. НЕОКОГНИТРОН хотя и имеет много общих черт с его прародителем КОГНИТРОНОМ, но одновременно он претерпел значительные изменения и усложнения, в соответствии с появлением новых нейробиологических данных (Hubel D.H., Wiesel T.N., 1977, и др.). НЕОКОГНИТРОН состоит из иерархии нейронных слоев, каждый из которых состоит из массива плоскостей. Каждый элемент массива состоит из пары плоскостей нейронов. Первая плоскость состоит из так называемых простых нейроклеток, которые получают сигналы от предыдущего слоя и выделяют определенные образы. Эти образы далее обрабатываются сложными нейронами второй плоскости, задачей которых является сделать выделенные образы менее зависимыми от их положения. Нейроны каждой пары плоскостей обучаются реагировать на определенный образ, представленный в определенной ориентации. Для другого образа или для нового угла поворота образа требуется новая пара плоскостей. Таким образом, при больших об'емах информации, НЕОКОГНИТРОН представляет собой огромную структуру с большим числом плоскостей и слоев нейронов. Простые нейроны чувствительны к небольшой области входного образа, называемой рецептивной областью (или что тоже самое, областью связей). Простой нейрон приходит в возбужденное состояние, если в его рецептивной области возникает определенный образ. Рецептивные области простых клеток перекрываются и покрывают все изображение. Сложные нейроны получают сигналы от простых клеток, при этом для возбуждения сложного нейрона достаточно одного сигнала от любого простого нейрона. Тем самым, сложная клетка регистрирует определенный образ независимо от того, какой из простых нейронов выполнил детектирование, и, значит, независимо от его расположения. По мере распространения информации от слоя слою картинка нейронной активности становится все менее чувствительной к ориентации и распололожению образа, и, в определенных пределах, к его размеру. Нейроны выходного слоя выполняют окончательное инвариантное распознавание. Рис. 3. Общая схема НЕОКОГНИТРОНА. Области связей показаны большими белыми кружками, а области конкуренции - маленькими темными. Обучение НЕОКОГНИТРОНА аналогично уже рассмотренному обучению КОГНИТРОНА. При изменяются только синаптические веса простых клеток. Тормозящие нейроны вместо средней активности нейронов в области связей используют квадратный корень из взвешенной суммы квадратов входов: Такая формула для активности тормозящей клетки менее чувствительна к размеру образа. После выбора простого нейрона, веса которого будут обучаться, он рассматривается в качестве представителя слоя, и веса всех остальных нейронов будут обучаться по тем же правилам. Таким образом, все простые клетки обучаются одинаково, выдавая при распознавании одинаковую реакцию на одинаковые образы. Для уменьшения об'ема обрабатываемой информации решептивные поля нейронов при переходе со слоя на слой расширяются, а число нейронов уменьшается. В выходном слое на каждой плоскости остается только один нейрон, рецептивное поле которого покрывает все поле образа предыдущего слоя. В целом функционирование НЕОКОГНИТРОНА происходит следующим образом. Копии входного изображения поступают на все плоскости простых клеток первого слоя. Далее все плоскости функционируют параллельно, передавая информацию следующему слою. По достижении выходного слоя, в котором каждая плоскость содержит один нейрон, возникает некоторое окончательное распределение активности. На результат распознавания указывает тот нейрон, активность которого оказалась максимальной. При этом существенно разным входным изображениям будут соответствовать разные результаты распознавания. НЕОКОГНИТРОН успешно проявил себя при распознавании символов. Нужно отметить, что структура этой сети необычайно сложна, и об'ем вычислений очень велик, поэтому компьютерные модели НЕОКОГНИТРОНА будут слишком дорогими для промышленных приложений. Возможной альтернативой является, конечно, переход на аппаратные или оптические реализации, однако их рассмотрение находится за рамками этой книги. Лекция №14 СЕТИ ВСТРЕЧНОГО РАСПРОСТРАНЕНИЯ. 1.Введение 2. Звезды Гроссберга 3. Структура сети встречного распространения 4. Нормальное функционирование сети 5. Обучение слоя Кохонена 6. Обучение слоя Гроссберга 7. Выводы 1. ВВЕДЕНИЕ Возможности сети встречного распространения, превосходят возможности однослойных сетей. Время, обучения по сравнению с обратным распространением намного меньше. Встречное распространение не столь общо, как обратное распространение, но оно может давать решение в тех приложениях, где долгая обучающая процедура невозможна. Будет показано, что помимо преодоления ограничений других сетей встречное распространение обладает собственными интересными и полезными свойствами. Во встречном распространении объединены два хорошо известных алгоритма: самоорганизующаяся карта Кохонена и звезда Гроссберга. Их объединение ведет к свойствам, которых нет ни у одного из них в отдельности. Методы, которые подобно встречному распространению, объединяют различные сетевые парадигмы как строительные блоки, могут привести к сетям, более близким к мозгу по архитектуре, чем любые другие однородные структуры. Похоже, что в мозгу именно каскадные соединения модулей различной специализации позволяют выполнять требуемые вычисления. Сеть встречного распространения функционирует подобно столу справок, способному к обобщению. В процессе обучения входные векторы ассоциируются с соответствующими выходными векторами. Эти векторы могут быть двоичными, состоящими из нулей и единиц, или непрерывными. Когда сеть обучена, приложение входного вектора приводит к требуемому выходному вектору. Обобщающая способность сети позволяет получать правильный выход даже при приложении входного вектора, который является неполным или слегка неверным. Это позволяет использовать данную сеть для распознавания образов, восстановления образов и усиления сигналов. 2. Звезды Гроссберга. Много общих идей, используемых в искусственных нейронных сетях, прослеживаются в работах Гроссберга; в качестве примера можно указать конфигурации входных и выходных звезд, используемые во многих сетевых парадигмах. Входная звезда, как показано на рис. 1, состоит из нейрона, на который подается группа входов через синапсические веса. Выходная звезда, показанная на рис. 2, является нейроном, управляющим группой весов. Входные и выходные звезды могут быть взаимно соединены в сети любой сложности; Гроссберг рассматривает их как модель определенных биологических функций. Вид звезды определяет ее название, однако звезды обычно изображаются в сети иначе. Рис. 1. Нейрон «Инстар» (входная звезда) Гроссберга Рис. 2. Нейрон «Аутстар» (выходная звезда) Гроссберга Обучение входной звезды Входная звезда выполняет распознавание образов, т. е. она обучается реагировать на определенный входной вектор Х и ни на какой другой. Это обучение реализуется путем настройки весов таким образом, чтобы они соответствовали входному вектору. Выход входной звезды определяется как взвешенная сумма ее входов, как это описано в предыдущих разделах. С другой точки зрения, выход можно рассматривать как свертку входного вектора с весовым вектором, меру сходства нормализованных векторов. Следовательно, нейрон должен реагировать наиболее сильно на входной образ, которому был обучен. Процесс обучения выражается следующим образом: wi(t+1) = wi(t) + [xi – wi(t)], где wi – вес входа хi; хi – i–й вход;  – нормирующий коэффициент обучения, который имеет начальное значение 0,1 и постепенно уменьшается в процессе обучения. После завершения обучения предъявление входного вектора Х будет активизировать обученный входной нейрон. Это можно рассматривать как единый обучающий цикл, если  установлен в 1, однако в этом случае исключается способность входной звезды к обобщению. Хорошо обученная входная звезда будет реагировать не только на определенный единичный вектор, но также и на незначительные изменения этого вектора. Это достигается постепенной настройкой нейронных весов при предъявлении в процессе обучения векторов, представляющих нормальные вариации входного вектора. Веса настраиваются таким образом, чтобы усреднить величины обучающих векторов, и нейроны получают способность реагировать на любой вектор этого класса. Обучение выходной звезды В то время как входная звезда возбуждается всякий раз при появлении определенного входного вектора, выходная звезда имеет дополнительную функцию; она вырабатывает требуемый возбуждающий сигнал для других нейронов всякий раз, когда возбуждается. Для того чтобы обучить нейрон выходной звезды, его веса настраиваются в соответствии с требуемым целевым вектором. Алгоритм обучения может быть представлен символически следующим образом: wi(t+1) = wi(t) + [yi – wi(t)], где  представляет собой нормирующий коэффициент обучения, который в начале приблизительно равен единице и постепенно уменьшается до нуля в процессе обучения. Как и в случае входной звезды, веса выходной звезды, постепенно настраиваются над множеством векторов, представляющих собой обычные вариации идеального вектора. В этом случае выходной сигнал нейронов представляет собой статистическую характеристику обучающего набора и может в действительности сходиться в процессе обучения к идеальному вектору при предъявлении только искаженных версий вектора. 3. СТРУКТУРА СЕТИ ВСТРЕЧНОГО РАСПРОСТРАНЕНИЯ На рис. 3 показана упрощенная версия прямого действия сети встречного распространения. На нем иллюстрируются функциональные свойства этой парадигмы. Рис. 3. Сеть с встречным распознаванием без обратных связей Нейроны слоя 0 (показанные кружками) служат лишь точками разветвления и не выполняют вычислений. Каждый нейрон слоя 0 соединен с каждым нейроном слоя 1 (называемого слоем Кохонена) отдельным весом wmn. Эти веса в целом рассматриваются как матрица весов W. Аналогично, каждый нейрон в слое Кохонена (слое 1) соединен с каждым нейроном в слое Гроссберга (слое 2) весом vnp. Эти веса образуют матрицу весов V. Как и многие другие сети, встречное распространение функционирует в двух режимах: в нормальном режиме, при котором принимается входной вектор Х и выдается выходной вектор Y, и в режиме обучения, при котором подается входной вектор и веса корректируются, чтобы дать требуемый выходной вектор. 4 НОРМАЛЬНОЕ ФУНКЦИОНИРОВАНИЕ Слои Кохонена В своей простейшей форме слой Кохонена функционирует в духе «победитель забирает все», т. е. для данного входного вектора один и только один нейрон Кохонена выдает на выходе логическую единицу, все остальные выдают ноль. Нейроны Кохонена можно воспринимать как набор электрических лампочек, так что для любого входного вектора загорается одна из них. Ассоциированное с каждым нейроном Кохонена множество весов соединяет его с каждым входом. Например, на рис. 3 нейрон Кохонена К1 имеет веса w11, w21, …, wm1, составляющие весовой вектор W1. Они соединяются-через входной слой с входными сигналами х1, x2, …, xm, составляющими входной вектор X. Подобно нейронам большинства сетей выход NET каждого нейрона Кохонена является просто суммой взвешенных входов. Это может быть выражено следующим образом: NETj = w1jx1 + w2jx2 + … + wmjxm (1) где NETj – это выход NET нейрона Кохонена j, (2) или в векторной записи N = XW, (3) где N – вектор выходов NET слоя Кохонена. Нейрон Кохонена с максимальным значением NET является «победителем». Его выход равен единице, у остальных он равен нулю. Слой Гроссберга Слой Гроссберга функционирует в сходной манере. Его выход NET является взвешенной суммой выходов k1,k2, ..., kn слоя Кохонена, образующих вектор К. Вектор соединяющих весов, обозначенный через V, состоит из весов v11, v21, ..., vnp. Тогда выход NET каждого нейрона Гроссберга есть , (4) где NETj – выход j-го нейрона Гроссберга, или в векторной форме Y = KV, (5) где Y – выходной вектор слоя Гроссберга, К – выходной вектор слоя Кохонена, V – матрица весов слоя Гроссберга. Если слой Кохонена функционирует таким образом, что лишь у одного нейрона величина NET равна единице, а у остальных равна нулю, то лишь один элемент вектора К отличен от нуля, и вычисления очень просты. Фактически каждый нейрон слоя Гроссберга лишь выдает величину веса, который связывает этот нейрон с единственным ненулевым нейроном Кохонена. 5. ОБУЧЕНИЕ СЛОЯ КОХОНЕНА Слой Кохонена классифицирует входные векторы в группы схожих. Это достигается с помощью такой подстройки весов слоя Кохонена, что близкие входные векторы активируют один и тот же нейрон данного слоя. Затем задачей слоя Гроссберга является получение требуемых выходов. Обучение Кохонена является самообучением, протекающим без учителя. Поэтому трудно (и не нужно) предсказывать, какой именно нейрон Кохонена будет активироваться для заданного входного вектора. Необходимо лишь гарантировать, чтобы в результате обучения разделялись несхожие входные векторы. Предварительная обработка входных векторов Весьма желательно (хотя и не обязательно) нормализовать входные векторы перед тем, как предъявлять их сети. Это выполняется с помощью деления каждой компоненты входного вектора на длину вектора. Эта длина находится извлечением квадратного корня из суммы квадратов компонент вектора. В алгебраической записи (6) Это превращает входной вектор в единичный вектор с тем же самым направлением, т. е. в вектор единичной длины в n-мерном пространстве. Уравнение (6) обобщает хорошо известный случай двух измерений, когда длина вектора равна гипотенузе прямоугольного треугольника, образованного его х и у компонентами, как это следует из известной теоремы Пифагора. На рис. 4 такой двумерный вектор V представлен в координатах х-у, причем координата х равна четырем, а координата y – трем. Квадратный корень из суммы квадратов этих компонент равен пяти. Деление каждой компоненты V на пять дает вектор V с компонентами 4/5 и 3/5, где V’ указывает в том же направлении, что и V, но имеет единичную длину. На рис. 5 показано несколько единичных векторов. Они оканчиваются в точках единичной окружности (окружности единичного радиуса), что имеет место, когда у сети лишь два входа. В случае трех входов векторы представлялись бы стрелками, оканчивающимися на поверхности единичной сферы. Эти представления могут быть перенесены на сети, имеющие произвольное число входов, где каждый входной вектор является стрелкой, оканчивающейся на поверхности единичной гиперсферы (полезной абстракцией, хотя и не допускающей непосредственной визуализации). Рис. 4. Единичный входной вектор Рис. 5 Двумерные единичные векторы на единичной окружности При обучении слоя Кохонена на вход подается входной вектор и вычисляются его скалярные произведения с векторами весов, связанными со всеми нейронами Кохонена. Нейрон с максимальным значением скалярного произведения объявляется «победителем» и его веса подстраиваются. Так как скалярное произведение, используемое для вычисления величин NET, является мерой сходства между входным вектором и вектором весов, то процесс обучения состоит в выборе нейрона Кохонена с весовым вектором, наиболее близким к входному вектору, и дальнейшем приближении весового вектора к входному. Снова отметим, что процесс является самообучением, выполняемым без учителя. Сеть самоорганизуется таким образом, что данный нейрон Кохонена имеет максимальный выход для данного входного вектора. Уравнение, описывающее процесс обучения имеет следующий вид: wн = wс + (x – wс), (7) где wн – новое значение веса, соединяющего входную компоненту х с выигравшим нейроном; wс – предыдущее значение этого веса;  – коэффициент скорости обучения, который может варьироваться в процессе обучения. Каждый вес, связанный с выигравшим нейроном Кохонена, изменяется пропорционально разности между его величиной и величиной входа, к которому он присоединен. Направление изменения минимизирует разность между весом и его входом. На рис. 6 этот процесс показан геометрически в двумерном виде. Сначала находится вектор X – Wс, для этого проводится отрезок из конца W в конец X. Затем этот вектор укорачивается умножением его на скалярную величину , меньшую единицы, в результате чего получается вектор изменения δ. Окончательно новый весовой вектор Wн является отрезком, направленным из начала координат в конец вектора δ. Отсюда можно видеть, что эффект обучения состоит во вращении весового вектора в направлении входного вектора без существенного изменения его длины. Рис. 6 Вращение весового вектора в процессе обучения (Wн – вектор новых весовых коэффициентов, Wс – вектор старых весовых коэффициентов) Переменная к является коэффициентом скорости обучения, который вначале обычно равен ~ 0,7 и может постепенно уменьшаться в процессе обучения. Это позволяет делать большие начальные шаги для быстрого грубого обучения и меньшие шаги при подходе к окончательной величине. Если бы с каждым нейроном Кохонена ассоциировался один входной вектор, то слой Кохонена мог бы быть обучен с помощью одного вычисления на вес. Веса нейрона-победителя приравнивались бы к компонентам обучающего вектора ( = 1). Как правило, обучающее множество включает много сходных между собой входных векторов, и сеть должна быть обучена активировать один и тот же нейрон Кохонена для каждого из них. В этом случае веса .этого нейрона должны получаться усреднением входных векторов, которые должны его активировать. Постепенное уменьшение величины  уменьшает воздействие каждого обучающего шага, так что окончательное значение будет средней величиной от входных векторов, на которых происходит обучение. Таким образом, веса, ассоциированные с нейроном, примут значение вблизи «центра» входных векторов, для которых данный нейрон является «победителем». Выбор начальных значений весовых векторов Всем весам сети перед началом обучения следует придать начальные значения. Общепринятой практикой при работе с нейронными сетями является присваивание весам небольших случайных значений. При обучении слоя Кохонена случайно выбранные весовые векторы следует нормализовать. Окончательные значения весовых векторов после обучения совпадают с нормализованными входными векторами. Поэтому нормализация перед началом обучения приближает весовые векторы к их окончательным значениям, сокращая, таким образом, обучающий процесс. Рандомизация весов слоя Кохонена может породить серьезные проблемы при обучении, так как в результате ее весовые векторы распределяются равномерно по поверхности гиперсферы. Из-за того, что входные векторы, как правило, распределены неравномерно и имеют тенденцию группироваться на относительно малой части поверхности гиперсферы, большинство весовых векторов будут так удалены от любого входного вектора, что они никогда не будут давать наилучшего соответствия. Эти нейроны Кохонена будут всегда иметь нулевой выход и окажутся бесполезными. Более того, оставшихся весов, дающих наилучшие соответствия, может оказаться слишком мало, чтобы разделить входные векторы на классы, которые расположены близко друг к другу на поверхности гиперсферы. Допустим, что имеется несколько множеств входных векторов, все множества сходные, но должны быть разделены на различные классы. Сеть должна быть обучена активировать отдельный нейрон Кохонена для каждого класса. Если начальная плотность весовых векторов в окрестности обучающих векторов слишком мала, то может оказаться невозможным разделить сходные классы из-за того, что не будет достаточного количества весовых векторов в интересующей нас окрестности, чтобы приписать по одному из них каждому классу входных векторов. Наоборот, если несколько входных векторов получены незначительными изменениями из одного и того же образца и должны быть объединены в один класс, то они должны включать один и тот же нейрон Кохонена. Если же плотность весовых векторов очень высока вблизи группы слегка различных входных векторов, то каждый входной вектор может активировать отдельный нейрон Кохонена. Это не является катастрофой, так как слой Гроссберга может отобразить различные нейроны Кохонена в один и тот же выход, но это расточительная трата нейронов Кохонена. Наиболее желательное решение состоит в том, чтобы распределять весовые векторы в соответствии с плотностью входных векторов, которые должны быть разделены, помещая тем самым больше весовых векторов в окрестности большого числа входных векторов. На практике это невыполнимо, однако существует несколько методов приближенного достижения тех же целей. Одно из решений, известное под названием метода выпуклой комбинации (convex combination method), состоит в том, что все веса приравниваются одной и той же величине , где п – число входов и, следовательно, число компонент каждого весового вектора. Благодаря этому все весовые векторы совпадают и имеют единичную длину. Каждой же компоненте входа Х придается значение , где п – число входов. В начале  очень мало, вследствие чего все входные векторы имеют длину, близкую к , и почти совпадают с векторами весов. В процессе обучения сети  постепенно возрастает, приближаясь к единице. Это позволяет разделять входные векторы и окончательно приписывает им их истинные значения. Весовые векторы отслеживают один или небольшую группу входных векторов и в конце обучения дают требуемую картину выходов. Метод выпуклой комбинации хорошо работает, но замедляет процесс обучения, так как весовые векторы подстраиваются к изменяющейся цели. Другой подход состоит в добавлении шума к входным векторам. Тем самым они подвергаются случайным изменениям, схватывая в конце концов весовой вектор. Этот метод также работоспособен, но еще более медленен, чем метод выпуклой комбинации. Третий метод начинает со случайных весов, но на начальной стадии обучающего процесса подстраивает все веса, а не только связанные с выигравшим нейроном Кохонена. Тем самым весовые векторы перемещаются ближе к области входных векторов. В процессе обучения коррекция весов начинает производиться лишь для ближайших к победителю нейронов Кохонена. Этот радиус коррекции постепенно уменьшается, так что в конце концов корректируются только веса, связанные с выигравшим нейроном Кохонена. Еще один метод наделяет каждый нейрон Кохонена «Чувством справедливости». Если он становится победителем чаще своей законной доли времени (примерно 1/k, где k – число нейронов Кохонена), он временно увеличивает свой порог, что уменьшает его шансы на выигрыш, давая тем самым возможность обучаться и другим нейронам. Во многих приложениях точность результата существенно зависит от распределения весов. К сожалению, эффективность различных решений исчерпывающим образом не оценена и остается проблемой. Режим интерполяции До сих пор мы обсуждали алгоритм обучения, в котором для каждого входного вектора активировался лишь один нейрон Кохонена. Это называется методом аккредитации. Его точность ограничена, так как выход полностью является функцией лишь одного нейрона Кохонена. В методе интерполяции целая группа нейронов Кохонена, имеющих наибольшие выходы, может передавать свои выходные сигналы в слой Гроссберга. Число нейронов в такой группе должно выбираться в зависимости от задачи, и убедительных данных относительно оптимального размера группы не имеется. Как только группа определена, ее множество выходов NET рассматривается как вектор, длина которого нормализуется на единицу делением каждого значения NET на корень квадратный из суммы квадратов значений NET в группе. Все нейроны вне группы имеют нулевые выходы. Метод интерполяции способен устанавливать более сложные соответствия и может давать более точные результаты. По-прежнему, однако, нет убедительных данных, позволяющих сравнить режимы интерполяции и аккредитации. Статистические свойства обученной сети Метод обучения Кохонена обладает полезной и интересной способностью извлекать статистические свойства из множества входных данных. Как показано Кохоненом [8], для полностью обученной сети вероятность того, что случайно выбранный входной вектор (в соответствии с функцией плотности вероятности входного множества) будет ближайшим к любому заданному весовому вектору, равна 1/k, где k – число нейронов Кохонена. Это является оптимальным распределением весов на гиперсфере. (Предполагается, что используются все весовые векторы, что имеет место лишь в том случае, если используется один из обсуждавшихся методов распределения весов.) ОБУЧЕНИЕ СЛОЯ ГРОССБЕРГА Слой Гроссберга обучается относительно просто. Входной вектор, являющийся выходом слоя Кохонена, подается на слой нейронов Гроссберга, и выходы слоя Гроссберга вычисляются, как при нормальном функционировании. Далее, каждый вес корректируется лишь в том случае, если он соединен с нейроном Кохонена, имеющим ненулевой выход. Величина коррекции веса пропорциональна разности между весом и требуемым выходом нейрона Гроссберга, с которым он соединен. В символьной записи vijн = vijс + (yj – vijс)ki, (8) где ki – выход i-го нейрона Кохонена (только для одного нейрона Кохонена он отличен от нуля); уj – j-ая компонента вектора желаемых выходов. Первоначально  берется равным ~0,1 и затем постепенно уменьшается в процессе обучения. Отсюда видно, что веса слоя Гроссберга будут сходиться к средним величинам от желаемых выходов, тогда как веса слоя Кохонена обучаются на средних значениях входов. Обучение слоя Гроссберга – это обучение с учителем, алгоритм располагает желаемым выходом, по которому он обучается. Обучающийся без учителя, самоорганизующийся слой Кохонена дает выходы в недетерминированных позициях. Они отображаются в желаемые выходы слоем Гроссберга. СЕТЬ ВСТРЕЧНОГО РАСПРОСТРАНЕНИЯ ПОЛНОСТЬЮ На рис. 7 показана сеть встречного распространения целиком. В режиме нормального функционирования предъявляются входные векторы Х и Y, и обученная сеть дает на выходе векторы X’ и Y’, являющиеся аппроксимациями соответственно для Х и Y. Векторы Х и Y предполагаются здесь нормализованными единичными векторами, следовательно, порождаемые на выходе векторы также будут иметь тенденцию быть нормализованными. В процессе обучения векторы Х и Y подаются одновременно и как входные векторы сети, и как желаемые выходные сигналы. Вектор Х используется для обучения выходов X’, а вектор Y – для обучения выходов Y’ слоя Гроссберга. Сеть встречного распространения целиком обучается с использованием того же самого метода, который описывался для сети прямого действия. Нейроны Кохонена принимают входные сигналы как от векторов X, так и от векторов Y. Но это неотличимо от ситуации, когда имеется один большой вектор, составленный из векторов Х и Y, и не влияет на алгоритм обучения. Рис. 7. Полная сеть встречного распространения В качестве результирующего получается единичное отображение, при котором предъявление пары входных векторов порождает их копии на выходе. Это не представляется особенно интересным, если не заметить, что предъявление только вектора Х (с вектором Y, равным нулю) порождает как выходы X’, так и выходы Y’. Если F – функция, отображающая Х в Y’, то сеть аппроксимирует ее. Также, если F обратима, то предъявление только вектора Y (приравнивая Х нулю) порождает X’. Уникальная способность порождать функцию и обратную к ней делает сеть встречного распространения полезной в ряде приложений. Рис. 7 в отличие от первоначальной конфигурации не демонстрирует противоток в сети, по которому она получила свое название. Такая форма выбрана потому, что она также иллюстрирует сеть без обратных связей и позволяет обобщить понятия, развитые в предыдущих главах. ПРИЛОЖЕНИЕ: СЖАТИЕ ДАННЫХ В дополнение к обычным функциям отображения векторов встречное распространение оказывается полезным и в некоторых менее очевидных прикладных областях. Одним из наиболее интересных примеров является сжатие данных. Сеть встречного распространения может быть использована для сжатия данных перед их передачей, уменьшая тем самым число битов, которые должны быть переданы. Допустим, что требуется передать некоторое изображение. Оно может быть разбито на подизображения S, как показано на рис. 8. Каждое подизображение разбито на пиксели (мельчайшие элементы изображения). Тогда каждое подизображение является вектором, элементами которого являются пиксели, из которых состоит подизображение. Допустим для простоты, что каждый пиксель – это единица (свет) или нуль (чернота). Если в подизображении имеется п пикселей, то для его передачи потребуется п бит. Если допустимы некоторые искажения, то для передачи типичного изображения требуется существенно меньшее число битов, что позволяет передавать изображения быстрее. Это возможно из-за статистического распределения векторов подизображений. Некоторые из них встречаются часто, тогда как другие встречаются так редко, что могут быть грубо аппроксимированы. Метод, называемый векторным квантованием, находит более короткие последовательности битов, наилучшим образом представляющие эти подизображения. Рис. 8. Система сжатия изображений. Сеть встречного распространения может быть использована для выполнения векторного квантования. Множество векторов подизображений используется в качестве входа для обучения слоя Кохонена по методу аккредитации, когда лишь выход одного нейрона равен 1. Веса слоя Гроссберга обучаются выдавать бинарный код номера того нейрона Кохонена, выход которого равен 1. Например, если выходной сигнал нейрона 7 равен 1 (а все остальные равны 0), то слой Гроссберга будет обучаться выдавать 00...000111 (двоичный код числа 7). Это и будет являться более короткой битовой последовательностью передаваемых символов. На приемном конце идентичным образом обученная сеть встречного распространения принимает двоичный код и реализует обратную функцию, аппроксимирующую первоначальное подизображение. Этот метод применялся как к речи, так и к изображениям, с коэффициентом сжатия данных от 10:1 до 100:1. Качество было ' приемлемым, хотя некоторые искажения данных на приемном конце неизбежны. Выводы Роберт Хехт-Нильсон, создатель сети встречного распространения (СВР), осознавал ее ограничения: «СВР, конечно, уступает обратному распространению в большинстве приложений, связанных с сетевыми отображениями. Ее преимущества в том, что она проста и дает хорошую статистическую модель для своей среды входных векторов» ([5],с. 27). К этому можно добавить, что сеть встречного распространения быстро обучается, и при правильном использовании она может сэкономить значительное количество машинного времени. Она полезна также для быстрого моделирования систем, где большая точность обратного распространения вынуждает отдать ему предпочтение в окончательном варианте, но важна быстрая начальная аппроксимация. Возможность порождать функцию и обратную к ней также нашло применение в ряде систем. Лекция №15 Аппаратная реализация нейровычислителей Рассмотрев в предыдущих лекциях основы нейроматематики и элементную базу неровычислителей остановимся более подробнее на анализе структурно-функционального построения нейровычислительных систем. Нейрокомпьютер - это вычислительная система с MSIMD архитектурой, т.е. с параллельными потоками одинаковых команд и множественным потоком данных. На сегодня можно выделить три основных направления развития вычислительных систем с массовым параллелизмом (ВСМП): 1 ВСМП на базе каскадного соединения универсальных SISD, SIMD, MISD микропроцессоров. Элементная база - универсальные RISC или CISC процессоры: Intel, AMD, Sparc, Alpha, Power PC, MIPS и т.п. 2 На базе процессоров с распараллеливанием на аппаратном уровне. Элементная база - DSP процессоры: TMS, ADSP, Motorola, ПЛИС. 3 ВСМП на специализированной элементной базе Элементная база от специализированных однобитовых процессоров до нейрочипов. Как отмечено в первой части обзора: нейросетевые системы, реализованные на аппаратных платформах первого направления (пусть и мультипроцессорных) будем относить к нейроэмуляторам - т.е. системам реализующим типовые нейрооперации (взвешенное суммирование и нелинейное преобразование) на программном уровне. Нейросетевые системы, реализованные на аппаратных платформах второго и третьего направления в виде плат расширения стандартных вычислительных систем (1-го направления) - будем называть нейроускорителями и системы, реализованные на аппаратной платформе третьего направления в виде функционально законченных вычислительных устройств, следует относить к нейрокомпьютерам (все операции выполняются в нейросетевом логическом базисе). Нейроускорители можно разделить на два класса "виртуальные" (вставляемых в слот расширения стандартного РС) и "внешние" (соединяющиеся с управляющей Host ЭВМ по конкретному интерфейсу или шине) [2-5]. Рассотрим принципы реализации и основные структурно-функциональные особенности нейровычислителей второго и третьего типа на конкретных примерах. Нейроускорители на базе ПЛИС. Построение нейровычислителей на базе ПЛИС с одной стороны позволяет гибко реализовать различные нейросетевые парадигмы, а с другой сопряжено с большии проблемами разводки всех необходиых межсоединений. Выпускаемые в настоящее время ПЛИС имеют различные функциональные возожности (с числом вентилей от 5 до 100 тысяч). Нейровычислители на базе ПЛИС - как правило позиционируются как гибкие нейровычислительные систеы для научно-исследовательских целей и елкосерийного производства. Для построения более производительных и эффективных нейровычислителей как правило требуется применение сигнальных процессоров. Вопросам создания нейровычислителей на ПЛИС посвящено большое число работ, представленных на прошедшей выставке "Нейрокомпьютеры и их применение". Мы, в качестве примера, рассмотрим нейровычислитель созданный в НИИ Систеных исследований (РАН). Рис.1. Внешний вид ППВ. Параллельный перепрограммируемый вычислитель (ППВ) разработан в стандарте VME и реализован на базе перепрограммируемых микросхем семейства 10К фирмы Altera. Вычислитель предназначается для работы в качестве аппаратного ускорителя и является ведомым устройством на шине VME. Он должен включаться в систему как подчиненное устройство основной управляющей ЭВМ (host-машины) с универсальным процессором. Тактовая частота вычислителя 33 МГц [3]. ППВ используется для построения систем распознавания образов на основе обработки телевизионной, тепловизионной и другой информации, а также систем, основанных на реализации алгоритмов с пороговыми функциями и простейшими арифметическими операциями и позволяет добиться значительной скорости вычислений. Вычислитель состоит из следующих функциональных блоков [3]: схема управления (Сх Упр); базовые вычислительные элементы (БВЭ1-БВЭ6); контроллер внешней шины (Контроллер E-bus); контроллер системной шины (Контроллер VME); два массива статической памяти (ОЗУ0, ОЗУ1); блок высокоскоростных приемников/передатчиков. Схема управления используется для управления БВЭ и потоками данных в вычислителе и представляет собой простейший RISC процессор. Структура и набор команд процессора могут изменяться в зависимости от типа решаемой задачи. БВЭ используются для выполнения простейших арифметических операций типа суммирования, вычитания, умножения и вычисления пороговых функций. Так как БВЭ реализованы на перепрограммируемых микросхемах, их архитектура может изменяться. Архитектура БВЭ для различных алгоритмов может отличаться, но обычно легко реализуются путем комбинации библиотечных функций, компиляции их при помощи САПР (типа MaxPlus) и загрузки файла конфигурации в выбранный БВЭ. Рис.2. Структурная схема ППВ [3]. Два массива локальной статической памяти собраны из 8 микросхем статической памяти емкостью 0,5 Мбайт, имеют размер 4Мбайт и организованы как массив 512К 8-байтовых слов. Массивы памяти связаны со схемой управления отдельными адресными шинами и могут функционировать независимо друг от друга. Память предназначена для хранения общих коэффициентов, а также промежуточных результатов вычислений или окончательных результатов, подготовленных к передаче через контроллер системной шины в центральный процессор или через контроллер E-bus на линк-порты. Связь нескольких вычислителей между собой или вычислителя с устройством оцифровки изображения, при наличии у устройства оцифровки соответствующего интерфейса, осуществляется посредством последовательного канала приемников/передатчиков HOTLink фирмы CYPRESS. Управление передачей данных выполняет контроллер внешней шины, который представляет из себя набор 4-х стандартных FIFO и регистров управления и данных. Контроллер шины VME выполняет функцию интерфейса с центральным процессором и является стандартным устройством. С точки зрения программиста вычислитель можно представить как RISC-процессор (схема управления или управляющий процессор) и шесть векторных процессоров (вычислительных элементов), отрабатывающих SIMD-команды (одна команда для многих данных). Большое количество шин данных, возможность одновременной работы всех БВЭ и выполнение арифметических операций умножения и сложения за один такт позволяет эффективно распараллеливать процесс обработки информации. Особенностью схемы управления перепрограммируемого вычислителя для систем обработки информации является наличие рабочей команды, управляющей шестью базовыми вычислительными элементами. Команда позволяет одновременно, за один такт, задавать различные режимы функционирования шести базовым вычислительным элементам и инкрементировать адреса обоих массивов памяти на любое число от 0 до 255, хранимое в регистрах инкремента, причем каждому массиву соответствует свой регистр. Команда может повторяться любое количество раз в соответствии со значением, хранимым в специальном регистре. Это позволяет выполнять основную команду без потерь на организацию циклов и переходов. Рабочая команда позволяет одновременно запускать оба контроллера локальной памяти, инкрементировать адресные регистры на требуемое значение, выставлять на адресные шины адреса из соответствующих регистров адреса, выставлять на шины управления БВЭ команды из соответствующих регистров БВЭ. Кроме того, рабочая команда осуществляет организацию обмена данными между контроллером внешней шины и локальной памятью. Методика быстрого создания нейровычислителей на ПЛИС приведена в [6]. Основные тенденции в проектировании нейровычислителей на ПЛИС - это увеличение плотности копоновки нейрокристаллов за счет уменьшения площади ежсоединений и функциональных узлов цифровых нейронов. Для решения этой задачи находят приенение: применение оптических связей для передачи инфорации между нейронами. модификации программно-аппаратной реализации функциональных элементов для нейровычислений. оптимизация представления промежуточных данных в слоях нейронов - нейросети со сжатой формой внутренних данных. Нейроускорители на базе каскадного соединения сигнальных процессоров Такие нейровычислители представляют собой мультипроцессорные системы с возможностью параллельной обработки, что позволяет реализовывать на их основе нейровычислительные системы, в структуре которых можно выделить две основные части: управляющую Host-ЭВМ, реализованную на основе обычной вычислительной системы с CISC или RISC микропроцессорами; виртуальное (или внешнее) аппаратное средство, подключаемое к Host-ЭВМ посредством внутренних (внешних) системных интерфейсов, выполняющее основные вычислительные операции. Остановимся на особенностях аппаратной реализации нейровычислителя (НВ) с возможностью параллельной обработки, реализующие элементы нейросети. Рис.3. Обобщенная функциональная схема виртуального НВ. В основе построения НВ данного типа лежит использование сигнальных процессоров, объединенных между собой согласно определенной архитектуры, которая обеспечивает параллельность выполнения вычислительных операций. Как правило, такие НВ строятся на основе гибкой модульной архитектуры, которая обеспечивает простоту конфигурации системы и наращиваемость вычислительной мощности путем увеличения числа процессорных модулей или применения более производительных сигнальных процессоров (рис.3.). НВ данного типа реализуются в основном на базе несущих модулей стандартов ISA, PCI, VME. Основными их функциональными элементами являются модуль матричных сигнальных процессоров (МСП), рабочая память, память программ, модуль обеспечения ввода/вывода сигналов (включающий АЦП, ЦАП и TTL линии), а также модуль управления, который может быть реализован на основе специализированного управляющего сигнального процессора (УП), на основе ПЛИС или иметь распределенную структуру, при которой функции общего управления распределены между МСП. Для построения НВ данного типа наиболее перспективным является использование сигнальных процессоров с плавающей точкой ADSP2106x, TMS320C4x,8x, DSP96002 и др. Типовая структурная схема реализации НВ на основе сигнальных процессоров ADSP2106x приведена на рис.4. [5]. В её состав включены один управляющий сигнальный процессор для осуществления функций общего управления, и до восьми процессоров осуществляющих параллельные вычисления согласно заложенным алгоритмам (матричные сигнальные процессоры). Управляющий и матричные процессоры образуют кластер процессоров с общей шиной и ресурсами разделяемой памяти. Обмен информацией между управляющим процессором, матричными процессорами, Host-ЭВМ и внешней средой осуществляется посредством портов ввода/вывода. Для тестирования и отладки предназначен отладочный JTAG-порт. Так, в случае использования четырех МСП, обмен информацией между ними и УП осуществляется посредством четырех связанных портов ADSP2106x, по два связанных порта УП и модуля МСП выводятся на внешние разъемы для обеспечения связи с внешними устройствами. Имеется 12 внешних линков, а по 3 линка каждого из МСП предназначены для внутримодульного межпроцессорного обмена. Синхронизация работы системы может осуществляться как от внутренних кварцевых генераторов, так и от внешних генераторов. Активизация вычислений программная или внешняя. Для ввода/вывода и АЦ/ЦА преобразований сигналов предназначен специализированный модуль, который включает в себя: универсальный цифровой TTL порт, АЦП, ЦАП, узел программируемых напряжений для смещения шкал АПЦ и установки порога срабатывания стартовых компараторов, узел фильтрации выходных аналоговых сигналов, подсистему тестирования, узел синхронизации и управления, буферную память FIFO. Первоначальная загрузка осуществляется по Host-интерфейсу или по линкам. Управляющий интерфейс любого МСП позволяет управлять процессорным сбросом и прерываниями, его идентификационным номером и т.п. Рис.4. Реализация НВ на основе ADSP2106x Такая архитектура НВ обеспечивает выполнение операций ЦОС в реальном времени, ускорение векторных вычислений, возможность реализации нейросетевых алгоритмов с высоким параллелизмом выполнения векторных и матричных операций. Структурная схема НВ на основе сигнальных процессоров TMS320C4x представлена на рис.5. Несколько DSP, входящих в структуру НВ образуют распределенную вычислительную структуру из процессорных модулей, соединенных между собой высокоскоростными портами. Данный вариант реализации НВ может быть построен с использованием от двух до восьми сигнальных процессоров. рис.5. Структура НВ на основе TMS320C4x. При использовании двух параллельных 32-разрядных DSP TMS320C40 обмен информацией при реализации нейросетевых алгоритмов осуществляется с помощью шести связанных портов с пропускной способностью в 30 Мб/c и каналов DMA каждого из процессоров. Поддерживая параллельную независимую работу, подсистема DMA и процессор обеспечивают параллельный обмен информацией со скоростями до 560 Мб/c. При помощи высокоскоростных портов возможна реализация на основе данных DSP таких архитектур, как: кольца, иерархические деревья, гиперкуб и т.п. Каждая из локальных шин TMS320C40 обеспечивает обмен информации на скоростях до 120 Мбайт/с. Процессорные модули функционируют независимо и при необходимости объединяются посредством связанных портов. Функции обмена, управления процессорными модулями, прерываниями и каналами DMA реализуют ПЛИС, например фирмы Xilinx. Применение в НВ динамических реконфигурируемых структур (нейросети со структурной адаптацией) и использование последних ПЛИС семейств хС2ххх-хС4ххх (фирмы Xinlinx) или аналогичных, требует минимизации времени на реконфигурацию ПЛИС, которые чаще всего программируются в режимах Master Serial и Peripherial. Основной недостаток при использовании данных режимов перепрограммирования заключается в зависимости процесса переконфигурации ПЛИС от встроенного тактового генератора. Минимальные потери времени возможно получить при проведении переконфигурации ПЛИС в режиме Slave Serial, в котором внутренний тактовый генератор отключен, а синхронизация осуществляется посредством внешних синхросигналов. Реконфигуратор ПЛИС выполняется в виде специализированной микросхемы (например, XC2018-84pin-50MHz, XC3020-68pin-50MHz). Подсистема хранения информации включает модули локальной статической (до 256Кх32) и динамической памяти (до 8Мх32) на каждый из процессоров и глобальной статической памяти (до 256Кх32). Host-ЭВМ осуществляет обращение к глобальной статической памяти 16-битными словами в режиме строчных пересылок с авто инкрементированием адреса посредством адресного пространства портов ввода/вывода. Для разрешения возможных конфликтных ситуаций в состав НВ введены арбитры доступа. Дополнительный обмен информацией может быть осуществлен через высокоскоростной коммуникационный порт. Host-ЭВМ имеет возможность прерывать работу любого из процессорных модулей. Подсистема прерываний поддерживает обработку прерываний к любому из DSP при обмене информацией с Host-ЭВМ. Реализация НВ, блок матричных процессоров которого построен на основе четырех матричных TMS320C44 с производительностью 60 MFLOPS, представляет собой распределенную вычислительную структуру из процессорных модулей с производительностью до 960 MFLOPS, соединенных между собой высокоскоростными портами Структура НВ включает в себя УП (TMS320C44), четыре МСП (TMS320C44), статическую память (до 512Кх32), динамическую память (до 16Мх32) и интерфейсные средства для обмена с внешней средой (рис.4.). Используемый процессор имеет две независимые шины: глобальную и локальную со скоростью обмена до 240 Мбайт/c и четыре параллельных байтовых порта с пропускной способностью 30 Мбайт/с. Коммуникационные порты обеспечивают проведение межпроцессорного обмена с минимальной нагрузкой на микропроцессорное ядро, для чего используются соответствующие контроллеры DMA для каждого из портов. Каждый из портов обеспечивает передачу информации со скоростью до 20 Мбайт/c, что позволяет достигать пиковой производительности по всем портам около 120 Мбайт/с. Четыре процессорных модуля функционируют на плате независимо. Обмен информации между ними осуществляется посредством байтового порта. Коммуникационные порты и каналы DMA обеспечивают разнообразные возможности высокоскоростного обмена. Host-ЭВМ имеет возможность прерывать работу любого из процессорных модулей. Для использования специализированного многооконного отладчика задач ЦОС фирмы Texas Instruments в структуру НВ вводится JTAG интерфейс. Загрузка программ и данных, обмен данными между НВ и Host-ЭВМ осуществляется через высокоскоростной коммуникационный порт, который имеет FIFO буфера в обоих направлениях. Узлы ввода/вывода подключаются через глобальную шину с пропускной способностью до 100 Мбайт/c. Каналы связи с Host-ЭВМ полностью удовлетворяют стандарту ТIM-40, разработанного консорциумом под руководством Texas Instruments. Внутренняя структура интерфейса определяется загруженной в ПЛИС конфигурацией. Рассмотренные варианты НВ обеспечивают выполнение ЦОС и нейроалгоритмов в реальном масштабе времени, ускорение векторных и матричных вычислений, по сравнению с традиционными вычислительными средствами в несколько раз и позволяют реализовывать нейросеть с числом синапсов до нескольких миллионов. Рис.6. Структура НВ на основе TMS320C44 Еще больше повысить производительность НВ данного типа можно при использовании одного из самых мощных на сегодня сигнальных процессоров - TMS320C80, TMS320C6ххх фирмы Texas Instruments. Примером реализации нейровычислителя на DSP фирмы Моторолла является нейровычислитель NEURO TURBO фирмы Fujitsu. Он реализован на основе 4-х связанных кольцом 24-разрядных DSP с плавающей точкой МВ86220 (основные параметры: внутренняя точность 30 разрядов, машинный цикл 150 нс., память программ-25Кслов х2 (внутренняя), 64К слов х4 (внешняя), технология изготовления КМОП 1,2 мкм). Активационная функция нейронов ограничивается в диапазоне от 0 до 1, а возможные значения входов не превышают 16 разрядов, что обуславливает достаточную точность при 24-х разрядной архитектуре. Построение нейрокомпьютера на основе кольцевой структуры объединения DSP позволяет снизить аппаратные затраты на реализацию подсистемы централизованного арбитража межпроцессорного взаимодействия. Нейрокомпьютер NEURO TURBO (рис.7) состоит из четырех DSP, связанных друг с другом посредством двухпортовой памяти. Каждый из DSP может обращаться к двум модулям такой памяти (емкостью 2К слов каждая) и к рабочей памяти (РП) (емкостью 64К слов х4 Банка) в своем адресном пространстве. Вследствие того что доступ к двухпортовой памяти осуществляется случайным образом одним из соседних DSP, то передача данных между ними происходит в асинхронном режиме. Рабочая память используется для хранения весовых коэффициентов, данных и вспомогательной информации. Для успешной работы НС необходимо получение сверток во всех элементарных нейронных узлах. Кольцевая структура объединения DSP обеспечивает конвейерную архитектуру свертки, причем передача данных по конвейеру осуществляется посредством ДПП. После того как DSP загружает данные из одной ДПП, он записывает результаты своей работы в смежную ДПП, следовательно, кольцевая архитектура параллельной обработки обеспечивает высокую скорость операции с использованием относительно простых аппаратных решений. Для выполнения функций общего управления используется Host-ЭВМ на основе обычной вычислительной системы. Обмен данными между нейроплатой и Host-ЭВМ через центральный модуль ДПП. Загрузка программ в DSP осуществляется посредством памяти команд для каждого DSP. Следовательно, его архитектура полностью соответствует параллельной распределенной архитектуре типа MIMD. Пиковая производительность системы 24 MFLOPS. Рис.7. Структура нейрокомпьютера NEURO TURBO (фирмы Fujitsu) Для реализации модели НС иерархического типа фирмой Fujitsu выпущена нейроплата на основе DSP МВ86232, с собственной памятью до 4 Мб, что позволяет осуществлять моделирование НС, содержащей более 1000 нейронов. Структура НС включает в себя входной, промежуточный и выходной уровни (наибольшее число скрытых слоев - два (ограничение по памяти)). Для обучения нейрокомпьютера используются оригинальные фирменные алгоритмы: алгоритм виртуального импеданса, алгоритм скорректированного обучения и алгоритм расширенного обучения. Каждая из рассмотренных типовых структур реализации НС может быть промоделирована на основе рассмотренных выше вариантов построения мультипроцессорных НВ. Так, для НВ на основе TMS320C4x при реализации какой-либо из рассмотренных архитектур (кольцо, иерархическое дерево, гиперкуб и т.п.) достаточно только изменить назначения коммуникационных портов, что обеспечивает гибкость и масштабируемость при исследовании и разработках нейросетевых систем различной архитектуры. Лекция №15 Элементная база нейровычислителей Элементной базой нейровычислительных систем второго и третьего направлений (см. часть 1, часть 2) являются соответственно транспьютеры, цифровые сигнальные процессоры (DSP), ПЛИС и нейрочипы. Причем использование, как тех, так и других, позволяет сегодня реализовывать нейровычислители, функционирующие в реальном масштабе времени. Элементной базой перспективных нейровычислителей являются нейрочипы. Их производство ведется во многих странах мира, причем большинство из них на сегодня ориентированны на закрытое использование (т.е. создавались для конкретных специализированных управляющих систем). Основные характеристики коммерчески доступных нейрочипов приведены в таблице 1 [1-8]. Прежде чем перейти рассмотрению наиболее интересных нейрочипов остановимся на их классификации. По типу логики их можно разделить на цифровые, аналоговые и гибридные. По типу реализации нейроалгоритмов: с полностью аппаратной реализаций и с программно-аппаратной реализацией (когда нейроалгоритмы хранятся в ПЗУ). По характеру реализации нелинейных преобразований: на нейрочипы с жесткой структурой нейронов (аппаратно реализованных) и нейрочипы с настраиваемой структурой нейронов (перепрограммируемые). По возможностям построения нейросетей: нейрочипы с жесткой и переменной нейросетевой структурой (т.е. нейрочипы в которых топология нейросетей реализована жестко или гибко). Процессорные матрицы (систолические процессоры) - это чипы, обычно близкие к обычным RISC процессорам и объединяющее в своем составе некоторое число процессорных элементов, вся же остальная логика, как правило, должна быть реализована на базе периферийных схем. В отдельный класс следует выделить так называемые нейросигнальные процессоры, ядро которых представляет собой типовой сигнальный процессор, а реализованная на кристалле дополнительная логика обеспечивает выполнение нейросетевых операций (например, дополнительный векторный процессор и т.п.). Обобщенная классификация нейрочипов приведена на рис.1. Рис.1. Обобщенная классификация нейрочипов. Кроме широко спектра фирм и корпораций (таблица 1), исследования в области современных нейропроцессоров проводят многие лаборатории и университеты, среди которых можно отметить [2]: • В США: Naval Lab, MIT Lab, Пенсельванский Университет, Колумбийский Университет, Аризонский Университет, Иллинойский Университет и др. • В Европе: Берлинский Технический Университет, Технический Университет в Карлсруе и др. • В России: МФТИ, Ульяновский Государственный Технический Университет, МГТУ им.Н.Э.Баумана (более десятка лабораторий занимающихся вопросами нейровычислителей на четырех факультетах: "Информатики и систем управления", "Специального машиностроения", "Радиоэлектроники и лазерной техники", "Биомедицинских систем"), Красноярский Государственный Технический Университет, Ростовский Государственный Университет и др. Для оперативного информарования научной общественности и создании единого образовательного пространства в области нейроинформатики на кафедре "Конструирование и технология производства электронной аппаратуры" в рамках программ министерства образования России: Научно-методическая программа "Научно-методическое обеспечение дистаницонного образования" и Научно-технической программы "вычислительная техника, автоматизация, и интеграция сетей" проводятся работы по созданию интерактивной глобальной информационно-обучающей системы в области нейрокомпьютеров и нейроинформатикии (http://neurnews.iu4.bmstu.ru, http://cdl.iu4.bmstu.ru). Разработка нейрочипов ведется во многих странах мира. На сегодня [2] выделяют две базовые линии развития вычислительных систем с массовым параллелизмом (ВСМП) : ВСМП с модифицированными последовательными алгоритмами, характерными для однопроцессорных фоннеймановских алгоритмов и ВСМП на основе принципиально новых сверпараллельных нейросетевых алгоритмов решения различных задач (на базе нейроматематике). Таблица 1. Характеристики нейрочипов. Наименование Фирма изготовитель Разряд-ность, бит Максимальное количество синапсов* Максимальное число слоев** Примечание MA16 Siemens 48 (умножители и сумматоры) - - 400 ММАС. NNP (Neural Networks Processor) Accurate Automation Nx16 - - MIMD, N - число процессоров. СNAPS-1064 Adaptive Solutions 16 128 Кбайт 64   100 NAP Chip HNC 32 512 Кбайт 4 Плав. Арифм. 4 процессорных элемента Neuro Matrix NM6403, Такт. частота 50 МГц. Модуль, Россия 64 (вект. процессор), 32 RISC ядро 4096 шт. 24 Совместим с портами TMS320C4x Neuro Matrix NM6404, Такт. частота 133 МГц. Модуль, Россия 64 (вект. процессор), 32 RISC ядро 4096 шт. ~48 Совместим с портами TMS320C4x CLNN 32 CLNN 64 Bellcore 32 64 496 1024 32 нейрона 108 перекл./с 2 x 108 перекл./с NC 3001 NeuriGam 16 4096 шт. 32   ZISC 036 (Zero Instruction Set Computer) IBM 64 разр. входного вектора - 36 нейронов Частота 20МГц, Векторно-прототипный нейрочип ETANN 80170NW Intel 64 входа Два банка весов 64х80 64 нейрона в слое, 3 слоя. Аналоговая MD-1220 Micro Devices 16 64 шт. 8 8 нейронов MT 19003 - Neural Instruction Set Processor Micro Circuit Engineering (MCE) 16 разр. Умножитель 35 разр. сумматор - 1 RISC МП c 7 специальными командами NI 1000 Nestor 5-16 (одного нейрона) - 1024 прототипных 256 мерных векторов Векторно-прототипный нейрочип NLX420 (NLX 110, 230) Adaptive Logic 16 1 Мбайт 16 16 процессорных элементов OBL Chip Oxford Computer 16 16 Мбайт -   L-Neuro 1.0 L-Neuro 2.3 Philips 16 16 1536 16 нейронов 192 (12х16) 26 МГц 60 МГц RSC (Speech Recognition Chip) - 164 Sensory Circuits - - -   ORC 110xx (Object Recognizer Chip) Synaptics - - -   Pram-256 Chip UCLi Ltd. 8 (одного нейрона) - 256 нейронов 33МГц. SAND Datafactory 16 - 4 200 MCPS ACC   16 - -   Геркулес Россия 16 1 Мбайт 64   Neuro Classifier Университет Твента, DESY 70 вх. нейронов - 6 (внутр) 1 вх., 1 вых. 2 х 1010 перекл./с ANNA AT&T Число нейроннов 16-256 4096 весов - Число входов у нейрона 256-16. WSC (Wafer Scale Integration) Hitachi - 64 связи на нейрон 576 нейронов   SASLM2 Mitsubishi 2 (одного нейрона) - 4096(64x64) нейронов 50 МГц TOTEM Kent (Univer UK), di Trento (Italy) 16 (одного нейрона) - 64 нейрона 30 МГц Neuron 3120, Neurom 3150 Echelon (США) 8 бит (шина данных) - - Наличие параллельных, последовательных и коммуникацинных портов • * - максимальное число синапсов определяет размер внутрикристалльной памяти весов. • ** - максимальное число слоёв определяется числом операций умножения с накоплением, выполняемых за один такт для операндов длиной 8 бит. Для оценки производительности нейровычислителей используются следующие показатели: • CUPS (connections update per second) - число измененных значений весов в секунду (оценивает скорость обучения). • CPS (connections per second) - число соединений (умножений с накоплением) в секунду (оценивает производительность). • CPSPW = CPS/Nw, где Nw - число синапсов в нейроне. • CPPS - число соединений примитовов в секунду, CPPS=CPS*Bw*Bs, где Bw, Bs - разрядность весов и синапсов. • MMAC - миллионов умножений с накоплением в секунду. Ориентация в выполнении нейросетевых операций обуславливает с одной стороны повышение скоростей обмена между памятью и параллельными арифметическими устройствами, а с другой стороны уменьшение времени весового суммирования (умножения и накопления) за счет применения фиксированного набора команд типа регистр-регистр. Нейрочипы: анализ и сравнительные характеристики. Нейросигнальный процессор NeuroMatrix NM6403 (фирма Модуль [9], Россия). Рис.2. Стуктура NeuroMatrix NM6403. Основой NeuroMatrix NM6403 является процессорное ядро NeuroMatrixCore (NMC), которое представляет собой синтезабильную модель высокопроизводительного DSP процессора с архитектурой VLIM/SIMD (язык Verilog). Ядро состоит из двух базовых блоков: 32-битного RISC процессора и 64 битного векторного процессора, обеспечивающего выполнение векторных операций над данными переменной разрядности (патент РФ.N2131145). Имеются два идентичных программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, аппаратно совместимых с портами ЦПС TMS320C4x, для возможности построения многопроцессорных систем. Основные характеристики: • тактовая частота - 50 MГц (20нс - время выполнения любой инструкции); • технология КМОП 0.5 мкм; • корпус 256BGA; • напряжение питания от 2.7 до 3.6 В; • потребляемая мощность при 50MHz около 1.3 Вт; • условия эксплуатации: -60...+85 C. RISC-ядро • 5-ти ступенчатый 32-разрядный конвейер; • 32- и 64-разрядные команды (обычно выполняется две операции в одной команде); • два адресных генератора, адресное пространство - 16 GB; • два 64-разрядных программируемых интерфейса с SRAM/DRAM-разделяемой памятью; • формат данных - 32-разрядные целые; • регистры: ◦ 8 32-разрядных регистров общего назначения; ◦ 8 32-разрядных адресных регистров; • специальные регистры управления и состояния; • два высокоскоростных коммуникационных порта ввода/вывода, • аппаратно совместимых с портами TMS320C4x. VECTOR-сопроцессор • переменная 1-64-разрядная длина векторных операндов и результатов; • формат данных - целые числа, упакованные в 64-разрядные блоки, в форме слов переменной длины от 1 до 64 разрядов каждое; • поддержка векторно-матричных и матрично-матричных операций; • два типа функций насыщения на кристалле; • три внутренних 32x64-разрядных RAM-блока. Производительность: • скалярные операции: ◦ 50 MIPS; ◦ 200 MOPS для 32-разрядных данных; • векторные операции: от 50 до 50.000+ MMAC (миллионов умножений с накоплением в секунду); • I/O и интерфейсы с памятью: • пропускная способность двух 64-разрядных интерфейсов с памятью - до 800 Мбайт/сек; • I/O коммуникационные порты - до 20 Мбайт/сек каждый. Базовыми для нейропроцессора являются вычисления вида: Zi= f(Yi) = f (Ui+е(XjWij), (i=1, .. , M;j=, ..,N), где Zi - выходной сигнал i-ro нейрона, Xj - j-й входной сигнал слоя, Ui - смещение i-ro нейрона,Wij -весовой коэффициент j-го входа 1-го нейрона, Yi - сумма взвешенных входов i-го нейрона, f- функция активации, N - количество входных сигналов слоя, М - количество нейронов в слое; Операнды Zi, Xi, Ui и Wij представлены в дополнительном параллельном коде и могут иметь произвольную разрядность. Основными особенностями данного нейропроцессора являются: • возможность работы с входными сигналами (синапсами) и весами переменной разрядности (от 1 до 64 бит), задаваемой программно, что обеспечивает уникальную способность нейропроцессора увеличивать производительность с уменьшением разрядности операндов; • быстрая подкачка новых весов на фоне вычислений; • (24 операции умножения с накоплением за один такт при длине операндов 8 бит); • V аппаратная поддержка эмуляции нейросетей большой размерности; • реализация функции активации в виде пороговой функции или функции ограничения; • наличие двух широких шин (по 64 разряда) для работы с внешней памятью любого типа: до 4Мб SRAM и до 16 Гб DRAM; • наличие двух байтовых коммуникационных портов ввода/вывода, аппаратно совместимых с коммуникационными портами TMS320C4x для реализации параллельных распределенных вычислительных систем большой производительности. • возможность работать с данными переменной разрядности по различным алгоритмам, реализуемым с помощью хранящихся во внешнем ОЗУ программ. Рис.3. Конструктивная реализация NeuroMatrix 6403. Технические характеристики: • число вентилей на кристалле - 100.000; • размер кристалла - 10 мм * 10.5 мм при технологии 0.7 мкм; • потребляемая мощность - не более 3 Вт; • пиковая производительность для байтных операндов - 720 MCPS (миллионов соединений или умножений с накоплением в сек.) при тактовой частоте 30 Мгц; при бинарных операциях - 8640 MCPS. Нейропроцессор благодаря своей универсальности сможет применяться как базовый элемент для плат нейроускорителей PC, для создания нейрокомпьютерных параллельных вычислительных систем большой производительности, а также для аппаратной поддержки операций над матрицами большой размерности и в задачах цифровой обработки сигналов. Используется в нейроускорителях фирмы Модуль (Россия) [9]. Процессор NeuroMatrixR NM6404 Рис.4 Конструктивная реализация NeuroMatrixR NM6404 NeuroMatrixR NM6404 [9] представляет собой высокопроизводительный DSP-ориентированный RISC микропроцессор. В его состав входят два основных блока: 32-разрядное RISC-ядро и 64-разрядное VECTOR-сопроцессор для поддержки операций над векторами с элементами переменной разрядности. NM6404 по системе команд совместим с предыдущей версией NM6403. Имеются два идентичных программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, аппаратно совместимых с портами ЦПС TMS320C4x, для возможности построения многопроцессорных систем. Особенности: • тактовая частота - 133 MГц (8нс - время выполнения любой инструкции); • технология КМОП 0.25 мкм; • корпус PQFP256; • напряжение питания от 2.5 В, 3.3 В, 5 В; • потребляемая мощность - около 1.0 Вт; условия эксплуатации: -40...+80 C. RISC-ядро: • 5-ти ступенчатый 32-разрядный конвейер; • 32- и 64-бит команды (обычно выполняется две операции в одной команде); • 2 Мбит внутреннее ОЗУ; • доступ к внутренней памяти соседей; • два адресных генератора, адресное пространство - 16 GB; • два 64-разрядных программируемых интерфейса с SDRAM/SRAM/DRAM/Flash ROM разделяемой памятью; • 4 одновременных доступа к внутренней памяти; широковещательный режим доступа к внешней памяти; • 64 К Boot ROM; формат данных - 32-разрядные целые; 4 канала DMA; • два коммуникационных порта ввода/вывода, аппаратно совместимых с портами TMS320C4x; JTAG-совместимый отладочный интерфейс; система управления потребляемой мощностью. VECTOR-сопроцессор • от 1 до 64-разрядная длина векторных операндов и результатов; • формат данных - целые числа, упакованные в 64-разрядные блоки, в форме слов переменной длины от 1 до 64 разрядов каждое; • поддержка векторно-матричных и матрично-матричных операций; 16 тактов на перезагрузку матрицы коэффициентов; • свопирование рабочей и теневой матрицы; два типа функций насыщения на кристалле. Производительность: скалярные операции: • 133 MIPS; • 399 MOPS для 32-разрядных данных; векторные операции: • от 133 до 38.000+ MMAC (миллионов умножений с накоплением в секунду); • I/O и интерфейсы с памятью: • пропускная способность двух 64-разрядных интерфейсов с памятью - 2128 Мбайт/сек; • I/O коммуникационные порты - до 20 Мбайт/сек каждый. Neural Networks Processor - NNP (Accurate Automation Corp.) Процессор NNP (Neural Networks Processor) построен по MIMD архитектуре, то есть состоит из нескольких миниатюрных процессоров, работающих параллельно. Каждый из этих процессоров представляет собой быстрый 16 разрядный вычислитель с памятью для хранения синаптических весов. Процессор имеет всего 9 простых команд. Процессоры на кристалле связаны друг с другом локальной шиной. NNP создан в коммерческих целях и доступен на рынке. В комплект поставки процессора включены средства разработки программ, а так же библиотека подпрограмм с реализованными нейросетевыми алгоритмами, такими как сети Хопфилда, сети Кохенена и другими. Процессор поставляется на платах под шины ISA, VME. Производительность - 140MCPS для однопроцессорной системы, 1.4GCPS для 10-и процессорной системы. Нейропроцессор МА16 (фирма Siemens). Рис.5. Нейрочип МА16 (Siemens). МА16 изготовлен по технологии КМОП (1 мкм), состоит из 610 тыс. транзисторов и выполняет до 400 млн. операций умножения и сложения в секунду. Используется в качестве элементной базы нейрокомпьютера Synaps 1 и нейроускорителей Synaps 2 и Synaps 3 (распространяемых сегодня на рынке французской фирмой Tiga Technologies). МА16 представляет собой программируемый каскадируемый процессор для векторных и матричных операций. Он поддерживает на аппаратном уровне следующие операции: • матричное умножение; • матричное сложение/вычитание; • нормировка результата; • вычисление векторной нормы (метрики L1 и L2); • вычисление векторного расстояния (мера Манхэтэнна, геометрическое расстояние). Процессор содержит четыре идентичных процессорных элемента, работающих параллельно. Входные данные имеют точность 16 бит, тактовая частота 50 мГц. Для операций матричного умножения/сложения скорость вычислений достигает 8_108 операций/с. Программное обеспечение работает в среде UNIX/XWIND и реализовано на C++. Нейронная сеть тоже описывается на С++ или может вводится интерактивно с помощью графического интерфейса типа OSF/Motif, что позволяет визуализировать конфигурацию чипа после отображения на него структуры сети. Хорошо развиты средства тестирования и эмуляции. С 1995 года МА16 является коммерчески доступным продуктом. Рис.6. Функциональная схема МА16. MD1220 (Micro Devices) Цифровой нейрочип MD1220 фирмы Micro Devices содержит восемь неронов с 8 связями и 16 разрядные сумматоры. В внутрикристалльной памяти хранятся 16 разрядные веса. Входы имеют одноразрядные последовательные умножители с продолжительностью такта 7.2. мкс. Средняя производительность около 9 MCPS. L-Neuro Philips Нейропроцессор L-Neuro фирмы Philips один из первых нейропроцессоров. На сегодня широко известны две его модификации L-Neuro 1.0 и L-Neuro 2.3. Вторая версия имеет 12 слоев, а первая один слой из шестнадцати одноразрядных, или двух восьмиразрядных, или четырех 4-х разрядных, или двух восьмиразрядных процессорных элементов, т.е. имеет возможность работать мультиразрядном режиме. На кристалле реализован 1Кбайт памяти для хранения 1024 8 разрядных или 512 16 разрядных весов. Гибкая каскадируемая структура нейрочипа позволяет использовать его при реализации различных нейросетевых парадигм. При реализации 64 восьми разрядных процессорных элементов средняя производительность составляет 26 MCPS (32 MCUPS). NLX-420 фирмы NeuroLogix Каждый из 16 процессорных элементов нейрочипа NLX-420 фирмы NeuroLogix содержит 32 разрядный сумматор, логику параллельного выполнения 16 умножений. Средняя производительность 300 MCPS. Также имеется возможность каскадирования и мультиразрядных вычислений. СБИС ETANN 80170NX фирмы INTEL Аналоговая СБИС ETANN 80170NX фирмы INTEL содержит 64 входа, 16 внутренних уровней и 64 нейрона (пороговый усилитель с сигмоидной передаточной функцией). Каждый вход соединен с 64 синапсами. Передаточная функция нейрона в СБИС близка к сигмоиде. Усиление передаточной функции определяет чувствительность нейрона. Низкое значение усиления позволяет интерпретировать выход нейрона как аналоговый, а высокое - как цифровой. Максимальное значение выхода нейрона определяется напряжением Vrefo. Веса ограничены интервалом [-2.5, 2.5]. Скорость прохождения сигнала по одному слою зависит от усиления и примерно равна 1,5 мкс, что и определяет быстродействие. Точность выполнения операций примерно эквивалентна 6 бит, быстродействие - 1,3-109 переключений/с. Обучение выполняется методом Back Propagation с помощью Intel Neural Network Training System (INNTS). Применяемое системное окружение представляет собой специальную версию пакета DynaMind. Обучение выполняется до получения приемлемого уровня ошибки выхода сети, и после достижения удовлетворительной работы веса загружаются в СБИС. Для реальной работы такого обучения недостаточно, так как программа симуляции не может точно смоделировать аналоговую работу СБИС и, например, не отслеживает флуктуации в передаточной функции каждого нейрона. Поэтому следующий этап обучения представляет собой так называемый chip-in-loop (CIL) training, когда после каждого цикла веса записываются в СБИС, и выход сети непосредственно используется в процессе обучения. ТочностьETANN 5-6 разрядов для весов и выходов. Поскольку ETANN представляет собой аналоговую СБИС, то для ее надежной работы важны стабильные внешние условия. Специально сконструированный для этого модуль обеспечивает низкую пульсацию источника питания 5V < 5 мВ (напряжение питания 5 В) и температурную стабильность при 18°С 8Т < 1°С (потребляемая мощность ETANN 5 Вт). СБИС CLNN32/CLNN64 фирмы Bellcore Гибридный нейрочип CLNN32 состоит из 32 нейронов и 496 двунаправленных адаптивных синапсов. CLNN64 содержит только 1024 адаптивных синапсов. В наборе CLNN32/CLNN64 все нейроны взаимосвязаны, так что любая топология сети отображается подбором синапсов. Динамика сети полностью аналоговая, но значения синапсов хранятся/обновляются в цифровом виде с точностью 5 бит. На аппаратном уровне реализовано обучение сети - подбор весов происходит по алгоритму обучения машины Больцмана или Mean Field. Внутри также имеется некоррелированный генератор шума (32 канала), используемый при обучении по методу машины Больцмана. CLNN32 может быть использован независимо или совместно с CLNN64 для построения более сложной архитектуры сети. Производительность достигает 108 переключений/с (при работе с CLNN64 удваивается). Для CLNN32 это означает, что примерно 105 32-бит образцов/с или 32 аналоговых канала (с полосой пропускания 50 кГц) могут быть использованы для быстрого распознавания/обучения. Время распространения для одного слоя нейронов < 1 мкс. "Охлаждение" (по методу Больцмана) или MF обучение требует 10 -20 мкс. По сравнению с ETANN СБИС CLNN32 имеет следующие очевидные преимущества: • быстрое обучение (микросекунды по сравнению с часами при C1L процессе); • эффективный алгоритм обучения Больцмана, обеспечивающий быстрое нахождение "почти оптимального" решения; • простые и быстрые процедуры чтения/записи весов, выполняемые в цифровом виде, что значительно увеличивает скорость обмена между сетевым сервером и клиентами в сети; • легкая каскадируемостъ. СБИС ANNA Другим примером реализации гибридного нейрочипа является нейрочип ANNA фирмы AT&T. Логика нейрочипа - цифровая, хранение весов - аналоговое (на элементах динамической (конденсаторной) памяти). Чип содержит 4096 весов максимальное число нейронов 256. Точность весов 6 разрядов, для однослойной сети 64x64 производительность достигает 2.1. GCPS. СБИС NeuroClassifier Аналоговая СБИС NeuroClassifier создана в университете Твенте совместно с DESY. Ее архитектура состоит из входного слоя (70 входов, полоса пропускания до 4 Гбайт/с), шести внутренних слоев и одного выходного нейрона. Точность аналогового умножения 5 бит, время решения всего лишь 20 нс, что позволяет использовать NeuroClassifier в триггере первого уровня. Эквивалентное быстродействие примерно 2_1010 переключений/с. SAND/1 (Simple Applicable Neural Device) Компания Datafactory (бывшая INCO) выпустила на рынок SAND/1 (Simple Applicable Neural Device). SAND/1 представляет собой каскадно соединенные систолические процессоры оптимизированные для быстрого решения задач в нейросетевом базисе. Производительность одного процессора составляет 200 MCPS (миллионов связей в секунду). Процессор имеет четыре 16-и битных потока и 40 битный сумматор. SAND/1 был разработан Исследовательским центром в Карлсруе и Институтом микроэлектроники Штутгарта. Inova N64000 Этот нейрочип фирмы Inova SIMD архитектуры относится также, как и предыдущий, к классу систолических нейропроцессоров. Он содержит 80 процессорных элементов, из которых 64 образуют основную матрицу, а 16 являются резервом, 4 Кбайта памяти весов и 32 регистра общего назначения. Арифметический модуль процессора имеет девять параллельных 16 разрядных умножителя и один 32 разрядный сумматор. 100 NAP (Hecht-Nielson Computer) Другой систолический нейрочип 100 NAP фирмы Hecht-Nielson Computer содержит 4 32 разрядных процессорных элемента с плавающей точкой. Средняя производительность около 150 MFLOPS, адресуемое адресное пространство внекристалльной памяти 512 Кбайт. MT19003 (Micro Circuit Engineering) Нейрочип MT19003 фирмы Micro Circuit Engineering, также относится к классу систолических нейропроцессоров. Основой архитектуры является RISC ядро с семью специальными командами, 16 разрядный векторный умножитель и 32 разрядный сумматор, внутрикристалльная память для хранения весов отсутствует. Точность входов и весов 13 разрядов. Средняя производительность 50 MCPS. NEURON - нейропроцессор фирмы Echelon (США). Нейропроцессор NEURON ориентирован на создание кластерно-параллельных вычислительных систем. Программно-алгоритмическое обеспечение по управлению кластерной структурой реализовано внутри кристалла. Предложенная архитектура кристалла стала в настоящее время основой стандарта ANSI/EIA 709.1-1999 построения различных АСУ технологическими процессами [2]. В семействе нейрочипов NEURON выделяют: NEURON 3120 и NEURON 3150. Структурная схема NEURON 3150 приведена на рис7. Кристал содержит 2К динамической памяти для хранения весов и данных, 512 байт (EEPROM), для размещения управляющих программ. Для выполнения специализированных сетевых и управляющих операций в структуре кристалла имеется два спецвычислителя: Applications CPU, Network CPU. Так же следует отметить широкие коммуникационные возможности реализованные на кристалле. Рис.7. Структурная схема нейрочипа NEURON 3150 фирмы Echelon (США). ZISC036 - нейропроцессор фирмы IBM Нейрочип ZISC036 (Zero Instructions Set Computer) фирмы IBM относится к нейрочипам векторно-прототипной архитектуры, т.е. алгоритм обучения стоится на соотношении входного вектора и запомненными прототипными векторами весов входов нейронов. Он содержит 36 нейронов. Ориентирован на решение широкого круга задач, в том числе задач распознавания образов и классификации. Каждый нейрон представляет собой независимый процессор. ZISC способен решать и real-time задачи (рис.8). Характеристики ZISC036: • 36 нейронов • Возможность соединения нескольких процессоров (каскадирования). • От 1 до 64 компонент во входном векторе • Наряжение питания 5V • Потребляемая мощность - 1W при 16MHz • Частота - 0-20MHz • CMOS технология • Входной вектор загружается через 3.5. мкс., результат появляется через 0.5 мкс. Рис.8. Функциональная схема процессора ZISC Для увеличения производительности фирма IBM разработала ISA и PCI модули параллельно работающих ZISC процессоров. Выводы: Рассмотрев основные характеристики элементной базы нейровычислителей, от сигнальных процессоров, ПЛИС до нейрочипов в третьей части обзора мы перейдем к анализу вопросов структурно-функционального построения конкретных нейроускорителей и нейрокомпьютеров на элементной базе , рассмотренной в данном разделе. Подводя итоги приведем сводные данные по производительности некоторых, наиболее интереснных, нейропроцессоров [1,10-12]. Наименование нейрочипа конфигурация CPS CPSPW CPPS CUPS NLX420 32-16, 8 bit mode 10M 20K 640M - 100 NAP 4 chips, 2M wts, 16 bit mantissa 250M 125 256G 64M WSI (Hitachi) 576 neuron Hopfield 138M 3.7 10G - N64000 (Inova) 64-64-1, 8 bit mode 871M 128K 56G 220M MA16 1 chip, 25MHz 400M 15M 103G - ZISC036 64 8 bit element inp. Vector - - - - MT19003 4-4-1-, 32 MHz 32M 32M 6.8G - MD1220 8-8 9M 1M 142M - NI 1000 256 5 bit element inp. Vector 40 000 vec in sec. - - - L-neuro-1 1-chip, 8 bit mode 26M 26K 1.6G 32M NM6403 8 bit mode, 50MHz 1200M 150M 77G - * В таблице приведены средние округленные показатели производительности. Лекция 16 DSP и ПЛИС - как элементная база нейровычислителей Введение Элементной базой нейровычислительных систем второго и третьего направлений (см. часть 1) являются соответственно заказные кристаллы (ASIC), встраиваемые микроконтроллеры (mС), процессоры общего назначения (GPP), программируемая логика (FPGA - ПЛИС), транспьютеры, цифровые сигнальные процессоры (DSP) и нейрочипы [1]. Причем использование, как тех, так и других, позволяет сегодня реализовывать нейровычислители, функционирующие в реальном масштабе времени, однако наибольшее использование при реализации нейровычислителей нашли ПЛИС, DSP и конечно нейрочипы. Как отмечено в [2], транспьютеры (T414, T800, T9000) и в частности транспьютероподобные элементы являются важным для построения вычислительных систем с массовым параллелизмом, а их применение постепенно сдвигается в сторону коммутационных систем и сетей ЭВМ, хотя еще остаются примеры реализации на них слоев некоторых ЭВМ с массовым параллелизмом в виде решеток процессорных элементов. Подробнее о транспьютерных системах и их применении при построении вычислительных систем с массовым параллелизмом можно узнать в [3]. DSP (Digital Signal Processor-цифровой сигнальный процессор), обладая мощной вычислительной структурой, позволяют реализовать различные алгоритмы обработки информационных потоков. Сравнительно невысокая цена, а также развитые средства разработки программного обеспечения позволяют легко применять их при построении вычислительных систем с массовым параллелизмом. Стремительный переход современных систем управления на цифровые стандарты, привел к необходимости обрабатывать с высокой скоростью достаточно большие объемы информации. Сложная обработка и фильтрация сигналов, например, распаковка сжатых аудио- и видеоданных, маршрутизация информационных потоков и т.п., требует применения достаточно производительных вычислительных систем. Подобные системы могут быть реализованы на различной элементной базе, но наибольшее распространение получили устройства с применением цифровых сигнальных процессоров и ПЛИС. Программируемая логика способна работать на более высоких частотах, но поскольку управление реализовано аппаратно, то изменение алгоритмов работы требует перепрограммирования ИС. Низкая тактовая частота DSP пока ограничивает максимальную частоту обрабатываемого аналогового сигнала до уровня в 10-20 МГц, но программное управление позволяет достаточно легко изменять не только режимы обработки, но и функции, выполняемые DSP. Помимо обработки и фильтрации данных DSP могут осуществлять маршрутизацию цифровых потоков, выработку управляющих сигналов и даже формирование сигналов системных шин ISA, PCI и др. Оценивать быстродействие тех или иных устройств на основе DSP и ПЛИС принято по времени выполнения типовых операций цифровой обработки сигналов (Фильтр Собеля, БПФ, преобразование Уолша-Адамара и др.). Однако оценки производительности нейровычислителей используют другие показатели: • CUPS (connections update per second) - число измененных значений весов в секунду (оценивает скорость обучения). • CPS (connections per second) - число соединений (умножений с накоплением) в секунду (оценивает производительность). • CPSPW = CPS/Nw, где Nw - число синапсов в нейроне. • CPPS - число соединений примитовов в секунду, CPPS=CPS*Bw*Bs, где Bw, Bs - разрядность весов и синапсов. • MMAC - миллионов умножений с накоплением в секунду. Особенностью использования DSP и ПЛИС в качестве элементной базы нейровычислителей является то, что ориентация в выполнении нейросетевых операций обуславливает с одной стороны повышение скоростей обмена между памятью и параллельными арифметическими устройствами, а с другой стороны уменьшение времени весового суммирования (умножения и накопления) за счет применения фиксированного набора команд типа регистр-регистр [1-11]. DSP - как элементная база нейровычислителей. Цифровые сигнальные процессоры (DSP) вот уже на протяжении нескольких десятилетий являются элементной базой для построения как нейроускорителей, так и контура логики общесистемного управления нейрокомпьютеров. Какие же DSP могут использоваться для реализации нейроускорителей? - Да практически любые, все зависит лишь от вашей фантазии и возможностей, мы проанализируем лишь МП трех видущих производителей: Analog Devices, Motorola и Texas Instruments, с позиций построения на их основе нейровычислительных систем. Выбор того или иного процессора - многокритериальная задача, однако, следует отметить предпочтительность процессоров Analog Devices [7] для приложений, требующих выполнения больших объемов математических вычислений (таких как цифровая фильтрация сигнала, вычисление корреляционных функций и т.п.), поскольку их производительность на подобных задачах выше, чем у процессоров компаний Motorola и Texas Instruments. В то же время для задач, требующих выполнения интенсивного обмена с внешними устройствами (многопроцессорные системы, различного рода контроллеры), предпочтительнее использовать процессоры Texas Instruments [8], обладающие высокоскоростными интерфейсными подсистемами. Компания Motorola является лидером по объему производства сигнальных микропроцессоров, большую часть которых составляют дешевые и достаточно производительные 16- и 24-разрядные микропроцессоры с фиксированной точкой. Расширенные коммуникационные возможности, наличие достаточных объемов внутрикристалльной памяти для данных и программы, возможность защиты программы от несанкционированного доступа, поддержка режима энергосбережения делают эти микропроцессоры привлекательными для использования не только в качестве специализированных вычислителей, но и в качестве контроллеров, в бытовых электронных приборах, в системах адаптивной фильтрации и т.д. Большая производительность, требуемая при обработке сигналов в реальном времени, побудила Texas Instruments и Analog Devices выпустить транспьютероподобные семейства микропроцессоров TMS320C4x и ADSP2106x, ориентированные на использование в мультипроцессорных системах. На этом фоне первый российский сигнальный процессор (нейросигнальный процессор) фирмы Модуль - "Neuro Matrix" [6], выглядит весьма достойно среди DSP c фиксированной точкой. При тактовой частоте 50 Мгц "Neuro Matrix" практически не уступает по производительности изделиям мировых лидеров, а по некоторым задачам даже превосходит их (табл 1) ["Электроника: наука, технология, бизнес" №2, 1999 г.]. Табл. 1. Сравнительные тесты СISC процессоров, DSP TI и нейросигнального процессора NM6403 . Наименование теста Intel Pentium II 300 Мгц Intel PentiumMMX 200 Мгц TI TMS320C40 50 Мгц НТЦ"Модуль" NM6403 40 Мгц Фильтр Собеля (размер кадра 384X288 байт), кадров/с. - 21 6,8 68 Быстрое преобразование Фурье (256 точек, 32 разряда), мкс (тактов) 200 - 464 (11588) 102 (4070) Преобразование Уолша-Адамара (21 шаг, вх. данные 5 бит), с 2,58 2,80 - 0,45 При создании нейровычислительных систем на базе сигнальных процессоров необходимо помнить, что DSP обладают высокой степенью специализации. В них широко используются методы сокращения длительности командного цикла, характерные для универсальных RISC-процессоров, такие как конвейеризация на уровне отдельных микроинструкций и инструкций, размещение операндов большинства команд в регистрах, использование теневых регистров для сохранения состояния вычислений при переключении контекста, разделение шин команд и данных (Гарвардская архитектура). В то же время для сигнальных процессоров характерным является наличие аппаратного умножителя, позволяющего выполнять умножение как минимум двух чисел за один командный такт. Другой особенностью сигнальных процессоров является включение в систему команд таких операций, как умножение с накоплением MAC (C=AxB+C с указанным в команде числом выполнений в цикле и с правилом изменения индексов используемых элементов массивов A и B, т.е. уже реализованы прообразы базовых нейроопераций - взвешенное суммирование с накоплением), инверсия бит адреса, разнообразные битовые операции. В сигнальных процессорах реализуется аппаратная поддержка программных циклов, кольцевых буферов. Один или несколько операндов извлекаются из памяти в цикле исполнения команды. Реализация однотактного умножения и команд, использующих в качестве операндов содержимое ячеек памяти, обуславливает сравнительно низкие тактовые частоты работы сигнальных процессоров. Специализация не позволяет поднимать производительность за счет быстрого выполнения коротких команд типа R,R->R, как это делается в универсальных процессорах. Этих команд просто нет в программах цифровой обработки сигналов. Сигнальные процессоры различных компаний-производителей образуют два класса, существенно различающихся о цене: более дешевые микропроцессоры для обработки данных в формате с фиксированной точкой и более дорогие микропроцессоры, аппаратно поддерживающие операции над данными в формате с плавающей точкой. Типичные DSP операции требуют выполнения множества простых сложений и умножений. сложение и умножение требуют: • произвести выборку двух операндов • выполнить сложение или умножение (обычно и то и другое) • сохранить результат или удерживать его до повторения Для выборки двух операндов за один командный цикл необходимо осуществить два доступа к памяти одновременно. Но в действительности кроме выборки двух операндов необходимо еще сохранить результат и прочитать саму инструкцию. Поэтому число доступов в память за один командный цикл будет больше двух и следовательно DSP процессоры поддерживают множественный доступ к памяти за один и тот же командный цикл. Но невозможно осуществить доступ к двум различным адресам в памяти одновременно, используя для этого одну шину памяти. Существует два вида архитектур DSP процессоров позволяющих реализовать механизм множественного доступа к памяти: • Гарвардская архитектура • модифицированная архитектура фон Неймана Гарвардская архитектура имеет две физически разделенные шины данных. Это позволяет осуществить два доступа к памяти одновременно: Подлинная Гарвардская архитектура выделяет одну шину для выборки инструкций (шина адреса), а другую для выборки операндов (шина данных). Но для выполнения DSP операций этого недостаточно, так как в основном все они используют по два операнда. Поэтому Гарвардская архитектура применительно к цифровой обработке сигналов использует шину адреса и для доступа к данным. Важно отметить, что часто необходимо произвести выборку трех компонентов - инструкции с двумя операндами, на что собственно Гарвардская архитектура неспособна. В таком случае данная архитектура включает в себя кэш-память. Она может быть использована для хранения тех инструкций, которые будут использоваться вновь. При использовании кэш-памяти шина адреса и шина данных остаются свободными, что делает возможным выборку двух операндов. Такое расширение - Гарвардская архитектура плюс кэш - называют расширенной Гарвардской архитектурой или SHARC (Super Harvard ARChitecture). Гарвардская архитектура требует наличия двух шин памяти. Это значительно повышает стоимость производства чипа. Так, например, DSP процессор работающий с 32-битными словами и в 32-битном адресном пространстве требует наличия по крайней мере 64 выводов для каждой шины памяти, а в сумме получается 128 выводов. Это приводит к увеличению размеров чипа и к трудностям при проектировании схемы. Архитектура фон Неймана использует только одну шину памяти. Она обладает рядом положительных черт: • более дешевая; • требует меньшего количества выводов шины; • является более простой в использовании, так как программист может размещать и команды и данные в любом месте свободной памяти. С точки зрения реализации нейроускорителей мы остановимся только на некоторых наиболее ярких представителях DSP, в основном относящихся к классу транспьютероподобных DSP с плавающей арифметикой. DSP фирмы Analog Devices - как элементная база нейровычислителей Реализация нейровычислителей высокой пространственной размерности требует все более производительной элементной базы, для преодоления возникающих трудностей разработчики используют два возможных подхода: первый состоит в улучшении характеристик уже имеющихся процессоров, а второй - в увеличении производительности путем разработки новых архитектур. Первый способ ограничен увеличением производительности в 5-8 раз. Второй способ предполагает разработку архитектур, которые были бы наиболее удобны в конечном приложении и оптимизированы для конкретного языка программирования. Компания Analog Devices [7] ведет разработки в обоих направлениях. Так ядро первого 32-разрядного процессора ADSP-21020 и производительностью 30 MFLOPS было усовершенствовано, что привело к созданию нового процессора ADSP-21065L с максимальной производительностью 198 MFLOPS, что соответствует ускорению в 6.6 раз. Работая над дальнейшим увеличением производительности, оптимизируя архитектуру существующих процессоров, был разработан новый сигнальный микропроцессор ADSP-2116x с тактовой частотой 100 МГц производительностью 600 MFLOPS. Рис.1.DSP основа систем цифровой обработки сигналов. Среди основных особенностей DSP семейства ADSP-2116x можно отметить: • Быстрые и гибкие модули арифметики. Все команды выполняются за один такт. Набор команд микропроцессора наряду с традиционными арифметическими операциями включает такие, как 1/x, 1/R(x), команды сдвига, циклического сдвига, комбинации операций сложения/вычитания с умножением • Независимые потоки данных в (из) вычислительные(х) модули(ей). За один такт процессор может одновременно считать (записать) два операнда в регистровый файл, загрузить два операнда в АЛУ, принять два операнда в умножитель, АЛУ и умножитель могут вырабатывать два результата (или три, если АЛУ выполняет операцию совместно со сложением/вычитанием). 48-битовое командное слово позволяет задавать в одной инструкции параллельное выполнение арифметических операций и обмен данными • Повышенная точность и расширенный динамический диапазон выполняемых операций. Все представители микропроцессорного семейства оперируют с данными в 32-битовом формате с плавающей точкой, 32-битовыми целочисленными данными (в дополнительном коде и беззнаковыми) и 40-битовыми данными расширенной точности с плавающей точкой. Повышенная точность вычислений достигается благодаря уменьшению ошибки округления результата в вычислительных модулях. Аккумулятор для 32-разрядных данных с фиксированной точкой имеет 80 разрядов • Наличие двух генераторов адреса. Генераторы адреса обеспечивают пред- или постформирование прямого или косвенного адреса данных, выполняют над адресами модульные и бит-реверсные операции • Эффективные средства формирования последовательности команд и механизм организации программных циклов. Инициализация, возврат на начало и выход из программного цикла выполняется за один процессорный цикл для уровня вложенности до 6. Процессор аппаратно поддерживает выполнение команд перехода и перехода с задержкой Универсальное АЛУ процессора, устройство барабанного сдвига и универсальный умножитель функционируют независимо, обеспечивая высокую степень внутреннего параллелизма операций. Регистровый файл общего назначения служит для обмена данными между вычислительными модулями и внутренней шиной, а также для запоминания промежуточных результатов. Регистровый файл содержит 32 регистра (16 - первичных и 16 - вторичных), имеет 10 портов и, совместно с Гарвардской архитектурой процессора, позволяет организовывать эффективный обмен между вычислительными модулями и памятью. Расширенная Гарвардская архитектура процессора позволяет выбирать до двух операндов и команду из кэша команд за один цикл. Процессоры ADSP-210xx содержат высокопроизводительный кэш команд. Кэш работает избирательно: кэшируются только те команды, выборка которых конфликтует с выборкой данных из памяти программ (Program Memory, PM). Адресные генераторы (DAG1 и DAG2) обеспечивают аппаратную реализацию циклических(кольцевых) буферов, позволяющих эффективно выполнять фильтрацию и Фурье-преобразование, для которых требуется циклическое изменение адресов обрабатываемых данных. Физически циклический буфер может быть расположен начиная с любого адреса памяти, а для ссылки на его содержимое используются регистровые указатели. Два DAG содержат 16 первичных и 16 вторичных регистров, что позволяет работать одновременно с 32 циклическими буферами. Современные требования рынка обусловили появление новой архитектуры -TigerSHARC, которая для получения высокого уровня производительности объединяет в себе множество особенностей ранее разработанных архитектур. Новый процессор должен объединить в себе достоинства, присущие существующим DSP технологиям, такие как быстрота и определенность времени выполнения команд, распознавание быстрых прерываний и высокая скорость обмена данными с периферийными устройствами. Рис.2. Принципы построения архитектуры TigerSHARC Для достижения наивысшей производительности ядра использованы особенности RISC архитектуры, такие как структура хранения и обмена данными и командами, высоко конвейеризированный генератор адресов команд с возможностью предсказания переходов и объемным блокирующим файлом регистров. Также было решено взять в расчет особенности VLIW архитектуры для оптимизации построения команд. Полученная архитектура TigerSHARC достигает производительности 1.5 GFLOPS при 32-разрядных вычислениях с плавающей точкой и 6 GFLOPS при 16-разрядных с фиксированной точкой. Тактовая частота составляет на сегодня 250 МГц (рис.2.). Архитектура TigerSHARC По данным компании Analog Devices [7] большинство нейросетевых реализаций на базе DSP схожи в использовании команд, но различаются набором данных. Особенно в многоканальных приложениях или в тех случаях, когда данные располагаются в виде прямоугольной матрицы, производительность может быть удвоена путем добавления второго набора математических модулей. Процессоры, содержащие второй вычислительный модуль, управляются также, как и небольшие SIMD-архитектуры. TigerSHARC позволяет использовать единственную команду для обработки данных в обоих вычислительных модулях - это уже элементы нейрочипа! Более того, второй модуль может функционировать независимо от первого, для этой модели используются частично-множественные пути к данным. Для правильного выполнения команды в ней должно быть выделено дополнительное место, что приводит к очень длинным командным словам (VLIW - Very Long Instruction Word). Их использование приводит в большинстве случаев к быстрому заполнению небольшого объема внутрикристалльной памяти командами NOP (no operation), которые предназначены для тех устройств, которые не будут задействованы в текущем цикле. Для избежания размещения команды NOP в коде в существующих VLIW разработках был найден большой недостаток, который был устранен делением длинных слов на более мелкие, параллельно поступающие к каждому устройству. Обработка множества команд независимыми устройствами одновременно является главной особенностью суперскалярной процессорной архитектуры. Рис.3. Архитектура TigerSHARC Вычислительные устройства TigerSHARC Сердцем любого процессора является его вычислительная подсистема. Каждый из двух вычислительных модулей - Processing Element X (PEX) и Y (PEY) содержит 32-входовый по 32 бита в каждом входе блокировочный регистровый файл. При каждом вычислении, производимом ALU, MAC или Shifter, данные будут выбраны из этого регистрового файла, а затем в него будут помещены результаты вычислений, что является главной особенностью архитектуры считывания/записи (рис.3.). Использование большого числа регистров для хранения данных упрощает использование высокоуровневых языков программирования. Для достижения высокой внутренней пропускной способности каждый регистровый файл соединен с тремя 128-битовыми шинами посредством двух 128-битных шин. Обе шины могут использоваться одновременно для выполнения операций чтения из памяти и одна шина может быть использована для записи в память. Такая структура шин определяет типичные математические инструкции, требующие выполнения двух операций чтения данных и закачивающиеся записью результата в память. Сравнительно большой объем внутрикристалльной памяти разделен на три независимых блока одинаковой величины. Каждый блок имеет ширину 128 бит, что соответствует четырехсловной структуре по четыре адреса в каждом ряду. Память может быть сконфигурирована по желанию пользователя без специальной сегментации на память программ и память данных. Для доступа к данным процессор может адресовать одно, два или четыре слова и передавать их в/из одно или оба вычислительных устройства за один такт. Кроме внутренней памяти архитектура TigerSHARC позволяет адресовать 4 ГСлов. Одним из наиболее сложных устройств новой архитектуры является генератор адресов команд, определяющий порядок выполнения команд и отслеживающий правильность их выполнения в соответствующих модулях. Для снижения эффектов конвейеризации в нелинейном коде генератор адресов инструкций содержит буфер конечного перехода (Branch Target Buffer, BTB). Его механизм позволяет предсказывать переходы и сохранять их в буфере глубиной в 128-ячеек. С помощью предсказания переход может быть выполнен за один цикл вместо 3-6 без предсказания. Объединение данных процессоров по любой из архитектур (кольцо, гиперкуб и т.п.), позволяет создавать полнофункциональные нейроускорители. Так, нейровычислительная сеть может быть выполнена в виде двумерного массива (в общем случае 4 ряда по высоте и n колонн) процессоров, подключенных к интерфейсным платам и с помощью хост-интерфейса к процессору общего управления. Каждый процессор в сети соединен с соседними, расположенными сверху и снизу относительно него, посредством четырех из шести имеющихся SHARC линков. Остальные линки процессоров используются для обеспечения частичного приема данных, необходимых в процессе вычислений. Архитектура обеспечивает масштабируемую сетевую процессорную модель с общей средой вычислений для каждого узла сети. Эта сеть подсоединяется посредством стандартного интерфейса разделяемой памяти к хост-процессору, который выполняет роль контрольного пункта системы. DSP фирмы Texas Instruments - как элементная база нейровычислителей Сигнальные процессоры компании Texas Instruments [8] разделяются на два класса: это процессоры для обработки чисел с фиксированной точкой и процессоры для обработки чисел с плавающей точкой (рис.4.). Первый класс представлен тремя семействами процессоров, базовыми моделями которых являются соответственно TMS320C10, TMS320C20, TMS320C50. Второй класс включает процессоры TMS320C30, TMS320C40, TMS320C80, которые поддерживают операции с плавающей точкой и представляют собой мультипроцессорную систему выполненную на одном кристалле, а семейство TMS320C6x включает как процессоры с фиксированной, так и с плавающей точкой. Процессоры старших поколений одного семейства наследуют основные архитектурные особенности и совместимы "снизу вверх" по системе команд (чего нельзя сказать о процессорах, входящих в разные семейства). Процессоры компании Texas Instruments обладают высокоскоростными интерфейсными подсистемами и поэтому их предпочтительнее использовать для тех задач, в которых требуется выполнение интенсивного обмена с внешними устройствами (микропроцессорные системы, различного рода контроллеры). Рис.4. Иерархическое дерево микропроцессоров фирмы Texas Instruments [8]. Процессор TMS320C80 фирмы Texas Instruments с производительностью в 2 млрд. операций в секунду представляет собой комбинацию из пяти процессоров, реализованных по MIMD (multiple-instruction, multiple-data) архитектуре (рис.5.). На одном кристалле реализованы одновременно две технологии - DSP и RISC, расположены один управляющий RISC процессор и четыре 32-х разрядных цифровых сигнальных процессора усовершенствованной архитектуры с фиксированной точкой (ADSP0-ADSP-3), обладающие высокой степенью конвейеризации и повышенной до 64 бит длиной слова инструкций, а это в свою очередь позволяет описывать сразу несколько параллельно выполняемых команд. Каждый из процессоров работает независимо друг от друга и может программироваться отдельно друг от друга и выполнять различные или одинаковые задачи, обмениваясь данными через общую внутрикристалльную кеш-память. Рис.5. Размещение функциональных элементов TMS320C80 на кристалле. Суммарная производительность TMS320C80 на регистровых операциях составляет 2 млрд. RISС-подобных команд в секунду. Благодаря столь высокой производительности TMS320C80 может заменить при реализации приложений более 10 высокопроизводительных ЦСП или ЦП общего назначения. Пропускная способность шины TMS320C80 достигает 2.4 Гбайт/с - в потоке данных и 1.8 Гбайт/с в потоке инструкций. TMS320C80 обеспечивает высокую степень гибкости и адаптивности системы, построенной на его базе, которая достигается за счет наличия на кристалле параллельно функционирующих DSP процессоров и главного RISC-процессора. Архитектура процессора TMS320C80 относится к классу MIMD (Multiple-Instruction, Multiple-Data) - множественный поток команд, множественный поток данных. Входящие в состав TMS320C80 процессоры программируются независимо один от другого и могут выполнять как разные, так и одну общую задачу. Обмен данными между процессорами осуществляется через общую внутрикристалльную память. Доступ к разделяемой внутрикристалльной памяти обеспечивает матричный коммутатор (Crossbar), выполняющий также функции монитора при обращении к одному сегменту памяти нескольких процессоров. Основные технические характеристики процессоров семейства 'C8x': • тактовая частота 40 или 50 МГц. • производительность свыше 2 млрд. операций в секунду. • четыре 32-разрядных ADSP-процессора. • 32-разрядный главный RISC-процессор с вычислителем с плавающей точкой • 50Кбайт SRAM на кристалле (для TMS320C82 - 44Кбайт). • 64-разрядный контроллер обмена с динамическим конфигурированием шины на обмен 64-х, 32-х, 16- и 8-разрядными словами. • режим ПДП к 64-разрядному SRAM, DRAM, SDRAM, VRAM • 4 Гбайтный объем адресного пространства • видеоконтроллер • 4 внешних прерывания • встроенные средства внутрисхемной эмуляции • напряжение питания 3.3 В • около 4 000 000 транзисторов на кристалле • 0.5/0.6 КМОП-технология • 305-контактный корпус PGA Архитектура главного процессора (Master Processor, MP) Главный процессор (MP) - это вычислительное устройство с RISC-архитектурой и встроенным сопроцессором для выполнения операций с плавающей точкой. Подобно другим процессорам с RISC-архитектурой, MP использует команды загрузки/сохранения для доступа к данным в памяти, а также выполняет большинство целочисленных, битовых и логических команд над операндами в регистрах в течение одного такта. Вычислитель с плавающей точкой (Floating-Point Unit, FPU) конвейеризирован и позволяет одновременно выполнять операции над данными как с одинарной, так и с двойной точностью. Производительность устройства составляет около 100 MFLOPS при внутренней тактовой частоте 50 МГц. FPU использует тот же регистровый файл, что и устройство целочисленной и логической обработки. Специальный механизм отметок (Scoreboard) фиксирует занятость регистров и обеспечивает их бесконфликтное использование. Основными компонентами MP являются: • регистровый файл, состоящий из тридцати одного 32-разрядного регистра • барабанное устройство сдвига (Barrel Rotator) • генератор маски • таймер • целочисленное АЛУ • управляющий регистр • 4 аккумулятора с плавающей точкой двойной точности • умножитель с плавающей точкой • сумматор с плавающей точкой • контроллер кэш-памяти Архитектура ADSP-процессоров Архитектура ADSP-процессоров TMS320C80 ориентирована для применений, связанных с графикой и обработкой изображений (где использование нейропарадигм даем наибольший на сегодня эффект). Она обеспечивает эффективное выполнение операций фильтрации и частотного преобразования, типичных для данных приложений. ADSP может выполнять за один такт одновременно операцию умножения, арифметико-логическую операцию (например, сдвиг-суммирование) и два обращения к памяти. Внутренний параллелизм ADSP позволяет обеспечить быстродействие свыше 500 млн. операций в секунду на некоторых алгоритмах. ADSP манипулирует 32-разрядными словами, а разрядность команд составляет 64 бита. Процессор использует прямую, непосредственную и 12 видов косвенной адресации. Архитектура ADSP характеризуется следующими параметрами: • 3-этапный конвейер • 44 доступных пользователю регистра (10 - адресных, 6 -индекса, 8 - данных, 20 - прочих) • 32-разрядное 3-входовое АЛУ • репликатор битов • два адресных устройства • 32-разрядное устройство барабанного сдвига • генератор масок • блок условных операций для сокращения времени выполнения переходов Контроллер обмена (TC) управляет операциями обмена процессоров и памяти как внутри кристалла (через коммутатор), так и вне кристалла, с использованием входящих в его состав интерфейсных схем, поддерживающих все распространенные стандарты памяти (DRAM, VRAM, SRAM) и обеспечивающих возможность динамического изменения разрядности шины от 8 до 64. Используя приоритетную дисциплину обслуживания запросов к памяти в режиме DMA, TC позволяет выполнить обмен данными, не прерывая вычислений со скоростью до 400 Мбайт/c. Контроллер обмена поддерживает линейную и координатную адресацию памяти для эффективного выполнения обмена при работе с 2- и 3-мерными графическими изображениями. Большинство известных на сегодня нейровычислителей на базе DSP строятся на основе микропроцессоров семейства TMS320C4х. Благодаря своей уникальной структуре эти DSP получили широкое распространение в мультипроцессорных системах и практически вытеснили ранее господствующее в этой области семейство транспьютеров, производимых рядом европейских компаний. Процессоры TMS320C4x совместимы по системе команд с TMS320C3x, однако обладают большей производительностью и лучшими коммуникационными возможностями. Центральный процессор TMS320C4x имеет конвейерную регистро-ориентированную архитектуру. Компонентами ЦП являются: • умножитель данных в форматах целочисленном и с плавающей точкой • арифметико-логический модуль • 32-разрядное барабанное устройство сдвига • внутренние шины • дополнительные модули регистровой арифметики • регистровый файл CPU Умножитель выполняет операции над 32-разрядными данными в формате с фиксированной точкой и 40-разрядными данными в формате с плавающей точкой, причем умножение производится за один такт (25 нс), независимо от типа данных и параллельно с обработкой данных в других функциональных блоках микропроцессора (например, ALU). АЛУ выполняет за один такт операции над 32-разрядными целыми и логическими и 40-разрядными данными в формате с плавающей точкой, в том числе и операции преобразования форматов представления данных. Микропроцессор аппаратно поддерживает операции деления и извлечения квадратного корня. Устройство барабанного сдвига позволяет за один такт выполнить сдвиг данных влево или вправо на число позиций от 1 до 32. Два дополнительных модуля регистровой арифметики (Address Generation 0 и Address Generation 1) функционируют параллельно с умножителем и АЛУ и могут генерировать два адреса в одном такте. В процессоре поддерживается относительная базовая, базово-индексная, циклическая и бит-реверсная адресации. Первичный регистровый файл представляет собой многовходовый файл из 32 регистров. Все регистры первичного регистрового файла могут использоваться умножителем, АЛУ и в качестве регистров общего назначения. Регистры имеют некоторые специальные функции. 8 дополнительных регистров могут использоваться для некоторых косвенных способов адресации, а также как целочисленные и логические регистры общего назначения. Остальные регистры обеспечивают функции системы такие, как адресация, управление стеком, прерывания, отображение статуса процессора, блочные повторы. Регистры повышенной точности предназначены для хранения и обработки 32-разрядных целых чисел и 40-разрядных чисел с плавающей точкой. Дополнительные регистры доступны как для АЛУ, так и для двух модулей регистровой арифметики. Основная функция этих регистров - генерация 32-разрядных адресов. Они также могут использоваться как счетчик циклов или как регистры общего назначения. Адресуемое процессором пространство составляет 4Г 32-разрядных слов. На кристалле расположены два двухвходовых блока оперативной памяти RAM0 и RAM1, размером 4 Кбайт каждый, а также двухвходовой блок ROM, содержащий программу начальной загрузки. Кэш команд процессора емкостью 128 32-разрядных слов содержит наиболее часто используемые участки кода, что позволяет сократить среднее время выборки команд. Высокая производительность TMS320C40 достигается благодаря внутреннему параллелизму процессов и многошинной организации процессора. Раздельные шины позволяют одновременно выполнять выборку команды, данных и прямой доступ в память. Все больше завоевывающее популярность, в том числе и для нейро приложений, семейство процессоров TMS320C6x обладает рекордной производительностью 1600 MIPS. Благодаря этому возможен принципиально новый взгляд на существующие системы связи и телекоммуникаций. Высокая производительность микропроцессоров обеспечивается благодаря новой архитектуре VelociTIT с очень длинным командным словом (VLIW, Very Long Instruction Word). Архитектура VelociTI образована множеством параллельно работающих процессоров, которые позволяют выполнять несколько инструкций за один командный цикл. Именно такой параллелизм архитектуры процессора обеспечивает высокую производительность. Сравнительная оценка производительности наиболее используемых сегодня в нейроприложениях DSP Analog Devices и TI приведена в таблице 2. Таблица 2. Сравнительные характеристики [7]. Характеристика\процессор ADSP21061 TMS320C40/TMS320C44 Instruction Execution Time 20 ns 33 ns Peak MFLOPS 150 Peak MFLOPS 60 Peak MFLOPS   Price (10,000 pcs) $49 $176 ($99 w/C44) Price/performance 3.1 MFLOPS/$ 0.34 MFLOPS/$ (.6 w/C44)   Benchmark:   1K pt Complex FFT .37 ms .97 ms   Core Features:   Data Registers 32 12 Circular Buffers 32 1 (Fixed Length)   I/O Capabilities:   DMA Channels 6 6 Serial Ports 2 with TDM mode None Max throughput 300 Mbytes/sec 60 Mbytes/sec On-Chip Memory 32K x 32 Bit Words 2K x 32 Bit Words Total On-Chip Memory Size 1,024 Kbit (1Mbit) 64 Kbits   Multiprocessing Support 6 processors through cluster bus 6 processors through COMM ports (4 processors w/C44)   Host Interface Parallel None DSP фирмы Motorolla - как элементная база нейровычислителей Сигнальные процессоры компании Motorola на сегодня в меньшей степени, чем рассмотренные выше, используются для реализации нейропарадигм. Они подразделяются на семейства 16- и 24-разрядных микропроцессоров с фиксированной точкой - DSP560xx, DSP561xx, DSP563xx, DSP566xx, DSP568xx и микропроцессоры с плавающей точкой - DSP960xx. Линия 24-разрядных микропроцессоров компании Motorola включает два семейства: DSP560xx и DSP563xx. Основные принципы, положенные в основу архитектуры сигнальных микропроцессоров Motorola были разработаны и воплощены в семействе DSP560xx. Дальнейшие работы по совершенствованию сигнальных процессоров проводились по трем направленим: • наращивание производительности 24-разрядных процессоров за счет коевейеризации функциональных модулей и повышения тактовой частоты • создание дешевых 16-разрядных микропроцессоров с расширенными средствами взаимодействия с периферией • разработка высокопроизводительных процессоров, включающих блок вычислений с плавающей точкой Компания Motorola является лидером по объему производства сигнальных микропроцессоров, однако, большую часть которых составляют дешевые и достаточно высокопроизводительные 16- и 24-разрядные микропроцессоры с фиксированной точкой. Расширенные коммуникационные возможности, наличие достаточных объемов внутрикристалльной памяти для данных и программы, возможности защиты программы от несанкционированного доступа, поддержка режима энергосбережения делают эти микропроцессоры привлекательными для использования в основном в качестве специализированных вычислителей, контроллеров в промышленных роботах, бытовых электронных приборах, системах управления оружием, средствах беспроводной связи и др. Примеры построения нейровычислителей на их основе нам не известны. 2.2. ПЛИС - как элементная база нейровычислителей. Отдельно следует рассмотреть возможность создания параллельных вычислителей (в том числе и нейро) на базе ПЛИС (программируемых логических интегральных схем). На ПЛИС можно реализовывать системы, как второго, так и третьего типа (см. часть 1), также в последнее время широко распространены гибридные нейровычислители, когда блок обработки данных реализуется на DSP, а логика управления на ПЛИС. В настоящее время множество фирм в мире занимается разработкой и выпуском различных ПЛИС, однако, лидерство делят две фирмы Xilinx и ALTERA. Выделить продукцию какой-либо одной из этих фирм невозможно, так как по техническим характеристикам они различаются очень мало. В настоящее время фирма ALTERA выпускает семь семейств СБИС ПЛИС. Основные характеристики наиболее популярных из них приведены в таблице 3. Таблица 3. Характеристики ПЛИС фирмы ALTERA Характеристики Семейства СБИС MAX 7000E(S) MAX 9000 FLEX 8000A FLEX 10K Архитектура Матрицы И-ИЛИ матрицы И-ИЛИ Таблицы перекодировки таблицы перекодировки Логическая емкость 600-5000 6000-12000 2500-16000 10000-100000 Внутренняя память нет Нет Нет 6-24 Кбит Число пользовательских выводов 36-164 60-216 68-208 59-406 Компания Xilinx выпускает семь серий ПЛИС двух типов: 1. FPGA - Field Programmable Gate Array 2. CPLD - Complex Programmable Logic Device. Каждая серия содержит от одного до нескольких семейств, в свою очередь состоящих из ряда кристаллов различной ёмкости, быстродействия, типов корпуса. Основные особенности ПЛИС Xilinx: • значительный объём ресурсов - до 4 млн. системных вентилей на кристалл • высокая производительность с системными частотами до 300МГц • технологические нормы - до 0.18 мкм на шести слоях металла • высокая гибкость архитектуры с множеством системных особенностей: внутреннее распределённое и блочное ОЗУ, логика ускоренного переноса, внутренние буфера с третьим состоянием и т. д. • возможность инициализации и верификации через JTAG • возможность программирования непосредственно в системе • широкая номенклатура кристаллов по типу исполнения • конкурентоспособная стоимость • низкое энергопотребление • короткий цикл проектирования и быстрое время компиляции • развитые и недорогие средства проектирования • возможность перевода проектов в заказные схемы Xilinx При изготовлении ПЛИС фирмой Xilinx используются три основные технологии: • на основе SRAM (тип FPGA), при этом конфигурация ПЛИС хранится во внутреннем "теневом" ОЗУ, а инициализация осуществляется из внешнего массива памяти. По данной технологии выполнены серии: Spartan, Virtex, XC3000, XC4000, XC5200. • на основе FLASH (тип CPLD), в данном случае конфигурация сохраняется во внутренней энергонезависимой FLASH - памяти и в любой момент времени может быть перегружена непосредственно из PC. По данной технологии выполнена серия XC9500. • на основе EEPROM (тип CPLD), в данном случае конфигурация сохраняется во внутренней энергонезависимой EEPROM - памяти и в любой момент времени может быть перегружена непосредственно из ПЭВМ. По данной технологии выполнена серия CoolRunner. Реализация нейровычислителей на основе ПЛИС требует участия эксперта на топологической стадии проектирования. Это обусловлено тем, что автоматизированный режим разводки пока не позволяет достигать 60-100% использования ресурсов кристала по разводке, а это является принципиальным для сильносвязанных схем, к которым относятся и нейросетевые вычислители. Характеристики ПЛИС с точки зрения реализации нейросетевых парадигм представлены в таблице 4 [10]: Таблица 4. Особенности реализации нейровычислителей на ПЛИС. № Тип ПЛИС Производитель Сложность кристалла, макроячеек (CLB) Максимальное число нейронов 1 XC4005E/XL XILINX 196 (14x14) 6 2 XC4013XLA XILINX 576 (24x24) 18 3 XC4020XLA XILINX 784 (28x28) 24 4 XC4044XLA XILINX 1600 (40x40) 50 5 XC4062XLA XILINX 2304 (42x42) 72 6 XC4085XL XILINX 3136 (56x56) 97 7 XC40250XV XILINX 8000 200 8 EPF10K2 0ALTERA 144 4 9 EPF10K50E ALTERA 360 11 10 EPF10K100E ALTERA 624 19 11 EPF10K250E ALTERA 1520 50 12 M4LV-96/48 AMD 966 3 13 M4LV-192/96 AMD 192 6 14 M5LV-256 AMD 256 8 15 M5LV-512 AMD 512 16 Построение нейровычислителей на их основе хотя и дает высокую гибкость создаваемых структур, но пока еще проигрывает по производительности, по сравнению с другими решениями. Выводы Реализация нейровычислительных систем и специализированных вычислителей с массовым параллелизмом на базе DSP и ПЛИС является эффективным при решении задач цифровой обработки сигналов, обработки видео- и аудиоданных и построения технических систем управления. Сравнительные данные по выполнению БПФ для DSP, RISC и CISC процессоров приведены в таблице 5 [9]. Таблица.5. Время выполнения преобразования Фурье. При реализации нейровычислителей сегодня, как правило приоритетно используется гибридная схема, когда блок матричных вычислений реализуется на базе кластерного соединения DSP процессоров, а логика управления на основе ПЛИС. В качестве элементной базы матричного кластера используются ADSP21060 и TMS320C44, в ближайшее время им на смену придут ADSP2106х и TMS320C67хх. В дальнейшем матричное ядро будет реализовываться на базе нейрочипов (обзору которых будет посвящена третья часть работы), а сигнальные процессоры и ПЛИС останутся основой для построения логики управления, что уже явно прослеживается на известных сегодня нейровычислителях, например Synaps 3, обзору которых будет посвящена четвертая часть статьи. 1 Основная литература 1. Комарцова Л.Г., Максимов А.В. Нейрокомпьютеры: Учеб. пособие для вузов. –М.: МГТУ им. Н.Э. Баумана, 2002.-320с. 2. Заенцев И.В. Нейронные сети основные модели: Учеб. пособие ВГУ, 1999.-74с. 3. Миркес Е.М. Нейроинформатика: Учеб. пособие для студентов / Красноярск: ИПЦ КГТУ, 2002.-347 с. 4. Ключко В.И., Ермоленко В.В. Нейрокомпьютерные системы. Базы знаний. Учеб. пособие Изд-во КубГТУ,1999.-100с. 2 Дополнительная литература 1. Суровцев И.С., Клюкин В.И., Пивоварова Р.П. Нейронные сети. — Воронеж: ВГУ, 1994. — 224с. 2. Уоссермен Ф. Нейрокомпьютерная техника: теория и практика. — М.: Мир, 1992. 3. Горбань А.Н. и др. Нейроинформатика. — Электронная публикация. 4. Мкртчян С.О. Нейроны и нейронные сети. (Введение в теорию формальных нейронов) — М.: Энергия, 1971. — 232 с.. 5. Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. * М.: Мир, 1985. * 509 c.
«Нейрокомпьютерные экономические системы» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot