Тема3. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ НЕЙРОННЫМИ СЕТЯМИ




1. Структура нейронной сети

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

3. Активационная функция нейрона

4. Представление входных данных

5. Подготовка входных данных

6. Особенности обучения нейронной сети

7. Сети обратного распространения

8. Программноео беспечение

 

1. Структура нейронной сети

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

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

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

Искусственная нейронная сеть (ИНС) может рассматриваться как направленный граф с взвешенными связями, в котором искусственные нейроны являются узлами.

Матрицу весов связей обученной нейронной сети можно отнести к эвристическим моделям представления знаний.

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

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

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

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

По моделированию времени нейронные сети подразделяются на сети с непрерывным и дискретным временем.

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

В настоящее время нейронные сети применяются для решения многих неформализуемых или трудно формализуемых задач:

· распознавания и синтеза речи;

· распознавания аэрокосмических изображений;

· прогнозирования котировки ценных бумаг и курса валют;

· предупреждения мошенничества с кредитными карточками;

· оценки стоимости недвижимости;

· оценки финансового состояния предприятий и риска невозврата кредитов;

· обработки радиолокационных сигналов;

· контроля движения на скоростных автомагистралях и железных дорогах;

· диагностики в медицине;

· добычи знаний из больших объемов данных в бизнесе, финансах и научных исследованиях.

Нейронные сети можно использовать при следующих условиях:

1. Если задачу может решать человек.

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

3. Если изменения входных факторов приводит к изменению выходных.

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

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

2. Выбор модели ИНС.

3. Подготовка исходных данных для обучения ИНС.

4. Обучение ИНС.

5. Собственно решение задачи с помощью обученной ИНС

Кроме того, иногда нужен еще один этап – интерпретация решения, полученного нейронной сетью.

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

Рис. 1. Биологический нейрон

 

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

На рис.2 показана схема искусственного нейрона.

Рис. 2. Схема искусственного нейрона

Состояние нейрона определяется по формуле

,

где n — число входов нейрона,

xi — значение i-го входа нейрона,

wi — вес i-го синапса.

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

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

Обучить нейронную сеть — значит, сообщить ей, чего мы от нее добиваемся. Этот процесс очень похож на обучение ребенка алфавиту. Показав ребенку изображение буквы «А», мы спрашиваем его: «Какая это буква?» Если ответ неверен, мы сообщаем ребенку тот ответ, который мы хотели бы от него получить: «Это буква А». Ребенок запоминает этот пример вместе с верным ответом, то есть в его памяти происходят некоторые изменения в нужном направлении. Мы будем повторять процесс предъявления букв снова и снова до тех пор, когда все 33 буквы будут твердо запомнены. Такой процесс называют «обучение с учителем».

При обучении нейронной сети мы действуем совершенно аналогично. У нас имеется некоторая база данных, содержащая примеры (набор рукописных изображений букв). Предъявляя изображение буквы «А» на вход сети, мы получаем от нее некоторый ответ, не обязательно верный. Нам известен и верный (желаемый) ответ — в данном случае нам хотелось бы, чтобы на выходе с меткой «А» уровень сигнала был максимален. Обычно в качестве желаемого выхода в задаче классификации берут набор (1, 0, 0,...), где 1 стоит на выходе с меткой «А», а 0 — на всех остальных выходах. Вычисляя разность между желаемым ответом и реальным ответом сети, мы получаем 33 числа — вектор ошибки. Алгоритм обратного распространения ошибки — это набор формул, который позволяет по вектору ошибки вычислить требуемые поправки для весов сети. Одну и ту же букву (а также различные изображения одной и той же буквы) мы можем предъявлять сети много раз. В этом смысле обучение скорее напоминает повторение упражнений в спорте — тренировку.

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

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

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

3. Активационная функция нейрона

Активационная функция нейрона определяет нелинейное преобразование, осуществляемое нейроном.

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

1. Пороговая функция. На рис.3 а приведен ее график.

.

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

.

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

В общем виде сигмоидальная активационная функция описывается зависимостью:

где a — параметр, определяющий наклон функции.

Варьированием его могут быть получены разные виды сигмоида. Наиболее часто используется a =1. В случае бесконечно большого a сигмоидальная функция вырождается в пороговую.

 

Рис. 3. Типы активационных функций

а), г) пороговая; б) линейная; в) сигмоидальная;

д) тангенциальная; е) радиально-базиснаяактивационныефункции

Помимо перечисленных функций, изменяющихся в диапазоне [0, 1], вводятся также их аналоги с областью значений [–1, 1]. Так, например (рис. 3 г), пороговая функция может быть переопределена как

4. Во введенных Брумхеадом и Лоуе нейронных сетях в качестве активационной применяется функция Гаусса (рис. 3 е)

 

4. Представление входных данных

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

Качественные данные мы можем разделить на две группы: упорядоченные (ординальные) и неупорядоченные.

5. Подготовка входных данных

Данные для обучения нейронной сети (в используемой программе Neural Network Wizard 1.7) должны быть предоставлены в текстовом файле с разделителями (Tab или пробел). Количество примеров должно быть достаточно большим. При этом необходимо обеспечить, репрезентативность выборки и не противоречивость данных. Вся информация должна быть представлена в числовом виде. Причем, это касается всех данных. Если информация представляется в текстовом виде, то необходимо использовать какой либо метод, переводящий текстовую информацию в числа.

Можно добиться хороших результатов, если провести предобработку данных. Если текстовую информацию можно как-то ранжировать, то необходимо это учитывать. Например, если вы кодируете информацию о городах, то можно ранжировать по численности населения и задать соответствующую кодировку: Москва=1, Санкт-Петербург = 2, Нижний Новгород = 3 и т.д. Если же данные не могут быть упорядочены, то можно задать им произвольные номера. Вообще, лучше при кодировании входной информации увеличивать расстояние между объектами (Москва = 1, Санкт-Петербург = 11, Нижний Новгород = 21) и определять результат по расстоянию между значением, полученным из нейросети и кодом объекта. В данном случае, если нейронная сеть выдала результат 7.2, значит, что это Санкт-Петербург.

К подготовке данных для нейронной сети нужно подходить очень серьезно. От этого зависит 90 % успеха.

6. Особенности обучения нейронной сети

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

Во-первых, если подавать на вход противоречивые данные, то нейронная сеть может вообще никогда ничему не научиться. Она будет не в состоянии понять, почему в одном случае 2+2=4, а во втором 2+2=5. Необходимо избавиться от противоречивых данных в обучающей и тестовой выборке.

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

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

7. Сети обратного распространения

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

Нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон слоя i связан с каждым нейроном слоя i+1, то есть речь идет о полносвязной НС.

В общем случае задача обучения нейронной сети сводится к нахождению некой функциональной зависимости Y=F(X) где X — входной, а Y — выходной векторы. В общем случае такая задача, при ограниченном наборе входных данных имеет бесконечное множество решений. Для ограничения пространства поиска при обучении ставится задача минимизации целевой функции ошибки нейронной сети, которая находится по методу наименьших квадратов:

где yj — значение j-го выхода нейронной сети,

dj — целевое значение j-го выхода,

p — число нейронов в выходном слое.

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

8. Программноео беспечение

К настоящему времени разработано много программных пакетов, реализующих нейронные сети: Nestor, Cascade Correlation, NeuDisk, Mimenice, Nu Web, Brain Dana, BrainMaker, Neural Professional, HNet, Explorenet 3000, Neuro Solutions, NeuroShell, NeuroWorks, Prapagator, Matlab Toolbox, PathFinder, Neural Analyzer, NeuroPro, НейроОфис.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-09-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: