2.Regression

2.1线性回归模型

回归模型应用案例(Regression Cases)

  • 股票市场预测(Stock Market Forecast)
    预测某个公司明天的股票情况
  • 自动驾驶车(Self-Driving Car)
    预测方向盘转动角度
  • 推荐系统(Recommendation)
    预测某用户购买某商品的可能性

线性回归模型(Linear Regression Model)

y=f(x)=wx+by=f(x)=w \cdot x+b

  • yy是输出;
    y^\hat{y} 是真实值/标签 (label)

  • ww 是权重 (weight) ;

  • bb 是偏置 (bias) :

  • xx 是输入 (input),也可叫做特征 (feature)

    数据集中一般包含多个object,每个object一般包含多个component。此时,上标是object的索引,下标是component的索引。

  • 损失函数 (Loss Function)

    如果不考虑模型的好坏,衡量一个函数的好坏,其实是衡量模型参数的好坏。
    以线性模型为例,就是衡量参数和的好坏。如
    L(f)=L(w,b)=n=110(y^(b+wxn))2L(f)=L(w, b)=\sum_{n=1}^{10}\left(\hat{y}-\left(b+w \cdot x^n\right)\right)^2 ,把所有样本误差的平方和作为损失函数

  • 输入: 一个函数

  • 输出: 多么地不好 (how bad it is)。损失函数值越大,则这个函数越差、与数据集中内容越不相符。

梯度下降 (Gradient Descent)

梯度下降可以优化损失函数的值,使其尽量小,即可找到最好(在数据集上拟合效果最好)的模型参数。

现在假设模型 ff 中只有一个参数 ww ,则损失函数为 L(f)=L(w)L(f)=L(w) ,梯度下降算法如下(若模型有多个参数,按相同方法更新各参数)

  1. 初始化参数
    随机选取一个 w0w^0 (并不一定是随机选取),令 w=w0w=w^0
  2. 计算梯度

dL(f)dww=w0\left.\frac{d L(f)}{d w}\right|_{w=w^0}

​ 如果小于 0 ,此时 ww 增大则 L(f)L(f) 会减小; 如果大于 0 ,此时 ww 减小则 L(w)L(w) 会减小。如果模型有多个参数,则计算损失函数在各个参数方向上的偏导数。

  1. 更新模型参数

w1=w0lrdL(f)dww=w0w^1=w^0-\left.\operatorname{lr} \frac{d L(f)}{d w}\right|_{w=w^0}

ww 的变化量取决于梯度和学习率 (Learning Rate) 的大小: 梯度绝对值或学习率越大,则 ww变化量越大。如果模型有多个参数,则用上一步计算出的偏导数对应更新各参数。

  1. 重复第 2 步和第 3 步
    经过多次参数更新/迭代 (iteration),可以使损失函数的值达到局部最小 (即局部最优,Local Optimal),但不一定是全局最优(Global Optimal)。

Model Bias

线性模型过于简单,

All Piecewise Linear Curves=Constant+sum of a set of 简单线性函数

Sigmoid function

y=c 11+e(b+wx1)=c sigmoid(b+wx1)\begin{equation} \begin{aligned} y&=c\ \frac{1}{1+e^{-\left(b+w x_1\right)}}\\ &=c\ sigmoid(b+wx_1) \end{aligned} \end{equation}

image-20231123171204668

通过改变sigmoid function的参数来拟合各种蓝色function

  • ww:改变倾斜程度
  • bb:左右移动
  • cc:改变高度

最终的拟合:

image-20231123171559364

New Model:More Features

image-20231123171734479