机器学习-李宏毅-Lecture1-Regression-Case Study课程笔记

链接

pdf

Regression

  • 股价预测 输入是历史 输出是明日股价
  • 自动驾驶 输入是路况 输出是方向盘角度
  • 推荐系统 输入是使用者和商品 输出是推荐的商品

example

预测神奇宝贝进化后的CP值,用来判断是否进化。机器学习-李宏毅-Lecture1-Regression-Case Study课程笔记

第一步 model

寻找一个function set,比如:y=b+wxcpy=b+w*x_{cp}
w和b可以是无穷的。
表示成线性形式:y=b+wixiy=b+\sum w_ix_i,
其中wiw_i是权重weight,bb是bias,xix_i是各种feature

第二步 goodness of function

  1. 准备包含输入数据、输出数据的训练集Training data。
  2. 定义一个Loss function:是function的function。输入是function(w,b ),输出的function的好坏
    L(f)=L(w,b)=n=110(y^n(b+wxcpn))2L(f)=L(w,b)=\sum_{n=1}^{10}(\widehat{y}^n-(b+w*x_{cp}^n))^2
    均方差

第三步 Best function

找到一个function,使得Loss(function)最小。这个使得L(f)最小的function称为best function。
f=arg minfL(f)f^*=\mathop{arg \ min}_{f} L(f)
也就是
w,b=arg minw,bL(w,b)w^*,b^*=arg \ min_{w,b}L(w,b)
使用gradient descent来求解上面的式子。

gradient descent

在只有一个参数情况下计算loss function

  • 随机选取初始点
  • 计算梯度
  • 如果梯度是正 减少w
  • 如果梯度是负 增加w
    机器学习-李宏毅-Lecture1-Regression-Case Study课程笔记
    w1=w0ηdLdww=w0w^1 = w^0 - \eta\frac{dL}{dw}|_{w=w^0}
    这里的η\eta指的是学习速率learning rate,表示参数更新的速度。
    这里的减号正好与微分值的正负相反。
    接下来重新计算w1w^1的微分
    w2=w1ηdLdww=w1w^2 = w^1 - \eta\frac{dL}{dw}|_{w=w^1}
    重复迭代计算,到达Local optimal(局部最优点)。微分为0,无法继续更新。
    在两个参数的情况下计算梯度。
  • 随机选取初始点w0,b0w^0,b^0
  • 对w,b计算梯度
  • Lww=w0,b=b0Lbw=w0,b=b0\frac{\partial L}{\partial w}|_{w=w^0,b=b^0} \frac{\partial L}{\partial b}|_{w=w^0,b=b^0}
  • 如果梯度是正 减少w
  • 如果梯度是负 增加w
  • 更新参数
  • w1=w0ηLww=w0,b=b0w^1 = w^0 - \eta\frac{\partial L}{\partial w}|_{w=w^0,b=b^0}
  • b1=b0ηLbw=w0,b=b0b^1 = b^0 - \eta\frac{\partial L}{\partial b}|_{w=w^0,b=b^0}
  • 重复计算梯度 更新梯度
    问题:梯度更新方向与初始值相关,不同初始值可能会得到不同的Local optimal。但是在Linear Regression中,不存在,因为Loss function是凸函数。(凸函数没有Local optimal,只有全局最优解)

Result

我们真正关心的是在训练集上的误差。
提高结果的方法可以有用二项式或多项式model。越复杂的model对training data的拟合程度越好,但是有可能在test data上表现不是很好,这就是出现了过拟合的情况。所以不一定选取最复杂的函数,要选择最合适的。
更复杂的函数的function set会包含简单的函数的function set。
进一步地,对于不同种类的神奇宝贝,采用不同的参数。

Regularization

在损失函数中添加一项来限制过拟合。机器学习-李宏毅-Lecture1-Regression-Case Study课程笔记
倾向于选择较小的w。越小的w越平滑,数据的波动更小。选择一个合适的λ\lambda
正则化时候不考虑bias。平滑与否与常数项无关。