Skip to content

深度学习基础知识

1 绪论

1.1 深度学习的关键特点

  • 多层次结构:深度学习模型由多个层组成,每一层都包含多个节点,这些层可以提取数据的不同层次的特征。
  • 特征学习:深度学习模型能够自动从原始数据中学习特征,而不需要人为设计特征。
  • 端到端学习:深度学习模型通常采用端到端的学习方式,即直接从输入数据到输出结果的映射,无需人为干预。
  • 大数据驱动:深度学习模型通常需要大量的数据来训练,以便学习到有效的特征表示。
  • 强大的计算能力:深度学习模型的训练和推理通常需要强大的计算能力,特别是GPU(图形处理单元)。

1.2 深度学习的主要类型包括:

  • 卷积神经网络(CNNs):适用于图像识别、视频分析和图像分类等视觉任务。
  • 循环神经网络(RNNs):适用于序列数据,如自然语言处理和时间序列分析。
  • 长短期记忆网络(LSTMs):一种特殊的RNN,能够学习长期依赖关系。
  • 生成对抗网络(GANs):由两个网络组成,一个生成器和一个判别器,用于生成新的数据实例。
  • 深度强化学习:结合了深度学习和强化学习,用于决策和控制任务。

1.3深度学习的应用领域

  • 计算机视觉:图像识别、目标检测、面部识别等。
  • 自然语言处理:语言翻译、情感分析、文本生成等。
  • 语音识别:语音到文本转换、语音合成等。
  • 推荐系统:个性化推荐、广告技术等。
  • 游戏和模拟:玩转复杂的视频游戏、棋类游戏等。

2 理解神经网络

2.1 感知机

2.2 多层感知机

2.3 常用的神经网络模型

alt text

  • 梯度与神经网络:梯度是神经网络学习过程中最核心的概念,它表示了神经网络在某个特定位置的偏导数。
  • 深度学习与机器学习的不同点:深度学习是一种机器学习方法,它通过构建复杂的神经网络来学习数据的特征,而机器学习是一种更 Broad 的概念,它包括各种机器学习方法,如分类、回归、聚类等。
  • 神经网络的操作:前向传播与反向传播
  • 超参数
  • 激活函数
  • Batch_Size
  • 归一化
  • 预训练与微调
  • 权重偏差初始化
  • 学习率

卷积神经网络(CNN)

CNN简介

卷积神经网络(Convolutional Neural Networks,CNN)是一种深度学习模型,它在图像和视频识别、分类和分割等领域表现出色。CNN通过模拟人类视觉系统的工作原理来处理具有网格状拓扑结构的数据,如图像。

CNN结构

CNN的结构通常包括多个卷积层、激活层、池化层和全连接层的组合。这种结构使得CNN能够自动学习数据的层次化特征表示,从简单的边缘和纹理到复杂的形状和对象。CNN的成功在于其能够捕捉局部特征,并且具有参数共享和稀疏连接的特性,这使得它们在处理图像数据时非常有效。

  • 卷积层(Convolutional Layer): 卷积层是CNN中的核心,它使用滤波器(或称为卷积核)在输入数据上滑动,计算滤波器与输入数据的局部区域的点积,生成特征图(feature maps)。这些特征图捕捉了输入数据的局部特征,如边缘、纹理等。

  • 激活函数(Activation Function): 激活函数通常跟在卷积层之后,为网络引入非线性。最常用的激活函数是ReLU(Rectified Linear Unit),它可以帮助解决梯度消失问题,并加速训练过程。

  • 池化层(Pooling Layer): 池化层用于降低特征图的空间维度,减少参数数量和计算量,同时提取重要特征。最常见的池化操作是最大池化(max pooling)和平均池化(average pooling)。

  • 全连接层(Fully Connected Layer): 全连接层将卷积层和池化层提取的特征映射到最终的输出空间,如类别标签。在CNN的最后几层,通常会有一到多个全连接层,用于分类或回归任务。

  • 归一化层(Normalization Layer): 归一化层,如批量归一化(Batch Normalization),可以加速训练过程,提高模型的稳定性和性能。

  • 损失函数(Loss Function): 损失函数衡量模型预测与真实标签之间的差异。对于分类问题,常用的损失函数是交叉熵损失(cross-entropy loss);对于回归问题,常用的是均方误差损失(mean squared error loss)。

  • 优化器(Optimizer): 优化器,如SGD(随机梯度下降)、Adam等,用于更新网络权重,以最小化损失函数。

  • 反向传播(Backpropagation): 反向传播算法用于计算损失函数关于网络参数的梯度,并更新参数以优化模型。

常用的CNN网络

  • VGG
  • GoogleNet
  • ResNet

循环神经网络(RNN)

RNN简介

循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的深度学习模型。它能够处理任意长度的序列,并且能够捕捉序列中的时间依赖关系。RNN在自然语言处理(NLP)、语音识别、时间序列分析等领域有着广泛的应用。

RNN结构

常用的RNN网络

  • LSTM
  • GRU

生成对抗网络(GAN)

GAN简介

GAN结构

常用的GAN网络

  • DCGAN
  • CGAN
  • CycleGAN