Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки.

Рассмотрим процесс обучения нейронной сети с использованием алгоритма обратного распространения ошибки (backpropagation).

Чтобы обучить нейронную сеть мы должны подготовить обучающие данные (примеры). В нашем случае, тренировочные данные состоят из входных сигналов (х1 и х2) и желаемого результата z.

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

Каждый шаг обучения начинается с воздействия входных сигналов из тренировочных примеров. После этого мы можем определить значения выходных сигналов для всех нейронов в каждом слое сети.
Иллюстрации ниже показывают, как сигнал распространяется по сети.
Символы W(Xm)n представляют вес связи между сетевым входом Xm и нейрона n во входном слое.

Символы y(n) представляют выходной сигнал нейрона n.
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru

Распространение сигнала через скрытый слой.
Символы Wmn представляют весовые множители связей между выходом нейрона m и входом нейрона n в следующем слое.
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Распространение сигнала через выходной слой:

Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru

На следующем шаге алгоритма, выходной сигнала сети y сравнивается с желаемым выходным сигналом z, который хранится в тренировочных данных. Разница между этими двумя сигналами называется ошибкой d выходного слоя сети:

Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru

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

Только в середине восьмидесятых годов был разработан алгоритм обратного распространения ошибки.

Идея заключается в распространении сигнала ошибки d (вычисленного в шаге обучения) обратно на все нейроны, чьи выходные сигналы были входящими для последнего нейрона.
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru

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


Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru

Когда вычисляется величина ошибки сигнала для каждого нейрона – можно скорректировать весовые коэффициенты каждого узла ввода(дендрита) нейрона.
В формулах ниже df(e)/de — является производной от функции активации нейрона (чьи весовые коэффициенты корректируются).

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


Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru
Обучение многослойных нейронных сетей прямого распространения методом обратного распространения ошибки. - student2.ru

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

Задание на практическую работу:

1. Взять готовые исходные данные и сгенерировать свои собственные данные. Использовать эти данные для обучения однослойной нейронной сети методом дельта-правила. Провести нормировку исходных данных. Построить график применяемой функции активации нейронов. Привести в отчете пример 10 итераций по обучению нейронной сети. Построить график изменения средней квадратической погрешности Гаусса в зависимости от номера итерации обучения. В отчете привести конечные значения весовых коэффициентов и схему нейронной сети.

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

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

Исходные данные для выполнения пункта практического задания представлены в таблице 1. P1…P9 – входные сигналы, Class – выходной сигнал (при выполнении задания по рекуррентной нейронной сети), I и F – выходные сигналы (при выполнении заданий про нейронные сети прямого распространения)

Таблица 1 – Исходные данные для обучения нейронных сетей (зеленым показаны входные данные, синим - выходные)

P1 P2 P3 P4 P5 P6 P7 P8 P9 Class I F
61,83917 85,40581 32,53909 16,67908 C1 5,68
74,67025 65,60821 65,60821 65,60821 65,60821 21,34831 10,94284 C1 5,67
83,82353 17,59962 83,82353 17,59962 C1 5,71
87,5063 66,32242 66,32242 59,01763 59,01763 17,0529 8,740554 C1 6,15
62,17237 93,74262 68,66588 93,74262 62,17237 15,98583 8,193625 C1 6,2
93,18416 58,7963 93,18416 65,86934 51,33745 51,33745 8,487654 C1 6,2
76,26662 71,37981 80,9558 76,26662 42,13079 36,56126 30,72224 C1 6,53
84,51589 80,30303 80,30303 51,66297 46,84035 11,73319 6,005174 C1 6,6
94,50069 64,33502 58,3295 14,61114 7,478141 C1 6,59
74,75682 94,61447 63,84342 58,03084 14,13998 7,236062 C2 7,08
88,9917 63,84342 20,71174 7,236062 C2 7,04
94,85722 83,9904 83,9904 62,35785 36,40384 29,22669 4,334091 C2 7,09
75,18224 45,80848 36,945 5,301524 C2 7,44
80,55303 97,20888 60,78151 50,59068 25,79514 21,64092 12,7353 C2 7,34
93,74789 75,74992 47,47219 13,83552 4,819683 C2 7,43
93,19464 82,19075 79,8471 58,92969 37,22271 11,27961 3,922797 C3 7,94
84,35646 88,48851 70,73039 49,77883 27,44633 21,11339 17,73654 C3 7,85
68,23958 76,36203 54,28224 32,82131 27,25163 6,774229 3,458946 C3 7,94
95,29426 95,29426 78,55338 39,55951 28,5955 6,908172 3,526297 C4 8,36
93,33677 63,57778 36,73154 30,6225 7,397861 3,77626 C4 8,34
84,14986 88,18444 70,29483 49,32387 27,08934 20,98204 17,73443 C4 8,29
94,93372 85,75686 54,7734 30,53129 25,21837 22,39235 6,381667 C5 8,68
93,77787 86,8922 53,71478 29,79441 24,92114 5,863157 C5 8,81
83,87897 76,76816 17,28548 14,87067 14,87067 14,87067 14,87067 C5 8,89
89,31014 22,02759 17,78044 17,78044 17,78044 17,78044 17,78044 C6 9,25
93,96382 83,67997 60,5921 55,09112 13,08854 10,82582 10,82582 C6 9,22
95,51199 81,99821 50,9802 42,89979 25,92298 20,8976 5,761767 C6 9,08
93,37507 65,59729 65,59729 58,68545 16,24935 8,320292 C1 6,05
81,20035 76,52251 76,52251 47,80229 42,43601 36,80494 6,443071 C1 6,1
92,97229 59,01763 92,97229 59,01763 51,3602 43,32494 43,32494 C1 6,07
50,86048 64,42774 68,62155 68,62155 42,35589 10,60986 C1 6,54
80,7889 93,88848 61,72389 55,10105 48,13733 7,913319 C1 6,52
93,88848 61,72389 55,10105 48,13733 48,13733 7,913319 C1 6,57
65,0494 94,0944 65,0494 58,66081 15,41164 7,881449 C1 6,98
94,0944 65,0494 58,66081 15,41164 7,881449 C2 7,07
88,55857 96,35224 75,5102 67,42729 41,84477 37,16857 5,511811 C2 7,1
96,69978 76,27363 68,9843 44,2967 10,04486 C3 7,62
81,4167 97,33284 65,50056 56,17169 32,89914 25,12095 4,441136 C3 7,59
76,54159 86,10601 83,06219 62,8444 34,79402 26,56783 4,69693 C2 7,49
71,30264 92,32778 75,31832 46,01698 36,84296 10,67581 C3 7,9
76,71669 87,85812 69,39518 47,7035 42,22374 21,48704 18,22419 C4 8,12
91,74936 86,16345 68,05664 46,78336 24,1387 17,87267 17,87267 C4 8,1
86,05111 86,05111 61,55163 35,59009 28,63541 8,047945 C4 8,44
83,5353 86,05111 61,55163 35,59009 28,63541 8,047945 C4 8,41
77,1996 95,42484 64,00201 37,07893 11,27451 3,921569 C4 8,46
88,58437 92,06774 69,02109 18,99138 5,340166 C6 9,06
85,78199 80,68118 9,261788 12,60342 12,60342 12,60342 10,16146 C6 9,25
94,7327 83,15093 69,97087 8,652862 2,629714 C6 9,24
92,1159 6,390386 6,390386 6,390386 6,390386 6,390386 6,390386 C7 9,62
93,16534 10,15994 19,37637 19,37637 19,37637 2,63491 C7 9,64
97,96775 90,99363 15,9655 2,55718 11,86352 2,55718 C7 9,59
90,72778 1,927318 C7 9,98
87,75323 75,43766 62,34997 5,863466 C7 10,17
95,74453 76,03687 62,11838 27,90899 17,35311 4,485887 C7 10,04
82,8667 51,04294 42,3536 25,61071 21,88511 6,503067 2,253207 C7 10,54
90,11834 56,32548 48,78614 46,71221 29,88898 8,100525 2,805905 C7 10,41
68,81205 17,46793 19,91076 19,91076 19,91076 19,91076 4,417178 C7 10,57
76,61274 33,39136 36,36084 22,71145 19,49621 5,621544 1,945525 C7 11,01
78,81811 45,67482 37,8248 36,07061 21,21478 17,27881 15,1957 C7 10,91

Наши рекомендации