从Encoder-Decoder的本质、Encoder-Decoder的原理方面,带你搞懂Encoder-Decoder(编码器-解码器)。
👉核心逻辑:将现实问题转化为数学问题,通过求解数学问题来得到现实世界的解决方案。
👉Encoder (编码器):“将现实问题转化为数学问题”
👉Decoder (解码器):“求解数学问题,并转化为现实世界的解决方案”
👉Seq2Seq(Sequence-to-sequence):输入一个序列,输出另一个序列
👉Seq2Seq(序列到序列):强调模型的目的——将输入序列转换为输出序列。
👉Encoder-Decoder(编码器-解码器):强调模型的实现方法——提供实现这一目的的具体方法或架构。
🈶Encoder(编码器):
编码器的作用是将输入序列转换成一个固定长度的上下文向量。
它通常使用循环神经网络(RNN)或其变体(如LSTM、GRU)来实现。
在每个时间步,编码器会读取输入序列的一个元素,并更新其隐藏状态。
编码完成后,最终的隐藏状态或隐藏状态的某种变换被用作上下文向量。
🈶Decoder(解码器):
解码器的任务是从上下文向量中生成输出序列。
它也通常使用循环神经网络(RNN)来实现。
在每个时间步,解码器会基于上一个时间步的输出、当前的隐藏状态和上下文向量来生成当前时间步的输出。