通俗介绍梯度下降算法

本文从一个简单的函数极值问题出发,介绍了梯度下降算法的基本思想和计算公式,通过多元线性回归的例子深入浅出地解析了算法核心,并用Python实现了一元线性回归的梯度下降过程,帮助理解深度学习中如何通过优化参数最小化误差。
摘要由CSDN通过智能技术生成

深度学习近几年如火如荼,先后出现了很多的应用案例。那么深度学习是怎样的学习过程呢?其实理解起来不难,只需要一点点数学知识而已。本文介绍深度学习中最基础的一种优化算法–梯度下降算法,大量的优化算法都是在此基础上修改,不断优化出来的。理解了此算法,你就知道深度学习是如何学习的?

简单例子的应用

在中学我们都学过用导数求函数极值。基本思路就是求出 f ′ ( x ) = 0 f'(x)=0 f(x)=0方程的解,就是极值点,如果这个方程是超越方程,很难求出解析解怎么办?我们可以利用计算机求出数值解。我们先来看一个例子,大致了解梯度下降怎么求极值问题。

求函数 f ( x ) = 1 2 x 2 + 2 x f(x)=\frac 1 2 x^2 + 2x f(x)=21x2+2x的极小值。使用中学数学很容易得到极值点为-2,那么极值就是 f ( − 2 ) = − 2 f(-2)=-2 f(2)=2。接下来我们使用梯度下降计算数值解。

先给出梯度下降的计算公式:
x n + 1 = x n − γ d f d x ∣ x = x n x_{n+1} = x_n - \gamma \frac{\mathrm df}{\mathrm dx}|_{x=x_n} xn+1=xnγdxdfx=xn

其中 x n x_n xn为第n次迭代横坐标的值, γ \gamma γ在机器学习中称为学习率,函数的梯度这里简写为导数。迭代过程需要初始值,我们假定初始值为3, x 0 = 3 x_0=3 x0=3,学习率 γ = 0.2 \gamma=0.2 γ=0.2

先手动求出函数的导数为 f ′ ( x ) = x + 2 f'(x) = x+2 f(x)=x+2,我们开始迭代:

x 1 = x 0 − γ ( x 0 + 2 ) = 2 x_1 = x_0 - \gamma (x_0 + 2) = 2 x1=x0γ(x0+2)=2
x 2 = x 1 − γ ( x 1 + 2 ) = 1.2 x_2 = x_1 - \gamma (x_1 + 2) = 1.2 x2=x1γ(x1+2)=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值