当前位置:   article > 正文

3、CNN、RNN、GAN网络_gan模型 和rnn

gan模型 和rnn

一、CNN

1、结构

卷积神经网络CNN(带有卷积的一类网络总称)
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络。卷积结构可以减少深层网络占用的内存量,其中三个关键操作——局部感受野、权值共享、池化层,有效的减少了网络的参数个数,缓解了模型的过拟合问题。链接: CNN

2、应用

图像分割、分类、检测和检索,CNN主要应用于图像识别(计算机视觉,CV),应用有:图像分类和检索、目标定位检测、目标分割、人脸识别、骨骼识别和追踪,具体可见MNIST手写数据识别、猫狗大战、ImageNet LSVRC等,还可应用于自然语言处理和语音识别。

3、CNN的类型综述

基于空间利用(Spatial Exploitation based)的CNN有:LeNet、Alenet、ZefNet、VGG、GoogleNet等

基于深度(Depth based)的CNN有:Highway Networks、ResNet、Inception V3/V4、Inception-ResNet、ResNext等。

基于多路径(Multi-Path based)的CNN有:Highway、ResNet、DenseNet等。

基于宽度的多连接(Width based Multi-Connection)CNN有:WideResNet、Pyramidal Net、Xception、Inception Family等

基于(通道)特征图(Feature Map Exploitation based)开发的CNN有:Squeeze and Excitation、Competitive Squeeze and Excitation等。

基于注意力(Attention based)的CNN有:Residual Attention Neural Network、Convolutional Block Attention、Concurrent Squeeze and Excitation等。

PyTorch实现的cnn:该系列的卷积神经网络实现包含了9大主题,有:典型网络、轻量级网络、目标检测网络、语义分割网络、实例分割网络、人脸检测和识别网络、人体姿态识别网络、注意力机制网络、人像分割网络。

  1. 典型网络(Classical network)
    典型的CNN包括:AlexNet、VGG、ResNet、InceptionV1、InceptionV2、InceptionV3、InceptionV4、Inception-ResNet。
  2. 轻量级网络(Light weight)
    轻量级网络包括:GhostNet、MobileNets、MobileNetV2、MobileNetV3、ShuffleNet、ShuffleNet V2、SqueezeNet Xception MixNet GhostNet。
  3. 目标检测网络(Object Detection)
    目标检测网络包括:SSD、YOLO、YOLOv2、YOLOv3、FCOS、FPN、RetinaNet Objects as Points、FSAF、CenterNet FoveaBox。
  4. 语义分割网络(Semantic Segmentation)
    语义分割网络包括:FCN、Fast-SCNN、LEDNet、LRNNet、FisheyeMODNet。

在这里插入图片描述

CNN几个经典模型(AlexNet、VGG、NIN、GoogLeNet、ResNet)

参考连接:
链接: link1
链接: link2

二、RNN

1、结构

循环神经网络是一种对序列数据有较强的处理能力的网络, 这些序列型的数据具有时序上的关联性的,既某一时刻网络的输出除了与当前时刻的输入相关之外,还与之前某一时刻或某几个时刻的输出相关。传统神经网络(包括CNN),输入和输出都是互相独立的,前馈神经网络并不能处理好这种关联性,因为它没有记忆能力,所以前面时刻的输出不能传递到后面的时刻。

循环神经网络,是指在全连接神经网络的基础上增加了前后时序上的关系,RNN包括三个部分:输入层、隐藏层和输出层。相对于前馈神经网络,RNN可以接收上一个时间点的隐藏状态。(在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。)

在网络模型中不同部分进行权值共享使得模型可以扩展到不同样式的样本。
在这里插入图片描述
图中 x、h、y 分别代表 RNN 神经元的输入、隐藏状态、输出。
U、W、V 是对向量 x、h、y 进行线性变换的矩阵。
计算 ht 时激活函数通常采用 tanh,计算输出 yt 时激活函数通常是 softmax (分类)。

RNN分为一对一、一对多、多对一、多对多,其中多对多分为两种。
1.单个神经网络,即一对一。2.单一输入转为序列输出,即一对多。这类RNN可以处理图片,然后输出图片的描述信息。3.序列输入转为单个输出,即多对一。多用在电影评价分析。4.编码解码(Seq2Seq)结构。seq2seq的应用的范围非常广泛,语言翻译,文本摘要,阅读理解,对话生成等。5.输入输出等长序列。这类限制比较大,常见的应用有作诗机器人。
在这里插入图片描述

层次可分为:单层RNN、多层RNN、双向RNN

2、应用

RNN被广泛应用在NLP领域中,例如文本分类、语音识别、自动文摘等。
循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(Convoutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。

3、RNN类型

RNN–>LATM—>BPTT—>GUR–>RNN LM—>word2vec–>seq2seq–>BERT–>transformer–>GPT

一、循环神经网络 (RNN)
RNN一个最大的缺陷就是梯度消失与梯度爆炸问题, 由于这一缺陷,使得RNN在长文本中难以训练, 这才诞生了LSTM及各种变体。

梯度消失与梯度爆炸
梯度消失会导致我们的神经网络中前面层的网络权重无法得到更新,也就停止了学习。
梯度爆炸会使得学习不稳定, 参数变化太大导致无法获取最优参数。
在深度多层感知机网络中,梯度爆炸会导致网络不稳定,最好的结果是无法从训练数据中学习,最坏的结果是由于权重值为NaN而无法更新权重。
在循环神经网络(RNN)中,梯度爆炸会导致网络不稳定,使得网络无法从训练数据中得到很好的学习,最好的结果是网络不能在长输入数据序列上学习。

由于预测的误差是沿着神经网络的每一层反向传播的,因此当雅克比矩阵的最大特征值大于1时,随着离输出越来越远,每层的梯度大小会呈指数增长,导致梯度爆炸;反之,若雅克比矩阵的最大特征值小于1,梯度的大小会呈指数缩小,产生梯度消失。对于普通的前馈网络来说,梯度消失意味着无法通过加深网络层次来改善神经网络的预测效果,因为无论如何加深网络,只有靠近输出的若干层才真正起到学习的作用。

梯度爆炸的问题可以通过梯度裁剪来缓解,即当梯度的范式大于某个给定值时,对梯度进行等比收缩。而梯度消失问题相对比较棘手,需要对模型本身进行改进。深度残差网络是对前馈神经网络的改进,通过残差学习的方式缓解了梯度消失的现象,从而使得我们能够学习到更深层的网络表示;而对于循环神经网络来说,长短时记忆模型及其变种门控循环单元等模型通过加入门控机制,很大程度上弥补了梯度消失所带来的损失。
参考链接:https://www.jianshu.com/p/0cf7436c33ae

二、长短期记忆网络 (LSTM)

LSTM 缓解梯度消失、梯度爆炸,RNN 中出现梯度消失的原因主要是梯度函数中包含一个连乘项
在这里插入图片描述

LSTM 内部包含了遗忘门、输入门和输出门。
而 LSTM 的神经元在此基础上还输入了一个 cell 状态 ct-1, cell 状态 c 和 RNN 中的隐藏状态 h 相似,都保存了历史的信息,从 ct-2 ~ ct-1 ~ ct。在 LSTM 中 c 与 RNN 中的 h 扮演的角色很像,都是保存历史状态信息,而在 LSTM 中的 h 更多地是保存上一时刻的输出信息。

参考链接:https://www.jianshu.com/p/247a72812aff

三、门控循环单元 (GRU)
LSTM因为引入了很多内容,导致参数变多,也使得训练难度加大了很多。因此很多时候我们往往会使用效果和LSTM相当但参数更少的GRU来构建大训练量的模型。与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU。

在这里插入图片描述

四、反向传播
反向传播(BP)和基于时间的反向传播算法BPTT

BP(BackPropogation)是神经网络参数求解的基础。BPTT对所有参数求损失函数的偏导,并不断调整这些参数使得损失函数变得尽可能小。
BPTT(back-propagation through time)算法是常用的训练RNN的方法,其实本质还是BP算法,只不过RNN处理时间序列数据,所以要基于时间反向传播,故叫随时间反向传播。BPTT的中心思想和BP算法相同,沿着需要优化的参数的负梯度方向不断寻找更优的点直至收敛。综上所述,BPTT算法本质还是BP算法,BP算法本质还是梯度下降法,那么求各个参数的梯度便成了此算法的核心。

RNN发展历史

在这里插入图片描述
RNN的常见算法分类
1)、完全递归网络(Fully recurrent network)
2)、Hopfield网络(Hopfield network)
3)、Elman networks and Jordannetworks
4)、回声状态网络(Echo state network)
5)、长短记忆网络(Long short term memery network)
6)、双向网络(Bi-directional RNN)
7)、持续型网络(Continuous-time RNN)
8)、分层RNN(Hierarchical RNN)
9)、复发性多层感知器(Recurrent multilayer perceptron)
10)、二阶递归神经网络(Second Order Recurrent Neural Network)
11)、波拉克的连续的级联网络(Pollack’s sequential cascaded networks)

参考连接:https://zhuanlan.zhihu.com/p/148172079

三、GAN

1、结构

GAN的主要结构包括一个生成器G(Generator)和一个判别器D(Discriminator)。生成不存在的数据,生成器负责生成假图像,判别器负责判别图像真假。“对抗”的含义就是生成器通过不断的训练尽可能的生成以假乱真的图像,判别器通过不断的识别尽可能的区分图像的真假。
生成网络:卷积神经网络+反卷积神经网络(前者负责提取图像特征,后者负责根据输入的特征重新生成图像(即假数据))。
判别网络:卷积神经网络+全连接层处理(传统神经网络)(前者负责提取图像特征,后者负责判别真假。)
在这里插入图片描述

在这里插入图片描述

2、应用

GAN最常使用的地方就是图像生成,如超分辨率任务,语义分割、图像生成、图像转换和超分辨率等等。
GAN最直接的应用在于数据的生成,也就是通过GAN的建模能力生成图像、语音、文字、视频等等。目前,GAN最成功的应用领域主要是计算机视觉,包括图像、视频的生成,如图像翻译、图像上色、图像修复、视频生成等。此外GAN在自然语言处理,人机交互领域也略有拓展和应用。

3、GAN类型

在这里插入图片描述

GAN产生了许多流行的架构,如DCGAN,StyleGAN,BigGAN,StackGAN,Pix2pix,Age-cGAN,CycleGAN等。
参考连接:https://www.cnblogs.com/wxkang/p/17133320.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/94407
推荐阅读
相关标签
  

闽ICP备14008679号