DATAWHALE-李宏毅机器学习-3

本文探讨了模型优化中的误差来源,包括偏差(Bias)和方差(Variance),并解释了过拟合和欠拟合的概念。针对偏差问题,建议增加模型复杂度,如添加特征;为降低方差,可以引入更多数据或正则化。梯度下降法作为参数优化的方法,通过迭代最小化损失函数来更新模型参数。文中提到了学习率的重要性以及Adagrad和随机梯度下降等优化策略。此外,还讨论了梯度下降的局限性,如陷入局部最优和平滑区域。

回归误差

Errors与Bias

  • 假设f^\hat ff^是最佳的model(function),我们从training data中所找出的f∗f^{*}f实际上是f^\hat ff^的估测值(estimator)。f∗f^{*}ff^\hat ff^间的差距可以类比与靶心和落靶位置之间的距离。这个差距来源于Bias(瞄准的位置和f^\hat ff^间的差距)和Variance(落点和瞄准的位置)。
    (from李宏毅老师课程中的slides)
    Bias和Variance的解释图
  • 复杂的模型:small bias and large variance overfitting
  • 简单的模型:large bias and small variance under fitting
  • 想要improve model的时候要诊断是 bias还是variance大。对于bias来说,redesign your model,比如添加更多的features或者改变次幂项做更复杂的模型。对于large variance,更多的data(一般不具有实际性,但是或许可以根据经验或者知识自己造数据)或者正则化(Regularization)
  • 在bias和variance之间做出trade-off。
    Training set选择出的error最小的model,在Testing set上的效果不一定是最好的。

Gradient Descent

梯度下降法的核心是寻找参数使得L(Loss function)到最小值。
θ∗=arg⁡min⁡θL(θ)\theta ^*=\arg \min \limits_{\theta} L(\theta)θ=argθminL(θ) 其中θ\thetaθ是一族参数(parameters)。
θ\thetaθ进行迭代计算。如下:
∇L(θ)=[∂L(θ1)∂L(θ1∂L(θ2)∂L(θ2]\nabla L(\theta)=\begin{bmatrix} \frac{\partial L(\theta_1)}{\partial L(\theta_1} \\ \frac{\partial L(\theta_2)}{\partial L(\theta_2} \end{bmatrix}L(θ)=[L(θ1L(θ1)L(θ2L(θ2)]
迭代式:
θ1=θ0−η∇L(θ0) \theta^1 = \theta^0 -\eta \nabla L(\theta^0)θ1=θ0ηL(θ0)
η\etaη被称为学习率(Learning rate)

调整学习率至关重要

  • 一些相关算法的出现的出现
    简单的思想,例如随着次数的增加,通过一些因子来减少学习率,学习率依照不同情形情况设置,没有通用的值
  • Adagrad 算法 (每个参数的学习率都除以之前微分的均方根)
    wt+1←wt−η∑i=0t(gi)2gtw^{t+1}\leftarrow w^{t}-\frac{\eta}{\sum_{i=0}^{t}(g^{i})^2}g^twt+1wti=0t(gi)2ηgt
    单参数函数(想一下二次函数求极值的例子)中,梯度越大,就跟最低点的距离越远。但是在多参数下,这个结论不一定成立。与最低点间的距离(即梯度下降移动的步伐)不止和一次微分成正比,还和二次微分成反比。于是应:|一次微分|二次微分\frac{|一次微分|}{二次微分}二次微分|一次微分|使用∑i=0t(gi)2\sum_{i=0}^{t}(g^{i})^2i=0t(gi)2来近似二次微分(省时省力)。
  • 随机梯度下降法(Stochastic Gradient Descent)
    喂一组数据就更新一次梯度,不需要像梯度下降法每次更新梯度使用所有的数据。
    -特征缩放(make different features have the same scaling)
    使多个参数在更新梯度时学习率尽量一致。
    xir′←xir−miσi{x_{i}^{r}}'\leftarrow \frac{x_i^r-m_{i}}{\sigma_{i}}xirσixirmi 使每一组特征的平均值为0,方差为1(标准化)。

梯度下降的数学理论

每次更新参数,不一定使得损失函数更小。
泰勒展开的前提即h(x)在x=x0x=x_0x=x0点的某个领域内有无限阶导数(即无限可微分,infinite differentiable),在x0x_0x0的邻域内有
h(x)=∑k=0∞h(x0k)k!(x−x0)k=h(x0)+h′(x0)(x−x0)+h′′(x0)2!(x−x0)2\begin{aligned} h(x) &= \sum_{k=0}^{\infty}\frac{h(x_{0}^k)}{k!}(x-x_0)^k\\ &=h(x_{0})+h'(x_{0})(x-x_{0})+\frac{h''(x_{0})}{2!}(x-x_{0})^2 \end{aligned}h(x)=k=0k!h(x0k)(xx0)k=h(x0)+h(x0)(xx0)+2!h′′(x0)(xx0)2
xxx接近x0x_{0}x0时,有$h(x)≈h(x0)+h′(x0)(x−x0)h(x) \approx h(x_{0})+h'(x_{0})(x-x_{0})h(x)h(x0)+h(x0)(xx0)

梯度下降的限制

  • 容易陷入局部极值
  • 微分是0,但不是极值
  • 还有可能微分值趋近于0或者小于某一个数(例如10−610^{-6}106)比较平缓,但并不是极值点
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值