确定神经网络感知器的偏差?

5 artificial-intelligence neural-network

这是我开始理解神经网络时的一件事我不太明白最初设置"偏见"的原因是什么?我理解Perceptron根据以下公式计算它的输出:

P*W + b> 0

然后你可以根据b = b + [G - O]计算学习模式,其中G是正确的输出,O是计算新偏差的实际输出(1或0)......但是初始怎么样偏见.....我真的不明白这是如何计算的,或者除了"猜测"之外应该使用什么初始值,是否有任何类型的公式?

请原谅,如果我误解了任何事情,在我实施自己的(糟糕的)之前,我仍然在学习整个神经网络的想法.

同样适用于学习率.....我的意思是大多数书籍,而且仅仅是为μ选择"选择一个".

Ric*_*lis 9

简短的回答是,这取决于......

1)在大多数情况下(我相信)你可以像对待任何其他重量那样处理偏差(因此它可能会被初始化为一些小的随机值),并且它会在您训练网络时得到更新.我们的想法是,所有的偏差和权重最终会聚合在一些有用的价值观上.

2)但是,您也可以手动设置权重(无需培训)以获得一些特殊行为:例如,您可以使用偏差使感知器表现得像逻辑门(假设二进制输入X1和X2为0或1,并且激活功能被缩放以给出0或1的输出.

或门:W1 = 1,W2 = 1,偏差= 0

AND门:W1 = 1,W2 = 1,偏差= -1

您可以通过使用AND和OR作为多层网络中的第一层来解决经典XOR问题,并将它们馈入第三个感知器,其中W1 = 3(来自OR门),W2 = -2(来自AND门)和偏差= -2,像这样:

感知器异或

(注意:如果您的激活函数缩放到-1/+ 1,即SGN函数,这些值将不同)


3)至于如何设置学习率,这也取决于(!)但我认为通常建议使用0.01之类的.基本上,您希望系统尽可能快地学习,但不能太快以至于权重无法正确收敛.