gpt4 book ai didi

matlab - 神经网络的反向传播算法 : XOR training

转载 作者:行者123 更新时间:2023-12-04 06:00:36 25 4
gpt4 key购买 nike

 c=0;
wih = .1*ones(nh,ni+1);
who = .1*ones(no,nh+1);

while(c<3000)
c=c+1;
for i = 1:length(x(1,:))


for j = 1:nh
netj(j) = wih(j,1:end-1)*double(x(:,i))+wih(j,end)*1;
outj(j) = 1./(1+exp(-1*netj(j)));
end

% hidden to output layer

for k = 1:no

netk(k) = who(k,1:end-1)*outj+who(k,end)*1;
outk(k) = 1./(1+exp(-1*netk(k)));
delk(k) = outk(k)*(1-outk(k))*(t(k,i)-outk(k));

end

% backpropagation
for j = 1:nh
s=0;
for k = 1:no
s = s+who(k,j)*delk(k);
end

delj(j) = outj(j)*(1-outj(j))*s;

s=0;
end


for k = 1:no
for l = 1:nh
who(k,l)=who(k,l)+.5*delk(k)*outj(l);
end
who(k,l+1)=who(k,l+1)+1*delk(k)*1;
end

for j = 1:nh
for ii = 1:ni
wih(j,ii)=wih(j,ii)+.5*delj(j)*double(x(ii,i));
end
wih(j,ii+1)=wih(j,ii+1)+1*delj(j)*1;

end



end

end

这实现了一个反向传播神经网络。 x是输入, t是所需的输出, ni , nh , no输入层、隐藏层和输出层神经元的数量。我正在测试不同的功能,如 AND、OR,它适用于这些。但是 XOR 不起作用。

培训 x = [0 0 1 1; 0 1 0 1]培训 t = [0 1 1 0] who = 从隐藏层到输出层的权重矩阵
wih = 从输入到隐藏层的权重矩阵

你能帮我吗 ?

最佳答案

XOR 与您描述的所有其他函数之间的区别在于 XOR 函数不是线性可分的。

可能发生的情况是您使用的是线性单位(线性激活函数)而不是 sigmoidal 单位(非线性激活函数)。另外,你确定你有一个隐藏层吗?

请张贴您的网络拓扑结构(简要),以及每一层的单元类型。

关于matlab - 神经网络的反向传播算法 : XOR training,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8959687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com