您的位置:首頁>正文

機器學習——深度學習(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演算法都屬於無監督學習。

2. 深度學習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

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

06年後, 大批deep learning文章湧現, 感興趣的可以看下大牛Yoshua Bengio的綜述Learning deep architectures for {AI},不過本文很長, 很長……

5. Deep Learning工具—— Theano

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

有監督學習:

Logistic Regression - using Theano for something simple

Multilayer perceptron - introduction to layers

Deep Convolutional Network - a simplified version of LeNet5

無監督學習:

Auto Encoders, Denoising Autoencoders - description of autoencoders

Stacked Denoising Auto-Encoders - easy steps into unsupervised pre-training for deep nets

Restricted Boltzmann Machines - single layer generative RBM model

Deep Belief Networks - unsupervised generative pre-training of stacked RBMs followed by supervised fine-tuning

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

Chris Bishop, “Pattern Recognition and Machine Learning”, 2007

Simon Haykin, “Neural Networks: a Comprehensive Foundation”, 2009 (3rd edition)

Richard O. Duda, Peter E. Hart and David G. Stork, “Pattern Classification”, 2001 (2nd edition)

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示