2-MLP讲解

2. 神经网络

参考资料

https://blog.csdn.net/as091313/article/details/79080583

2.1 概念

2.1.1 概念

人工神经网络(artificial neural network,ANN),简称神经网络(neural network,NN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型。

神经网络是一种运算模型,由大量的节点(或称“神经元”)和之间相互的联接构成。

每个节点代表一种特定的输出函数,称为激励函数、激活函数(activation function)。

每两个节点间的联接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。

网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

2.1.2 应用-分类

神经网络最重要的用途是分类,为了让大家对分类有个直观的认识,咱们先看几个例子:

  • 垃圾邮件识别:现在有一封电子邮件,把出现在里面的所有词汇提取出来,送进一个机器里,机器需要判断这封邮件是否是垃圾邮件。
  • 疾病判断:病人到医院去做了一大堆肝功、尿检测验,把测验结果送进一个机器里,机器需要判断这个病人是否得病,得的什么病。
  • 猫狗分类:有一大堆猫、狗照片,把每一张照片送进一个机器里,机器需要判断这幅照片里的东西是猫还是狗。

2.2 前期准备

资料参考

https://zhuanlan.zhihu.com/p/65472471

2.2.1 神经元

神经网络中最基本的成分是神经元模型,即上述定义中的简单单元

这里写图片描述

I n p u t s Inputs Inputs:输入

W e i g h t s Weights Weights:权值,权重

B i a s Bias Bias:偏置,或者称为阈值

A c t i v a t i o n f u n c t i o n Activationfunction Activationfunction:激活函数

这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。

2.2.2 激活函数

参考资料

https://zhuanlan.zhihu.com/p/25279356

激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题。

简而言之,激活层是为矩阵运算的结果添加非线性的。

常用的激活函数有三种,分别是阶跃函数、Sigmoid和ReLU。不要被奇怪的函数名吓到,其实它们的形式都很简单,如下图(更正:sigmoid在负无穷是应趋近于0):

img

  • 阶跃函数:当输入小于等于0时,输出0;当输入大于0时,输出1。
  • Sigmoid:当输入趋近于正无穷/负无穷时,输出无限接近于1/0。
  • ReLU:当输入小于0时,输出0;当输入大于0时,输出等于输入。

1) sigmoid函数

sigmoid函数是一种常见的挤压函数,其将较大范围的输入挤压到 ( 0 , 1 ) (0,1) (0,1)区间内,其函数的表达式与形状如下图所示:

这里写图片描述

该函数常被用于分类模型,因为其具有很好的一个特性 f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f^\prime(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x)).这个函数也会被用于下面的神经网络模型中做激活函数。

2) 双极性Sigmoid函数

h ( x ) = 2 1 + e − α x − 1 h ′ ( x ) = 2 α e − α x ( 1 + e − α x ) = α 1 − h ( x ) 2 2 h(x)=\frac{2}{1+e^{-\alpha x}}-1 \\ h^\prime(x)=\frac{2\alpha e^{-\alpha x}}{(1+e^{-\alpha x})}=\alpha\frac{1-h(x)^2}{2} h(x)=1+eαx21h(x)=(1+eαx)2αeαx=α21h(x)2

例子

f ( x ) − 1 − e − x 1 + e − x f(x)-\frac{1-e^{-x}}{1+e^{-x}} f(x)1+ex1ex

在这里插入图片描述

3) 阶跃函数

阶跃函数是一种特殊的连续时间函数,是一个从0跳变到1的过程,属于奇异函数

阶跃函数

4) ReLU

线性整流函数(Rectified Linear Unit, ReLU),又称**修正线性单元,**是一种人工神经网络中常用的激活函数(activation function)

概述图册

2.2.3 层介绍

该模型与一个有向无环图相关联

f ( x ) = f ( 3 ) ( f ( 2 ) ( f ( 1 ) ( x ) ) ) f(x)=f^{(3)}(f^{(2)}(f^{(1)}(x))) f(x)=f(3)(f(2)(f(1)(x)))

f ( 1 ) f^{(1)} f(1)​被称为网络的第一层,叫做输入层

f ( 2 ) f^{(2)} f(2)​​被称为网络的第二层,叫做隐藏层

f ( 3 ) f^{(3)} f(3)​被称为网络的第三层,叫做输出层

img

1) 输入层

在我们的例子中,输入层是坐标值,例如 ( 1 , 1 ) (1,1) (1,1),这是一个包含两个元素的数组,也可以看作是一个 1 × 2 1\times 2 1×2的矩阵。输入层的元素维度与输入量的特征息息相关,如果输入的是一张 32 × 32 32\times 32 32×32像素的灰度图像,那么输入层的维度就是 32 × 32 32\times 32 32×32

2) 隐藏层

连接输入层和隐藏层的是 W 1 W_1 W1 b 1 b_1 b1​。由X计算得到H十分简单,就是矩阵运算:
H = X ⋅ W 1 + b 1 H=X\cdot W_1+b_1 H=XW1+b1
如果你学过线性代数,对这个式子一定不陌生。如上图中所示,在设定隐藏层为50维(也可以理解成50个神经元)之后,矩阵H的大小为 1 × 50 1\times 50 1×50​的矩阵。

连接隐藏层和输出层的是W2和b2。同样是通过矩阵运算进行的:
Y = H ⋅ W 2 + b 2 Y=H\cdot W_2+b_2 Y=HW2+b2
一系列线性方程的运算最终都可以用一个线性方程表示

也就是说,上述两个式子联立后可以用一个线性方程表达。对于两次神经网络是这样,就算网络深度加到100层,也依然是这样。这样的话神经网络就失去了意义。

所以这里要对网络注入灵魂:激活层

需要注意的是,每个隐藏层计算(矩阵线性运算)之后,都需要加一层激活层,要不然该层线性计算是没有意义的。

img

3) 输出层

输出Y的值可能会是(3,1,0.1,0.5)这样的矩阵,诚然我们可以找到里边的最大值“3”,从而找到对应的分类为I,但是这并不直观。我们想让最终的输出为概率,也就是说可以生成像(90%,5%,2%,3%)这样的结果,这样做不仅可以找到最大概率的分类,而且可以知道各个分类计算的概率值。

具体是怎么计算的呢?

计算公式如下:

S i = e i ∑ j e j S_i=\frac{e^i}{\sum_je^j} Si=jejei

简单来说分三步进行:

(1)以e为底对所有元素求指数幂;

(2)将所有指数幂求和;

(3)分别将这些指数幂与该和做商。

这样求出的结果中,所有元素的和一定为1,而每个元素可以代表概率值。

我们将使用这个计算公式做输出结果正规化处理的层叫做“Softmax”层。此时的神经网络将变成

img

4) Softmax-with-Loss 层

  • Softmax层:将输入值正规化(输入值和调整为1,反映概率)后输出。
  • Loss层:cross entropy error(交叉熵误差,一种损失函数)接收Softmax的输出(y1, y2, y3)和监督标签(t1, t2, t3), 输出损失L。

img

包含作为损失函数的交叉熵误差(cross entropy error),所以称为“Softmax-with-Loss层”。

Softmax-with-Loss层的计算图:

img

简易版Softmax-with-Loss层的计算图:

img

5) Affine层

神经网络在传播时,进行的矩阵乘积运算。

神经网络的正向传播中,为了计算加权信号的总和,使用了矩阵的乘积运算(NumPy中是 np.dot())

神经网络的正向传播中进行的矩阵的乘积运算在几何学领域被称为“仿射变换”

如图:

img

2.3 损失函数

2.3.1 均方误差

E = 1 2 ∑ k ( y k − t k ) 2 E=\frac{1}{2}\sum_{k}(y_k-t_k)^2 E=21k(yktk)2

y k y_k yk表示神经网络输出, t k t_k tk表示监督数据,k表示数据的维度

2.3.2 交叉熵误差

E = − ∑ k t k l o g y k E=-\sum_{k}t_klogy_k E=ktklogyk

y k y_k yk表示神经网络输出, t k t_k tk表示监督数据, k k k表示数据的维度

$ log$是以e为底数的自然对数

参考文章

https://blog.csdn.net/qq_32790593/article/details/83619899

参考文章2

https://blog.csdn.net/qq_21966233/article/details/87189597

猜你喜欢

转载自blog.csdn.net/wujing1_1/article/details/124908938
MLP