启发式优化算法:梯度下降法和梯度上升法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzx479/article/details/82986786

梯度下降算法理论知识我们给出一组房子面积,卧室数目以及对应房价数据,如何从数据中找到房价y与面积x1和卧室数目x2的关系?本文旨在,通过数学推导的角度介绍梯度下降法
feet^2--x1;bedrooms--x2
f e e t 2 x 1 feet^2 - x_1 , b e d r o o m s x 2 bedrooms - x_2 , P r i c e h ( x ) Price - h(x)

一、线性函数

为了实现监督学习,我们选择采用自变量x1、x2的线性函数来评估因变量y值,得到:
在这里插入图片描述
这里, θ 1 \theta_1 θ 2 \theta_2 代表自变量 x 1 x_1 x 2 x_2 的权重(weights), θ 0 \theta_0 代表偏移量。为了方便,我们将评估值写作h(x),令 x 0 x_0 =1,则h(x)可以写作:
在这里插入图片描述
把x写作(1,x1,x2),可以把参数 θ 0 \theta_0 也融入到参数里,进行矩阵乘法 。

二、误差函数

为了得到weights的值,我们需要令我们目前的样本数据评估出的h(x)尽可能的接近真实y值。我们定义 误差函数(cost function)来表示h(x)和y值相接近的程度:
在这里插入图片描述

  • n为自变量的数量,m为输入样本数的数量或理解为 x x 的坐标最大值。对应的是,下标是自变量个数,上标是样本数据或为 x x 的坐标。( 切记,下面的公式不是按 i , j i, j 区分的,而是上下标区分。)

  • 这里的系数1/2是为了后面求解偏导数时可以与系数相互抵消。我们的目的是要误差函数尽可能的小,即求解weights使误差函数尽可能小。首先,我们随机初始化weigths,常用的直接初始化为1,然后不断反复的更新weights使得误差函数减小,直到满足要求时停止。

笔者拙见,可以直接跳过…
其实,以上部分类似于最小二乘法,因为无论梯度下降,还是最小二乘法,都是通过二次误差函数的求导来拟合,区别在于,最小二乘法,直接算出参数,而梯度下降法则是对参数不断地更新迭代。

三、公式推导

这里更新算法我们选择梯度下降算法,利用初始化的weights并且反复更新weights:
在这里插入图片描述
这里a代表学习率,表示每次向着J最陡峭的方向迈步的大小。为了更新weights,我们需要求出函数J的偏导数。首先计算只有一组数据样本(x,y)时,如何计算J的偏导数:
在这里插入图片描述

求导技巧:对于 i = 0 N θ x i y \sum_{i=0}^N \theta x_i- y θ j \theta_j 的求导,因为 θ i \theta_i 是变量且 i \in (0,n) ,因此对 θ j \theta_j 求导将只会剩下 θ j \theta_j 的参数 x i x_i

对于只含有一组数据的训练样本,我们可以得到更新weights的规则为:
在这里插入图片描述
扩展到多组数据样本,更新公式为:
在这里插入图片描述
称为批处理梯度下降算法,这种更新算法所需要的运算成本很高,尤其是数据量较大时。考虑下面的更新算法:
在这里插入图片描述

以上都是顺着x的方向依次取数据,那么再进一步优化,按照随机的取法取 x x 的数据, 考虑下面的更新算法:

图片名称

如果从 [ 1 , m ] [ 1,m ] 随机取 i i ,并且这种算法不停的更新weights,每次使用一个样本数据进行更新,并且因为 i i 的随机性,能有效跳出局部最优解。那么该算法又叫做随机梯度下降法,当数据量较大时,一般使用后者算法进行更新。

四、如何通俗的梯度下降法

在一元函数的函数图像,梯度就等于斜率,它的方向没有选择,并不能直观理解梯度下降最快。
而只有在二元及其以上的函数图像,面上的一点的梯度才会有方向的选择,梯度方向才会有,最直观的下降最抖现象。

进一步了解,涉及的数学知识:

梯度是函数值变化最大的方向 -> 方向导数-> 高数里的全微分概念
梯度下降法代码的书写 -> 熟悉矩阵的运算

五、梯度上升法

梯度上升法用来求最大值,而梯度下降法用来求最小值。
在《机器学习实战》一书的第5章中讲到了Logistic——本质上是一个基于条件概率的判别模型,它利用了Sigma函数值域在[0,1]这个特性。 Logistic回归用于二分类问题,面对具体的二分类问题,比如明天是否会下雨。因而转用概率来表示和推导。
这本书中采用了,梯度上升算法,而且神奇的和基于二次误差函数得到的梯度下降公式完全一致,但是采用的数学推导却是基于,最大似然估计的推导。
在这里插入图片描述
在这里插入图片描述感兴趣的同学,可以看:
https://www.jianshu.com/p/7574ce1949b8

六、代码

^ ~ ^后续再补充
机器学习,希望自己扎扎实实的走好每一步。

猜你喜欢

转载自blog.csdn.net/wzx479/article/details/82986786