ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《Python深度学习》阅读小记

2021-07-11 19:35:09  阅读:168  来源: 互联网

标签:训练 验证 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,模型,学习,正则,深度,数据,小记
来源: https://blog.csdn.net/GENGXINGGUANG/article/details/118655534

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有