1. 程式人生 > >機器學習——深度學習(Deep Learning)

機器學習——深度學習(Deep Learning)

Deep Learning是機器學習中一個非常接近AI的領域,其動機在於建立、模擬人腦進行分析學習的神經網路,最近研究了機器學習中一些深度學習的相關知識,本文給出一些很有用的資料和心得。

Key Words:有監督學習與無監督學習,分類、迴歸,密度估計、聚類,深度學習,Sparse DBN,

1. 有監督學習和無監督學習

給定一組資料(input,target)為Z=(X,Y)。

有監督學習:最常見的是regression & classification

regression:Y是實數vector。迴歸問題,就是擬合(X,Y)的一條曲線,使得下式cost function L最小。

classification:Y是一個finite number,可以看做類標號。分類問題需要首先給定有label的資料訓練分類器,故屬於有監督學習過程。分類問題中,cost function L(X,Y)是X屬於類Y的概率的負對數。

,其中fi(X)=P(Y=i | X);

無監督學習:無監督學習的目的是學習一個function f,使它可以描述給定資料的位置分佈P(Z)。 包括兩種:density estimation & clustering.

density estimation就是密度估計,估計該資料在任意位置的分佈密度

clustering就是聚類,將Z聚集幾類(如K-Means),或者給出一個樣本屬於每一類的概率。由於不需要事先根據訓練資料去train聚類器,故屬於無監督學習。

PCA和很多deep learning演算法都屬於無監督學習。

   Depth 概念:depth: the length of the longest path from an input to an output.

   Deep Architecture 的三個特點:深度不足會出現問題;人腦具有一個深度結構(每深入一層進行一次abstraction,由lower-layer的features描述而成的feature構成,就是上篇中提到的feature hierarchy問題,而且該hierarchy是一個稀疏矩陣);認知過程逐層進行,逐步抽象

   3篇文章介紹Deep Belief Networks,作為DBN的breakthrough

3.Deep Learning Algorithm 的核心思想:

    把learning hierarchy 看做一個network,則

    ①無監督學習用於每一層網路的pre-train;

    ②每次用無監督學習只訓練一層,將其訓練結果作為其higher一層的輸入;

    ③用監督學習去調整所有層

這裡不負責任地理解下,舉個例子在Autoencoder中,無監督學習學的是feature,有監督學習用在fine-tuning. 比如每一個neural network 學出的hidden layer就是feature,作為下一次神經網路無監督學習的input……這樣一次次就學出了一個deep的網路,每一層都是上一次學習的hidden layer。再用softmax classifier去fine-tuning這個deep network的係數。


這三個點是Deep Learning Algorithm的精髓,我在上一篇文章中也有講到,其中第三部分:Learning Features Hierachy & Sparse DBN就講了如何運用Sparse DBN進行feature學習。

4. Deep Learning 經典閱讀材料:

闡述Deep learning主要思想的三篇文章:
06年後,大批deep learning文章湧現,感興趣的可以看下大牛Yoshua Bengio的綜

5. Deep Learning工具——Theano

下載相關資料並用gradient descent的方法進行學習。

學習了Theano的基本方法後,可以練習寫以下幾個演算法:

有監督學習:

無監督學習:


最後呢,推薦給大家基本ML的書籍:

關於Machine Learning更多的學習資料將繼續更新,敬請關注本部落格和新浪微博Sophia_qing

References: