【Datawhale X 李宏毅苹果书 AI夏令营】Task 2《深度学习详解》- 1.2 了解线性模型

线性模型的基本概念

线性模型是将输入的特征 x x x乘上一个权重,再加上一个偏置就得到预测结果的模型,例如 y = b + w x 1 y = b + wx_1 y=b+wx1

线性模型的优化

  1. 梯度下降:通过计算损失函数对参数的微分,来更新参数,以找到最优的 w w w b b b。在深度学习框架中,如PyTorch,微分的计算由程序自动完成。

    • 例如,对于初始值 w 0 w^0 w0 b 0 b^0 b0,更新公式为:
      w 1 ← w 0 − η ∂ L ∂ w ∣ w = w 0 , b = b 0 b 1 ← b 0 − η ∂ L ∂ b ∣ w = w 0 , b = b 0 \begin{gathered} w^{1} \leftarrow w^{0} - \left.\eta \frac{\partial L}{\partial w}\right|_{w = w^{0}, b = b^{0}} \\ b^{1} \leftarrow b^{0} - \left.\eta \frac{\partial L}{\partial b}\right|_{w = w^{0}, b = b^{0}} \end{gathered} w1w0ηwL w=w0,b=b0b1b0ηbL w=w0,b=b0
    • 不断更新 w w w b b b,期待找到最优的 w ∗ w^* w b ∗ b^* b
    • 如图1.5所示,通过梯度下降计算,得到的最优值 w ∗ = 0.97 w^* = 0.97 w=0.97 b ∗ = 100 b^* = 100 b=100,在训练数据上的损失 L ( w ∗ , b ∗ ) = 480 L(w^*, b^*) = 480 L(w,b)=480
  2. 考虑更多天数的改进

    • 最初的模型只考虑前一天的观看人次,预测效果不理想,因为数据存在周期性,每隔7天会有两天观看人数特别少。
    • 改进后的模型考虑前7天的观看人次,即 y = b + ∑ j = 1 7 w j x j y = b + \sum_{j = 1}^{7} w_{j} x_{j} y=b+j=17wjxj,在训练数据上的损失降低到380。
    • 进一步考虑前28天的观看人次,即 y = b + ∑ j = 1 28 w j x j y = b + \sum_{j = 1}^{28} w_{j} x_{j} y=b+j=128wjxj,训练数据上的损失为330,在2021年没看过的数据上损失为460。
    • 考虑56天的观看人次,即 y = b + ∑ j = 1 56 w j x j y = b + \sum_{j = 1}^{56} w_{j} x_{j} y=b+j=156wjxj,训练数据上损失为320,没看过的数据上损失还是460,考虑更多天无法再降低损失。

线性模型的局限性及改进

  1. 局限性:线性模型过于简单, x 1 x_1 x1 y y y可能中间有比较复杂的关系,例如当 x 1 x_1 x1小于某一个数值时,前一天的观看次数跟隔天的观看次数成正比;当 x 1 x_1 x1大于一个数值时,隔天观看次数会变少,但线性模型永远无法模拟这种复杂关系,这称为模型的偏差。

  2. 改进方法 - 分段线性曲线

    • 分段线性曲线可以看作是一个常数加上一堆Hard Sigmoid函数,通过调整不同的Sigmoid函数的参数,可以逼近各种不同的分段线性函数,进而逼近任何连续的曲线。
    • 例如,红色曲线可以表示为 y = b + ∑ i c i σ ( b i + w i x 1 ) y = b + \sum_{i} c_{i} \sigma(b_{i} + w_{i} x_{1}) y=b+iciσ(bi+wix1),其中 σ \sigma σ为Sigmoid函数。
    • 可以用多个特征代入不同的 c c c b b b w w w,组合出更有灵活性的函数。

模型变形及实验结果

  1. 激活函数

    • Hard Sigmoid可以看作是两个修正线性单元(ReLU)的加总,ReLU的公式为 c ∗ m a x ( 0 , b + w x 1 ) c * max(0, b + wx_1) cmax(0,b+wx1)
    • Sigmoid或ReLU称为激活函数,常见的激活函数还有其他,但Sigmoid和ReLU最常见。
    • 实验结果表明,使用100个ReLU作为模型,在训练数据上的损失从320降到280,在测试数据上也有改善;使用1000个ReLU,训练数据上损失更低,但在没看过的数据上损失没有变化。
  2. 模型改进

    • x x x变成 a a a,即把 x x x乘上 w w w b b b,再通过激活函数(如Sigmoid或ReLU)得到 a a a,同样的事情反复多做几次,增加更多的未知参数。
    • 例如,每次加100个ReLU,输入特征为56天前的数据,做两次损失从280降到180,做3次从180降到140,在没看过的数据上也从430降到了380。
    • 但增加层数可能会导致过拟合,如4层在训练数据上损失低,但在没看过的数据上表现不如3层。

五、机器学习框架

  1. 训练过程包括三个步骤:

    • 写出含有未知数 θ \theta θ的函数 f θ ( x ) f_{\theta}(x) fθ(x),输入特征为 x x x
    • 定义损失函数(L),判断参数的好坏。
    • 解优化问题,找到使损失最小的 θ ∗ \theta^* θ,即 θ ∗ = a r g m i n θ L \theta^* = \underset{\theta}{arg min } L θ=θargminL
  2. θ ∗ \theta^* θ带入测试集,输出结果存起来,上传到相关平台(如Kaggle)。

补充知识

  1. 梯度下降是一种常用的优化算法,用于寻找函数的最小值。在机器学习中,通过梯度下降来更新模型的参数,以最小化损失函数。
  2. 过拟合是指模型在训练数据上表现很好,但在测试数据上表现不佳的现象。为了避免过拟合,可以采用正则化、增加数据量、早停等方法。
  3. 神经网络是由许多神经元组成的,通过层层堆叠形成深度神经网络。深度学习就是将神经网络做得更深,以提高模型的性能。
  4. 反向传播是训练深度学习模型时常用的一种算法,用于有效地计算梯度,从而更新模型的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值