初識Deep Learning(深度學習) I

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/PinkRiverside/article/details/71374832

背景

深度學習的概念由Hinton等人於2006年提出,對傳統的人工神經網絡算法進行了改進,通過模仿人的大腦處理信號時的多層抽象機制來完成對數據的識別。

深度學習中的“deep”,指的是神經網絡多層結構

在傳統的模式識別應用中,基本處理流程是先對數據進行預處理,之後在預處理後的數據上進行特徵提取(Feature Extraction),然後利用這些特徵,採用各種算法如SVM,CRF等訓練出模型,並將測試數據的特徵作爲模型的輸入,輸入分類或標註的結果。在這個流程中,特徵提取是至關重要的步驟。特徵提取的好壞直接影響到模型分類的性能。而在實際應用中,設計合適的特徵是一項充滿挑戰的工作,以圖像爲例,目前常用的特徵還是少數的幾種,如SIFT、HOG等。而深度學習方法可以首先從原始數據中無監督地學習特徵,將學習到的特徵作爲之後各層的輸入,省去了人工設計特徵的步驟

參數學習策略

首先,逐層訓練模型參數,上一層的輸出作爲本層的輸入,經過本層的編碼器(激勵函數構成)產生輸出,調整本層的參數使得誤差最小,如此即可逐層訓練,每一層的學習過程都是無監督學習。最後可使用反向傳播等算法對模型參數進行微調,用監督學習去調整所有層。

常用模型或方法

  • AutoEncoder自動編碼器
    假設只有一個沒有類別的訓練集合x,可以使用自編碼神經網絡,用反向傳播算法來學習參數。
    首先用W 對輸入進行編碼,經過激活函數後,再用WT 進行解碼,從而使得h(x)x 。該過程可以看作是對輸入數據的壓縮編碼,將高維的原始數據用低維的向量表示,使壓縮後的低維向量能保留輸入數據的典型特徵,從而能夠較爲方便的恢復原始數據。需要注意的是:這裏增加了一個約束條件,即在對數據進行編碼和解碼時,使用的是同一個參數矩陣W 。該約束可看作是一種regularization,用於減少參數的個數,控制模型的複雜度。
    這裏寫圖片描述
  • Sparse Coding稀疏編碼
    1.training階段:給定一系列的樣本圖片[x1, x 2, …],我們需要學習得到一組基[Φ1, Φ2, …],也就是字典。
    稀疏編碼是k-means算法的變體,其訓練過程也差不多(EM算法的思想:如果要優化的目標函數包含兩個變量,如L(W, B),那麼我們可以先固定W,調整B使得L最小,然後再固定B,調整W使L最小,這樣迭代交替,不斷將L推向最小值。EM算法可以見我的博客:“從最大似然到EM算法淺解”)。
    訓練過程就是一個重複迭代的過程,按上面所說,我們交替的更改a和Φ使得下面這個目標函數最小。
    這裏寫圖片描述
    每次迭代分兩步:
    a)固定字典Φ[k],然後調整a[k],使得上式,即目標函數最小(即解LASSO問題)。
    b)然後固定住a [k],調整Φ [k],使得上式,即目標函數最小(即解凸QP問題)。
    不斷迭代,直至收斂。這樣就可以得到一組可以良好表示這一系列x的基,也就是字典。
    2.Coding階段:給定一個新的圖片x,由上面得到的字典,通過解一個LASSO問題得到稀疏向量a。這個稀疏向量就是這個輸入向量x的一個稀疏表達了。
    這裏寫圖片描述
    例如:
    這裏寫圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章