深度神經網路

深度神經網路

深度神經網路指的是微軟推出了一新款語音識別軟體,其工作原理是模仿人腦思考方式,從而使該軟體的語音識別速度更快,識別準確率也更高。

功能


微軟介紹,這種新型語音識別軟體採用了名為“深度神經網路”的技術,使得該軟體處理人類語音的過程與人腦相似。對此微軟必應(Bing)搜索業務部門主管斯特凡·維茨(Stefan Weitz)在本周一表示:“我們試圖複製人腦聆聽和處理人類語音的方式。”
微軟還表示,與原有WP手機語音識別技術相比,新型技術的語音識別準確性提高了15%,且創建相應文本及搜索關鍵詞的速度也更快。如此一來,必應返回相應搜索結果所用時間比以前快了兩倍。
微軟語音處理技術部門高級項目經理邁克爾·特加爾夫(Michael Tjalve)也表示:“通過我們最新的語音識別器,你不但得到的結果更好,而且速度更快。”
微軟已面向美國市場的Windows Phone手機用戶發布了這項技術。用戶通過這項新技術,將更容易使用語音命令來創建簡訊、進行網路搜索等活動。

工作


多層的好處是可以用較少的參數表示複雜的函數。
在監督學習中,以前的多層神經網路的問題是容易陷入局部極值點。如果訓練樣本足夠充分覆蓋未來的樣本,那麼學到的多層權重可以很好的用來預測新的測試樣本。但是很多任務難以得到足夠多的標記樣本,在這種情況下,簡單的模型,比如線性回歸或者決策樹往往能得到比多層神經網路更好的結果(更好的泛化性,更差的訓練誤差)。
非監督學習中,以往沒有有效的方法構造多層網路。多層神經網路的頂層是底層特徵的高級表示,比如底層是像素點,上一層的結點可能表示橫線,三角;而頂層可能有一個結點表示人臉。一個成功的演演算法應該能讓生成的頂層特徵最大化的代表底層的樣例。如果對所有層同時訓練,時間複雜度會太高;如果每次訓練一層,偏差就會逐層傳遞。這會面臨跟上面監督學習中相反的問題,會嚴重欠擬合。
2006年,hinton提出了在非監督數據上建立多層神經網路的一個有效方法,簡單的說,分為兩步,一是每次訓練一層網路,二是調優使原始表示x向上生成的高級表示r和該高級表示r向下生成的x'儘可能一致。方法是
1,首先逐層構建單層神經元,這樣每次都是訓練一個單層網路。
2,當所有層訓練完后,hinton使用wake-sleep演演算法進行調優。將除最頂層的其它層間的權重變為雙向的,這樣最頂層仍然是一個單層神經網路,而其它層則變為了圖模型。向上的權重用於”認知“,向下的權重用於”生成“。然後使用Wake-Sleep演演算法調整所有的權重。讓認知和生成達成一致,也就是保證生成的最頂層表示能夠儘可能正確的復原底層的結點。比如頂層的一個結點表示人臉,那麼所有人臉的圖像應該激活這個結點,並且這個結果向下生成的圖像應該能夠表現為一個大概的人臉圖像。Wake-Sleep演演算法分為醒(wake)和睡(sleep)兩個部分。
2.1,wake階段,認知過程,通過外界的特徵和向上的權重(認知權重)產生每一層的抽象表示(結點狀態),並且使用梯度下降修改層間的下行權重(生成權重)。也就是“如果現實跟我想像的不一樣,改變我的權重使得我想像的東西就是這樣的“。
2.2,sleep階段,生成過程,通過頂層表示(醒時學得的概念)和向下權重,生成底層的狀態,同時修改層間向上的權重。也就是“如果夢中的景象不是我腦中的相應概念,改變我的認知權重使得這種景象在我看來就是這個概念“。
由於自動編碼器(auto-encoder,即上面說的神經網路。廣義上的自動編碼器指所有的從低級表示得到高級表示,並能從高級表示生成低級表示的近似的結構,狹義上指的是其中的一種,谷歌的人臉識別用的)有聯想功能,也就是缺失部分輸入也能得到正確的編碼,所以上面說的演演算法也可以用於有監督學習,訓練時y做為頂層網路輸入的補充,應用時頂層網路生成y'。