Смекни!
smekni.com

Анализ методов прогнозирования и моделирование нейронных сетей для прогнозирования стоимости недвижимости (стр. 9 из 13)

– прогнозирование поведения рынка;

– распознавание речи;

– анализ изображений;

– экспертные системы и т.д.

4.3.1 Структура МП

Многослойными персептронами называют нейронные сети прямого распространения. В этой ИНС нейроны размещаются последовательными группами, называемыми слоями. Входной сигнал в таких сетях распространяется в прямом направлении, от слоя к слою. Многослойный персептрон в общем представлении состоит из следующих элементов:

– множества входных узлов, которые образуют входной слой;

– одного или нескольких скрытых слоев вычислительных нейронов;

– одного выходного слоя нейронов.

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

Рисунок 4.7 - Схема многослойной нейронной сети


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

Модель МП имеет следующие отличительные признаки:

1. Каждый нейрон сети имеет нелинейную функцию активации.

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

(4.7)

где

– параметр наклона сигмоидальной функции. Изменяя этот параметр, можно построить функции с различной крутизной.

Наличие нелинейности играет очень важную роль, так как в противном случае отображение «вход-выход» сети можно свести к однослойному персептрону.

2. Несколько скрытых слоев.

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

3. Высокая связность.

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

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

4.3.2 Обучение МП

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

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

Среди множества алгоритмов обучения с учителем наиболее успешным является алгоритм обратного распространения ошибки, который был предложен для обучения многослойной сети в 1986 г. Руммельхартом и Хинтоном. Многочисленные публикации о промышленных применениях многослойных сетей с этим алгоритмом обучения подтвердили его принципиальную работоспособность на практике. Его основная идея заключается в том, что изменение весов синапсов происходит с учетом локального градиента функции ошибки. Разница между реальными и правильными ответами нейронной сети, определяемыми на выходном слое, распространяется в обратном направлении (рисунок 4.8) - навстречу потоку сигналов. В итоге каждый нейрон способен определить вклад каждого своего веса в суммарную ошибку сети. Простейшее правило обучения соответствует методу наискорейшего спуска, то есть изменения синаптических весов пропорционально их вкладу в общую ошибку.

Рисунок 4.8 – Метод обратного распространения ошибки для многослойной полносвязной нейронной сети

При подобном обучении нейронной сети нет уверенности, что она обучилась наилучшим образом, поскольку всегда существует возможность попадания алгоритма в локальный минимум (рисунок 4.9). Для этого используются специальные приемы, позволяющие «выбить» найденное решение из локального экстремума. Если после нескольких таких действий нейронная сеть сходится к тому же решению, то можно сделать вывод о том, что найденное решение, скорее всего, оптимально.

Поправка к весовым коэффициентам:

(4.8)

где w - коэффициент синаптической связи, η - коэффициент скорости обучения сети, Е - функция суммарной ошибки сети.

Рисунок 4.9 – Метод градиентного спуска при минимизации ошибки сети. Попадание в локальный минимум

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

Алгоритм обратного распространения ошибки реализует градиентный метод минимизации выпуклого (обычного квадратичного) функционала ошибки в многослойных сетях прямого распространения, использующих модели нейронов с дифференцируемыми функциями активации. Применение сигмоидальных функций активации, являющихся монотонно возрастающими и имеющими отличные от нуля производные на всей области определения, обеспечивает правильное обучение и функционирование сети. Процесс обучения состоит и последовательном предъявлении сети обучающих пар (x(i), y*(i))

где x(i) и y*(i) – вектор входных и желаемых выходных cигналов сети соответственно, изучении реакции на них сети и коррекции в соответствии с реакцией весовых параметров (элементов весовой матрицы).

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

Для реализации алгоритма обратного распространения необходимо:

1. Выбрать из заданного обучающего множества очередную обучающую пару (x(i), y*(i)),

и подать на вход сети входной сигнал x(i).

2. Вычислить реакцию сети y(i).

3. Сравнить полученную реакцию y(i) с требуемой y*(i) и определить ошибку y*(i) – y(i).

4. Скорректировать веса так, чтобы ошибка была минимальной.

5. Шаги 1-4 повторить для всего множества обучающих пар (x(i), y*(i))

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

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