tensorflow学习011——Dropout抑制过拟合

2.10Dropout抑制过拟合与

model.fit(train_image,train_label,epochs=5,validation_data=(test_image,test_label))
加上validation_data会在每一轮都对测试集进行测试

过拟合:loss和acc在训练集上随轮数上升,但是在测试机上在下降
欠拟合:在训练数据上得分比较低,在测试数据上得分也比较低

image
图2-18
如图2-18所示,dropout层就是删除一些节点,使得其不依赖于固有节点。
为什么Dropout可以解决过拟合?
1)取平均的作用:先回到标准的模型,即没有dropout,我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用“5个结果取均值”或者“多数取胜的投票策略”去决定最终结果
2)减少神经元之间复杂的共适应关系。因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样全职的更新不再依赖于固定关系的隐含节点的共同作用,组织了某些特征仅仅在其它特征下才有效果的情况
3)Dropout类似与性别在生物进化中的角色。物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出及时反应,性别的出现可以繁衍出适应新环境的变种,有效的组织过拟合,即避免环境改变时物种可能面临的灭绝。

model.add(tf.keras.layers.Dropout(0.5)) #表示在当前层抛弃缩少比例的神经元
dropout层可以添加到其他层的后面

posted @ 2021-11-14 20:46  白菜茄子  阅读(166)  评论(0编辑  收藏  举报