计算机系统应用教程网站

网站首页 > 技术文章 正文

一种用于解决训练时过度拟合的有趣方法:Dropout

btikc 2024-10-17 08:40:33 技术文章 7 ℃ 0 评论
全文共1878字,预计学习时长4分钟



Dropout是一种用于解决训练模型时过度拟合问题的有趣方法。即便Dropout背后的概念非常简单,在培训模型时带来的改进也不可小觑。本文尽量以最简洁精炼的语言为你解释Dropout。

除了叙述Dropout背后的客观现实之外,还包括如何应用于神经网络,以及在Keras上的应用。

什么是过度拟合?


训练神经网络是一大棘手难题。应该注意,其模型已足够完备,可以从现有数据中学习,并推广到未知数据。缺乏概括模型主要是由名为过度拟合的问题所引起。

简言之,过度拟合指模型在初始训练数据上达到极高准确度,但在新的未知数据上准确度却极低。这就如同当老师总出同样的考题时,学生更容易获得高分,因为对学生而言,他们只需简单地记住答案。因此,高分在这里并不能作为很好的指标。所导致的危险后果是学生们将不会费心学习该门课程。

针对过度拟合这一问题衍生了许多技术,Dropout就是其中之一。


Dropout背后的客观事实



假设一台电视节目需要有一位参赛者,一位主持人,及一组观众。该节目流程如下:

1. 在游戏开始时,主持人随机选择未知电影作为游戏主题。

2. 主持人在每一阶段,只播放所选电影的一个片段。

3. 接着针对目前已播片段,提出与电影中事件相关的一个问题。

4.由每位观众作答。

5.再由参赛者从观众中选择一个作为最终答案。

6.如果回答正确,参赛者和该观众各将获得50美元。

7.如果回答错误,两人各需付100美元。


假设参与者注意到其中一个观众总是回答正确。随着游戏深入,参赛者将会对该名观众建立信任,并忽略其他观众给出的答案。


这一策略也存在一些问题。备受参赛者信赖的观众可能在游戏的初级阶段答题表现较好,而在游戏后期正确率下降。如果总是只选择一个人(或一小组),那么其它观众会觉得不受重视,且不再关注所播放的电影片段。


在游戏后期,受信任的人也不会发挥作用,并且由于其它观众也因为不再投入所播片段,而混淆事件顺序导致作答失败。因此,依赖一个人是不可行的,必然会一败涂地。


怎样才能解决这一问题呢?明智的策略是始终让他人保有发言权。通过这种方式,参赛者会了解每个人的长处,并根据问题类别知道该询问谁。此外,这一方式也会让每位观众意识到自己的责任,觉得有义务投入到游戏中。


神经网络中的Dropout


你可能会问Dropout与神经网络之间有何关系?那么,请看以下网络:




将输入层(绿色)视为支持人所提的问题,隐藏层中的每个神经元(蓝色)视为观众中的某个人,输出层(红色)视为被选观众所给出的答案。如果输出层发现特定神经元总是给出最佳答案,则可能忽略其他神经元并只注意该神经元。

根据之前的分析,选择禁止一些神经元回答并将机会给予其他神经元,这一方式将实现平衡并迫使所有神经元学习。这就是Dropout的概念。从技术层面,它的工作原理如下:

1. 指定一个Dropout率,它表示不参与神经元的百分比(例如20%的神经元)。

2. 每个阶段,根据预设百分比移除随机神经元。

3. 根据剩余神经元的结果组合计算最终输出。

使用这种技术,所有神经元都有机会投票,并需要正确作答以减少模型损失。

以下是使用Dropout前后神经网络的变化示例:




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垂类自媒体 “读芯术”

(加入圈子,一起讨论新鲜的人工智能干货)

(此处已添加圈子卡片,请到今日头条客户端查看)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表