淺談深度學習的基本概念和方法
本文旨在提供直觀簡明的深度學習引導,涵蓋深度學習的基本概念,而不涉及很多數學和理論細節。當然如果要做更深入的研究,數學肯定是必不可少的,但是本系列主要還是用圖片和類比等方式,幫助初學者快速建立大局觀。
核心概念
機器學習(Machine Learning)
在機器學習中,我們(1)讀取數據,(2)訓練模型,(3)使用模型對新數據做預測。訓練可以看作是當模型拿到新數據的時候、逐步學習一個的過程。在每一步,模型做出預測并且得到準確度的反饋。反饋的形式即是某種衡量標準(比如與正確解的距離)下的誤差,再被用于修正預測誤差。
學習是一個在參數空間里循環往復的過程:當你調整參數改正一次預測,但是模型卻可能把原先對的又搞錯了。需要很多次的迭代,模型才能具有良好的預測能力,這一“預測-修正”的過程一直持續到模型再無改良空間。
特征工程(Feature Engineering)
特征工程從數據中提取有用的模式,使之更容易被機器學習模型進行分類。比如,把一堆綠色或藍色的像素區域作為標準,來判斷照片上是陸生動物還是水生動物。這一特征對于機器學習模型十分有效,因為其限制了需要考慮的類別數量。
在多數預測任務中,特征工程是取得好結果的必備技能。然而,因為不同的數據集有著不同的特征工程方法,所以很難得出普遍規律,只有一些大概的經驗,這使得特征工程更是一門藝術而非科學。一個數據集里極其關鍵的特征,到了另一個數據集里可能沒有卵用(比如下一個數據集里全是植物)。正因為特征工程這么難,才會有科學家去研發自動提取特征的算法。
很多任務已經可以自動化(比如物體識別、語音識別),特征工程還是復雜任務中最有效的技術(比如Kaggle機器學習競賽中的大多數任務)。
特征學習(Feature Learning)
特征學習算法尋找同類之間的共有模式,并自動提取用以分類或回歸。特征學習就是由算法自動完成的特征工程。在深度學習中,卷積層就極其擅長尋找圖片中的特征,并映射到下一層,形成非線性特征的層級結構,復雜度逐漸提升(例如:圓圈,邊緣 -> 鼻子,眼睛,臉頰)。最后一層使用所有生成的特征來進行分類或回歸(卷積網絡的最后一層,本質上就是多項式邏輯回歸)。
深度學習算法學得的層級特征
圖1:深度學習算法學得的層級特征。
每個特征都相當于一個濾波器,
用特征(比如鼻子)去過濾輸入圖片。
如果這個特征找到了,相應的單元就會產生高激勵,
在之后的分類階段中,就是此類別存在的高指標。
圖1顯示了深度學習算法生成的特征,很難得的是,這些特征意義都很明確,因為大多數特征往往不知所云,特別是循環神經網絡、LSTM或特別深的深度卷積網絡。
深度學習(Deep Learning)
在層級特征學習中,我們提取出了好幾層的非線性特征,并傳遞給分類器,分類器整合所有特征做出預測。我們有意堆疊這些深層的非線性特征,因為層數少了,學不出復雜特征。數學上可以證明,單層神經網絡所能學習的最好特征,就是圓圈和邊緣,因為它們包含了單個非線性變換所能承載的最多信息。為了生成信息量更大的特征,我們不能直接操作這些輸入,而要對第一批特征(邊緣和圓圈)繼續進行變換,以得到更復雜的特征。
研究顯示,人腦有著相同的工作機理:視錐細胞接受信息的第一層神經,對邊緣和圓圈更加敏感,而更深處的大腦皮層則對更加復雜的結構敏感,比如人臉。
層級特征學習誕生在深度學習之前,其結構面臨很多嚴重問題,比如梯度消失——梯度在很深的層級處變得太小,以致于不能提供什么學習信息了。這使得層級結構反而表現不如一些傳統機器學習算法(比如支持向量機)。
為解決梯度消失問題,以便我們能夠訓練幾十層的非線性層及特征,很多新的方法和策略應運而生,“深度學習”這個詞就來自于此。在2010年代早期,研究發現在GPU的幫助下,激勵函數擁有足以訓練出深層結構的梯度流,從此深度學習開始了穩步發展。
深度學習并非總是與深度非線性層級特征綁定,有時也與序列數據中的長期非線性時間依賴相關。對于序列數據,多數其他算法只有最后10個時間步的記憶,而LSTM循環神經網絡(1997年由Sepp Hochreiter和Jürgen Schmidhuber發明),使網絡能夠追溯上百個時間步之前的活動以做出正確預測。盡管LSTM曾被雪藏將近10年,但自從2013年與卷積網絡結合以來,其應用飛速成長。
中國· 上海

CopyRight?2009-2019 上海谷谷網絡科技有限公司 All Rights Reserved. 滬ICP備11022482號-8
- top
- 在線咨詢
-
添加微信咨詢