ML学习笔记——梯度下降

**引言:**上一节的线性回归中,当得到了一个目标函数后,需要求解 θ \theta θ,但是 θ \theta θ并不一定可解,这时就引出了梯度下降的方法。

机器学习的套路是交给机器一堆数据,然后告诉它什么样的学习方式是正确的(目标函数),然后让它朝着这个方向去做。

目标函数定义为此公式,其中m代表样本个数,前面的系数不影响结果。

J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1} ^ {m}(h_\theta (x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2

**目标:**梯度下降的目的是寻找山谷的最低点,也就是目标函数的终点(什么样的参数能使得目标函数达到极值点)。

下山共分为三步,不断迭代更新参数,最终达到目标函数的极值点。

  • 找到当前最合适的方向(偏导)
  • 沿着方向走一小步
  • 按照方向与步伐更新参数

梯度下降根据选取样本数量的不同,分为批量梯度下降、随机梯度下降与小批量梯度下降。

1、批量梯度下降
Batch Gradient Descent(BGD),是梯度下降的最原始形式,在更新每一个参数使都是用所有的样本进行计算,也就是说上面公式中的m即为所有样本的个数。
∂ J ( θ ) ∂ θ j = − 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x j i \frac{\partial J(\theta)}{\partial \theta_j} = -\frac{1}{m}\sum_{i=1}^{m}(y^i-h_{\theta}(x^i))x_{j}^i θjJ(θ)=m1i=1m(yihθ(xi))xji

θ j ′ = θ j + 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x i j {\theta_j}'=\theta_j+\frac{1}{m}\sum_{i=1}^{m}(y^i-h_{\theta}(x^i))x_i^j θj=θj+m1i=1m(yihθ(xi))xij

**优点:**容易得到最优解
**缺点:**当样本数目很多时,训练过程会很慢

2、随机梯度下降
Stochastic Gradient Descent(SGD),在更新每一个参数时都是用一个样本进行更新,也就是说m等于1。
θ j ′ = θ j + ( y i − h θ ( x i ) ) x i j {\theta_j}'=\theta_j+(y^i-h_{\theta}(x^i))x_i^j θj=θj+(yihθ(xi))xij

**优点:**迭代速度快
**缺点:**噪音多,不一定每次都朝着收敛的方向

3、小批量梯度下降
Mini-batch Gradient Descent(MBGD),更新每一参数时都是用一部分样本来进行更新,克服上面两种方法的缺点,同时又兼顾两种方法的缺点。

θ j ′ = θ j − α 1 10 ∑ k = i i + 9 ( h θ ( x ( k ) ) − y ( k ) ) x i ( k ) {\theta_j}'=\theta_j-\alpha\frac{1}{10}\sum_{k=i}^{i+9}(h_{\theta}(x^{(k)})-y^{(k)})x_i^{(k)} θj=θjα101k=ii+9(hθ(x(k))y(k))xi(k)

若样本量较小,采用批量梯度下降算法;若样本量较大,或者在线算法,使用随机梯度下降算法;实际的一般情况,采用小批量梯度下降算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值