【笔记】Encoder-Decoder模型

本文介绍了一种基于神经网络的编码解码框架,该框架通过编码器将输入转换为上下文向量,并通过解码器预测目标序列。文章详细阐述了编码器与解码器的工作原理及如何使用注意力机制优化解码过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Encoder-Decoder

在这里插入图片描述

Encoder

输入: X = ( x 1 , x 2 , . . . , x T x ) X=(x_1, x_2, ..., x_{T_x}) X=(x1,x2,...,xTx)
输出: 上下文向量(context vector) c c c
步骤:
h t = f ( x t , h t − 1 ) c = q ( { h 1 , . . . , h T x } ) (1) h_t=f(x_t,h_{t-1}) \\ c=q(\{h_1,..., h_{T_x}\}) \tag{1} ht=f(xt,ht1)c=q({h1,...,hTx})(1)
其中, h t ∈ R n h_t\in \R^n htRn 表示t时刻的隐含状态;c表示由隐含状态序列得到的向量;f, q 是非线性模型

举例:Sutskever et al. Sequence to sequence learning with neural networks(NIPS, 2014)
使用 h t = L S T M ( x t , h t − 1 ) , c = h T x h_t=LSTM(x_t,h_{t-1}) , c=h_{T_x} ht=LSTM(xt,ht1),c=hTx

Decoder

目的:预测下一个翻译出来的词 y t y_{t} yt
输入: c c c,之前预测出来的词 { y 1 , . . . , y t − 1 } \{y_1,..., y_{t-1}\} {y1,...,yt1}
步骤:用条件概率表示
p ( y ) = ∏ t = 1 T p ( y t ∣ { y 1 , . . . , y t − 1 } , c ) , y = ( y 1 , . . . , y T y ) (2) p(\boldsymbol{y})=\prod^T_{t=1}p(y_t|\{y_1,..., y_{t-1}\},c) ,\boldsymbol{y}=(y_1,...,y_{T_y}) \tag{2} p(y)=t=1Tp(yt{y1,...,yt1},c),y=(y1,...,yTy)(2)
如果使用RNN族,那么条件概率写为
p ( y t ∣ { y 1 , . . . , y t − 1 } , c ) = g ( y t − 1 , s t , c ) p(y_t|\{y_1,..., y_{t-1}\} ,c)=g(y_{t-1},s_t,c) p(yt{y1,...,yt1},c)=g(yt1,st,c)
其中,g是非线性模型;s为隐藏层; s t = f ( s t − 1 , y t − 1 , c ) s_t=f(s_{t-1},y_{t-1},c) st=f(st1,yt1,c)

Decoder with Attention

在这里插入图片描述
对公式(2)中定义的条件概率进行修改
p ( y i ∣ { y 1 , . . . , y i − 1 } , X ) = g ( y i − 1 , s t , c i ) p(y_i|\{y_1,..., y_{i-1}\} ,X)=g(y_{i-1},s_t,c_i) p(yi{y1,...,yi1},X)=g(yi1,st,ci)

参考

[1] https://blog.csdn.net/u014595019/article/details/52826423

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值