機器學習破冰之旅(1) — 介紹篇

Sharon Peng
9 min readSep 23, 2021

--

之前就有陸陸續續接觸過,但對於一些概念始終很模糊,果然還是要打打鍵盤,把一些東西紀錄下來,方便自己理解,也方便日後查看,更希望能幫助有相同苦惱的夥伴~~

Outline:

  • 機器學習的種類(共三類)
  • 各類學習的應用
  • 機器學習,專有名詞介紹(重點!!)
  • 基本建構一個機器學習,所需的步驟(概覽圖)

機器學習的種類

總共有三類:

  • 監督式學習(Supervised Learning)
  • 非監督式學習(Unsupervised Learning)
  • 強化學習(Reinforcement Learning)

這些種類,可以想像成指導學生(Alice),可以有什麼樣的方式。

監督式學習(Supervised Learning):準備很多參考書,也準備好解答。要 Alice一邊看解答一邊解題。

非監督式學習(Unsupervised Learning):直接把 Alice丟到國外,並且在過程中,不給予任何的資源與協助,讓 Alice自己在那個環境中,找到生存方式。

強化學習(Reinforcement Learning):在獎勵與懲罰間,取得一個最佳的平衡。(範例較繁雜,放到下方應用部分再多做說明)

各類機器學習的應用

監督式學習的應用:

大多應用於:分類問題(Classification)、迴歸問題(Regression)

以分類問題(Classification)範例:

訓練神經元來辨別,是否為垃圾郵件。例如:目前手邊有許多垃圾郵件(spam),並且也有些整理過且標註過屬於垃圾郵件(Labeled: 1)的資料,另外也有整理屬於非垃圾郵件(Labeled: 0)的資料。像這類型的有已知答案的問題,就非常適合「監督式學習」來實作。

圖源

非監督式學習的應用:

使用非監督式學習的情況,大多是機器要去摸索「資料中有意義的結構、資訊」等等,而在訓練的過程中,沒有現成的正確資料會跟機器說目前評估的結果是否正確,需要機器自己去尋找、歸類。

  1. 分群(Clustering):在一堆資料之間,找到哪些資料比較相近。並將他們集中在某一塊(如下圖)。提到分群,一開始幾乎會先提到K-means演算法。(篇幅有限,這邊就不多做說明,有興趣的讀者可以找來看看,算是一項挺容易了解的演算法。)
圖源

2. 降低維度(Dimensionality reduction):在維基百科中,提到降低維度是「特徵擷取」的一項步驟。因此自己在理解的時候,喜歡將降低維度想成「特徵擷取」的概念。如果想要維持原本的資料應有的特性,然後又想將他的維度縮小(或說是把資料變少),此項概念就類似於,把資料中最精華最精華的部分提取出來就好,不重要的資料就算了,這樣一來就能讓整個資料變少了(也就是維度縮小)。

圖源

強化式學習的應用:

在第一次看到這個,老實說看起來跟監督式學習沒什麼兩樣,但在第二次看的時候,好像有那麼的不同?

強化學習想要解決什麼樣的問題?

Ans: 有「互動關係性」的問題。

強化學習說明:

強化學習的目的是建立出一個Agent,而這個Agent會有行為(Action),而行為的依據則會透過environment去做調整。

概念:

首先,Agent可能會做出某些行為,而 environment會為 Agent這項行為打一個分數(reward)。

再來,這個 Agent會不斷嘗試許多不同的行為(Try and error),而 environment也會持續為 Agent的每個行為做評分。最後,Agent會學習到,什麼樣的行為可以使 environment給的分數較高。進而學習那些行為。

如果還看不懂沒關係,請看下方範例:

以上面學生 Alice來舉例好了。 Alice很喜歡寫作,他想要參加全國作文比賽,於是 Alice請了曾經擔任全國作文比賽的評審,作為他的老師(Amy)。

Alice給自己三個月的訓練時間,這三個月Alice每天會寫一堆作文,而老師(Amy)則會幫他修改作文並「給予評分」,但是老師不會和 Alice解釋,分數是怎麼來的(為什麽他得到這項分數),Alice需要自己去察覺。

Alice得到評分後,會不斷的觀察,老師(Amy)喜歡什麼樣的文句、構造等等,進而學習那些文章的結構。

最後,經過三個月的訓練後,Alice將會學習到評審們都喜歡的文章。

用強化學習來說可以變成:

Agent → 學生(Alice)

Environment → 老師(Amy)

Reward→ 老師給的寫作分數

另外,強化學習最經典的代表,絕對不能不提到棋盤遊戲。

Agent →下棋機器人

Environment → 目前棋盤的局勢(哪一方居於優勢、劣勢)

Action → 符合規則的棋步

Reward → 結果「贏」或「輸」

State → 每下完一步後的狀態。(回傳給 Agent這步棋下得如何,好還是不好)

Reward和State都是給機器反饋(Feedback)的功能。State偏向「小部分結果」的好與壞。Reward則偏向「整體結果」的好與壞。

以下棋為例:

State: 在下完某一步棋後,是否快要被「將軍」。

Reward: 整場比賽結束後結果贏或輸。

如果機器能透過強化學習的訓練方式,不停的下棋,持續累積經驗,知道棋步怎麼走,最容易獲勝。最後,或許就可以打造出向AlphaGo那樣的機器人也說不定呢~~

專有名詞、術語介紹

首先先介紹資料是如何呈現

— Dataset (資料集)

Definition : A collection of data examples and their attributes.

簡單來說會「表格」來存資料,用Excel的表格來想像即可。

Samples(Examples): 每一筆資料,其他的同義詞包括 object, instance, entity, record…

**在機器/深度學習中,百家爭鳴,如果去看其他網頁中,使用的單詞可能不太一樣,所以這邊也列出其他說詞**

Attribute: 資料所擁有的特徵,其他同義詞包括 Features, variable, characteristic, dimension, field…。

基本相關術語

  • Training Samples(Examples):準備要處理的資料(請參照👆圖),

(注意: 請不要跟Train Data或Test Data混淆,這邊Training Samples泛指手邊所有的資料。)

  • Training(v.):訓練Model以符合本次目標之需求。(Model_fitting)
  • Attributes 通常用 x表示:已整理過的資料,通常以matrix的形式呈現。

以上表範例,會建立出150 x 2 matrix

  • Target 通常用 y表示:代表資料的結果。

因為電腦看不懂cat or dog,所以需要用-1, 1為代號。建立出150 x 1 matrix

  • Loss function / Cost function / Error function(損失函數):計算正確答案與結果之間的誤差函式。

建立一個模型,所需要的步驟:

先有個基本的概念,之後再進行說明時,會更加清楚每一項步驟的含義。

說明範例:

目的:想要設計出一個模型,透過輸入長度與重量,就可以判斷是貓還是狗。

以下會簡單介紹,每個步驟。

Preprocessing (讓資料更容易被機器看懂)

Train Dataset, Test Dataset

先將資料拆成兩個部分,方便日後,作為模型準確率的評估與否

如果把整個資料都拿進去訓練,沒有驗證的資料,日後會無法評估建立出的模型是否正確,因為沒有其他附有正確解答的資料,可以當作模型正確的根據。

Feature Extraction and Scaling, Dimensionality Reduction

以剛剛提到 cat, dog的資料來說明,

— 特徵擷取與縮放(Feature Extraction and Scaling):把全部的資料縮放到一定的區間[0, 1],之後訓練階段時,會有更好的效果。

— 降低維度(Dimensionality Reduction):將資料縮放到一定區間時,某些資料會呈現高度相關性。而降低維度,即為將那些特徵值壓縮到低維度。(之後的文章,會再慢慢做解釋~~)

Learning 階段: (如何讓機器學習到資料與答案的關係)

超參數的調整:需要調整Algorithm的參數(這個在機器/深度學習中是一門大大大學問),什麼樣的參數,什麼樣的參數使得訓練效果最佳,什麼樣的參數使預測結果會更好等等。

Cross-validation:怎麼知道哪個 Model所訓練的效果最好。

Evaluation Models 階段:(訓練好的機器對未知數據的可行度)

利用 Test Dataset評估,訓練好的 model對於未知數據的表現程度。

Prediction階段:(機器正式上場!機器對新資料的預測結果)

輸入新的資料(某貓某狗的長度跟重量),讓訓練好的 Model來預測它的結果。

基礎的介紹就到這邊,有很多新的名詞需要吸收,筆者在初學時期,查了好多資料但怎麼也不了解,果然還是需要時間的累積和耐心才是。希望大家看到這篇也可以更了解這些名詞所代表的含義。

如果文章有哪邊出錯,還請各位不吝指教。

那我們就下次再見囉~~

--

--