《Python深度学习》阅读小记
2021/7/11 20:06:57
本文主要是介绍《Python深度学习》阅读小记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第四章
4.1 机器学习四个分支
- 监督学习:有标签学习。主要包括分类和回归,是深度学习主流
- 无监督学习:
- 没有目标,寻找输入数据的有趣变化。
- 目的在于数据可视化,数据压缩,数据去噪或更好理解数据相关性。
- 是数据分析非必备技能。降维和聚类是well-known的两个无监督学习方法。
- 自监督学习:监督学习的特例,没有人工标注的标签的学习,但是标签仍然存在,是从输入数据中生成,通常使用启发式算法生成。举例如自编码器。
- 强化学习:目前处于研究阶段,没有实际商业应用,但是前景广阔。强化学习中,智能体(agent)接受有关环境的信息,并选择使某种奖励最大化行动。如神经网络会“观察”视频游戏屏幕并输出游戏操作,目的是尽可能得高分,Google的阿尔法狗就是强化学习得来的。
4.2 评估机器学习模型
- 机器学习目的是可以泛化模型,即在前所未有的数据上表现很好的模型
- 训练集、验证集和测试集
- 训练集,验证集和测试集的关系是:在训练数据上训练模型,在验证数据上评估模型。一旦找到最佳参数,就在测试数据上最后训练一次。
- 模型的层数和每层大小以及其他参数成为超参数,是为了与模型参数(即权重)区分开
- 为什么不只设置训练集和测试集?
- 原因在于,开发模型时总要调节超参数以及参数,对于训练集里表现良好的模型,在验证集里测试一下,然后根据验证集的性能反馈继续调节模型参数,这本身也是一个学习过程,因此验证集也包括在训练过程中。
- 并且,由于模型的调节也受验证集的影响,这就相当于把验证集暴露在模型训练中,造成
信息泄露
。每次基于模型在验证集上的性能来调节模型超参数都是一次暴露,随着调节次数曾多,你得到的模型是在验证集上性能越来越好,因为这正是你优化的目的,而实际上,我们需要的是模型的泛化能力,因此我们需要一个全完干净的,前所未见的数据集来评估模型,这就是测试集。我们的模型一定不能读取与测试集有关的任何信息,即使间接读取也不行。如果基于测试集性能来调节模型,那么对泛化能力的衡量是不准确的。 - 将数据划分为训练集、验证集合测试集可能看起来很简单,但如果可能数据很少,还有几种高级方法可以派上用场。我们来介绍三种经典的评估方法:简单的留出验证、K折验证,以及带有打乱数据的重复K折验证。
4.4 防止过拟合的几种方法
- 过拟合就是从训练数据中学到错误或无关紧要的模式,最优解决方法是获取更多训练数据
- 次要的解决办法是调节模型允许存储的信息量,这种降低过拟合的方法叫做正则化
2.1. 减小网络大小。更大的网络有时并不一定越好,因为其训练损失很快就接近0,网络的容量越大,它拟合训练数据(即得到很小的训练损失)的速度就很快,但也更容易过拟合。
2.2. 添加权重正则化。注意L2正则化也叫权重衰减,两者只是名称不同对正则化仍旧不是很懂,截图一个博主的讲解
2.3. 添加Dropout正则化:神经网络最有效也最常用的正则化方法之一。某一层的dropout就是在训练过程中随机将该层一些输出特征舍弃(设置为0)
这篇关于《Python深度学习》阅读小记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享