Neural network realization in the spreadsheet



Cite item

Full Text

Abstract

The paper deals with the realization of a neural network in OpenOffice.org package. The scheme of a neural network is given, the choice activation functions, the calculation scheme of criterion quality gradient in the course of training is justified. The software structure is discussed. The software includes the modules of experimental-data preliminary processing and normalization, interaction with the database, a neural network initialization and training, dialogue management, and a diagnostics module. The results of a neural-network application for the solution of a recognition task are given. The results enable the justification of the choice of activation functions, sample size for the neural network training, and the high level of recognition.

Full Text

Нейронная сеть реализована в среде приложения 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 %.
×

About the authors

Nikolay N Hrisanov

Samara State Technical University

(Ph.D. (Techn.)), Associate Professor 244, Molodogvardeyskaya st., Samara, 443100, Russian Federation

References

  1. Jeff Heaton to Neural Network for Java, 2nd ed. Publisher: Heaton Research, Inc. - 2008, 438 p.
  2. Jeff Heaton. Programming Neural Network with Encog3 in Java, 2nd ed. Publisher: Heaton Research, Inc. - 2011, 210 p.
  3. Haykin, Simon. Neural networks and learning machines / Simon Haykin. - 3rd ed. by Pearson Education, Inc., Upper Saddle River, New Jersey 07458. - 2009, 936 p.

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2016 Samara State Technical University

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies