Поздравляем с 1 мая!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 10(30)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6

Библиографическое описание:
Хачкиев В.В. ОБЗОР СОЗДАНИЯ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ В ПРИКЛАДНОМ ПРОГРАММНОМ ПАКЕТЕ MATLAB // Студенческий: электрон. научн. журн. 2018. № 10(30). URL: https://sibac.info/journal/student/30/108081 (дата обращения: 01.05.2024).

ОБЗОР СОЗДАНИЯ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ В ПРИКЛАДНОМ ПРОГРАММНОМ ПАКЕТЕ MATLAB

Хачкиев Владимир Владимирович

магистрант Факультет «Информатика и вычислительная техника» Донского государственного технического университета

РФ, г. Ростов-на-Дону

АННОТАЦИЯ

В данной статье рассматривается тема использования искусственных нейронных сетей с целью аппроксимации данных в прикладном программном пакете MATLAB. Подробно рассматривается работа с графическим интерфейсом программы, а также представлены характерные принципы обучения с использованием алгоритма Левенберга-Маркварта. Автором работы проанализирован результат создания нейронной сети и произведена проверка правильность решения проблемы путем тестирования.

Ключевые слова: искусственная нейронная сеть, обучающая выборка, MATLAB, алгоритм Левенберга-Маркварта, среднеквадратичная ошибка

 

Создания нейронной сети в пакете прикладных программ MATLAB

Обучение ИНС заключается в определении сетевой архитектуры и корректировке весовых отношений для конкретной задачи. Чтобы настроить вес ссылок в нейронной сети, используется образец обучения. По мере улучшения итерации весов соответственно улучшается функционирование сети.

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

В настоящее время при обучении нейронных сетей используют три правила: с учителем, без учителя (самообучение) и смешанная. Нейронная сеть располагает правильными ответами (выходами сети) на каждый входной пример в первом типе обучения. Настраиваются веса так, чтобы сеть производила ответы близкие к правильным ответам.

Графический интерфейс пользователя NNToolBox системы MATLAB позволяет выбирать структуры ИНС из обширного перечня и предоставляет множество алгоритмов обучения для каждого типа сети.

В данном примере мы будем прогнозировать биржевые индексы основываясь на результатах изменения за пять предыдущих дней (таблица 1).

Таблица 1.

Пример обучающей выборки

Входные данные

Выходы

1,2605

1,263

1,2641

1,2574

1,2584

1,2666

1,263

1,2641

1,2574

1,2584

1,2666

1,2569

1,2641

1,2574

1,2584

1,2666

1,2569

1,2506

1,2574

1,2584

1,2666

1,2569

1,2506

1,2586

1,2584

1,2666

1,2569

1,2506

1,2586

1,2574

1,2666

1,2569

1,2506

1,2586

1,2574

1,2548

1,2569

1,2506

1,2586

1,2574

1,2548

1,2666

1,2506

1,2586

1,2574

1,2548

1,2666

1,2789

 

В процессе обучения сети входные данные подаются на его входы, а значение, полученное на выходе, сравнивается с целевым (желаемым). Исходя из результата сравнения, вычисляются значения изменения весов и смещения, которые уменьшают это отклонение.

Теперь следует приступить к созданию нейронной сети. Для этого в рабочее окно MATLAB следует ввести команду nnstart затем выбрать опцию Fitting app, после чего откроется графический интерфейс для работы с нейронной сетью, где необходимо выбрать обучающие матрицы.

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

Следующий шаг заключается в распределении входных и целевых векторов в случайном порядке данные   на три набора в процентном соотношении. В нашем случае:

  • 70% векторов используются для обучения;
  • 15% векторов – для проверки достоверности результатов и чтобы избежать перетренировки сети;
  • 15% используются для независимого испытания сети

На следующей странице отображается структура сети (рисунок 1). Здесь используется однонаправленная нейронная сеть с обратным распространением ошибок и сигмоидальной функцией передачи в скрытом слое и линейной функцией передачи в выходном слое. Так же на данном этапе можно задать количество нейронов на скрытом уровне нейронной сети. Количество нейронов, используемых в скрытом слое зависит от сложности решаемой задачи, в нашем случае мы выбрали 50 нейронов на скрытом уровне.

 

Рисунок 1. Структура нейронной сети

 

Следующий шаг непосредственно само обучение сети. В рабочем окне Neural Network Toolbox нажимаем на кнопку Train, далее открывается окно обучения. Оно показывает процесс тренировки сети и позволяет его прервать, нажав кнопку «Stop Training».  В качестве алгоритма обучения данная нейронная сеть использует алгоритм Левенберга-Маркварта.

Алгоритм Левенберга-Марквардта предназначен для оптимизации параметров моделей нелинейной регрессии. Предполагается, что в качестве критерия оптимизации будет использоваться среднеквадратичная ошибка модели на обучающем образце. Алгоритм состоит в последовательном приближении заданных начальных значений параметров к желаемому локальному минимуму.

После завершения обучения в открывшемся окне Train станет доступен график, который демонстрирует нам сколько эпох длилось обучение сети и как менялась среднеквадратичная ошибка проверки достоверности результатов по ряду показателей (рисунок 2). В нашем случае обучение нейросети было остановлено на второй эпохе и среднеквадратичная ошибка проверки достоверности результатов была равна 0,00756.

 

.

Рисунок 2. График значений ошибок записи обучения в зависимости от количества учебных эпох

 

В этом примере, результат адекватен из следующих соображений:

  • Заключительная среднеквадратичная ошибка (СКО) мала.
  • Ошибка проверочного (Validation) и тестового (Test) наборов утверждения имеют подобные характеристики.
  • Переобучения не произошло, так как после точки остановки происходит лишь увеличение СКО проверочного набора до 7 эпохи.

После окончания процесса обучения, следует проверит правильность решения проблемы путем запуска и тестирования только что обученной сети. Для проверки будем использовать контрольный набор данных, которые не использовались для обучения искусственной нейронной сети. 

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

Таблица 2.

Проверка полученных результатов

Данные нейронной сети

Данные из источника

1.2510

1,2537

1.2507

1,2532

1.2659

1,2624

 

Рекомендуется изменить модель нейронной сети, если в результате последовательных шагов в обучении и контроле ошибка остается неприемлемо большой (можно увеличить количество нейронов на скрытом слое или сменить тип сети). Так же рекомендуется использовать специальный тестовый набор данных, который будет своеобразным образцом независимым от входных данных. Проводя тестирование на таком наборе, появляется возможность проверки надежности результатов обучения ИНС. Однако, такой набор можно использовать только один раз, так как его легко преобразовать в набор управления, который используется для настройки сети.

Заключение

Существуют такие задачи, в которых невозможно учесть все важные параметры для решения, однако используя искусственные нейронные сети такие задачи все же можно решить, поскольку ИНС в ходе обучения способны выявлять скрытые связи и закономерности, которые сложно обнаружить с помощью других математических методов.   Пакет прикладных программ MATLAB   представляет   широкие возможности для пошагового создания, обучения и имитационного моделирования нейронных сетей, а визуализацию топологии и процесса обучения нейронной сети. NNTool позволяет решать значительно более широкий круг задач, предоставляя возможность использовать сети разнообразных архитектур, с памятью и без, с обратными связями и без таковых. При этом следует иметь в виду, что успех во многом зависит от понимания поведения конструируемых сетей и их аппроксимационных возможностей.

 

Список литературы:

  1. Хайкин С. Нейронные сети: Полный курс. – Изд. 2-е. Пер. с англ. – М.: Изд. дом «Вильямс»,2006- 1101 c.
  2. Каллан Р. Основные концепции нейронных сетей. Пер. с англ. — М. : Издательский дом "Вильямc", 2001. — 287 с.
  3. Нейронные сети. MATLAB 6./Под общ. ред. В. Г. Потемкина. – М.: ДИАЛОГ-МИФИ, 2001. – 630 с.
  4. Нейронные сети. STATISTICA Neural Networks. – М.: Горячая линия – Телеком, 2000. – 392 с.
  5. Круглов В. В., Дли М. И., Голунов Р. Ю. Нечеткая логика и искусственные нейронные сети.–М.: Изд-во физ.-мат. лит., 2010- 452  c.
  6. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы.- М.: Горячая линия - Телеком, 2006. — 452 с.

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.