ANN 神经网络基础

365 阅读1分钟

生物神经元结构

在这里插入图片描述

神经元数学模型

图2 该模型由三部分组成,即加权求和线性动态系统非线性函数映射

图中,yjy_j表示第jj个神经元的输出,θi\theta_i表示神经元ii的阈值,uku_k(k=1,2,...,M)为外部输入,aija_{ij}为神经元jj到神经元ii的权值。bikb_{ik}为外部输入uku_k到神经元ii的权值,计算时可以把外部输入看做某个神经元的输出(例如BP神经网络中的偏置节点)。

任意神经元ii的输入可以看做两部分:从y1y_1yNy_N代表的其他神经元的输出,以及从u1u_1uMu_M代表的外部输入。 该图为了形式上的统一,把神经元的阈值θi\theta_i看作是以-1为外部输入时的权值,实际上很容易使初学者理解困难。

加权求和的数学描述:

vi(t)v_i(t)yj(t)y_j(t)uk(t)u_k(t)分别表示tt时刻时,神经元ii的状态(因为神经元的输出决定其状态,所以有时神经元的输出又称为状态,这两个词可能混用),神经元jj的输出,第kk个外部输入,则有:

vi(t)=j=1Naijyj(t)+k=1Mbikuk(t)θi\begin{equation}v_i(t)=\sum_{j=1}^Na_{ij}y_j(t)+\sum_{k=1}^Mb_{ik}u_k(t)-\theta_i\end{equation}

其中,j=1Naijyj(t)\begin{aligned}\sum_{j=1}^Na_{ij}y_j(t)\end{aligned}表示y1y_1yNy_N所有神经元的输出与权值乘积的和,代表其他神经元的输出对该神经元的直接影响。 k=1Mbikuk(t)\begin{aligned}\sum_{k=1}^Mb_{ik}u_k(t)\end{aligned}表示u1u_1uMu_M所有外部输出与权值乘积的和,代表外部输入(如人工干涉)对该神经元的直接影响。 θi\theta_i为神经元ii的阈值。 显然,所有输入大于阈值时,vi(t)>0v_i(t)>0,神经元为兴奋状态,否则神经元为抑制状态。

神经元的输入输出关系

uiu_i表示神经元的输入,yiy_i表示神经元的输出,则神经元ii的输入输出关系表示为:

yi=f(ui)\begin{equation} y_i=f(u_i) \end{equation}

其中,ff为激活函数。该式表明,所有神经元接收输入以后,把它作为参数传递给激活函数,得到该神经元的输出。

激活函数

根据函数的图像是否为直线,激活函数可分为线性激活函数1非线性激活函数。 激活函数的主要作用:

  1. 把输入映射到特定区间或特征值,既能决定神经元输出的值域,又可以把输入映射到特征空间(特征值)。

  2. 如果激活函数是非线性函数,可以极大地增强神经元的表达能力,建立从输入到输出的非线性映射。(一个非线性函数可以是任意个数的非线性函数与线性函数的叠加,因此具有极强的抽象表达能力)

    图2

在上图中,viv_i只是加权求和的结果,还没有经过激活函数处理,不是最终的输出。

常用的 非线性激活函数

对于任意神经元ii,设xix_i为输入,则输出为f(xi)f(x_i)

  1. 阶跃函数
f(xi)={0xi<01xi0\begin{equation} f(x_i)=\left\{ \begin{aligned} &0&{x_i<0}\\ &1&{x_i\ge0}\\ \end{aligned} \right. \end{equation}
f(xi)={1xi<01xi0f(x_i)=\left\{ \begin{aligned} &-1&{x_i<0}\\ &1&{x_i\ge0}\\ \end{aligned} \right.

不管神经元使用什么激活函数,对于神经网络最终的输出,都能够再使用一次阶跃函数实现从原始输出到特征值的映射。

2. ReLU函数

f(xi)={0xi<0xixi0f(x_i)=\left\{ \begin{aligned} &0&{x_i<0}\\ &x_i&{x_i\ge0}\\ \end{aligned} \right.

ReLU函数形式简单,并且没有饱和问题,运算速度快,收敛效果好,常用于卷积神经网络。

3. S型函数 s型函数具有平滑、渐进和单调性,是最常用的非线性函数。

(1) Sigmoid函数

f(xi)=11+eαxi\begin{equation}f(x_i)=\frac{1}{1+e^{-\alpha x_i}}\end{equation}

该函数值域为(0,1),即Sigmoid函数把神经元的输出映射到(0,1)区间。 缺点是,当输入的绝对值大于某个值以后,过快进入饱和状态(函数值趋于0或1,不再有显著的变化),出现梯度消失(梯度趋近于0)的情况,会导致模型训练时收敛缓慢,效果不佳。

(2) 双曲线正切函数

f(xi)=1eαxi1+eαxif(x_i)=\frac{1-e^{-\alpha x_i}}{1+e^{-\alpha x_i}}

该函数值域为(-1,1),即双曲线正切函数把神经元的输出映射到(-1,1)区间。 以上式子中的α\alpha用于控制函数斜率,实际使用该函数时,通常省略该参数。

神经网络的分类

按结构分类

  1. 前馈型

    前馈型神经网络中,可分为不同的层,每一层神经元只与相邻的层相连。神经元的信号传递是单向的, 各神经元接收前一个(层)神经元的输入,并输出给下一个(层)神经元,没有任何反馈。 例如BP神经网络。

  2. 反馈型

    在反馈型神经网络中,存在一些神经元的输出,经过若干个神经元的传递后,又返回作为这些神经元输入的情况。 例如Hopfield神经网络。

按工作方式分类

如果神经网络中各神经元同时更新状态(输出),就是同步工作方式。 如果神经网络中各神经元按某种顺序,逐个更新状态(输出),每个神经元更新状态时,其他神经元状态不变,就是异步工作方式。

Hebb学习规则

如果某一突触两端的神经元同时处于兴奋状态,它们的连接权值应该增强。 两个神经元的输出yiy_iyjy_j越大,神经元越兴奋,权值就应该增强的越多。 用wijw_{ij}表示神经元iijj之间的权值,kk表示时刻,则:

wij(k+1)=wij(k)+αyi(k)yj(k)(α>0)w_{ij}(k+1)=w_{ij}(k)+\alpha y_i(k)y_j(k)\quad (\alpha > 0)

更新后的权值=当前权值+权值的改变量\quad更新后的权值=当前权值+权值的改变量

Footnotes

  1. 线性函数的通式为 f=kx+bf=kx+b