概述
解决神经网络过拟合问题—Dropout方法
-
- 一、what is Dropout?如何实现?
- 二、使用和不使用Dropout的训练结果对比
一、what is Dropout?如何实现?
如果网络模型复杂,L2范数权值衰减方法就难以对付过拟合。这种情况下,用Dropout方法。
Dropout是一种在学习过程中随机删除神经元的方法。
训练时,随机选出隐藏层神经元,然后将其删除。每传递一次数据,就会随机选择要删除的神经元。
测试时,对各个神经元的输出,要成上训练时的删除比例。
实现代码:
每次正向传播,self.mask以False形式保存要删除的神经元。
self.mask = np.random.rand(*x.shape) > self.dropout_ratio
self.mask随机生成和x形状相同数组,将值大于dropout_ratio元素设为True。
每次反向传播,如果正向传播时候传递了信号的神经元,反向传按原样传,反之不传。
class Dropout
最后
以上就是凶狠世界为你收集整理的解决神经网络过拟合问题—Dropout方法、python实现的全部内容,希望文章能够帮你解决解决神经网络过拟合问题—Dropout方法、python实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复