Unsupervised Learning - Học không giám sát
Unsupervised Learning - Học không giám sát
Hãy tưởng tượng bạn bước vào một căn phòng lưu trữ tài liệu cổ ở một quốc gia xa lạ. Hàng nghìn cuốn sách và cuộn giấy nằm ngổn ngang trên sàn, được viết bằng một thứ ngôn ngữ cổ mà bạn không biết một chữ bẻ đôi (hoàn toàn không có nhãn, không có lời dịch - Không có Label ).
Dù không đọc hiểu nội dung, bạn vẫn có thể bắt tay vào dọn dẹp bằng cách quan sát các đặc trưng vật lý:
- Nhóm 1: Những cuốn sách khổ lớn, bìa bọc da dày cộp, gáy mạ vàng.
- Nhóm 2: Những cuộn giấy cói mỏng dính, cuộn tròn, có thắt dây đỏ.
- Nhóm 3: Những tập tài liệu nhỏ có đính kèm bản vẽ hình học và ký tự số.
Bạn vừa hoàn thành xuất sắc một nhiệm vụ mà không cần bất kỳ ai hướng dẫn hay chấm điểm. Bạn đã tự mình tìm ra cấu trúc tiềm ẩn (Hidden Structure) và gom dữ liệu thành các nhóm tự nhiên (Clusters) dựa trên độ tương đồng.
Đó chính là bản chất của Unsupervised Learning (Học không giám sát).
Trong Unsupervised Learning, tập dữ liệu chỉ chứa các vector đầu vào mà hoàn toàn không có nhãn đáp án . Mục tiêu là tự động khám phá các mẫu hình (patterns), cụm (clusters), hoặc biểu diễn nén của dữ liệu.
1. Phân biệt: Phân loại (Classification) vs Phân cụm (Clustering)
Rất nhiều sinh viên hay nhầm lẫn giữa hai khái niệm này. Hãy nhớ một nguyên tắc phân định duy nhất: Có nhãn trước hay Không có nhãn?
| Tiêu chí | Classification (Phân loại) | Clustering (Phân cụm) |
|---|---|---|
| Dữ liệu huấn luyện | Cặp có đầy đủ câu hỏi và đáp án. | Chỉ có , hoàn toàn không có đáp án . |
| Số lượng nhóm | Cố định và biết trước (ví dụ: 2 lớp Spam/Ham, 10 chữ số). | Do con người quy định hoặc thuật toán tự phát hiện. |
| Bản chất câu hỏi | “Bệnh nhân này có bị tiểu đường hay không?” | “Tập bệnh nhân này tự nhiên phân hóa thành mấy nhóm thể trạng?” |
| Ý nghĩa nhãn | Nhãn có sẵn ngữ nghĩa thực tế do con người định nghĩa. | Nhãn cụm (0, 1, 2) lúc đầu vô nghĩa. Con người phải phân tích đặc điểm rồi mới tự đặt tên ngữ nghĩa cho từng cụm. |
2. Ứng dụng thực tế của Học không giám sát
- Phân khúc khách hàng (Market Segmentation):
- Các sàn thương mại điện tử (Shopee, Tiki) gom hàng triệu người dùng thành các nhóm: “Hội săn sale đêm”, “Nhóm mua đồ công nghệ cao cấp”, “Mẹ bỉm sữa chuộng tã bỉm”. Từ đó tung ra các chiến dịch khuyến mãi cá nhân hóa.
- Hệ thống gợi ý (Recommendation Systems):
- Spotify gom các bài hát có giai điệu, tiết tấu và nhạc cụ tương tự vào cùng một cụm để tự động tạo danh sách phát Daily Mix.
- Phát hiện gian lận và dị thường (Anomaly Detection):
- Ngân hàng gom các giao dịch bình thường thành các cụm lớn. Một giao dịch quẹt thẻ bất ngờ nằm trơ trọi cô độc ở khoảng cách xa tít mù tắp sẽ bị gắn cờ là giao dịch bất thường nghi bị đánh cắp thẻ.
- Phân đoạn hình ảnh y tế (Medical Image Segmentation):
- Gom các pixel có cường độ màu và kết cấu tương đồng trong ảnh chụp cộng hưởng từ (MRI) để tách bạch vùng mô lành và vùng khối u.
3. Thuật toán k-Means Clustering (MacQueen, 1967)
k-Means là thuật toán phân cụm phổ biến nhất hành tinh nhờ sự đơn giản, trực quan và tốc độ chạy cực nhanh.
3.1 Ý tưởng vũ điệu hai bước
k-Means muốn chia điểm dữ liệu thành cụm. Mỗi cụm được đại diện bởi một “thủ lĩnh” gọi là Tâm cụm (Centroid) . Thuật toán là một vũ điệu luân phiên lặp đi lặp lại đúng 2 động tác:
3.2 Công thức toán học từng bước
Giả sử cần chia dữ liệu thành cụm: với các tâm cụm .
Bước 1: Assignment (Gán điểm)
Với mỗi điểm dữ liệu , tính khoảng cách tới tất cả tâm cụm và gán nó vào cụm có tâm gần nhất:
Bước 2: Update (Cập nhật tâm)
Với mỗi cụm , tính lại tọa độ tâm cụm bằng trung bình cộng hình học của tất cả các điểm thuộc cụm đó:
Lặp lại hai bước trên cho đến khi các tâm cụm không còn dịch chuyển vị trí nữa (hoặc thay đổi nhỏ hơn một ngưỡng ).
3.3 Hàm mục tiêu: k-Means thực sự đang tối ưu cái gì?
k-Means tìm cách cực tiểu hóa đại lượng Tổng bình phương khoảng cách nội cụm (Within-Cluster Sum of Squares - WCSS), trong scikit-learn còn gọi là Inertia:
Bản chất toán học: WCSS đo lường mức độ “đậm đặc, gắn kết” của các cụm. Các điểm trong cùng một cụm nằm càng sát rạt tâm cụm thì càng nhỏ, nghĩa là phân cụm càng chất lượng.
4. Cạm bẫy khởi tạo ngẫu nhiên & Thuật toán k-Means++ (2007)
Một điểm yếu chí mạng của k-Means nguyên bản: Cực kỳ nhạy cảm với vị trí khởi tạo ban đầu của tâm cụm.
Nếu bạn xui xẻo chọn phải các tâm ban đầu nằm dính sát vào nhau, thuật toán sẽ bị mắc kẹt ở một Cực tiểu cục bộ rất tệ (Bad Local Minima) và không bao giờ thoát ra được.
Đột phá k-Means++ (Arthur & Vassilvitskii, 2007)
Để khắc phục, các nhà khoa học phát minh ra quy tắc khởi tạo thông minh k-Means++:
- Tâm đầu tiên được chọn ngẫu nhiên từ tập dữ liệu.
- Với mỗi điểm dữ liệu còn lại , tính khoảng cách từ nó tới tâm cụm đã có gần nó nhất.
- Chọn tâm tiếp theo với xác suất tỷ lệ thuận với bình phương khoảng cách .
- Nghĩa là: Điểm nào nằm càng xa các tâm đã chọn, điểm đó càng có xác suất cao được bầu làm tâm mới!
- Lặp lại cho đến khi đủ tâm.
💡 Thực tế: Nhờ k-Means++, các tâm ban đầu được ép phải nằm rải đều và cách xa nhau nhất có thể, giúp thuật toán hội tụ nhanh hơn gấp bội và tránh được các bẫy cực tiểu cục bộ. Trong scikit-learn, tham số mặc định luôn là
init="k-means++".
5. Chọn số cụm thế nào khi đời không cho biết trước?
Trong bài toán không giám sát, ta không biết tự nhiên thực sự có bao nhiêu nhóm. Vậy làm sao chọn ?
5.1 Phương pháp khuỷu tay (Elbow Method)
- Chạy k-Means với các giá trị từ .
- Vẽ đồ thị hàm mất mát WCSS (Inertia) theo .
- Khi tăng, WCSS chắc chắn luôn giảm (nếu chọn , WCSS sẽ bằng đúng vì mỗi điểm tự làm một tâm, nhưng kết quả này hoàn toàn vô nghĩa!).
- Ta tìm điểm mà tại đó tốc độ giảm đột ngột chững lại, tạo thành một góc gấp giống như khuỷu tay (elbow). Điểm gập đó chính là số tự nhiên và cân bằng nhất.
WCSS (Inertia)
|
| * (k=1)
| \
| \
| * (k=2)
| \
| \
| * (k=3) <--- Điểm khuỷu tay (Elbow Point)! Chọn k=3
| \_______
| * (k=4) ______ * (k=5)
+-------------------------------------------- (k)
5.2 Đi sâu vào bản chất: Phân tích Silhouette (Silhouette Analysis)
Đôi khi đồ thị khuỷu tay cong thoai thoải và không có điểm gập rõ ràng. Lúc này ta dùng thước đo định lượng cao cấp: Hệ số Silhouette .
Với mỗi điểm dữ liệu :
- Tính : Khoảng cách trung bình từ điểm tới tất cả các điểm khác trong cùng cụm (đo Độ gắn kết nội tại).
- Tính : Khoảng cách trung bình từ điểm tới tất cả các điểm thuộc cụm láng giềng gần nó nhất (đo Độ tách biệt ngoại vi).
- Hệ số Silhouette của điểm được tính bằng:
- : Điểm nằm rất gần các bạn cùng cụm và cách rất xa cụm khác Phân cụm cực kỳ chuẩn xác!
- : Điểm nằm mấp mé ngay ranh giới giữa hai cụm.
- : Điểm bị gán nhầm cụm (nó nằm gần cụm hàng xóm hơn cụm của chính nó).
💡 Ta tính trung bình hệ số Silhouette của toàn bộ dataset cho từng . Giá trị nào có Silhouette Score trung bình cao nhất là lựa chọn phân cụm hoàn hảo nhất.
6. Điểm mù và Giới hạn của k-Means: Những hình dạng “bất trị”
k-Means rất mạnh, nhưng nó dựa trên khoảng cách Euclidean nên ngầm chứa một giả định: Các cụm phải có hình cầu/hình tròn đối xứng, kích thước và mật độ tương đương nhau.
k-Means sẽ thất bại hoàn toàn khi gặp các kịch bản sau:
Cầu nối sang các thuật toán nâng cao:
Khi k-Means bó tay, các nhà khoa học sử dụng:
- DBSCAN (Density-Based Spatial Clustering): Gom cụm dựa trên mật độ hạt. Nó có thể tìm ra các cụm có hình dạng uốn lượn kỳ dị bất kỳ và tự động loại bỏ các điểm nhiễu (outliers).
- Hierarchical Clustering (Phân cụm phân cấp): Xây dựng cây phả hệ cụm (Dendrogram), không cần chọn trước .
7. Mở rộng: Giảm số chiều dữ liệu (Dimensionality Reduction) & PCA
Ngoài phân cụm (Clustering), một nhánh khổng lồ khác của Unsupervised Learning là Giảm số chiều (Dimensionality Reduction).
Bài toán:
Dữ liệu của bạn có đặc trưng (100 chiều).
- Bạn không thể vẽ đồ thị để nhìn mắt thường (mắt người chỉ nhìn được không gian 2D hoặc 3D).
- Các thuật toán học máy chạy trên 100 chiều bị chậm và dính tai ương số chiều.
Trực giác PCA (Principal Component Analysis - Phân tích thành phần chính):
PCA tìm ra các trục tọa độ mới (gọi là các Thành phần chính - Principal Components) sao cho khi chiếu toàn bộ dữ liệu lên các trục này, độ biến thiên (phương sai / lượng thông tin) được giữ lại là lớn nhất có thể.
- Giống như việc bạn chụp ảnh bóng của một vật thể 3D lên một bức tường 2D: Bạn sẽ xoay góc chiếu sao cho bóng in trên tường phản ánh rõ nét nhất hình dáng của vật thể mà không bị che khuất.
- Nhờ PCA, ta có thể nén một bảng dữ liệu từ 100 chiều xuống còn 2 chiều để vẽ đồ thị Scatter Plot tuyệt đẹp, giúp nhìn thấu ngay các cụm tự nhiên!
8. Cạm bẫy triết học: “Clustering không tự sinh ra chân lý khách quan”
Đây là sai lầm tư duy phổ biến nhất của các bạn mới làm phân tích dữ liệu:
Nếu một thuật toán phân cụm chia sinh viên của bạn thành 3 nhóm (Cụm 0, 1, 2), không có nghĩa là ngoài đời thực tự nhiên tồn tại đúng 3 loại sinh viên khách quan!
Kết quả phân cụm phụ thuộc 100% vào:
- Bạn đưa vào những đặc trưng nào (Features)?
- Bạn dùng công thức khoảng cách gì (Euclidean, Manhattan hay Cosine)?
- Bạn scale dữ liệu ra sao?
- Bạn chọn bằng bao nhiêu?
Nếu bạn chỉ đưa vào đặc trưng điểm thi, thuật toán sẽ chia cụm theo học lực. Nếu bạn đưa vào số giờ chơi game và số bài post Facebook, thuật toán sẽ chia cụm theo phong cách giải trí. Các cụm chỉ là một công cụ hỗ trợ con người khám phá dữ liệu, không phải là chân lý tuyệt đối. Hãy luôn dùng chuyên môn nghiệp vụ để diễn giải và kiểm chứng lại kết quả!
9. Bảng so sánh tổng kết ba trường phái Machine Learning
Để khép lại toàn bộ chương Learning, hãy cùng nhìn lại bức tranh toàn cảnh:
| Tiêu chí | Supervised Learning (Có giám sát) | Unsupervised Learning (Không giám sát) | Reinforcement Learning (Tăng cường) |
|---|---|---|---|
| Dữ liệu đầu vào | Vector kèm Nhãn đáp án | Chỉ có Vector , không có nhãn | Trạng thái từ môi trường tương tác |
| Phản hồi học tập | Có thầy chấm điểm trực tiếp đúng/sai | Hoàn toàn không có ai phản hồi | Tín hiệu thưởng/phạt () chậm trễ qua thời gian |
| Nhiệm vụ cốt lõi | Học hàm ánh xạ để dự đoán | Tìm cấu trúc, cụm ẩn, nén chiều dữ liệu | Học chiến lược hành động tối ưu |
| Các thuật toán tiêu biểu | k-NN, Linear/Logistic Regression, Perceptron, SVM | k-Means, k-Means++, DBSCAN, PCA | Q-Learning, SARSA, Deep Q-Networks (DQN) |
| Thách thức lớn nhất | Overfitting, Data Leakage, Thiếu dữ liệu gán nhãn | Đánh giá chất lượng cụm, Chọn số cụm tối ưu | Exploration vs Exploitation, Reward Hacking |
10. Câu hỏi tự kiểm tra & Thảo luận
1. Bạn hãy giải thích tại sao trong thuật toán k-Means, hàm mục tiêu WCSS gần như luôn luôn giảm sau mỗi vòng lặp Assignment và Update?
- Ở bước Assignment: Mỗi điểm được gán vào tâm cụm gần nó nhất, nên tổng khoảng cách từ điểm tới tâm chắc chắn giảm hoặc giữ nguyên.
- Ở bước Update: Tọa độ mới của tâm cụm được tính bằng trung bình cộng của các điểm trong cụm. Theo tính chất toán học, giá trị trung bình cộng chính là điểm tối ưu làm cực tiểu hóa tổng bình phương khoảng cách tới các điểm đó. Do cả hai bước đều kéo giảm WCSS nên thuật toán chắc chắn sẽ hội tụ.
2. Một công ty khởi nghiệp muốn xây dựng hệ thống phát hiện giao dịch lừa đảo ngân hàng. Họ chưa có dữ liệu giao dịch lừa đảo nào được gán nhãn trong quá khứ. Họ nên dùng phương pháp nào trước?
Họ nên bắt đầu bằng Unsupervised Learning (Anomaly Detection / Clustering)! Gom các giao dịch bình thường của khách hàng lại thành cụm. Khi có một giao dịch phát sinh nằm cách xa bất thường khỏi tất cả các cụm (outlier), hệ thống sẽ tạm khóa và gửi cảnh báo xác thực OTP cho khách hàng. Sau một thời gian thu thập được các ca lừa đảo thật có xác nhận, họ mới chuyển sang huấn luyện mô hình Supervised Learning.
3. Tại sao việc chuẩn hóa đặc trưng (Feature Scaling) lại đóng vai trò sinh tử trong k-Means Clustering?
Vì k-Means sử dụng khoảng cách Euclidean để gán điểm vào tâm cụm. Nếu một đặc trưng có thang đo quá lớn (ví dụ: Thu nhập hàng chục triệu đồng) so với đặc trưng khác (Tuổi đời vài chục năm), đặc trưng thu nhập sẽ áp đảo hoàn toàn khoảng cách, khiến việc phân cụm chỉ phản ánh mức thu nhập và bỏ qua hoàn toàn độ tuổi.
11. Tài liệu tham khảo
- CS50 AI Lecture 4 - Unsupervised Learning, Clustering, k-Means.
- MacQueen, J. (1967), Some Methods for Classification and Analysis of Multivariate Observations, 5th Berkeley Symposium.
- Arthur, D., & Vassilvitskii, S. (2007), k-means++: The Advantages of Careful Seeding, SODA ‘07.
- Rousseeuw, P. J. (1987), Silhouettes: A graphical aid to the interpretation and validation of cluster analysis, Journal of Computational and Applied Mathematics.
- Scikit-learn Documentation: Clustering (K-Means, DBSCAN), Decomposing Signals in Components (PCA).