使用機器學習解決問題的五步驟:定義問題

source: Pixabay

前言 & 概述

在前一次的課程中,我們了解機器學習模型、模型訓練以及模型推論的概念。我們也了解傳統軟體開發與機器學習技術的差別,透過機器學習可以解決生活中難度較高的問題。

今天的文章中,將會介紹使用機器學習來解決問題時,所經過的五個步驟。無論是什麼問題、模型或是訓練方式,這五個步驟通常是必經之路。如果心中已經有這五個步驟的雛形,透過機器學習解決問題時也比較不會迷失方向!

機器學習五步驟

machine learning in five steps

機器學習解決問題的五個步驟

如同上方的圖片所示,透過機器學習解決問題的五步驟,分別為:

  1. 定義問題 (Define Problem)
  2. 建立資料集 (Build Dataset)
  3. 訓練模型 (Train Model)
  4. 評估模型 (Evaluate Model)
  5. 使用模型 (Use Model)

使用機器學習解決問題的過程中,不外乎是重複經歷了這五個步驟。在接下來的文章中,我們將會深入介紹五個步驟的意義。

步驟 1 : 定義問題

define problem in machine learning

機器學習解決問題的第一步:定義問題

以字面上的意思而言,「定義問題」就是了解想要解決的是什麼問題。在此步驟中,我們必須盡可能的做到兩個目標:

  • 定義更具體的問題

舉例來說,如果我們正在進行房地產投資,並希望能夠擁有好的報酬。我們可能會問:「怎樣才能在房地產投資中獲利?」。然而,這樣的問題實在太廣泛,會出現非常多的解決方法,讓我們不知如何是好。因此,我們可以將問題縮得更具體。我們希望在房地產的投資中獲利,也就是我們希望能夠以低於房屋實際價值的價格買進這間房屋。因此,我們的問題變成:「如何預測房屋的價值?」。當我們將問題定義的更具體,就更清楚該使用哪一種機器學習演算法來解決問題。

  • 辨識問題屬於機器學習中的什麼任務

我們在第一篇文章中提過機器學習的演算法可以分成三類:監督式學習 (Supervised Learning)、非監督式學習 (Unsupervised Learning) 與強化學習 (Reinfoecement LEarning)。每一種學習方法都有擅長解決的任務類型,在今天的文章中著重在監督式學習與非監督式學習適合解決的任務內容。

監督式 vs 非監督式

supervised learning vs unsupervised learning

機器學習中監督式學習與非監督式學習的差異

在「什麼是機器學習」的文章中,我們介紹了「監督式」與「非監督式」學習的關鍵差異:有沒有監督者在電腦旁邊監督它學習。當電腦「答錯」時,監督者會告訴電腦「正確答案」。換句話說,也就是有沒有準備資料的標籤 (Label);所謂的標籤,就是這個資料對應到的答案。

如果每一筆資料都有對應的標籤為監督式學習;相反的,若沒有對應的標籤則為非監督式學習。

監督式學習的任務

在「房價預測」的例子中,我們希望輸入「坪數」到模型中,模型能夠輸出相對的「價格」。在我們的訓練資料中,包含了非常多的樣本 (Sample)。每一個樣本都代表「一間房子」,包含這間房子的坪數實際價格

樣本:(坪數、實際價格)

在監督式學習的過訓練程中,針對每一個樣本,進行四個步驟:

  • 輸入坪數到模型中
  • 模型輸出價格
  • 比較模型輸出的價格與實際價格
  • 調整模型的參數使其輸出更接近於實際

因此,樣本中實際價格就是標籤,代表該樣本的正確答案。此外,因為此標籤為「數值型」,所以由模型預測一個數值的任務又稱為「回歸」(Regression)

當然也有「非數值型」標籤的例子。例如,「類別型」標籤。我們試著想像一個情境,假如我們希望訓練出一個模型,輸入「人的基本資訊」後,模型可以輸出這個人的「性別」。此時,每一個樣本都是代表一個人,記錄了這個人的資訊。例如:身高、體重、年齡、年級、性別。

樣本:(身高、體重、年齡、年級、性別)

在此情境下,「性別」成為每個樣本的標籤,也就是每個樣本的正確答案。性別可能為「男生」、「女生」、「其餘」。此時的標籤為「類別型」標籤。由模型預測一個類別的任務又稱為「分類」(Classification)

非監督式學習的任務

在非監督式學習的任務中,我們準備的資料中則不包含「標籤」。我們再以「房價預測」的例子來理解非監督式學習的概念。此時,我們並不是希望模型預測每一間房子的實際價格,而是希望模型將一大堆房子的樣本進行「分群」。也就是說,我們手上有一大堆的樣本,每個樣本都代表一間房子,記錄了該房子的很多資訊。例如:坪數、屋齡、房間數量、浴室數量、目前售價,等等。

樣本:(坪數、屋齡、房間數量、浴室數量、目前售價)

我們希望模型可以將這些樣本進行分群,也就是賦予每個樣本一個類別。模型在分群的過程中,必須學習了解樣本與樣本之間的關係,將相似度較高的樣本歸類為同一群。在這過程中,我們並沒有提供標籤 (正確答案) 給每一個樣本,而是由模型自己學習分出最好的群集。

「分群」(Clustering) 為非監督式學習中最基本也是最常見的任務!

結語

task in machine learning

機器學習中任務的簡單分類

 

在本篇文章中,我們認識了使用機器學習技術解決問題時,必須經過的五個步驟。並深入的介紹第一個步驟:「定義問題」的概念。我們也了解到監督式學習中包含了「回歸」與「分類」的任務;非監督式學習則包含「分群」這項任務。在下一篇文章中,我們將會介紹機器學習流程的第二個步驟:「建立資料集」。