第二集 监督学习的应用—梯度下降
2015-08-18 20:21
260 查看
三个问题:线性回归、梯度下降、正规方程组
监督学习的工作流程如下所示:
对于学习算法,我们这里应用线性回归,可以得到
。在这里θ代表的是参数。x1、x2代表的是两种不同的特征。举例来讲,预测房价,我们可以根据房屋面积以及卧室数目两种特征进行预测,其中房屋面积为x1,卧室数目为x2。对于h(x),若定义x0=1,则
(用矩阵的形式表示,后面会有用)。
符号(notation):
m——训练样本的数目
X——输入变量(又叫特征)
y——输出变量(目标变量)
n——特征的数目
(x,y)——样本
(x^(i),y^(i))表示第i个训练样本
PS:代表第i个训练样本,下角标代表第j种特征
为了使训练效果达到最好,用下面的函数进行判定:
下面将分别利用梯度下降和正规方程组对这个问题进行求解。
梯度下降
为了使
成立,最有效的方法是每次移动的方向都是下降最快的方向,这符合梯度的定义,这个方向正是梯度的方向。梯度下降算法有着一定的局限性,即目标函数存在多个局部最优值,则选择不同的起点,终点很有可能不一样。换句话说,可能收敛不到最小值的那一点。但对于我们这个函数来讲,它是一个二次函数,最小值点有且只有一个,不存在别的局部最优解,所以不用理会梯度下降的局限性。
有了以上推论,就可以对输出函数中的参数
进行训练,使其满足需求。公式如下:
其中α为学习速度,相当于步幅,为人工设定。
将
的值代入即可得批梯度下降算法:
通过上式可以发现,要想计算某一特征i对应的参数
,必须要遍历所有的训练样本。这对于少量样本的情况影响不大,但m一旦到了百万级,这个遍历会导致运算速度变得及其慢。
为了解决这个问题,可以采用随机梯度下降算法(增量梯度下降算法)来代替普通的梯度下降算法。随机梯度下降算法的描述如下:
For j=1 to m {
(for all i)
}
利用随机梯度下降算法计算参数
时,对于每一个
每次只需要利用一个训练样本进行调整,不需要像普通的梯度下降算法一样在调整之前遍历所有的训练样本(m个)。其优点是计算速度相当快,简单,便于实施;其缺点是不够精确,不一定能够收敛到全局最小值,可能会在最小值处绕圈子。随机梯度下降算法的每一步决策都是基于当前环境的判断,而不是全局。
正规方程组
一些线性代数的基本概念和结论:
设函数f(A)可将矩阵A映射为实数,则
若A为n*n的矩阵,则可定义A的迹为:
(对角元素相乘)
一些结论:
用矩阵的符号可以节省很多计算量,更加便于理解。下面对min 进行推导。
倒数第二个式子
即为正规方程组。可能有人会注意到最后那个解析解的 项是否一定可逆的问题,这个问题确实存在,但一般情况下,其一定是可逆的。(本人对此表示怀疑)
监督学习的工作流程如下所示:
对于学习算法,我们这里应用线性回归,可以得到
。在这里θ代表的是参数。x1、x2代表的是两种不同的特征。举例来讲,预测房价,我们可以根据房屋面积以及卧室数目两种特征进行预测,其中房屋面积为x1,卧室数目为x2。对于h(x),若定义x0=1,则
(用矩阵的形式表示,后面会有用)。
符号(notation):
m——训练样本的数目
X——输入变量(又叫特征)
y——输出变量(目标变量)
n——特征的数目
(x,y)——样本
(x^(i),y^(i))表示第i个训练样本
PS:代表第i个训练样本,下角标代表第j种特征
为了使训练效果达到最好,用下面的函数进行判定:
下面将分别利用梯度下降和正规方程组对这个问题进行求解。
梯度下降
为了使
成立,最有效的方法是每次移动的方向都是下降最快的方向,这符合梯度的定义,这个方向正是梯度的方向。梯度下降算法有着一定的局限性,即目标函数存在多个局部最优值,则选择不同的起点,终点很有可能不一样。换句话说,可能收敛不到最小值的那一点。但对于我们这个函数来讲,它是一个二次函数,最小值点有且只有一个,不存在别的局部最优解,所以不用理会梯度下降的局限性。
有了以上推论,就可以对输出函数中的参数
进行训练,使其满足需求。公式如下:
其中α为学习速度,相当于步幅,为人工设定。
将
的值代入即可得批梯度下降算法:
通过上式可以发现,要想计算某一特征i对应的参数
,必须要遍历所有的训练样本。这对于少量样本的情况影响不大,但m一旦到了百万级,这个遍历会导致运算速度变得及其慢。
为了解决这个问题,可以采用随机梯度下降算法(增量梯度下降算法)来代替普通的梯度下降算法。随机梯度下降算法的描述如下:
For j=1 to m {
(for all i)
}
利用随机梯度下降算法计算参数
时,对于每一个
每次只需要利用一个训练样本进行调整,不需要像普通的梯度下降算法一样在调整之前遍历所有的训练样本(m个)。其优点是计算速度相当快,简单,便于实施;其缺点是不够精确,不一定能够收敛到全局最小值,可能会在最小值处绕圈子。随机梯度下降算法的每一步决策都是基于当前环境的判断,而不是全局。
正规方程组
一些线性代数的基本概念和结论:
设函数f(A)可将矩阵A映射为实数,则
若A为n*n的矩阵,则可定义A的迹为:
(对角元素相乘)
一些结论:
用矩阵的符号可以节省很多计算量,更加便于理解。下面对min 进行推导。
倒数第二个式子
即为正规方程组。可能有人会注意到最后那个解析解的 项是否一定可逆的问题,这个问题确实存在,但一般情况下,其一定是可逆的。(本人对此表示怀疑)
相关文章推荐
- uboot系列之-----顶层Makefile分析(一)
- 希尔排序
- 一个图灵API的调用
- 支持向量机之线性可分支持向量机(一)
- 2015 Multi-University Training Contest 8
- Linux ag命令
- hdu5399(2015多校9)--Too Simple
- Proxmox 服务器搭建全过程(纯手打,亲测可用)
- TinyXml 操作XML 常用操作 http://www.cnblogs.com/cy568searchx/p/3670400.html
- 用Gson解析复杂的天气Json数据
- 英语常用时态
- Android Api Demos登顶之路(三十五)Fragment-->Argument
- 【Linux探索之旅】第一部分第六课:Linux如何安装在虚拟机中
- 【Python】[面向对象编程] 访问限制,继承和多态
- 观察系统资源的几个命令
- [Leetcode] Count Complete Tree Nodes
- 静态路由
- 九度oj 1084
- 我认为的学习方法。9.0
- @synthesize、 @dynamic 的使用方法