- •Нейрокомпьютерная техника: Теория и практика
- •Предисловие
- •Благодарности
- •Введение
- •Почему именно искусственные нейронные сети?
- •Свойства искусственных нейронных сетей
- •Обучение
- •Обобщение
- •Абстрагирование
- •Применимость
- •Исторический аспект
- •Искусственные нейронные сети сегодня
- •Перспективы на будущее
- •Искусственные нейронные сети и экспертные системы
- •Соображения надежности
- •Литература
- •Глава 1. Основы искусственных нейронных сетей
- •Биологический прототип
- •Искусственный нейрон
- •Активационные функции
- •Однослойные искусственные нейронные сети
- •Многослойные искусственные нейронные сети
- •Нелинейная активационная функция
- •Сети с обратными связями
- •Терминология, обозначения и схематическое изображение искусственных нейронных сетей
- •Терминология
- •Дифференциальные уравнения или разностные уравнения
- •Графическое представление
- •Обучение искусственных нейронных сетей
- •Цель обучения
- •Обучение с учителем
- •Обучение без учителя
- •Алгоритмы обучения
- •Литература
- •Глава 2. Персептроны персептроны и зарождение искусственных нейронных сетей
- •Персептронная представляемость
- •Проблема функции исключающее или
- •Линейная разделимость
- •Преодоление ограничения линейной разделимости
- •Эффективность запоминания
- •Обучение персептрона
- •Алгоритм обучения персептрона
- •Дельта-правило
- •Трудности с алгоритмом обучения персептрона
- •Литература
- •Глава 3. Процедура обратного распространения
- •Введение в процедуру обратного распространения
- •Обучающий алгоритм обратного распространения
- •Сетевые конфигурации
- •Многослойная сеть.
- •Обзор обучения
- •Дальнейшие алгоритмические разработки
- •Применения
- •Предостережение
- •Паралич сети
- •Локальные минимумы
- •Размер шага
- •Временная неустойчивость
- •Литература
- •Глава 4. Сети встречного распространения
- •Введение в сети встречного распространения
- •Структура сети
- •Нормальное функционирование
- •Слои Кохоненна
- •Слой Гроссберга
- •Обучение слоя кохонена
- •Предварительная обработка входных векторов
- •Выбор начальных значений весовых векторов
- •Режим интерполяции
- •Статистические свойства обученной сети
- •Обучение слоя гроссберга
- •Сеть встречного распространения полностью
- •Приложение: сжатие данных
- •Обсуждение
- •Литература
- •Глава 5. Стохастические методы
- •Использование обучения
- •Больцмановское обучение
- •Обучение Коши
- •Метод искусственной теплоемкости
- •Приложения к общим нелинейным задачам оптимизации
- •Обратное распространение и обучение коши
- •Трудности, связанные с обратным распространением
- •Трудности с алгоритмом обучения Коши
- •Комбинирование обратного распространения с обучением Коши
- •Обсуждение
- •Литература
- •Глава 6. Сети Хопфилда
- •Конфигурации сетей с обратными связями
- •Бинарные системы
- •Устойчивость
- •Ассоциативная память
- •Непрерывные системы
- •Сети Хопфилда и машина Больцмана
- •Термодинамические системы
- •Статистичекие сети Хопфилда
- •Обобщенные сети
- •Приложения
- •Аналого-цифровой преобразователь
- •Задача коммивояжера
- •Обсуждение
- •Локальные минимумы
- •Скорость
- •Функция энергии
- •Емкость сети
- •Литература
- •Глава 7. Двунаправленная ассоциативная память
- •Структура дап
- •Восстановление запомненных ассоциаций
- •Кодирование ассоциаций
- •Емкость памяти
- •Непрерывная дап
- •Адаптивная дап
- •Конкурирующая дап
- •Заключение
- •Литература
- •Глава 8. Адаптивная резонансная теория
- •Архитектура apt
- •Описание apt
- •Упрощенная архитектура apt
- •Функционирование сети apTв процессе классификации
- •Реализация apt
- •Функционирование сетей apt
- •Пример обучения сети apt
- •Характеристики apt
- •Инициализация весовых векторов т
- •Настройка весовых векторов Вj
- •Инициализация весов bij
- •Теоремы apt
- •Заключение
- •Литература
- •Глава 9. Оптические нейронные сети
- •Векторно-матричные умножители
- •Электронно-оптические матричные умножители
- •Сети Хопфилда на базе электронно-оптических матричных умножителей
- •Голографические корреляторы
- •Объемные голограммы
- •Оптическая сеть Хопфилда, использующая объемные голограммы
- •Заключение
- •Литература
- •Глава 10. Когнитрон и неокогнитрон
- •Когнитрон
- •Структура
- •Обучение
- •Неокогнитрон
- •Структура
- •Обобщение
- •Вычисления
- •Обучение
- •Заключение
- •Литература
- •Приложение а. Биологические нейронные сети
- •Человеческий мозг: биологическая модель для искусственных нейронных сетей
- •Организация человеческого мозга
- •Мембрана клетки
- •Компьютеры и человеческий мозг
- •Приложение б. Алгоритмы обучения
- •Обучение с учителем и без учителя
- •Метод обучения хэбба
- •Алгоритм обучения Хэбба
- •Метод сигнального обучения Хэбба
- •Метод дифференциального обучения Хэбба
- •Входные и выходные звезды
- •Обучение входной звезды
- •Обучение выходной звезды
- •Обучение персептрона
- •Метод обучения уидроу-хоффа
- •Методы статистического обучения
- •Самоорганизация
- •Литература
Реализация apt
Обзор
APT,как это можно увидеть из литературы, представляет собой нечто большее, чем философию, но намного менее конкретное, чем программа для компьютера. Это привело к наличию широкого круга реализации, сохраняющих идеи APT,но сильно отличающихся в деталях. Рассматриваемая далее реализация основана на работе [5] с определенными изменениями для обеспечения совместимости с работой [2] и моделями, рассмотренными в данной работе. Эта реализация может рассматриваться в качестве типовой, но необходимо иметь в виду, что другие успешные реализации имеют большие отличия от нее.
Функционирование сетей apt
Рассмотрим более детально пять фаз процесса функционирования APT:инициализацию, распознавание, сравнение, поиск и обучение.
Инициализация. Перед началом процесса обучения сети все весовые векторыBjиTj, а также параметр сходства, должны быть установлены в начальные значения.
Веса векторов Bjвсе инициализируются в одинаковые малые значения. Согласно [2], эти значения должны удовлетворять условию
для всехi,j, (8.1)
где т– количество компонент входного вектора, L– константа, большая 1 (обычно L = 2).
Эта величина является критической; если она слишком большая, сеть может распределить все нейроны распознающего слоя одному входному вектору.
Веса векторов Tjвсе инициализируются в единичные значения, так что
tij= 1 для всехj,i. (8.2)
Эти значения также являются критическими; в [2] показано, что слишком маленькие веса приводят к отсутствию соответствия в слое сравнения и отсутствию обучения.
Параметр сходства устанавливается в диапазоне от0до 1 в зависимости от требуемой степени сходства между запомненным образом и входным вектором. При высоких значенияхсеть относит к одному классу только очень слабо отличающиеся образы. С другой стороны, малое значениезаставляет сеть группировать образы, которые имеют слабое сходство между собой. Может оказаться желательной возможность изменять коэффициент сходства на протяжении процесса обучения, обеспечивая только грубую классификацию в начале процесса обучения, и затем постепенно увеличивая коэффициент сходства для выработки точной классификации в конце процесса обучения.
Распознавание. Появление на входе сети входного вектораXинициализирует фазу распознавания. Так как вначале выходной вектор слоя распознавания отсутствует, сигналG1 устанавливается в 1 функцией ИЛИ вектораX, обеспечивая все нейроны слоя сравнения одним из двух входов, необходимых для их возбуждения (как требует правило двух третей). В результате любая компонента вектораX, равная единице, обеспечивает второй единичный вход, тем самым заставляя соответствующий нейрон слоя сравнения возбуждаться и устанавливая его выход в единицу. Таким образом, в этот момент времени векторСидентичен векторуX.
Как обсуждалось ранее, распознавание реализуется вычислением свертки для каждого нейрона слоя распознавания, определяемой следующим выражением:
NETj= (Bj•C), (8.3)
где Вj – весовой вектор, соответствующий нейронуjв слое распознавания;С– выходной вектор нейронов слоя сравнения; в этот моментСравно X; NETj– возбуждение нейронаjв слое распознавания.
Fявляется пороговой функцией, определяемой следующим образом:
OUTj= 1, если NETj>T, (8.4)
OUTj= 0 в противном случае,
где Тпредставляет собой порог.
Принято, что латеральное торможение существует, но игнорируется здесь для сохранения простоты выражении. Оно обеспечивает тот факт, что только нейрон с максимальным значением NETбудет иметь выход, равный единице; все остальные нейроны будут иметь нулевой выход. Можно рассмотреть системы, в которых в распознающем слое возбуждаются несколько нейронов в каждый момент времени, однако это выходит за рамки данной работы.
Сравнение. На этой фазе сигнал обратной связи от слоя распознавания устанавливает G1в нуль; правило двух третей позволяет возбуждаться только тем нейронам, которые имеют равные единице соответствующие компоненты векторовРиX.
Блок сброса сравнивает вектор Си входной векторX, вырабатывая сигнал сброса, когда их сходство S ниже порога сходства. Вычисление этого сходства упрощается тем обстоятельством, что оба вектора являются двоичными (все элементы либо 0, либо 1). Следующая процедура проводит требуемое вычисление сходства:
Вычислить D– количество единиц в вектореX.
Вычислить N– количество единиц в вектореС.
Затем вычислить сходство Sследующим образом:
S=N/D. (8.5)
Например, примем, что
Х = 1 0 1 1 1 0 1 D = 5
С = 00 1 1 1 0 1 N = 4
S=N/D=0,8
Sможет изменяться от 1 (наилучшее соответствие) до0(наихудшее соответствие).
Заметим, что правило двух третей делает Слогическим произведением входного вектораХи вектораР. ОднакоРравенТj, весовому вектору выигравшего соревнование нейрона. Таким образом,Dможет быть определено как количество единиц в логическом произведении векторовТj и X.
Поиск. Если сходство .S выигравшего нейрона превышает параметр сходства, поиск не требуется. Однако если сеть предварительно была обучена, появление на входе вектора, не идентичного ни одному из предъявленных ранее, может возбудить в слое распознавания нейрон со сходством ниже требуемого уровня. В соответствии с алгоритмом обучения возможно, что другой нейрон в слое распознавания будет обеспечивать более хорошее соответствие, превышая требуемый уровень сходства несмотря на то, что свертка между его весовым вектором и входным вектором может иметь меньшее значение. Пример такой ситуации показан ниже.
Если сходство ниже требуемого уровня, запомненные образы могут быть просмотрены с целью поиска, наиболее соответствующего входному вектору образа. Если такой образ отсутствует, вводится новый несвязанный нейрон, который в дальнейшем будет обучен. Для инициализации поиска сигнал сброса тормозит возбужденный нейрон в слое распознавания на время проведения поиска, сигнал G1устанавливается в единицу и другой нейрон в слое распознавания выигрывает соревнование. Его запомненный образ затем проверяется на сходство и процесс повторяется до тех пор, пока конкуренцию не выиграет нейрон из слоя распознавания со сходством, большим требуемого уровня (успешный поиск), либо пока все связанные нейроны не будут проверены и заторможены (неудачный поиск).
Неудачный поиск будет автоматически завершаться на несвязанном нейроне, так как его веса все равны единице, своему начальному значению. Поэтому правило двух третей приведет к идентичности вектора Свходному векторуX, сходствоSпримет значение единицы и критерий сходства будет удовлетворен.
Обучение. Обучение представляет собой процесс, в котором набор входных векторов подается последовательно на вход сети и веса сети изменяются при этом таким образом, чтобы сходные векторы активизировали соответствующие нейроны. Заметим, что это – неуправляемое обучение, нет учителя и нет целевого вектора, определяющего требуемый ответ.
В работе [2] различают два вида обучения: медленное и быстрое. При медленном обучении входной вектор предъявляется настолько кратковременно, что веса сети не имеют достаточного времени для достижения своих ассимптотических значений в результате одного предъявления. В этом случае значения весов будут определяться скорее статистическими характеристиками входных векторов, чем характеристиками какого-то одного входного вектора. Динамика сети в процессе медленного обучения описывается дифференциальными уравнениями.
Быстрое обучение является специальным случаем медленного обучения, когда входной вектор прикладывается на достаточно длительный промежуток времени, чтобы позволить весам приблизиться к их окончательным значениям. В этом случае процесс обучения описывается только алгебраическими выражениями. Кроме того, компоненты весовых векторов Тjпринимают двоичные значения, в отличие от непрерывного диапазона значений, требуемого в случае быстрого обучения. В данной работе рассматривается только быстрое обучение, интересующиеся читатели могут найти превосходное описание более общего случая медленного обучения в работе [2].
Рассмотренный далее обучающий алгоритм используется как в случае успешного, так и в случае неуспешного поиска.
Пусть вектор весов Вj(связанный с возбужденным нейрономjраспознающего слоя) равен нормализованной величине вектораС. В [2] эти веса вычисляются следующим образом:
(8.6)
где сi–i-якомпонента выходного вектора слоя сравнения; j– номер выигравшего нейрона в слое распознавания;bij– вес связи, соединяющей нейрон iв слое сравнения с нейрономjв слое распознавания; L– константа > 1 (обычно 2).
Компоненты вектора весов Тj, связанного с новым запомненным вектором, изменяются таким образом, что они становятся равны соответствующим двоичным величинам вектораС:
tij=сiдля всехi, (8.7)
где tijявляется весом связи между выигравшим нейрономjв слое распознавания и нейрономiв слое сравнения.