李宏毅机器学习课程笔记-2.1线性回归模型

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

  • 股票市场预测(Stock Market Forecast)

    预测某个公司明天的股票情况

  • 自动驾驶车(Self-Driving Car)

    预测方向盘转动角度

  • 推荐系统(Recommendation)

    预测某用户购买某商品的可能性

线性回归模型(Linear Regression Model)

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

  • \(y\)是输出;

    \(\hat y\)是真实值/标签(label)

  • \(w\)是权重(weight);

  • \(b\)是偏置(bias);

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

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

  • 损失函数(Loss Function)

    如果不考虑模型的好坏,衡量一个函数的好坏,其实是衡量模型参数的好坏。

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

    • 输入

      一个函数

    • 输出

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

梯度下降(Gradient Descent)

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

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

  1. 初始化参数

    随机选取一个\(w^0\)\(w^0\)并不一定是随机选取),令\(w=w^0\)

  2. 计算梯度

    \(\frac{dL(f)}{dw}|_{w=w^0}\)

    如果小于0,此时\(w\)增大则\(L(f)\)会减小;如果大于0,此时\(w\)减小则\(L(w)\)会减小。

    如果模型有多个参数,则计算损失函数在各个参数方向上的偏导数。

  3. 更新模型参数

    \(w^1=w^0-lr\frac{dL(f)}{dw}|_{w=w^0}\)

    \(w\)的变化量取决于梯度和学习率(Learning Rate)的大小:梯度绝对值或学习率越大,则\(w\)变化量越大。

    如果模型有多个参数,则用上一步计算出的偏导数对应更新各参数。

  4. 重复第2步和第3步

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


Github(github.com):@chouxianyu

Github Pages(github.io):@臭咸鱼

知乎(zhihu.com):@臭咸鱼

博客园(cnblogs.com):@臭咸鱼

B站(bilibili.com):@绝版臭咸鱼

微信公众号:@臭咸鱼的快乐生活

转载请注明出处,欢迎讨论和交流!


posted @ 2020-12-24 19:28  臭咸鱼  阅读(195)  评论(0编辑  收藏  举报