Поддержка принятия решений в сфере экономики при помощи нейронной сети с алгоритмом обратного распространения ошибки
Проблема преобразования данных без использования конкретной формулы. Нейронные сети - системы искусственного интеллекта. Способность системы самостоятельно обучаться и действовать на основании предыдущего опыта, с каждым разом делая всё меньше ошибок.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 15.02.2019 |
Размер файла | 20,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ПОДДЕРЖКА ПРИНЯТИЯ РЕШЕНИЙ В СФЕРЕ ЭКОНОМИКИ ПРИ ПОМОЩИ НЕЙРОННОЙ СЕТИ С АЛГОРИТМОМ ОБРАТНОГО РАСПРОСТРАНЕНИЯ ОШИБКИ
Соколов В.А.
ФГАОУ ВО «Сибирский федеральный университет»
Красноярск, Россия
Многие сферы деятельности человека сталкиваются проблемой преобразования данных без использования конкретной формулы, либо использования малоэффективных алгоритмов, оптимизировать которые невозможно. Так врач с большим опытом, глядя на результаты анализов пациента способен поставить диагноз, хотя точной формулы для получения диагноза по данным анализам не существует, просто большой опыт в медицине позволил замечать, что с подобными результатами больной как правило страдает от той или иной болезни. Или формула существует, но в ней задействовано очень много вычислений, с которыми человек физически не способен справится за отведенное время. Конечно, во втором случае можно было бы составить программу для расчёта и классификации болезни, но если мы имеем действительно объёмные вычисления и большое количество данных (например, крупный медицинский центр), то эффективность таких решений вновь падает [1]. Другим примером таких вычислений может служить группа менеджеров, решающих, кого из постоянных покупателей включить в рекламную рассылку сообщений, а кого не стоит: они просматривают данные по сотням покупателей, о каждом из которых имеется некоторый фиксированный набор данных, состоящий как из численных (совокупная стоимость покупок за год, количество купленного товара той или иной категории и пр.), так и бинарных переменных (имеет детей или нет, курит или нет и пр.) - всего 27 данных по каждому покупателю.
Разумеется, такой процесс достаточно длителен. Однако есть в такой работе один аспект: со временем менеджер, основываясь на прошлом опыте, может приблизительно представлять итоговый результат, принимая решения значительно быстрее. В таком случае можно говорить о том, что он обучается на готовых результатах. Такой же возможностью обладает такая математическая модель, как нейронная сеть. В настоящее время программы, использующие данную модель, становятся всё более популярны, и в некоторой части это связано с развитием технологий обработки Больших данных. Давайте же разберемся с тем, что это такое.
Нейронные сети - одно из направлений в разработке систем искусственного интеллекта. Идея заключается в том, чтобы максимально близко смоделировать работу человеческой нервной системы - а именно, её способности к обучению и исправлению ошибок. В этом состоит главная особенность любой нейронной сети -- она способна самостоятельно обучаться и действовать на основании предыдущего опыта, с каждым разом делая всё меньше ошибок [2]. Наша нервная система состоит из нейронов, которые передают сигналы между собой и основывают когнитивные связи для того, чтобы сумма сигналов давала необходимый результат. В случае успешной связи, количество точек соприкосновения нейронов растет, повышая её значимость. В случае ложной связи организм пытается её уничтожить, либо максимально ослабить её влияние.
Алгоритм обратного распространения ошибок работает по тому же принципу. У нас есть массив объектов, называемых нейронами, связанных между собой и способными передавать сигнал далее по системе связей, называемых нейронной сетью. В роли сигналов выступают входные данные сети. В результате их объединения благодаря силе связей (в теории нейронных сетей сила связей называется весом) данные преобразуются и в результате работы сети получается выход - некоторый результат работы. Для предотвращения зацикливания и возможности связать все нейроны, вводится понятие слоёв - совокупность групп нейронов: каждый нейрон слоя связан со всеми нейронами следующего слоя. Но, как и нервная система человека, программа способна обучаться: программа на процессе обучения имеет некоторое количество данных, и верный результат для каждого из таких наборов данных. Получая результат работы по одной выборке данных, программа сравнивает свой результат с тем, который должен получится, и начинает корректировать веса связей между нейронами.
Как же происходит коррекция данных? Как следует из названия алгоритма, все нейроны предыдущего слоя получают значение ошибки и анализируют, какая «часть» этой ошибки произошла из-за данного нейрона согласно своему весу. Получая информацию о том, сколько процентов от ошибки появилось благодаря конкретной связи, программа вносит исправление веса данной связи и передаёт эту «часть» ошибки дальше, от конца к началу. Таким образом, происходит коррекция весов связей. Иными словами, если некоторая связь незначительна, не нужна или вносит «ненужную часть сигнала», то в результате работы алгоритма вес такой связи стремится к нулю. И напротив, если та или иная связь значима в процессе получения результата, её вес начинает расти.
Простыми словами, при помощи уже произведённых вычислений нейронная сеть способна усиливать или ослаблять связи своих нейронов, приводя результаты своих вычислений к наиболее верным.
Нейроны нашего мозга не производят модификацию сигнала, а просто передают его дальше. В программных решениях на основе нейронных сетей используются такие нейроны, и называются они перцептронами: получая сигналы предыдущего слоя они суммируют сигнал и передают его к следующему слою. Однако перцептроны могут использоваться лишь в узком диапазоне задач программирования: дело в том, что при большом количестве данных и немалом количестве нейронов может произойти такая ситуация, что значение входа нейрона превысит размер выделяемой памяти, произойдет переполнение переменной. Разумеется, такая ситуация завершится ошибкой выполнения программы. Поэтому как правило в нейронных сетях, получая совокупный вход, нейрон преобразовывает результаты при помощи активационной функции, и только потом передаёт его в следующий слой. Наиболее используемой является сигмоидальная функция активации:
, в которой x-совокупный вход нейрона, а y- вывод нейрона. Такая функция принимает значения в диапазоне (0;1). Так, при x стремящемся к ?? , функция стремится к 0, а при x стремящемся к +? , функция стремится к единице. Таким образом, программа запрещает сигналу принимать слишком большие значения [3].
Нейронные сети редко способны обучится настолько, чтобы давать абсолютно точный результат, однако если программа решает задачу классификации, а на выходе получается некоторый коэффициент, то округляя коэффициент, мы можем повысить точность результатов. Задачи принятия решений можно отнести к задачам классификации, так как одно из нескольких решений можно обозначить классом, а класс целочисленным значением, к которому округляется полученный коэффициент.
В процессе написания работы была разработана программа, позволяющая создать гибкую архитектуру нейронной сети с алгоритмом обратного распространения ошибки. Одной из задач, решаемых с помощью данной программы, стала задача с рекламной рассылкой, приводимая в самом начале работы в качестве примера длительно решаемой задачи. В качестве входных данных послужила выборка из ста пятидесяти кортежей данных по покупателям, с уже принятым решением касательно того, стоит ли включать человека в рассылку рекламы, или же нет. Для тестирования программы была использована подобная выборка с данными о пятидесяти покупателях.
Каждый кортеж данных состоял из двадцати восьми коэффициентов: первые 11 коэффициентов являлись числами с плавающей точкой и обозначали некоторые численные данные по покупателю: количество кг фруктов, купленных за год, коэффициент доверия к сети магазинов и т.д.; следующие 16 коэффициентов были представлены единицами или нулями и обозначали логические значения некоторых параметров: посещает магазин после 18:00 или нет, имеет ли на покупателя влияние рекламной рассылки ли нет и т.д.; последний коэффициент также представлен нулём или единицей и обозначает решение: единица - покупатель включён в рассылку, нуль -не включён.
Получая 27 параметров на вход сети, программа проводила их по системе связей нейронов и, сравнивая получившееся число с последним, двадцать восьмым параметром, корректировала веса связей между нейронами. В результате работы программы получались некоторые числа с плавающей точкой. На стадии обучения, получая логические значения в качестве результата программа пометила данную сеть как решение для задач классификации, содержащую 2 класса - нуль и единицу. Поэтому на этапе использования данные, полученные в результате прохода по сети округлялись до нуля или единицы в зависимости от величины полученных данных. Это позволило сравнить принятое программной решение с правильным и решить, подходит ли обученная сеть для решения подобных задач, или же нет.
В результате обучения сеть правильно классифицировала 68% данных. Конечно, результат не максимальный, так как для большей точности можно было бы усложнить архитектуру сети (добавить больше слоёв и нейронов в слоях), а также увеличить время обучения. Также, если бы выборка обучающих данных была больше, это позволило бы программе гораздо лучше обучиться.
Однако, результаты использования сети способны во много раз повысить эффективность рекламной рассылки, так как программа справляется с большим количеством данных за достаточно быстрое время, которое в тысячи раз превышает скорость работы менеджеров, а вычислительные возможности программы не являются требовательными, позволяя производить тысячи решений за считанные секунды. Таким образом, была достигнута высокая производительность в решении сложной задачи принятия экономического решения.
Список литературы
нейронная сеть интеллект ошибка
1. Каллан Р. Основные концепции нейронных сетей.: Пер. с англ. - Издательский дом «Вильямс», 2001. - 298 с.
2. Хабр, статья «Нейронные сети для начинающих. Часть 1» [Электронный ресурс] - Режим доступа: https://habr.com/post/312450/.
3. NeuroHive, статья «Функции активации нейросети: сигмоида, линейная, ступенчатая, ReLu, tahn» [Электронный ресурс] - Режим доступа:
https://neurohive.io/ru/osnovy-data-science/activation-functions/
Размещено на Allbest.ru
...Подобные документы
Характеристика моделей обучения. Общие сведения о нейроне. Искусственные нейронные сети, персептрон. Проблема XOR и пути ее решения. Нейронные сети обратного распространения. Подготовка входных и выходных данных. Нейронные сети Хопфилда и Хэмминга.
контрольная работа [1,4 M], добавлен 28.01.2011Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Рассмотрение способов применения и основных понятий нейронных сетей. Проектирование функциональной структуры автоматизированной системы построения нейросети обратного распространения ошибки, ее классов и интерфейсов. Описание периода "бета тестирования".
дипломная работа [3,0 M], добавлен 02.03.2010Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Преимущества нейронных сетей. Модели нейронов, представляющих собой единицу обработки информации в нейронной сети. Ее представление с помощью направленных графов. Понятие обратной связи (feedback). Основная задача и значение искусственного интеллекта.
реферат [1,2 M], добавлен 24.05.2015Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.
контрольная работа [229,5 K], добавлен 28.05.2010Искусственные нейронные сети как вид математических моделей, построенных по принципу организации и функционирования сетей нервных клеток мозга. Виды сетей: полносвязные, многослойные. Классификация и аппроксимация. Алгоритм обратного распространения.
реферат [270,4 K], добавлен 07.03.2009Рождение искусственного интеллекта. История развития нейронных сетей, эволюционного программирования, нечеткой логики. Генетические алгоритмы, их применение. Искусственный интеллект, нейронные сети, эволюционное программирование и нечеткая логика сейчас.
реферат [78,9 K], добавлен 22.01.2015Основы нейрокомпьютерных систем. Искусственные нейронные сети, их применение в системах управления. Алгоритм обратного распространения. Нейронные сети Хопфилда, Хэмминга. Современные направления развития нейрокомпьютерных технологий в России и за рубежом.
дипломная работа [962,4 K], добавлен 23.06.2012Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013История развития искусственного интеллекта. Экспертные системы: их типы, назначение и особенности, знания и их представление. Структура идеальной и инструменты построения экспертных систем. Управление системой продукции. Семантические сети и фреймы.
реферат [85,7 K], добавлен 20.12.2011Обучение нейронных сетей как мощного метода моделирования, позволяющего воспроизводить сложные зависимости. Реализация алгоритма обратного распространения ошибки на примере аппроксимации функции. Анализ алгоритма обратного распространения ошибки.
реферат [654,2 K], добавлен 09.06.2014Искусственные нейронные сети, строящиеся по принципам организации и функционирования их биологических аналогов. Элементарный преобразователь в сетях. Экспериментальный автопилотируемый гиперзвуковой самолет-разведчик LoFLYTE, использующий нейронные сети.
презентация [1,3 M], добавлен 23.09.2015Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Анализ существующих решений системы поддержки принятия решений для корпоративной сети. Многоагентная система. Разработка концептуальной модели. Структура базы знаний. Разработка модели многоагентной системы на базе сетей Петри. Методика тестирования.
дипломная работа [5,1 M], добавлен 19.01.2017Этап предварительной обработки данных, классификации, принятия решения. Изображения обучающих рукописных символов, тестового символа. Выход нейронной сети для тестового символа. График тренировки нейронной сети. Последовательность точек. Входные вектора.
статья [245,7 K], добавлен 29.09.2008