zoukankan      html  css  js  c++  java
  • 动手学深度学习PyTorch版-task03

    task0301.过拟合欠拟合及其解决方案


    课后习题


    训练集、验证集和测试集的意义
    https://blog.csdn.net/ch1209498273/article/details/78266558
    有了模型后,训练集就是用来训练参数的,说准确点,一般是用来梯度下降的。而验证集基本是在每个epoch完成后,用来测试一下当前模型的准确率。因为验证集跟训练集没有交集,因此这个准确率是可靠的。那么为啥还需要一个测试集呢?
    这就需要区分一下模型的各种参数了。事实上,对于一个模型来说,其参数可以分为普通参数和超参数。在不引入强化学习的前提下,那么普通参数就是可以被梯度下降所更新的,也就是训练集所更新的参数。另外,还有超参数的概念,比如网络层数、网络节点数、迭代次数、学习率等等,这些参数不在梯度下降的更新范围内。尽管现在已经有一些算法可以用来搜索模型的超参数,但多数情况下我们还是自己人工根据验证集来调。
    那也就是说,从狭义来讲,验证集没有参与梯度下降的过程,也就是说是没有经过训练的;但从广义上来看,验证集却参与了一个“人工调参”的过程,我们根据验证集的结果调节了迭代数、调节了学习率等等,使得结果在验证集上最优。因此,我们也可以认为,验证集也参与了训练。


    task0302.梯度消失、梯度爆炸





    • 3个偏移:

    协方差偏移是指测试时输入与原来训练集的特征有差异;
    标签偏移是指测试集出现了训练集中没有的类;
    概念偏移是指同一个东西不同的叫法,好比可乐,中国人叫可乐,外国人叫drink。

    课后习题




    task0303.循环神经网络进阶

    • GRU

    时间步数较大或者较小时,循环神经网络梯度较容易出现梯度衰减/梯度爆炸。
    虽然裁剪梯度可以应对梯度爆炸,但没法解决梯度衰减问题。
    所以提出⻔控循环神经⽹络GRU,来捕捉时间序列中时间步距离较⼤的依赖关系
    RNN存在的问题:梯度较容易出现衰减或爆炸(BPTT)
    ⻔控循环神经⽹络:捕捉时间序列中时间步距离较⼤的依赖关系



    重置⻔有助于捕捉时间序列⾥短期的依赖关系;
    更新⻔有助于捕捉时间序列⾥⻓期的依赖关系。

    • LSTM
      长短期记忆long short-term memory :

    遗忘门: 控制上一时间步的记忆细胞
    输入门: 控制当前时间步的输入
    输出门: 控制从记忆细胞到隐藏状态
    记忆细胞:⼀种特殊的隐藏状态的信息的流动

    • 深度循环神经网络
    • 双向循环神经网络

    课后习题






  • 相关阅读:
    vue学习之路 —— vue+mock 前后端分离随机生成数据
    angular companent 组件
    分享到QQ空间
    web测试实践
    白盒测试实践-day....
    白盒测试实践-day...
    白盒测试实践-day..
    白盒测试实践-DAY.
    白盒测试实践
    白盒测试实践-DAY1
  • 原文地址:https://www.cnblogs.com/HongjianChen/p/12333300.html
Copyright © 2011-2022 走看看