Более простой подход состоит в сокращении нейронной сети (pruning). То есть предпринимается попытка максимально сжать ИНС за счет удаления менее значимых, по сравнению с остальными, синаптических связей и нейронов. Значимость в случае удаления связи определяется по ее весу, а в случае удаления нейрона - по суммарному весу всех входящих в нейрон связей.
Помимо возможности лучше понять логику работы персептрона за счет упрощения и уменьшения его структуры мы также получим большую производительность за счет меньшего числа производимых вычислений на этапе определения его выходного значения и на этапе подстройки весов персептрона по типу обратного распространения ошибки.
Один из путей проведения сокращения вычислений - использование алгоритма Оptimal Brain Surgery (OBS) [12]. В нем выбор удаляемой связи определяется исходя из минимума функции, связанной с градиентом распространения ошибки. Однако можно производить сокращение и простым удалением слишком маленьких весов (меньше определенного порога), а также нескольких наименьших входящих весов для каждого нейрона. Конкретное число или даже стратегия удаляемых весов и нейронов - настроечный параметр, который также может подбираться в том же генетическом алгоритме.
Используемый вариант предполагал удаление двух самых маленьких весов для каждого нейрона и двух нейронов с меньшей суммой входных весов на каждом слое.
Суммарная ошибка ИНС после проведения сокращений меньше, чем ИНС до их проведения (см. рис. 4).
Рис. 4. Изменение суммарной ошибки в зависимости от проведения сокращений сети
При практической проверке удалось выявить ряд особенностей в проведении сокращений ИНС. Например, реальную эффективность от использования сокращения сети удается получить не сразу, а только через несколько десятков шагов генетического алгоритма, когда количество оставшихся особей уже мало. Несмотря на наличие пиков (то есть моментов возрастания суммарной ошибки), ошибка "сглаживается" уже через несколько шагов. Также нельзя проводить сокращения слишком часто, в данном случае выбирался промежуток в 4 шага генетического алгоритма между двумя последовательными сокращениями.
Заключение
В этой статье были рассмотрены пути повышения эффективности работы механизма выявления дисбалансов загрузки в подсистеме балансировки TriadBalance. Они позволили на четверть уменьшить суммарную ошибку рабочего звена агента анализа (скомпилированной в виде исполняемого файла нейронной сети). Выбор конкретных механизмов был продиктован их применимостью к данной задаче либо конкретно к нейронным сетям, поскольку именно ИНС были выбраны в качестве рабочего звена.
Если рассматривать моменты проведения сокращений и их порядок относительно подачи обучающей выборки, то этот момент также может быть подвергнут глобальной оптимизации с помощью генетического алгоритма, либо, например, с помощью метода отжига, или метода индексных схем.
В целом можно считать, что агент анализа построен и готов к работе в качестве компонента подсистемы балансировки TriadBalance.
Из приведенных в статье и опробованных практически механизмов, улучшающих качество распознавания дисбалансов, лучшим следует признать механизм сокращения ИНС.
Список литературы
1. Кирилловых С.А., Юрков К.А. Нейросетевой подход к реализации агента анализа подсистемы балансировки TriadBalance // Вестник Перм. ун-та. Пермь, 2010. № 1(1). С. 98_105.
2. Кирилловых С.А. Нейросетевой подход для выявления дисбалансов в распределенной вычислительной системе // Современные проблемы математики и ее прикладные аспекты: сб. ст. / Перм. ун-т, Пермь, 2010. С.64_69.
3. Замятина Е.Б., Стаценко Н.А., Юрков К.Б. Мультиагентная балансировка с использованием агентов, обученных на нейронных сетях // Математика программных систем: межвуз. сб. науч. тр. / Перм. ун-т. Пермь, 2008. С.21-27.
4. Замятина Е.Б., Ефимов А.Ю., Козлов А.А. Архитектура подсистемы мультиагентной балансировки в Triad.Net // Математика программных систем: межвуз. сб. науч. тр. / Перм. ун-т. Пермь, 2008. С.4-13.
5. Миков А.И., Замятина Е.Б., Козлов А.А. Оптимизация параллельных вычислений с применением мультиагентной балансировки // Параллельные вычислительные технологии (ПаВТ'2009): тр. междунар. науч. конф. / Челябинск: Изд-во ЮУрГУ, 2009. С.599-604.
6. Садыхов Р.К., Отвагин А.В. Оптимизация параллельных вычислений на базе многоагентной архитектуры // Математика программных систем: межвуз. сб. науч. тр. / Перм. ун-т. Пермь, 2008. С.42-59.
7. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. М., 2002. 382 с.
8. Осовский С. Нейронные сети для обработки информации. М.: Финансы и статистика, 2002. 344 с.
9. Рутковская Д., Пилинский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы / пер. с польск. И.Д.Рудинского. М., 2006. 452 с.
10. Breiman, L. Bagging predictors. Machine Learning, 1996. 24(2). P.123-140.
11. Kuncheva L.I., Skurichina M. An experimental study on diversity for bagging and boosting with linear classifiers: [Электронный документ]. (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.3377) Проверено 17.03.2011.
12. Воронцов К.В. Лекции по искусственным нейронным сетям: [Электронный документ]. (http://www.machinelearning.ru/wiki/images/c/cc/Voron-ML-NeuralNets.pdf) Проверено 17.03.2011.
13. Федяев О.И., Соломка Ю.И. Применение генетических алгоритмов для обучения нейронных сетей: [Электронный документ]. (http://www.uran.donetsk.ua/~masters/2004/fvti/solomka/library/article2.htm) Проверено 17.03.2011.
14. Lazarevic A. Feature bagging for outlier detection: [Электронный документ]. (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.80.1204) Проверено 17.03.2011.