日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

beam search算法

發(fā)布時間:2023/12/2 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 beam search算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載

https://blog.csdn.net/xyz1584172808/article/details/89220906

https://blog.csdn.net/batuwuhanpei/article/details/64162331

https://www.zhihu.com/question/54356960

?

?

beam search算法

?

在看論文Sequence to Sequence Learning with neural networks時看到了beam search算法,特此記錄一下該算法的基本思想

?

在CS領(lǐng)域,beam search是一種啟發(fā)式搜索,在優(yōu)化領(lǐng)域,其屬于一種最佳優(yōu)先算法,最佳優(yōu)先算法是一種圖搜索算法,其會將所有可能的解依據(jù)啟發(fā)式規(guī)則進行排序,該規(guī)則用來衡量得到的解與目標解到底有多接近。但是對于beam search與最佳優(yōu)先算法有有一些地方不同,beam search只會保存一部分解作為候選解,而最佳優(yōu)先算法則會將所有解都作為候選,其具體過程如下所述:

beam search是使用寬度優(yōu)先搜索來構(gòu)建它的搜索樹。在每一層,其都會生成一系列的解,然后對這些解進行排序,選擇最好的K個解作為候選解,這里的K我們稱為集束寬度。只有被選中的這些解可以向下繼續(xù)擴展下去。因此,集束寬度越大,被裁減掉的解越少。由于存在裁減,目標解有可能會被裁減掉,因此該算法是不完全的,即無法保證能夠找到全局最優(yōu)解

?

這里有一個最通俗的解釋

在seq2seq中在test階段使用了beam search來尋找解碼時最優(yōu)的結(jié)果,我們假設(shè)集束寬度為2,詞典大小為3(a,b,c),那么其解碼過程如下所示:

1)生成第1個詞的時候,選擇概率最大的2個詞,假設(shè)為a,c,那么當前序列就是a,c;

2)生成第2個詞的時候,我們將當前序列a和c,分別與詞表中的所有詞進行組合,得到新的6個序列aa、ab、ac、ca、cb cc,然后從其中選擇2個得分最高的,作為當前序列,加入aa、cb

3)后面不斷重復這個過程,直到遇到結(jié)束符為止。最終輸出2個得分最高的序列

?

?

在seq2seq算法中,beam search只在預測的時候需要。訓練的時候因為知道正確答案,并不需要再進行這個搜索。

在seq2seq算法中Beam search算法也有許多改進的地方,根據(jù)最后的概率公式可知,該算法傾向于選擇最短的句子,因為在這個連乘操作中,每個因子都是小于1的數(shù),因子越多,最后的概率就越小。解決這個問題的方式,最后的概率值除以這個生成序列的單詞數(shù)(記生成序列的單詞數(shù)為N NN),這樣比較的就是每個單詞的平均概率大小。

此外,連乘因子較多時,可能會超過浮點數(shù)的最小值,可以考慮取對數(shù)來緩解這個問題。

總結(jié)

以上是生活随笔為你收集整理的beam search算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。