繼續《深度學習》花書筆記總結,這一章主要是結合前面幾章內容簡要介紹了深度學習在圖像識別,自然語言處理及其他領域的應用。

首先,深度學習的成功應用離不開硬體的發展。GPU由於其高內存帶寬,非常適合需要存儲很多參數、激活值及梯度值的神經網路,而且許多神經網路可以並行運算,GPU在這方面也優於CPU,而GPU相對於CPU有較低的時鐘速度及處理複雜計算的劣勢,由於大部分神經網路單元並不需要複雜邏輯運算所以也並無很大影響。當然,也寫好高效的GPU上運行的代碼並不容易,值得慶幸的是,現在大部分庫如TensorFlow等都已經將這些封裝好了。另一方面,分散式計算也在飛速發展,所以有了asynchronous stochastic gradient descent,可以極大的加快訓練時模型的更新速度。同時,為了使一些模型能夠有效的運行在手機端,需要對模型進行壓縮(model compression),即用需要內存及計算量更小的模型來替代原來較昂貴的模型。硬體方面,專門為深度學習設計的硬體也在發展,例如谷歌的TPU等。

圖形圖像(computer vision)領域的發展,主要有物體識別,物體標記,圖像轉譯,圖像生成等等,主要應用了之前卷積神經網路——深度學習第九章的發展及之後要講到的GAN等模型。有的時候,為了保證模型更好的工作,我們常常也需要藉助傳統的圖像預處理等技術,例如normalization, dataset augmentation等等。Normalization的作用主要是減少數據間的變化,例如contrast normalization利用將數據減掉平均值並且將標準差調整到定值的方法降低對比度不同對模型造成的影響。Dataset Augmentation利用對原數據做一些微調人為增加訓練數據的方法使得模型在微擾下更穩定,常見的方法有平移、翻轉、添加隨機雜訊等等。

語音識別(speech recognition)也得益於深度學習。語音識別即輸入時一系列的聲音信號,輸出是對應的文字,之前常採用的是HMM(Hidden Markov)與GMM(Gaussian mixture model)相結合的辦法,而現在通常採用的是RNN模型循環神經網路RNN——深度學習第十章。

自然語言處理(Natural language processing)即將某種語言翻譯成其他語言或機器語言,通常依賴於片語句子等的概率分佈。之前採用的通常是一些概率統計模型,例如基於n-gram的模型定義了基於前n-1個辭彙時第n個詞的條件概率

但是該模型會受到維度的詛咒,通常對於辭彙量為 V 的問題,有 V^n 種n-gram,計算量很大,而且實際上大部分n-gram並不會出現在訓練集中。

為瞭解決維度過高的問題,我們可以將單詞映射到word embedding空間,可以將其想為一個更低維度的空間,並且相似的單詞在該空間中距離更近。而為了從這一表徵空間重新映射到單詞,我們需要利用Softmax,而由於映射到的類是V的量級,普通的softmax計算量過大,這時候可以採用Hierachical Softmax, Importance Sampling等方法。

現在效果較好的Neural Machine Translation系統通常採用Encoder-Decoder的結構(循環神經網路RNN——深度學習第十章),即利用Encoder將輸入的文字序列轉化為一個新的表徵context,再利用Decoder將context轉化為所需要的語言文字,Encoder、Decoder通常採用RNN結構。近期發現利用Attention模型和RNN結合能取得更好的效果。其基本思想是RNN的輸出向量對於長句子來說之前的上下文會被遺忘,為了考慮整個句子的context,我們將這個信息存儲起來,並在輸出不同位置的結果時將側重點(利用不同的權重參數)放在不同的記憶元素上,即對feature vector做weighted average,這種attention方法最早被應用在圖像識別中,推廣到機器翻譯中也收穫了很好的效果。

其他的機器學習的應用還有推薦系統。推薦系統主要依賴於用戶過去的購買記錄來計算不同用戶或產品之間的相似性,這種方法叫做collaborative filtering,但這種方法對於新用戶或新商品來說由於缺乏歷史信息效果較差,通常我們會提取用戶或商品其他方面的信息,並利用神經網路將其映射到embedding空間來尋找相似的推薦。除了監督學習模型,為了平衡exploration(嘗試獲取之前未探索過的信息)和exploitation(從已有信息儘可能高的獲利)的問題,還可以嘗試強化學習(Reinforcement Learning)的方法,關於強化學習詳細信息可以參考Sutton等撰寫的Reinforcement Learning(Reinforcement Learning: An Introduction)及David Silver的課程(Reinforcement Learning)。

當然,深度學習還有很多其他方面的應用,很難完全列舉出來,上面只是比較有代表性的一些應用。至此,工業中實際應用的深度學習知識總結完畢,下一章開始總結處於研究階段的機器學習方法,如處理小數據以及通用機器學習模型等問題。

推薦閱讀:

相關文章