AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
100/100 第十週:📌 部署、壓縮與邊緣 AI 應用(Edge AI & Deployment)📦
100.總結與測驗:打造你的 AI 應用雛型 🚀 將學到的模型部署上線!
📚 第一至第十章小結
第1章:深度學習基礎入門
• 理解神經網路模擬大腦原理,從感知機、前向傳播到反向傳播學習流程。
• 掌握激活函數、損失函數與優化器在學習中的角色。
• 知道如何切分訓練/驗證/測試資料並避免過擬合。
第2章:多層感知器 MLP
• 多層架構是深度學習的核心,隱藏層學習抽象特徵。
• Dropout 與 Early Stopping 增加模型泛化能力。
第3章:卷積神經網路 CNN
• CNN 能抓取局部特徵與空間結構,是電腦視覺主力模型。
• 掌握卷積層、池化層、BatchNorm 與各大 CNN 架構。
第4章:循環神經網路 RNN
• RNN 記憶時間序列資訊,LSTM 與 GRU 解決長期依賴問題。
• Seq2Seq 與 Attention 是 NLP 任務基礎。
第5章:生成對抗網路 GAN
• 透過生成器與判別器對抗學習,創造高品質圖像。
• 應用如 DCGAN、StyleGAN、CycleGAN 各具特色。
第6章:Transformer 與注意力
• Transformer 改寫序列處理,Self-Attention 是其核心。
• 應用於翻譯、摘要、聊天機器人等 NLP 任務。
第7章:語言模型與生成式 AI
• BERT 強於理解,GPT 擅長生成,Prompt 可引導結果。
• 應用多元:摘要、客服、情緒分析、創作等。
第8章:自監督學習
• 不用人工標記也能學!SimCLR、MoCo 是代表架構。
• 適合資料少的場景,可與少樣本學習結合。
第9章:深度強化學習
• 透過獎勵學習最佳策略,DQN 是強化學習代表性方法。
• 可實作遊戲、自駕車、機器控制等。
第10章:部署、壓縮與 Edge AI
• 學會將模型壓縮、部署到網頁、手機與 IoT 裝置。
• 工具包含 Flask、Gradio、TFLite、ONNX、TensorRT。
________________________________________
✅ 測驗題(選擇題 10 題 + 問答題 5 題)
🎯 單選題
1. 下列哪一項是深度學習中的「激活函數」?
A. Softmax B. Adam C. ✅ReLU D. MSE
👉 解析: ReLU 是一種常見激活函數,用來增加非線性表達能力;Softmax 是輸出層函數,Adam 是優化器,MSE 是損失函數。
________________________________________
2. CNN 中的池化層作用是?
A. 提高模型容量 B. 訓練更多參數 C. 提取時間資訊 D. ✅降維保特徵
👉 解析: 池化層用於降低特徵圖維度,同時保留重要資訊,有助於降低運算量並防止過擬合。
________________________________________
3. 哪一項最適合處理時間序列資料?
A. MLP B. CNN C. ✅RNN D. GAN
👉 解析: RNN 能記住前一步的狀態,專門處理序列資料,如語音、股票等。
________________________________________
4. Dropout 的主要目的是?
A. 增加參數數量 B. 模型可解釋性 C. 模擬缺失值 D. ✅防止過擬合
👉 解析: Dropout 透過隨機遮蔽神經元,避免模型過度依賴特定特徵,提高泛化能力。
________________________________________
5. GPT 是什麼類型的模型?
A. 自監督學習 B. 編碼器架構 C. ✅自回歸生成模型 D. 卷積網路
👉 解析: GPT 是基於 Transformer 的生成式語言模型,使用自回歸方式逐字生成文本。
________________________________________
6. 生成器與判別器出現於哪種模型?
A. RNN B. CNN C. ✅GAN D. Transformer
👉 解析: GAN(生成對抗網路)由生成器和判別器組成,透過對抗學習提升生成品質。
________________________________________
7. 在 Transformer 中解決位置順序的方式是?
A. Dropout B. LSTM C. ✅Position Encoding D. Pooling
👉 解析: Transformer 本身無循序結構,需加上位置編碼讓模型知道 token 順序。
________________________________________
8. 哪一項最適合實現 Edge AI 應用?
A. GPT-4 B. HuggingFace C. ✅TensorFlow Lite D. BERT-large
👉 解析: TensorFlow Lite 是專為手機與嵌入式裝置設計的輕量推論框架,適合邊緣設備部署。
________________________________________
9. Deep Q-Network 屬於哪一類型方法?
A. 無監督學習 B. ✅增強學習 C. 預訓練模型 D. 卷積模型
👉 解析: DQN 結合深度學習與強化學習,用於從環境中獲得回饋並學習策略。
________________________________________
10. 用於檢測模型是否被對抗樣本攻擊的是?
A. Attention B. Embedding C. ✅異常檢測系統 D. Batch Normalization
👉 解析: 對抗樣本可能引導模型錯誤分類,異常檢測系統可識別非正常輸入,提升模型安全性
✍ 問答題
1. 解釋前向傳播與反向傳播在神經網路中的角色。
👉 前向傳播是資料從輸入到輸出流動的過程,反向傳播則根據誤差反推各層參數的梯度,並用以更新權重。
2. 說明為什麼深度學習模型需要正則化技術(如 L2、Dropout)。
👉 防止模型過度擬合訓練資料,提升泛化能力。
3. Transformer 為何能取代 RNN?
👉 Transformer 可以並行處理資料,克服長距依賴問題,訓練效率更高,效果也更好。
4. 對比 BERT 與 GPT 的差異。
👉 BERT 是雙向編碼器模型,善於理解語意;GPT 是單向解碼器模型,擅長文字生成。
5. 說明量化(Quantization)與剪枝(Pruning)的主要目的。
👉 減少模型大小與運算量,加快推論速度,適合部署到資源有限的設備。
🚀 檢驗的示範:打造你的 AI 應用雛型
以下示範把「模型開發 → 驗證 → API 雛型」串成一條龍流程;你只要改動資料與商業邏輯,就能快速複製成自己的 MVP。
________________________________________
1️⃣ 需求定義與驗證腳本
在 AI 專案中採用 TDD(Test-Driven Development)思維,有助於明確定義需求並確保開發過程穩健。透過撰寫測試腳本對三個關鍵里程碑進行驗證:一是用 test_metrics.py 檢查模型是否達到預期指標(如 F1 分數 ≥ 0.85),二是用 test_io.py 驗證輸入輸出的正確性(例如文字輸入應對應正確情緒標籤),三是以 test_speed.py 確認推論速度在 200 毫秒內,確保效能符合要求。這種「先寫測試、再寫程式」的開發方式,能讓每個功能模組開發後即時透過 pytest 驗證,大幅降低錯誤堆疊風險,讓 AI 模型更穩定、安全地邁向產品化。
________________________________________
2️⃣ 收集 & 前處理資料
import pandas as pd, re, emoji
df = pd.read_csv("raw_reviews.csv")
# 🔹 基礎清理
df["clean"] = (df["text"]
.str.lower()
.str.replace(r"http\S+", "", regex=True) # 去連結
.apply(emoji.demojize)) # emoji→文字
# 🔹 標籤平衡
pos = df[df.label==1].sample(5_000, replace=True)
neg = df[df.label==0].sample(5_000, replace=True)
balanced = pd.concat([pos, neg]).sample(frac=1)
balanced.to_csv("train.csv", index=False)
這段程式碼主要完成情緒分類資料的前處理工作,先將原始評論文字轉為小寫、移除網址,並將 emoji 轉為文字描述,提升模型理解能力;接著為了避免資料偏斜,從正評與負評中各抽 5,000 筆樣本進行平衡,最後將處理後的資料打亂並儲存為 train.csv,作為後續模型訓練的乾淨輸入。整體流程簡潔實用,有效提升資料品質與訓練穩定性。
________________________________________
3️⃣ 模型訓練(Notebook / Script)
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score
X_train, X_val, y_train, y_val = train_test_split(
balanced.clean, balanced.label, test_size=0.2, stratify=balanced.label)
tfidf = TfidfVectorizer(max_features=20_000, ngram_range=(1,2))
X_tr = tfidf.fit_transform(X_train)
X_va = tfidf.transform(X_val)
clf = LogisticRegression(max_iter=1000, n_jobs=-1)
clf.fit(X_tr, y_train)
f1 = f1_score(y_val, clf.predict(X_va))
print(f"F1 = {f1:.3f}") # ← 通過 0.85 再往下走
這段程式碼使用 TF-IDF 特徵與邏輯斯迴歸(Logistic Regression)進行情緒分類模型的訓練與驗證。流程包括:將經過前處理與平衡的資料集劃分為訓練集與驗證集(維持標籤比例),再透過 TfidfVectorizer 提取 unigram 與 bigram 的詞語特徵,限制最多 20,000 個,轉換為稀疏矩陣後,交由邏輯斯迴歸模型進行訓練。最後計算驗證集上的 F1 分數,若達到門檻(如 ≥ 0.85),即可進行下一階段,如模型調整或部署。這是一個結合資料前處理、特徵工程與模型評估的完整基礎流程。
________________________________________
4️⃣ 打包推論核心
# src/inference.py
import pickle, pathlib
MODEL_DIR = pathlib.Path(__file__).resolve().parent / "artifacts"
tfidf = pickle.load(open(MODEL_DIR/"tfidf.pkl", "rb"))
model = pickle.load(open(MODEL_DIR/"model.pkl", "rb"))
def predict(text:str) -> str:
vec = tfidf.transform([text])
y = model.predict(vec)[0]
return "positive" if y==1 else "negative"
這段 inference.py 程式碼是模型推論模組,負責將訓練完成的情緒分類模型應用於實際輸入。它從指定的 artifacts 資料夾中載入事先儲存的 TF-IDF 向量器與模型檔(使用 pickle),並定義 predict() 函式:接收一段文字輸入,先轉換為向量,再送入模型預測其情緒標籤,最後回傳結果為 "positive" 或 "negative"。這樣的設計讓模型可被輕易整合至前端、API 或服務中進行即時預測,實現完整的離線訓練、線上推論流程。
________________________________________
5️⃣ 雛型 API 🚦(Flask + Gradio)
Flask(機器對機器)
# app.py
from flask import Flask, request, jsonify
from src.inference import predict
app = Flask(__name__)
@app.post("/predict")
def _predict():
data = request.get_json(force=True)
return jsonify({"label": predict(data["text"])})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
Gradio(快速人機 Demo)
import gradio as gr
from src.inference import predict
demo = gr.Interface(fn=predict,
inputs=gr.Textbox(label="輸入評論"),
outputs=gr.Label(num_top_classes=2),
title="🚀 情緒分析 Demo",
description="輸入一句話測試看看!")
demo.launch(server_port=7860)
這段程式碼展示了兩種常見的模型部署方式:Flask API 與 Gradio 互動介面。首先,app.py 使用 Flask 建立 /predict 路由,透過 POST 請求接收 JSON 格式的評論文字,呼叫 predict() 函式進行情緒預測,回傳結果為 "positive" 或 "negative",適合用於系統整合或後端部署。而第二段則透過 Gradio 建立一個簡易友善的 Web Demo,使用者可直接輸入一句評論文字,立即看到預測結果,方便展示與測試模型效果。兩種方式互補,分別對應正式服務與快速展示需求。
________________________________________
6️⃣ 自動化測試與 CI/CD
1. 單元測試:pytest
2. 型態檢查:mypy --strict src/
3. CI:GitHub Actions
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: {python-version: "3.11"}
- run: pip install -r requirements.txt
- run: pytest -q
4. CD:Docker + Fly.io/Railway 一鍵部署。
這段流程展示了一套簡潔實用的 AI 專案開發與部署自動化流程。開發階段使用 pytest 進行單元測試,搭配 mypy --strict 執行嚴格的型別檢查,確保程式正確性與可維護性;在持續整合(CI)方面,透過 GitHub Actions 建立自動測試工作流程:當有新提交時,自動在 Ubuntu 環境下安裝依賴並執行測試;而持續部署(CD)則結合 Docker 封裝應用,並透過 Fly.io 或 Railway 平台實現一鍵部署上線。整體流程可實現從程式撰寫、測試、驗證到雲端部署的全自動化,有助於快速迭代並穩定交付。
________________________________________
7️⃣ 監控 & 快速迭代
這段說明整理了三套常用的 AI 系統監控與管理工具,分別對應不同面向的實務需求:Prometheus + Grafana 適合用來監控 CPU 使用率、記憶體與推論延遲等系統效能指標,建議透過 Docker Compose 快速部署;
Sentry 則聚焦在例外追蹤與錯誤記錄,只需透過 sentry_sdk.init() 接入即可即時監控應用程式錯誤與堆疊資訊;MLflow 則提供模型訓練版本管理與 A/B 測試支援,推薦使用 mlflow.sklearn.log_model() 等 API 將模型與其指標記錄下來,方便日後比對與回溯。這三者組合起來,構成一套完整的 AI 系統可觀測性與可維運性方案。
________________________________________
🎁 小結 Check-list
• ✅ 測試先行:需求 → 測試腳本 → 程式
• ✅ 資料平衡:確保模型不偏頗
• ✅ API 雛型:Flask for backend,Gradio for demo
• ✅ CI/CD:自動跑測試、建映像、熱部署
• ✅ 監控迴圈:線上指標 + 回饋資料,持續優化
按照這套流程,你就擁有一個 可驗證、可示範、可迭代 的 AI 應用雛型。改變任務或模型時,只需替換資料與推論函式,其餘基礎設施可直接沿用,快速上線不踩坑!祝開發順利 🚀
________________________________________
🎓 AI時代系列(3) 機器學習三部曲:第二部《深度學習 —— 神經網路的革命》 在這裡畫下精彩句點。我們從感知機到 Transformer,從圖像分類到生成對抗,再到實際部署與監控,完整體驗了深度學習如何重塑資料理解與模型建構,並將理論真正落地為可操作的 AI 應用。
________________________________________
🚀 下一站,我們即將邁入 AI時代系列(5):第三部《強化學習 —— AI 的決策與進化》。
這一部將聚焦在 決策智能 上,也就是讓 AI 不只是「辨識」與「生成」,而是能夠在環境中學習「如何行動」、「如何最大化獎勵」、「如何面對不確定性」。
________________________________________
🔍 導讀搶先看:
📌 你將學到:
• 強化學習的核心概念(Agent、State、Action、Reward)
• 值函數、策略函數、Q-learning 與 Policy Gradient 差異
• DQN 如何讓 AI 玩會電動
• Actor-Critic、PPO 等進階演算法
• 模擬環境中的學習(OpenAI Gym、Gymnasium)
• 強化學習在遊戲、推薦系統、自駕車等真實應用
________________________________________
✨ 特別亮點:
• 🤖 將理論轉化為互動實作:教你用程式讓 AI 玩平衡桿、走迷宮、做交易
• 🧠 探索 AI 如人類般「試錯學習」的過程
• 📈 結合策略演進與深度網路,進入 深度強化學習 的黃金路線
________________________________________
📚 AI 不只是理解世界,也要與世界互動。
第三部《強化學習 —— AI 的決策與進化》,將帶你進入 AI 最接近智慧本質的領域。敬請期待!🔥