李宏毅《机器学习》Task03 - 误差和梯度下降

零、均值和方差

设随机变量 X ∼ F ( μ , σ 2 ) X \thicksim F(\mu, \sigma^2) XF(μ,σ2),且 X i X_i Xi 独立同分布于 F F F,则:

名称符号表达式
总体均值 μ \mu μ离散型1 E ( X ) = ∑ i = 1 n x i p i E(X)=\sum_{i=1}^n{x_ip_i} E(X)=i=1nxipi
连续型1 E ( X ) = ∫ − ∞ + ∞ x f ( x ) d x E(X)=\int_{-\infty}^{+\infty}{xf(x)dx} E(X)=+xf(x)dx
总体方差 σ 2 \sigma^2 σ2 1 n ∑ i = 1 n ( X i − μ ) 2 \frac{1}{n}\sum_{i=1}^{n}{(X_i-\mu)^2} n1i=1n(Xiμ)2
样本均值 (估计) X ˉ \bar X Xˉ 1 n ∑ i = 1 n X i \frac{1}{n}\sum_{i=1}^{n}{X_i} n1i=1nXi
样本方差(估计) S 2 S^2 S2 1 n − 1 ∑ i = 1 n ( X i − X ˉ ) 2 \frac{1}{n-1}\sum_{i=1}^{n}{(X_i-\bar X)^2} n11i=1n(XiXˉ)2
  • E ( X ˉ ) = μ E(\bar X)=\mu E(Xˉ)=μ, D ( X ˉ ) = σ 2 n D(\bar X)=\frac{\sigma^2}{n} D(Xˉ)=nσ2
  • E ( S 2 ) = n − 1 n σ 2 E(S^2)=\frac{n-1}{n}\sigma^2 E(S2)=nn1σ2,当 n → ∞ n→∞ n 时, E ( S 2 ) = σ 2 E(S^2)=\sigma^2 E(S2)=σ2

概率论中,方差用于度量随机变量和其数学期望(即均值)之间的偏离程度。2

一、误差

1. 误差的来源

  • 偏差 (bias) b b b
  • 方差 (variance) σ 2 \sigma^2 σ2

误差哪里来

2. 误差分析

假设待估计的值为 f ^ \hat f f^,我们训练出来的最佳值为 f ∗ f^* f,用 f ∗ f^* f来估计 f ^ \hat f f^,就需要评价其准确程度。

打个比方,将 f ^ \hat f f^ 看作靶心,做一次训练的 f ∗ f^* f 看作打到靶上的弹孔,多个弹孔构成一个样本集合 X X X

  • 偏差:取这些弹孔的期望值 f ˉ \bar f fˉ(样本均值),即我们自己瞄准的位置,其 与靶心的距离 即为偏差。
  • 方差: f ∗ f^* f f ˉ \bar f fˉ的距离,即我们 打出的点 和我们 瞄准的点 之前的距离。方差越大,点的离散程度越大。

越复杂的模型不一定能带来更好的结果,其点的散布程度越大,从而导致偏离程度可能越小。而简单的模型受到不同数据的影响比较小。

偏差和方差

较简单的模型较复杂的模型
方差小,偏差大方差大,偏差小
误差受偏差影响大误差受方差影响大
欠拟合过拟合
需要重新设计模型
(增加输入特征,换复杂模型)
增加数据、正则化(平滑曲线)

3. 减小误差

  • 权衡偏差和方差
  • 选一个模型,衡量两种误差使得总错误最小

训练好的模型,在我们自己的测试集上误差达到最小,但是在其它公共测试集上的误差不一定达到最小!

3.1 交叉验证

交叉验证

  • 把训练集分为两组:训练集 + 验证集(用于选择最好的模型)
  • 经过训练后,在验证集上测试,选出误差最小的模型 f ∗ f^* f
  • f ∗ f^* f 用于公共测试集上,这时候的误差才能真正反映在私有测试集上得到的误差
  • 不建议从公共测试集测试后,再回头考虑模型——这样会考虑公共测试集的偏差bias,不能真实反映在私有测试集得到的结果

若担心训练集拆分的时候分的效果比较差,则可使用如下方法。

3.2 N-折交叉验证

将训练集分成N份,比如分成3份,每次拿1份作验证集,其他两份作训练集。
N-折交叉验证

  • 计算多次训练后每个模型的平均误差
  • 选取平均误差最小的模型,在公共测试集上测试

二、梯度下降

1. 回顾

在回归问题3的第三步中,需要解决下面的最优化问题:
θ ∗ = arg min ⁡ θ L ( θ ) \theta^*=\argmin_\theta L(\theta) θ=θargminL(θ)
L L L:损失函数
θ \theta θ:一组参数

这里假设一组有两个参数 { θ 1 , θ 2 } \{\theta_1, \theta_2\} {θ1,θ2},随机初始化一组参数,记作 θ 0 = [ θ 1 0 θ 2 0 ] \theta^0= \left[ \begin{matrix} \theta_1^0 \\ \theta_2^0 \end{matrix} \right] θ0=[θ10θ20].

参数更新:
[ θ 1 0 θ 2 0 ] = [ θ 1 0 θ 2 0 ] − η [ ∂ L ( θ 1 0 ) / ∂ θ 1 ∂ L ( θ 2 0 ) / ∂ θ 2 ] \left[ \begin{matrix} \theta_1^0 \\ \theta_2^0 \end{matrix} \right]=\left[ \begin{matrix} \theta_1^0 \\ \theta_2^0 \end{matrix} \right]-\eta\left[ \begin{matrix} \partial L(\theta_1^0)/\partial \theta_1 \\ \partial L(\theta_2^0)/\partial \theta_2 \end{matrix} \right] [θ10θ20]=[θ10θ20]η[L(θ10)/θ1L(θ20)/θ2]

反复执行如下步骤:

  • 在某点处计算一次梯度(方向)
  • 向该方向移动
    参数更新

2. 梯度下降法的优化

Tip1:调整学习率

调整学习率就是调整梯度下降的步伐,步子太小,下降太慢,步子太大,很可能就跨过了局部最小点。

自适应学习率(Adaptive Learning Rates)原则:

  • 学习率随着参数的更新越来越小
    • 例如:在第 t 次训练时,学习率 η t = η / t + 1 \eta^t= \eta/\sqrt{t+1} ηt=η/t+1
  • 最好不同的参数都给不同的学习率
Adagrad 算法

每个参数的学习率都把它除上之前微分的均方根。下表为参数更新对比:

常规梯度下降法Adagrad 算法
w t + 1 ← w t − η t g t w^{t+1} \leftarrow w^t - \eta^tg^t wt+1wtηtgt
w t + 1 ← w t − η t σ t g t w^{t+1} \leftarrow w^t-\frac{\eta^t}{\sigma^t}g^t wt+1wtσtηtgt
  • w w w 是某一个参数
  • σ t \sigma^t σt 为之前参数的所有微分的均方根,对于每个参数都是不一样的
Adagrad 算法参数更新的过程:

参数更新
矛盾之处
解释:
解释

Tip2:随机梯度下降法(Stochastic Gradient Descent)

常规梯度下降法随机梯度下降法
L o s s = ∑ n [ y ^ n − ( b + ∑ w i x i n ) ] Loss=\sum_n [\hat y^n - (b+\sum w_ix_i^n)] Loss=n[y^n(b+wixin)] L o s s n = [ y ^ n − ( b + ∑ w i x i n ) ] 2 Loss^n=[\hat y^n-(b+\sum w_ix^n_i)]^2 Lossn=[y^n(b+wixin)]2
θ i = θ i − 1 − η ∇ L o s s ( θ i − 1 ) \theta^i=\theta^{i-1}-\eta\nabla Loss(\theta^{i-1}) θi=θi1ηLoss(θi1) θ i = θ i − 1 − η ∇ L o s s n ( θ i − 1 ) \theta^i=\theta^{i-1}-\eta\nabla Loss^n(\theta^{i-1}) θi=θi1ηLossn(θi1)

这里的损失函数不需要处理训练集所有的数据,选取一个样本 x n x_n xn 即可

比较

  • 随机梯度下降更快:常规梯度下降法走一步要处理所有20个例子,但随机算法此时已经走了20步

Tip3:特征缩放(Feature Scaling)

  • 解释:把不同的特征分布调整到同一个范围内
    特征缩放
    目的
    对于不同权重的参数,左边的梯度下降是顺着等高线切线法线方向走的;但对于差不多权重的参数来说,右边就可以向着圆心(最低点)走,这样更有效率。
做法 —— 正态分布标准化

标准化

  • 对每个维度 i i i(绿色框)都计算平均数 m i m_i mi 和标准差 σ i \sigma_i σi
  • 对第 r r r 个例子的第 i i i 个输入做 标准化 处理

3. 梯度下降的限制

在这里插入图片描述

  • 容易卡在局部极值(非最小值)
  • 有可能停在偏导值为0或趋于0的点(非极值点)

  1. 总体均值 - 百度百科 ↩︎ ↩︎

  2. 样本方差与总体方差 ↩︎

  3. 李宏毅《机器学习》Task02 - 回归 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beta Lemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值