machine learning的课程的第二讲

在machine learning的课程的第二讲中,才是真正的知识讲解。这节课主要讲了以下三个方面的东西:

 

1.linear regression(线性回归)  

2.Gradient descent(梯度下降) 

3.normal equations(正规方程)

 

 

linear regression(线性回归)  

什么是回归呢?简单的理解就是预测一个实数。线性回归就是要找到一个线性函数来拟合数据,然后根据这个线性函数来预测新的输入产生的值。

 

 

 

我们可以看上面二维坐标中的线性方程,假如方程式是y = wx + b;那么在这个直线上的点都会使y等于0,不在直线上的点会使y大于或者等于0.大于0我们可以认为这个样本属于类别“1”,小于0我们就可以认为这个样本属于类别“-1”。

我们可以用另外一种方式来写这个公式:

                

θ代表一系列的参数或者权重。我们假设x0=1,那么这个公式可以更好的表达为:

            

我们定义代价函数,可以理解为错分类的代价:

        

上面的这个公式中小i上标代表数据的第i个,m代码训练数据的总数。

 

LMS(最小均方)算法:

我们想要选择θ来最小化J(θ),我们可以随机的选取θ,大多数情况下我就把它初始化为0,然后迭代的更新θ,让J(θ)变得越来越小,直至J(θ)已经达到最小。我们在这里可以用梯度下降法:

                                                     

α代表学习速率(learning rate)。假如我们只有一个训练数据,那么可以避免对J(θ)再进行累加了(因为J(θ)本身代表了一个训练数据的错分类代价)。我们对θ求偏导,得到

将这个结果带入上面的公式中,我们得到了下面的公式:

这个就是所谓的LMS更新规则,也被称为Widrow-Hoff学习规则。大家可能也有疑问,我们的数据不可能只有一个啊,下面提供了2中解决办法。首先可以每次遍历所有的数据,然后更新一个参数θ。这是批梯度下降。

还可以每次输入一个数据,但是更新所有的参数θ。这就是增量梯度下降。

 也许有人要问,梯度下降和LMS到底是神马关系,纠扯不清啊。按照我的理解,LMS就是梯度下降用于2次方的代价函数。其实梯度下降函数应该可以用于多次方的函数的。

normal equations(正规方程)

我觉得这里的正规方程其实就是用解析的方法来求参数θ,得到的这个参数θ可以使J(θ)最小。
我在这里大概简介一下思想,详细的东西可以看看视频和材料。
首先我们把输入的训练数据表示为一个矩阵:

训练数据的分类标记也表示为一个一维的矩阵:

然后用矩阵的方式表达J(θ):
还是对这个矩阵进行求导,最终还利用矩阵的迹这个知识点,得出了非常简洁漂亮的结论:
大家可能看到这里有所疑问,要是上面的矩阵的逆不存在怎么办?其实这种情况还是比较常见的,比如训练数据中出现了相同的训练数据,那就没有矩阵的逆了。这时只能用伪逆了。
 
 
posted @ 2013-12-06 16:51  Mutex  阅读(191)  评论(0)    收藏  举报