|
|
51CTO旗下网站
|
|
移动端

2.10 使用正则化技术提高泛化能力

《Python深度学习实战:75个有关神经网络建模、强化学习与迁移学习的解决方案》第2章前馈神经网络,本章的重点是为FNN 和其他网络拓扑的常见实现问题提供解决方案。本章讨论的技术也适用于后续内容。本节为大家介绍使用正则化技术提高泛化能力。

作者:程国建/周冠武 译来源:机械工业出版社|2018-08-30 19:10

2.10 使用正则化技术提高泛化能力

过度训练数据是机器学习最大的挑战之一。有许多机器学习算法能够通过记忆所有的情况来对训练数据进行训练。在这种情况下,该算法可能无法泛化并对新数据做出正确的预测。这对于深度学习来说是一个特别大的威胁,其中神经网络具有大量的可训练参数。因此,创建一个具有代表性的验证集是非常重要的。

在深度学习中,解决新问题的一般建议是先尽可能地过拟合训练数据。这可以确保模型能够对训练数据进行训练并且足够复杂。之后,应该尽可能地调整,以确保该模型能够泛化未经验证的数据(验证集)。

大多数用于防止过拟合的技术都可以置于正则化之下。正则化包括机器学习中的所有技术,明确地减少测试(因泛化)误差,有时以较高的训练误差为代价。这样的技术可以是对参数空间加以限制的形式。假设一个具有较小权重的模型比一个具有较大权重的模型更简单。在下面的方案中,将应用L1 正则化来防止模型过拟合。

如何去做…

1)首先,导入所需的函数库:

2)导入数据并提取特征:

3)标准化数值数据:

4)分割数据集进行训练、验证和测试:

5)定义网络体系结构:

6)在训练数据上训练网络体系结构并使用验证集:


7)绘制训练过程和验证损失图例,如图2-16 所示。

8)绘制最小损失图例,以及在多少个周期后达到了这个最小值:

9)用L2 正则化定义网络体系结构:

10)训练调整后的网络:

11)绘制出结果:

得到如图2.17 所示结果。

12)输出显示正则化模型的统计数据:

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络工程师考试考前冲刺预测卷及考点解析

本书依据2018送彩金白菜网大全版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点进行了提炼,并...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
博聚网