3.10 触发字检测-深度学习第五课《序列模型》-Stanford吴恩达教授
觸發字檢測 (Trigger Word Detection)
現在你已經學習了很多關于深度學習和序列模型的內容,于是我們可以真正去簡便地描繪出一個觸發字系統(a trigger word system),就像上節視頻中你看到的那樣。隨著語音識別的發展,越來越多的設備可以通過你的聲音來喚醒,這有時被叫做觸發字檢測系統(rigger word detection systems)。我們來看一看如何建立一個觸發字系統。
觸發字系統的例子包括Amazon echo,它通過單詞Alexa喚醒;還有百度DuerOS設備,通過"小度你好"來喚醒;蘋果的Siri用Hey Siri來喚醒;Google Home使用Okay Google來喚醒,這就是觸發字檢測系統。假如你在臥室中,有一臺Amazon echo,你可以在臥室中簡單說一句: Alexa, 現在幾點了?就能喚醒這個設備。它將會被單詞"Alexa"喚醒,并回答你的詢問。如果你能建立一個觸發字檢測系統,也許你就能讓你的電腦通過你的聲音來執行某些事,我有個朋友也在做一種用觸發字來打開的特殊的燈,這是個很有趣的項目。但我想教會你的,是如何構建一個觸發字檢測系統。
有關于觸發字檢測系統的文獻,還處于發展階段。對于觸發字檢測,最好的算法是什么,目前還沒有一個廣泛的定論。我這里就簡單向你介紹一個你能夠使用的算法好了。現在有一個這樣的RNN結構,我們要做的就是把一個音頻片段(an audio clip)計算出它的聲譜圖特征(spectrogram features)得到特征向量 x<1>,x<2>,x<3>?x^{<1>},x^{<2>},x^{<3>}\cdotsx<1>,x<2>,x<3>? ,然后把它放到RNN中,最后要做的,就是定義我們的目標標簽 yyy 。假如音頻片段中的這一點是某人剛剛說完一個觸發字,比如"Alexa",或者"小度你好" 或者"Okay Google",那么在這一點之前,你就可以在訓練集中把目標標簽都設為0,然后在這個點之后把目標標簽設為1。假如在一段時間之后,觸發字又被說了一次,比如是在這個點說的,那么就可以再次在這個點之后把目標標簽設為1。這樣的標簽方案對于RNN來說是可行的,并且確實運行得非常不錯。不過該算法一個明顯的缺點就是它構建了一個很不平衡的訓練集(a very imbalanced training set),0的數量比1多太多了。
這里還有一個解決方法,雖然聽起來有點簡單粗暴,但確實能使其變得更容易訓練。比起只在一個時間步上去輸出1,其實你可以在輸出變回0之前,多次輸出1,或說在固定的一段時間內輸出多個1。這樣的話,就稍微提高了1與0的比例,這確實有些簡單粗暴。在音頻片段中,觸發字剛被說完之后,就把多個目標標簽設為1,這里觸發字又被說了一次。說完以后,又讓RNN去輸出1。在之后的編程練習中,你可以進行更多這樣的操作,我想你應該會對自己學會了這么多東西而感到自豪。我們僅僅用了一張幻燈片來描述這種復雜的觸發字檢測系統。在這個基礎上,希望你能夠實現一個能有效地讓你能夠檢測出觸發字的算法,不過在編程練習中你可以看到更多的學習內容。這就是觸發字檢測,希望你能對自己感到自豪。因為你已經學了這么多深度學習的內容,現在你可以只用幾分鐘時間,就能用一張幻燈片來描述觸發字能夠實現它,并讓它發揮作用。你甚至可能在你的家里用觸發字系統做一些有趣的事情,比如打開或關閉電器,或者可以改造你的電腦,使得你或者其他人可以用觸發字來操作它。
這是深度學習課程最后一個技術視頻,所以總結一下我們對序列模型的學習。我們學了RNN,包括GRU和LSTM,然后在上一周我們學了詞嵌入(word embeddings),以及它們如何學習詞匯的表達(how they learn representations of words)。在這周還學了注意力模型(the attention model)以及如何使用它來處理音頻數據(audio data)。希望你在編程練習中實現這些思想的時候,能夠體會到諸多樂趣。接下來我們來看最后一個視頻。
總結
以上是生活随笔為你收集整理的3.10 触发字检测-深度学习第五课《序列模型》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.8 注意力模型-深度学习第五课《序列
- 下一篇: 3.11 结论和致谢-深度学习第五课《序