当前位置:网站首页>1.1-回归

1.1-回归

2022-08-11 06:50:00 一条大蟒蛇6666

一、模型model

  • 一个函数function的集合:

    • 其中wi代表权重weight,b代表偏置值bias
    • 𝑥𝑖可以取不同的属性,如: 𝑥𝑐𝑝, 𝑥ℎ𝑝, 𝑥𝑤,𝑥

    𝑦 = 𝑏 + ∑ w i x i 𝑦=𝑏+∑w_ix_i y=b+wixi

  • 我们将𝑥𝑐𝑝拿出来作为未知量,来寻找一个最优的线性模型Linear model:
    y = b + w ∙ X c p   y = b + w ∙Xcp~ y=b+wXcp 

二、较好的函数function

  • 损失函数Loss function 𝐿:

    • L的输入Input是一个函数 f ,输出output则是一个具体的数值,而这个数值是用来评估输入的函数 f 到底有多坏

    • y ^ n \widehat{y}^n yn代表真实值,而 f ( x c p n ) f(x^n_{cp}) f(xcpn)代表预测值, L ( f ) L(f) L(f)代表真实值与预测值之间的总误差
      L ( f ) = ∑ n = 1 10 ( y ^ n − f ( x c p n ) ) 2 L(f)=\sum_{n=1}^{10}(\widehat{y}^n-f(x^n_{cp}))^2 L(f)=n=110(ynf(xcpn))2

    • 将函数 f 用w,b替换,则可以写成下面这样
      L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) 2 L(w,b)=\sum_{n=1}^{10}(\widehat{y}^n-(b+w \cdot x^n_{cp}))^2 L(w,b)=n=110(yn(b+wxcpn))2

    • 当 L 越小时,则说明该函数 f 越好,也就是该模型越好。在下图中的每一个点都代表一个函数 f

      image-20220802195837029

三、最好的函数function

  • 梯度下降Gradient Descent:就是求最好函数的过程

  • $f^{ } 代表最好的函数 f u n c t i o n , 代表最好的函数function, 代表最好的函数functionw{*},b{ }:$代表最好的权重weight和偏置值bias

    f ∗ = a r g m i n f L ( f ) f^{*} =arg \underset{f}{min} L(f) f=argfminL(f)

    w ∗ , b ∗ = a r g m i n w , b L ( w , b ) w^{*},b^{*}=arg \underset{w,b}{min} L(w,b) w,b=argw,bminL(w,b)

    = a r g m i n w , b ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) 2 =arg \underset{w,b}{min}\sum_{n=1}^{10}(\widehat{y}^n-(b+w \cdot x^n_{cp}))^2 =argw,bminn=110(yn(b+wxcpn))2

3.1 一维函数

下图代表Loss函数求梯度下降(Gradient Descent)的过程,首先随机选择一个 w 0 w^{0} w0。在该点对w求微分,如果为负数,那么我们增大 w 0 w^{0} w0的值;如果为正数,那么我们减小 w 0 w^{0} w0的值。

  • w ∗ = a r g m i n w L ( w ) w^{*}=arg\underset{w}{min}L(w) w=argwminL(w)
  • w 0 = − η d L d w ∣ w w^{0}=-\eta\frac{dL}{dw}|_{w} w0=ηdwdLw,其中 η 代表学习率:Learning rate,意味着每次移动的步长(step)
  • w 1 ← w 0 − η d L d w ∣ w = w 0 w^{1}\leftarrow w^{0}-\eta\frac{dL}{dw}|_{w=w^{0}} w1w0ηdwdLw=w0 w 1 w1 w1代表初始点 w 0 w^{0} w0要移动的下一个点,就这样一直迭代(Iteration)下去,最终就会找到我们的局部最优解:Local optimal solution

image-20220802204819209image-20220803225229903image-20220803225255771

3.2 二维函数

  • 对二维函数$Loss $ L ( w , b ) L(w,b) L(w,b)求梯度下降: [ ∂ L ∂ w ∂ L ∂ b ] g r a d i e n t \begin{bmatrix} \frac{\partial L}{\partial w}\\ \frac{\partial L}{\partial b} \end{bmatrix}_{gradient} [wLbL]gradient
  • w ∗ , b ∗ = a r g m i n w , b L ( w , b ) w^{*},b^{*}=arg \underset{w,b}{min} L(w,b) w,b=argw,bminL(w,b)
  • 随机初始化 w 0 , b 0 w^{0},b^{0} w0,b0,然后计算 ∂ L ∂ w ∣ w = w 0 , b = b 0 \frac{\partial L}{\partial w}|_{w=w^{0},b=b^{0}} wLw=w0,b=b0 ∂ L ∂ b ∣ w = w 0 , b = b 0 \frac{\partial L}{\partial b}|_{w=w^{0},b=b^{0}} bLw=w0,b=b0
    • w 1 ← w 0 − η ∂ L ∂ w ∣ w = w 0 , b = b 0 w^{1}\leftarrow w^{0}-\eta\frac{\partial L}{\partial w}|_{w=w^{0},b=b^{0}} w1w0ηwLw=w0,b=b0
    • b 1 ← b 0 − η ∂ L ∂ b ∣ w = w 0 , b = b 0 b^{1}\leftarrow b^{0}-\eta\frac{\partial L}{\partial b}|_{w=w^{0},b=b^{0}} b1b0ηbLw=w0,b=b0
image-20220803232007155

3.3 局部最优解和全局最优解

  • 公式化(Formulation) ∂ L ∂ w \frac{\partial L}{\partial w} wL和$
    \frac{\partial L}{\partial b}$:

    • L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) 2 L(w,b)=\sum_{n=1}^{10}(\widehat{y}^n-(b+w \cdot x^n_{cp}))^2 L(w,b)=n=110(yn(b+wxcpn))2
    • ∂ L ∂ w = 2 ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) ( − x c p n ) \frac{\partial L}{\partial w}=2\sum_{n=1}^{10}(\widehat{y}^n-(b+w \cdot x^n_{cp}))(-x^{n}_{cp}) wL=2n=110(yn(b+wxcpn))(xcpn)
    • ∂ L ∂ b = 2 ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) \frac{\partial L}{\partial b}=2\sum_{n=1}^{10}(\widehat{y}^n-(b+w \cdot x^n_{cp})) bL=2n=110(yn(b+wxcpn))
  • 在非线性系统中,可能会存在多个局部最优解:

    image-20220804074208523

3.4 模型的泛化(Generalization)能力

  • 将根据loss函数找到的最好模型拿出来,分别计算它在训练集(Training Data)和测试集(Testing Data)上的均方误差(Average Error),当然我们只关心模型在测试集上的具体表现如何。

    • y = b + w ∙ x c p y = b + w ∙x_{cp} y=b+wxcp Average Error=35.0
  • 由于原来的模型均方误差还是比较大,为了做得更好,我们来提高模型的复杂度。比如,引入二次项(xcp)2

    • y = b + w 1 ∙ x c p + w 2 ∙ ( x c p ) 2 y = b + w1∙x_{cp} + w2∙(x_{cp)}2 y=b+w1xcp+w2(xcp)2 Average Error = 18.4
  • 继续提高模型的复杂度,引入三次项(xcp)3

    • y = b + w 1 ∙ x c p + w 2 ∙ ( x c p ) 2 + w 3 ∙ ( x c p ) 3 y = b + w1∙x_{cp} + w2∙(x_{cp})2+ w3∙(x_{cp})3 y=b+w1xcp+w2(xcp)2+w3(xcp)3 Average Error = 18.1
  • 继续提高模型的复杂度,引入三次项(xcp)4,此时模型在训练集上的均方误差变得更小了,但测试集上的反而变大了,这种现象被称为模型的过拟合(Over-fitting)

    • $y = b + w1∙x_{cp} + w2∙(x_{cp})2+ w3∙(x_{cp})3+ w4∙(x_{cp})4 $ Average Error = 28.8
image-20220804085429768

3.5 隐藏的因素(hidden factors)

  • 当我们不仅仅只考虑宝可梦的cp值,将宝可梦的物种因素也考虑进去的话,在测试集上的均方误差降低到了14.3

image-20220804085728883image-20220804085825281

  • 当我们继续考虑其他的因素,比如每只宝可梦的身高Height,体重weight,经验值HP。模型此时变得更加复杂了,让我们来看看它在测试集上的具体表现如何,非常不幸模型再次出现过拟合。
image-20220804090313298

3.5 正则化(Regularization)

  • 为了解决过拟合的问题,我们需要重新设计一下损失函数 L,原来的损失函数只计算了方差,而没有考虑到含有干扰的输入对模型的影响。因此我们在 L 后面加上一项: λ ∑ ( w i ) 2 \lambda \sum (w_i)^2 λ(wi)2 ,以此来提高模型的泛化能力,使模型变得更加平滑,降低模型对输入的敏感(Sensitive)

    • 重新设计的损失函数 L : L ( f ) = ∑ n ( y ^ n − ( b + ∑ w i x i ) ) 2 + λ ∑ ( w i ) 2 L(f)=\underset{n}{\sum}(\widehat{y}^n-(b+\sum w_ix_i))^2+\lambda \sum (w_i)^2 L(f)=n(yn(b+wixi))2+λ(wi)2
  • 很显然根据下面的实验,我们取得了更好的表现, 当 λ = 100 时, T e s t E r r o r = 11.1 当\lambda=100时,Test Error = 11.1 λ=100时,TestError=11.1

image-20220804093414880
原网站

版权声明
本文为[一条大蟒蛇6666]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_46227276/article/details/126163712