Python教程

《Python深度学习》阅读小记

本文主要是介绍《Python深度学习》阅读小记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第四章

4.1 机器学习四个分支

  • 监督学习:有标签学习。主要包括分类和回归,是深度学习主流
  • 无监督学习:
  • 没有目标,寻找输入数据的有趣变化。
  • 目的在于数据可视化,数据压缩,数据去噪或更好理解数据相关性。
  • 数据分析非必备技能降维聚类是well-known的两个无监督学习方法。
  • 自监督学习:监督学习的特例,没有人工标注的标签的学习,但是标签仍然存在,是从输入数据中生成,通常使用启发式算法生成。举例如自编码器。
  • 强化学习:目前处于研究阶段,没有实际商业应用,但是前景广阔。强化学习中,智能体(agent)接受有关环境的信息,并选择使某种奖励最大化行动。如神经网络会“观察”视频游戏屏幕并输出游戏操作,目的是尽可能得高分,Google的阿尔法狗就是强化学习得来的。

4.2 评估机器学习模型

  • 机器学习目的是可以泛化模型,即在前所未有的数据上表现很好的模型
  • 训练集、验证集和测试集
  • 训练集,验证集和测试集的关系是:在训练数据上训练模型,在验证数据上评估模型。一旦找到最佳参数,就在测试数据上最后训练一次。
  • 模型的层数和每层大小以及其他参数成为超参数,是为了与模型参数(即权重)区分开
  • 为什么不只设置训练集和测试集?
    • 原因在于,开发模型时总要调节超参数以及参数,对于训练集里表现良好的模型,在验证集里测试一下,然后根据验证集的性能反馈继续调节模型参数,这本身也是一个学习过程,因此验证集也包括在训练过程中。
    • 并且,由于模型的调节也受验证集的影响,这就相当于把验证集暴露在模型训练中,造成信息泄露。每次基于模型在验证集上的性能来调节模型超参数都是一次暴露,随着调节次数曾多,你得到的模型是在验证集上性能越来越好,因为这正是你优化的目的,而实际上,我们需要的是模型的泛化能力,因此我们需要一个全完干净的,前所未见的数据集来评估模型,这就是测试集。我们的模型一定不能读取与测试集有关的任何信息,即使间接读取也不行。如果基于测试集性能来调节模型,那么对泛化能力的衡量是不准确的。
    • 将数据划分为训练集、验证集合测试集可能看起来很简单,但如果可能数据很少,还有几种高级方法可以派上用场。我们来介绍三种经典的评估方法:简单的留出验证、K折验证,以及带有打乱数据的重复K折验证。

4.4 防止过拟合的几种方法

  1. 过拟合就是从训练数据中学到错误或无关紧要的模式,最优解决方法是获取更多训练数据
  2. 次要的解决办法是调节模型允许存储的信息量,这种降低过拟合的方法叫做正则化
    2.1. 减小网络大小。更大的网络有时并不一定越好,因为其训练损失很快就接近0,网络的容量越大,它拟合训练数据(即得到很小的训练损失)的速度就很快,但也更容易过拟合。
    2.2. 添加权重正则化。注意L2正则化也叫权重衰减,两者只是名称不同对正则化仍旧不是很懂,截图一个博主的讲解
    在这里插入图片描述

2.3. 添加Dropout正则化:神经网络最有效也最常用的正则化方法之一。某一层的dropout就是在训练过程中随机将该层一些输出特征舍弃(设置为0)

这篇关于《Python深度学习》阅读小记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!