from:http://blog.csdn.net/abcjennifer/article/details/7826917php
Deep Learning是機器學習中一個很是接近AI的領域,其動機在於創建、模擬人腦進行分析學習的神經網絡,最近研究了機器學習中一些深度學習的相關知識,本文給出一些頗有用的資料和心得。html
Key Words:有監督學習與無監督學習,分類、迴歸,密度估計、聚類,深度學習,Sparse DBN,web
1. 有監督學習和無監督學習算法
給定一組數據(input,target)爲Z=(X,Y)。
網絡
有監督學習:最多見的是regression & classification。機器學習
regression:Y是實數vector。迴歸問題,就是擬合(X,Y)的一條曲線,使得下式cost function L最小。ide
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.google
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 經典閱讀材料:
- The monograph or review paper Learning Deep Architectures for AI (Foundations & Trends in Machine Learning, 2009).
- The ICML 2009 Workshop on Learning Feature Hierarchies webpage has a list of references.
- The LISA public wiki has a reading list and a bibliography.
- Geoff Hinton has readings from last year’s NIPS tutorial.
闡述Deep learning主要思想的三篇文章:
- Hinton, G. E., Osindero, S. and Teh, Y., A fast learning algorithm for deep belief netsNeural Computation 18:1527-1554, 2006
- Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle, Greedy Layer-Wise Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007<比較了RBM和Auto-encoder>
- Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra and Yann LeCun Efficient Learning of Sparse Representations with an Energy-Based Model, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press, 2007<將稀疏自編碼用於迴旋結構(convolutional architecture)>
06年後,大批deep learning文章涌現,感興趣的能夠看下大牛Yoshua Bengio的綜述Learning deep architectures for {AI},不過本文很長,很長……
5. Deep Learning工具—— Theano
Theano是deep learning的Python庫,要求首先熟悉Python語言和numpy,建議讀者先看Theano basic tutorial,而後按照Getting Started 下載相關數據並用gradient descent的方法進行學習。
學習了Theano的基本方法後,能夠練習寫如下幾個算法:
有監督學習:
無監督學習:
最後呢,推薦給你們基本ML的書籍:
關於Machine Learning更多的學習資料將繼續更新,敬請關注本博客和新浪微博Sophia_qing。
References: