seq2seq 中的 beam search 演算法過程是怎樣的?

時間 2021-05-05 20:42:04

1樓:

可看著閹割版的維特比演算法,它更一般,維特比和貪心的greedy search可以看做它的特例

假設建模單元個數為n,beam size為k,解碼需要的時間步驟為t

(1)如果k=1,即為greedy search,時間複雜度為O(t*n)

(2)如果k=n,即維特比演算法,時間複雜度為O(t*n*n),此時有全域性最優解

(3)其他即為常說的beam search, 時間複雜度為O(t*k*n),區域性最優

2樓:

首先需要確定乙個`Beam Size`,這裡設定為2,意思是每個`word`後面的分支考慮概率最大的那兩個`words`。比如下面的例子,從下往上首先分成A、B兩個words,然後繼續往上傳播,句子變成是AA/AB/BA/BB這四種情況(綠色虛線)。考慮到`Beam Size=2`,選擇概率最大的兩個,假設是AB/BA(橙色大箭頭)。

然後以選擇的AB/BA繼續向上傳播,又出現了四種情況ABA/ABB/BBA/BBB,依然是選擇綜合概率最大的兩個ABB/BBB。以此類推,直至句子結束。只要可以調整好`Beam Size`,就能夠使用最小的計算量,得到最優的結果。

3樓:書生打柴

beam search只是乙個搜尋策略,對於語言生成的模型中,你給定語言模型,它可以搜尋出更差異化、更合理的結果。beam search功能上等價於最簡單的單步最大概率,或者viterbi演算法等等。所以沒有什麼時候用的問題,只是一種搜尋策略而已。

seq2seq模型 和 encoder decoder模型有什麼異同?

ZJU某小白 顧名思義,seq2seq是序列到序列的建模,是一種應用場景而不是某個特定的技術或者模型。RNN可以做seq2seq,CNN也可以做,transformer那樣只用attention和全連線的也可以。encoder decoder 編碼 解碼 指的則是seq2seq中的一種更細節一點的建...

Produce101 season2中的舞台表演中你最喜歡哪個?為什麼?

DuckAn 我自己pick的幾個舞台 男子漢 二組 oh little girl 怯 如果是你 陣雨 開啟吧 這幾個舞台都重刷了無數次,好像沒有什麼特別的原因,就單純的喜歡 cccc 當然是super hot!三木的編舞實在是太有心了!融合了很多之前節目裡的梗,比如showtime裡的四次比心 是...

如何看待 DOTA2 中的暫停?

awsl 國際慣例兩分鐘。每次有掉線都會等一下的每次都說兩分鐘,大多數都會等到重連回來 不過也經常碰見,嘴上說的兩分鐘,剛沒一會兒就開了,兩分鐘這麼快呢嗎?還有就是比較反感,人死了,掉線了,然後暫停的,你等人活了再暫停不好嗎?我有乙個朋友它只要一掉線,我就立馬開,每次掉線我就知道他就連不回來了,到時...