2019-09-10 19:29:26
問題描述:什么是Seq2Seq模型?Seq2Seq模型在解碼時有哪些常用辦法?
問題求解:
Seq2Seq模型是將一個序列信號,通過編碼解碼生成一個新的序列信號,通常用於機器翻譯、語音識別、自動對話等任務。在Seq2Seq模型提出之前,深度學習網絡在圖像分類等問題上取得了非常好的效果。在深度學習擅長的問題中,輸入和輸出通常都可以表示成固定長度的向量,如果長度稍微有了一點變化,會使用補零的操作。然而像前面提到的幾個問題,其序列長度事先並不知道。因此如何突破先前深度神經網絡的局限,使其適應於更多的場景,成了2013年以來的研究熱點,Seq2Seq模型也就應運而生。
Seq2Seq模型的核心思想是,通過深度神經網絡將一個作為輸入的序列映射為一個作為輸出的序列,這個過程由編碼輸入和解碼輸出兩個環節構成。
Seq2Seq在解碼的時候最基礎的算法是貪心法,即每次貪心的選擇概率最大的結果。貪心算法的計算代價低,適合作為基准結果與其他方法比較。
集束搜索是一個常見的改進算法,它是一種啟發式的算法。beam search每次維護beam_size個解,然后由這beam_size個解生成下一層的結果,之后將下一層取前beam_size個,不斷迭代得到最后的結果。