[基础知识] 反向传播(一)

单个单元的学习算法

1展示了一个人工神经元(单位)。$$\{x_1,…,x_K\}$$为输入变量,$$\{\omega_1,…,\omega_K\}$$为权重,$$y$$是一个标量输出,$$f$$是链接函数(也被称为:激活/决策/转移函数)。


1 一个人工神经元

该单元以下列的方式工作:
$$y=f(u)$$

其中,$$u$$是一个标量数字,是神经元的网络输入(或“新输入”)。$$u$$的定义如下:

$$u=\sum_{i=0}^K \omega_i x_i$$

使用向量表示的话,可以写成:

$$u=w^Tx$$

注意:在这里忽略了$$u$$中的偏置项。可以简单地增加一个总为1的输入维度(例如,$$x_0$$)来包含这个偏置项。

很明显,不同的链接函数会导致不同的神经元行为。在这里,我们将讨论两种链接函数的选择示例。

第一种$$f(u)$$的选择是单位阶跃函数(也被成为Heaviside阶跃函数):

$$f(u)=\begin{cases} 1 & \text{if u>0} \\
0 & \text{otherwise}
\end{cases}$$

该链接函数的神经元被成为一个感知机。感知机的训练算法是感知机算法。它的更新函数定义如下:

$$w^{(new)}=w^{(old)}-\eta \cdot (y-t) \cdot x$$

其中,$$t$$为标签(黄金标准),而$$\eta$$为学习率($$\eta > 0$$)。注意:感知机是一个线性分类器,这就意味着它的描述能力非常有限。如果我们希望使用更加复杂的函数,就需要使用一个非线性的模型。

小拓展:更多关于感知机的知识可以阅读博客-感知机(Perceptron)

第二种$$f(u)$$的示例选择是逻辑斯蒂函数sigmoid函数的最通用形式),定义为:

$$\sigma(u)=\frac{1}{1+e^{-u}}$$

逻辑斯蒂函数有两个基本的优点:
– 输出$$y$$一般位于$$0$$和$$1$$之间
– 与单位跃阶函数不同,$$\sigma(u)$$是平滑并且可微的,使得更新等式的推导非常简单。

注意:$$\sigma(u)$$有下面两个非常便利的属性,并且将会在之后的推导中使用到。

$$\sigma(-u)=1-\sigma(u) \tag{1}$$
$$\frac{d\sigma(u)}{du}=\sigma(u)\sigma(-u) \tag{2}$$

第一个公式就不用推导了,下面稍微推导下第二个公式:$$(e^{-u})’ = – e^{-u}$$,则有:

$$\begin{align}\frac{d\sigma(u)}{du} &=(-\frac{1}{{(1+e^{-u})}^2})\cdot ( – e^{-u}) \nonumber \\
&=\frac{e^{-u}}{{(1+e^{-u})}}\cdot \frac{1}{{(1+e^{-u})}} \nonumber\\
& =\sigma(u)\sigma(-u) \nonumber
\end{align} $$

我们使用随机梯度下降法作为该模型的学习算法。为了推导这个模型等式,我们需要定义误差函数,即训练目标。下面的目标函数看起来比较方便:

$$E=\frac{1}{2}{(t-y)}^2$$

针对$$\omega_i$$对$$E$$进行求导,得到:

$$\begin{align}
\frac{\delta E}{\delta \omega_i} &=\frac{\delta E}{\delta y}\cdot \frac{\delta y}{\delta u}\cdot \frac{\delta u}{\delta \omega_i} \nonumber\\
& = (y-t) \cdot y(1-y) \cdot x_i \nonumber
\end{align}$$

其中,$$\frac{\delta y}{\delta u}=y(1-y) $$可以根据公式$$(1)$$和公式$$(2)$$得到($$y=f(u)=\sigma(u)$$)。有了这个推导之后,我们就可以使用随机梯度下降了:

$$w^{(new)}=w^{(old)}-\eta (y-t)\cdot y(1-y)\cdot x$$

补充一点小知识:梯度下降法的基本更新公式为$$\theta_{i}=\theta_{i} – \alpha \frac{\delta J}{\delta \theta_i} $$,其中,$$\alpha$$是学习率。

打赏

mickey

记录生活,写给几十年后的自己。