機器學習是深度學習之母

dicksonjyl560101發表於2019-08-16

博主不才,研究深度學習有一段時間,主要專注CV領域。本科期間學習了機器學習的一些演算法,用SVM做的人臉識別的工作,之後又去中科院實習,用深度學習來做人臉識別。所以,從傳統演算法,到深度,這個過程,我是深深體會到的。單從CV領域,尤其是二維方面的工作,卷積神經網路取得的成果,讓我深深感到傳統演算法的無力。總的來說,深度學習演算法是近幾年機器學習革命般的成果。舉個例子,很明顯的對於傳統演算法很困難的LFW人臉資料集,現在已經被各家公司刷Acc都接近99.9了[1],基本宣佈該資料集的死刑。深度學習的火熱也引起國內外眾多CV領域的人進行創業。國內的商湯科技,圖森,face++,騰訊優圖,中科院下屬公司,等等哪一個沒有利用深度技術呢?Caffe,Mxnet , Tensorflow , Torch7,等深度學習框架都是近幾年火熱起來的,而前幾年熱門的svm以及框架libsvm最近的確暗淡了不少。那Paper方面更不用說了,2016 CVPR最佳論文就是何凱明的深度殘差網路[2]。

 

那麼先來回答這兩個問題。

 

“深度學習會替代傳統的機器學習演算法嗎?”

 

我認為會。是因為火嗎?肯定不是,是因為我相信這門技術,更接近人類腦思維。當然,這只是我的期待。很明顯的事實,雖然深度學習在監督學習領域,取得了卓越的發展,但是它並不是萬能的,比如百度翻譯對專業領域,以及長句的翻譯依然不如人意——百度的深度學習技術也算是頂尖的了。當然並不是很多領域都適合深度,一個是,不適合,比如大材小用,我只需要根據極少的樣本來解決的分類問題,比如,周志華《機器學習》上一直提到的西瓜判斷好壞瓜的問題,總共的屬性,大概10個,傳統的決策樹,和SVM都能做到很好,的確沒必要去用深度來做(當然,你可以嘗試下)。另外的是,做不了,舉個例子,就拿最近很火的 AlphaGo 來說,由於快速走子(fast rollout)要達到微秒級的響應速度,神經網路目前還做不到,因此 Google DeepMind 採用了邏輯斯諦迴歸(logistic regression)演算法。有機器學習背景的同學都知道,邏輯斯諦迴歸作為一種線性模型[3]。當然,我依然認為會。深度學習不是一成不變的,需要我們很多科研人員不斷的去改進和最佳化。雖然我一直都認為深度學習不太適合無監督,就如,Andrew Ng說:深度學習依然在unsupervised learning 上效果不如supervised。最近的關於無監督也有不少有影響力的paper,Lecun在Quora上提到的對抗神經網路(adversarial network),將其認為是最近幾年深度的一個突破,GAN[4],以及卷積網路的改進版DCGAN[5],透過深度網路以及對抗過程,無監督學習生成模型,產生的圖片基本接近自然圖片。而且,DCGAN將網路中的判別網路(discriminative model)用於影像的分類工作,在CIFAR-10幾乎取得了state of art 的效果。所以,深度學習也不是一成不變的,它也在成長,改變。所以,我還是說:相信它。

 

“傳統機器學習演算法,還有必要去學習嗎”

 

還需要爭論嗎?肯定是需要的啊。


機器學習是深度之母,你火了,能忘了你的母親嗎?

 

從兩個方面回答這個問題。

 

(1)深度學習的本質

 

從起源上說,感知器(Perceptron)演算法是deeping learning 的前身,然後從單層,到多層感知器,再到神經網路,最後到深度學習,無非是,神經網路演算法+一些trick=dl。所以,從起源上說,深度學習,就是機器學習的一個分支,深度學習的發展,也是機器學習的發展,深度學習的進步,也是機器學習的進步。從要解決的問題,無非是分類,迴歸問題,無非是生成模型,決策模型,這些都是都逃離不了機器學習的大的範疇,二者都離不開資料統計,最佳化演算法的問題,都會涉及目標函式,損失函式,偏導求解,引數初始化,資料預處理等等,都會遇到資料缺失,資料分佈不均,資料不均衡,訓練過擬合,欠擬合的問題。總的來說,本質是一樣的。

 

(2)深度學習與傳統演算法的結合

 

深度學習能成功得益於tricks的提出,而且很多trick的思想基本上都是源於傳統方法。舉個例如,CNN中的Pooling層,典型的降維思想,解決維度災難,利於訓練和最佳化。還有比如經典的dropout[6],BN[7],仔細想想,這些方面,思想尤其簡單,在傳統機器學習演算法中都是會想到的。更明顯的就是兩者結合,比如,強化學習[8]和深度學習的結合成深度強化學習[8]。在我閱讀的論文中,將SVM與CNN結合起來的論文相當多,比如,大牛湯曉鷗的論文—大規模的車型識別[9]只是將CNN作為一個特徵提取器,然後使用傳統的分類演算法,比如SVM,或者Bayesian演算法(發現,湯很喜歡,將CNN和傳統演算法結合起來)。DCGAN[5]同樣也是使用訓練好的判別模型,加上L2-SVM結合,來做測試集的分類的工作。一般情況下,基本上非end-to-end的演算法都是進行兩者的結合。最近比較火熱的detection的問題,R-CNN[10]也是吸取了傳統檢測演算法的“region proposal”的思想,然後將CNN用到檢測問題中,其中的候選框使用的“selective search”演算法,而且,在fast-rcnn[11]中,依然依賴該演算法。最後faster-rcnn[12]版本,才使用神經網路來尋找候選框,但是,其中在feature map中搜尋的過程,也是一種滑動視窗的方式。哈哈。所以,綜上所述,deep learning的發展,依賴傳統演算法的基礎。

 

最後,DL學的再好,沒有ML的基礎,也走不遠。做人,不能忘本!

 

引用
[1]
[2]Deep Residual learning for image Recognition
[3]知乎,作者:張馭宇 連結:

[4]Ian J. Goodfellow .Generative adversarial networks
[5]Unsupervised representation learning with deep convolutional generative adversarial networks.
[6]  Dropout: A Simple Way to Prevent Neural Networks from Overfitting
[7]Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
[8]
[9]Rich feature hierarchies for accurate object detection and semantic segmentation
[10]Fast R-CNN.ICCV 2015
[11]Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

---------------------

本文來自 張騫暉2 的CSDN 部落格 ,

全文地址請點選: https://blog.csdn.net/u013139259/article/details/52856466?utm_source=copy


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2653927/,如需轉載,請註明出處,否則將追究法律責任。

相關文章