深度学习笔记之Seq2Seq(一)基本介绍

引言

从本节开始,将介绍 Seq2seq \text{Seq2seq} Seq2seq

回顾:经典循环神经网络结构

经典循环神经网络
循环神经网络——循环神经网络思想中,我们介绍了经典循环神经网络结构。它的主要思想是:序列信息作为媒介,给定序列数据 x ( 1 ) , x ( 2 ) , ⋯   , x ( T − 1 ) x^{(1)},x^{(2)},\cdots,x^{(\mathcal T-1)} x(1),x(2),,x(T1),求解下一时刻信息 x ( T ) x^{(\mathcal T)} x(T)后验概率结果

  • 整个序列的联合概率分布 P ( X ) \mathcal P(\mathcal X) P(X)可表示为:
    P ( x ( 1 ) , x ( 2 ) , ⋯   , x ( T ) ) = P ( x ( 1 ) ) ⋅ ∏ t = 2 T P ( x ( t ) ∣ x ( 1 ) , ⋯   , x ( t − 1 ) ) \mathcal P(x^{(1)},x^{(2)},\cdots,x^{(\mathcal T)}) = \mathcal P(x^{(1)}) \cdot \prod_{t=2}^{\mathcal T} \mathcal P(x^{(t)} \mid x^{(1)},\cdots,x^{(t-1)}) \\ P(x(1),x(2),,x(T))=P(x(1))t=2TP(x(t)x(1),,x(t1))
  • 其中分解后的每一项(除去第一项),借助隐变量单元 h h h
    { P ( h ( t ) ∣ x ( t − 1 ) , h ( t − 1 ) ) P ( x ( t ) ∣ x ( t − 1 ) , h ( t ) ) t = 2 , 3 , ⋯   , T \begin{cases} \mathcal P(h^{(t)} \mid x^{(t-1)},h^{(t-1)}) \\ \mathcal P(x^{(t)} \mid x^{(t-1)},h^{(t)}) \end{cases} \quad t=2,3,\cdots,\mathcal T { P(h(t)x(t1),h(t1))P(x(t)x(t1),h(t))t=2,3,,T

对应地,它的前馈计算过程表示如下:
{ h ~ ( t + 1 ) = W h ( t ) ⇒ h ( t + 1 ) ⋅ h ( t ) + W x ( t ) ⇒ h ( t + 1 ) ⋅ x ( t ) + b h h ( t + 1 ) = σ ( h ~ ( t + 1 ) ) O ( t + 1 ) = ϕ ( W h ( t + 1 ) ⇒ O ( t + 1 ) ⋅ h ( t + 1 ) + b O ) \begin{cases} \begin{aligned} & \widetilde{h}^{(t+1)} = \mathcal W_{h^{(t)} \Rightarrow h^{(t+1)}} \cdot h^{(t)} + \mathcal W_{x^{(t)} \Rightarrow h^{(t+1)}} \cdot x^{(t)} + b_h \\ & h^{(t+1)} = \sigma(\widetilde{h}^{(t+1)}) \\ & \mathcal O^{(t+1)} = \phi(\mathcal W_{h^{(t+1)} \Rightarrow \mathcal O^{(t+1)}} \cdot h^{(t+1)} + b_{\mathcal O}) \end{aligned} \end{cases} h (t+1)=Wh(t)h(t+1)h(t)+Wx(t)h(t+1)x(t)+bhh(t+1)=σ(h (t+1))O(t+1)=ϕ(Wh(t+1)O(t+1)h(t+1)+bO)
这仅仅是 t ⇒ t + 1 t \Rightarrow t+1 tt+1时刻的前馈计算过程,已知一段序列信息 X ∈ R n x × m × T \mathcal X \in \mathbb R^{n_x \times m \times \mathcal T} XRnx×m×T
这里使用的是 pytorch \text{pytorch} pytorch的向量格式。其中 n x n_x nx表示序列单元 x t ( t = 1 , 2 , ⋯   , T ) x_t(t=1,2,\cdots,\mathcal T) xt(t=1,2,,T)的特征维数; m m m表示 BatchSize \text{BatchSize} BatchSize大小; T \mathcal T T表示序列单元的数量/序列长度。
X = [ x ( 1 ) , x ( 2 ) , ⋯   , x ( T ) ] T \mathcal X = [x^{(1)},x^{(2)},\cdots,x^{(\mathcal T)}]^T X=[x(1),x(2),,x(T)]T
对应循环神经网络的输出 O \mathcal O O表示为:
这里的 n O n_{\mathcal O} nO表示经过神经元输出的特征维数。
O = [ O ( 1 ) , O ( 2 ) , ⋯ O ( T ) ] T ∈ R n O × m × T \mathcal O = [\mathcal O^{(1)},\mathcal O^{(2)},\cdots\mathcal O^{(\mathcal T)}]^T \in \mathbb R^{n_{\mathcal O} \times m \times \mathcal T} O=[O(1),O(2),O(T)]TRnO×m×T
关于 LSTM,GRU \text{LSTM,GRU} LSTM,GRU网络结构同理,可以发现:输入输出在序列维度上存在相同长度

关于循环神经网络的更多引用

  • One to one \text{One to one} One to one模型结构。其网络结构表示如下:
    OnetoOne模型结构
    这里所说的 One to one \text{One to one} One to one是指序列信息并没有发生循环,相当于直接对输入数据进行分析并预测。可将视作一个全连接神经网络,相关任务如:图像分类

  • One to many \text{One to many} One to many模型结构。其网络结构表示如下:
    Onetomany模型结构
    隐藏状态发生循环的条件下,仅使用一个输入去预测一组序列输出。这类模型结构主要包含两种形式:

    • 唯一一个输入信息仅在初始时刻输入一次。代表任务如:文本生成
    • 唯一一个输入信息在每一时刻均输入一次。代表任务如:图像描述——将图像输入,并得到关于该图像的文字描述(文字序列)
  • Many to one \text{Many to one} Many to one模型结构。其网络结构表示如下:
    Manytoone模型结构
    这种网络结构的特点在于:一个序列的输入得到最后时刻的输出,这使得该输出包含完整序列的特征信息。通过根据该信息执行判别任务。如:文本分类、情感分析等。

  • Many to many \text{Many to many} Many to many模型结构。其网络结构表示如下:
    Manytomany模型结构
    该网络结构的特点在于:基于一个序列的输入,生成另一个关联序列的输出。相关任务如:问答系统、机器翻译等。
    其中输入序列和输出序列之间的关系不能狭隘地仅理解为语义相同,它也有可能存在‘语义之间存在因果关系’。像问答系统。

Seq2seq \text{Seq2seq} Seq2seq网络结构

网络结构的角度观察, Seq2seq \text{Seq2seq} Seq2seq模型是由两个 RNN \text{RNN} RNN网络组成的网络结构。该模型广泛应用于自然语言处理的一些领域。如:机器翻译、文字识别等等。 Seq2seq \text{Seq2seq} Seq2seq任务可理解为:从一个序列数据映射到另一个序列数据。相比于循环神经网络 Seq2seq \text{Seq2seq} Seq2seq的思想可表示为:

已知序列数据 X = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( T ) ) \mathcal X = (x^{(1)},x^{(2)},\cdots,x^{(\mathcal T)}) X=(x(1),x(2),,x(T))为条件,关于序列数据 Y = ( y ( 1 ) , y ( 2 ) , ⋯   , y ( T ′ ) ) \mathcal Y = (y^{(1)},y^{(2)},\cdots,y^{(\mathcal T')}) Y=(y(1),y(2),,y(T)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

静静的喝酒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值