本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【j2开奖】基础 | 神经网络快速入门:什么是多层感知器和反向传播?(3)

时间:2016-11-26 18:47来源:本港台现场报码 作者:118KJ 点击:
在分类任务中,我们通常在感知器的输出层中使用 Softmax 函数作为激活函数,以保证输出的是概率并且相加等于 1。Softmax 函数接收一个随机实值的分数向

在分类任务中,我们通常在感知器的输出层中使用 Softmax 函数作为激活函数,以保证输出的是概率并且相加等于 1。Softmax 函数接收一个随机实值的分数向量,转化成多个介于 0 和 1 之间、并且总和为 1 的多个向量值。所以,在这个例子中:

概率(Pass)+概率(Fail)=1

第一步:前向传播

网络中所有的权重都是随机分配的。我们现在考虑图 5 中标注 V 的隐藏层节点。假设从输入连接到这些节点的权重分别为 w1、w2 和 w3(如图所示)。

神经网络会将第一个训练样本作为输入(我们已知在输入为 35 和 67 的情况下,通过的概率为 1)。

网络的输入=[35, 67]

期望的网络输出(目标)=[1, 0]

涉及到的节点的输出 V 可以按如下方式计算(*f* 是类似 Sigmoid 的激活函数):

V = f(1*w1 + 35*w2 + 67*w3)

同样,隐藏层的其他节点的输出也可以计算。隐藏层两个节点的输出,是输出层两个节点的输入。这让我们可以计算输出层两个输出的概率值。

假设输出层两个节点的输出概率分别为 0.4 和 0.6(因为权重随机,输出也会随机)。我们可以看到计算后的概率(0.4 和 0.6)距离期望概率非常远(1 和 0),所以图 5 中的网络被视为有「错误输出」。

第二步:反向传播和权重更新

我们计算输出节点的总误差,并将这些误差用反向传播算法传播回网络,以计算梯度。接下来,我们使用类似梯度下降之类的算法来「调整」网络中的所有权重,目的是减少输出层的误差。图 6 展示了这一过程(暂时忽略图中的数学等式)。

假设附给节点的新权重分别是 w4,w5 和 w6(在反向传播和权重调整之后)。

  

wzatv:【j2开奖】基础 | 神经网络快速入门:什么是多层感知器和反向传播?

图 6:多层感知器中的反向传播和权重更新步骤

如果我们现在再次向网络输入同样的样本,网络应该比之前有更好的表现,因为为了最小化误差,已经调整了权重。如图 7 所示,和之前的 [0.6, -0.4] 相比,输出节点的误差已经减少到了 [0.2, -0.2]。这意味着我们的网络已经学习了如何正确对第一个训练样本进行分类。

  

wzatv:【j2开奖】基础 | 神经网络快速入门:什么是多层感知器和反向传播?

图 7:在同样的输入下,多层感知器网络有更好的表现

用我们数据集中的其他训练样本来重复这一过程。这样,我们的网络就可以被视为学习了这些例子。

现在,如果我们想预测一个学习了 25 个小时、期中考试 70 分的学生是否能通过期末考试,我们可以通过前向传播步骤来计算 Pass 和 Fail 的输出概率。

我回避了数学公式和类似「梯度下降(Gradient Descent)」之类概念的解释,而是培养了一种对于算法的直觉。对于反向传播算法更加注重数学方面讨论,请参加此链接:~vlsi/AI/backp_t_en/backprop.html

多层感知器的 3D 可视化

Adam Harley 创造了一个多层感知器的 3D 可视化(~aharley/vis/fc/),并已经开始使用 MNIST 数据库手写的数字进行训练。

此网络从一个 28 x 28 的手写数字图像接受 784 个数字像素值作为输入(在输入层有对应的 784 个节点)。网络的第一个隐藏层有 300 个节点,第二个隐藏层有 100 个节点,输出层有 10 个节点(对应 10 个数字)[15]。

虽然这个网络跟我们刚才讨论的相比大了很多(使用了更多的隐藏层和节点),所有前向传播和反向传播步骤的计算(对于每个节点而言)方式都是一样的。

图 8 显示了输入数字为「5」的时候的网络

  

wzatv:【j2开奖】基础 | 神经网络快速入门:什么是多层感知器和反向传播?

图 8:输入为「5」时的视觉化的网络

输出值比其它节点高的节点,用更亮的颜色表示。在输入层,更亮的节点代表接受的数字像素值更高。注意,在输出层,亮色的节点是如何代表数字 5 的(代表输出概率为 1,其他 9 个节点的输出概率为 0)。这意味着多层感知器对输入数字进行了正确的分类。我非常推荐对这个可视化进行探究,观察不同节点之间的联系。

深度神经网络

1. 深度学习和一般的机器学习有什么区别?https://github.com/rasbt/python-machine-learning-book/blob/master/faq/difference-deep-and-normal-learning.md

  2. 神经网络和深度神经网络有什么区别??rq=1

3. 深度学习和多层感知器有有怎样的不同?https://www.quora.com/How-is-deep-learning-different-from-multilayer-perceptron

结论

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容