Math 激活函数的导数及其在反向传播中的应用

Math 激活函数的导数及其在反向传播中的应用,math,artificial-intelligence,machine-learning,neural-network,Math,Artificial Intelligence,Machine Learning,Neural Network,我正在阅读文件,他们说重量调整公式如下: 新权重=旧权重+学习率*delta*df(e)/de*输入 df(e)/de部分是激活函数的导数,激活函数通常是类似于tanh的sigmoid函数 这到底是干什么用的 为什么我们要用它来成倍增长呢 为什么仅仅学习率*delta*输入还不够 这个问题紧跟在这个问题之后,并且与之密切相关:。您引用的权重更新公式不仅仅是一些任意的表达式。它是通过假设一个误差函数并用梯度下降法最小化它来实现的。激活函数的导数之所以存在,本质上是因为微积分的链式法则 关于神经

我正在阅读文件,他们说重量调整公式如下:

新权重=旧权重+学习率*delta*df(e)/de*输入

df(e)/de
部分是激活函数的导数,激活函数通常是类似于
tanh
的sigmoid函数

  • 这到底是干什么用的
  • 为什么我们要用它来成倍增长呢
  • 为什么仅仅
    学习率*delta*输入
    还不够

这个问题紧跟在这个问题之后,并且与之密切相关:。

您引用的权重更新公式不仅仅是一些任意的表达式。它是通过假设一个误差函数并用梯度下降法最小化它来实现的。激活函数的导数之所以存在,本质上是因为微积分的链式法则

关于神经网络的书籍更有可能在反向传播中推导出更新规则。例如,Hertz、Krogh和Palmer对神经计算理论的介绍。

训练神经网络只是指为权重矩阵中的每个单元寻找值(其中对于具有一个隐藏层的NN有两个),从而使观测数据和预测数据之间的平方差最小化。在实践中,包含两个权重矩阵的各个权重在每次迭代中都会进行调整(它们的初始值通常设置为随机值)。这也称为在线模型,与批量模型不同,批量模型在多次迭代后调整权重

但是应该如何调整权重——即,哪个方向+/-?多少钱

这就是导数的作用。导数的较大值将导致相应权重的较大调整。这是有意义的,因为如果导数很大,这意味着你远离极小值。换句话说,在每次迭代中,按照总误差(观察到的与预测的)定义的代价函数曲面上的最陡下降方向(导数的最高值)调整权重

在计算每个模式的误差后(从该迭代期间由NN预测的值中减去响应变量或输出向量的实际值),权重矩阵中的每个权重按照计算的误差梯度成比例进行调整

由于误差计算从NN的末尾开始(即,在输出层,通过从预测值中减去观测值),然后向前进行,因此称为backprop


更一般地说,导数(或多变量问题的梯度)由优化技术使用(对于backprop,共轭梯度可能是最常见的)来定位目标(aka损失)函数的极小值

它是这样工作的:

一阶导数是曲线上的点,与曲线相切的直线的斜率为0

因此,如果你绕着目标函数定义的3D曲面走,走到斜率为0的点,那么你就在底部——你已经找到了函数的极小值(无论是全局的还是局部的)

但一阶导数比这更重要。它还告诉您是否朝着正确的方向前进,以达到功能最小值

当曲线/曲面上的点向下移动到函数minimumn时,如果考虑切线的斜率会发生什么,很容易看出为什么会出现这种情况


斜率(因此该点处函数的导数值)逐渐减小。换句话说,要最小化一个函数,遵循导数——也就是说,如果值在减小,那么你就朝着正确的方向移动。

我想,这是题外话。属于artificialintelligence.stackoverflow.com,遗憾的是,它还不存在。是的,我在这里看到了这么多关于人工智能的问题,我不明白为什么要关闭()。最好回答他关于激活函数导数的问题。你指的是成本函数的导数,不是。我已经回答了这个问题。为了这样做,有必要讨论整个backprop流程,在这样做的过程中,激活函数和成本函数都被提到了。好的,我想我现在明白了。但是,使用一个非常小的学习率和这个重量调整规则不是也能起作用吗<代码>新权重=权重+(期望-实际)*学习率*输入
是我指的规则。有了这个,我们仍然朝着正确的方向前进,例如。。。如果输入1的期望输出为0,而实际输出为1,那么我们将计算
weight=weight+(0-1)*0.1*1
,这基本上将权重减少0.1。但是,让我猜猜,这是不可能的,因为我们不知道隐藏单位的期望值。而且,一个S形函数的导数从来不像看起来的那样是负的,一个权重怎么能减少?而且,我知道为什么我们需要找到损失函数的最小值,但公式没有使用它,它实际上是在使用激活功能!请解释一下这些事情。。。