Научная статья на тему 'Проектирование программного обеспечения с использованием нейросетевых технологий'

Проектирование программного обеспечения с использованием нейросетевых технологий Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
174
27
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / ИНТЕЛЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ / НЕЙРОСЕТИ / НЕЙРОМОДЕЛИ / SOFTWARE / INTELLECTUAL INFORMATION TECHNOLOGIES / NEURAL NETWORK TECHNOLOGY AND MODELS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Виноградова Екатерина Юрьевна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOFTWARE DEVELOPMENT WITH NEURAL NETWORK TECHNOLOGY

The article describes the key principles of software development based on use of neural network technology and models, and classifies the spheres of using them. The author determines a circle of problems which can be efficiently solved with the help of up-to-date intellectual tools.

Текст научной работы на тему «Проектирование программного обеспечения с использованием нейросетевых технологий»

о

тН

О

(N

УДК 004.9 ББК 32.973-018.2

ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙ*

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

Ключевые слова: программное обеспечение, интеллектуальные информационные технологии, нейросети, нейромодели.

Ye.Yu. Vinogradova

SOFTWARE DEVELOPMENT WITH NEURAL NETWORK TECHNOLOGY

The article describes the key principles of software development based on use of neural network technology and models, and classifies the spheres of using them. The author determines a circle of problems which can be efficiently solved with the help of up-to-date intellectual tools.

Keywords: software, intellectual information technologies, neural network technology and models.

SSI

KS г

MhSI

HSS

H5l

Eh< §

ОЙ"

%<s ^ 1

5s 1

S I

8s! ИН 25 о

ChO!

£s§||

E40 I Sffle

К

H

H

о

H

pq

CO

H

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

В связи с этим в последние несколько лет резко возрос интерес к использованию интеллектуальных технологий анализа и обработки данных. Одним из направлений в этой области является построение нейромоделей.

Области применения нейросетей

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

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

Классификация предприятий по степени их перспективности — это уже более эффективный способ использования нейросетей. При этом сеть также использует множество экономических показателей, сложным образом связанных между собой.

Нейросетевой подход особенно эффективен в задачах экспертной оценки по той причине, что он сочетает в себе способность компьютера к обработке чисел и способность мозга к обобщению и распознаванию. Нейросеть

* Работа выполнена при финансовой поддержке Российского гуманитарного научного фонда (грант № 09-03-83306а/У).

© ЕЮ. Виноградова, 2010

со

©

тН

О

«К1

2нё Яч >

МнЗ|

нйе

«31

На

ой-

^ 1

5к 1

^ Л £ ё§! ь Е

« ^ I

8Н! й§ о

ул* ЕнО а

*МЦ МО I £И4

нее

И

н

н

о

н

м

со

Н

позволяет обрабатывать огромное количество факторов (до нескольких тысяч), независимо от их наглядности.

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

Например, нейросеть на основе методики МГУА (метод группового учета аргументов) позволяет на основе обучающей выборки построить зависимость одного параметра от других в виде полинома. Такая сеть может не только мгновенно выучить таблицу умножения, но и найти сложные скрытые зависимости в данных (например, финансовых), которые не обнаруживаются стандартными статистическими методами.

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

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

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

Генетический алгоритм — это простая модель эволюции в природе, реализованная в виде компьютерной программы. В нем используются как аналог механизма генетического наследования, так и аналог естественного отбора. При этом сохраняется биологическая терминология в упрощенном виде.

Генетическое наследование моделируется следующим образом:

- хромосома Вектор (последовательность) из нулей и единиц;

- каждая позиция (бит) называется геном.

Индивидуум = генетический код Набор хромосом = вариант решения задачи.

Кроссовер — операция, при которой две хромосомы обмениваются своими частями. Мутация — случайное изменение одной или нескольких позиций в хромосоме.

Чтобы смоделировать эволюционный процесс, сгенерируем вначале случайную популяцию — несколько индивидуумов со случайным набором хромосом (числовых векторов). Генетический алгоритм имитирует эволюцию этой популяции как циклический процесс скрещивания индивидуумов и смены поколений.

Жизненный цикл популяции — это несколько случайных скрещиваний (посредством кроссовера) и мутаций, в результате которых к популяции добавляется какое-то количество новых индивидуумов. Отбор в генетическом алгоритме — это процесс формирования новой популяции из старой, после чего старая популяция погибает. После отбора к новой популяции опять применяются операции кроссовера и мутации, затем опять происходит отбор, и так далее.

%

СО Отбор в генетическом алгоритме тесно связан с принципами естествен-

ного отбора в природе следующим образом — приспособленность индивидуума — значение целевой функции на этом индивидууме. Выживание О наиболее приспособленных Популяция следующего поколения формиру-

ется в соответствии с целевой функцией. Чем приспособленнее индивиду-5^ ум, тем больше вероятность его участия в кроссовере, т.е. размножении.

Рассмотрим достоинства и недостатки стандартных и генетических методов на примере классической задачи коммивояжера (TSP — travelling salesman problem). Суть задачи состоит в том, чтобы найти кратчайший замкнутый путь обхода нескольких городов, заданных своими координатами. Оказывается, что уже для 30 городов поиск оптимального пути представляет собой сложную задачу, побудившую развитие различных новых методов (в том числе нейросетей и генетических алгоритмов).

Каждый вариант решения (для 30 городов) — это числовая строка, где на /-ом месте стоит номер j-ого по порядку обхода города. Таким образом, в этой задаче 30 параметров, причем не все комбинации значений допустимы. Естественно, первой идеей является полный перебор всех вариантов обхода.

Переборный метод наиболее прост по своей сути и тривиален в программировании. Для поиска оптимального решения (точки максимума целевой функции) требуется последовательно вычислить значения целевой функции во всех возможных точках, запоминая максимальное из них. Недостатком этого метода является большая вычислительная стоимость. В частности, в задаче коммивояжера потребуется просчитать длины более 1030 вариантов путей, что совершенно нереально. Однако, если перебор всех вариантов за разумное время возможен, то можно быть абсолютно уверенным в том, что найденное решение действительно оптимально.

Второй популярный способ основан на методе градиентного спуска. При этом вначале выбираются некоторые случайные значения параметров, а затем эти значения постепенно изменяют, добиваясь наиболь-; шей скорости роста целевой функции. Достигнув локального максиму-

ма, такой алгоритм останавливается, поэтому для поиска глобального ой \ оптимума потребуются дополнительные усилия.

Градиентные методы работают очень быстро, но не гарантируют оп-| тимальности найденного решения. Они идеальны для применения в так

og 1 называемых унимодальных задачах, где целевая функция имеет единс-

e ^ I твенный локальный максимум (он же — глобальный). Легко видеть, что

I задача коммивояжера унимодальной не является.

в Типичная практическая задача, как правило, мультимодальна и

йо 1 многомерна, то есть содержит много параметров. Для таких задач не сука! ществует ни одного универсального метода, который позволял бы достали точно быстро найти абсолютно точное решение.

Однако, комбинируя переборный и градиентный методы, можно на-23 деяться получить хотя бы приближенное решение, точность которого бу-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

дет возрастать при увеличении времени расчета. Генетический алгоритм представляет собой именно такой комбинированный метод. Механизмы скрещивания и мутации в каком-то смысле реализуют переборную часть 1^| метода, а отбор лучших решений — градиентный спуск. На рисунке по-

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

НИтак, если на некотором множестве задана сложная функция от нескольких переменных, то генетический алгоритм — это программа,

н

о

со

о

тН

О

(N

SS1

2нё Яч >

MhSI

HSS

«31

НА

ОЙ"

%<S ^ 1

5s 1

«Л*

ё§!

« V I

8s! Й§ о

ЕнО а

*МЦ МО I £И4

нее

К

н

н

о

н

PQ

со

Н

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

Выбор направления собственных исследований

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

При помощи нейромоделей и нейросетей можно решать следующие задачи управления на промышленном предприятии.

Задачи:

1. Анализ методов моделирования и оперативного управления производственными участками.

2. Анализ существующих компьютерных систем для оперативного управления производством.

3. Выбор метода моделирования и разработка математической модели конкретного производственного участка.

4. Выбор критерия эффективности работы производственного участка.

5. Выбор метода оптимизации план-графика работы производственного участка для конкретного технологического процесса с использованием модели.

6. Разработка и отладка программного обеспечения для конкретного производственного участка.

7. Проведение машинных экспериментов с моделью.

8. Анализ результатов моделирования.

9. Разработка структуры и функций компьютерной подсистемы оперативного управления участком.

10. Разработка требований к техническому и информационно-программному обеспечению подсистемы.

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

Информация об авторе

Виноградова Екатерина Юрьевна — кандидат экономических наук, начальник отдела автоматизации, Уральский государственный экономический университета, г. Екатеринбург, e-mail: katerina@usue.ru.

Author

Vinogradova Yekaterina Yuriyevna — PhD in Economics, Head of Automation Department, Ural State University of Economics, Yekaterinburg, e-mail: katerina@usue.ru.

i Надоели баннеры? Вы всегда можете отключить рекламу.