歡迎來到人工智能的世界!
你好!今天,我們要深入探討 H2 電腦科學(Computing)旅程中最令人興奮的章節之一:人工智能 (Artificial Intelligence, AI)。你可能每天都在與 AI 互動——無論是手機的人臉解鎖、Netflix 為你推薦感興趣的影集,還是聊天機器人回答你的問題。在本章中,我們將揭開這些「智能」系統的運作原理。如果起初覺得像科幻小說也不用擔心,我們會一步一步為你拆解!
1. 甚麼是人工智能 (AI)?
人工智能 (Artificial Intelligence) 的核心,是指電腦系統執行原本需要人類智能才能處理的複雜任務的能力。
要將一個系統稱為「AI」,需具備以下兩點:
- 自主性 (Autonomy): 它可以在無須人類持續指導的情況下執行任務。
- 學習能力 (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 解決問題時,需要遵循一個標準流程。如果這看起來很冗長別擔心,這就像做科學實驗一樣!
- 數據收集 (Gathering Data): 盡可能收集相關資訊。
- 數據準備 (Preparing Data): 清理數據(移除錯誤)並調整格式。
- 選擇模型 (Choosing a Model): 決定使用哪種演算法(例如 KNN 或 K-Means)。
- 訓練 (Training): 將數據輸入模型,讓它學習模式。
- 評估 (Evaluating): 在模型未見過的數據上進行測試,檢查其準確性。
- 參數調整 (Tuning Parameters): 微調模型設置,以提升其表現。
- 進行預測 (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 是一個廣大的領域,但只要掌握這些基礎知識,你就已經在理解塑造我們世界的技術之路上邁進了一大步。