Notebook "нейронные сети" Глава 2
Вид материала | Документы |
С379. msereg |
- Программа дисциплины «Теория нечетких множеств и нейронные сети» Для специальности, 567.45kb.
- Самостоятельная работа по прогнозированию экономических процессов на тему: нейронные, 148.65kb.
- Лекция 2 Лекция «Нейронные сети» Начнем с определения: Искусственные нейронные сети, 131.57kb.
- "Нейроновые сети ", 374.46kb.
- Нейронные сети как механизм представления лексико-семантической информации, 376.06kb.
- Программа, 39.37kb.
- Нейронные сети: алгоритм обратного распространения, 336.15kb.
- Предупреждение. Спасение. Помощь, 3059.76kb.
- Нейрокомпьютерная обработка сигналов и изображений, 184.71kb.
- Нейронные сети: основы теории / А. И. Галушкин. М. Горячая линия Телеком, 2010., 585.42kb.
С377. SSE
Получим информацию о данной функции и ее производной:
sse('name'), sse('deriv'), sse('pnames')
ans =
Sum squared error
ans =
dsse
ans =
{}
Сформируем двухслойную нейронную сеть прямой передачи с одноэлементным входом, изменяющимся в диапазоне [–10 10], которая имеет 4 скрытых нейрона с функцией активации tansig и 1 нейрон на выходе с функцией активации purelin :
net = newff([-10 10],[4 1],{'tansig','purelin'});
Зададим векторы входа и целей
P = [-10 -5 0 5 10]; T = [ 0 0 1 1 1];
Промоделируем исходную нейронную сеть и вычислим ее ошибку
Y = sim(net, P); E = T-Y
E =
Columns 1 through 4
-1.5958 -1.1879 1.3390 1.7340
Column 5
2.6642
Вычислим функционал качества sse
net.performFcn = 'sse'; perf = sse(E)
perf =
15.8554
Теперь вычислим градиенты функционала качества.
Градиент функционала по вектору ошибки вычисляется следующим образом
dPerf_dE = dsse('e',E)
dPerf_dE =
Columns 1 through 4
-3.1916 -2.3757 2.6779 3.4681
Column 5
5.3284
Для вычислений градиента функционала по вектору настраиваемых параметров сформируем этот вектор, который объединяет веса и смещения сети
X = [net.IW{1}; net.b{1}]'
X =
Columns 1 through 4
0.5600 -0.5600 0.5600 0.5600
Columns 5 through 8
-5.6000 1.8667 1.8667 5.6000
Градиент функционала по вектору параметров
dPerf_dX = dsse('x',E,X)
dPerf_dX =
Columns 1 through 7
0 0 0 0 0 0 0
Column 8
0
Этот градиент равен нулевому вектору, поскольку функционал качества не зависит явным образом от параметров сети.
C378. MSE
Получим информацию о данной функции и ее производной:
mse('name'), mse('deriv'), mse('pnames')
ans =
Mean squared error
ans =
dmse
ans =
{}
Сформируем двухслойную нейронную сеть прямой передачи с одноэлементным входом, изменяющимся в диапазоне [–10 10], которая имеет 4 скрытых нейрона с функцией активации tansig и 1 нейрон на выходе с функцией активации purelin :
net = newff([-10 10],[4 1],{'tansig','purelin'});
Зададим векторы входа и целей
P = [-10 -5 0 5 10]; T = [ 0 0 1 1 1];
Промоделируем исходную нейронную сеть и вычислим ее ошибку
Y = sim(net, P); E = T-Y
E =
Columns 1 through 4
0.8520 0.8881 2.1218 3.0940
Column 5
2.2752
Вычислим функционал качества mse
net.performFcn = 'mse'; perf = mse(E)
perf =
4.1533
Теперь вычислим градиенты функционала качества.
Для вычисления градиентов сформируем вектор настраиваемых параметров (веса и смещения):
X = [net.IW{1}; net.b{1}]'
Градиент функционала по вектору ошибки вычисляется следующим образом
dPerf_dE = dmse('e',E,X,perf)
dPerf_dE =
Columns 1 through 4
0.3408 0.3553 0.8487 1.2376
Column 5
0.9101
Градиент функционала по вектору настраиваемых параметров:
dPerf_dX = dmse('x',E,X)
dPerf_dX =
Columns 1 through 7
0 0 0 0 0 0 0
Column 8
0
Этот градиент равен нулевому вектору, поскольку функционал качества не зависит явным образом от параметров сети.
С379. MSEREG
Получим информацию о данной функции и ее производной
msereg('name'), msereg('deriv'), msereg('pnames'), msereg('pdefaults')
ans =
Mean squared error with regularization
ans =
dmsereg
ans =
'ratio'
ans =
ratio: 0.9000
Это единственный функционал качества, который состоит из двух слагаемых: среднеквадратической ошибки с весом ratio и штрафной функции, оцениваемой суммой квадратов весов и смещений с весом 1-ratio.
Сформируем двухслойную нейронную сеть прямой передачи с одноэлементным входом, изменяющимся в диапазоне [–10 10], которая имеет 4 скрытых нейрона с функцией активации tansig и 1 нейрон на выходе с функцией активации purelin:
net = newff([-10 10],[4 1],{'tansig','purelin'});
Зададим векторы входа и целей
P = [-10 -5 0 5 10]; T = [ 0 0 1 1 1];
Промоделируем исходную нейронную сеть и вычислим ее ошибку
Y = sim(net, P); E = T-Y
E =
Columns 1 through 4
-1.9956 -1.7524 0.0534 0.9007
Column 5
1.2061
Вычислим функционал качества msereg
net.performFcn = 'msereg'; net.performParam.ratio = 0.9;
perf = msereg(E,net)
perf =
2.2333
Теперь вычислим градиенты функционала качества.
Для вычисления градиентов сформируем вектор настраиваемых параметров (веса и смещения):
X = [net.IW{1}; net.b{1}]'
X =
Columns 1 through 4
0.5600 -0.5600 0.5600 0.5600
Columns 5 through 8
-5.6000 1.8667 1.8667 5.6000
Градиент функционала по вектору ошибки вычисляется следующим образом
dPerf_dX = dmsereg('e',E,X,perf,net.performParam)
dPerf_dX =
Columns 1 through 4
-0.7184 -0.6309 0.0192 0.3243
Column 5
0.4342
Градиент функционала по вектору параметров
dPerf_dX = dmsereg('x',E,X,perf,net.performParam)
dPerf_dX =
Columns 1 through 4
-0.0140 0.0140 -0.0140 -0.0140
Columns 5 through 8
0.1400 -0.0467 -0.0467 -0.1400
Этот градиент не равен нулевому вектору, поскольку функционал качества зависит явным образом от параметров сети.