文章

AI 第8天:什麼是機器學習?

機器學習(Machine Learning,簡稱 ML)是人工智慧的核心技術之一,通過從數據中學習模式,讓計算機能自動完成任務,而無需明確編程。本課程將帶你了解機器學習的基本概念、主要類型及其在現實中的應用。


課程目標

  1. 了解機器學習的基本概念與原理。
  2. 認識機器學習的三大類型:監督式學習、非監督式學習、強化學習。
  3. 瞭解機器學習在日常生活中的應用場景。

課程內容

1. 機器學習的定義

機器學習是一種通過數據訓練模型,讓計算機學會執行特定任務的方法。例如:

  • 根據歷史數據預測房價。
  • 分析用戶行為並推薦商品。

機器學習與傳統程式設計的區別

  • 傳統程式設計: 程式設計師明確定義規則並撰寫程式。
  • 機器學習: 給予數據與結果範例,讓模型學習並推導規則。

2. 機器學習的三大類型

(1) 監督式學習(Supervised Learning)

  • 特徵: 有標籤數據集,模型學習輸入與輸出的對應關係。
  • 應用: 預測、分類等。
  • 範例:
    • 根據房屋面積預測房價(回歸)。
    • 辨識圖片中的物品類型(分類)。
1
2
3
4
5
6
7
8
9
10
11
12
13
from sklearn.linear_model import LinearRegression
import numpy as np

# 簡單回歸範例
X = np.array([[50], [60], [70], [80], [90]])  # 面積(輸入)
y = np.array([150, 180, 210, 240, 270])      # 房價(輸出)

model = LinearRegression()
model.fit(X, y)

# 預測房價
predicted = model.predict([[75]])
print(f"預測房價: {predicted[0]}")

(2) 非監督式學習(Unsupervised Learning)

  • 特徵: 無標籤數據集,模型探索數據內部的結構與模式。
  • 應用: 分群(Clustering)、降維(Dimensionality Reduction)。
  • 範例:
    • 根據顧客購物行為分群。
    • 壓縮數據維度以便視覺化。
1
2
3
4
5
6
7
8
9
from sklearn.cluster import KMeans
import numpy as np

# 分群範例
data = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(data)

# 顯示分群結果
print("分群標籤:", kmeans.labels_)

(3) 強化學習(Reinforcement Learning)

  • 特徵: 透過試探與回饋,學習最優策略。
  • 應用: 自動駕駛、遊戲 AI、機器人控制。
  • 範例:
    • 自動駕駛車學習避開障礙物。
    • AI 玩遊戲學習最佳得分策略。

3. 機器學習的常見應用場景

  1. 推薦系統:
    • 依據用戶喜好推薦電影、音樂或購物產品(例如 Netflix、Spotify)。
  2. 語音辨識與自然語言處理:
    • 智慧語音助手(例如 Siri、Google Assistant)。
    • 文字翻譯與語言生成(例如 Google 翻譯)。
  3. 電腦視覺:
    • 臉部辨識(例如手機解鎖)。
    • 自動標記相片中的人物或物件。
  4. 醫療診斷:
    • 通過影像辨識疾病(例如腫瘤檢測)。
    • 分析基因數據進行精準醫療。

4. 機器學習的挑戰與局限

  1. 數據品質: 垃圾數據會導致模型表現不佳。
  2. 過擬合: 模型過度依賴訓練數據,無法泛化到新數據。
  3. 解釋性: 許多模型(例如深度學習)難以解釋其內部運作。

課後作業

  1. 搜集一組有趣的數據集(例如 Kaggle 上的數據),分析其可能適用於監督式或非監督式學習。
  2. 使用 Scikit-learn,實現一個監督式學習模型(例如房價預測),並測試模型表現。
  3. 思考並回答:
    • 機器學習如何改變你的日常生活?
    • 你認為機器學習目前的最大挑戰是什麼?
本文章以 CC BY 4.0 授權