Магистр.диссертация (1194675), страница 5
Текст из файла (страница 5)
С тех пор интерес к нейронным сетям периодически то возрастал, то спадал, что обуславливалось новыми разработками в этой области, и сейчас нейронные сети являются одним из достаточно популярных инструментов анализа данных.
Нейронные сети могут быть применены практически к любой области деятельности, что сильно привлекает многих исследователей.
1.4.1 Принципы организации и работы нейронных сетей
Классификация образов. К известным приложениям относятся распознавание букв, распознавание речи, классификация сигнала электрокардиограммы, классификация клеток крови, обеспечение деятельности биометрических сканеров и т. п.
Кластеризация/категоризация. Кластеризация применяется для извлечения знаний, сжатия данных и исследования свойств данных.
Аппроксимация функций. Типичным примером является шумоподавление при приеме сигнала различной природы, вне зависимости от передаваемой информации.
Предсказание/прогноз. В качестве примера можно привести предсказание цен на фондовой бирже и прогноз погоды.
Оптимизация. Назначение штата работников по ряду умений и факторов являются классическими примерами задач оптимизации.
Память, адресуемая по содержанию (ассоциативная память). Ассоциативная память доступна по указанию заданного содержания. Содержимое памяти может быть вызвано даже по частичному входу или искаженному содержанию. Ассоциативная память может найти применение при создании мультимедийных информационных баз данных.
Управление. Примером является оптимальное управление двигателем, рулевое управление на кораблях, самолетах [25].
Как работает нейронная сеть
Даются наборы чисел (входные векторы), и для каждого из них нам сообщается значение функции, которое она имеет на данном наборе. Пример: значением является обменный курс некоторой валюты на следующий день, вход – уровень этого курса и некоторых других финансовых показателей за, скажем, последний месяц. Другой пример: входной вектор – характеристики заемщика банка (возраст фирмы, капитал, количество занятых, подвергался ли судимости директор и т. п.), результат – выполнил ли клиент условия возврата кредита. В обоих случаях речь идет пока об исторических данных. Затем нам предъявляют уже новые данные: значения финансовых показателей по сегодняшний день включительно или данные о новом клиенте, обратившемся с просьбой о предоставлении кредита. Результат теперь неизвестен, и мы должны его (хотя бы приближенно) найти: каким будет обменный курс завтра, перспективен ли для банка данный клиент.
Элементарная операция, которую нейронная сеть производит с данными, состоит в следующем: берется «взвешенная» сумма входных величин (т. е. сумма, взятая с некоторыми коэффициентами, которые называются весами). Затем полученная величина преобразуется с помощью нелинейной монотонной функции (функции активации) так, чтобы получившееся в результате значение лежало в интервале от 0 до 1. Описанная конструкция называется искусственным нейроном. Сеть состоит из многих таких нейронов, причем часть из них обрабатывает непосредственно входные данные (первый слой нейронов), другие – сигналы, полученные на выходе с нейронов первого слоя и т. д. (скрытые слои нейронов), и, наконец, есть единственный выходной нейрон, который и выдает нам результат. При этом веса, соответствующие различным нейронам (а иногда и параметры функций активации), могут меняться независимо друг от друга. Обрабатывая исторические (обучающие) данные и меняя при этом веса, сеть стремится наилучшим образом приспособить свой выходной сигнал к известному результату. Этот процесс называется обучением сети. После того как оно закончено, на вход сети можно подать новые данные, и она выдает свой прогноз [28].
Схема анализа данных с помощью нейронных сетей
Общая схема анализа данных с помощью нейронных сетей состоит из 5 этапов.
Существует 9 типов сетей, на этом этапе подбирается наиболее подходящий под задачу тип сети.
Экспериментальный подбор характеристик сети
После выбора типа необходимо подобрать структуру сети (количество нейронов, их веса, взаимосвязи и т. д.).
Экспериментальный подбор параметров обучения
Далее необходимо экспериментально определить параметры обучения: максимальное время обучения, количество данных, максимально допустимую ошибку и т. д.
По обучающей выборке проводится обучение сети. Предполагается, что обучающая выборка содержит в себе информацию, которая характеризует данные в целом.
Проводится анализ полученных результатов на данных, которые не входили в обучающую выборку. Осуществляется ручной контроль результатов работы нейронной сети.
Пример задач, которые ставятся перед нейронными сетями
В работе А. Горбаня [29] приводится следующий пример использования нейронных сетей: нейронная сеть обучалась предсказывать результаты выборов президента США по ряду экономических и политических показателей. Обученные сети были минимизированы по числу входных параметров и связей. Оказалось, что для надежного предсказания исхода выборов США достаточно знать ответы всего на пять вопросов, приведенных ниже порядке значимости:
– была ли серьезная конкуренция при выдвижении от правящей партии;
– отмечались ли во время правления существенные социальные волнения;
– был ли год выборов временем спада или депрессии;
– произвел ли правящий президент значительные изменения в политике;
– была ли в год выборов активна третья партия.
От использования остальных признаков нейронная сеть отказалась. Более того, эти пять «симптомов» политической ситуации в стране входят в распознающее правило двумя «синдромами». Пусть ответы на вопросы кодируются числами: +1 – «да» и 1 – «нет». Первый синдром есть сумма ответов на вопросы 1, 2, 5. Его естественно назвать синдромом политической нестабильности (конкуренция в своей партии, плюс социальные волнения, плюс дополнительная оппозиция). Чем он больше, тем хуже для правящей партии. Второй синдром – разность ответов на вопросы 4 и 3 (политическое новаторство минус экономическая депрессия). Его наличие означает, что политическое новаторство может, в принципе, уравновесить в глазах избирателей экономический спад. Результаты выборов определяются соотношением двух чисел – значений синдромов. Простая, но достаточно убедительная политологическая теория, чем-то напоминающая концепцию то ли Макиавелли, то ли Ленина («единство партии прежде всего, оно является важнейшим слагаемым политической стабильности») [30].
Этот пример показывает несколько достаточно важных вещей с точки зрения использования нейронных сетей:
– нейронные сети могут выделять значимые факторы;
– факторы могут быть сгруппированы в «синдром» (см. факторный анализ);
– исследование осмысленности работы нейронной сети остается за исследователем.
1.4.2 Структурные и функциональные особенности нейросетей
Нейронная сеть имитирует структуру и свойства организации нервной системы живых организмов: она состоит из большого числа соединённых между собой простых однотипных вычислительных элементов (нейронов) и, как система, обладает более гибким и сложным поведением по сравнению с возможностями каждого отдельного нейрона. Нейросеть получает на входе набор входных сигналов и выдает соответствующий им ответ (выходные сигналы), являющийся решением некоторой задачи.
Каждый нейрон выполняет небольшой объем работ − например, суммирует пришедшие на него сигналы с некоторыми весовыми коэффициентами и затем дополнительно нелинейно преобразует эту взвешенную сумму входных данных. Другим распространённым вариантом является нейрон-детектор, выдающий высокий выходной сигнал при малых отличиях своих входных сигналов от некоторого запомненного эталона, и низкий выходной сигнал при существенных отличиях.
Нейроны группируются в последовательность слоёв; входные сигналы поступают на первый слой и последовательно проходят через все слои до последнего, выходного слоя сети. Но бывают и рекуррентные структуры, обеспечивающие циркуляцию некоторого набора внутренних сигналов.
Процесс работы нейросети представляет собой движение потока внешних сенсорных данных (от некоторого «входа» к «выходу») и преобразование этих данных. В общем случае поток данных (сигналов) может формировать и перекрёстные, и обратные связи. Структура нейросети представлена на рисунке 2.1.
Рисунок 2.1 – Структура нейросети
Структура нейросети может быть адаптирована к задаче
В нейросеть могут быть включены дополнительные нейроны и даже слои нейронов, если исходно она была не способна обеспечить нужную точность решения. Из нейросети могут быть исключены лишние нейроны и связи между ними, если исходная сеть была избыточна. Нейросеть может сама выделить наиболее информативные для задачи входные сигналы, отбросить неинформативные, шумовые сигналы и в итоге повысить надежность решения. При этом коррекция размеров нейронной сети не приводит к полному забыванию ранее сформированных при обучении навыков, что ускоряет последующий процесс дообучения нейросети [31].
1.4.3 Обучение построенных моделей
Нейронные сети представляют собой параллельные и распределенные системы обработки информации, которые основаны на принципах работы человеческого мозга. Архитектура нейронных сетей состоит из сети элементов нелинейной обработки информации, которые обычно расположены в слоях и работают параллельно. Это многоуровневое устройство называется топологией нейронной сети. Элементы нелинейной обработки информации в сети называются нейронами, а взаимосвязи между этими нейронами в сети называются синапсами или весами. Для обучения нейронной сети должен использоваться алгоритм обучения, чтобы она могла обрабатывать информацию полезным и осмысленным образом.
Нейронные сети используются в самых разнообразных приложениях при классификации шаблонов, обработке языков, моделировании сложныхсистем, управлении, оптимизации ипрогнозировании. Нейронные сети также активно используются во многих областях биоинформатики, таких как предсказание последовательности ДНК, предсказание вторичной структуры белка, классификация профиля экспрессии генов и анализ экспрессии генов в образцах.
Чтобы построить искусственную сеть, нужно решить, какую сетевую архитектуру и алгоритм обучения следует использовать. Архитектура сети рассказывает о том, как используются нейроны и как они подключены в сети. Целью функции обучения является изменение веса входов для достижения желаемых результатов [32].
Основываясь на расположении внутренних узлов на сетевом уровне, архитектура нейронной сети может быть классифицирована на различные типы, а именно перцептрон, нейронные сети прямого распространения (feedforward neural networks, FF или FFNN) и нейронные сети обратного распространения (feedbackneural networks, FB или FBNN).
Простейшим типом нейронной сети является перцептрон (рисунок 1.4). Он состоит из одного слоя, в котором весы обучены для получения правильного результата при представлении входных данных. Перцептрон обычно используется для классификации классов, где классы линейно разделяются, независимо от типа функции активации.
Рисунок 1.4 – Пример перцептрона
Если проблема классификации не является линейно разделяемой, например, мы не можем ответить на поставленный вопрос «Да» или «Нет», то перцептрон не может классифицировать правильно. Поэтому перцептроны подходят только для простых задач классификации образцов. Результатом математического анализа ограничения перцептрона стал многослойный перцептрон [33].
Многослойный перцептрон расширяет базовую однослойную сеть за счет наличия одного или нескольких скрытых слоев. В многослойной структуре входной слой принимает информацию из внешней среды и передает информацию всем нейронам в первом скрытом слое. Выходы из первого скрытого слоя перераспределяются на следующий скрытый слой и так далее. Выходной уровень принимает выход от последнего скрытого слоя и генерирует окончательный результат всей сети.
FFNN- сеть нейронов, у которых сигналы, идут только от входного слоя к выходному уровню. Напротив, FBNN позволяют передавать сигналы в обоих направлениях (от входного слоя до выходного и наоборот). Примером такой сети - рекуррентная нейроннаясеть, RNN (рисунок 1.5).
Рисунок 1.5 – Принципиальнаясхема RNN
Одна важная функция человеческого мозга – собирать и переиспользовать воспоминания, кратковременные и долгосрочные. Есть гипотеза, что человеческая память ассоциативна, то есть люди распознают образец ввода, сравнивая его с шаблонами, хранящимися в их памяти. Если шаблон ввода является зашумленным (например, мы не можем точно определить породу собаки), ассоциативная память возвращает ближайший сохраненный шаблон. Другими словами, если поврежденное изображение передается в сеть, то сеть автоматически восстановит идеальное изображение [34].
Рекуррентная нейронная сеть, это вариация многослойного персептрона, которая способна эмулировать ассоциативные характеристики. Это модификация многослойных нейронных сетей, прошедших обучение по алгоритму обратного распространения ошибки; то есть возвратная нейронная сеть имеет петли обратной связи от своих выходов к своим входам. Как и в обучении с помощью алгоритма обратного распространения ошибки, обратные связи используются для корректировки веса входных сигналов. Затем результат вычисляется снова. Алгоритм повторяется несколько раз, пока результат работы сети не становится приемлемым.
Как и в других методах машинного обучения, обучение в нейронных сетях можно разделить на два типа: с учителем и без учителя. В обучении с учителем искусственная нейронная сеть обучается внешним учителем, который представляет входы, веса и желаемые результаты в сеть. Веса случайным образом инициализируются на входы сети для вычисления фактических выходов. Фактические выходы сравниваются с желаемыми выходами. Веса затем настраиваются сетью для получения фактических выходов, близких к желаемым выходам. Вес входа непрерывно изменяется до тех пор, пока не будут получены приемлемые результаты.
Напротив, обучение без учителя, также известное как самообучение, которое не требует внешнего учителя. На этапе подготовки нейронная сеть получает ряд входных данных, обнаруживает закономерности во входах, и учится организовывать себя. Обладая такими замечательными способностями, как нелинейность, адаптивное обучение, самоорганизация, работа в режиме реального времени, масштабируемость и отказоустойчивость посредством избыточного кодирования информации, нейронные сети способны решать сложные задачи, которые не могут сделать люди и другие компьютерные на тех же наборах данных.
Однако, нейронные сети имеют некоторые ограничения. Например, в сложных нейронных сетевых моделях отсутствуют объяснения для интерпретации решения для каждого узла сети. Эта проблема возникает из возможностей адаптивного обучения, когда сеть учится самостоятельно решать проблему, и поэтому ее операции не могут быть интерпретированы.
















