Beam Search理解

beam search:在test的過程中生成幾段序列的方式,通常用於機器翻譯或看圖說話中。

beam search 中有一個重要的參數:beam size = k,表示最後生成的得分最高的前k個序列

在看圖說話或機器翻譯中,最後生成的句子中的每個單詞肯定是訓練集所產生語料庫中的單詞,採用全局搜索,空間太大,效果提升並不明顯。

beam search的原理(下面用一個例子簡單描述)

在test的時候,假設詞表大小爲n,beam size = k.

對圖片或語句先進行encoder,decoder 解碼的時候

1:生成第一個詞的時候,選擇詞表中經過RNN計算出的概率(P1)最大的k個詞,就是k個序列中的第一個詞

2:生成第二個詞的時候,在已知第一個詞的基礎上,分別與詞表中的所有詞進行組合,得到新的序列,選擇k個概率(P2)最高的,作爲k個序列的前兩個詞

3:重複上述過程,直到遇到結束符爲止。最終輸出k個得分最高的序列,爲機器翻譯或看圖說話的k個可能結果。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章