Реализация нейронной сети в электронной таблице
- Авторы: Хрисанов Н.Н.1
-
Учреждения:
- Самарский государственный технический университет
- Выпуск: Том 24, № 1 (2016)
- Страницы: 41-47
- Раздел: Статьи
- URL: https://journals.eco-vector.com/1991-8542/article/view/20146
- DOI: https://doi.org/10.14498/tech.2016.1.%25u
- ID: 20146
Цитировать
Полный текст
Аннотация
Рассматривается реализация нейронной сети в офисном пакете OpenOffice.org. Приведена схема нейронной сети, обоснован выбор функций активации, схемы вычисления градиента критерия качества в процессе обучения. Рассмотрена структура программного обеспечения, включающая модули предварительной обработки и нормализации экспериментальных данных, взаимодействия с базой данных, инициализации и обучения нейронной сети, управления диалогами, модуль диагностики. Приведены результаты применения нейронной сети для решения одной задачи распознавания, позволившие обосновать выбор функций активации, объем выборки для обучения нейронной сети и обеспечить высокий уровень распознавания.
Ключевые слова
Полный текст
Нейронная сеть реализована в среде приложения Calc офисного пакета OpenOffice.org, язык программирования - Basic. Структура программы соответствует [1, 2]. Применение пакета OpenOffice.org имеет следующие преимущества: не требуется приобретение лицензии, приложения работают без изменений в разных операционных системах (Windows, Linux); пользователю, знакомому с работой в MS Office, а именно с электронной таблицей Excel, не нужно переучиваться при переходе к работе с пакетом OpenOffice.org. На рис. 1 показана обобщенная структура нейронной сети, реализуемая программой. Рис. 1. Структура нейронной сети На рисунке: - вектор входных наблюдений; - размерность вектора ; - матрица весов входного слоя; - матрица весов от слоя к слою ; - вектор смещения -го слоя; - функции активации -го слоя; - количество функций активации в -м слое; - выходной вектор. В нейронной сети каждый элемент вектора входа (для входного слоя это вектор , для остальных вектор , где - номер предыдущего слоя) соединен со всеми входами нейрона, и это соединение задается матрицей весов для входного слоя и матрицей для остальных слоев. При этом каждый -й нейрон включает суммирующий элемент, который формирует скалярный выход . Совокупность скалярных функций объединяется в элементный вектор входа функции активации -го слоя . Выходы слоя нейронов формируют вектор-столбец ; таким образом, описание слоя нейронов имеет вид . В соответствии с рекомендациями из [3] в качестве функций активации возможно использование или антисимметричной сигмоидальной функции вида , или антисимметричной линейной функции На рис. 2 представлены графики используемых функций активации, а также их производных, используемых в процессе обучения. В процессе обучения нейронной сети реализуется алгоритм обратного распространения ошибки. При этом минимизируется функционал ошибки вида , где - функционал; - число слоев сети; - объем выборки; - номер выборки; - число нейронов выходного слоя; - вектор сигнала на выходе сети; - вектор желаемых (целевых) значений сигнала на выходе сети для выборки с номером . а б в г Рис. 2. Графики функций активации: а - сигмоидальная функция; б - производная сигмоидальной функции; в - линейная функция; г - производная линейной функции Вычисление частных производных критерия , используемых для настройки весов выходного слоя, производится по формуле где. Для слоев М-2, М-3, …, 1 вычисление частных производных критерия производится по формулам , где - номер слоя, , , . На рис. 3 представлена схема вычислений, производимая в процессе обучения нейронной сети. При написании программы использованы следующие компоненты OpenOffice.org: Calc - модуль электронных таблиц; Base - система управления базами данных. Для написания макросов использовался модуль OpenOffice.org Basic. Реализация отдельных функций нейронной сети компонентами пакета OpenOffice.org показана на рис. 4. Программа включает следующие модули: модуль предварительной обработки и нормализации экспериментальных данных, модуль взаимодействия с базой данных, модуль управления диалогами, модуль инициализации и обучения нейронной сети, модуль диагностики. Рис. 3. Схема вычисления градиента критерия качества в процессе обучения Рис. 4. Реализация отдельных функций нейронной сети компонентами пакета OpenOffice.org Basic Модуль взаимодействия с базой данных позволяет сохранять исходные данные, результаты обучения и моделирования различных экспериментов. С помощью модуля предварительной обработки производится выявление противоречащих друг другу экспериментальных данных, нормализация исходных данных. Нормализация проводится в соответствии с рекомендациями, изложенными в [3], и заключается в приведении исходных данных к линейному участку функции активации, а именно к диапазону . Подобная нормализация позволяет значительно повысить скорость сходимости алгоритма обучения нейронной сети. Модуль управления диалогами генерирует по запросу пользователя формы для ввода исходных данных при инициализации нейронной сети, ее обучения и обработки реальных данных. Форма для задания параметров обучения показана на рис. 5. При инициализации задаются следующие параметры нейронной сети: количество слоев, объем выборки и размер входного вектора наблюдений , количество нейронов в каждом слое, тип функций активации для каждого слоя (сигмоид или линейная) и ее параметры. Для процесса обучения задается максимальное число циклов (эпох), точность аппроксимации как максимальная разница значений критерия для двух последних итераций, скорость обучения. Также указывается, используется ли в процессе обучения вектор смещения . Рис. 5. Форма для задания параметров обучения В процессе обучения в форме выводятся значения критерия для каждой пятой итерации. Процесс изменения критерия также можно наблюдать в реальном масштабе времени на графике (рис. 6). При подаче на вход нейронной сети контрольной выборки формируется диаграмма погрешностей для каждого выходного значения. Рис. 6. Изменение критерия в процессе обучения Результаты применения нейронной сети для предсказания результатов лечения одного класса заболеваний приведены на рис. 7. Количество нейронов во входном и промежуточном слоях было равно размерности входного вектора, . Количество нейронов в выходном слое , т. е. равно возможному числу исходов курса лечения. Для трехслойной сети явление переобучения наступало после 600 итераций. Рис. 7. Зависимость процента правильного распознавания в зависимости от объема обучающей выборки: 1 - сигмоидальная функция активации; 2 - линейная функция активации В процессе обучения использовалась генеральная совокупность 300 выборок - пациенты, прошедшие определенный курс лечения. На рис. 7 - количество выборок, используемых для обучения, в процентах от общего числа выборок; - процент правильного распознавания. Из графика следует, что предпочтительно использовать сигмоидальную функцию активации и для обучения использовать не менее 50 % выборок от общего их количества, при этом процент правильного распознавания будет более 90 %.×
Об авторах
Николай Николаевич Хрисанов
Самарский государственный технический университет(к.т.н., доц.), доцент кафедры «Вычислительная техника» Россия, 443100, г. Самара, ул. Молодогвардейская, 244
Список литературы
- Jeff Heaton to Neural Network for Java, 2nd ed. Publisher: Heaton Research, Inc. - 2008, 438 p.
- Jeff Heaton. Programming Neural Network with Encog3 in Java, 2nd ed. Publisher: Heaton Research, Inc. - 2011, 210 p.
- Haykin, Simon. Neural networks and learning machines / Simon Haykin. - 3rd ed. by Pearson Education, Inc., Upper Saddle River, New Jersey 07458. - 2009, 936 p.
Дополнительные файлы
