如何正確理解深度學習(Deep Learning)的概念

原文鏈接:http://blog.csdn.net/raodotcong/article/details/9003087

現在深度學習在機器學習領域是一個很熱的概念,不過經過各種媒體的轉載播報,這個概念也逐漸變得有些神話的感覺:例如,人們可能認爲,深度學習是一種能夠模擬出人腦的神經結構的機器學習方式,從而能夠讓計算機具有人一樣的智慧;而這樣一種技術在將來無疑是前景無限的。那麼深度學習本質上又是一種什麼樣的技術呢?

      深度學習是什麼

      深度學習是機器學習領域中對模式(聲音、圖像等等)進行建模的一種方法,它也是一種基於統計的概率模型。在對各種模式進行建模之後,便可以對各種模式進行識別了,例如待建模的模式是聲音的話,那麼這種識別便可以理解爲語音識別。而類比來理解,如果說將機器學習算法類比爲排序算法,那麼深度學習算法便是衆多排序算法當中的一種(例如冒泡排序),這種算法在某些應用場景中,會具有一定的優勢。

      深度學習的“深度”體現在哪裏

      論及深度學習中的“深度”一詞,人們從感性上可能會認爲,深度學習相對於傳統的機器學習算法,能夠做更多的事情,是一種更爲“高深”的算法。而事實可能並非我們想象的那樣,因爲從算法輸入輸出的角度考慮,深度學習算法與傳統的有監督機器學習算法的輸入輸出都是類似的,無論是最簡單的Logistic Regression,還是到後來的SVM、boosting等算法,它們能夠做的事情都是類似的。正如無論使用什麼樣的排序算法,它們的輸入和預期的輸出都是類似的,區別在於各種算法在不同環境下的性能不同。

      那麼深度學習的“深度”本質上又指的是什麼呢?深度學習的學名又叫深層神經網絡(Deep Neural Networks ),是從很久以前的人工神經網絡(Artificial Neural Networks)模型發展而來。這種模型一般採用計算機科學中的圖模型來直觀的表達,而深度學習的“深度”便指的是圖模型的層數以及每一層的節點數量,相對於之前的神經網絡而言,有了很大程度的提升。

      深度學習也有許多種不同的實現形式,根據解決問題、應用領域甚至論文作者取名創意的不同,它也有不同的名字:例如卷積神經網絡(Convolutional Neural Networks)、深度置信網絡(Deep Belief Networks)、受限玻爾茲曼機(Restricted Boltzmann Machines)、深度玻爾茲曼機(Deep Boltzmann Machines)、遞歸自動編碼器(Recursive Autoencoders)、深度表達(Deep Representation)等等。不過究其本質來講,都是類似的深度神經網絡模型。

      既然深度學習這樣一種神經網絡模型在以前就出現過了,爲什麼在經歷過一次沒落之後,到現在又重新進入人們的視線當中了呢?這是因爲在十幾年前的硬件條件下,對高層次多節點神經網絡的建模,時間複雜度(可能以年爲單位)幾乎是無法接受的。在很多應用當中,實際用到的是一些深度較淺的網絡,雖然這種模型在這些應用當中,取得了非常好的效果(甚至是the state of the art),但由於這種時間上的不可接受性,限制了其在實際應用的推廣。而到了現在,計算機硬件的水平與之前已經不能同日而語,因此神經網絡這樣一種模型便又進入了人們的視線當中。

      2012年6月,《紐約時報》披露了Google Brain項目,吸引了公衆的廣泛關注。這個項目是由著名的斯坦福大學機器學習教授Andrew Ng和在大規模計算機系統方面的世界頂尖專家Jeff Dean共同主導,用16000個CPU Core的並行計算平臺訓練一種稱爲“深層神經網絡”(DNN,Deep Neural Networks)

      從Google Brain這個項目中我們可以看到,神經網絡這種模型對於計算量的要求是極其巨大的,爲了保證算法實時性,需要使用大量的CPU來進行並行計算。

      當然,深度學習現在備受關注的另外一個原因,當然是因爲在某些場景下,這種算法模式識別的精度,超過了絕大多數目前已有的算法。而在最近,深度學習的提出者修改了其實現代碼的Bug之後,這種模型識別精度又有了很大的提升。這些因素共同引起了深層神經網絡模型,或者說深度學習這樣一個概念的新的熱潮。

      深度學習的優點

      爲了進行某種模式的識別,通常的做法首先是以某種方式,提取這個模式中的特徵。這個特徵的提取方式有時候是人工設計或指定的,有時候是在給定相對較多數據的前提下,由計算機自己總結出來的。深度學習提出了一種讓計算機自動學習出模式特徵的方法,並將特徵學習融入到了建立模型的過程中,從而減少了人爲設計特徵造成的不完備性。而目前以深度學習爲核心的某些機器學習應用,在滿足特定條件的應用場景下,已經達到了超越現有算法的識別或分類性能。

      深度學習的缺點

      深度學習雖然能夠自動的學習模式的特徵,並可以達到很好的識別精度,但這種算法工作的前提是,使用者能夠提供“相當大”量級的數據。也就是說在只能提供有限數據量的應用場景下,深度學習算法便不能夠對數據的規律進行無偏差的估計了,因此在識別效果上可能不如一些已有的簡單算法。另外,由於深度學習中,圖模型的複雜化導致了這個算法的時間複雜度急劇提升,爲了保證算法的實時性,需要更高的並行編程技巧以及更好更多的硬件支持。所以,目前也只有一些經濟實力比較強大的科研機構或企業,才能夠用深度學習算法,來做一些比較前沿而又實用的應用。

歡迎登陸我的個人主頁,hello2019,查看原文:http://richardliu.cn/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章