Примечание | Разработана функциональная модель идеального нейрокомпьютера. Определены принципы выделения функциональных компонентов. Произведена декомпозиция нейрокомпьютера на функциональные компоненты в соответствии с предложенными принципами |
Загрузить архив: | |
Файл: ref-28260.zip (1368kb [zip], Скачиваний: 252) скачать |
ИНСТИТУТ ВЫЧИСЛИТЕЛЬНОГО МОДЕЛИРОВАНИЯ СО РАН
КРАСНОЯРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
На правах рукописи
МИРКЕС ЕВГЕНИЙ МОИСЕЕВИЧ
Функциональные Модели универсального нейрокомпьютера
05.13.11 – Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Диссертация на соискание ученой степени
доктора технических наук
Консультант: д.ф.-м.н.,
профессор А.Н. Горбань
Красноярск 2001
Оглавление
Общая
характеристика работы.. 8
1. Функциональные компоненты... 22
1.1. Краткий обзор
нейрокомпьютеров.. 22
1.2. Выделение компонентов.. 24
1.3. Запросы компонентов нейрокомпьютера.. 27
1.3.1. Запросы
к задачнику. 28
1.3.2. Запрос
к предобработчику. 28
1.3.3. Запрос
к исполнителю.. 29
1.3.5. Запрос
к контрастеру. 29
1.3.7. Запрос
к интерпретатору ответа. 29
1.4. Запросы общие для всех
компонентов.. 30
1.4.1. Стандарт
типов данных. 30
1.4.2. Переменные
типа цвет и операции с цветами. 33
1.4.2.1.Значение
переменной типа цвет (Color)33
1.4.2.2.Операции
с переменными типа цвет (Color)34
1.4.3. Предопределенные
константы.. 35
1.4.4. Использование
памяти. 37
1.4.5.1.Процедура
обработки ошибок. 38
1.4.5.2.Установить
обработчик ошибок (OnError)38
1.4.5.3.Дать
номер ошибки (GetError)39
1.4.6. Запросы,
однотипные для всех компонентов. 40
1.4.6.1.Запрос
на установление текущего компонента. 41
Сделать текущей (xxSetCurrent)41
1.4.6.2.Запросы,
работающие со структурой компонента. 41
Добавление нового экземпляра (xxAdd)41
Удаление экземпляра компонента (xxDelete)42
Вернуть имена структурных единиц (xxGetStructNames)43
Вернуть тип структурной единицы (xxGetType)44
1.4.6.3.Запросы
на изменение параметров. 45
Получить параметры (xxGetData)45
Получить имена параметров (xxGetName)45
Установить параметры (xxSetData)46
1.4.6.4.Инициация
редактора компоненты.. 47
Редактировать компонента (xxEdit)47
2. Задачник и обучающее множество.. 48
2.1. Структуры данных
задачника.. 48
2.3. Состав данных задачника.. 49
2.3.1. Цвет
примера и обучающая выборка. 50
2.3.4. Предобработанные
данные. 51
2.3.9. Достоверность
ответа. 51
2.3.10. Уверенность
в ответе. 52
2.4. Запросы к компоненту
задачник.. 53
2.4.1. Чтение
и запись задачника. 54
2.4.1.1.Прочитать
задачник (tbAdd)54
2.4.1.2.Записать
задачник (tbWrite)54
2.4.1.3.Закрыть
задачник (tbDelete)55
2.4.2. Начало
и конец сеанса. 55
2.4.2.1.Начало
сеанса (InitSession)55
2.4.2.2.Конец
сеанса (EndSession)56
2.4.3. Перемещение
по примерам.. 56
2.4.3.7.Пример
номер (Example)60
2.4.4. Определение,
получение и изменение данных. 61
2.4.4.2.Обновить
данные (Put)62
2.4.4.3.Сбросить
предобработку (RemovePrepare)62
2.4.5.1.Дать
цвет примера (GetColor)63
2.4.5.2.Покрасить
пример (PaintCurrent)63
2.4.6. Ошибки
компонента задачника. 64
3.2. Различимость входных
данных.. 67
3.3. Классификация компонентов
входных данных.. 69
3.4. Кодирование бинарных
признаков.. 70
3.5. Кодирование
неупорядоченных качественных признаков.. 71
3.6. Кодирование упорядоченных
качественных признаков.. 71
3.8. Простейшая предобработка
числовых признаков.. 72
3.9. Оценка способности сети
решить задачу.. 72
3.9.1. Оценка
константы Липшица сети. 74
3.9.2. Способ
вычисления константы Липшица. 74
3.9.7. Нелинейный
Паде преобразователь. 76
3.9.8. Нелинейный
сигмоидный преобразователь. 76
3.9.9. Адаптивный
сумматор. 76
3.9.10. Константа
Липшица сигмоидной сети. 77
3.10. Предобработка,
облегчающая обучение. 78
3.11. Другие способы
предобработки числовых признаков.. 79
3.11.1. Модулярная
предобработка. 80
3.11.2. Функциональная
предобработка. 80
3.11.3. Позиционная
предобработка. 82
3.12. Составной
предобработчик.. 82
3.13. Запросы к компоненту
предобработчик.. 83
3.13.1. Запрос
на предобработку. 84
3.13.1.1.Предобработать
вектор сигналов (Prepare)84
3.13.2. Остальные
запросы.. 85
3.13.3. Ошибки
компонента предобработчик. 85
4. Описание нейронных сетей.. 87
4.1. Конструирование нейронных
сетей.. 87
4.1.1. Элементы
нейронной сети. 88
4.1.2. Составные
элементы.. 89
4.1.3. Функционирование
сети. 90
4.1.4. Методы
построения двойственных сетей. 91
4.1.5. Элементы
самодвойственных сетей. 94
4.1.5.5.Нелинейный
Паде преобразователь. 97
4.1.5.6.Нелинейный
сигмоидный преобразователь. 97
4.1.5.7.Произвольный
непрерывный нелинейный преобразователь. 98
4.1.5.8.Пороговый
преобразователь. 98
4.1.6. Правила
остановки работы сети. 99
4.1.8. Модификация
синаптической карты (обучение)102
4.1.9. Контрастирование
и нормализация сети. 102
4.2. Примеры сетей и
алгоритмов их обучения.. 103
4.2.3. Персептрон
Розенблатта. 108
4.3. Язык описания нейронных
сетей.. 110
4.3.1. Структура
компонента. 110
4.3.2. Сигналы
и параметры.. 111
4.3.3. Обучаемые
и не обучаемые параметры и сигналы.. 111
4.3.4. Дополнительные
переменные. 112
4.3.5. Приведение
и преобразование типов. 112
4.3.7. Язык
описания нейронных сетей. 120
4.3.7.1.Ключевые
слова языка. 121
4.3.7.2.Передача
аргументов функциям.. 124
4.3.7.3.Имена
структурных единиц. 124
4.3.7.4.Способ
описания синтаксических конструкций. 124
4.3.7.5.Описание
общих синтаксических конструкций. 127
4.3.7.7.Область
действия переменных. 133
4.3.7.8.Основные
операторы.. 134
4.3.7.9.Описание
распределения сигналов. 135
4.3.7.10.Функции
управления памятью.. 136
4.3.7.11.БНФ
языка описания сетей. 138
4.3.7.12.Описание
языка описания сетей. 141
Описание и область действия переменных. 141
Методы Forw и Back для блоков. 141
Пример описания элементов. 143
4.3.7.13.Сокращение
описания сети. 164
Раздел описания сигналов и параметров. 164
Частично сокращенное описание. 168
Пример сокращенного описания блоков. 168
4.4. Запросы к компоненту сеть. 170
4.4.1. Запросы
к компоненту сеть. 171
4.4.2. Запросы
на функционирование. 172
4.4.2.1.Выполнить
прямое Функционирование (Forw)172
4.4.2.2.Выполнить
обратное Функционирование (Back)172
4.4.3. Запросы
на изменение параметров. 173
4.4.3.1.Провести
обучение (Modify)173
4.4.3.2.Изменить
маску обучаемости (ModifyMask)174
4.4.3.3.Обнулить
градиент (NullGradient)175
4.4.3.4.Случайное
направление спуска (RandomDirection)175
4.4.4. Запросы,
работающие со структурой сети. 176
4.4.4.1.Вернуть
параметры сети (nwGetData)176
4.4.4.2.Установить
параметры сети (nwSetData)177
4.4.4.3.Нормализовать
сеть (NormalizeNet)178
4.4.5. Остальные запросы.. 178
4.4.6. Ошибки
компонента сеть. 179
5. Оценка и интерпретатор ответа.. 180
5.1. Интерпретатор ответа.. 180
5.2. Уровень уверенности.. 182
5.3. Построение оценки по
интерпретатору.. 183
5.4. Оценка обучающего
множества.Вес примера.. 188
5.5. Глобальные и локальные
оценки.. 190
5.6. Составные интерпретатор
ответаи оценка.. 195
5.7. Запросы к компоненту интерпретатор
ответа.. 195
5.7.1. Запрос
на интерпретацию.. 196
5.7.1.1.Интерпретировать
массив сигналов (Interpretate)196
5.7.2. Остальные
запросы.. 197
5.7.3. Ошибки
компонента интерпретатор ответа. 198
5.8. Запосы к компоненту
оценка.. 198
5.8.1. Запрос
на оценивание. 199
5.8.1.1.Оценить
массив сигналов (Estimate)199
5.8.2. Остальные
запросы.. 200
5.8.2.1.Установить
параметры (SetEstIntParameters)200
5.8.3. Ошибки
компонента оценка. 201
6.1. Описание компонента
исполнитель. 202
6.2. Запросы к компоненту
исполнитель. 203
6.2.1. Позадачная
обработка (TaskWork)204
6.2.2. Обработка
обучающего множества (TaskSetWork)206
6.2.3. Ошибки
компонента исполнитель. 209
7.1. Что можно обучать методом
двойственности.. 210
7.2. Задача обучения сети.. 212
7.3. Описание алгоритмов
обучения.. 213
7.3.1. Краткий
обзор макрокоманд учителя. 213
7.3.2. Неградиентные
методы обучения. 215
7.3.2.1.Методслучайной стрельбы.. 216
7.3.2.2.Метод
покоординатного спуска. 217
7.3.2.3.Подбор
оптимального шага. 217
7.3.2.4.Метод
случайного поиска. 218
7.3.2.5.Метод
Нелдера-Мида. 219
7.3.3. Градиентные
методы обучения. 220
7.3.3.1.Метод
наискорейшего спуска. 220
7.3.3.3.Квазиньютоновские
методы.. 222
7.4. Запросы к компоненту
учитель. 222
7.4.1.1.Обучить
сеть (InstructNet)223
7.4.1.2.Провести
N шагов обучения (NInstructSteps)223
7.4.1.3.Прервать
обучение (CloseInstruction)224
7.4.2. Чтение/запись
учителя. 224
7.4.2.1.Прочитать
учителя (inAdd)224
7.4.2.2.Удаление
учителя (inDelete)225
7.4.2.3.Запись
компонента (inWrite)225
7.4.3. Инициация
редактора учителя. 226
7.4.3.1.Редактировать
компонент (inEdit)226
7.4.4. Работа
с параметрами учителя. 227
7.4.4.1.Получить
параметры (inGetData)227
7.4.4.2.Получить
имена параметров (inGetName)227
7.4.4.3.Установить
параметры (inSetData)228
8.1. Задачи для контрастера.. 229
8.1.1. Упрощение
архитектуры нейронной сети. 229
8.1.2. Уменьшение
числа входных сигналов. 231
8.1.3. Сведение
параметров нейронной сети к выделенным значениям.. 231
8.1.4. Снижение
требований к точности входных сигналов. 232
8.1.5. Получение
явных знаний из данных. 232
8.1.5.1.Построение
логически прозрачных сетей. 233
8.1.5.2.Получение
явных знаний. 234
8.2. Множества повышенной
надежности.. 237
8.2.1. Формальная
постановка задачи. 237
8.2.2. Классификация
дублей. 238
8.2.3. Прямой
дубль первого рода. 238
8.2.4. Косвенный
дубль первого рода. 239
8.2.5. Прямой
дубль второго рода. 240
8.2.6. Косвенный
дубль второго рода. 241
8.2.7. Косвенный
супердубль. 241
8.3. Процедура
контрастирования.. 242
8.3.1. Контрастирование
на основе показателей значимости. 242
8.3.2. Контрастирование
без ухудшения. 243
8.3.3. Гибридная
процедура контрастирования. 244
8.3.4. Контрастирование
при обучении. 245
8.4. Определение показателей
значимости.. 245
8.4.1. Определение
показателей значимости через градиент.. 245
8.4.2. Усреднение
по обучающему множеству. 246
8.4.3. Накопление
показателей значимости. 247
8.5. Запросы к компоненту
контрастер. 248
8.5.1. Контрастирование
сети. 248
8.5.1.1.Контрастировать
сеть(ContrastNet)248
8.5.1.2.Прервать
контрастирование (CloseContrast)248
8.5.1.3.Контрастировать
пример (ContrastExample)249
8.5.2. Чтение/запись
контрастера. 250
8.5.2.1.Прочитать
контрастера (cnAdd)250
8.5.2.2.Удаление
контрастера (cnDelete)250
8.5.2.3.Запись
контрастера (cnWrite)251
8.5.3. Инициация
редактора контрастера. 251
8.5.3.1.Редактировать
контрастера (cnEdit)251
8.5.4. Работа
с параметрами контрастера. 252
8.5.4.1.Получить
параметры (cnGetData)252
8.5.4.2.Получить
имена параметров (cnGetName)252
8.5.4.3.Установить
параметры (cnSetData)253
9. Нейронные сети ассоциативной
памяти, функционирующие в дискретном времени.. 255
9.2. Формальная постановка задачи.. 256
9.4. Функционирование сети.257
9.7. Сети для инвариантной
обработки изображений.. 268
9.8. Численный эксперимент. 269
9.9. Доказательство теоремы.. 271
11. Приложение 1. Логически прозрачная сеть для
прогнозирования шизофрении.. 278
12. Приложение 2. Краткое описание
возможностей программы NEUROPRO 285
12.2. Требования к
аппаратуре. 285
12.3. Основные возможности программы.. 285
12.5. Нейросетевая парадигма.. 286
12.6. Подача и снятие
сигналов.. 286
12.7. Точность решения
задачи.. 287
12.8. Обучение нейронной
сети.. 288
12.9. Упрощение нейронной
сети.. 288
12.10. Вербализация нейронной
сети.. 289