【二】梯度下降

约定

第二讲正式开始介绍机器学习中的监督学习,首先声明了以下约定:对于m组训练样本,x表示其输入(input feature),y表示其输出(target variable),m是一个正整数(表示个数的嘛),x和y可是是向量也可以是标量,不过入门而言一般y为标量,(x(i),y(i))表示训练样本,{(x(i),y(i)); i=1,2...m}表示训练集


目标

我们的目标是得到一个函数h:X->Y,使映射结果与数据更为接近,方程h称为假设(hypothesis),其过程如下图所示。

当我们希望得到的y(输出)是连续值时,我们称之为回归问题(regression problem),为离散值时,我们称之为分类问题(classification problem)。


线性回归 Linear Regression

以下形式称为线性回归:

h(x;θ) = θ0+θ1*x1+θ2*x2+...+θn*xn

        = θ0*x0+θ1*x1+θ2*x2+...+θn*xn

  = (θ^T)*X

即假设方程可视为参数向量和输入向量的乘积,上式中第二行x0为intercept term,其值为1,用于统一格式,由此可见上式中乘以的X与实际的输入向量X是有差别的,差别在于增加了x0=1这一项


损失方程 Cost Function

由此可定义损失方程,用于表示估计值与实际值之间的差距,显然差距越小越好,即估计与实际越接近越好,尽管在入门时y常为标量,但考虑到对后来的兼容,我们将其视为向量进行考虑,因此两个向量之间的差异可以视为两个点之间的距离,自然地,损失方程可定义如下形式:

J(θ) = 1/2*Sum(i=1 to m)[(h(x;θ)-y)]^2)


梯度下降法 Gradient Descent

为了求得使损失方程取得最小值的参数θ,我们使用梯度下降法,其思想可简化如下:

在初始化初始状态后,我们选择初始状态下梯度下降最大(负数指示下降、绝对值最大表示下降最快)的方向作为对θ迭代的方向。

这是一种贪心的算法,假想我们只有一座正常的平滑的那种山峰,显然我们通过这种方法可以找到最小值;但如果我们的山峰顶端有个坑(比如是个火山),而且恰好在坑旁边的梯度更大,那么这种算法只能找到坑的最低点,并认为这就是全局的最低点,这种情况实际上称为局部最优,而我们希望找到的点称为全局最优

但梯度下降法之所以可以成功用于损失方程的计算,在于已经证明,对于凸函数,梯度下降法所求的的解正是全局最优解,典型的损失方程图像如下图所示。图中圆形的线可以理解为等高线,蓝色的折线即梯度下降的方向。


由此,我们可以得到关于th迭代更新的方程

θj = θj - α(δ/δθ)J(θ)

上始终α表示学习速度,即每一次更新的步长,其后就是该点处的导数

最小均方误差算法 Least Mean Square LMS

最小均方误差算法与损失方程具有近似的思想,其更新方程如下:

θj = θj + α*(y(i)-h(x;θ))*x(i)j

可见,这是一种对θ的各个参数分开调优的算法,所以根据调优的顺序可分为下面两种算法


批梯度下降 Batch Gradient Descent

repeat until convergence{

    //for every i  

    θj := θj + α*Sum(i = 1 to m)[(y(i)-h(x;θ))x(i)j]^2

} 

这一算法在每一次更新是更新所有的参数,因此其值较准确,但显然其使用的计算资源更多


随机梯度下降法 Stochastic Gradient Descent

loop{

    for i = 1 to m{

        // for every i

        θj := θj + α*(y(i)-h(x;θ))*x(i)j

    }

}

这一算法更适用于训练集较大的情况


一般化方程 The Normal Equations

每一次进行一次梯度下降法所需要的计算资源太大了,因此考虑到矩阵的的特殊性质,科学家将这一办法化简为一个一般化方程,此时,每次计算时只需使用方程计算即可,化简的思想在于函数的极值取于导数为0的点,其具体表示为

θ = [((X^T)*X)^(-1)]*X^T*y

上述的X为训练集的集合,即是一个矩阵,y为一个向量,是各个标量的集合。

这一形式十分简洁,但其推导过程比较复杂,如下



//这里是分割线~

//顺便给自己的公众号打个广告,希望大家多多关注哦~

//关注我的公众号可以看到更多有意思的东西哦~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值