我正在尝试编写神经网络课程,但我并不完全理解它的某些方面。关于后续设计,我有两个问题。
我这样做是否正确?偏倚神经元是否需要连接到所有神经元(输入层中的神经元除外)或隐藏层中的神经元?
我的第二个问题是关于计算输出值。我使用下面的等式来计算神经元的输出值。
{{1}}
在这个等式之后,我计算激活并且结果发送输出。并输出神经元做同样的事情。
我不确定自己在做什么,我想清理问题。
答案 0 :(得分:0)
在theano中查看:http://deeplearning.net/tutorial/contents.html。这解释了使用theano(符号数学库)对多层感知器需要了解的所有内容。
答案 1 :(得分:0)
祝发展顺利;)
答案 2 :(得分:0)
每个隐藏和输出层应该有一个单独的偏置神经元。可以将图层视为应用于一阶多项式的函数,例如f(m*x+b)=y
,其中y
是您的输出,f(x)
是您的激活函数。如果您查看线性术语,您将识别b
。这表示偏差,它与神经网络的行为类似于这种简化:它将超平面在空间中上下移动。请记住,每层有一个偏置连接到该层f((wi*xi+b)+...+(wn*xn+b))
的所有神经元,初始值为1.当涉及到梯度下降时,您必须像正常体重一样训练这个神经元。 / p>
在我看来,您也应该将激活功能应用于输出层。这是多层感知器通常采用的方式。但它实际上取决于你想要什么。例如,如果您使用逻辑函数作为激活函数,并且您想要在区间(0,1)
中输出,那么您还必须将激活函数应用于输出。由于基本线性组合(如您的示例所示)理论上可以超出前面提到的Intervall的边界。