Нейронная сеть в MATLAB
Я обучил нейронную сеть xor в Matlab и получил эти веса:
iw: [-2.162 2.1706; 2.1565 -2.1688]
lw: [-3.9174 -3.9183]
b{1} [2.001; 2.0033]
b{2} [3.8093]
Просто из любопытства я попытался написать код MATLAB, который вычисляет вывод этой сети (2 нейрона в скрытом слое и 1 на выходе, функция активации TANSIG).
Код, который я получил:
l1w = [-2.162 2.1706; 2.1565 -2.1688];
l2w = [-3.9174 -3.9183];
b1w = [2.001 2.0033];
b2w = [3.8093];
input = [1, 0];
out1 = tansig (input(1)*l1w(1,1) + input(2)*l1w(1,2) + b1w(1));
out2 = tansig (input(1)*l1w(2,1) + input(2)*l1w(2,2) + b1w(2));
out3 = tansig (out1*l2w(1) + out2*l2w(2) + b2w(1))
Проблема в том, что когда ввод, скажем, [1,1], он выводит-0,9989когда [0,1]0,4902, При моделировании сети, сгенерированной с выходами MATLAB адекватно0.00055875 а также0,99943.
Что я делаю не так?