什么是梯度?
一、数学知识:
一、简介
- 导数(derivate):高中所学的二维空间中的增长速率。(标量)
- 偏微分(partial derivate):对于空间中,某一方向的增长。(标量)
- 梯度(gradient):对函数的各个自变量的偏微分的集合。(矢量)
二、实例
- 函数z=y2−x2z = y^2 - x^2z=y2−x2
- 偏导数:∂z∂x=−2x\frac{\partial z}{\partial x}=-2x∂x∂z=−2x,∂z∂y=2y\frac{\partial z}{\partial y}=2y∂y∂z=2y
- 梯度:∇f=(∂z∂x,∂z∂y)=(−2x,2y)\nabla f=(\frac{\partial z}{\partial x},\frac{\partial z}{\partial y})=(-2x,2y)∇f=(∂x∂z,∂y∂z)=(−2x,2y)
三、梯度的含义
- 神经网络的特征之一,从数据样本中学习。 而loss函数就是我们可以自动确定的抓手。当然,使得loss函数达到最小值时,就是我们要寻找的参数。这时就引入了导数的概念。
- 导数的引入,可以使我们容易获得极值点,f′(x)=0f'(x)=0f′(x)=0,可是使得我们通过微分方程来轻松获得极值点。但是导数仅仅是对一维函数所说的,但是在现实生活中,往往存在很多维度的属性,这时候并不能用导数来完成这一工作,所以我们引入了梯度。
四、迭代法求取最小值
1、简单例子
通过使用θt+1=θt−at∇f(θt)\theta_{t+1}=\theta_{t}-a_t\nabla f(\theta_t)θt+1=θt−at∇f(θt)
- 函数:f(θ1,θ2)=θ12+θ22f(\theta_1,\theta_2)=\theta_1^2+\theta_2^2f(θ1,θ2)=θ12+θ22
- 目标函数:minθ1,θ2(f(θ1,θ2))\underset{\theta_1,\theta_2}{min}(f(\theta_1,\theta_2))θ1,θ2min(f(θ1,θ2))
- 更新规则:
- θ1=θ1−addθ1f(θ1,θ2)\theta_1=\theta_1-a\frac d{d\theta_1}f(\theta_1,\theta_2)θ1=θ1−adθ1df(θ1,θ2)
- θ2=θ2−addθ2f(θ1,θ2)\theta_2=\theta_2-a\frac d{d\theta_2}f(\theta_1,\theta_2)θ2=θ2−adθ2df(θ1,θ2)
2、相关问题
-
Learning rate的设置:Learning rate设置不合理会影响最终生成的答案。如果LR太大则可能会跨越,太小可能会计算速度变慢。如下图所示
-
初始值的设置:初始值设置不合理会影响最终生成的答案。如图下图所示
-
就上图而言如何逃离最小值呢?可以引入惯性,可以变换到其他位置,如图所示: