zoukankan      html  css  js  c++  java
  • 李宏毅机器学习课程笔记-2.1线性回归模型

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

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

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

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

      预测方向盘转动角度

    • 推荐系统(Recommendation)

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

    线性回归模型(Linear Regression Model)

    (y=f(x)=wcdot 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+wcdot 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-lrfrac{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):@绝版臭咸鱼

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

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


  • 相关阅读:
    VC++以及VS个版本比较 及 C++编译器比较
    这本书的封面
    json_encode(),json_deocde()用法说明
    循环匹配,一般用于多选列表选中状态
    js判断变量是否被定义
    js onload()事件调用方法
    js push使用方法
    iframe去掉边滚动条
    ajax上传文件(使用ajaxfileupload)
    基于url的权限控制
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/14185923.html
Copyright © 2011-2022 走看看