Нейронные сети

Автор работы: Пользователь скрыл имя, 20 Октября 2012 в 14:22, доклад

Описание работы

Нейронные сети (NeuralNetworks) - это модели биологических нейронных сетей мозга, в которых нейроны имитируются относительно простыми, часто однотипными, элементами (искусственными нейронами).

Файлы: 1 файл

доклад.docx

— 53.45 Кб (Скачать файл)

Нейронные сети (NeuralNetworks) - это модели биологических нейронных сетей мозга, в которых нейроны имитируются относительно простыми, часто однотипными, элементами (искусственными нейронами).

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

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

DataMining рассматривает следующие задачи,  решаемые с помощью нейронных сетей:

  • Классификация (обучение с учителем).
  • Прогнозирование.
  • Кластеризация (обучение без учителя).

Элементы нейронных сетей

Искусственный нейрон (формальный нейрон) - элемент искусственных  нейронных сетей, моделирующий некоторые  функции биологического нейрона.

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

Общий вид искусственного нейрона.

Рис. 1.  Искусственный нейрон

Нейрон характеризуется  текущим состоянием и обладает группой  синапсов - однонаправленных входных  связей, соединенных с выходами других нейронов.

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

Текущее состояние нейрона  определяется как взвешенная сумма  его входов:

Выход нейрона есть функция  его состояния:

y = f(s).

Архитектура нейронных сетей

Нейронные сети могут быть синхронные и асинхронные. В синхронных нейронных сетях в каждый момент времени свое состояние меняет лишь один нейрон.

В асинхронных - состояние меняется сразу у целой группы нейронов, как правило, у всего слоя.

Можно выделить две базовые архитектуры - слоистые и полносвязные сети

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

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

В рамках одного слоя данные обрабатываются параллельно, а в масштабах всей сети обработка ведется последовательно - от слоя к слою.

Слоистые сети могут быть однослойными и многослойными. Однослойная сеть - сеть, состоящая из одного слоя. Многослойная сеть - сеть, имеющая несколько слоев.

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

Входной слой сети реализует связь с входными данными, выходной - с выходными.

Таким образом, нейроны могут быть входными, выходными и скрытыми.

Входной слой организован из входных нейронов (inputneuron), которые получают данные и распространяют их на входы нейронов скрытого слоя сети.

Скрытый нейрон (hiddenneuron) - это нейрон, находящийся в скрытом слоенейронной сети.

Выходные нейроны (outputneuron), из которых организован выходной слой сети, выдает результаты работы нейронной сети.

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

Обучение нейронных сетей

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

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

Эпоха - одна итерация в процессе обучения, включающая предъявление всех примеров из обучающего множества и, возможно, проверку качества обучения на контрольном множестве.

Процесс обучения осуществляется на обучающей выборке.

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

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

Сложность может вызвать вопрос о количестве наблюдений в наборе данных.

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

Аналитик должен определить количество слоев в сети и количество нейронов в каждом слое.

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

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

Функция ошибок - это целевая функция, требующая минимизации в процессе управляемого обучения нейронной сети.

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

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

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

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

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

Один из вариантов борьбы с переобучением сети - деление обучающей выборки на два множества (обучающее и тестовое).

На обучающем множестве происходит обучение нейронной сети. На тестовом множестве осуществляется проверка построенной модели. Эти множества не должны пересекаться.

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

Описанный процесс проиллюстрирован на рисунке 2.

Рис. 2. Процесс обучений сети. Явление переобучения

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

Модели  нейронных сетей

Простейшая модель нейронной сети - однослойный персептрон. Однослойный персептрон (персептрон Розенблатта) - однослойная нейронная сеть, все нейроны которой имеют жесткую пороговую функцию активации.

Однослойный персептрон имеет простой алгоритм обучения и способен решать лишь самые простые задачи.

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

Первый из таких слоев называют входным, последний - выходным. Эти слои содержат так называемые вырожденные нейроны и иногда в количестве слоев не учитываются. Кроме входного и выходного слоев, в многослойном персептроне есть один или несколько промежуточных слоев, которые называют скрытыми.

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

Программное обеспечение для работы с нейронными сетями

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

Большинство нейропакетов включают следующую последовательность действий:

  • Создание сети (выбор пользователем параметров либо одобрение установленных по умолчанию).
  • Обучение сети.
  • Выдача пользователю решения.

Пакет Matlab

Пакет MATLAB (TheMathWorks) также предоставляет пользователям возможность работы с нейронными сетями. Входящий в стандартную поставку MATLAB "NeuralNetworkToolbox" предоставляет широкие возможности для работы с нейронными сетями всех типов.

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

 


Информация о работе Нейронные сети