深度强化学习-03(深度学习基础知识)

1. 概念

1.1 深度学习:

机器学习领域的一个分支,它使用多层神经网络来模拟人脑的工作方式。与传统机器学习算法不同,深度学习算法可以自动从数据中学习特征,而不需要手动设计特征。通常,在深度学习中,常使用反向传播算法(backpropagation)来训练神经网络,并优化它的权重和偏置值,以最小化损失函数。
深度学习在计算机视觉、语音识别、自然语言处理等领域取得了显著的成果,例如图像分类、目标检测、语音识别、机器翻译等任务。深度学习已经成为了人工智能领域中的一个热门话题,并且在不断地推动着这个领域的发展。

1.2 强化学习:

专注于如何通过与环境互动来学习行为策略,以获得最大的累积奖励。在强化学习中,智能体通过观察环境状态和获得奖励来学习最佳的行动策略,以使其长期回报最大化。
强化学习的一个重要特点是,它涉及到与环境的交互。在强化学习中,智能体需要根据环境的反馈进行调整,以达到最优策略。这种交互方式使得强化学习可以应用于很多领域,例如自动驾驶、机器人控制、游戏策略等。强化学习已经在很多领域取得了显著的成果,并且正在不断地被拓展和深化。

1.3 两者同异:

同:都是基于大量的样本来对相应算法进行迭代更新并达到最优效果。

异:a. 强化学习解决序列决策问题,深度学习解决“打标签”问题;
       b. 强化学习在交互中产生样本的,循环产生样本、算法更新、再次产生样本、再次算法更新的动态训练过程,深度学习是准备样本、算法更新的静态训练过程;

2. 常见的深度学习算法

2.1 CNN

(卷积神经网络)是一种广泛应用于图像分类、目标检测和语音处理等领域的深度学习模型。它的基本结构包括卷积层、池化层和全连接层。

  1. 卷积层:卷积层是CNN模型中最重要的一层,它通过多个卷积核对输入的数据进行卷积操作,提取出不同特征的信息。每个卷积核在卷积过程中产生一个新的特征图,由多个卷积核产生的特征图叠加在一起,可以形成更高级别的特征表示。卷积层通常还包括一个偏置项和一个激活函数,用于增加模型的非线性表达能力。
  2. 池化层:池化层用于对卷积层输出的特征图进行下采样操作,减少参数数量和计算量,并增强模型的抗噪声能力。常见的池化方式有最大池化、平均池化等。
  3. 全连接层:全连接层是CNN模型中的最后一层,用于将池化层的特征图映射到标签空间。全连接层的每个节点与前一层的所有节点都有连接,因此全连接层的权重数量很大,需要进行归一化降维等处理。
  4. Dropout:Dropout层是CNN模型中的一种正则化方法,用于减少过拟合。它随机地将一部分输出值设置为0,从而强制模型从多个不同的子集中学习。
  5. Batch Normalization:Batch Normalization层也是CNN模型中的一种常用技术,用于减少训练过程中的内部协变量偏移问题。它在每个batch上对数据进行标准化,使得输入数据满足一定的分布特性,提高模型的收敛速度和性能表现。

激活函数:CNN模型中常用的激活函数有ReLU、Sigmoid、Tanh等。其中ReLU函数具有简单、快速和非线性等优点,是CNN模型中最常用的激活函数之一。

CNN模型是一种应用广泛的深度学习模型,由卷积层、池化层和全连接层等组成。通过堆叠多个卷积层和池化层,CNN模型可以逐渐提取图像的语义信息,并生成高级别的特征表示。通过全连接层将特征向量映射到标签空间,就可以实现图像分类和目标检测等任务。同时,CNN模型还可以通过Dropout层、Batch Normalization层和激活函数等进行优化和增强,提高模型的性能表现。

2.2 RNN

(循环神经网络)是一类具有记忆能力的神经网络,它可以对序列数据进行建模预测。RNN 的主要特点是在网络中引入了循环结构,使得网络可以在处理一个时间步的输入时,同时考虑前面时间步的历史信息。

RNN 模型包含三个部分:输入层、循环体和输出层。其中:

  1. 输入层接收序列数据,并将其转化为一个个特征向量序列,送入循环体。
  2. 循环体是 RNN 的核心部分,它包含一个循环神经元(cell),负责接收上一个时间步的隐状态 h_t−1和当前时间步的输入 x_t,并输出当前时间步的隐状态 h_t。在此过程中,循环神经元会利用前面时间步的历史信息来影响当前状态的计算,因此具备一定的记忆功能。
  3. 输出层则根据当前时间步的隐状态 h_t,生成对应的输出结果。

需要注意的是,RNN 中的循环体通常会被重复迭代多次,以便考虑更多的历史信息,但基础的 RNN 结构很容易产生梯度消失或者梯度爆炸的问题。

2.3 LSTM

(长短时记忆网络)是一种特殊的循环神经网络,主要用于解决传统 RNN 存在的梯度消失梯度爆炸等问题。它通过引入多个门控机制来控制信息的流动,从而能够有效地处理长序列数据。LSTM 的结构比较复杂,包含以下几个部分。

1.  输入门(Input Gate)

输入门是 LSTM 中最重要的门控机制之一,用于控制是否将当前时刻的输入信息加入到细胞状态中。具体而言,输入门会根据当前输入和前一时刻的隐状态,生成一个 0 到 1 之间的数值。当该值越接近 1 时,表示更多的输入信息可以被加入到细胞状态中。

2.  遗忘门(Forget Gate)

遗忘门也是 LSTM 中的一个重要门控机制,用于控制是否将前一时刻的细胞状态加入到当前时刻的细胞状态中。具体而言,遗忘门会根据当前输入和前一时刻的隐状态,生成一个 0 到 1 之间的数值。当该值越接近 0 时,表示前一时刻的细胞状态完全被遗忘,不会被传递给当前时刻。

3.  细胞状态(Cell State)

细胞状态是 LSTM 中的一个重要组成部分,用于在时间步之间存储和传递信息。输入门和遗忘门可以控制从当前输入和前一时刻细胞状态中吸取多少信息,并将其保存到细胞状态中。细胞状态又可以通过输出门来控制把多少信息传递给下一个时间步或者模型的输出层。

4.  输出门(Output Gate)

输出门是 LSTM 中最后一个门控机制,用于生成当前时刻的输出信息。具体而言,输出门会根据当前输入和前一时刻的隐状态,生成一个 0 到 1 之间的数值。当该值越接近 1 时,表示细胞状态中的信息越多,可以输出更多的信息。

2.4 LSTM vs RNN

区别:LSTM是一种适用于序列数据的循环神经网络(RNN)变体。它通过使用门控机制来处理和存储输入序列中的长期依赖信息,使得网络可以更好地捕捉时序关系。而CNN是一种用于处理网格型数据(如图像)的前馈神经网络。通过在不同的层级上提取局部特征,并进行汇聚和重复采样,从而有效地捕捉输入数据中的空间结构和特征。

LSTM:
优势——能够处理序列数据中的长期依赖关系,对于处理时间序列数据非常有效。
劣势——计算复杂度较高、参数量大
CNN: 优势——在图像处理方面表现出色,能够高效地提取和学习图像的局部特征,并通过层次化的结构进行抽象和分类。 劣势——缺乏时序关系,参数共享限制

2.5 Tansformer

模型主要由编码器(Encoder)和解码器(Decoder)两部分组成。下面将分别介绍它们的结构。

一、编码器

编码器由多个相同的层堆叠而成,每一层都包含以下子层:

  1. 多头自注意力机制(Multi-Head Attention):通过计算一组查询之间的注意力权重,从而得到每个位置的上下文表示。
  2. 前馈神经网络(Feedforward Neural Network):在每个位置上对特征向量进行全连接神经网络的操作,然后添加一个残差连接批规范化

每个子层还在输入和输出之间使用了残差连接和一个标准化步骤。残差连接可以缓解梯度消失问题标准化步骤可以提高训练稳定性

二、解码器

解码器也由多个相同的层堆叠而成,每一层都包含以下子层:

  1. 多头自注意力机制(Multi-Head Attention):与编码器中的自注意力机制类似,但在这里需要通过遮掩(mask技术,防止解码器吸收未来信息。
  2. 多头编码器-解码器注意力机制(Multi-Head Encoder-Decoder Attention:将编码器的输出作为,将前一个解码器层的输出作为查询,计算注意力权重,从而产生一个编码器上下文向量。
  3. 前馈神经网络(Feedforward Neural Network):在每个位置上对特征向量进行全连接神经网络的操作,然后添加一个残差连接和批规范化。

与编码器类似,每个子层还在输入和输出之间使用了残差连接和一个标准化步骤。

三、特殊结构

在模型的输入和输出处,还需要进行嵌入(Embedding)操作,将词汇或字符转换为固定大小的向量表示。在解码器端,还需要进行线性变换softmax操作,得到最终的输出概率分布。

由于Transformer模型采用了基于自注意力机制的新型结构,对于长距离依赖关系有着较好的建模能力,并且可以并行化处理,因而成为了自然语言处理领域中的研究热点。

2.6 BERT

BERT属于:Autoencoder LM即自编码语言模型,把一个单词用[MASK]替换,根据上下文预测该单词。是一种双向的基于变换器结构的预训练语言模型,由Google公司在2018年提出。BERT的主要创新点在于,它通过双向预训练来学习语言表示,将该任务分为两个任务:Masked Language ModelMLMNext Sentence PredictionNSP。下面我们来详细介绍一下BERT的结构。

BERT的整体结构分为三个部分,分别是输入嵌入、Transformer编码器和任务特定层:

  1. 输入嵌入(Input Embeddings):BERT将输入的token序列转化为向量表示,并将其输入到Transformer编码器中。其中,输入嵌入层主要包括三个部分:Token Embeddings、Segment Embeddings和Positional Embeddings。Token Embeddings用于获取词汇信息,Segment Embeddings用于区分不同句子,Positional Embeddings用于表示单词在句子中的位置信息。
  2. Transformer编码器:BERT使用一个由多个Transformer块堆叠而成的编码器网络,每个Transformer块中包含了若干个Multi-Head Self-Attention层和Feed-Forward层以及对应的残差连接和层归一化。多头自注意力层能够学习词与词之间的关系并进行有效的特征提取和表示,Feed-Forward层则能够在这些特征之间进行有效的信息传递。
  3. 任务特定层(Task-Specific Layers):BERT的最后一层是针对不同任务的任务特定层。根据具体的不同任务,可以在该层中添加一些全连接层softmax输出层。对于诸如情感分析、文本分类等任务,通常使用一层全连接层和一个softmax输出层来进行处理。

BERT模型由两个任务组成的预训练和一个任务特定层组成。其中,在预训练阶段,模型采用双向的MLM和NSP任务来学习语言表示,使得模型能够获取更加丰富的语言特征;在微调阶段,模型使用不同的任务特定层进行微调以适应不同的任务需求。

2.7 GPT

GPT属于:Autoregressive LM即自回归语言模型,根据上文或者下文预测下一个单词。

模型可以分为三个部分:对话历史建模层、Transformer解码器和输出层。

  1. 对话历史建模层:该层用于捕捉之前的对话历史信息,并将其融合到当前的文本序列中。具体来说,对话历史建模层采用了“memory-to-sequence”(即记忆序列)的结构,它首先将历史对话信息表示为一个向量,然后将其添加到输入序列的最开始作为第一个token,以此来引导模型的生成。这种方法可以使得Chat-GPT模型更好地理解上下文,并生成更加连贯、流畅的回答。
  2. Transformer编码器:Chat-GPT采用了标准的Transformer编码器,其中每个编码器块包含多头自注意力机制前向神经网络等部分组成,从而实现了强大的语言建模能力。输入序列首先被嵌入到一个高维空间中,然后通过多个编码器块,每个块都会按照一定的规则对输入序列进行处理和转换。经过这些处理和转换后,模型可以学习到输入序列中词汇单元之间的关系,从而实现了更加准确、全面的语言表示。
  3. 输出层:Chat-GPT的输出层是一个用于生成下一个单词的softmax。在训练过程中,模型会尝试最大化当前位置的预测单词与真实下一个单词之间的匹配程度;在测试过程中,模型会使用beam search等技术来搜索可能的回答,并选择最优的结果返回。

除此之外,为了防止生成无意义的回答,在训练过程中,Chat-GPT模型引入了“先验知识”来指导生成。例如,如果当前对话是关于足球比赛的,Chat-GPT模型就会知道某些关键词(如“球队”、“比分”等)可能会出现在回答中,并更加倾向于生成这些词汇,从而提高了模型回答的准确性和流畅度。

Chat-GPT模型是一个针对对话场景下的自然语言生成任务进行了优化的模型。通过引入对话历史建模层、标准的Transformer编码器和输出层,并采用一些技巧来对抗对话场景中可能出现的问题,Chat-GPT模型可以生成更加准确、流畅和上下文有关的会话回复。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值