Искусственные нейронные сети
Возможности программ моделирования нейронных сетей. Виды нейросетей: персептроны, сети Кохонена, сети радиальных базисных функций. Генетический алгоритм, его применение для оптимизации нейросетей. Система моделирования нейронных сетей Trajan 2.0.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 13.10.2015 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Обозначение: wj(t) - вес связи от j-го элемента входного сигнала к нейрону в момент времени t.
2. Предъявление сети нового входного и желаемого выходного сигналов:
Входной сигнал x=(x0,x1...xN-1) предъявляется нейрону вместе с желаемым выходным сигналом d.
3. Вычисление выходного сигнала нейрона:
N-1
y(t) = f ( wi(t) xi(t) - b) (1)
i=0
4. Адаптация (настройка) значений весов:
wi(t+1) = wi (t) + r [d(t) - y (t)] xi(t), 0 i N-1
+1, if inputclass A
d(t) = (2)
-1, if inputclass B
где
r - шаг обучения (меньше 1),
d(t) - желаемый выходной сигнал.
Если сеть принимает правильное решение, синаптические веса не модифицируются.
5. Переход к шагу 2.
Тип входных сигналов для однослойного персептрона: бинарные или аналоговые (действительные). Размерности входа и выхода ограничены при программной реализации только возможностями вычислительной системы, на которой моделируется нейронная сеть, при аппаратной реализации - технологическими возможностями. Емкость сети совпадает с числом нейронов.
Области применения однослойного персептрона: распознавание образов, классификация.
В качестве недостатков этого типа сети можно обозначить то, что Примитивные разделяющие поверхности (гиперплоскости) дают возможность решать лишь самые простые задачи распознавания.
Преимущества: программные или аппаратные реализации модели очень просты; простой и быстрый алгоритм обучения.
3.2 Многослойный персептрон
В 1958 г. Фрэнк Розенблатт придумал нейронную сеть, названную персептроном. Персептрон был предназначен для классификации объектов. На этапе обучения «учитель» сообщает персептрону к какому классу принадлежит предъявленный объект. Обученный персептрон способен классифицировать объекты, в том числе не использовавшиеся при обучении, делая при этом очень мало ошибок.
Новый взлет теории нейронных сетей начался в 1983-1986 г. г. При этом важную роль сыграли работы группы PDP (Parallel Distributed Processing) . В них рассматривались нейронные сети, названные многослойными персептронами, которые оказались весьма эффективными для решения задач распознавания, управления и предсказания.
3.2.1 Архитектура сети
Наиболее простой и функциональной архитектурой обладают многослойные персептроны - сети прямого распространения, названные так потому что нейроны одного слоя могут быть соединены только с нейронами прилегающих слоев без обратных и рекуррентных связей. Обычно персептроны состоят из входного слоя, одного или более скрытых слоев (названных так, потому что они не имеют непосредственных связей с "внешним миром") и выходного слоя. При помощи такой сети данные преобразуются из n-мерного входного пространства в m-мерное выходное.
Такие сети должны быть обучены для выдачи желаемых результатов при предъявлении образцов на входной слой.
Рассмотрим функцию Y=f(X), которая ставит в соответствие m-мерному вектору X некоторый p-мерный вектор Y. Например, в задаче классификации вектор X- это классифицируемый объект, характеризуемый m признаками; вектор Y, состоящий из одной единицы и остальных нулей, является индикатором класса, к которому принадлежит вектор X (позиция единицы означает номер класса). Функция f ставит в соответствие каждому объекту тот класс, к которому он принадлежит.
Предположим, нам нужно найти функцию f. Воспользуемся методом обучения на примерах. Предположим, что имеется репрезентативная выборка векторов Xi, для которых известно значение функции Yi=f(Xi). Набор пар (Xi,Yi) будем называть обучающей выборкой. Рассмотрим теперь нейронную сеть, называемую многослойным персептроном, определив, как устроены элементы сети («нейроны»), какова архитектура связей между элементами и по каким правилам будет происходить обучение сети.
Элемент сети функционирует в дискретном времени и на основании поступивших сигналов формирует результирующий сигнал. Элемент имеет несколько входов, каждому из которых предписан определенный «вес». Сигналы, поступающие по входам, суммируются с учетом соответствующих весов, и суммарный сигнал сравнивается с порогом срабатывания. Если суммарный сигнал меньше порога, то сигнал на выходе элемента близок или равен нулю, в противном случае сигнал близок к единице.
Каждый элемент входного слоя имеет один вход (с весом 1), по которому поступает соответствующая компонента вектора X. Каждый элемент скрытого слоя получает сигналы ото всех элементов входного слоя. Тем самым, элемент скрытого слоя имеет m входов, связывающих его с элементами входного слоя. Связи от элементов входного слоя к элементам скрытого слоя характеризуются матрицей «весов» связей w1, компоненты которой определяют величину эффективности связи. Каждый элемент выходного слоя получает сигналы ото всех элементов скрытого слоя. Таким образом, подавая на входной слой сети вектор X, мы получаем вектор активности элементов скрытого слоя и затем вектор Y на элементах выходного слоя. Результат работы сети зависит от числовых значений весов связей между элементами.
Обучение сети состоит в правильном выборе весов связей между элементами. Выбираются такие веса связей, чтобы суммарная среднеквадратичная ошибка для элементов обучающей выборки была минимальной. Достичь этого можно разными методами . После обучения персептрона проводится процедура тестирования, позволяющая оценить результаты работы. Для этого обучающую выборку обычно делят на две части. Одна часть используется для обучения, а другая, для которой известен результат, задействована в процессе тестирования. Процент правильных результатов работы сети на этапе тестирования является показателем качества работы персептрона.
3.2.2 Алгоритм обратного распространения
Алгоритм обратного распространения ошибки (back propagation) относится к методу обучения с коррекцией по ошибке. Это метод обучения "с учителем", при котором "наставник" обучает сеть, также как ребенка обучают читать и писать. При обучении на входной слой многократно подаются образы сигналов, распознаванию которых нейросеть должна быть обучена, и корректируются веса нейронов для достижения желаемого выходного сигнала. Для улучшения качества распознавания образы, подаваемые на входной слой, могут быть слегка изменены (добавлен шум и т.п.).
Детально процедура обучения выглядит так:
Выборка входных данных (множество образов, классифицированных учителем) разбивается на две: обучающую и контролирующую последовательности. Обычно обучающая последовательность содержит больше образов, чем проверочная.
Производится инициализация всех весов, включая пороговые, небольшими случайными величинами (обычно в диапазоне [-1; +1]). Это определяет начальную точку на поверхности ошибок для метода градиентов, позиция может оказаться решающей для сходимости сети.
Производится прямой проход сети для первого образа из обучающей выборки от входного слоя через скрытые слои к выходному слою: каждый нейрон суммирует произведения входов на веса и выдает результат функции активации, примененной к этой сумме, на нейроны следующего уровня.
Вычисляется разность между действительным и желаемым выходным значением каждого нейрона выходного слоя. При из несовпадении имеет место ошибка в распознавании (классификации) образов.
Производится процедура обратного распространения этих ошибок по связям от выходных нейронов к входным и определяются ошибки для каждого нейрона.
Производится коррекция весов нейронов.
Вновь производится прямой проход сети уже для очередного образа обучающей выборки...
Шаги 3-7 повторяются до достижения некоторого критерия, например, достижения ошибкой установленного предела.
По завершению обучающей фазы сеть проверяется при помощи контролирующей последовательности, содержащей образы, не предъявленные ранее. (При этом не производится коррекция весов, а лишь вычисляется ошибка). В случае, если качество работы найдено удовлетворительным, сеть считается готовой к работе. В противном случае сеть подвергается повторному обучению, при котором возможно изменение некоторых параметров (начальные веса, количество нейронов в скрытых слоях, дополнительные обучающие образы и т.п.).
Очень важно не "переучить" сеть: если сеть была подвергнута слишком большому количеству обучающих циклов, она начинает "запоминать" обучающие образы и не может более распознавать другие, даже похожие на них.
Цель обучения нейросети состоит в достижении возможности обобщения. Это значит, что сеть выделяет особенности входных данных и начинает относить похожие образы к одному классу. Это также повышает устойчивость к помехам.
В 1986 году Румельхарт (Rumelhart) разработал математическую модель алгоритма обратного распространения ошибки или обобщенное дельта-правило. Рассмотрим алгоритм обратно распространения ошибки применительно к сетям прямого распространения сигналов (FeedForward), хотя этот алгоритм применим и к сетям с обратными связями. Алгоритм этот основан на минимизации ошибки между действительным и желаемым выходом. Рассмотрим алгоритм более подробно.
Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки НС является величина:
(1)
где - реальное выходное состояние нейрона j выходного слоя N нейронной сети при подаче на ее входы p-го образа; djp - идеальное (желаемое) выходное состояние этого нейрона.
Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам. Минимизация ведется методом градиентного спуска, что означает подстройку весовых коэффициентов следующим образом:
(2)
Здесь wij - весовой коэффициент синаптической связи, соединяющей i-ый нейрон слоя n-1 с j-ым нейроном слоя n, - коэффициент скорости обучения, 0<<1.
Как показано в [2],
(3)
Здесь под yj, как и раньше, подразумевается выход нейрона j, а под sj - взвешенная сумма его входных сигналов, то есть аргумент активационной функции. Так как множитель dyj/dsj является производной этой функции по ее аргументу, из этого следует, что производная активационной функция должна быть определена на всей оси абсцисс. В связи с этим функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых НС. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой. В случае гиперболического тангенса
(4)
Третий множитель sj/wij, очевидно, равен выходу нейрона предыдущего слоя yi(n-1).
Что касается первого множителя в (3), он легко раскладывается следующим образом[2]:
(5)
Здесь суммирование по k выполняется среди нейронов слоя n+1.
Введя новую переменную
(6)
мы получим рекурсивную формулу для расчетов величин j(n) слоя n из величин k(n+1) более старшего слоя n+1.
(7)
Для выходного же слоя
(8)
Теперь мы можем записать (2) в раскрытом виде:
(9)
Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, (9) дополняется значением изменения веса на предыдущей итерации
(10)
где - коэффициент инерционности, t - номер текущей итерации.
Таким образом, полный алгоритм обучения НС с помощью процедуры обратного распространения строится так:
Подать на входы сети один из возможных образов и в режиме обычного функционирования НС, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Напомним, что
(11)
где M - число нейронов в слое n-1 с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; yi(n-1)=xij(n) - i-ый вход нейрона j слоя n.
yj(n) = f(sj(n)), где f() - сигмоид (12)
yq(0)=Iq, (13)
где Iq - q-ая компонента вектора входного образа.
Рассчитать (N) для выходного слоя по формуле (8).
Рассчитать по формуле (9) или (10) изменения весов w(N) слоя N.
Рассчитать по формулам (7) и (9) (или (7) и (10)) соответственно (n) и w(n) для всех остальных слоев, n=N-1,...1.
Скорректировать все веса в НС
(14)
5. Если ошибка сети существенна, перейти на шаг 1. В противном случае - конец.
Сети на шаге 1 попеременно в случайном порядке предъявляются все тренировочные образы, чтобы сеть, образно говоря, не забывала одни по мере запоминания других.
Из выражения (9) следует, что когда выходное значение yi(n-1) стремится к нулю, эффективность обучения заметно снижается. При двоичных входных векторах в среднем половина весовых коэффициентов не будет корректироваться[3], поэтому область возможных значений выходов нейронов [0,1] желательно сдвинуть в пределы [-0.5,+0.5], что достигается простыми модификациями логистических функций. Например, сигмоид с экспонентой преобразуется к виду
(15)
Теперь коснемся вопроса емкости НС, то есть числа образов, предъявляемых на ее входы, которые она способна научиться распознавать. Для сетей с числом слоев больше двух, он остается открытым. Как показано в [4], для НС с двумя слоями, то есть выходным и одним скрытым слоем, детерминистская емкость сети Cd оценивается так:
Nw/Ny<Cd<Nw/Nylog(Nw/Ny) (16)
где Nw - число подстраиваемых весов, Ny - число нейронов в выходном слое.
Следует отметить, что данное выражение получено с учетом некоторых ограничений. Во-первых, число входов Nx и нейронов в скрытом слое Nh должно удовлетворять неравенству Nx+Nh>Ny. Во-вторых, Nw/Ny>1000. Однако вышеприведенная оценка выполнялась для сетей с активационными функциями нейронов в виде порога, а емкость сетей с гладкими активационными функциями, например - (15), обычно больше. Кроме того, фигурирующее в названии емкости прилагательное "детерминистский" означает, что полученная оценка емкости подходит абсолютно для всех возможных входных образов, которые могут быть представлены Nx входами. В действительности распределение входных образов, как правило, обладает некоторой регулярностью, что позволяет НС проводить обобщение и, таким образом, увеличивать реальную емкость. Так как распределение образов, в общем случае, заранее не известно, мы можем говорить о такой емкости только предположительно, но обычно она раза в два превышает емкость детерминистскую.
В продолжение разговора о емкости НС логично затронуть вопрос о требуемой мощности выходного слоя сети, выполняющего окончательную классификацию образов. Дело в том, что для разделения множества входных образов, например, по двум классам достаточно всего одного выхода. При этом каждый логический уровень - "1" и "0" - будет обозначать отдельный класс. На двух выходах можно закодировать уже 4 класса и так далее. Однако результаты работы сети, организованной таким образом, можно сказать - "под завязку", - не очень надежны. Для повышения достоверности классификации желательно ввести избыточность путем выделения каждому классу одного нейрона в выходном слое или, что еще лучше, нескольких, каждый из которых обучается определять принадлежность образа к классу со своей степенью достоверности, например: высокой, средней и низкой. Такие НС позволяют проводить классификацию входных образов, объединенных в нечеткие (размытые или пересекающиеся) множества. Это свойство приближает подобные НС к условиям реальной жизни.
Рассматриваемая НС имеет несколько "узких мест". Во-первых, в процессе обучения может возникнуть ситуация, когда большие положительные или отрицательные значения весовых коэффициентов сместят рабочую точку на сигмоидах многих нейронов в область насыщения. Малые величины производной от логистической функции приведут в соответствие с (7) и (8) к остановке обучения, что парализует НС. Во-вторых, применение метода градиентного спуска не гарантирует, что будет найден глобальный, а не локальный минимум целевой функции. Эта проблема связана еще с одной, а именно - с выбором величины скорости обучения. Доказательство сходимости обучения в процессе обратного распространения основано на производных, то есть приращения весов и, следовательно, скорость обучения должны быть бесконечно малыми, однако в этом случае обучение будет происходить неприемлемо медленно. С другой стороны, слишком большие коррекции весов могут привести к постоянной неустойчивости процесса обучения. Поэтому в качестве обычно выбирается число меньше 1, но не очень маленькое, например, 0.1, и оно, вообще говоря, может постепенно уменьшаться в процессе обучения. Кроме того, для исключения случайных попаданий в локальные минимумы иногда, после того как значения весовых коэффициентов застабилизируются, кратковременно сильно увеличивают, чтобы начать градиентный спуск из новой точки. Если повторение этой процедуры несколько раз приведет алгоритм в одно и то же состояние НС, можно более или менее уверенно сказать, что найден глобальный максимум, а не какой-то другой.
3.2.3 Модификации алгоритма обратного распространения и RPROP-алгоритма
Стандартный алгоритм обратного распространения, рассмотренный в предыдущем разделе, имеет несколько серьезных недостатков. Для правильного нахождения минимума поверхности ошибки коэффициент скорости обучения должен быть достаточно малым [0.05; 0.5], потому что больший коэффициент приведет к колебаниям вокруг минимума, препядствуя нахождению желаемого минимума. Вследствие этого сходимость может быть очень медленной. В зависимости от формы поверхности ошибок, сеть может оказаться в локальном минимуме или "застрять" на больших плоских участках.
Существует несколько модификаций для улучшения сходимости. Однако, ни одна из них не идеальна.
Добавление момента
Стандартное обратное распространение часто сходится очень медленно, продвигаясь по большим плоским участкам поверхности ошибок. Для ускорения сходимости, к изменению веса добавляется взвешенный момент:
wji(n+1) = wji(n)+Dwji(n)+aDwji(n-1)
где a--лежит в диапазоне [0; 1] (обычно a=0.9).
Эффект этой модификации заключается в ускорении прохождения обширных плоских участков поверхности ошибки.
"Разложение" веса
Иногда некоторые веса становятся слишком большими и уже в одиночку определяют поведение сети. Данная модификация позволяет в некоторой степени избежать этого:
wji(n+1) = wji(n)+Dwji(n)-gDwji(n-1)
где g--лежит в диапазоне [0; 1].
Вследствие этого среднее значение веса уменьшается.
Отложенное обучение
Стандартный алгоритм обратного распространения является типичным алгоритмом обучения "на лету". Это значит, что модификация весов происходит непосредственно после предъявления каждого образца. В случае отложенного обучения веса обновляются только после предьявления сети всей обучающей выборки. То есть все образцы обрабатываются сетью, ошибки вычисляются, производится обратное распространение, но изменения весов не производятся, они накапливаются и модификация делается после прохождения всей обучающей выборки:
wji(n+1) = wji(n)+SDwpji(n)
где p - номер образца.
Хотя этот метод не всегда обеспечивает быструю сходимость, у него есть еще одно преимущество: нет необходимости предъявлять образцы в случайном порядке, как в случае обучения "на лету".
RPROP-алгоритм
RPROP означает "resillent propagation" (упругое распространение) и был разработан Riedmiller и Braun (1993). В противоположность другим алгоритмам, основанным на методе градиентного спуска, RPROP не использует значение градианта, а лишь его знак. Изменение начинается с некоторой небольшой случайной величины, и затем увеличивается в 1.2 раза в случае совпадения направлений (знаков) текущего градиента с предыдущим, или уменьшается в 2 раза в случае противоположных направлений (знаков). Это изменение затем добавляется к весу, если градиент отрицателен (подход в положительном направлении к минимуму), или вычитается из веса, в случае положительного градиента (подход в отрицательном направлении к минимуму). Этот алгоритм обычно позволяет достичь более быстрой сходимости по сравнению с другими алгоритмами. Однако, в некоторых особых случаях, он может сойтись к неправильному локальному минимуму, из которого оказывается неспособен выйти и, следовательно, не может найти правильного решения. В таких случаях лучше использовать стандартное обратное распространение (с добавлением момента).
3.3 Применение многослойных персептронов
Надо сказать, что для очень многих практических задач удается достичь на удивление высокого качества работы сети (порядка 95% и выше). Существует ряд математических теорем , обосновывающих возможность применения многослойных персептронов для аппроксимации достаточно широкого класса функций f.
Проиллюстрируем применение многослойных персептронов на примере решения задачи сжатия информации. Такая необходимость часто возникает в различных приложениях, в частности, при распознавании образов существует этап предобработки, когда исходные данные представляются в компактной, удобной форме. Результаты этого этапа зачастую определяют успех в решении задачи распознавания.
Популярный метод сжатия информации был предложен в 1987 г. G.Cottrell, P.Munro, D.Zipser . Рассмотрим трехслойный персептрон, у которого число элементов входного и выходного слоев одинаково, а число элементов скрытого слоя значительно меньше. Предположим, что в результате обучения на примерах (на векторах обучающей выборки) персептрон может воспроизводить на выходе тот же самый вектор X, который подается на входной слой персептрона. Такой персептрон автоматически осуществляет сжатие информации: на элементах скрытого слоя возникает представление каждого вектора, которое значительно короче, чем длина вектора, подаваемого на вход. Предположим, что некоторый набор векторов нужно передавать по линии связи, предварительно сжимая информацию и тем самым уменьшая число каналов, необходимых для ее передачи. Поместим на одном конце линии входной и скрытый слои персептрона, а результат работы элементов скрытого слоя (короткие векторы) будем передавать по линии связи. На другом конце линии поместим копию скрытого слоя и выходной слой, тогда переданный короткий вектор с элементов скрытого слоя перейдет на элементы выходного слоя, где будет воспроизведен исходный вектор (декомпрессия).
3.3.1 Решение конкретных задач
При решении конкретной задачи, связанной с анализом или обработкой каких-либо данных, удобно предположить, что анализируемые данные являются векторами многомерного евклидова пространства, где они располагаются в соответствии с некоторой функцией распределения. Примерами таких задач могут служить измерения, полученные в ходе физических, биологических и других экспериментов, результаты медицинской диагностики, телеметрическая информация и многое другое. Каждый вектор мы будем называть объектом, а координаты вектора - признаками. При этом размерность пространства признаков (обозначим ее m) может достигать десятков тысяч. Например, величины яркостей в последовательно расположенных m пикселах изображения, или же m последовательных точек в звуковом потоке. Другими словами, будем считать, что данные возникают в процессе работы генератора случайных объектов, который в соответствии с функцией распределения порождает векторы заданной длины m.
Опыт решения реальных задач показывает, что объекты не заполняют все m- мерное пространство, а располагаются, как правило, на некоторой поверхности, имеющей невысокую размерность (десятки, сотни). Это означает, что существуют такие «обобщенные» признаки (комбинации исходных признаков), которые наиболее точно характеризуют исходные объекты.
Существует такой способ кодирования данных, называемый переходом к «естественным» координатам, который, в определенном смысле, можно считать оптимальным. Доказана единственность системы «естественных» координат, а также известно, что эти координаты обладают рядом важных свойств, например, признаки объектов в «естественных» координатах являются попарно независимыми. «Естественные» координаты могут использоваться для широкого класса вероятностных распределений.
Для нахождения «естественных» координат предлагается использовать многослойные персептроны определенного типа, которые называются репликативными (копирующими) нейронными сетями. Показано, что в процессе обучения адаптивной репликативной нейронной сети можно построить систему «естественных» координат, которая соответствует данным, использованным для обучения. Оказалось, что в результате перехода к системе «естественных» координат происходит не только значительное сокращение размерности задачи, но и фильтрация шума, который мог присутствовать в исходных данных.
3.3.2 Естественные координаты
Рассмотрим некий генератор данных в m-мерном пространстве. Предположим, что генерируемые им данные заполняют не все пространство, а лишь некоторое многообразие размерности n, где n << m. Многообразие, на котором расположены данные, можно представлять как сложную поверхность, которая в окрестности каждой своей точки похожа на поверхность n - мерной сферы. Утверждается, что на многообразии существует такая функция распределения, которая сколь угодно близка к исходной функции распределения генератора в смысле средних значений. Это утверждение позволяет вместо исходных данных, представляемых большим числом признаков, рассматривать генератор данных в пространстве небольшого числа измерений. В большинстве практических задач встречается именно такая ситуация.
Естественные координаты вводятся следующим образом. Рассмотрим взаимно-однозначное непрерывное отображение n-мерного многообразия в n-мерный единичный куб. Это означает, что каждый вектор X, лежащий на n-мерном многообразии, представляется вектором с n координатами, причем каждая координата является числом, равномерно распределенным между нулем и единицей.
Метод естественных координат является обобщением метода главных компонент. Естественные координаты точно так же зависят только от внутренней, заранее определенной, вероятностной структуры многообразия данных: равные объемы внутри единичного куба соответствуют множествам с равной вероятностью на многообразии данных, хотя их геометрические размеры могут значительно различаться. Однако в отличие от метода главных компонент, где используются декартовы координаты, естественные координаты могут отражать более сложную вероятностную структуру многообразия данных.
Естественные координаты - это единственная координатная система из независимых компонент, которая обеспечивает оптимальное кодирование информации, с учетом вероятностной структуры генератора данных.
3.3.3 Репликативные нейронные сети
Как построить естественные координаты для какого-либо генератора данных? Рассмотрим репликативную нейронную сеть - многослойный персептрон с тремя скрытыми слоями, число элементов входного и выходного слоев которого одинаково. Первый и третий скрытые слои состоят из обычных для многослойного персептрона элементов, с S-образной передаточной функцией. Размеры этих слоев подбираются в процессе обучения сети.
Для вектора длины m, подаваемого на входной слой, строится его отображение f в единичный куб. Для обученной сети это отображение реализует представление исходного вектора в системе естественных координат u, которое воспроизводится в среднем скрытом слое. Дальнейшее прохождение информации от среднего скрытого слоя до выходного слоя дает отображение g (обратное f) из единичного куба в исходное m-мерное пространство с заданной функцией распределения F(x).
Средний скрытый слой состоит из n элементов, где n - предполагаемая размерность многообразия данных. Передаточная функция элементов среднего скрытого слоя имеет вид наклонной или ступенчатой функции.
Цель обучения репликативной нейронной сети состоит в том, чтобы вектор, воспроизводимый выходным слоем сети, совпадал с вектором, поданным на входной слой. Передаточная функция элементов выходного слоя выбирается линейной. Обучение проводится на обучающей выборке, полученной с помощью генератора данных с функцией распределения F(x). Утверждается, что обученная репликативная нейронная сеть строит в среднем скрытом слое представление исходных векторов в естественных координатах. Таким образом, входной вектор длины m передается на средний слой и там представляется естественными координатами в n-мерном единичном кубе (n << m). Дальнейшая передача информации по сети от среднего скрытого слоя к выходному дает обратное отображение: вектор в естественных координатах переходит в m-мерный вектор, расположенный близко к входному.
Удаление шума. Репликативная сеть имеет еще одно интересное свойство: она способна удалять аддитивный шум, присутствующий в исходных данных. Предположим, что вектор данных состоит из двух слагаемых: информационной части вектора и шумового случайного компонента, выбираемого в каждой точке многообразия данных в соответствии с условной плотностью распределения.
Утверждается, что репликативная нейронная сеть приводит шумовой компонент к среднему значению, и результат, получаемый на выходе сети, является суммой двух слагаемых: информационной части вектора (такая же как и у входного вектора) и среднего значения шума в данной точке многообразия. Если среднее значение равно нулю, то выходной слой воспроизводит правильную информационную компоненту вектора, удаляя случайный шум. То же самое верно и для среднего скрытого слоя, где к вектору естественных координат добавляется среднее значение шума. Полученный результат позволяет объяснить известное наблюдение, что репликативные нейронные сети способны выполнять «чистку» анализируемых данных.
Определение размерности. До сих пор мы предполагали, что размерность многообразия данных n известна. К сожалению, такое бывает достаточно редко. Тем не менее, эту размерность можно оценить. Рассмотрим большое количество данных, произведенных генератором, и упорядочим их по возрастанию евклидова расстояния до некоторой фиксированной точки из этого же набора. Такое упорядочение данных позволяет оценить размерность многообразия вблизи зафиксированной точки.
Возьмем первые k векторов из упорядоченного набора, рассмотрим гауссовский ковариационный эллипсоид и определим количество не слишком коротких осей эллипсоида. Эту величину назовем локальной размерностью и нарисуем график ее зависимости от числа k. Обычно этот график линейно возрастает при увеличении k, но при некотором его значении наклон графика резко уменьшается и на графике образуется «колено». Соответствующую величину k будем рассматривать как аппроксимацию размерности в окрестности выбранной точки. Повторяя описанную процедуру определения локальной размерности для других точек, находим оценку размерности многообразия данных n, как наибольшее из значений локальной размерности. Найденная размерность n используется в качестве размерности системы естественных координат.
Если значение n, используемое для нахождения естественных координат, меньше, чем реальная размерность многообразия данных, то полученные естественные координаты будут образовывать решетку, заполняющую все пространство, подобно фракталу, похожему на ковер Серпинского. С другой стороны, если значение n больше, чем реальная размерность, то координатные объемы в естественной системе координат будут «сплюснуты» в такие множества, у которых по крайней мере один характерный размер много меньше других. Таким образом, чтобы найти правильное значение размерности, нужно маневрировать между Сциллой заполнения пространства (когда величина размерности выбирается слишком малой) и Харибдой сильной деформации координатной решетки в естественных координатах (когда величина размерности выбрана слишком большой).
Знание размерности многообразия данных и выбор правильного значения величины n может помочь избежать неэффективного использования системы естественных координат. Аналогичное замечание справедливо и для векторов «испорченных» шумом, где также нужно выбрать число элементов в среднем скрытом слое, после чего сеть может быть натренирована для очистки шума.
В заключение скажем несколько слов об обучении репликативных нейронных сетей и настройке архитектуры сети. Известно, что обучение многослойного персептрона с тремя скрытыми слоями - задача весьма сложная. Полутоновое изображение размером 192 х 256 пикселей (слева) было сжато, а затем, с помощью частично обученной репликативной нейронной сети возвращено к исходному размеру. Сначала изображение разделяется на непересекающиеся фрагменты размером 64 х 64 пиксела. Полученный 4096-мерный вектор, компоненты которого являются восьмибитовым числами, означающими яркость пиксела, подается на вход нейронной сети для обучения. Репликативная нейронная сеть имеет m=4096 элементов во входном и выходном слоях, n=40 элементов в среднем скрытом слое и по 410 элементов в первом и третьем скрытых слоях. Реализуемый такой сетью коэффициент сжатия - 102,4 : 1. Количество настраиваемых в процессе обучения весов связей равно 3 396 476. После реконструкции изображения границы между фрагментами были сглажены.
Один из подходов к обучению репликативной нейронной сети основан на том, что мы знаем, каким должен быть выходной сигнал у элементов среднего скрытого слоя. Это должны быть естественные координаты. Таким образом, можно использовать такой метод обучения, благодаря которому элементы среднего скрытого слоя более активно производят выходные сигналы, равномерно и плотно заполняющие внутреннюю часть n- мерного единичного куба, а также обладают свойствами естественных координат. Также очень важно использовать на этапе обучения ступенчатую функцию в качестве передаточной функции элементов среднего скрытого слоя.
3.3.4 Практическое использование репликативных нейронных сетей
Решающим аргументом в вопросе о практическом применении репликативных сетей является то обстоятельство, что подавляющее большинство генераторов данных сильно структурированы и могут быть смоделированы посредством многообразия данных с относительно малой размерностью n. Прежде всего это означает, что если может быть построена подходящая система естественных координат (не фрактальная и не «сплюснутая»), то эти координаты можно задействовать вместо исходных векторов данных. Такой подход заметно упрощает решение многих задач распознавания образов, управления, сжатия информации и т.д., поскольку вместо исходных векторов с большим числом признаков m, могут использоваться естественные координаты с малым числом компонент n (обычно m намного больше чем n).
Интересно отметить, что репликативные нейронные сети дают компактное и эффективное представление произвольных наборов векторов, имеющих сложное вероятностное распределение в пространстве, за счет того, что средний скрытый слой имеет меньше элементов, чем входной и выходной слои.
Анализ экспериментальных данных, полученных при изучении коры головного мозга, показывает, что задачи «правильного» кодирования информации, сжатия информации, перехода от одного способа представления информации к другому решаются нейронными сетями коры на различных этапах обработки сенсорных сигналов. Вполне возможно, что основная функция коры головного мозга - создание, поддержка, обучение и использование такого рода нейронных сетей. Если окажется, что аналоги репликативных нейронных сетей (для представления информации и фильтрации шума) действительно существуют в коре мозга, то изложенные здесь результаты можно будет сформулировать гораздо проще, что позволит разработать новые практические методы нейрокомпьютинга. Эта возможность несомненно заслуживает внимания исследователей.
Глава 4. Сети Кохонена
Сети Кохонена (Kohonen-Netze, self-organizing maps = SOM, Kohonen maps, Kohonen feature maps) или самоорганизующиеся карты предназначены для решения задач автоматической классификации, когда обучающая последовательность образов отсутствует. Соответственно отсутствует и фиксация ошибки, на минимизации которой основаны алгоритмы обучения (например, алгоритм обратного распространения ошибки - Backpropagation).
Сеть Кохонена - это двухслойная нейросеть, содержащая входной слой (слой входных нейронов) и слой Кохонена (слой активных нейронов). Слой Кохонена может быть:
одномерным,
двумерным, или
трехмерным.
В первом случае активные нейроны расположены в цепочку. Во втором случае они образуют двухмерную сетку (обычно в форме квадрата или прямоугольника), а в третьем случае они образуют трехмерную конструкцию.
В силу отсутствия обучающей последовательности образов, для каждого из которых известна от учителя принадлежность к тому или иному классу образов, определение весов нейронов слоя Кохонена (Referenz - Codebook Vektoren) основано на использовании алгоритмов классической классификации (кластеризации или самообучения).
4.1 Основной принцип работы сети Кохонена
Основной принцип работы сети Кохонена состоит в следующем.
На рис. 1 приведен пример топологической карты сети Кохонена, содержащей сходной слой и слой Кохонена. Нейроны входного слоя служат для ввода значений признаков распознаваемых образов. Активные нейроны слоя Кохонена предназначены для формирования областей (кластеров) различных классов образов. На этом рисунке показаны связи всех входных нейронов лишь с одним нейроном слоя Кохонена. Каждый нейрон слоя Кохонена также соединен с соседними нейронами.
Поясним основной принцип работы сети Кохонена.
Введем следующие обозначения:
____
wj = (wj1, wj2, …, wjn)T , j = 1,m (1)
- вектор весовых коэффициентов j-го нейрона слоя Кохонена,
x = (x1, x2, … , xn)T (2)
- входной вектор или вектор значений признаков некоторого образца.
На стадии обучения (точнее самообучения) сети входной вектор xc попарно сравнивается со всеми векторами wj всех нейронов слоя Кохонена. Вводится некоторая функция близости (например, в виде эвклидова расстояния). Активный нейрон с номером c слоя Кохонена, для которого значение функции близости d (x, wc) между входным вектором x, характеризующим некоторый образ, и вектором wc максимально, объявляется "победителем". При этом образ, характеризующийся вектором x, относится к классу, который представляется нейроном-"победителем". В результате осуществляется преобразование n-мерного входного пространства Rn на m-мерную сетку (слой Кохонена).
Следует еще раз подчеркнуть, что это отображение реализуется в результате рекуррентной (итеративной) процедуры самообучения (unsupervised learning, nicht ueberwachtes Lernen). Отличительная особенность этот отображения - формирование кластеров (cluster) или классов. По завершении процесса самообучения на стадии реального использования сети Кохонена неизвестные входные образы относятся к одному из выявленных кластеров (классов).
Возникает естественный вопрос: как возникает указанное отображение топологической карты? Для ответа на него рассмотрим алгоритм самообучения сетей Кохонена, полагая, что ее входной слой содержит n входных нейронов, а ее слой Кохонена - m активных нейронов.
Для определения расстояния между входным вектором x (2) и весовым вектором wj (1) j-го нейрона слоя Кохонена можно использовать различные функции близости (обычно эвклидово расстояние).
При этом "выигрывает" тот нейрон c с весовым вектором wc, который наиболее близок к входному вектору x:
|| x - wc || = min || x - wj || (3)
j
или при использовании функции index, определяющей номер минимального расстояния:
c = index min || x - wj|| (4)
j
При использовании скалярного произведения
n
xTwj = xi wij = netj = zj (5)
i=1
"выигрывает" нейрон с максимальным значением этого произведения.
На стадии самообучения сети Кохонена осуществляется коррекция весового вектора не только нейрона-"победителя", но и весовых векторов остальных активных нейронов слоя Кохонена, однако естественно в существенно меньшей степени - в зависимости от удаления от нейрона-"победителя". При этом форма и величина окрестности вокруг нейрона-"победителя", весовые коэффициенты нейронов которой также корректируются, в процессе обучения изменяются. Сначала начинают с очень большой области - она, в частности, может включать все нейроны слоя Кохонена.
Изменение весовых векторов осуществляется по правилу:
____
wj(t+1) = wj(t) + (t) dcj (t) [x(t) - wj (t)], j=1,m (6)
где wj(t) - значение весового вектора на t-м шаге самообучения сети, dcj(t) - функция близости между нейронами слоя Кохонена (neighborhood Kernel) и (t) - изменяемый во времени коэффициент коррекции. В качестве (t) обычно выбирается монотонно уменьшающаяся функция (0 < (t) < 1), т. е. алгоритм самообучения начинается сравнительно большими шагами адаптации и заканчивается относительно небольшими изменениями.
Обратим внимание, что в соответствии с (6) изменение того или иного весового вектора wj пропорционально расстоянию между входным вектором x и этим весовым вектором wj.
В качестве примера рассмотрим сеть Кохонена с одномерным слоем Кохонена (рис. 2). На рис. 2 отображено движение весовых векторов нейронов слоя Кохонена. К входному вектору x ближе всех расположен весовой вектор w5 для нейрона c=5. Этот весовой вектор применяется соответственно наиболее сильно: он в большей степени приближается к входному вектору x. На втором месте по степени близости находятся весовые векторы w4 и w6. Изменение их - второе по силе (степени). Весовые векторы w3 и w7 также изменяются - однако в существенно меньшей степени.
Нейроны 1, 2, 8 и 9 расположены вне окрестности вокруг нейрона-"победителя" c=5, поэтому их весовые векторы оставляются без изменения после показа сети образца, характеризующегося вектором x.
Приведем примеры функций близости (применительно к двумерному слою Кохонена). При этом расстояние между нейронами i и j в двумерном пространстве равно:
____________________
z = (ki1-kj1)2 + (ki2-kj2)2) , (7)
где ki1 и ki2 - координаты по оси x и оси y нейрона i, kj1 и kj2 - аналогично для нейрона j. При этом можно использовать следующие функции близости:
-z2
dGauss (z) = e (8)
-z2
dmexican-hat (z) = (1-z2) e (9)
cos (z*/2), для z<1
dcos (z) = (10)
0
Как отмечено выше, изменение весовых векторов wj осуществляется в направлении входного вектора x, и эти изменения осуществляются многократно. В процессе самообучения варьируется как коэффициент коррекции , так и радиус d, задающий окрестность вокруг нейрона-"победителя".
4.2 Сходимость алгоритма самообучения
При рассмотрении проблемы сходимости ограничимся одномерным случаем, когда имеется лишь один вход. Пусть [a, b] - область значений для входа (замкнутый интервал). Покажем, что алгоритм самообучения переводит вес x в середину интервала (рис. 3).
Пусть x1 - начальное значение веса одного активного нейрона слоя Кохонена. Это значение x1 выбирается случайно. При выборе значения x1 интервал [a, b] разбивается на 2 подинтервала [a, x1] и [x1, b]. Каждое изменение x определяется его расстоянием до a и до b:
dx/dt = (b-x)/2 + (a-x)/2 = ((a+b)/2 - x) (11)
Для изменения веса x в точке x1 следует
x1 = ((a+b)/2 - x1) (12)
Обозначим yi = xi - (a+b)/2, тогда соотношение (12) можно представить так:
x1 = - y1 (13)
Определим сейчас математическое ожидание для значения весового вектора x2 на следующем шаге алгоритма самообучения:
x2 = x1 + x1 = (a+b)/2 + y1 - y1 = (a+b)/2 + y1(1-) (14)
Аналогично можно определить и x3:
x3 = (a+b)/2 + y1(1-)2 (15)
или в общем случае:
xk = (a+b)/2 + y1(1-)k-1 (16)
При [0, 1] значение xk сходится к (a + b)/2.
Расширим рассмотренный одномерный случай и предположим, что одномерный слой Кохонена (линейка) содержит не один нейрон (как ранее), а m активных нейронов с весами x1, x2, … , xm. Предположим, что эти веса упорядочены:
0 < x1 < x2 < … < xm < b
и равномерно распределены в интервале [a, b]. В этом случае в процессе самообучения весовые векторы (коэффициенты) сходятся к значениям (рис. 4):
xi = a + (2i - 1) (b - q)/2m, i = 1, 2, … , m (17)
Обратим внимание, что точки (17) для весов xi, i = 1, 2, … , m определяют наиболее устойчивые позиции, ибо
dxi/dt = 0 (18)
В двумерном случае слой Кохонена содержит m x m активных нейронов, а областью определения для входов является декартово произведение [a,b]x[c,d], т. е. входной слой содержит 2 нейрона. В этом случае весовой вектор каждого нейрона слоя Кохонена имеет две составляющие - по числу входов. Каждый нейрон слоя Кохонена также характеризуется двумя координатами - по оси абсцисс и по оси ординат.
Подобно одномерному случаю можно показать, что координаты весовых векторов нейронов слоя Кохонена на оси абсцисс в процессе самообучения равномерно распределяются в интервале [a, b]:
a < w11 < w12 < …< w1m < b (19)
Аналогично для координат этих векторов по оси ординат:
c < w 21 < w22 < … < w2m < d (20)
В результате самообучения сети Кохонена весовые векторы нейронов слоя Кохонена равномерно распределяются во входном пространстве.
Глава 5. Сети радиальных базисных функций
Сети радиальных базисных функций (radial basis functions networks, RBF - Netze) представляют собой специальный тип нейросетей с прямыми связями. Основное их назначение - аппроксимация многомерных функций. Они предложены в 1985 г. Повеллом (Powell, 1985).
Их математическую основу составляет теория аппроксимации многомерных функций. Сколь угодно точная аппроксимация функций достигается при этом путем комбинации радиально симметричных функций.
RBF-сети обладают следующими свойствами:
Архитектура их - это архитектура сетей с прямыми связями 1-го порядка (FF-сети);
Быстрое обучение;
Отсутствие “патологий” сходимости. В отличие от Backpropagation-сетей не возникает проблемы локальных минимумов;
Более длительное время их подготовки и настройки из-за необходимости вычисления более сложных расчетов;
Хорошие аппроксиматоры функций.
5.1 Архитектура сетей
RBF-сети имеют только один слой скрытых нейронов (рис. 1).
Структура RBF-сетей содержит один входной слой, один скрытый слой нейронов, число которых обычно соответствует числу элементов обучающей последовательности, и один выходной слой из одного (на рис. 1 представлен именно этот случай) или нескольких нейронов. На рис. 1 единственный выходной нейрон выдает значение функции
y = R (X) = f (x1, x2, … ,xn).
Т.о. по своему построению RBF-сети - это двухслойные FF-сети 1-го порядка, причем оба слоя соединены весовой матрицей C.
Входной вектор X передается на нейроны скрытого слоя. При этом каждый нейрон скрытого слоя получает полную информацию о входном векторе X.
Каждый нейрон i скрытого слоя рассчитывает значение одномерной функции hi (например, “колокол” Гаусса):
hi (X) = exp [- (||X-Xi||)2 / 2bi2], (1)
где X - входной вектор, Xi - i-я опорная точка, bi - параметр рассеяния для h. В качестве метрики || . || обычно используется эвклидово расстояние:
_________________________
|| x-y || = (x1-y1)2 + (x2-y2)2 + … + (xn-yn)2, (2)
Радиальные базисные функции hi (1) выполняют предварительную обработку входных векторов, определяя их близость (подобие) к центрам Xi. Выходные значения hi(X) - это степени сходства между входным вектором X и отдельными центрами Xi. На основе значений hi(X) определяется взвешенная сумма.
На рис. 2 представлен принцип работы нейрона скрытого слоя.
Центры Xi определяются на основе обучающей последовательности и имеют ту же размерность n, что и входной вектор. Параметр bi определяется экспериментально. Рис. 2 иллюстрирует принцип работы нейрона скрытого слоя.
Из (1) следует: выход нейрона i скрытого слоя тем больше, чем ближе текущий вход X к центру Xi. Выход f RBF-сети определяется в виде взвешенной суммы
K
f(X) = y = ci hi (X), (3)
i=1
Нейроны выходного слоя образуют, следовательно, линейную комбинацию выходов нейронов скрытого слоя (hidden layer). Их функция активации или выхода - это радиальная базисная функция (1).
Одновременно RBF-сети просто могут быть обобщены на многомерные функции. В этом случае в выходном слое размещаются m нейронов, и значение на выходе j-го нейрона выходного слоя определяется так:
k k
yj = ( cij hi ) / ( hi ) (4)
i=1 i=1
В RBF-сетях в качестве опорных точек в простейшем случае могут быть использованы образы обучающей последовательности. Отметим два преимущества RBF-сетей по сравнению с другими нейросетями:
функция активации или выхода скрытых нейронов принимает большие значения лишь в тех случаях, когда входной образ находится вблизи от опорной точки. Для входов вне области, "покрытой" образами обучающей последовательности, сеть формирует лишь небольшие значения на своих выходах, причем для сетей с сигмоидными функциями активации или выхода (например, в многослойных персептронах) эти выходы могут быть вообще не предсказуемы,
простая структура RBF-сетей, содержащих только один слой скрытых нейронов, делает возможным другой (не итеративный) расчет весов сети. В этом их большое преимущество по сравнению с другими типами нейросетей, которые в большинстве случаев используют трудоемкие рекуррентные алгоритмы обучения. Заслуживает также внимания возможность инициализации RBF-сетей на основе прямого расчета весов с последующим их дообучением на основе алгоритмов обучения с поощрением (например, алгоритма с обратным распространением ошибки = Backpropagation).
Ниже сначала рассматриваются математические основы, затем архитектура сети, расширения в виде обобщенных RBF-сетей, специальные алгоритмы определения опорных точек и, наконец, некоторые приложения.
5.2 Интерполяция при помощи центральных функций
Теория RBF-сетей основана на математической теории аппроксимации функций многих переменных. Сначала мы рассмотрим проблему интерполяции одной функции с помощью радиально симметричных функций (называемых также центральными), а затем проблему аппроксимации, а в заключение - расширения в виде обобщенных RBF-функций и гипер-базисных функций.
Пусть f: Rn R - функция из Rn в R. Предположим, что эта функция задана своими значениями в N опорных точках (образы обучающей последовательности).
Подобные документы
Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Анализ применения нейронных сетей для прогнозирования ситуации и принятия решений на фондовом рынке с помощью программного пакета моделирования нейронных сетей Trajan 3.0. Преобразование первичных данных, таблиц. Эргономическая оценка программы.
дипломная работа [3,8 M], добавлен 27.06.2011Принципы организации и функционирования биологических нейронных сетей. Система соединенных и взаимодействующих между собой простых процессоров. Нейронные сети Маккалока и Питтса. Оценка качества кластеризации. Обучение многослойного персептрона.
курсовая работа [1,1 M], добавлен 06.12.2010Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.
реферат [162,9 K], добавлен 30.09.2013Принципы и система распознавание образов. Программное средство и пользовательский интерфейс. Теория нейронных сетей. Тривиальный алгоритм распознавания. Нейронные сети высокого порядка. Подготовка и нормализация данных. Самоорганизующиеся сети Кохонена.
курсовая работа [2,6 M], добавлен 29.04.2009Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.
реферат [158,2 K], добавлен 16.03.2011Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.
контрольная работа [135,5 K], добавлен 30.11.2015Искусственные нейронные сети как вид математических моделей, построенных по принципу организации и функционирования сетей нервных клеток мозга. Виды сетей: полносвязные, многослойные. Классификация и аппроксимация. Алгоритм обратного распространения.
реферат [270,4 K], добавлен 07.03.2009Определение и виды модели, ее отличие от понятия моделирования. Формула искусственного нейрона. Структура передачи сигнала между нейронами. Способность искусственных нейронных сетей к обучению и переобучению. Особенности их применения в финансовой сфере.
реферат [136,2 K], добавлен 25.04.2016Рождение искусственного интеллекта. История развития нейронных сетей, эволюционного программирования, нечеткой логики. Генетические алгоритмы, их применение. Искусственный интеллект, нейронные сети, эволюционное программирование и нечеткая логика сейчас.
реферат [78,9 K], добавлен 22.01.2015