iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0
Google Developers Machine Learning

Machine Learning with TensorFlow on Google Cloud Platform系列 第 7

鐵人賽Day7 - Launching into Machine Learning (1/4)

進入 Machine Learning

主旨:了解在ML中所會提到的術語以及重要知識

ML中的重要概念

在這個子系列課程,進入ML中,我們將會學到:

  • 不同種類的ML模型,以及深度學習(Deep learning)模型為什麼在近年如此受歡迎
  • 使用損失函數(Loss function)來優化(Optimize)模型,使用性能指標(Performance metrics)來評估(Evaluate)模型
  • 減少在訓練模型時所會犯的錯誤和遇到的問題
  • 建立可重複訓練、評估、測試的資料

實際的ML

在這個部分,我們將可以學到:

  • 辨別不同種類的ML問題
  • 使用ML方法時該注意的技巧
  • 為什麼深度學習(DL)在現在這麼受歡迎

監督式學習 v.s 非監督式學習

Day3的文章內我們有稍微提到一些,一般來說ML可以分為兩類型的學習模式,監督式學習(Supervised learning)非監督式學習(Unsupervised learning)

  • 監督式學習:學習的過程包含了例子和標籤(examples and labels),可以想像是有給定一輸入x和對應的答案y,有答案影響學習是監督式學習的關鍵,迴歸和分類問題都屬於監督式學習。
    • 迴歸(Regression):給定輸入x,預測數值y,y為一實數,例如說商品價格、客戶數量等。
    • 分類(Classification):給定輸入x,預測種類y,y為一分類,例如說性別、是否為垃圾郵件等。
  • 非監督式學習:學習的過程只包含了例子,並沒有標籤分群問題就算是非監督式學習的一種。
    • 分群(Clustering):給定輸入x,要你將這些x分群,例如說給你所有人聽的音樂,要你將他們聽的音樂分成幾類。

ML的歷史

現在深度學習如此熱門,其實是由早期ML一直演變、進步所造成的,這段我們來回顧一下ML的歷史。

  1. 線性迴歸(Linear Regression):最一開始是在西元1805年,用來預測植物和豌豆的生長情形,在當時計算都必須要靠手算,這也是使用線性迴歸的特點,權重w可以算出一個解析解(analytical solution),但是求解析解在資料很多的時後會造成很大的問題,反矩陣求不出來或者太花時間與計算資源,這時候就需要借助梯度下降(Gradient descent) 的方式,來幫助我們學習模型的權重,梯度下降的部分會在後面詳細介紹。

  1. 感知器(Perceptron):感測器是神經網路(Neural networks)的基本單位,約在1940年代出現的,其設計靈感來自於人類的神經元傳導,將收到的輸入做線性加總後,經過激活函數(Activation function),輸出預測值,感知器可用來學習XOR的邏輯運算。

XOR邏輯運算(Y = X1 XOR X2):

X1 X2 Y
0 0 0
0 1 1
1 0 1
1 1 0
  1. 神經網路(Neural networks):多層的感知器串接,就可以變成神經網路(故有時又稱為 Multi-layer perceptron),神經網路約在1960年代出現,當時受限於計算資源,激活函數都設定為可微(differentiable),造成學習速度非常緩慢,此外,當時的資料量仍非常小,這些原因都造成那時的神經網路不能發揮其特長。然而隨著激活函數的發展,出現了Rectified Linear Unit (ReLU) 後,讓學習速度加快很多,下面列出常用的激活函數,若想知道更多激活函數還有它們的數學形式可以參考這裡
    • ReLU
    • Sigmoid (常用來表示機率預測值)
    • Tanh

  1. 決策樹(Decision trees):決策樹約在1980年代出現,用來建立線性的決策邊界,易於訓練且對人類來說可以直觀的理解(對人類來說,可解釋性是很重要的,這也是神經網路最被詬病的地方,因為它就像是一個黑盒子,裡面做了什麼我們並不太清楚,只知道他能給我們很準確的預測答案,這可能也是因為人類對未知東西總是有莫名的恐懼吧哈哈),下面是一個決策樹用在預測鐵達尼號乘客生還的例子,在決策樹模型中,每個節點(Node) 其實代表著一個線性分類器(Linear classifer),針對單一個特性(Feature),如性別、年紀等等進行分類。

  1. 核方法(Kernel methods):核方法約在1990年代出現,最具代表性的就是支援向量機(Support Vector Machine, SVM),SVM的概念就是找到最大的邊界(Maximized margin) 可以將資料分開,分開資料的邊界被一個向量所支援。但若資料不是線性可分(Linear seperable)的話呢?這時候就是核方法出場的時候了,核轉變可以將輸入資料空間轉為更高維度的特徵,這樣就可以把問題變成在高維度空間中,尋找一個超平面(Hyper-plane) 來把它們分開來,一般常用的核是Radial Basis Function kernel (RBF),詳細的數學函示轉換可以參考這裡

  1. 隨機森林(Random forests):隨機森林是由很多決策樹所構成,約在2000年出現,這個方法就算是在現在都能提供非常好的預測,所以在使用ML方法的時候,這是其中一種可以優先考慮的方法,其實很多ML的比賽玩家,常用到一種套件XGBoost,就是根基於隨機森林方法的延伸,而使用許多決策樹集合而成的模型(Ensemble model),也是讓隨機森林模型表現優異的原因之一,更詳細的介紹可以參考這裡

  2. 現代的神經網路:受惠於計算能力的提升、大量資料的累積,現代的神經網路可以建構得非常深、非常複雜來解決問題,以ImageNet舉辦的圖形辨識比賽來說,隨著深度神經網路的發展,在2015年的時候,深度學習模型的表現已經超越人類了。因此,在小資料學習的領域還沒有突破性的進展前,收集資料,大量的資料,將有助於建構複雜的模型來解決複雜的問題。


今天介紹了實際的ML和ML的歷史,明天我們將介紹關於模型優化 “Optimization”。


上一篇
鐵人賽Day6 - How Google does Machine Learning (5/5)
下一篇
鐵人賽Day8 - Launching into Machine Learning (2/4)
系列文
Machine Learning with TensorFlow on Google Cloud Platform30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言