【NLP】Day 10: 進入偉大航道!機器學習基礎知識:你需要知道的這些那些

「孩兒,你看清楚了沒有?」「看清楚了」
「都記得了沒有?」「已忘記了一小半。」
「現下怎樣了?」「已忘記了一大半。」
「好,我再使一遍。」
「孩兒,怎樣啦?」「還有三招沒忘記。」
「這我可全忘了,忘得乾乾淨淨的了。」
張無忌、張三丰《倚天屠龍記》

前面講了這麼多,終於要講模型了嗎?我們這十天一起度過的旅程,目的只有一個,就是將文本資料轉化成數值資料。因為機器學習模型沒有辦法透過文字資料進行學習,唯有將其轉成數值資料,模型才有辦法從這些數字中學習洞見。前面所學都是非常重要的基礎,我認為要打好這些基礎,再來學習後面的機器學習的模型才有意義。就像是武俠小說中,渾厚內力才能帶來強大武功,若沒有強大的內力,即便你會九陽神功、九陰真經、降龍十八掌,也只是空有華麗的外殼、空虛的內在;像是死神中,強大的個體都帶有很強的靈壓,若靈壓不夠強,即便你所擁有的是規則殺的能力,在強大的靈壓面前都是毫無用處的。

今天的文章,你可以帶走這些機器學習的基本知識:

  • 資料集&交叉驗證(Dataset & cross validation)
  • 分類指標(classification matrix)
  • 監督式學習&非監督式學習(supervised learning vs unsupervised learning)
  • 生成式模型 vs 判別式模型(generative model vs discriminative model)

資料集&交叉驗證

想像今天你有一份已經經過完善的前處理、以及正常的正規化,也就是可以直接丟進去模型的完整資料集。一般來說,我們會將資料集依照比例分成兩份:一份訓練資料集(training set)、一份測試資料集(test set),而這個比例有時候是8:2,有時候是7:3,依照個人配置會有所不同,沒有絕對的正確答案。首先,先給予機器學習模型訓練資料集,讓模型學習資料中的特徵,接著再給訓練好的模型進行考試,以模型預測測試資料集的目標資料(例如正負面評論),並將這些答案與原始資料的「正確答案」(Golden label)進行比對。

交叉驗證

若是碰到資料量較小的狀況,抑或是你的資料極度不平衡的情況,就要對資料進行交叉驗證。所謂的交叉驗證就是,除了前面所提到的訓練資料集、測試資料集、還會再多分出新的一部分的開發測試資料集。首先會將資料集分成k個,然後選其中一部分做為剛剛多分出來的開發測試資料集,並以另外k-1份的資料集作為訓練資料集,並計算準確率,接著再從那k份資料中選擇下一份資料作為開發測試資料集,直到所有的資料集都已經輪過後,再以這份模型去測試測試資料集。

分類指標

我們剛剛說到,模型預測之後,要與正確答案(Golden Label)進行比對。那麼該怎麼呈現這個比對結果,來決定一個模型的表現好壞呢?我們可以先來看以下這張圖:

假如模型預測A文本是正面評價,與正確答案相符,那麼我們就會將其納入true positive;假如模型預測B文本是負面評價,正確答案也標記為負面評價,那麼就屬於true negative;假如模型預測C文本是正面評價,但正確答案卻是負面評價,那麼就屬於false positive;若模型判斷D文本是負面評價,但事實上卻是正面評價時,就屬於false negative。

接著就會產生了以下四種衡量的方式:

在做二元分類時,可以透過以上的表格來衡量模型,這矩陣也稱為confusion matrix。而我們可以這麼理解這些指標:

  • 準確率(accuracy):整體預測的正確率
  • 召回率(recall):真正對的答案內,有多少比例是機器模型答對的
  • 精準率(precision):機器模型認為正確的答案內,有多少比例是真正答對的
  • F1-Score:所有衡量標準的調和平均

監督式學習 vs 非監督式學習

  • 監督式學習模型
    監督式學習就是將已經做好完整標記的資料丟進去機器學習模型中,模型可以邊學習,邊以標記答案對比誤差,並一步步修正模型。 由於需要標記資料,所以前置工程往往需要大量的人工標記,耗費人力較高,但相對於非監督式學習模型來說,監督式學習的解釋力也比較高(想想昨天所說的,解釋力為何重要)。常見的模型種類像是:貝氏分類器、羅吉斯回歸、決策樹。
  • 非監督式學習模型
    非監督式學習就是模型透過完全沒有標記的資料,依照關聯性進行歸類、找出潛在規則與模式,以及形成集群。 這種學習方式雖然不需要大量地標記資料,但卻可能找出從人類的角度來看關聯性極低的不重要特徵,使得分類變得毫無意義。

生成模型 vs 判別模型

我們可以透過這個比喻來理解何謂生成式模型,何謂判別式模型。假如說我們今天需要模型判別圖片中的動物是貓貓還是狗狗,生成式模型會先透過訓練資料的照片學習狗與貓的 整體大致長相 ,接著在測試資料的照片判斷圖中的動物比較接近貓貓還是狗狗,最後再下判斷。判別式模型則是透過照片學習貓貓有哪些特徵、狗狗有哪些特徵,例如貓貓有長鬍鬚,狗狗較常吐舌頭,接著再在新圖片中觀察是否有這些觀察到的特徵。

所以我們大致上可以這麼解釋:

  • 生成式模型
  1. 先學習訓練資料中整體文本的大致分布方式,並以機率的方式呈現,找出文本資料的機率分佈。
  2. 給予新文本,並判斷新文本是否有類似分佈
  3. 給予分類
  • 判別式模型
  1. 從訓練文本資料中觀察不同類別的特徵
  2. 從測試文本中觀察是否有相對應的特徵
  3. 給予分類

好,大致上就是這樣,我們接下來就可以進入機器學習的領域啦!剩下二十天,一起加油!