在最近一段时间,对机器学习进行了学习,但感觉效果不是很好。一日与朋友聊起此事,他建议建个博客,一来梳理一下所学内容,二来和大家一起学习交流。因此,建立了此博客,如果您发现博文中有不当之处,欢迎您來邮指明,我的邮箱为212352807@qq.com
在机器学习中,基本分为两大问题——监督学习(supervised learning)和非监督学习(unsupervised learning),监督学习又分为分类(classification)问题和回归(regression)问题。在监督学习中,虽然每一类问题中都有很多方法,但是基本的思路都是沿着建模——确立cost function——参数最优化——新数据的预测
接下来梳理一下线性回归算法。在建立模型之前,我们先来定义几个参量。
Xi——第i个样本特征向量,i=1,2....,m
yi——第i个输出结果向量,i=1,2....,m
θ——参数向量,维数与X一致,j=1,2....,n
m——样本总数
n——特征个数
那么假设函数应该可以表示为
其中Xji是第i个样本的第j个特征。在构造假设函数时,个人认为应当谨慎,要做到不能过拟合也不能欠拟合,应当根据特征的个数来进行选择。
在该问题中,我们使用最小二乘法来构造cost function,我们定义J(θ)为hθ(X)的cost function,则其公式如下:
![](http://latex.codecogs.com/gif.latex?J\left&space;%28&space;\theta&space;\right&space;%29=\frac%7b1%7d%7b2m%7d\sum_%7bi=1%7d^%7bm%7d\left&space;%28&space;h_%7b\theta&space;%7d&space;\left&space;%28&space;X^%7bi%7d&space;\right&space;%29-y^%7bi%7d\right&space;%29^%7b2%7d)
在该问题中,我们使用最小二乘法来构造cost function,我们定义J(θ)为hθ(X)的cost function,则其公式如下:
我们将将对J(θ)进行优化,在优化过程中,我们采用最小均方算法(Least mean square,LMS),LMS算法的中心思想为通过迭代将凸函数J(θ)逐渐逼近到最优点。
在更新的过程中,我们使用梯度下降法,梯度下降法能够很容易地得到局部最优解。梯度下降法分为批量梯度下降法和随机梯度下降法。参数θ的更新公式如下:
在使用批量梯度下降法时,使用全部的样本来进行更新每一个参数,而使用随机梯度下降法时,我们仅仅使用一个样本来更新参数。所以,批量梯度下降法的计算量十分大,当数据量比较大时,运行速度缓慢,但是能够得到较为最优的结果,而随机梯度下降法仅仅使用一个样本的数据,因此,运行速度比较快,但是一般在最优点附近徘徊,不能得到较为精确的最优解。
在更新的过程中,我们使用梯度下降法,梯度下降法能够很容易地得到局部最优解。梯度下降法分为批量梯度下降法和随机梯度下降法。参数θ的更新公式如下:
参考文献:
[1] Andrew NG.Coursea,https://www.coursera.org/learn/machine-learning/home/welcome