繼續《深度學習》花書筆記總結,這一章主要是結合前面幾章內容簡要介紹了深度學習在圖像識別,自然語言處理及其他領域的應用。
首先,深度學習的成功應用離不開硬體的發展。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個詞的條件概率