機器學習_學習筆記系列(00):機器學習簡介
隨著科技發展,相信大家這幾年一定一直常聽到「機器學習」、「深度學習」和「人工智慧」這些詞吧
那這些詞又代表著什麼?還有他們之間的關聯性為何呢?
這裡我就以我的觀點和經驗來做解釋吧!
人工智慧(Artificial Intelligence)
那在這些詞裡面,大家最常聽到的一定是「人工智慧」,我們來看看wiki上的解釋:
AI指由人製造出來的機器所表現出來的智慧。通常人工智慧是指透過普通電腦程式來呈現人類智慧的技術。
從他的定義來看也不難理解,就是人工製造出的智慧,而這個智慧,以目前的技術來說大部分都是比人還弱的,像是我們常聽到的語音助理、自駕車、人臉辨識等等,都是屬於人工智慧的一種。而比人類強的智慧就是前幾年轟動全世界的alpha go,其甚至打敗了世界上最強的圍棋選手。
機器學習(Machine Learning)
至於機器學習是什麼,我們這裡引述IBM對於機器學習的定義:
Machine learning is a branch of artificial intelligence (AI) focused on building applications that learn from data and improve their accuracy over time without being programmed to do so.
從這裡可以看到,簡單來說指機器學習就是人工智慧這個學門的其中一個分支,也可以說是實現人工智慧的其中一個方法。而機器學習又可以細分成好幾個領域,這裡我就列幾個比較熱門且常聽到的
監督式學習(Supervised Learning)
監督式學習是機器學習的一個分支,其概念就是我們餵給電腦的數據是有經過標記的,而這裡標記的意思就是告訴電腦這個資料代表的什麼意思,像是這張圖片是貓、這句話的情緒是生氣等等。
經典的監督式學習模型像是,線性回歸(Linear Regression)、支撐向量機(Support Vector Machine)、決策樹(Decision Tree)、隨機森林(Random Forest)等等。
非監督式學習(Unsupervised Learning)
非監督式學習其也是機器學習的一個分支,其概念就是我們餵給電腦的資料是沒有任何標記的,所以在這種情況通常會用很多特殊的數學和統計分析技巧。
經典的非監督式學習模型像是,K平均演算法(KMean)、主成分分析(Principal Component Analysis)、多維標度(Multidimensional scaling)等等。
強化學習(Reinforcement learning)
強化學習也是機器學習的一個分支,意思就是電腦會隨著我們給它設定的環境做出動作,然後我們再根據電腦的表現,給予獎勵或逞罰,讓電腦慢慢進步學習,像是大家常看到的AI學跑步,一開始他連走路都不會,所以在訓練初期,你會看到他直接往前飛撲然後跌到,但是一次一次的嘗試後他就會知道怎麼走路,然後漸漸地改變肢體動作增加跑步速度。
經典的強化學習模型像是,蒙特卡洛學習(Monte-Carlo Learning)、時間差分學習(Temporal-Difference Learning)、Q學習(Q-Learning)
監督式VS非監度式VS強化式
在比較這三類機器學習方式,我們可以把他類比成學生準備考試一樣,學生個性類比成機器學習的方式,考古題類比成給電腦的資料,考古題答案類比成標記好的資料,最後期中期末考的分數就是機器學習的成效
一號同學:監督式學習
對於監督式學習,可以想像成這個學生就是一個被動且不怎麼聰明的人,在準備考試時,他一定要有考古題答案他才會寫最後的考試,假如你給他太少考古題,給他的考古題和考試內容相差很大、或是考古題答案是錯的,最後的考試他都會拿到很爛的分數。
二號同學:非監督式學習
而非監督式學習,可以想像他就是一個有點小聰明會猜題的學生,他會寫考古題,但是從不對答案,他就從考古題裡去猜期末期中的題型,所以這樣的結果就是,有時候他的分數會超級高,有時候他的分數會超級低,是一個非常不穩定的學生
三號同學:強化學習
最後是強化學習,可以想像他就是一個知錯能改的學生,他考試前看看考古題,也不會對答案,但是他會在每次期末期中考試過後,努力檢討自己哪裡有問題,所以他會一直不斷的進步。
所以可以看到綜合三種學習方式各有各的好壞之處,如果今天在標記資料足夠且資料完善的情況,要在短時間拿高分的方法,最好的人選就是第一位同學,但是很多情況就是,我們沒有標記的資料,但又要在短時間拿到高分,我們可能會先派第二位同學上去,不過以長時間來看的話,我們就會選第三位同學了。當然面對一些情況我們也會採取合作方式,像是先讓二號同學打頭陣,如果考得還不錯,就讓三號同學看看他哪裡錯了,下一輪再派三號同學上場。
深度學習(Deep Learning)
深度學習也是我們很常聽到的詞,其是主張利用類神經網絡進行機器學習,這裡的類神經網絡(Neural Networks)我們可以先把他理解成就是一種框架或方式。
所以沒錯!深度學習也是機器學習的一個分支,只是他和上述的監督式學習、非監督式學習、強化學習是有交集的
深度學習+監督式學習的例子有,卷積類神經網絡(Convolution Neural Network)、遞迴類神經網絡(Recurrent Neural Network)等等。
深度學習+非監度式學習的例子有,生成對抗網絡(Generative Adversarial Network)、自組織對映(Self-Organizing Map)等等
深度學習+強化學習的例子有,深度Q學習(Deep Q-Learning)、增強拓撲神經網絡進化式強化學習(NeuroEvolution of Augmenting Topologies for Reinforcement Learning) (PS 這個名字已經太炫炮了)
總結一下上述所提到的各種名詞解釋,把它畫成式意圖大概長這樣
那接下來呢?
其實在學習機器學習的過程你真的會發現,這個領域實在是太大了,除了上述所提到的還有很多很多分支,像是元學習(meta learning)、遷移式學習(Transfer Learning)、特徵學習(feature learning)等等。
此外也有許多額外需要修的知識基礎,像是最佳化(Optimization)、動態規劃(Dynamic Programming)、機率圖模型(Probability Graphical Model)、隨機過程(Stochastic Process)、數位訊號處理(Digital Signal Processing)、基因演算法(Genetic Algorithm)、時間序列分析(Time Series Analysis)等等。
而且在上述提到的也只是理論基礎,應用層面的更是多得不像話,像是電腦視覺(Computer Vision)、自然語言處理(Natural Language Processing)、語音辨識(Sound Recognition)、自駕車(Self-Driving Car)等等都是。
而且要實現這些理論和應用,我們又得學Python、R還有一堆數據分析和機器學習的框架,像是Numpy、Panda、Sci-Kit Learn、Keras、Tensorflow、PyTorch、Caffine、OpenCV、NLTK、GYM等等一大堆,而且還有很多的資料處理技巧,像是資料清洗、資料部屬、爬蟲、視覺化等等,甚至還需要用到雲端技術AWS、GCP、Azure。
結語
所以這一整套基礎下來,真的要學個好幾年阿~~~。而對於這麼多東西要學的領域來說,還真的有學校成立所謂的機器學習學系(Machine Learning Department),這間學校就是世界Computer Science五巨頭之一的卡內基麥隆大學(Carnegie Mellon University)。附註一下,有勇氣申請卡內基麥隆大學機器學習學系的人都已經是菁英中的菁英,況且他們的錄取率還是在大概4%左右,可見進去裡面的人都是什麼樣的怪物。
最後給想學機器學習的人一些建議,如果你是認真的想把理論基礎打好,那我建議你先把統計學、線性代數、微積分這三科還有英文學好,因為機器學習真的需要用到大量的分析技巧,而且大部分的數據和文獻都是英文,尤其未來想走自然語言處理得更是要把英文學好。
那在最後祝福大家學習順利吧!
作者:劉智皓
LinkedIn:CHIH-HAO LIU