iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
6

今天來談談深度學習跟傳統機器學習的比較,主要從 Data計算資源特徵萃取 等三個方向進行討論。

深度學習(Deep Learning)的成功主要是基於大量可用的數據以及強大的計算資源例如 GPU(Graphic Processing Units)。

首先從這句話來剖析:深度學習是需要大量數據的,就像需要大量魔力的聖杯。
https://ithelp.ithome.com.tw/upload/images/20181030/20112540K6gMhv0sP8.jpg

Fate 裡的聖杯。圖片來源:https://kknews.cc/comic/g29vmne.html

  • Data

    實際上,Data 數量是深度學習的推力也是侷限。這是由於在小數據集上,深度學習還取代不了傳統機器學習方法,例如 SVM、Naive Bayes classifier。有關 Data 數量級變化如何影響深度學習和傳統機器學習的消長,可參考下圖:
    https://ithelp.ithome.com.tw/upload/images/20181030/20112540zup5pkPmJm.png

    圖片來源:https://machinelearningmastery.com/what-is-deep-learning/

  • 計算資源

    我們先前有介紹過 CNNRNN,可以知道在深度學習中蘊含大量的矩陣運算,和傳統機器學習不同的是,深度學習需要龐大的計算資源,也因此在深度學習上大多要求要有好的 GPU,這種專為矩陣運算所設計的計算資源來支援。

    下圖是在 ImageNet 圖像分類競賽中,各團隊使用 GPU 的情形:
    https://ithelp.ithome.com.tw/upload/images/20181031/20112540uolrQHBFev.jpg

    圖片來源:https://www.nextplatform.com/2015/07/07/nvidia-ramps-up-gpu-deep-learning-performance/

  • 特徵萃取

    除了 Data 的因子之外,深度學習和傳統機器學習之間有關鍵的不同:
    https://ithelp.ithome.com.tw/upload/images/20181030/20112540vChikGIByl.png

    圖片來源:https://semiengineering.com/deep-learning-spreads/

    機器學習使用為特定任務開發的算法,通常需要基於人工經驗來萃取特徵;而深度學習是分層特徵學習,能夠從原始數據執行自動特徵提取,也稱為特徵學習(feature learning)。

    另外由上圖可以看出,傳統機器學習通常先把問題切分成幾塊,一個個解決後再重新組合起來。而深度學習是 end-to-end(端對端) 的方法,input 是原始數據,output 即是最終輸出結果。如果有可靠數據的話,這種做法可以給模型更多自動調整的空間,直接讓數據說話,且不需要人工介入處理。

不過深度學習也無須跟傳統機器學習切很開,它們是可以共同合作的。在實務上兩者合作的情況很多,例如深度學習可以當作特徵抽取(feature extraction)的角色,之後用傳統分類器進行分類;又或者在 Autoencoder 中,可以透過深度學習做降維的工作。這些都是很好的做法。

下篇就來講 Autoencoder 的原理與應用吧~


上一篇
[實戰系列] 使用 Keras 搭建一個 LSTM 魔法陣(模型)
下一篇
[魔法陣系列] AutoEncoder 之術式解析
系列文
英雄集結:深度學習的魔法使們31

尚未有邦友留言

立即登入留言