zoukankan      html  css  js  c++  java
  • DataWhale八月组队学习-李宏毅深度学习Task03-误差来源与梯度下降

    误差的来源

    • 第一个误差来源是bias
    • 第二个误差来源是variance

    1 估测

    • 估测BiasVariance

      • 想要去估测x的平均值

        • 假设估计量

        • x中设立有限个数的样本点

        • 得出样本点均值(注意样本点均值不等同于x的均值,因为个数不一致)

        • 多次求得m,与x平均值进行对比

        • m的期望

        • 每一个mu之间的偏差量化

      • 想要估测bias

        • 求解s,用来估测the variance of x

        • 求其对应期望,随着N增大,两者之前的差距就会慢慢缩小

    2 平行宇宙例子(指代实验次数)

    在做回归的过程中,我们都会遇到biasvariance,有时候可能是bias出现偏差,有可能是variance出现偏差。训练集对应的生成的最好模型是star function,默认最优的模型是head function

    • Variance

      • 在所有宇宙中,我们都抓住十只宝可梦作为我们找到star function的训练数据

      • 在不同宇宙中,全部使用相同的模型,但是得到的star function是不同的

      • 在100个平行宇宙中都去找寻star function

      • 更换Model再次尝试(模型逐渐复杂)

      • 发现模型越复杂,variance越大,曲线散布很开。原因:比较简单的模型,受数据的影响会比复杂的模型更小。

    • Bias

      • star function的期望值

      • 如果平均所有的star function,它会更加接近head function

      • 发现模型越复杂,bias越小。

    • BiasVariance同时考虑

      蓝线表示当同时平衡biasvariance之后得出的error最小

      绿线表示误差来自于variance很大,就是过拟合现象

      红线表示误差来自于bias很大,就是欠拟合现象

    • 如何判断是过拟合还是欠拟合,也就是biasvariance哪个大?

      • 如果模型不能拟合训练样本,属于欠拟合现象
      • 如果模型能够拟合训练样本,但在测试集上得到的一个较大的error,属于过拟合现象。
    • 针对欠拟合的改进

      • 添加更多的特征作为输入
      • 增加模型复杂度
    • 针对过拟合的改进

      • 增加样本数量
      • 正则化

    3 模型选择

    • 模型的选择需要去平衡biasvariance带来的影响
    • 挑选能够使得误差最小的模型
    • 不要根据手头已有的测试数据集(public set)直接下定义说用哪种模型更好
      • 正确的做法是把测试集分为测试机和验证集,先用训练集找出最好的star function,再用验证集来挑选模型。再把模型应用于测试数据集,得到的是实际error

    梯度下降

    1 调试学习率

    • 手动设置学习率时要注意,太小太大都不好。
    • 自动设置学习率
      • 通常学习率随着参数的迭代更新会越来越小,
        • 起始点时,离Loss最低点距离很远,需要使用更大的学习率
        • 在参数迭代数次后,学习率应当减小
      • 不同的参数应该赋予不同的学习率

    2 不同的梯度下降

    • Adagrad(自适应梯度算法)

      • 将每个参数的学习率除以其之前导数的均方根

      • 矛盾点:

      • 矛盾点的解释:

        • 有时候梯度会出现反差,即原先算出的梯度很小,突然算出的梯度很大。或者原先算出的梯度很大,突然算出的梯度很小。除以均方根的目的就是想了解这种造成反差的效果。
        • 最好的步伐(现在的位置与最低点的距离)是同时考虑一次微分和二次微分。而二次微分可以用均方根来表示。
    • Stochastic Gradient Descent(随机梯度下降)

      • 每次只取一个样本,计算Loss

      • 再更新参数(只考虑一个样本)

      • 重复上述过程,所以在原先的梯度下降进行完整一次的时候,随机梯度下降已经进行了很多次梯度下降,所以速度比原先梯度下降快。

    • Feature Scaling(特征缩放)

      • 特征缩放的目的就是让每个特征的范围都限定于一个区域大小之内
      • 常见做法:
  • 相关阅读:
    杂项
    hdu 2094
    hdu acm 1004
    android 重装sdk或者系统的时模拟器出现can open ****
    使用Java模拟操作系统高优先级算法
    各种语法解释及用法
    枚举与结构
    闭包
    socket
    异常
  • 原文地址:https://www.cnblogs.com/MurasameLory-chenyulong/p/15160165.html
Copyright © 2011-2022 走看看