05.序列模型 W3.序列模型和注意力机制
文章目錄
- 1. 基礎模型
- 2. 選擇最可能的句子
- 3. 集束搜索(Beam Search)
- 4. 改進集束搜索
- 5. 集束搜索的誤差分析
- 6. Bleu 得分
- 7. 注意力模型直觀理解
- 8. 注意力模型
- 9. 語音識別(Speech recognition)
- 10. 觸發字檢測(Trigger Word Detection)
- 作業
參考:
吳恩達視頻課
深度學習筆記
序列模型和注意力機制(Sequence models & Attention mechanism)
1. 基礎模型
- seq2seq : 語言翻譯
- image to sequence:圖片描述
2. 選擇最可能的句子
條件語言模型 和之前的 語言模型 一個主要的區別:
- 語言模型 隨機地生成句子
- 條件語言模型,你要找到最有可能的英語句子,但是句子組合數量過于巨大,需要一種合適的搜索算法,集束搜索(Beam Search)
3. 集束搜索(Beam Search)
在 集束寬為3時,集束搜索一次只考慮3個可能結果
如果集束寬等于1,就變成了貪心搜索算法
同時考慮多個可能的結果比如3個,10個或者其他的個數,集束搜索通常比貪婪搜索更好
4. 改進集束搜索
上節講到 集束搜索 要選出條件概率最高的前 B 個,公式如下:
arg?max?y∏t=1TyP(y<t>∣x,y<1>,…,y<t?1>)\arg \max _{y} \prod_{t=1}^{T_{y}} P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymax?t=1∏Ty??P(y<t>∣x,y<1>,…,y<t?1>)
展開就是下面的式子:
P(y<2>∣X,y<1>)P(y<3>∣X,y<1>,y<2>)…P(y<Ty>∣X,y<1>,y<2>…y<Ty?1>)P\left(y^{<2>} \mid X, y^{<1>}\right) P\left(y^{<3>} \mid X, y^{<1>}, y^{<2>}\right) \ldots P\left(y^{<T_{y}>} \mid X, y^{<1>}, y^{<2>} \ldots y^{<T_{y}-1>}\right)P(y<2>∣X,y<1>)P(y<3>∣X,y<1>,y<2>)…P(y<Ty?>∣X,y<1>,y<2>…y<Ty??1>)
上式缺點:
- 概率越乘越小,向下溢出
- 式子傾向于給出更短的句子(概率相乘,沒有那么小)
采用取 log 的式子:
arg?max?y∑y=1Tylog?P(y<t>∣x,y<1>,…,y<t?1>)\arg \max _{y} \sum_{y=1}^{T_{y}} \log P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymax?y=1∑Ty??logP(y<t>∣x,y<1>,…,y<t?1>)
再對長度進行歸一化:乘以系數
arg?max?y1Tyα∑y=1Tylog?P(y<t>∣x,y<1>,…,y<t?1>)\arg \max _{y} \frac{1}{T_y^{\alpha}}\sum_{y=1}^{T_{y}} \log P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymax?Tyα?1?y=1∑Ty??logP(y<t>∣x,y<1>,…,y<t?1>)
超參數 α=0.7\alpha = 0.7α=0.7 常用,0 沒有歸一化,1 完全由長度來歸一化
注意:集束搜索 不一定搜到的是最優解,是一種啟發式搜索算法,達到較好的效果
如何選擇束寬 B:
- B 越大,輸出句子越好,計算代價也大,內存占用大
- B 較小,輸出效果沒那么好,計算快些,內存占用小,產品中常見 B = 10,科研看情況可以取大些,效果好,好發文章
5. 集束搜索的誤差分析
怎樣才能發現是 Beam搜索 算法出現了問題,還是你的 RNN模型 出了問題?
分析哪種錯誤更多:
- Beam搜索 算法造成了大部分錯誤時,才值得花費努力增大集束寬度
- RNN模型 出了更多錯,可以進行更深層次的分析,來決定是需要增加正則化還是獲取更多的訓練數據,抑或是嘗試一個不同的網絡結構,或是其他方案。(見第三門課)
6. Bleu 得分
機器翻譯(machine translation)的一大難題是一個法語句子可以有多種英文翻譯而且都同樣好,所以當有多個同樣好的答案時,怎樣評估一個機器翻譯系統呢?
BLEU得分背后的理念:觀察機器生成的翻譯,然后看生成的詞是否出現在 至少一個人工翻譯參考之中
短的語句更容易有 更高的Bleu 得分(較大的概率:語句中的詞語都在 參考語句中),為了平衡這種情況,使用 “簡短懲罰”( brevity penalty)
BLEU得分 是一個有用的單一實數評估指標,用于評估生成文本的算法,判斷輸出的結果是否與人工寫出的參考文本的含義相似。
常用于 機器翻譯,圖像描述, Bleu 有很多開源實現,可以直接下載來用
7. 注意力模型直觀理解
注意力權重,a<t,t>a^{<t,t>}a<t,t> 告訴你,當你嘗試生成第 ttt 個英文詞,它應該花多少注意力在第 ttt 個法語詞上面。
當生成一個特定的英文詞時,這允許它在每個時間步去看周圍詞距內的法語詞要花多少注意力。
8. 注意力模型
注意力模型如何讓一個神經網絡只注意到一部分的輸入句子。當它在生成句子的時候,更像人類翻譯
9. 語音識別(Speech recognition)
10. 觸發字檢測(Trigger Word Detection)
設備喚醒:手機助理,汽車中控喚醒等
作業
作業:機器翻譯+觸發詞檢測
本文地址:https://michael.blog.csdn.net/article/details/108908470
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的05.序列模型 W3.序列模型和注意力机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用LSTM建立seq2seq模型进行语
- 下一篇: LeetCode 1550. 存在连续三