Dropout 与网络参数选择总原则 | 学习笔记

简介: 快速学习 Dropout 与网络参数选择总原则

开发者学堂课程【Tensorflow 2.0入门与实战Dropout 与网络参数选择总原则】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/664/detail/11110


Dropout与网络参数选择总原则


内容介绍:

一、 过拟合

二、 使用 Dropout 抑制过拟合

三、构建网络的总原则


一、过拟合

使用上节课的 model,仍然使用 Sequential 模型,三个隐藏层,每层有128个隐藏的神经单元。

model = tf. keras.Sequential()

model.add(tf.keras.layers.Flatten(input_shape=(28,28)))# 28*28

model.add(tf.keras.layers.Dense(128,activation='relu'))

model.add(tf.keras.layers.Dense(128,activation='relu'))

model.add(tf.keras.layers.Dense(128,activation='relu'))

model.add(tf.keras.layers. Dense(10,activation='softmax'))

重新训练一下,编译部分没有任何区别。

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),

loss=' categorical_crossentropy',

metrics=['acc']

)

history = model.fit(train_image,train_label_onehot,

epochs=10,

validation_data=(test_image, test_label_onehot)

这样可以提醒我们在训练节和验证节上的 loss 以及正确率,训练完之后

In [41]: history.history. keys ()

Out[41]: dict_keys([' loss', 'acc , 'val_loss', 'val_acc'])

可以发现,keys 变成了[' loss', 'acc , 'val_loss', 'val_acc']这几项,这个验证项就是因为我们添加了 test_image 和 test_label_onehot。使用 test 数据来验证也是非常客观的,因为 test 数据解释网络也是没有见过的数据。

用绘图看一下两者的变化

plt.plot(history.epoch,history.history.get('loss'),label=' loss')

plt.plot(history.epoch,history.history.get('val_loss'),label='val_loss')

plt.legend()

<matplotlib.legend. Legend at 0x23d1e50b320>

image.png

从中可以看出,第七个 epoch 之后,val_loss 不但没有下降,反而得到了一定程度的上升,但是 train 数据的 loss一直在下降。在验证数据上,不但没有下降,反而上升了,是产生了过拟合的原因。

也可以通过正确率来反映这一点:

plt.plot(history.epoch,history.history.get('acc'),label='acc')

plt.plot(history.epoch,history.history.get('val_acc'),label='val_acc')

plt.legend()

image.png

val_acc 基本上是一个上升的过程,train 数据的正确率,毫无疑问,在一直上升,最后达到95%左右,但是二者的正确率之间有一个巨大的鸿沟,train 数据上得分非常高,test 数据得分没有那么高,这就是一种典型的过拟合。

过拟合:在训练数据上得分很高,在测试数据上得分相对比较低。

欠拟合:在训练数据上得分比较低,在测试数据上得分也比较低。

比如训练得分升高到85%就不再上升,这就说明网络的拟合能力不够,也就是欠拟合。


二、使用 Dropout 抑制过拟合

网络的拟合能力不够,可以通过增加网络中神经元个数和增加网络层数来增加网络拟合能力,从而使其在训练数据上得到一定的提高。

对于过拟合,可以通过 Dropout 抑制过拟合,

Dropout 实际上就是人为的丢弃一些单元,标准的网络,上面是输出,Dropout 层原理上与集成方法非常类似,我们随机的丢弃掉一些隐藏单元,所以每一次的数据输出都会有所不同,在测试的时候,使用全部的神经元,这样得到一个最后相对比较可靠的结果。这就是它的基本原理。

image.png

丢弃掉一些层之后的样子:

image.png

为什么说 Dropout 可以解决过拟合?

(1)取平均的作用

先回到标准的模型即没有 dropout我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用“5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。

(2)减少神经元之间复杂的共适应关系:

因为 dropout 程序导致两个神经元不一定每次都在一个 dropout 网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况。

(3))Dropout 类似于性别在生物进化中的角色:

物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出及时反应,性别的出现可以繁衍出适应新环境的变种,有效的阻止过拟合,即避免环境改变时物种可能面临的灭绝

参数选择原则

理想的模型是刚好在欠拟合和过拟合的界线上,也就是正好拟合数据。

首先开发一个过拟合的模型:

(1)添加更多的层,增加深度

(2)让每一层变得更大,增加隐藏单元个数

(3)训练更多的轮次,增加训练轮次,使其容易产生过拟合。

然后,抑制过拟合:

(1) dropout

(2)正则化

(3)图像增强

抑制过拟合的最好办法是增加训练数据,上面这些方法是在没有训练数据的情况系下,来抑制过拟合。

再次,调节超参数:

学习速率,

隐藏层单元数

训练轮次

超参数的选择是一个经验与不断测试的结果。经典机器学习的方法,如特征工程、增加训练数据也要做交叉验证

 

三、构建网络的总原则

总的原则是:保证神经网络容量足够拟合数据

1、增大网络容量,直到过拟合

2、采取措施抑制过拟合

3、继续增大网络容量,直到过拟合

相关文章
|
4月前
|
存储 弹性计算 网络协议
阿里云服务器ECS实例规格族是什么?不同规格CPU型号、处理器主频及网络性能参数均不同
阿里云ECS实例规格族是指具有不同性能特点和适用场景的实例类型集合。不同规格族如计算型c9i、通用算力型u1、经济型e等,在CPU型号、主频、网络性能、云盘IOPS等方面存在差异。即使CPU和内存配置相同,性能参数和价格也各不相同,适用于不同业务需求。
428 144
|
6月前
|
机器学习/深度学习 算法
PSO和GA优化BP神经网络参数
PSO和GA优化BP神经网络参数
201 5
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
4615 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
机器学习/深度学习 自然语言处理 计算机视觉
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaBlock降低YOLOV8参数
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaBlock降低YOLOV8参数
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
346 0
|
监控 安全 网络安全
网络安全的基本原则与策略
【8月更文挑战第19天】网络安全的基本原则与策略是保障网络系统安全性的重要基石。通过遵循网络空间主权原则、网络安全与信息化发展并重原则以及共同治理原则等基本原则,制定并实施科学合理的安全策略和实施措施,可以有效提升网络系统的安全性、完整性、可用性和保密性。同时,随着网络技术的不断发展和变化,我们需要持续关注网络安全的新趋势和新挑战,不断调整和完善安全策略和实施措施,确保网络系统的持续安全和稳定运行。
|
监控 Linux 测试技术
什么是Linux系统的网络参数?
【8月更文挑战第10天】什么是Linux系统的网络参数?
200 5
|
Linux 开发工具
CPU-IO-网络-内核参数的调优
CPU-IO-网络-内核参数的调优
193 7
|
机器学习/深度学习 自然语言处理 并行计算
【深度学习+面经】Transformer 网络学习笔记
Transformer模型的核心概念、优缺点以及在多个领域的应用,并提供了针对Transformer架构的面试问题及答案。
738 2

热门文章

最新文章