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

Автор работы: Пользователь скрыл имя, 22 Ноября 2013 в 21:12, реферат

Краткое описание

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

Прикрепленные файлы: 1 файл

НЕЙРОННЫЕ СЕТИ.doc

— 279.00 Кб (Скачать документ)

НЕЙРОННЫЕ СЕТИ

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

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

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

Нейронные сети могут быть синхронные и асинхронные.

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

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

Слой - один или несколько нейронов, на входы которых подается один и тот же общий сигнал.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Переобучение нейронной сети

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

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

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

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

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

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

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

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

Рассмотрим  наиболее простые модели нейронных сетей: однослойный и многослойный персептрон.

Персептрон

Простейшая  модель нейронной сети - однослойный персептрон.

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

Однослойный персептрон имеет простой алгоритм обучения и способен решать лишь самые простые задачи. Эта модель вызвала к себе большой интерес в начале 1960-х годов и стала толчком к развитию искусственных нейронных сетей.

Классический  пример такой нейронной сети - однослойный трехнейронный персептрон - представлен на рис. 11.3.

 
Рис. 11.3.  Однослойный трехнейронный персептрон

Сеть, изображенная на рисунке, имеет n входов, на которые  поступают сигналы, идущие по синапсам на 3 нейрона. Эти три нейрона образуют единственный слой данной сети и выдают три выходных сигнала.

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

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

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

Пример двухслойного персептрона представлен на рис. 11.4.

 
Рис. 11.4.  Двухслойный перцептрон

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

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

Пример решения  задачи

Рассмотрим  решение задачи "Выдавать ли кредит клиенту" в аналитическом пакете Deductor.

В качестве обучающего набора данных выступает база данных, содержащая информацию о клиентах, в частности: Сумма кредита, Срок кредита, Цель кредитования, Возраст, Пол, Образование, Частная собственность, Квартира, Площадь квартиры. На основе этих данных необходимо построить модель, которая сможет дать ответ, входит ли Клиент, желающий получить кредит, в группу риска невозврата кредита, т.е. пользователь должен получить ответ на вопрос "Выдавать ли кредит?". Задача относится к группе задач классификации, т.е. обучения с учителем.

Данные для анализа находятся в файле credit.txt. Импортируем данные из файла при помощи мастера импорта. Запускаем мастер обработки

и выбираем метод обработки данных - нейронная сеть. Задаем назначения исходных столбцов данных. Выходной столбец в нашей задаче - "Давать кредит", все остальные - входные. Этот шаг проиллюстрирован на рис. 11.5.

Рис. 11.5.  Шаг "Настройка назначений столбцов"

На следующем  шаге мастер предлагает разбить исходное множество данных на обучающее и  тестовое. Способ разбиения исходного  множества данных по умолчанию задан "Случайно". Этот шаг представлен на рис. 11.6.

Рис. 11.6.  Шаг "Разбиение исходного набора данных на подмножества"

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

Рис. 11.7.  Шаг "Структура нейронной сети"

Далее выбираем алгоритм и параметры обучения нейронной сети. Этот шаг имеет название "Настройка процесса обучения нейронной сети", он представлен на рис. 11.8.

Рис. 11.8.  Шаг "Настройка процесса обучения нейронной сети"

На следующем  шаге настраиваем условия остановки  обучения. Будем считать пример распознанным, если ошибка меньше 0,005, и укажем условие  остановки обучения при достижении эпохи 10000.

На следующем  шаге запускаем процесс обучения и наблюдаем за изменением величины ошибки и процентом распознанных примеров в обучающем и тестовом множествах. В нашем случае мы видим, что на эпохе № 4536 в обучающем множестве распознано 83,10% примеров, а на тестовом - 85,71% примеров. Фрагмент этого процесса проиллюстрирован на рис. 11.9.

Рис. 11.9.  Шаг "Обучение нейронной сети"

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

На рис. 11.10 показана таблица сопряженности. По ее диагонали  расположены примеры, которые были правильно распознаны, т.е. 55 клиентов, которым можно выдавать кредит, и 89 клиентов, которым выдавать кредит не стоит. В остальных ячейках расположены те клиенты, которые были отнесены к другому классу (1 и 4). Можно считать, что правильно классифицированы практически все примеры - 96,64%.

 
Рис. 11.10.  Таблица сопряженности

Визуализатор "что-если" позволяет  провести эксперимент. Данные по потенциальному получателю кредита следует ввести в соответствующие поля, и построенная модель рассчитает значение поля "Давать кредит" - "Да" или "Нет", т.е. решит поставленную задачу.

 




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