李宏毅机器学习笔记——误差和梯度下降

1、模型的误差

1.1 误差的来源

  • 主要有两个来源,分别是 bias(偏差)和 variance(方差)
  • Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度
  • Variance反映的是模型每梯度下降法原理一次输出结果与模型输出期望之间的误差,即模型的稳定性

李宏毅机器学习笔记——误差和梯度下降

1.2 关于欠拟合与过拟合的测试你适合学心理学吗一种理解

李宏毅机器学习笔记——误差和梯度下降

  • 简单模型(左边)是偏差比较大造成可视化数据图表的误差,这种情况叫做欠拟合。此时应该重新设计模型。因为之前的函数集里面可能根本没有梯度洗脱包含f∗,将更多的函数(特征)加进去,或者考梯度下降法原理和步骤虑更多次幂、更复杂的模型。 如果此时强行再收集更多的data去训可视化练,这是没有什么帮助的,因为设计的函数集本身就不好,再找更多的训练集也不会更好。
  • 复杂模型(右边)是方差过大造成的误差,这种情况叫做过拟合 。测试抑郁程度的问卷简单粗暴的解决方法:更多的数据

1.3近似误差和估计误差

  • 近似误差(approximation error):理解算法为对现有训练集的训练误差,更关注于“训练”。
  • 估计误差(estimation error):理随机梯度下降解为对测试集的测试误差,更关注于“泛化”。
  • 跟偏差vs方差的概测试仪念有点像。
  • k近邻算法中,如果k取值较小,模型偏向于低近似误差,高估计误差,即偏向于过拟合

1.4 模型选择

  • 偏差和方差之间需要一个权衡 。用训练集训练不同的模型,然后在测试集上比梯度下降法较错误,模型的错误最小,不一梯度志愿定就是最好。因为你手上的测试集,并不是真正完整的测试集。比如在已有的测试集上错误是0.5,但有条件收集到更多的测试集后通常得到的错误都是大于0.5的。
  • 交叉验证。梯度散度旋度就是将训练集再分为梯度怎么求两部分,一部梯度下降分作为训练集,一部分作为验证集。用训练集训练模型,然后在验证集上比较,算法的特性确定出最好的模型之后,再用全部的训练集训练模型,然后再用public的测试集可视化进行测试,此时一般得到算法导论可视化工具错误都是大一些的。不过此时会比较想再回去调一下参数,调整模型,让在public的测试集上更好,但不太推荐这样。
  • N梯度怎么求-折交叉验证。将训练集分成N份,每次把其中一份作为验证集。

2、梯度下降

Tip算法1:调整算法分析的目的是学习速率

  • 小心翼翼地调整学习率

李宏毅机器学习笔记——误差和梯度下降

上图左边黑色为损失函数的曲线,假可视化是什么意思设从左边最高点开始,如果学习率调整可视化是什么意思的刚刚好,比如红色的线,就能顺利算法分析的目的是找到最低点。如果学习率调整的太小,比如蓝色的线,就会走的太慢,虽然这种情况给足够多的时间也可以找到最低点,实际情况可能会等不及可视化数据图表出结果。如果 学习率调整的有点大,比如绿色的线,就会在上面震荡,走不下去,永远无法到达最低点。还有可能非常大,比如黄色的线,直接就飞出去了,可视化设计更新参数的时候只会发现损失函数越更新越大。

虽然这样的可视化可以很直观观察,但可视化也只是能在参数测试英文是一维或者二维的时候进行,更高维的情况已经无法可视化了。

解决方法就是上图右边的方案,将随机梯度下降参数改变对损失函数的影响进行可视化。比梯度散度旋度如学习率太小(蓝色的线),损失函数下降的非常慢;学习率太大(绿色的线),损失函数下降很快,但马上就卡住不下降了;学习率特别大(黄色的线),损失函数就飞出去了;红色的就是差不多刚好,可以得到一个好的结果。

  • 自适应学习率。举一个简单的思想:算法的空间复杂度是指随着次数的增加,通算法是什么过一些因子来减少学习率
  • Adagrad算法。每个可视化是什么意思参数的学习率都把它除上之前微分的均方根。

Tip2:随机梯度下降法

  • 不需要像之前那样对所有的数据进梯度下降法行处理,只需要计算某一个例子的损失函数Ln,就可以赶紧update 梯度,速度更快

李宏毅机器学习笔记——误差和梯度下降

Tip算法3:特征缩放

  • 参数scaling如果相差较大,使用同一组学习率的效果算法分析的目的是不好

发表评论

提供最优质的资源集合

立即查看 了解详情