AI時代系列(1) 機器學習三部曲: 🔹 第一部:《機器學習 —— AI 智慧的啟航》
50/100 第五週:非監督學習
50. 小結與測驗-Autoencoder(自動編碼器) 🔄 壓縮數據,找出關鍵特徵,應用於異常檢測!
第 5 周 小結:非監督學習精華回顧
非監督學習強調**「不依賴標籤」,從大量資料中發現規律、結構與隱藏資訊**,是數據探索、資料壓縮和機器學習應用的重要基礎。
5.1 🎯 K-Means 聚類 快速分群,適合大數據 --- 客戶分群、圖像壓縮
5.2 🏗 階層式聚類 樹狀結構,顯示層級關係 --- 基因分析、族譜建構、商業分類
5.3 🔍 DBSCAN 密度為主,自動判斷群數 --- 空間數據分析、異常點偵測
5.4 📉 PCA 降維 保留最大變異,強化視覺化 --- 特徵萃取、資料壓縮
5.5 🎭 SVD 適合稀疏矩陣,強化推薦效果 --- 協同過濾、文本語意分析
5.6 🎨 GAN(生成對抗網路) AI 生成式學習,對抗訓練 --- 影像生成、語音合成
5.7 📚 LDA(主題模型) 文字主題挖掘,自動歸類 --- 新聞分群、論壇主題分析
5.8 🛍 Apriori / FP-Growth 發現購買習慣與關聯 --- 市場籃分析、推薦系統
5.9 🧠 SOM(自組織映射) 拓撲保留視覺化,自動分群 --- 客戶分群、模式識別
________________________________________
📝 第 5 章 測驗題(選擇題 / 問答)
________________________________________
📖 單選題
1️⃣ 以下哪個方法適合「自動找出資料密集區並偵測離群點」?
• A. K-Means
• B. PCA
• ✅ C. DBSCAN
• D. GAN
✔ 答案解析: DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是基於密度的聚類方法,能有效偵測密集區和離群點。K-Means 無法處理離群點,PCA 主要用來降維,GAN 是生成模型。
________________________________________
2️⃣ 哪個技術會產生可視化的 U-Matrix?
• A. K-Means
•✅ B. 自組織映射(SOM)
• C. SVD
• D. GAN
✔ 答案解析: 自組織映射(SOM)可以透過 U-Matrix(距離矩陣) 可視化,清楚呈現資料群聚和邊界,其他方法沒有 U-Matrix 這個概念。
________________________________________
3️⃣ Apriori 主要用在哪一個領域?
• A. 圖像生成
✅ B. 市場籃分析
• C. 客戶異常偵測
• D. 語音合成
✔ 答案解析: Apriori 屬於關聯規則學習的經典演算法,主要用於「市場籃分析」找出購物行為中的關聯規則,典型案例如「買了尿布也會買啤酒」。
________________________________________
📖 問答題
1️⃣ 簡述 GAN 的生成器與判別器各自的角色與目標?
✅ 答案解析:
• 生成器(Generator, G):負責從隨機噪聲產生「逼真的假資料」來「欺騙」判別器。
• 判別器(Discriminator, D):負責判斷輸入的資料是真實的還是生成器產生的假資料。 👉 雙方對抗訓練,最終目標是讓生成器產出連判別器都無法辨別的高擬真資料。
________________________________________
2️⃣ LDA 如何從新聞文本中挖掘出隱藏的主題?請簡述流程。
✅ 答案解析:
• LDA 假設每篇文章由多個潛在主題組成,每個主題由多個關鍵詞構成。
• 流程:
1. 建立詞袋模型(Bag of Words)
2. LDA 進行機率推斷,為每篇文章計算「主題分佈」
3. 產生主題-詞語分佈與文件-主題分佈
• 結果:可以知道哪些新聞屬於政治、科技、體育等主題。
________________________________________
Autoencoder(自動編碼器)基礎與實作
🌟 什麼是 Autoencoder?
• 一種 神經網路架構
• 屬於非監督學習
• 由「編碼器」和「解碼器」組成
• 功能:自動學習數據中的核心特徵,達到降維、壓縮與異常偵測
________________________________________
🧠 運作流程:
階段 說明
編碼(Encoder) 把高維資料壓縮成低維特徵
瓶頸層(Bottleneck) 最小特徵表示
解碼(Decoder) 嘗試還原原始資料
損失函數(Loss) 比較原始資料與重建資料的誤差(如 MSE)
________________________________________
💻 Python 範例(TensorFlow/Keras)
python
import numpy as np
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.datasets import mnist
import matplotlib.pyplot as plt
# 載入數據
(x_train, _), (x_test, _) = mnist.load_data()
x_train = x_train.astype('float32') / 255.
x_train = x_train.reshape(-1, 28*28)
x_test = x_test.astype('float32') / 255.
x_test = x_test.reshape(-1, 28*28)
# 建構Autoencoder
input_img = Input(shape=(784,))
encoded = Dense(32, activation='relu')(input_img)
decoded = Dense(784, activation='sigmoid')(encoded)
autoencoder = Model(input_img, decoded)
autoencoder.compile(optimizer='adam', loss='mse')
autoencoder.fit(x_train, x_train, epochs=10, batch_size=256, shuffle=True, validation_data=(x_test, x_test))
# 測試重建效果
decoded_imgs = autoencoder.predict(x_test)
plt.figure(figsize=(10, 4))
for i in range(5):
# 原圖
plt.subplot(2, 5, i+1)
plt.imshow(x_test[i].reshape(28,28), cmap='gray')
plt.axis('off')
# 重建圖
plt.subplot(2, 5, i+6)
plt.imshow(decoded_imgs[i].reshape(28,28), cmap='gray')
plt.axis('off')
plt.show()
________________________________________
📈 Autoencoder 應用:
✅ 數據降維與壓縮
✅ 異常檢測(Reconstruction Error 高者為異常)
✅ 圖像去雜訊(Denoising Autoencoder)
✅ 特徵萃取
________________________________________
📌 結論與亮點
• 非監督學習不需標籤,善於發掘潛在結構與模式
• 從分群(KMeans、DBSCAN)、降維(PCA、SVD)、生成(GAN)、到推薦與關聯分析(Apriori)
• Autoencoder 更是深度學習中非監督學習的重要技術,廣泛應用於工業異常偵測、資安和金融領域
________________________________________
📌 本章口號總結:
✅ 讓 AI 自己去探索、歸納、理解數據!
________________________________________