Библиографическое описание:

Афанасьева М. А. Создание и обучение нейронных сетей в системе Matlab // Молодой ученый. — 2014. — №4. — С. 85-88.

В данной статье решается задача разработки шаблона, который позволяет познакомиться с процессом создания и обучения, а также прогнозирования результатов нейронных сетей в системе Matlab. Конечный результат работы призван помогать студентам технических специальностей и осваивать начальный этап работы с нейросетями. Для реализации задачи используется система MatlabR2013b.

Ключевые слова:нейронная сеть, прогнозирование.

Технологии искусственных нейронных сетей являются одним из важнейших направлений современной науки. Они находят широкое применение в различных областях науки и производства. Изучению такого направлению искусственного интеллекта в курсе подготовки студентов по информатике и вычислительной технике уделяется большое внимание.

В курсе «Технологии искусственного интеллекта в управлении» Приамурского государственного университета имени Шолом-Алейхема студенты обучаются использованию рассматриваемой технологии в разнообразных средах. Поэтому была поставлена задача разработать простой шаблон, по которому можно познакомится с достоинствами и недостатками искусственных нейронных сетей и использовать его в дальнейших научных и практических работах.

Одной из существующих систем, позволяющей в достаточно простой форме реализовать нейронные сети, является Matlab, по которой имеются множество научных разработок.

Так, В. Д. Семейкин и А.В Скупченко [1] занимаются изучением и созданием нейросетевых моделей для решения телекоммуникационных задач. В. О. Андреев, Н. В. Савиных рассмотрели подход интеллектуализации технологических процессов и процессов управления на основе мягких вычислений, ядро которых составляют нечеткая логика, искусственные нейронные сети и генетические алгоритмы [2]. В своей работе М. Ю. Буриченко, О. Б. Иванцев, О. В. Букреева представили возможности использования программного пакета Matlab для построения моделей прогнозирования с помощью искусственных нейронных сетей, привели результаты построения пяти искусственных нейронных сетей, провели анализ результатов и возможности пересмотра и корректировки весов построенной искусственной нейронной сети [4]. Д. Балабио и М. Васигни в своей статье [6] описали комплект инструментов системы Matlab для создания карт Кохонена, приведя практический пример. А. Нейямадпур писал о возможности представления формата 2D в формат 3D с помощью нейронных сетей в системе Matlab [7]. Теоретические аспекты программирования нейронных сетей изложены в различных пособиях [3, 5, 7, 8].

После изучения теоретических сведений была создана лабораторная работа, в которой показывается пример построения нейронной сети, на основе данных по количеству студентов Приамурского Государственного Университета имени Шолом-Алейхема, сдавших экзамены на отлично с 2007 по 2012 года (табл.1). А также делается прогноз данных на 2013 год и сравнение его с реальными данными.

Таблица 1

Первичные данные

Факультет/Год

2007

2008

2009

2010

2011

2012

2013

ТДиГС

21

18

27

23

27

25

29

МИТТ

28

30

32

36

34

36

38

СКДиС

40

46

52

54

46

48

51

ФИиЖ

40

36

40

40

42

38

40

ЭУиП

40

41

38

36

34

36

32

ПП-ЦПО

40

38

42

44

40

48

46

Покажем разработанный шаблон проектирования и изучения нейронных сетей в системе Matlab R2013b.

После запуска системы Matlab в командной строке требуется ввести команду nntool, которая вызовет окно ввода данных и создания нейронной сети (Neural Network/Data Manager).

Нажатие на кнопку New открывает окно создания нейросети или данных (Create Network or Data). После выбора вкладки Data в поле Name необходимо ввести новое имя входных данных «P», а в поле Value сами значения входных данных: [1 2 3 4 5 6; 7 8 9 10 11 12], в которых числа 1–6 являются кодом каждого из шести факультетов ВУЗа, а 7–12 кодируют год с 2007 по 2012 соответственно. В графе Data Type, справа от поля Value, необходимо выбрать тип данных Inputs.

Нажатием кнопки Create создаются новые данные в окне Neural Network/Data Manager в поле Input Data, но окно создания нейросети или данных по прежнему остается открытым. Следующим шагом является изменение имя данных («Т») и ввод целей, которые представляют собой массив 6x6, содержащий в себе информацию о количестве студентов-отличников на конкретном факультете в конкретном году. Данные вводятся вручную.

[21

18

27

23

27

25;

28

30

32

36

34

36;

40

46

52

54

46

48;

40

36

40

40

42

38;

40

41

38

36

34

36;

40

38

42

44

40

48]

После этого справа выбирается тип данных Targets. Нажатием кнопки Create создаются новые данные цели.

Последним шагом в создании является создание самой нейронной сети. В окне Create Network or Data необходимо перейти на вкладку Network и изменить имя будущей сети на «network». Тип сети по умолчанию Feed-forward backprop, в графах входные данные и цели в списке выбрать введенные прежде данные P и T. После нажатия Create создается новая нейронная сеть с выбранными входными параметрами.

Следующий этап — обучение и тренировка сети. Двойной щелчок левой кнопкой мыши по созданной нейронной сети network в окне менеджера Neural Network/Data Manager открывает окно работы с сетью.

На вкладке View представлена сама нейронная сеть. Переходом на вкладку Reinitialize Weights, где в графе Input Ranges выбираются входные данные P из списка Get from input. Затем последовательное нажатие кнопок Set Input Ranges и Initialize Weights позволяет нам инициализировать веса, необходимые для инициализации всей сети.

Следующий шаг — обучение сети. Переходом на вкладку Train открывается окно обучения, в котором на месте входных данных и целей выбираются P и T соответственно. Справа в графе результатов обучения (Training Results) необходимо поменять имя выходных данных (Outputs) и ошибок (Errors) на O и E соответственно. Затем, нажатием кнопки Train Network начнется обучение сети, процесс которого можно наблюдать в окне Neural Network Training. После окончания обучения окно можно закрыть.

После того, как обучение закончилось в окне менеджера Neural Network/Data Manager появились два типа данных: Output Data (O) и Error Data (E). Двойной щелчок по данным O открывает окно с выводом данных. Нажатием кнопки Export в окне менеджера, а затем повторным нажатием Export во вновь открывшемся окне можно перенести полученные данные в рабочую область Matlab, где они будут представлены в более презентабельном виде. Покажем скриншоты с рабочей области Matlab, на которых изображены таблица значений, которые были известны изначально, T (рис. 1), таблица полученных значений O (рис. 2) и таблица ошибок E (рис. 3).

Рис. 1. Таблица первичных данных, T

Рис 2. Таблица полученных данных, O

Рис. 3. Таблица ошибок, E

Таким образом, из таблиц можно рассчитать, что средняя ошибка сети составляет 1.95, что говорит о продуктивной работе системы.

После обучения сети можно переходить к прогнозированию данных. Возвращаясь к окну менеджера сетей и данных (Neural Network/Data Мanager), необходимо создать дополнительные входные данные нажатием кнопки New. Перейдя во вкладку Data, имя данных меняется, например, на P1, а значения задаются следующим образом:

[1 2 3 4 5 6; 8 9 10 11 12 13].

Значения 1–6 по-прежнему обозначают номера факультетов, а 8–13 код года с 2008 по 2013, поскольку в размерность массива изначально входит 6 столбцов, значит, для прогнозирования результатов на 2013 год необходимо составить массив из 6 столбцов, включающий в себя этот год.

Далее необходимо вернуться к окну работы с сетью Network. Во вкладке Simulate на месте входных значений выбирается массив P1, а у выходных значений Outputs меняется имя на forecast. После нажатия на кнопку Simulate Network можно вернуться в окно менеджера Neural Network/Data Manager и, нажатием на кнопку Export, скопировать выходной массив forecast в рабочую область Matlab. После получения таблицы в рабочей области, внимание обращается на последний столбец, который отвечает за прогнозирование на 2013 г.

Сравнивая данные, выданные системой, и реальные данные, можно убедиться, что нейронная сеть действительно делает прогнозы, приближенные к реальности (рис. 4).

    

а) данные сети          б) данные из источника

Рис. 4. Сравнение данных, полученных прогнозированием.

Таким образом, можно сделать вывод о том, что созданная нейронная сеть действительно делает прогнозы на будущий год. В сравнении с реальным количеством студентов-отличников за 2013 год средняя ошибка сети составляет 2,7. Но ее можно считать не столь существенной, поскольку закономерностей в реальном распределении студентов не наблюдается.

Представленная работа была применена в обучении студентов, обучающихся на направлении «Информационные системы и технологии», что помогло им ближе познакомиться с процессом создания и обучения нейронных сетей в системе Matlab, а также в разработке собственных приложений с использованием нейросетей.

Литература:

1.                  Семейкин В. Д., Скупченко А. В. Моделирование искусственных нейронных сетей в среде Matlab // Вестник Астраханского Государственного технического университета. Серия: управление, вычислительная техника и информатика. — 2009. — № 1. — С. 159–164.

2.                  Андреев В. О., Савиных Н. В. Интеллектуальные технологии, мягкие вычисления и программные средства их компьютерной реализации // Вестник компьютерных и информационных технологий. — 2006. — № 8. — С. 2–6.

3.                  Донской Д. А. Моделирование нейронных сетей в системе Matlab. — Пенза: ИИЦ ПГУ, 2006. — 155 с.

4.                  Буриченко М. Ю., Иванцев О. Б., Букреева О. В. Использование программного пакета Matlab для построения искусственных сетей нейронных сетей // Електронiка та системи управлiння. — 2011. — № 3 (29). — С. 120–123.

5.                  Андреев В. В., Порфирьева Н. Н., Прохоров А. М., Прохоров А. М. Исследования нейросетевой системы распознавания образов в среде Matlab // Вестник чувашского университета. — 2008. — № 2. — С. 113–120.

6.                  Ballabio, D. and M. Vasighi, 2012. A MATLAB toolbox for Self Organizing Maps and supervised neural network learning strategies. Chemometrics and Intelligent Laboratory Systems, 118: 24–32.

7.                  Neyamadpour, A. and S. Taib, 2009. Using artificial neural networks to invert 2D DC resistivity imaging data for high resistivity contrast regions: A MATLAB application. Computers & Geosciences, 35(11): 2268–2274.

8.                  Kuzmanovski, I. and M. Novic, 2008. Counter-propagation neural networks in Matlab. Chemometrics and Intelligent Laboratory Systems, 90(1): 84–91.

Обсуждение

Социальные комментарии Cackle