Реферат: Самообучающиеся системы

--PAGE_BREAK--2 Введение в нейронные сети



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

Область науки, занимающаяся построением и исследованием нейронных сетей, находится на стыке нейробиологии, математики, электроники и программирования и называется нейрокибернетикой или нейроматематикой (neurocomputing). Способность нейронной сети к обучению была впервые исследована Дж. Маккаллоком и У. Питсом. В 1943 г. вышла их работа «Логическое исчисление идей, относящихся к нервной деятельности», в которой была построена модель нейрона и сформулированы принципы построения искусственных нейронных сетей. В 1962 г. Ф. Розенблат (Корнельский университет) предложил модель нейронной сети, названную персептроном. В 70 – х годах японским ученым К. Фукушима была предложена другая модель – когнитрон, способная хорошо распознавать сложные образы (иероглифы и т.п.) независимо от поворота и изменения масштаба изображения. В 1982 г. американский биофизик Дж. Хопфилд предложил модель нейронной сети, названную его именем.

Нейронные сети наиболее эффективны в системах распознавания образов, ассоциативной памяти, прогнозирования и адаптивного управления и неэффективны в областях, требующих точных вычислений. На рынке появляются реализации нейроподобных систем в виде пакетов программ, нейроплат и нейрочипов. Исследованиями в области нейрокомпьютеров занимаются в Японии: фирмы NBC, Nihon Denki, Mitec, Fujitsu, Matsusita, Mitsubishi, Sony, Toshiba, Hitachi; в США: AT&T, IBM, Texas Instruments, Xerox.
3 Краткие сведения о нейроне



Нейрон – это нервная клетка, состоящая из тела и отростков, соединяющих ее с внешним миром.

<img width=«384» height=«475» src=«ref-1_1542798670-11356.coolpic» v:shapes="_x0000_i1025">

Рисунок 1 — Биологический нейрон
Биологический нейрон содержит следующие структурные единицы:

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

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

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

Цитоплазма— внутренняя среда клетки. Отличается концентрацией ионов K+, Na+, Ca++ и других веществ по сравнению с внеклеточной средой.

Аксон(а), один или ни одного у каждой клетки, – длинное, иногда больше метра, выходное нервное волокно клетки. Импульс генерируется в аксонном холмике (а.х.). Аксон обеспечивает проведение импульса и передачу воздействия на другие нейроны или мышечные волокна (мв). Ближе к концу аксон часто ветвится.

Синапс(с) – место контакта нервных волокон — передает возбуждение от клетки к клетке. Передача через синапс почти всегда однонаправленная. Различают пресинаптические и постсинаптические клетки — по направлению передачи импульса.

Шванновские клетки (шв.кл). Специфические клетки, почти целиком состоящие из миелина, органического изолирующего вещества. Плотно «обматывают» нервное волокно 250 слоями миелина. Неизолированные места нервного волокна между шванновскими клетками называются перехватами Ранвье (пР). За счет миелиновой изоляции скорость распространения нервных импульсов возрастает в 5 — 10 раз и уменьшаются затраты энергии на проведение импульсов. Миелинизированные волокна встречаются только у высших животных.

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

Клетки сильно связаны между собой. У нейрона может быть больше 1000 синапсов. Близкие по функциям клетки образуют скопления, шаровидные или параллельные слоистые. В мозгу выделены сотни скоплений. Кора головного мозга – тоже скопление. Толщина коры — 2 мм, площадь — около квадратного фута.

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

Импульсы по волокну передаются в виде скачков потенциала внутриклеточной среды по отношению к внешней среде, окружающей клетку. Скорость передачи – от 1 до 100 м/с. Для миелинизированных волокон скорость передачи примерно в 5 – 10 раз выше, чем для немиелинизированных.

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

При воздействии вспышек света постоянной длительности и различной интенсивности вырабатывались импульсы в соответствующем зрительном волокне. Было определено, что от интенсивности света зависит не амплитуда импульсов и их форма, а плотность и общее количество.
    продолжение
--PAGE_BREAK--4 Искусственный нейрон



Несмотря на большое разнообразие вариантов нейронных сетей, все они имеют общие черты. Так, все они, так же, как и мозг человека, состоят из большого числа связанных между собой однотипных элементов – нейронов, которые имитируют нейроны головного мозга. На рисунке показана схема нейрона.
<img width=«472» height=«248» src=«ref-1_1542810026-4855.coolpic» v:shapes="_x0000_i1026">

Рисунок 2 — Схема нейрона

Из рисунка видно, что искусственный нейрон, так же, как и живой, состоит из синапсов, связывающих входы нейрона с ядром; ядра нейрона, которое осуществляет обработку входных сигналов и аксона, который связывает нейрон с нейронами следующего слоя. Каждый синапс имеет вес, который определяет, насколько соответствующий вход нейрона влияет на его состояние. Состояние нейрона определяется по формуле:
S
=
å
n
xiwi
,
где

n– число входов нейрона;

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

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

Затем определяется значение аксона нейрона по формуле
Y = f(S),
где f – некоторая функция, которая называется активационной.

Самая простая интерпретация выработки сигнала в аксон – сравнение суммарного возбуждения с некоторым пороговым значением. Исходя из этой интерпретации, искусственный нейрон будет иметь схему, показанную на рисунке 3.
<img width=«387» height=«186» src=«ref-1_1542814881-2187.coolpic» v:shapes="_x0000_i1027">

Рисунок 3 — Элементы схемы нейрона

Наиболее часто в качестве активационной функции используется так называемый сигмоид, который имеет следующий вид:
<img width=«119» height=«56» src=«ref-1_1542817068-582.coolpic» v:shapes="_x0000_i1028">.
Основное достоинство этой функции в том, что она дифференцируема на всей оси абсцисс и имеет очень простую производную:


f
'(
s
) =
a

f
(
s
)(1 –
f
(
s
)).

При уменьшении параметра a сигмоид становится более пологим, вырождаясь в горизонтальную линию на уровне 0,5 приa=0. При увеличении a сигмоид все больше приближается к функции единичного скачка.
5 Искусственные нейронные сети. Персептрон



Нейроны в сети могут соединяться регулярным или случайным образом. Работа сети разделяется на обучение и тестирование.

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

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

Свойства нейронной сети зависят от следующих факторов:

-                   модели нейронов;

-                   структуры сети;

-                   алгоритма обучения;

-                   порядка предъявления сети эталонных образов;

-                   характера самих эталонов.

Искусственные нейронные сети могут иметь слоистую структуру.

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

Слой, с которого снимается реакция сети, называется эффекторным.

Слои, находящиеся между этими двумя, называются скрытыми.

Связи между слоями в направлении от рецепторного слоя к эффекторному, называются прямыми, а с противоположным направлением – обратными.

Самым распространенным видом сети стал многослойный персептрон.В многослойном персептроне (МСП) нет обратных связей. Такие модели называются сетями прямого распространения. Они не обладают внутренним состоянием и не позволяют без дополнительных приемов моделировать развитие динамических систем.

Функция активации «жесткая ступенька» используется в классическом формальном нейроне:
┌ 0, x < θ;

f(x) = ┤

└ 1, x ≥ θ.
Функция вычисляется двумя — тремя машинными инструкциями, поэтому нейроны с такой нелинейностью требуют малых вычислительных затрат. Эта функция чрезмерно упрощена и не позволяет моделировать схемы с непрерывными сигналами.

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

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

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


f(x) = ∑cifi(x).
За счет поочередного расчета линейных комбинаций и нелинейных преобразований достигается аппроксимация произвольной многомерной функции при соответствующем выборе параметров сети.

В многослойном персептроне нет обратных связей. Такие модели называются сетями прямого распространения. Они не обладают внутренним состоянием и не позволяют без дополнительных приемов моделировать развитие динамических систем.
    продолжение
--PAGE_BREAK--6 Проблема XOR


Наглядной и уже ставшей классической иллюстрацией ограниченности для однослойного персептрона является функция «исключающее ИЛИ». Эта булева функция от двух переменных принимает значение «истина», когда значения входных переменных различны, и «ложь» – в противном случае. Попробуем применить однослойную сеть, состоящую из одного нейрона, для построения этой функции.

Для сохранения симметрии будем сопоставим значению «ложь» сигнал нейросети, равный -1, а значению «истина» — равный 1. Значения входов и выходов дискретны, и есть смысл использовать жесткую ступеньку в качестве функции активации. Требуемая таблица истинности и соответствующие уравнения для весов и порогов для функции «исключающее или» имеет вид:
Таблица 1 — Система неравенств для построения функции XOR



Вычтем из первого уравнения второе, а из третьего — четвертое. Получим несовместную систему:
2w2 < 0;

2w2 > 0.

Хотя система условий в таблице — лишь система неравенств, пусть содержащая три переменных и четыре уравнения, она оказывается несовместной. Следовательно, функция XOR не реализуется на однослойном персептроне. Тот же результат можно получить графически. Возможные значения входов сети — на рисунке.
<img width=«239» height=«224» src=«ref-1_1542817650-1210.coolpic» v:shapes="_x0000_i1029">

Рисунок 4 — Графическое представление функции XOR
Один нейрон с двумя входами может сформировать решающую поверхность в виде прямой. Требуется провести ее так, чтобы отделить значения y = 1 от значений y = -1. Очевидно, что это невозможно.

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

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



Для построения булевых функций c помощью нейросетей есть завершенные математические методы [Мкртчян71]. Рассмотрим простейший пример и построим нейронную сеть без предварительного обучения.

ЗапишемфункциюXORввиде: y
=
x
1

XOR

x
2
= (
x
1
AND

NOT

x
2
)
OR
(
NOT

x
1
AND

x
2
)
. Алгоритмические обозначения операторов использованы для наглядности. Легко построить двухслойную сеть для реализации такой функции. Инверсию можно осуществить отрицательным весовым коэффициентом, а операции AND и OR — каждую отдельным нейроном с различными значениями порогов. Схема сети представлена на рисунке 6.
<img width=«351» height=«204» src=«ref-1_1542818860-2055.coolpic» v:shapes="_x0000_i1030">

Рисунок 5 — Двухслойная сеть, реализующая функцию XOR.
Таблица 2 -Таблица истинности для нейронной сети


    продолжение
--PAGE_BREAK--8 Нейронные сети обратного распространения



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

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

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

В общем случае задача обучения НС сводится к нахождению некой функциональной зависимости Y=F(X) где X – входной, а Y – выходной векторы. В общем случае такая задача, при ограниченном наборе входных данных, имеет бесконечное множество решений. Для ограничения пространства поиска при обучении ставится задача минимизации целевой функции ошибки НС, которая находится по методу наименьших квадратов:
<img width=«185» height=«59» src=«ref-1_1542820915-758.coolpic» v:shapes="_x0000_i1031">

где

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

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

k– число нейронов в выходном слое.

Обучение нейросети производится методом градиентного спуска, т. е. на каждой итерации изменение веса производится по формуле
<img width=«118» height=«53» src=«ref-1_1542821673-331.coolpic» v:shapes="_x0000_i1032">
где    ή – параметр, определяющий скорость обучения.

Для выходного слоя можно записать компоненты градиента по весам функции ошибки:
<img width=«163» height=«57» src=«ref-1_1542822004-851.coolpic» v:shapes="_x0000_i1033">
где

yj– значение выхода j-го нейрона;

Sj– взвешенная сумма входных сигналов j-го нейрона;

wij– i-тый вход j – того нейрона.

При этом производная взвешенной суммы по весам будет равна:
<img width=«77» height=«58» src=«ref-1_1542822855-411.coolpic» v:shapes="_x0000_i1034">
где    xi – значение i-го входа нейрона.

Для выходного слоя производная функции ошибки будет равна:
<img width=«142» height=«56» src=«ref-1_1542823266-678.coolpic» v:shapes="_x0000_i1035">,
где    p – номер обучающего образца.

Если в качестве активационной функции используется сигмоид, то <img width=«31» height=«49» src=«ref-1_1542823944-179.coolpic» v:shapes="_x0000_i1036"> будет определяться формулой:
<img width=«196» height=«57» src=«ref-1_1542824123-799.coolpic» v:shapes="_x0000_i1037">,




где    <img width=«112» height=«54» src=«ref-1_1542824922-590.coolpic» v:shapes="_x0000_i1038">, определяет текущее значение выходного сигнала.

Расчеты по вышеприведенным формулам позволяют выполнить коррекцию весов для нейронов последнего слоя. Для получения формул для других слоев можно воспользоваться формулой производной функции ошибки по входному сигналу (n – номер слоя):
<img width=«259» height=«71» src=«ref-1_1542825512-1594.coolpic» v:shapes="_x0000_i1039">.
Последний сомножитель тождественно совпадает с весовым коэффициентом i – того входа j – того нейрона:
<img width=«89» height=«54» src=«ref-1_1542827106-418.coolpic» v:shapes="_x0000_i1040">.
Но производная по входному значению <img width=«16» height=«31» src=«ref-1_1542827524-175.coolpic» v:shapes="_x0000_i1041">для последнего слоя тождественно совпадает с производной по соответствующему выходу для предыдущего слоя:
<img width=«129» height=«61» src=«ref-1_1542827699-676.coolpic» v:shapes="_x0000_i1042">.
Первый множитель формулы (7) определяется формулой:
<img width=«352» height=«62» src=«ref-1_1542828375-1800.coolpic» v:shapes="_x0000_i1043">,


где    k – число нейронов в слое n.

Вводится вспомогательная переменная
<img width=«123» height=«61» src=«ref-1_1542830175-733.coolpic» v:shapes="_x0000_i1044">
Тогда можно задать рекурсивную формулу для определения <img width=«37» height=«30» src=«ref-1_1542830908-238.coolpic» v:shapes="_x0000_i1045"> (n-1) — го слоя, если известны <img width=«28» height=«32» src=«ref-1_1542831146-225.coolpic» v:shapes="_x0000_i1046">следующего n — го слоя.
<img width=«195» height=«62» src=«ref-1_1542831371-941.coolpic» v:shapes="_x0000_i1047"> .
Нахождение же <img width=«28» height=«30» src=«ref-1_1542832312-135.coolpic» v:shapes="_x0000_i1048">для последнего слоя нейронной сети не представляет трудности, так как известен целевой вектор, т. е. вектор тех значений, которые должна выдавать нейронная сеть при данном наборе входных значений.
<img width=«259» height=«30» src=«ref-1_1542832447-776.coolpic» v:shapes="_x0000_i1049">.
Можно записать формулу для приращений весовых коэффициентов в раскрытом виде
<img width=«135» height=«27» src=«ref-1_1542833223-294.coolpic» v:shapes="_x0000_i1050">.
Полный алгоритм обучения нейросети складывается из следующих шагов:

1) подать на вход НС один из обучающих образов и определить значения выходов нейронов;

2) рассчитать функцию ошибки Е. Если значение ошибки не превышает допустимое, то выбрать следующий обучающий образец и перейти на шаг 1. Целесообразно организовать случайный выбор образцов из обучающей последовательности. Иначе – к следующему пункту;

3) рассчитать <img width=«28» height=«27» src=«ref-1_1542833517-117.coolpic» v:shapes="_x0000_i1051">для выходного слоя нейронной сети по формуле (12) и рассчитать изменения весов <img width=«39» height=«27» src=«ref-1_1542833634-154.coolpic» v:shapes="_x0000_i1052">выходного слоя n по формуле (13);

4) рассчитать по формулам (11) и (13) соответственно <img width=«28» height=«27» src=«ref-1_1542833517-117.coolpic» v:shapes="_x0000_i1053"> и <img width=«39» height=«27» src=«ref-1_1542833634-154.coolpic» v:shapes="_x0000_i1054"> для остальных слоев, n = N-1..1;

5) скорректировать все веса нейронной сети:
<img width=«188» height=«27» src=«ref-1_1542834059-410.coolpic» v:shapes="_x0000_i1055">        
6) перейти на шаг 1.
    продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике