歡迎來到人工智能的世界!

你好!今天,我們要深入探討 H2 電腦科學(Computing)旅程中最令人興奮的章節之一:人工智能 (Artificial Intelligence, AI)。你可能每天都在與 AI 互動——無論是手機的人臉解鎖、Netflix 為你推薦感興趣的影集,還是聊天機器人回答你的問題。在本章中,我們將揭開這些「智能」系統的運作原理。如果起初覺得像科幻小說也不用擔心,我們會一步一步為你拆解!


1. 甚麼是人工智能 (AI)?

人工智能 (Artificial Intelligence) 的核心,是指電腦系統執行原本需要人類智能才能處理的複雜任務的能力。

要將一個系統稱為「AI」,需具備以下兩點:

  1. 自主性 (Autonomy): 它可以在無須人類持續指導的情況下執行任務。
  2. 學習能力 (Learning): 它能隨着數據累積而改善其表現

AI 任務的現實例子

課程大綱強調了幾個 AI 非常擅長的任務:

  • 人臉識別: 解鎖你的智能手機。
  • 語音識別: Siri 或 Alexa 理解你的指令。
  • 影像分類: Google 相簿識別相簿中的「狗」與「貓」。
  • 垃圾郵件過濾: 電子郵件收件箱自動偵測「垃圾」郵件。
  • 棋類遊戲: 如 AlphaGo 等 AI 在桌上遊戲中擊敗世界冠軍。
  • 文字生成: AI 撰寫故事、電郵,甚至編寫程式碼。
  • 影像生成: 根據文字提示創作逼真的藝術作品或相片。

重點總結: AI 不僅僅是一台「快速計算機」;它是一個從數據中學習模式,並從中自行作出決策的系統。


2. 機器學習 (ML) 與傳統程式編寫的區別

機器學習 (Machine Learning, ML) 是實現 AI 的其中一種特定技術。為了理解它,讓我們將其與我們平時編寫程式的方式作對比。

傳統程式編寫 (Traditional Programming)

在傳統程式編寫中,由你(人類)寫下一套嚴格的規則 (Rules)。電腦接收數據 (Data),嚴格遵守你設定的規則,然後得出輸出 (Output)

類比:依照食譜烹飪。如果食譜寫著「加入 2 顆雞蛋」,電腦就會加入 2 顆雞蛋。如果沒有雞蛋,電腦就會因為不知道該怎麼辦而當機!

機器學習 (Machine Learning)

在機器學習中,我們給電腦數據和理想的答案(輸出)。電腦隨後利用演算法自行找出其中的規則

類比:嬰兒學習甚麼是「椅子」。你不會給嬰兒一張測量清單,而是讓他們看 50 張不同的椅子,直到他們的大腦識別出這些物體的共同規律。

快速檢閱:

  • 傳統編程: 數據 + 規則 \(\rightarrow\) 輸出
  • 機器學習: 數據 + 輸出 \(\rightarrow\) 規則

3. 兩大學習類型

本課程主要探討兩種機器學習方式:監督式學習 (Supervised Learning)非監督式學習 (Unsupervised Learning)

A. 監督式學習 (Supervised Learning)

監督式學習中,電腦會使用「已標記 (labeled)」的數據集進行訓練。這意味着每一筆數據都附帶正確答案(標籤)。其目標是讓電腦學會數據與標籤之間的對應關係。

例子:K-近鄰演算法 (K-Nearest Neighbours, KNN)

想像你有一張紅果與綠果的地圖。如果你找到一顆新的水果,KNN 會觀察與它最接近的 \( k \) 顆水果。如果大多數「鄰居」是紅色的,電腦就會將新水果標記為紅色。

B. 非監督式學習 (Unsupervised Learning)

非監督式學習中,電腦接收的是沒有標籤的數據。它必須自行找出數據中隱藏的模式或結構。

例子:K-平均演算法 (K-Means Clustering)

想像你有一堆混亂的 LEGO 積木,你要求電腦將它們分成 3 堆。電腦可能會根據形狀或顏色進行分組,因為它注意到這些積木看起來相似,即使你從未定義過甚麼是「方形」或「藍色」。

記憶小撇步:

Supervised(監督式) = Someone(有人)告訴它答案。
Unsupervised(非監督式) = Unknown labels(未知標籤);自行尋找分組。


4. 機器學習工作流程的 7 個步驟

當你想要使用 ML 解決問題時,需要遵循一個標準流程。如果這看起來很冗長別擔心,這就像做科學實驗一樣!

  1. 數據收集 (Gathering Data): 盡可能收集相關資訊。
  2. 數據準備 (Preparing Data): 清理數據(移除錯誤)並調整格式。
  3. 選擇模型 (Choosing a Model): 決定使用哪種演算法(例如 KNN 或 K-Means)。
  4. 訓練 (Training): 將數據輸入模型,讓它學習模式。
  5. 評估 (Evaluating): 在模型未見過的數據上進行測試,檢查其準確性。
  6. 參數調整 (Tuning Parameters): 微調模型設置,以提升其表現。
  7. 進行預測 (Making Predictions): 使用完成訓練的模型來處理現實世界中的新數據。

重點總結: ML 中大部分的工作其實在於收集準備數據。如果你給電腦「垃圾」數據,你就會得到「垃圾」預測結果!


5. 在 Python 中實作 ML (sklearn)

在實作課程中,你可能會使用 sklearn (scikit-learn) 函式庫。以下是參考指南中最重要、必須記住的部分:

對於監督式學習 (KNN):

使用 sklearn.neighbors 模組。你可以使用 KNeighborsClassifier() 建立分類器。
兩個最重要的方法是:

  • .fit(X, y): 這是「訓練」步驟。\( X \) 是你的數據,\( y \) 是標籤。
  • .predict(X_new): 這是針對新數據的「預測」步驟。

對於非監督式學習 (K-Means):

使用 sklearn.cluster 模組。你可以使用 KMeans() 建立模型。
由於沒有標籤 (\( y \)),你只需要使用:

  • .fit(X): 模型觀察數據 \( X \) 並找出叢集 (clusters/分組)。
  • .cluster_centers_: 這個屬性會顯示每個分組的「中心點」。

測試你的模型:

使用 sklearn.model_selection 模組中的 train_test_split()。這能幫助你將數據分為兩組:訓練集和測試集,以確保你的 AI 真的是學會了,而不僅僅是背下了答案!

必須避免的常見錯誤: 千萬不要用訓練時完全相同的數據來測試你的模型。這就像老師在正式考試中出跟練習卷一模一樣的題目——這無法證明你理解概念,只證明你有很好的記憶力!


總結檢查清單

- 你能定義 AI 並列出它的兩個主要特徵嗎?
- 你知道 ML 與傳統程式編寫的區別嗎?
- 你能用例子(KNN 對比 K-Means)解釋監督式與非監督式學習嗎?
- 你記得 ML 工作流程的 7 個步驟嗎?
- 你熟悉 Python 中的 .fit() 和 .predict() 嗎?

你一定做得到的!AI 是一個廣大的領域,但只要掌握這些基礎知識,你就已經在理解塑造我們世界的技術之路上邁進了一大步。