什麼是深度學習
深度學習是機器學習中的一個分支,是當今AI領域最熱門最前沿的研究內容。它考慮的是用non-linear multiple processing layers來學習數據的multiple levels features的抽象表徵用反向傳播BP算法對計算模型訓練,通過supervised或weakly supervised的特徵學習和分層特徵提取代替手工獲取特徵。
深度學習的應用
深度學習由於其不需要人工提取特徵,只需要大量labelled data進行訓練,從而在image, video, speech, text, audio等領域大放異彩。應用包含定位、識別、匹配、語音轉文本、電商中的商品推薦等。當然還有Google的AlphaGo。
深度學習的框架
現在深度學習的框架已經有很多,如深度神經網絡DNN、卷積神經網絡CNN、深度置信網絡DBN、遞歸神經網絡RNN和生成對抗網絡GAN等。其中以CNN和GAN受關注度最高,前者不但可以通過得到候選區域來實現定位,而且可以通過減少參數加快訓練速度;後者則是可以通過輸入label得到輸出數據(如image),從某種意義上相當於其它常用深度學習框架的逆過程。
CNN
卷積神經網絡(Convolutional Neural Network)是目前應用最廣泛的深度學習框架,其經典網絡模型包括LeNet, AlexNet [1], GoogleNet [2], VGG [3], ResNet [4]。
下面的四張圖就可以清楚的描述CNN的結構:(取自[5])
在Convolution中,可以看到一個batch有N張feature maps輸入,每張feature maps的size是寬爲W、高爲H、通道數爲C。對於每一個batch的數據,使用的都是相同的共M組C通道的卷積核filters,filter size是R x S。將每一組對應通道的filter和feature map卷積並相加得到E x F的一個通道的輸出feature map,M組filters就可以得到一個M通道的feature maps,N張輸入就可以得到N張M通道的輸出。卷積細節還有邊緣補零padding, 步長stride等
BP算法需要與最優化optimize算法結合使用才能根據error對網絡中的parameters進行update,目前效果比較好的最優化算法有Adagrad [6], AdagradDA [6] , Adadelta [7]和Adam [8]。
[1]: Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]. Advances in neural information processing systems. 2012: 1097-1105.
[2]: Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015: 1-9.
[3]: Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[4]: He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 770-778.
[5]: Sze V, Chen Y H, Yang T J, et al. Efficient processing of deep neural networks: A tutorial and survey[J]. arXiv preprint arXiv:1703.09039, 2017.
[6]: Duchi J, Hazan E, Singer Y. Adaptive subgradient methods for online learning and stochastic optimization[J]. Journal of Machine Learning Research, 2011, 12(Jul): 2121-2159.
[7]: Zeiler M D. ADADELTA: an adaptive learning rate method[J]. arXiv preprint arXiv:1212.5701, 2012.
[8]: Kingma D, Ba J. Adam: A method for stochastic optimization[J]. arXiv preprint arXiv:1412.6980, 2014.