我是靠谱客的博主 凶狠世界,这篇文章主要介绍解决神经网络过拟合问题—Dropout方法、python实现,现在分享给大家,希望可以做个参考。

解决神经网络过拟合问题—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实现内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(127)

评论列表共有 0 条评论

立即
投稿
返回
顶部