1700538371
1700538372
Dropout的具体实现中,要求某个神经元节点激活值以一定的概率p被“丢弃”,即该神经元暂时停止工作,如图9.12所示。因此,对于包含N个神经元节点的网络,在Dropout的作用下可看作为2N个模型的集成。这2N个模型可认为是原始网络的子网络,它们共享部分权值,并且具有相同的网络层数,而模型整体的参数数目不变,这就大大简化了运算。对于任意神经元,每次训练中都与一组随机挑选的不同的神经元集合共同进行优化,这个过程会减弱全体神经元之间的联合适应性,减少过拟合的风险,增强泛化能力。
1700538373
1700538374
在神经网络中应用Dropout包括训练和预测两个阶段。在训练阶段中,每个神经元节点需要增加一个概率系数,如图9.13所示。训练阶段又分为前向传播和反向传播两个步骤。原始网络对应的前向传播公式为
1700538375
1700538376
1700538377
,
1700538378
1700538379
(9.30)
1700538380
1700538381
1700538382
.
1700538383
1700538384
(9.31)
1700538385
1700538386
1700538387
1700538388
1700538389
图9.12 Dropout模块示意图
1700538390
1700538391
1700538392
1700538393
1700538394
图9.13 标准网络和Dropout网络的对比
1700538395
1700538396
应用Dropout之后,前向传播公式变为
1700538397
1700538398
1700538399
,
1700538400
1700538401
(9.32)
1700538402
1700538403
1700538404
,
1700538405
1700538406
(9.33)
1700538407
1700538408
1700538409
,
1700538410
1700538411
(9.34)
1700538412
1700538413
1700538414
.
1700538415
1700538416
(9.35)
1700538417
1700538418
上面的Bernoulli函数的作用是以概率系数p随机生成一个取值为0或1的向量,代表每个神经元是否需要被丢弃。如果取值为 0,则该神经元将不会计算梯度或参与后面的误差传播。
1700538419
1700538420
测试阶段是前向传播的过程。在前向传播的计算时,每个神经元的参数要预先乘以概率系数p,以恢复在训练中该神经元只有p的概率被用于整个神经网络的前向传播计算。
[
上一页 ]
[ :1.700538371e+09 ]
[
下一页 ]