神经网络中反向传播的目的

数据挖掘 机器学习 神经网络 逻辑回归 反向传播 损失函数
2022-02-16 11:48:53

我刚刚完成了对线性和逻辑回归函数及其优化的概念研究,为神经网络做准备。


例如,假设我们正在使用逻辑回归执行二元分类,让我们定义变量:

x- 包含所有输入的向量。

y- 包含所有输出的向量。

w0- 偏差权重变量。

W=(w1,...,w2)- 包含所有权重变量的向量。

f(xi)=w0+i=1xiwi=w0+xTW- 所有权重变量的总和。

p(xi)=11+ef(xi)- 逻辑激活函数(sigmoid),表示条件概率yi将是 1 给定的观察值xi.

L=1Ni=0Nyiln(p(xi))+(1yi)ln(1p(xi))- 二元交叉熵损失函数(伯努利随机变量的 Kullback-Leibler 散度加上表示概率的激活函数的熵)

L是多维函数,所以必须用偏导数来微分,即:

Lw

然后,链式法则给出:

Lw1=Lpipiw1

经过几次计算,损失函数的导数为:

(yipi)xi


所以我们得到了损失函数的导数,所有的权重都用梯度下降分别训练。

反向传播与此有什么关系?更准确地说,当我们可以简单地插入变量并计算每一步的梯度时,自动微分的意义何在,对吗?

简而言之

我们已经计算了导数,那么当我们可以插入变量时,在每一步计算它们有什么意义呢?

反向传播只是在每次迭代中优化权重的花哨术语吗?

1个回答

反向传播只是在每次迭代中优化权重的花哨术语吗?

几乎。反向传播是使用链式法则的一个花哨的术语。

当您有多个层时,将其视为一个单独的东西会变得更有用,因为与您应用链式规则一次的示例不同,您确实需要多次应用它,并且逐层应用它最方便层以与前馈步骤相反的顺序。

例如,如果你有两层,ll1带权重矩阵W(l)连接它们,每一层中神经元的非激活总和zi(l)和激活函数f(),然后您可以使用一般方程将层与层之间的总和(通常称为logits,因为它们可以传递给逻辑激活函数)处的梯度联系起来:

Lzj(l1)=f(zj(l1))i=1N(l)Wij(l)Lzi(l)

这只是应用于前馈网络通用方程的链式法则的两个步骤。它不提供权重的梯度,这是您最终需要的 - 有一个单独的步骤 - 但它确实将层连接在一起,并且是最终获得权重的必要步骤。这个等式可以变成一种算法,通过层逐步回溯——即反向传播。

更准确地说,当我们可以简单地插入变量并计算每一步的梯度时,自动微分的意义何在,对吗?

这正是自动微分正在做的事情。本质上是“自动微分”=“链式法则”,应用于有向函数图中的函数标签。