机器学习(一)---梯度下降算法

写在前面:经过期末考试和紧锣密鼓的实验室项目之后,终于找到了间歇,能够回归看书写博客的学习状态,真是十分幸福的啊。
这篇博客的正题
在采用机器学习算法时,其模型参数需要不断训练才能够达到完全拟合样本数据集。梯度下降算法即是一种用于,训练机器学习算法模型参数所用的算法,即是优化算法。这篇博客主要讨论最原始的,也是最常用的梯度下架算法—批量梯度下降算法(Batch Gradient Descent,简称BGD)。

这里采用线性回归算法的训练过程来对批量梯度下降算法进行分析。简单认识梯度下降算法运行过程即是寻找局部最低点的过程。形象阐述就是很多个你在不同的山峰上,各自采用自定义步距下山的过程。

一丶梯度下降算法的应用场景:
一般线性回归的方程(假设函数):
这里写图片描述

其代价方程为:
这里写图片描述
其中m为样本数量。
为了让我们得到的假设函数能够完美拟合样本数据,像这样:
这里写图片描述
而我们的假设函数的准确度是和这里写图片描述有关的,那么问题就转换为了如何找到完美的各个这里写图片描述来让假设函数更好的拟合样本集。
可是,需要解决的问题还是有点宽泛,我怎么知道具体如何找到这些个这里写图片描述呢?于是问题进一步细化,即是一个最小化问题,求假设函数上面的每个样本和真是样本之间的差距,反应到数学上面的问题即是求每个两点(便于理解就是点,如果假设函数需要很多个这里写图片描述变量,就成了高维的构成单元了)之间的标准差。于是乎就成了求代价函数:这里写图片描述 的最小值。
要如何求这个最小值呢?于是就得提出这篇博客想要介绍的优化算法,批量梯度下降算法。

算法流程
repeat util covergence {
这里写图片描述
for(every j = 0,1,23,…n)
}
参数解释:
这里写图片描述:学习效率,即是以多大参数更新幅度逼近局部最小值,简单来说就是以多大的步子下山。
这里写图片描述:微分项,保证你收敛的方向是逼近于局部最低点的,简单来讲就是,目前这里写图片描述值情况下,是在最小值左边的,保证向正方向收敛,反之,为向负方向收敛。

算法流程就是这样,值得注意的是,为了保证优化效果,一定是让这里写图片描述在迭代过程中,同时更新。就像这样:
1.这里写图片描述
2.这里写图片描述
3.这里写图片描述
4.这里写图片描述
(这里举例是用了两个这里写图片描述参数)
参数同步更新过程中不能2,3步调换,道理很简单,一旦调换,那么计算这里写图片描述的值的时候,已经是用了新的这里写图片描述的值了,那么这里写图片描述这里写图片描述就不是同步更新。
题外话:不得不说,这个算法真是应用领域巨大,想想以后遇到的实际问题,碰了个巧,是个线性回归问题,再用这个优化算法去进行模型参数的确定,最后就解决了实际问题,优化算法何其多,我们的生活总总会被机器所改造得愈加美好。

猜你喜欢

转载自blog.csdn.net/MR_Peach07/article/details/79245896