神经网络的介绍



1. 人工神经网络的概念

人工神经网络(英语:Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型,用于对函数进行估计或近似。



2. 神经元模型

将生物神经网络的工作原理抽象如图所示的简单模型,这就是的 M-P 神经元模型。把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。

在这里插入图片描述

其中:

  1. a 1 , a 2 … a n ​ a_1,a_2\dots a_n​ a1,a2an 为各个输入的分量
  2. w 1 , w 2 ⋯ w n w_1,w_2 \cdots w_n w1,w2wn 为各个输入分量对应的权重参数
  3. b b b 为偏置
  4. f f f激活函数,常见的激活函数有tanh,sigmoid,relu
  5. t t t 为神经元的输出

使用数学公式表示就是:
t = f ( W T A + b ) t = f(W^TA+b) t=f(WTA+b)
可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果



3. 单层神经网络

最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量。由于每一个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。

单层神经网络



4. 感知机

感知机由两层神经网络组成,输入层接收外界输入信号后传递给输出层(输出+1正例,-1反例),输出层是 M-P 神经元

感知机

其中从 w 0 , w 1 ⋯ w n ​ w_0,w_1\cdots w_n​ w0,w1wn都表示权重

感知机的作用:

把一个n维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断出这个向量位于超平面的哪一边,得到输入时正类或者是反类,对应到2维空间就是一条直线把一个平面分为两个部分



5. 多层神经网络

多层神经网络就是由单层神经网络进行叠加之后得到的,所以就形成了的概念,常见的多层神经网络有如下结构:

  • 输入层(Input layer),众多神经元(Neuron)接受大量输入消息。输入的消息称为输入向量。
  • 输出层(Output layer),消息在神经元链接中传输、分析、权衡,形成输出结果。输出的消息称为输出向量。
  • 隐藏层(Hidden layer),简称“隐层”,是输入层和输出层之间众多神经元和链接组成的各个层面。隐层可以有一层或多层。隐层的节点(神经元)数目不定,但数目越多神经网络的非线性越显著,从而神经网络的强健性(robustness)更显著。

示意图如下:
多层神经网络

全连接层
当前一层和前一层每个神经元相互链接,我们称当前这一层为全连接层。

全连接层

从上图可以看出,所谓的全连接层就是在前一层的输出的基础上进行一次 Y = W x + b ​ Y=Wx+b​ Y=Wx+b的变化(不考虑激活函数的情况下就是一次线性变化,所谓线性变化就是平移(+b)和缩放的组合(*w))



6. 激活函数

要将数据中的正方形和三角形分开

激活函数1

通过不带激活函数的感知机模型我们可以划出一条线, 把平面分割开

激活函数2

但是通过感知机并无法将三角形和正方形完全分离。因此,可以考虑使用多层神经网络,在前面的感知机模型中再增加一层

激活函数3

合并等式,可以得到:
y = ( w 1 − 11 w 2 − 1 + ⋯   ) x 1 + ( w 1 − 21 w 2 − 1 + ⋯   ) x 2 + ( w 2 − 1 + ⋯   ) b 1 − 1 y = (w_{1-11}w_{2-1}+\cdots)x_1+(w_{1-21}w_{2-1}+\cdots)x_2 + (w_{2-1}+\cdots)b_{1-1} y=(w111w21+)x1+(w121w21+)x2+(w21+)b11
上式括号中的都为w参数,和公式 y = w 1 x 1 + w 2 x 2 + b y = w_1x_1 + w_2x_2 +b y=w1x1+w2x2+b完全相同,依然只能够绘制出直线。相比于感知机,多层神经网络并没有任何的改进。

通过使用非线性的激活函数,让输出结果不再是一条直线。

激活函数4

上图中,使用sigmoid函数进行处理

如果给定合适的参数w和b,就可以得到合适的曲线,能够完成对最开始问题的非线性分割

所以激活函数很重要的一个作用就是增加模型的非线性分割能力

常见的激活函数:

激活函数5

看图可知:

  • sigmoid 只会输出正数,以及靠近0的输出变化率最大
  • tanh和sigmoid不同的是,tanh输出可以是负数
  • Relu是输入只能大于0,如果输入含有负数,Relu就不适合,如果输入图片格式,常用Relu,因为图片的像素值作为输入时取值为[0,255]。

激活函数的作用:

  • 增加模型的非线性分割能力
  • 提高模型鲁棒性
  • 缓解梯度消失问题
  • 加速模型收敛等


参考:
肝爆!清华大佬【NLP自然语言处理】保姆级入门教程,干货课程分享,全程精华,没有一丝丝废话!-人工智能/AI/深度学习/机器学习。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐