常用神经网络-ANN/CNN/RNN/GAN/Transformer

#创作灵感#

用到深度学习算法之后,需要了解一下常用的神经网络,这里做一个记录,方便以后复习。

#正文#

1. 人工神经网络(ANN)

人工神经网络(Artificial Neural Network, ANN)是受生物神经网络启发的计算模型,由输入层、一个或多个隐藏层和输出层组成。每层包含若干节点(神经元),节点之间通过带权重的连接(边)相连。ANN通过调整这些权重来学习和预测。

常用实例
  • 手写数字识别:使用ANN可以识别手写数字。MNIST数据集(包含0-9的手写数字图片)常用于这类任务。通过训练ANN,模型可以输入手写数字图片并输出对应的数字标签。
  • 房价预测:使用ANN可以根据房屋特征(如面积、卧室数量、位置等)预测房价。
网络层
  1. **输入层:**接受输入数据,每个节点对应一个特征。
  2. **隐藏层:**由若干神经元组成,每个神经元通过加权求和及激活函数处理输入。常用的激活函数包括Sigmoid、ReLU、Tanh等。
  3. **输出层:**输出最终结果,神经元数量取决于具体任务(如分类任务中的类别数)。

2. 卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理网格数据(如图像)的神经网络。CNN通过卷积层、池化层和全连接层组成,能够有效地捕捉图像的局部特征和空间关系。

常用实例
  • 图像分类:使用CNN可以对图像进行分类。著名的ImageNet数据集包含大量标记好的图像,常用于训练和评估图像分类模型。ResNet和VGG是常见的CNN架构。
  • 物体检测:使用CNN可以检测图像中的特定物体。YOLO(You Only Look Once)和Faster R-CNN是常见的物体检测模型。
网络层
  1. **输入层:**接受输入图像,通常为三维数据(宽度、高度、通道)。
  2. 卷积层: 通过卷积核(滤波器)对输入图像进行局部扫描,提取特征。
    1. 卷积核:一个小矩阵,滑动窗口,生成特征图。
    2. 激活函数:通常使用ReLU。
  3. **池化层:**通过下采样(如最大池化、平均池化)减少特征图尺寸,降低计算复杂度。
  4. **全连接层:**将卷积层和池化层提取的特征展平,并通过全连接层进行分类或回归。
  5. **输出层:**输出最终分类结果或回归值。

3. 循环神经网络(RNN)

循环神经网络(Recurrent Neural Network, RNN)是一种适用于处理序列数据(如时间序列、文本数据)的神经网络。RNN通过循环连接使得当前时刻的输出依赖于前一时刻的状态,能够捕捉序列中的时间依赖关系。

常用实例
  • 语言模型:使用RNN可以根据前面的单词预测下一个单词。LSTM(长短期记忆网络)和GRU(门控循环单元)是常见的RNN变种,用于解决标准RNN的梯度消失问题。
  • 语音识别:使用RNN可以将语音信号转换为文字序列。DeepSpeech是一个基于RNN的语音识别系统。
网络层
  1. **输入层:**接受序列数据,每个时间步都有一个输入。
  2. 隐藏层: 每个时间步都有一个隐藏状态,当前隐藏状态由当前输入和前一时间步的隐藏状态共同决定。
    1. 激活函数**:常用Tanh或ReLU。
    2. 长短期记忆网络(LSTM):通过引入遗忘门、输入门和输出门解决标准RNN的梯度消失问题。
    3. 门控循环单元(GRU):类似于LSTM,但结构更简化。
  3. **输出层:**每个时间步都可以输出,也可以仅在序列结束时输出。

4. 生成对抗网络(GAN)

生成对抗网络(Generative Adversarial Network, GAN)由生成器和判别器两个神经网络组成。生成器尝试生成逼真的数据样本,而判别器尝试区分真实样本和生成样本。两个网络通过对抗训练不断改进,最终生成器能够生成非常逼真的数据。

常用实例
  • 图像生成:使用GAN可以生成逼真的图像。DCGAN(Deep Convolutional GAN)是一个常见的图像生成模型。
  • 图像超分辨率:使用GAN可以将低分辨率图像提升到高分辨率。SRGAN(Super-Resolution GAN)是一个用于图像超分辨率的模型。
网络层
  1. 生成器:
    1. 输入层:通常是随机噪声向量。
    2. 隐藏层:一系列全连接层、卷积层或反卷积层,逐步将噪声向量转化为逼真的数据。
    3. 输出层:生成假数据(如图像)。
  2. 判别器:
    1. 输入层:接受真实数据和生成器生成的数据。
    2. 隐藏层:一系列卷积层和池化层,提取数据特征。
    3. 输出层:输出二分类结果(真假)。

5. Transformer

Transformer是一种基于注意力机制的神经网络,最初用于自然语言处理(NLP)任务。与RNN不同,Transformer不依赖于序列顺序,通过全局的自注意力机制捕捉序列中的长距离依赖关系。Transformer由编码器和解码器组成,编码器将输入序列转换为内部表示,解码器将内部表示转换为输出序列。

常用实例
  • 机器翻译:使用Transformer可以进行高质量的机器翻译。原始的Transformer模型在WMT 2014英法翻译任务中取得了优秀的表现。
  • 文本生成:使用Transformer可以生成连贯的文本。GPT(Generative Pre-trained Transformer)和BERT(Bidirectional Encoder Representations from Transformers)是两个著名的Transformer模型。
网络层
  1. 编码器:
    1. 输入层:接受输入序列,通常是词嵌入表示。
    2. 自注意力层:计算输入序列中每个元素与其他元素的注意力得分。
    3. 注意力机制:包括查询(Q)、键(K)、值(V)三个矩阵,通过点积计算注意力得分。
    4. 前馈神经网络:对自注意力层的输出进行非线性变换。
    5. 层归一化:对每一层进行标准化处理。
  2. 解码器:
    1. 输入层:接受目标序列的前一部分(训练时)或生成的前一部分(推理时)。
    2. 自注意力层:与编码器相似,但只关注目标序列的前一部分。
    3. 编码器-解码器注意力层:通过注意力机制将编码器的输出与解码器的当前状态结合。
    4. 前馈神经网络:对注意力层的输出进行非线性变换。
    5. 层归一化:对每一层进行标准化处理。
  3. **输出层:**生成最终的输出序列(如翻译结果或生成文本)。

以上就是常用的神经网络,对于刚接触深度学习的时候,大致了解一下很有帮助。

相关推荐
王哈哈^_^1 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
写代码的小阿帆1 小时前
pytorch实现深度神经网络DNN与卷积神经网络CNN
pytorch·cnn·dnn
是瑶瑶子啦1 小时前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
wangyue43 小时前
c# 深度模型入门
深度学习
川石课堂软件测试3 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
985小水博一枚呀3 小时前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer
985小水博一枚呀3 小时前
【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer·迁移学习
数据与后端架构提升之路3 小时前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
深度学习实战训练营5 小时前
基于CNN-RNN的影像报告生成
人工智能·深度学习
孙同学要努力12 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络