梯度下降法 (二)

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

一、线性函数

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

二、误差函数

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

  • n为自变量的数量,m为输入样本数的数量或理解为 x x x 的坐标最大值。对应的是,下标是自变量个数,上标是样本数据或为 x x x 的坐标。( 下面的公式不是按 i , j 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 i=0Nθxiy θ j \theta_j θj 的求导,因为 θ i \theta_i θi是变量且 i ∈ \in (0,n) ,因此对 θ j \theta_j θj 求导将只会剩下 θ j \theta_j θj 的参数 x i x_i xi

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

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

图片名称

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

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

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

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

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

五、梯度上升法

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

六、代码

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值