全文共1878字,预计学习时长4分钟微信
图片来源:unsplash.com/@mlightbody网络
Dropout是一种用于解决训练模型时过分拟合问题的有趣方法。即使Dropout背后的概念很是简单,在培训模型时带来的改进也不可小觑。本文尽可能以最简洁精炼的语言为你解释Dropout。学习
除了叙述Dropout背后的客观现实以外,还包括如何应用于神经网络,以及在Keras上的应用。3d
什么是过分拟合?对象
训练神经网络是一大棘手难题。应该注意,其模型已足够完备,能够从现有数据中学习,并推广到未知数据。缺少归纳模型主要是由名为过分拟合的问题所引发。blog
简言之,过分拟合指模型在初始训练数据上达到极高准确度,但在新的未知数据上准确度却极低。这就如同当老师总出一样的考题时,学生更容易得到高分,由于对学生而言,他们只需简单地记住答案。所以,高分在这里并不能做为很好的指标。所致使的危险后果是学生们将不会费心学习该门课程。游戏
针对过分拟合这一问题衍生了许多技术,Dropout就是其中之一。事件
Dropout背后的客观事实图片
图片来源:unsplash.com/@sammcgheeio
假设一台电视节目须要有一位参赛者,一位主持人,及一组观众。该节目流程以下:
1. 在游戏开始时,主持人随机选择未知电影做为游戏主题。
2. 主持人在每一阶段,只播放所选电影的一个片断。
3. 接着针对目前已播片断,提出与电影中事件相关的一个问题。
4.由每位观众做答。
5.再由参赛者从观众中选择一个做为最终答案。
6.若是回答正确,参赛者和该观众各将得到50美圆。
7.若是回答错误,两人各需付100美圆。
假设参与者注意到其中一个观众老是回答正确。随着游戏深刻,参赛者将会对该名观众创建信任,并忽略其余观众给出的答案。
这一策略也存在一些问题。备受参赛者信赖的观众可能在游戏的初级阶段答题表现较好,而在游戏后期正确率降低。若是老是只选择一我的(或一小组),那么其它观众会以为不受重视,且再也不关注所播放的电影片断。
在游戏后期,受信任的人也不会发挥做用,而且因为其它观众也由于再也不投入所播片断,而混淆事件顺序致使做答失败。所以,依赖一我的是不可行的,必然会一败涂地。
怎样才能解决这一问题呢?明智的策略是始终让他人保有发言权。经过这种方式,参赛者会了解每一个人的长处,并根据问题类别知道该询问谁。此外,这一方式也会让每位观众意识到本身的责任,以为有义务投入到游戏中。
神经网络中的Dropout
你可能会问Dropout与神经网络之间有何关系?那么,请看如下网络:
神经网络简易示例
将输入层(绿色)视为支持人所提的问题,隐藏层中的每一个神经元(蓝色)视为观众中的某我的,输出层(红色)视为被选观众所给出的答案。若是输出层发现特定神经元老是给出最佳答案,则可能忽略其余神经元并只注意该神经元。
根据以前的分析,选择禁止一些神经元回答并将机会给予其余神经元,这一方式将实现平衡并迫使全部神经元学习。这就是Dropout的概念。从技术层面,它的工做原理以下:
1. 指定一个Dropout率,它表示不参与神经元的百分比(例如20%的神经元)。
2. 每一个阶段,根据预设百分比移除随机神经元。
3. 根据剩余神经元的结果组合计算最终输出。
使用这种技术,全部神经元都有机会投票,并须要正确做答以减小模型损失。
如下是使用Dropout先后神经网络的变化示例:
图片来源:Deep Learning for Computer Vision
Dropout在Keras中的应用
在Keras应用Dropout比想象的更为简单。只需导入并建立一个新的Dropout图层对象,而后将其添加到网络结构的相关位置。
from keras import models, layers
model = models.Sequential()
model.add(layers.Dense(32))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(1))
一般,在输出dropout率=0.5(50%)以前,彻底链接的Dense层以后添加Dropout layer。最近也采用其余的方法,如应用于卷积层激活功能或循环Dropout率= 0.2(20%)以后。
留言 点赞 关注
咱们一块儿分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
添加小编微信:dxsxbb
便可进入微信交流群