我是靠谱客的博主 凶狠世界,最近开发中收集的这篇文章主要介绍解决神经网络过拟合问题—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实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部