zoukankan      html  css  js  c++  java
  • 机器学习笔记(2)单变量线性回归

    模型介绍

    关于回归问题的模型,相当于给一些x(自变量),y(因变量)的数据对构成的数据集,去建立一个数学函数模型(model),之后就能根据这个函数模型,给出x(自变量条件)之后,预测出y(因变量结果)的值。

    这里对于条件特征定义为x,结果定义为y。

    Training Set(训练集)--> Learning Algorithm(学习算法) --> h(假设函数)

    然后在得到h之后,可以通过:

    x(条件特征)--> h(假设函数) --> y(结果)

    针对于这个思想和基本模型,可以利用比较多的数学上的统计方法做出模型。


    代价函数

    对于线性模型,我们常使用如下这个假设函数模型:

    [h_θ(x)=θ_0+θ_1x ]

    对于这个线性的假设函数,如何得到一个合适的θ0和θ1是的这个假设函数更契合我们需要预测的东西就至关重要了,这里就需要用到所谓的代价函数。

    平方误差代价函数(数学定义)

    我们希望(h_θ(x^{(i)})-y^{(i)})尽可能的小,对于一整个样本集合,可以使用以下的式子:

    [J(θ_0,θ_1)=frac{1}{2m}sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2} ]

    其中m是样本容量,也就是样本数据的总数,之所以有个1/2的存在是因为对于(J(θ_0,θ_1))需要求得最小值,就需要采用求导的方式,而构造的方式是误差平方和就会出现一个系数2,可以相互消去,计算会更加方便。

    分析

    为什么要对(J(θ_0,θ_1))求得最小值,首先目的在于使得(h_θ(x))这条函数曲线最符合数据集,在θ0=0的时候,根据图像很容易的就能看出最符合数据集的曲线(h_θ(x))的斜率θ1为参数的(J(θ_1))最接近0(当所有样本点全在曲线(h_θ(x))上时,(J(θ_1))=0)。

    若两个参数都不为0的时候,其代价函数(J(θ_0,θ_1))可以被描绘为如下的图形,其最小值依然代表最合适的曲线(h_θ(x))系数取值。

    其通过等高线图描绘为如下:

    梯度下降算法

    定义

    通过代价函数的意义,可以知道目的在于求得代价函数取得最小值时θ的取值,这就引入梯度下降算法。梯度下降算法通过设定初始值,然后从初始值慢慢逼近结果,利用迭代思想有点类似于求局部最优进而得到全局最优的结果(贪心),这里的全局最优指的是极小值而不是最小值。(其实这也是一种局部最优)
    原课中打了一个很有意思的比方:

    一个人在山顶(初始值),想要用最快的速度下山(到达极小值点),首先做的就是观察四周,寻找目光所及的最小值点,然后移动下山,在新的地点反复这个操作。

    数学分析

    将以上的操作转换为数学语言就是(一个单变量线性回归的梯度下降算法式):

    [θ_j:=θ_j-αfrac{∂}{∂θ_j}J(θ_0,θ_1) ]

    [(for (j=0) and (j=1)) ]

    • (:=)符号是赋值的意思,pascal的记忆
    • α是学习率,从函数可以看出,α越大,函数变化的幅度就越大,也就能越快的到达目标值,也就代表着下山越快,如果α比较小的话,下山速度就会比较慢,其实对于导数的性质,当取到极小值的时候,导数值为0,这就是算法的边界。
    • 关于计算这个是同步赋值,也就是说,各个参数是统一计算完,再一起赋值。与之对应的是异步赋值。

    单变量线性回归

    利用以上算法,我们可以得到最后的单变量线性回归的计算式子(由于单变量线性回归函数的图像特点,最后必然是全局最优点):

    [h_θ(x)=θ_0+θ_1x ]

    [J(θ_0,θ_1)=frac{1}{2m}sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2} ]

    [θ_0:=θ_0-αfrac{1}{m}sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})} ]

    [θ_1:=θ_1-αfrac{1}{m}sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})·x^{(i)}} ]

  • 相关阅读:
    【English】20190522
    06_Intent和IntentFilter
    05_Content Provider
    04_ Broadcast Receiver
    03_Service的绑定
    02_启动和销毁Service
    01_Activity生命周期及传递数据
    Android对应版本号
    如何在word中插入代码
    项目经验总结
  • 原文地址:https://www.cnblogs.com/pullself/p/10350788.html
Copyright © 2011-2022 走看看