模型介绍
关于回归问题的模型,相当于给一些x(自变量),y(因变量)的数据对构成的数据集,去建立一个数学函数模型(model),之后就能根据这个函数模型,给出x(自变量条件)之后,预测出y(因变量结果)的值。
这里对于条件特征定义为x,结果定义为y。
Training Set(训练集)--> Learning Algorithm(学习算法) --> h(假设函数)
然后在得到h之后,可以通过:
x(条件特征)--> h(假设函数) --> y(结果)
针对于这个思想和基本模型,可以利用比较多的数学上的统计方法做出模型。
代价函数
对于线性模型,我们常使用如下这个假设函数模型:
对于这个线性的假设函数,如何得到一个合适的θ0和θ1是的这个假设函数更契合我们需要预测的东西就至关重要了,这里就需要用到所谓的代价函数。
平方误差代价函数(数学定义)
我们希望(h_θ(x^{(i)})-y^{(i)})尽可能的小,对于一整个样本集合,可以使用以下的式子:
其中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))系数取值。
其通过等高线图描绘为如下:
梯度下降算法
定义
通过代价函数的意义,可以知道目的在于求得代价函数取得最小值时θ的取值,这就引入梯度下降算法。梯度下降算法通过设定初始值,然后从初始值慢慢逼近结果,利用迭代思想有点类似于求局部最优进而得到全局最优的结果(贪心),这里的全局最优指的是极小值而不是最小值。(其实这也是一种局部最优)
原课中打了一个很有意思的比方:
一个人在山顶(初始值),想要用最快的速度下山(到达极小值点),首先做的就是观察四周,寻找目光所及的最小值点,然后移动下山,在新的地点反复这个操作。
数学分析
将以上的操作转换为数学语言就是(一个单变量线性回归的梯度下降算法式):
- (:=)符号是赋值的意思,
pascal的记忆 - α是学习率,从函数可以看出,α越大,函数变化的幅度就越大,也就能越快的到达目标值,也就代表着下山越快,如果α比较小的话,下山速度就会比较慢,其实对于导数的性质,当取到极小值的时候,导数值为0,这就是算法的边界。
- 关于计算这个是同步赋值,也就是说,各个参数是统一计算完,再一起赋值。与之对应的是异步赋值。
单变量线性回归
利用以上算法,我们可以得到最后的单变量线性回归的计算式子(由于单变量线性回归函数的图像特点,最后必然是全局最优点):