从导数到梯度下降法

您所在的位置:网站首页 导数越大增加的越快 从导数到梯度下降法

从导数到梯度下降法

2024-07-14 05:13| 来源: 网络整理| 查看: 265

函数的导数(derivative)描述了函数的变化率: 导数越大,表示函数增加的越快 导数越小,表示函数减少的越快 导数 = 0,对应函数的极值

导数(derivative) 对于一个误差函数(非负),我们期望找到误差函数最小的点,使得E(x)最小,那么,就要找到一个x的变化量,使得导数最小,这样,误差函数会按照最快的减少速度逼近最小值。当x的变化方向与导数方向180°相反时,函数减少的越快,越容易逼近最小值,即: 根据所以 当求得x=xn处的导数时,可以通过上式获得下一个x的取值,使得误差函数E(x)向最小值逼近。

当函数的自变量由一个x,变为多个x0,x1,x2...xn,即X={x0,x1,x2...xn},函数的导数则变为偏导数

误差函数的变化,满足下面的公式:\Delta E = \frac{\partial{E}} {\partial{x_0}}*\Delta{x_0}+ \frac{\partial{E}} {\partial{x_1}}*\Delta{x_1}...+ \frac{\partial{E}} {\partial{x_n}}*\Delta{x_n} \Delta E = \lbrace \frac{\partial{E}} {\partial{x_0}}, \frac{\partial{E}} {\partial{x_1}}...\frac{\partial{E}} {\partial{x_n}}\rbrace \cdot \lbrace \Delta{x_0},\Delta{x_1}...\Delta{x_n}\rbrace 其中 \lbrace \frac{\partial{E}} {\partial{x_0}}, \frac{\partial{E}} {\partial{x_1}}...\frac{\partial{E}} {\partial{x_n}}\rbrace 是E(X)函数的梯度Gradient 欲使E(X)以最快的方式向最小值逼近,令 X = -\eta* \lbrace \frac{\partial{E}} {\partial{x_0}}, \frac{\partial{E}} {\partial{x_1}}...\frac{\partial{E}} {\partial{x_n}}\rbrace X = -\eta* Gradient 根据上述公式,梯度下降算法的步骤为:

任意找到位置作为起点 计算该点的梯度 用该点的梯度更新所有自变量,获得下一个位置 重复2~3步,直到找到最小值为止 在神经网络视角下,η成为学习率,可以看做移动的步长,如何确定学习率,没有明确的标准,只能通过反复试验来寻找恰当的值 建议读者,根据上述算法步骤,在Excel表里面手动做一下计算,如下例所示。

假设有函数z = x^2 + y^2 其梯度:\Lambda{z} = \lbrace \frac{\partial{z}} {\partial{x}}, \frac{\partial{z}} {\partial{y}}\rbrace 自变量更新:x_{n+1}=x_{n}-\eta*\frac{\partial{z}} {\partial{x_n}},y_{n+1}=y_{n}-\eta*\frac{\partial{z}} {\partial{y_n}} 用Excel表依次计算,如下

梯度下降法计算演示



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3