机器学习笔记(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)}} \]

猜你喜欢

转载自www.cnblogs.com/pullself/p/10350788.html