tensorflow学习011——Dropout抑制过拟合
2.10Dropout抑制过拟合与
model.fit(train_image,train_label,epochs=5,validation_data=(test_image,test_label))
加上validation_data会在每一轮都对测试集进行测试
过拟合:loss和acc在训练集上随轮数上升,但是在测试机上在下降
欠拟合:在训练数据上得分比较低,在测试数据上得分也比较低
图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层可以添加到其他层的后面
作者:孙建钊
出处:http://www.cnblogs.com/sunjianzhao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。