集束搜尋(Beam Search)

2022-06-23 15:27:12 字數 524 閱讀 1894

beam search的一般步驟為:

1、初始化beam_size個序列,序列均為空,這些序列稱之為beam paths;

2、取下乙個frame的前n個候選值(n一般為beam size或者更大,frame內部侯選值已按照概率倒序排列),與已存在的beam paths組合形成n * beam_size條路徑,稱之為prob_paths;

3、對prob_paths進行打分,取前beam_size個prob_path作為新的beam paths;

4、若解碼結束則完成演算法,否則回到步驟2。

這個演算法常常被用於解碼可選狀態數量多的情形,比如生成對話、生成描述、機器翻譯等,每一步都有詞表大小的可選狀態集。

多適用於機器翻譯,語音識別,當系統的資料集比較大,計算資源受限,而且沒有唯一最優解時,該演算法能夠較快的找到接近最正確的解。

在sequence2sequence模型中,beam search的方法只用在測試的情況,因為在訓練過程中,每乙個decoder的輸出是有正確答案的,也就不需要beam search去加大輸出的準確率。

Beam Search(集束搜尋 束搜尋)

1.簡介 beam search 集束搜尋 是一種啟發式圖搜尋演算法,通常用在圖的解空間比較大的情況下,為了減少搜尋所占用的空間和時間,在每一步深度擴充套件的時候,剪掉一些質量比較差的結點,保留下一些質量較高的結點。這樣減少了空間消耗,並提高了時間效率,但缺點就是有可能存在潛在的最佳方案被丟棄,因此...

Beam search 演算法的通俗理解

beam search 演算法在文字生成中用得比較多,用於選擇較優的結果 可能並不是最優的 接下來將以seq2seq機器翻譯為例來說明這個beam search的演算法思想。在機器翻譯中,beam search演算法在測試的時候用的,因為在訓練過程中,每乙個decoder的輸出是有與之對應的正確答案...

seq2seq中的beam search演算法過程

首先說明在sequence2sequence模型中,beam search的方法只用在測試的情況,因為在訓練過程中,每乙個decoder的輸出是有正確答案的,也就不需要beam search去加大輸出的準確率。假設現在我們用機器翻譯作為例子來說明。我們的任務是翻譯中文 我是中國人 英文 i am c...