當前位置:編程學習大全網 - 編程語言 - 如何正確理解深度學習的概念

如何正確理解深度學習的概念

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

深度學習是什麽

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

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

論及深度學習中的“深度”壹詞,人們從感性上可能會認為,深度學習相對於傳統的機器學習算法,能夠做更多的事情,是壹種更為“高深”的算法。而事實可能並非我們想象的那樣,因為從算法輸入輸出的角度考慮,深度學習算法與傳統的有監督機器學習算法的輸入輸出都是類似的,無論是最簡單的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 art),但由於這種時間上的不可接受性,限制了其在實際應用的推廣。而到了現在,計算機硬件的水平與之前已經不能同日而語,因此神經網絡這樣壹種模型便又進入了人們的視線當中。

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

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

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

深度學習的優點

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

深度學習的缺點

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

  • 上一篇:金融專業和軟件工程專業哪個更好?
  • 下一篇:大班數學教案連接
  • copyright 2024編程學習大全網