深度学习知识梳理(干货满满详解DNN/CNN/RNN)之深度学习网络模型(三)

!!!深度学习知识梳理系列文章汇总!!!
深度学习知识梳理(干货满满详解DNN/CNN/RNN)之神经网络基础(一)
深度学习知识梳理(干货满满详解DNN/CNN/RNN)之深度学习网络结构(二)
深度学习知识梳理(干货满满详解DNN/CNN/RNN)之深度学习网络模型(三)
深度学习知识梳理(干货满满详解DNN/CNN/RNN)之模型训练(四)
深度学习知识梳理(干货满满详解DNN/CNN/RNN)之评估与调参(五)

1 深度神经网络(DNN)、or 全连接神经网络(FCN)

主要包括 输入层、隐藏层、输出层。除了输入层外,其他层各节点相当于一个使用了可导激活函数的感知机。
在这里插入图片描述

1.1 结构

在处理回归、分类问题中,神经网络的输出层不同。
简言之,就是
分类任务输出层:全连接层+softmax层(输出层节点个数取决于分类数目)
回归任务输出层:全连接层(输出层节点个数取决于需要预测的变量数)

具体区别如下所示:
在这里插入图片描述
ground truth指监督学习中训练集的正确结果

Softmax
对于多类问题,类别标签𝑦 ∈ {1, 2, ⋯ , 𝐶}可以有𝐶 个取值. 给定一个样本𝒙,Softmax回归预测的属于类别𝑐的条件概率为
在这里插入图片描述
分类任务采用交叉熵来判定预测结果与期望输出的接近程度
在这里插入图片描述

1.2 参数更新
常见损失函数:

在这里插入图片描述
交叉熵损失
在这里插入图片描述

系统目标函数(结构化风险收益)

如果采用交叉熵损失函数,对于样本(𝒙, 𝑦),如果损失函数如下:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
其中𝑾 和𝒃分别表示网络中所有的权重矩阵和偏置向量; ‖W‖_F^2是正则化项,用来防止过拟合;𝜆 > 0 为超参数. 𝜆 越大,𝑾 越接近于 0.
注意:这里的正则化项只包含权重参数𝑾,而不包含偏置𝒃.这里的 ‖W‖_F^2 一般使用Frobenius范数

有了学习准则和训练样本,网络参数可以通过梯度下降法来进行学习. 在梯度下降方法的每次迭代中,第𝑙 层的参数𝑾(𝑙) 和𝒃(𝑙) 参数更新方式为
在这里插入图片描述
其中𝛼为学习率.
梯度下降法需要计算损失函数对参数的偏导数,如果通过链式法则逐一对每个参数进行求偏导比较低效. 在神经网络的训练中经常使用反向传播算法来高效地计算梯度。

1.3 前向传播、反向传播

在这里插入图片描述
可参考
https://www.cnblogs.com/charlotte77/p/5629865.html
Or
https://www.cnblogs.com/pinard/p/6422831.html

1.4 常见迭代更新的优化算法

momentum、Nesterov Momentum、AdaGrad、Adadelta、RMSprop、Adam等算法
在这里插入图片描述
具体参见 https://blog.csdn.net/u012328159/article/details/80311892

2 卷积神经网络 (CNN)

2.1 简介

卷积神经网络(Convolutional Neural Network,CNN 或 ConvNet)是一种具有局部连接、权重共享等特性的深层前馈神经网络。

早期的全连接方式不适用于图像特征提取,主要原因:

  1. 参数数量太多,导致运算时间长,效率低,而且容易过拟合;
    例子:把图片的每个像素都连接到隐层节点上,那么对于一张1000x1000像素的图片, 如果隐层有106个节点,那么一共有约1012个参数,这显然无法接受。
    在这里插入图片描述
  2. 等同看待图像的所有元素,没有利用到像素间的位置信息。

卷积神经网络是受生物学上感受野机制的启发而提出的. 感受野(Receptive Field)机制主要是指听觉、视觉等神经系统中一些神经元的特性,即神经元只接受其所支配的刺激区域内的信号. 在视觉神经系统中,视觉皮层中的神经细胞的输出依赖于视网膜上的光感受器. 视网膜上的光感受器受刺激兴奋时,将神经冲动信号传到视觉皮层,但不是所有视觉皮层中的神经元都会接受这些信号.一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元.

(经典的CNN模型-LeNet网络结构)
在这里插入图片描述
早期的卷积神经网络主要是用来处理图像信息的,其主要优点包括:

  1. 局部连接:认为最底层特征都是局部性的,每个神经元只需要与上一层的一部分节点相连。
  2. 权值共享:一组连接可以共享同一个权重,而不是每个连接的权重不同。
  3. 下采样:可以调整滑动步长(stride)来减少每层的样本数。

2.2 结构

(1)整体网络结构

CNN结构:一般由卷积层、汇聚层(池化层)和全连接层构成
在这里插入图片描述
图中是一个图形识别的CNN模型。可以看出最左边的船的图像就是我们的输入层,计算机理解为输入若干个矩阵,这点和DNN基本相同。
  接着是卷积层(Convolution Layer),这个是CNN特有的。卷积层的激活函数使用的是ReLU。它其实很简单,就是
ReLU(x)=max(0,x)。
在卷积层后面是池化层(Pooling layer),这个也是CNN特有的。需要注意的是,池化层没有激活函数。
  卷积层+池化层的组合可以在隐藏层出现很多次,上图中出现两次。而实际上这个次数是根据模型的需要而来的。当然我们也可以灵活使用使用卷积层+卷积层,或者卷积层+卷积层+池化层的组合,这些在构建模型的时候没有限制。但是最常见的CNN都是若干卷积层+池化层的组合,如上图中的CNN结构。
  在若干卷积层+池化层后面是全连接层(Fully Connected Layer, 简称FC),全连接层其实就是我们前面讲的DNN结构,只是输出层使用了Softmax激活函数来做图像识别的分类,这点我们在DNN中也有讲述。
  从上面CNN的模型描述可以看出,CNN相对于DNN,比较特殊的是卷积层和池化层,如果我们熟悉DNN,只要把卷积层和池化层的原理搞清楚了,那么搞清楚CNN就容易很多了。

(2)卷积层
深度学习中的卷积

卷积神经网络中的核心即为 卷积运算,其相当于图像处理中的 滤波器运算。对于一个 m×n大小的卷积核,

在这里插入图片描述
其对某一原图像 X 进行卷积运算的过程为:卷积核 W 中的每一个权值 w 分别和覆盖的原图像 X 中所对应的像素 x 相乘,然后再求和。计算公式为:
在这里插入图片描述
所以一幅图像的一个完整的卷积运算过程为:卷积核以一定的间隔滑动并对所覆盖的区域进行卷积运算得到值 z,直至遍历完整幅图加粗样式像。如下图所示:

在这里插入图片描述
注意:
在神经网络中使用卷积是为了进行特征抽取,卷积核是否进行翻转和其特征抽取的能力无关. 特别是当卷积核是可学习的参数时,卷积和互相关在能力上是等价的. 因此,为了实现上(或描述上)的方便起见,我们用互相关来代替卷积.事实上,很多深度学习工具中卷积操作其实都是互相关操作.

在这里插入图片描述

基础概念

• 这个权重矩阵称为卷积核(convolution kernel/filter)
• 其覆盖的位置称为感受野(receptive field)
生成的新的矩阵叫做特征图(feature map)
• 滑动的像素数量叫做步长(stride)
以卷积核的边还是中心点作为开始/结束的 依据,决定了卷积的补齐(padding)方 式。没有用0补齐、卷积核用角为对齐点的方式都是valid方式,而same 方式则会在图像边缘用0补齐、用卷积核中心和感受野第一个元素对齐。

在这里插入图片描述

• 卷积操作后的feature map中的元素个数计算:
在这里插入图片描述
例如:
10x10的图像,用5x5的卷积核,采用valid方式(padding=0),stride=2 输出feature map为: floor((10 – 5 + 0*2)/2) + 1 = 3 x 3

注意:
如果输入通道不只一个(例如RGB),那么卷积核是三阶的。所有通道的结果做累加。最后输出的是单通道的(计算完3个通道的特征图相同位置要相加汇总成一个通道)

在这里插入图片描述
在这里插入图片描述

(3)池化层:
定义:

随着模型网络不断加深,卷积核越来越多,要训练的参数还是很多,而且直接拿卷积核提取的特征直接训练也容易出现过拟合的现象。CNN使用的另一个有效的工具被称为“池化(Pooling)”出现并解决了上面这些问题,为了有效地减少计算量,池化就是将输入图像进行缩小,减少像素信息,只保留重要信息;为了有效地解决过拟合问题,池化可以减少数据,但特征的统计属性仍能够描述图像,而由于降低了数据维度,可以有效地避免过拟合。

给出池化的定义,对不同位置区域提取出有代表性的特征(进行聚合统计,例如最大值、平均值等),这种聚合的操作就叫做 池化,池化的过程通常也被称为 特征映射 的过程(特征降维)。听起来很高深,其实简单地说就是下采样。
作用:形成特征竞争条件,选择特征 • 降低特征冗余,减少计算量 • 用在最后一层,使模型在一定程度内适应 任意尺度的输入过程
池化的过程如下图所示:
在这里插入图片描述

池化主要有两种,除了最大值池化(Max Pooling) 之外,还有 平均值池化(Average pooling),CNN中随机池化使用的较少。

最大池化是对局部的值取最大;平均池化是对局部的值取平均;随机池化是根据概率对局部的值进行采样,采样结果便是池化结果。概念非常容易理解,其示意图如下所示:

在这里插入图片描述

三种池化的意义:

最大池化可以获取局部信息,可以更好保留纹理上的特征。如果不用观察物体在图片中的具体位置,只关心其是否出现,则使用最大池化效果比较好。(最常使用方法)
平均池化往往能保留整体数据的特征,能凸出背景的信息。
随机池化中元素值大的被选中的概率也大,但不是像最大池化总是取最大值。随机池化一方面最大化地保证了Max值的取值,一方面又确保了不会完全是max值起作用,造成过度失真。除此之外,其可以在一定程度上避免过拟合。

2.3 正向、反向传播

正向传播
卷积层 -> 池化层 -> 全连接层 -> 经过softmax输出各个分类概率(分类分问题, 回归问题并不用softmax)
在这里插入图片描述
反向传播:
(1)全连接层:与DNN相同
(2)池化层:
在这里插入图片描述
(3)卷积层:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
具体参考:
https://www.cnblogs.com/pinard/p/6494810.html

2.4 常见经典CNN网络结构

LeNet5,AlexNet,VGG,GoogleLeNet,Inception,ResNet,DenseNet,NasNet等

可以参考:https://www.cnblogs.com/guoyaohua/p/8534077.html

3 反馈神经网络 (RNN 、 LSTM、GRU)

3.1 简介

循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络. 在循环神经网络中,神经元不但可以接受其他神经元的信息,也可以接受自身的信息,形成具有环路的网络结构.

和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构. 循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上.
循环神经网络的参数学习可以通过随时间反向传播算法[Werbos, 1990]来学习. 随时间反向传播算法即按照时间的逆序将错误信息一步步地往前传递. 当输入序列比较长时,会存在梯度爆炸和消失问题,也称为长程依赖问题.

为了解决这个问题,人们对循环神经网络进行了很多的改进,其中最有效的改进方式引入门控机制(Gating Mechanism)。这一类网络可以称为基于门控的循环神经网络(Gated RNN). 本节中,主要介绍两种基于门控的循环神经网络:长短期记忆网络(Long Short-Term Memory Network,LSTM)和门控循环单元网络(Gated Recurrent Unit,GRU)。

循环神经网络(RNN)

在这里插入图片描述

长短期神经网络(LSTM)

在这里插入图片描述

门控循环单元网络(GRU)

在这里插入图片描述

3.2 正反传播

正向传播和基础网络内容

将信号沿着时域平摊展开(t-1 -> t -> t+1)如下所示:

在这里插入图片描述
https://zhuanlan.zhihu.com/p/28054589

反向传播:

方向传播计算主要有BPTT、RTRL
随时间反向传播(BackPropagation Through Time,BPTT)算法的主要思想是通过类似前馈神经网络的错误反向传播算法来计算梯度.
与反向传播的 BPTT 算法不同的是,实时循环学习(Real-Time Recurrent Learning,RTRL)是通过前向传播的方式来计算梯度。

两种算法比较 RTRL算法和BPTT算法都是基于梯度下降的算法,分别通过前向模式和反向模式应用链式法则来计算梯度. 在循环神经网络中,一般网络输出维度远低于输入维度,因此BPTT算法的计算量会更小,但是BPTT算法需要保存所有时刻的中间梯度,空间复杂度较高. RTRL 算法不需要梯度回传,因此非常适合用于需要在线学习或无限序列的任务中.

反向神经网络基础内容: https://blog.csdn.net/zhaojc1995/article/details/80572098
反向传播BPTT推导:
https://www.cnblogs.com/pinard/p/6519110.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI扩展坞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值