深度神经网络(DNN)&& 卷积神经网络(CNN)

引言

大家可能都听说过猫的视神经实验。在实验中,将玻璃包被的钨丝微电极插入麻醉猫的初级视皮层中的神经元,然后在置于猫前方的幕布上投射出一条光带,改变光带的空间方位角度,用微电极记录神经元的激活状态。 基于此研究,后续的科学家们又作了进一步的视觉实现,逐步发现了一些大脑视觉认知规律:

• 在视觉系统中,不同的细胞有不同的分工,如有些只能处理简单的线条信息,有些则能处理更复杂的形状。
• 在初级细胞加工完信息以后,会将信息传递至更高级的细胞。

的1998年,在论文《Gradient - Based Learning Applied to Document Recognition》中提出了LeNet-5,将BP算法应用到这个神经网络结构的训练上,形成了当代卷积神经网络的雏形。

神经网络的核心:部分模拟一个人的大脑。


1. 初探神经网络

1.1 人工神经元

神经元可以看作是一个处理信号的模块。人们便是基于大脑人类神经元设计了人工神经元的结构,其中, d d d表示有 d d d x x x的输入, w w w表示与输入进行线性运算的参数, b b b为偏移量, f f f表示非线性变化(也叫作激活函数)。

所以人工神经元就有两部分组成,线性变换(对应公式 a ( x ) a(x) a(x))和非线性变换(对应公式b(x)):
在这里插入图片描述
人工神经元包含了线性与非线性运算,按照万能近似定理,由多个及多层神经元组合的网络可以逼近任何复杂的运算,有潜力解决一些复杂的现实问题。

1.2 激活函数

那么激活函数有什么用呢?
在真实世界中,输入(疼痛的刺激)与输出(疼痛的感觉)并不是呈简单的线性关系,往往用非线性
关系来描述更确切。如何使两者之间呈非线性关系?非线性函数或者说激活函数:从“激活”本身的语义出发,激活函数可通俗地理解为,定义在某些特定刺激条件下产生特定活动的函数。

数学角度:如果神经元结构中只存在线性计算,即使有多个神经元组合计算,最终也属于线性计算,因此不能拟合出复杂的函数。加入非线性计算之后,可以增强神经网络的表达能力,理论上能表示任何复杂的运算,Universal approximation theorem(Hornik et al., 1989; Cybenko, 1989,中文称为万能近似定理)。因此激活函数是是神经网络中的重要结构。

下面介绍几个简单的激活函数:
sigmoid能够把输入映射到0和1之间,在物理上最接近神经元,可以被表示成概率,或者用于数据的归一化。但是它有两个严重的缺陷:其一,梯度消失——当x趋于无穷时,f(x)的两侧导数逐渐趋于0。在后
向传递时,sigmoid向下传递的梯度包含了一个f’(x)因子,因此,一旦落入两端的平滑区,f’(x)就变得接近于0,导致了向后传递的梯度也非常小。此时,网络参数很难得到有效训练,这种现象被称为梯度消失,一般在5层以内就会产生梯度消失的现象。其二,sigmoid函数的输出均大于0,使得输出不是0均值,称为偏置现象。
在这里插入图片描述
tanh的特点有:其一,能够把输入映射到-1和1之间,并且以0为中心对称;其二,梯度比sigmoid形梯度强(导数更陡峭),因此收敛更快;其三,同时也存在着与sigmoid函数类似的对两端值不敏感,梯度消失的问题。
在这里插入图片描述
Relu :虽然其表达式非常简单,但却有其独特的优势:其一,计算非常简单,对于复杂的深度学习训练而言,
能节省不少训练时间。其二,这种单边的输出特性和生物学意义上的神经元阈值机制十分相像:当输入小于0时,输出为0,当输入大于等于0时,输出保持不变。也就是说,当输入小于0时,此神经元不产生任何作用,处于失活状态,这也和人脑的工作机制类似。其三,从数学特性而言,当x>0时,梯度不变,解决了sigmoid及tanh常见的梯度消失问题。
在这里插入图片描述

在使用上,relu一般常用于多层感知机以及卷积神经网络,但是在循环神经网络中并不常见,这是因为在多次循环神经元的操作之后,可能具有非常大的输出,与有界值的情况相比,更容易发生输出值爆炸的情况。

1.3 多层感知机

我们先简要地介绍深度学习的起源算法——感知机(Perceptron),感知机接受多个输入并且只有一个输出,模拟的便是人类神经元的基本结构,

在这里插入图片描述
感知机是二分类的线性模型,其输入是实例的特征向量,输出的是事例的类别,分别是+1和-1,属于判别模型。感知机由于没有非线性变换,感知机不能解决简单的异或问题。

多层感知机(MLP,MultilayerPerceptron),又可称为深度神经网络(Deep Neural Network, DNN),是感知机的扩充结构,由输入层、隐含层(可以有多层)以及输出层构成,每一层之间都是全连接关系,如图所示。
在这里插入图片描述

  • MLP在横向上进行了扩充,具备多层,因此能够进行更加复杂的运算,增强了模型的表达能力;
  • 而且模型的输出也能有多个,可以针对多分类问题;
  • 另外,感知机所应用的非线性函数(或者说激活函数)是简单的sign,处理过程过于粗暴,输出形式过于简单,而MLP结构可以应用Sigmoid、Softmax、Tanh以及Relu等,而且在不同地方分情况应用,拟合能力进一步增强。

1.4 损失函数

神经网络针对不同的问题要设计不同的损失函数,从大的方面来看,可以包括三方面的问题:回归、二分类和多分类。
回归
均方误差是指参数估计值与参数真值之差平方的期望值; MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
在这里插入图片描述

均方根误差是均方误差的算术平方根,能够直观观测预测值与实际值的离散程度。
在这里插入图片描述

平均绝对误差是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况。
在这里插入图片描述
分类

交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型
的预测准确率。其中 p ( x ) p(x) p(x)是指真实分布的概率, q ( x ) q(x) q(x) 是模型通过数据计算出来的概率估计。
在这里插入图片描述

1.5 反向传播

BP算法包含两个过程:
• 初始化参数后将训练数据代入,逐步计算每一层的结果(前向);
• 以梯度下降法为基础,用反向传播的方式对参数进行更新。反复这两个过程直到模型的拟合能力达到一定程度或者达到最大迭大次数为止(后向)。
反向传播的目的是优化参数,最小化代价函数。

梯度下降法
其实“梯度”就是我们常说的“导数”,即代价函数的导数。梯度下降就是找让误差值(代价函数)最小的时候这个
算法所对应的参数。按梯度的反方向变化参数。
在这里插入图片描述

链式求导法则
链式法则是微积分中的求导法则,用以求一个复合函数的导数。所谓的复合函数,是指多个函数嵌套的情况 。 神经网络可以看作是一个极其复杂的,包含很多参数的复合函数。
在这里插入图片描述

为什么要反向
应用链式求导法则以及梯度下降可以更新参数了,那么为什么要说是反向呢? 更新顺序从后往前的。如果你认真思考反向传播的证明,这种反向移动其实是代价函数是网络输出的函数的后果。为了理解代价随前面层的权重和偏差变化的规律,我们需要重复作用链式法则,反向地获得需要的表达式。
如果我们从前面往后面计算的话,例如我们更新第一层 W W W,要去进行好多计算,再去更新第二层 W W W,又要进行大量重复的计算。这两次计算中也有大量的“重复单元”,实际上神经网络的每一个参数的计算都包含着这样大量的重复单元,那么神经网络规模一旦变大,这种算法的计算量一定爆炸,没有适用价值。


2. 走进CNN

2.1 图像处理神器CNN

首先图像处理具有以下三个特性:

  • 局部性
  • 平移性
  • 可缩性

局部性:某些重要的局部特征远小于整张图片大小;通过识别某重要的几个局部特征,便能有效地进行图片识别; 局部特征的解析只需要要少量的参数。
在这里插入图片描述
平移性:同样的特征可能出现在图片的不同位置,所以最好可以不同图片位置共用参数。
在这里插入图片描述
可缩性:适当降低分辨率不会影响识别效果。通过适当降低分辨率减小图片。减小模型参数规模。
在这里插入图片描述
CNN的简易图可由下所示:
在这里插入图片描述

2.2 CNN内部结构剖析

下面具体来看卷积层和池化层的细节。

2.2.1 卷积层

在处理图像这样的高维度输入时,让每个神经元都与前一层中的所有神经元进行全连接是不现实的。相反,我们让每个神经元只与输入数据的一个局部区域连接。该连接的空间大小叫做神经元的感受野(receptive field),它的尺寸是一个超参数(其实就是滤波器的空间尺寸)。在深度方向上,这个连接的大小总是和输入量的深度相等。
在这里插入图片描述
这个由于卷积具有“权值共享”这样的特性,可以降低参数数量,达到降低计算开销,防止由于参数过多而造成过拟合。
在这里插入图片描述

2.2.2 池化层

Max-pooling:最为常见,最大池化是取整个区域的最大值作为特征,在自然语言处理中常用于分类问题,希望观察到的特征是强特征,以便可以区分出是哪一个类别。

Average-pooling:通常是用于主题模型,常常是一个句子不止一个主题标签,如果是使用Max-pooling的话信息过少,所以使用Average的话可以广泛反映这个区域的特征。

K-max pooling:选取一个区域的前k个大的特征。

2.3 CNN的一些应用

先简单看一看CNN的进化史,我们下一章节会详细介绍一下。
在这里插入图片描述

2.3.1 CNN在本文中的应用

对于文本任务可以提取关键词,进一步说可以利用提取的关键词信息特征进行文本分类。最常用的是下图的Text-CNN:
在这里插入图片描述
还可以用于
多轮对话:抓取更多的上下文信息
基于依存关系的卷积:不仅仅是利用句子中相邻的词信息作为特征信息,应用依存句法树的将句子的语义信息关系真正地提取出来。
在这里插入图片描述

2.3.2 CNN在语音识别的应用

在这里插入图片描述

DFCNN使用大量的卷积层直接对整句语音信号进行建模。
• 在输入端DFCNN直接将语谱图作为输入,相比其他以传统语音特征作为输入的语音识别框架相比具有天然的优势。
• 在模型结构上,借鉴了图像识别的网络配置,每个卷积层使用小卷积核,并在多个卷积层之后再加上池化层,通过累积非常多的卷积池化层对,从而可以看到非常长的历史和未来信息。

2.3.3 CNN在围棋中的应用

由于围棋的棋盘其实可以看成一个19*19的图片,每个像素就是对应的位置的状态(是黑棋,还是白棋,还是没放棋)。因此我们可以把每个盘面表示成一个三通道的图片,对于位置p:
• 通道0 =表示p放的我方的子
• 通道1 = 表示p放的对方的子
• 通道2 = 表示p没放子
在这里插入图片描述


  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值