1. 神经元概述

神经网络是由一个个的被称为“神经元”的基本单元构成,单个神经元的结构如下图所示:

神经网络的基本原理_激活函数

对于上述的神经元,其输入为神经网络的基本原理_深度学习_02神经网络的基本原理_神经网络_03神经网络的基本原理_深度学习_04以及截距神经网络的基本原理_神经网络_05,其输出为:

神经网络的基本原理_深度学习_06

其中,神经网络的基本原理_权重_07表示的是向量,代表的是权重,函数神经网络的基本原理_权重_08称为激活函数,通常激活函数可以选择为Sigmoid函数,或者tanh双曲正切函数,其中,Sigmoid函数的形式为:

神经网络的基本原理_权重_09

双曲正切函数的形式为:

神经网络的基本原理_激活函数_10

以下分别是Sigmoid函数和tanh函数的图像,左边为Sigmoid函数的图像,右边为tanh函数的图像:

神经网络的基本原理_激活函数_11

Sigmoid函数的区间为神经网络的基本原理_权重_12,而tanh函数的区间为神经网络的基本原理_激活函数_13

若是使用sigmoid作为神经元的激活函数,则当神经元的输出为神经网络的基本原理_激活函数_14时表示该神经元被激活,否则称为未被激活。同样,对于激活函数是tanh时,神经元的输出为神经网络的基本原理_激活函数_14时表示该神经元被激活,否则称为未被激活。

2. 神经网络

2.1. 神经网络的结构

神经网络是由很多的神经元联结而成的,一个简单的神经网络的结构如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2kBGVAsn-1650777194062)(http://i.imgur.com/370RBZK.jpg)]

其中一个神经元的输出是另一个神经元的输入,神经网络的基本原理_神经网络_05项表示的是偏置项。上图是含有一个隐含层的神经网络模型,神经网络的基本原理_激活函数_17层称为输入层,神经网络的基本原理_权重_18层称为隐含层,神经网络的基本原理_激活函数_19层称为输出层。

2.2. 神经网络中的参数说明

在神经网络中,主要有如下的一些参数标识:

  • 网络的层数神经网络的基本原理_激活函数_20。在上述的神经网络中神经网络的基本原理_神经网络_21,将第神经网络的基本原理_激活函数_22层记为神经网络的基本原理_神经网络_23,则上述的神经网络,输入层为神经网络的基本原理_神经网络_24,输出层为神经网络的基本原理_深度学习_25
  • 网络权重和偏置神经网络的基本原理_深度学习_26,其中神经网络的基本原理_权重_27表示的是第神经网络的基本原理_激活函数_22层的第神经网络的基本原理_权重_29个神经元和第神经网络的基本原理_神经网络_30层的第神经网络的基本原理_权重_31个神经元之间的连接参数,神经网络的基本原理_深度学习_32标识的是第神经网络的基本原理_神经网络_30层的第神经网络的基本原理_权重_31个神经元的偏置项。在上图中,神经网络的基本原理_权重_35神经网络的基本原理_深度学习_36

2.3. 神经网络的计算

在神经网络中,一个神经元的输出是另一个神经元的输入。假设神经网络的基本原理_激活函数_37表示的是第神经网络的基本原理_神经网络_38层的第神经网络的基本原理_深度学习_39个神经元的输入,假设神经网络的基本原理_权重_40表示的是第神经网络的基本原理_神经网络_38层的第神经网络的基本原理_深度学习_39个神经元的输出,其中,当神经网络的基本原理_激活函数_43时,神经网络的基本原理_权重_44。根据上述的神经网络中的权重和偏置,就可以计算神经网络中每一个神经元的输出,从而计算出神经网络的最终的输出神经网络的基本原理_深度学习_45

对于上述的神经网络结构,有下述的计算:

神经网络的基本原理_深度学习_46

神经网络的基本原理_权重_47

神经网络的基本原理_深度学习_48

神经网络的基本原理_权重_49

神经网络的基本原理_神经网络_50

神经网络的基本原理_激活函数_51

从而,上述神经网络结构的最终的输出结果为:

神经网络的基本原理_深度学习_52

上述的步骤称为前向传播,指的是信号从输入层,经过每一个神经元,直到输出神经元的传播过程。

2.4. 其他形式的神经网络模型

上述以单隐层神经网络为例介绍了神经网络的基本结构,在神经网络的结构中,可以包含多个隐含层,神经网络的输出神经单元也可以是多个,如下面的含多隐层多输出单元的神经网络模型:

神经网络的基本原理_深度学习_53

2.5. 神经网络中参数的求解

对于上述神经网络模型,假设有神经网络的基本原理_深度学习_54个训练样本神经网络的基本原理_权重_55,对于一个训练样本神经网络的基本原理_深度学习_56,其损失函数为:

神经网络的基本原理_激活函数_57

为了防止模型的过拟合,在损失函数中会加入正则项,即:

神经网络的基本原理_权重_58

其中,神经网络的基本原理_深度学习_59表示的是损失函数,神经网络的基本原理_深度学习_60表示的是正则项。则对于上述的含有神经网络的基本原理_深度学习_54个样本的训练集,其损失函数为:

神经网络的基本原理_神经网络_62

通常,偏置项并不放在正则化中,因为在正则化中放入偏置项只会对神经网络产生很小的影响。

我们的目标是要求得参数神经网络的基本原理_权重_07和参数神经网络的基本原理_神经网络_64以使得损失函数神经网络的基本原理_激活函数_65达到最小值。首先需要对参数进行随机初始化,即将参数初始化为一个很小的接近神经网络的基本原理_神经网络_66的随机值。

参数的初始化有很多不同的策略,基本的是要在神经网络的基本原理_激活函数_67附近的很小的邻域内取得随机值。

在随机初始化参数后,利用前向传播得到预测值神经网络的基本原理_权重_68,进而可以得到损失函数,此时需要利用损失函数对其参数进行调整,可以使用梯度下降的方法,梯度下降对参数的调整如下:

神经网络的基本原理_激活函数_69

神经网络的基本原理_神经网络_70

其中,$\alpha $称为学习率,在计算参数的更新公式中,需要使用到反向传播算法

神经网络的基本原理_深度学习_71神经网络的基本原理_激活函数_72的具体形式如下:

神经网络的基本原理_神经网络_73

神经网络的基本原理_权重_74

反向传播算法的思路如下:对于给定的训练数据神经网络的基本原理_深度学习_56,通过前向传播算法计算出每一个神经元的输出值,当所有神经元的输出都计算完成后,对每一个神经元计算其“残差”,如第神经网络的基本原理_神经网络_38层的神经元神经网络的基本原理_深度学习_39的残差可以表示为神经网络的基本原理_神经网络_78。该残差表示的是该神经元对最终的残差产生的影响。这里主要分为两种情况,一是神经元为输出神经元,第二是神经元为非输出神经元。这里假设神经网络的基本原理_激活函数_37表示第神经网络的基本原理_神经网络_38层上的第神经网络的基本原理_深度学习_39个神经元的输入加权和,假设神经网络的基本原理_权重_40表示的是第神经网络的基本原理_神经网络_38层上的第神经网络的基本原理_深度学习_39个神经元的输出, 即神经网络的基本原理_深度学习_85

  • 对于输出层神经网络的基本原理_权重_86上的神经元神经网络的基本原理_权重_31,其残差为:

神经网络的基本原理_深度学习_88

-对于非输出层,即对于神经网络的基本原理_权重_89各层,第神经网络的基本原理_神经网络_38层的残差的计算方法如下(以第神经网络的基本原理_神经网络_91层为例):

神经网络的基本原理_神经网络_92

因此有:

神经网络的基本原理_神经网络_93

对于神经网络中的权重和偏置的更新公式为:

神经网络的基本原理_深度学习_94

神经网络的基本原理_深度学习_95

2.6. 神经网络的学习过程

对于神经网络的学过程,大致分为如下的几步:

  • 初始化参数,包括权重、偏置、网络层结构,激活函数等等
  • 循环计算
  • 正向传播,计算误差
  • 反向传播,调整参数
  • 返回最终的神经网络模型

参考文献

[1] 英文版:UFLDL Tutorial

[2] 中文版:UFLDL教程