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