КОНТРОЛЛЕР УПРАВЛЕНИЯ ОБУЧЕНИЕМ НЕЙРОННОЙ СЕТИ С ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ
NEURAL NETWORK TRAINING CONTROLLER WITH GENETIC ALGORITHM

Изобретение относится к интеллектуальным контроллерам, использующим генетический алгоритм для поиска структуры нейронной сети и весовых коэффициентов ее синаптических связей.
Известен патент США: US 6553357 В2 «Устройство для улучшения архитектуры нейронной сети с помощью эволюционного алгоритма» (МПК G06N 3/08, G06N 3/04). Данное устройство состоит из входящего процессора (Input processor), блока нейронной сети, блока эволюционного алгоритма и выходящего процессора. На входящий процессор поступает сигнал, который включает или новые данные, или оценку вычислений, или обучающую выборку. От входящего процессора идет сигнал на блок нейронной сети, нейронная сеть связана выходным сигналом с выходящим процессором и блоком эволюционного алгоритма, от блока эволюционного алгоритма идет три сигнала на блок нейронной сети (параметры обучения нейронной сети, архитектура нейронной сети, параметры инициализации нейронной сети).
Наиболее близким техническим решением является патент США US 5140530 (А) «Генетический алгоритм синтеза нейронной сети». Данное устройство состоит из блока генетического алгоритма, блока оценки производительности нейронной сети, блока нейронной сети и блока обучения нейронной сети. Принцип работы устройства по патенту США US 5140530 (А) следующий - на вход устройства поступает новая задача в виде двух наборов: обучающей и тестовой выборок. Блок генетического алгоритма формирует популяцию хромосом нейронных сетей (в виде основных параметров - количество входов, выходов, слоев и нейронов в них), далее из хромосом формируются новые нейронные сети, которые обучаются блоком обучения нейронных сетей. После обучения каждая нейронная сеть оценивается в блоке оценки производительности нейронных сетей и оценка передается в блок генетического алгоритма, который в зависимости от достижения критерия качества работы нейронной сети либо формирует новую популяцию, либо останавливает работу поиска нейронной сети и выдает на выход нейронную сеть с лучшими показателями работы.
Общий недостаток устройств указанных патентов в том, что алгоритм работы слабо детализирован и допускает различные варианты исполнения (на усмотрение разработчика). К общим недостаткам устройств с генетическими и эволюционными алгоритмами можно отнести большое количество вычислений. Также проблемами систем, использующих генетические и эволюционные алгоритмы, являются неопределенное время остановки поиска оптимальной хромосомы, определение количества популяций и хромосом в них.
Задача - усовершенствование контроллера управления обучением нейронной сети с генетическим алгоритмом.
Техническим результатом предлагаемого устройства является повышение скоростных характеристик поиска структуры нейронной сети и упрощение конечной реализации для разработчика.
Технический результат достигается тем, что в контроллере управления обучением нейронной сети с генетическим алгоритмом, содержащем блок нейронной сети, блок оценки производительности нейронной сети, блок обучения нейронной сети и блок генетического алгоритма, первый выход блока нейронной сети связан со вторым входом блока обучения нейронной сети, второй выход блока нейронной сети связан со вторым входом блока оценки производительности нейронной сети, первый выход блока генетического алгоритма связан с четвертым входом блока нейронной сети, дополнительно введены объект управления, блок данных, блок управления, блок истории хромосом и блок оценки хромосом, при этом первый выход объекта управления связан с первым входом блока данных, первый выход блока данных связан с первым входом блока оценки производительности нейронной сети, второй выход блока данных связан с первым входом блока обучения нейронной сети, третий выход блока данных связан с первым входом блока нейронной сети, четвертый выход блока данных связан с первым входом блока управления, первый выход блока обучения нейронной сети связан с третьим входом блока данных, второй выход блока обучения нейронной сети связан со вторым входом блока нейронной сети, первый выход блока оценки производительности нейронной сети связан со вторым входом блока данных, второй выход блока оценки производительности нейронной сети связан с третьим входом блока оценки хромосом, третий выход блока оценки производительности нейронной сети связан с третьим входом блока управления, четвертый выход блока оценки производительности нейронной сети связан с третьим входом блока нейронной сети, третий выход блока нейронной сети связан с первым входом объекта управления, четвертый выход блока нейронной сети связан со вторым входом блока оценки хромосом, пятый выход блока нейронной сети связан со вторым входом блока управления, первый выход блока управления связан с четвертым входом блока данных, второй выход блока управления связан с первым входом блока генетического алгоритма, второй выход блока генетического алгоритма связан с четвертым входом блока управления, третий выход блока генетического алгоритма связан с первым входом блока истории хромосом, четвертый выход блока генетического алгоритма связан с первым входом блока оценки хромосом, первый выход блока истории хромосом связан со вторым входом блока генетического алгоритма, первый выход блока оценки хромосом связан с пятым входом блока управления и второй выход блока оценки хромосом связан со вторым входом блока истории хромосом.
Задача повышения скоростных характеристик поиска структуры нейронной сети достигается за счет добавления блока управления и соответствующих связей. Упрощение реализации для разработчика заключается в декомпозиции блоков, отвечающих за генетический алгоритм и нейронную сеть на несколько блоков, для генетического алгоритма - блок истории хромосом, блок оценки хромосом, а также соответствующие связи. Для блока нейронной сети отдельно вынесен блок обучения нейронной сети. Также в систему добавлен блок данных для хранения необходимой информации об объекте управления.
Отметим, что в патенте US 6553357 В2 используется эволюционный алгоритм, а в патенте G06F 15/18 5140530 - генетический. В то же время генетический алгоритм является дальнейшим развитием эволюционного, и оба алгоритма входят в эволюционные модели (см.,  например, Ярушкина Н.Г. Основы теории нечетких и гибридных систем: Учеб. пособие. - М.: Финансы и статистика, 2004. - 320 с.). В данном изобретении применен базовый генетический алгоритм, но в общем случае можно применять и базовый эволюционный алгоритм.
На фиг. 1 изображена схема контроллера управления обучением нейронной сети с генетическим алгоритмом.
Система состоит из нескольких структурных компонентов: объекта управления 1, блока обучения нейронной сети 2, блока оценки производительности нейронной сети 3, блока данных 4, блока нейронной сети 5, блока управления 6, блока генетического алгоритма 7, блока истории хромосом 8 и блока оценки хромосом 9.
Также в системе присутствуют следующие связи - от объекта управления 1 идет сигнал 10 на блок данных 4, от блока нейронной сети 5 идет сигнал 11 на объект управления 1, от блока данных 4 идет сигнал 12 на блок оценки производительности нейронной сети 3, от блока оценки производительности нейронной сети 3 идет сигнал 13 на блок данных 4, от блока данных 4 идет сигнал 14 на блок обучения нейронной сети 2, блок обучения нейронной сети 2 связан по сигналу 15 с блоком данных 4, от блока нейронной сети 5 идет сигнал 16 на блок обучения нейронной сети 2, от блока обучения нейронной сети 2 идет сигнал 17 на блок нейронной сети 5, от блока нейронной сети 5 идет сигнал 18 на блок оценки производительности нейронной сети 3, от блока оценки производительности нейронной сети 3 идет сигнал 19 на блок нейронной сети 5, от блока оценки производительности нейронной сети 3 идет сигнал 20 на блок оценки хромосом 9 и сигнал 21 на блок управления 6, от блока данных 4 идет сигнал 22 на блок нейронной сети 5, от блока управления 6 идет сигнал 23 на блок данных 4, от блока данных 4 идет сигнал 24 на блок управления 6, от блока нейронной сети 5 идет сигнал 25 на блок управления 6, от блока генетического алгоритма 7 идет сигнал 26 на блок нейронной сети 5, от блока нейронной сети 5 идет сигнал 27 на блок оценки хромосом 9, от блока управления 6 идет сигнал 28 на блок генетического алгоритма 7, от блока генетического алгоритма 7 идет сигнал 29 на блок управления 6 и сигнал 30 на блок истории хромосом 8, от блока истории хромосом 8 идет сигнал 31 на блок генетического алгоритма 7, от блока генетического алгоритма 7 идет сигнал 32 на блок оценки хромосом 9, от блока оценки хромосом 9 идет сигнал 33 на блок управления 6 и сигнал 34 на блок истории хромосом 8.
Блок обучения нейронной сети 2 предназначен для обучения нейронной сети с помощью алгоритма обратного распространения ошибки (см. Rumelhart, D.Е., Hinton G.Е., Williams R.J., "Learning internal representations by error propagation,", in D.E. Rumelhart and J.L. McClelland, eds. Parallel Data Processing, vol. 1, Cambridge, MA: The M.I.T. Press, pp. 318-362, 1986), созданной блоком генетического алгоритма 7 нейронной сети.
Блок оценки производительности нейронной сети 3 служит для оценки обучения нейронной сети блоком обучения нейронной сети 2.
Блок данных 4 получает и сохраняет параметры объекта управления 1.
Блок нейронной сети 5 реализует нейронную сеть типа многослойный персептрон.
Блок управления 6 предназначен для управления процессом поиска параметров нейронной сети блоком генетического алгоритма 7.
Блок генетического алгоритма 7 реализует заданный генетический алгоритм для поиска структуры нейронной сети.
Блок истории хромосом 8 предназначен для сохранения лучших хромосом, созданных блоком генетического алгоритма 7.
Блок оценки хромосом 9 предназначен для оценки найденных хромосом блоком генетического алгоритма 7.
Заявленное устройство работает следующим образом. Выделим две фазы работы устройства:
- работа в «исследовательском» режиме, в котором контроллер ищет структуру нейронной сети для поставленной задачи и весовые коэффициенты нейронной сети, решающие поставленную задачу с заданной точностью;
- работа в режиме «реального времени», когда нейронная сеть уже обучена задаче и отрабатывает ее, но поступающие новые данные, возможно, приводят к запуску нового «исследовательского режима» для поиска адекватной нейронной сети.
Алгоритм работы устройства в «исследовательском режиме» состоит из следующих шагов:
1. От объекта управления 1 в блок данных 4 по сигналу 10 поступают данные о задаче, которую необходимо решить с помощью нейронной сети (временные ряды, возможные входы и выходы, допустимая ошибка при решении задачи). Блок данных 4 посылает сигнал по связи 24 на блок управления 6.
2. Блок управления 6 подает сигнал по связи 28 в блок генетического алгоритма 7 на формирование хромосом. При этом рассчитываются (или устанавливаются разработчиком) предельные количества популяций нейронных сетей и хромосом в них.
3. Блок генетического алгоритма 7, используя встроенный генератор случайных чисел, формирует заданное количество хромосом. После формирования каждой хромосомы параметры хромосомы для формирования новой нейронной сети подаются в блок нейронной сети 5 по связи 26, далее подается сигнал по связи 27 в блок оценки хромосом 9 на ожидание данных о работе созданной нейронной сети.
4. Блок нейронной сети 5 подает сигнал по связи 16 на блок обучения нейронной сети 2. Блок обучения нейронной сети 2 обучает нейронную сеть. При этом блок обучения нейронной сети 2 запрашивает у блока данных 4 по связи 15 выборку для обучения. После получения выборки по связи 14 блок обучения нейронной сети 2 обучает нейронную сеть, сформированную в блоке нейронной сети 5, подавая пример из обучающей выборки по связи 17 и получая ответ нейронной сети по связи 16. После окончания обучения подается сигнал по связи 17 на блок нейронной сети 5, который запрашивает у блока оценки производительности нейронной сети 3 оценку качества обучения по сигналу 18.
5. Блок оценки производительности нейронной сети 3, получив сигнал 18 от блока нейронной сети 5, запрашивает валидационную выборку для оценки работы нейронной сети у блока данных 4 по связи 13. Блок данных 4 по связи 12 передает в блок оценки производительности нейронной сети 3 валидационную выборку. Получив валидационную выборку, блок оценки производительности нейронной сети 3 проводит тестирование полученной нейронной сети, подавая пример по связи 19 на блок нейронной сети 5. Блок нейронной сети 5 получает пример и отрабатывает его, получая на выходе значения, которые по связи 18 передаются в блок оценки производительности нейронной сети 3, который сравнивает полученный ответ с тем, что должно было получится. Данное тестирование проводится по всем примерам из валидационной выборки. После окончания тестирования накопленная ошибка из блока оценки производительности нейронной сети 3 по связи 20 подается на блок оценки хромосом 9, параллельно по связи 19 идет сигнал на блок нейронной сети 5 о передаче хромосомы текущей нейронной сети в блок оценки хромосом 9. Блок нейронной сети 5, получив данный сигнал, передает хромосому нейронной сети по связи 27 в блок оценки хромосом 9, в котором оценивается качество хромосомы.
6. Блок оценки хромосом 9 проверяет по заданному критерию качества полученную нейронную сеть. Если нейронная сеть удовлетворяет заданному промежуточному критерию, то хромосома данной нейронной сети записывается в блок истории хромосом 8 по связи 34. Если хромосома удовлетворяет конечному критерию качества, то происходит остановка работы блока генетического алгоритма 7 путем выставления блоком оценки хромосом 9 сигнала по связи 33 на блок управления 6. Блок управления 6, получив сигнал 33 об остановке поиска хромосом, подает сигнал по связи 28 на блок генетического алгоритма 7 остановить поиск хромосом и записать найденную хромосому в блок нейронной сети 5. Хромосома нейронной сети, удовлетворяющая конечному критерию, ищется по номеру после получения сигнала по связи 30 в блоке истории хромосом 8, подается в блок генетического алгоритма 7 по связи 31, который передает хромосому в блок нейронной сети 5 по связи 26. Блок нейронной сети 5, сформировав нейронную сеть по полученной хромосоме, переводит устройство в режим работы «в реальном времени», выставляя сигнал по связи 25 на блок управления 6.
7. После того как блок генетического алгоритма 7 сформировал заданное количество хромосом и ни одна из них не удовлетворила конечному критерию, то блок генетического алгоритма 7 посылает сигнал по связи 29 в блок управления 6 об окончании формирования популяции.
8. Блок управления 6, после формирования каждой популяции, проводит отбор хромосом из блока истории хромосом 8 в новую популяцию по принципу «рулетки» и запускает формирование новой популяции (переход на Шаг 2). Отбор удовлетворяющих заданному критерию хромосом идет по запросу от блока генетического алгоритма 7 по свзяи 30. Удовлетворяющие критерию хромосомы посылаются от блока истории хромосом 8 в блок генетического алгоритма 7 по связи 31 (алгоритм «рулетка» см. Рутковский Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И.Д. Рудинского. - М.: Горячая линия - Телеком. 2006. - 452 с.)
Алгоритм работы устройства в «режиме реального времени»:
1. На устройство поступают текущие параметры отслеживаемого процесса (поставленной задачи). Данные от объекта управления 1 поступают по связи 10 и записываются в блок данных 4, который передает их в блок нейронной сети 5 по связи 22;
2. Блок нейронной сети 5 рассчитывает для текущих параметров управляющий сигнал и подает его на объект управления 1 по связи 11;
3. Объект управления 1 отрабатывает управляющий сигнал, поступивший по связи 11, и подает новые параметры отслеживаемого процесса на блок данных 4 по связи 10, который передает их в блок оценки производительности нейронной сети 3 по связи 12 для проверки качества управления;
4. Блок оценки производительности нейронной сети 3 рассчитывает ошибку управления, т.е. разницу между тем, что рассчитывал блок нейронной сети 5, и тем, что получилось после выполнения сигнала управления по связи 11. Если ошибка больше заданной, то блок оценки производительности нейронной сети 3 посылает сигнал 21 на блок управления 6 о поиске новой нейронной сети.
5. Блок управления 6, получив сигнал на поиск новой нейронной сети, переводит устройство в «исследовательский режим», выставляя сигнал 23 на блок данных 4. При поступлении новых данных на блок данных 4, если система находится в «исследовательском режиме», данные только записываются в блок данных 4, не требуя обработки со стороны блока нейронной сети 5.