Learning - Học từ dữ liệu
Learning - Học từ dữ liệu
Ở các chương trước, ta đóng vai trò là “người thầy viết sẵn mọi quy tắc” cho máy tính:
- Search: Định nghĩa sẵn trạng thái, hành động, đích đến và chi phí máy lần mò tìm đường đi.
- Knowledge: Tự tay viết các mệnh đề logic () máy áp dụng luật suy diễn để chứng minh.
- Uncertainty: Tự thiết kế mạng Bayes và gán xác suất máy tính xác suất có điều kiện.
- Optimization: Viết hàm mục tiêu toán học máy leo đồi tìm điểm tối ưu.
Nhưng trong thế giới thực, có những bài toán mà dù thông minh đến mấy, con người cũng không thể viết hết các luật if/else.
Hãy thử tưởng tượng: Làm thế nào để viết chương trình nhận diện khuôn mặt của bạn bè? Hay lọc tin nhắn lừa đảo tài khoản ngân hàng?
Nếu viết if "chuyển khoản gấp" in text: return LUA_DAO, kẻ lừa đảo sẽ đổi thành "chuyển kh0ản gắp", "nhận quà tri ân", hoặc đính kèm ảnh. Bạn sửa luật này thì chúng lách luật khác. Càng viết, hệ thống càng phình to, rối rắm và sụp đổ.
Thay vì ngồi nghĩ hộ máy mọi quy tắc, ta đổi cách tiếp cận: Đưa cho máy dữ liệu (kinh nghiệm trong quá khứ) và để máy tự rút ra quy luật.
Đó chính là bước chuyển mình mang tên Machine Learning (Học máy).
1. Ý tưởng cốt lõi: Đảo ngược dòng chảy lập trình
Hãy so sánh hai tư duy:
Bắt đầu từ ý tưởng trực quan
- Truyền thống: Bạn dạy một đứa trẻ cách làm toán bằng cách bắt nó đọc thuộc lòng từng bước giải mẫu: “Bước 1 làm A, bước 2 làm B”. Nếu gặp đề bài biến tấu một chút mà chưa có quy tắc, đứa trẻ bó tay.
- Machine Learning: Bạn đưa cho đứa trẻ 1.000 bài toán có sẵn đáp án. Đứa trẻ tự tìm ra mối liên hệ ngầm giữa đề bài và đáp án. Khi gặp bài toán mới toanh số 1.001, nó tự giải được.
Đi sâu vào bản chất
Trong toán học, lập trình truyền thống là việc con người xác định hàm để tính . Còn trong Machine Learning, hàm là một ẩn số trong tự nhiên. Ta chỉ có tập quan sát . Mục tiêu của thuật toán học máy là tìm kiếm một hàm giả thuyết (hypothesis) trong không gian giả thuyết sao cho:
Điểm mấu chốt: Ta không quan tâm khớp đúng 100% dữ liệu đã biết (đó chỉ là học vẹt - memorization). Ta quan tâm có đoán đúng trên những dữ liệu chưa từng gặp trong tương lai hay không. Năng lực này gọi là Khả năng tổng quát hóa (Generalization).
2. Định nghĩa hình thức: Công thức của Tom Mitchell (1997)
Trong cuốn sách kinh điển Machine Learning, Giáo sư Tom Mitchell đưa ra định nghĩa chuẩn mực:
Định nghĩa: Một chương trình máy tính được gọi là học từ kinh nghiệm (Experience), đối với một nhóm nhiệm vụ (Task) và thước đo hiệu năng (Performance), nếu hiệu năng thực hiện nhiệm vụ trong , được đo bởi , cải thiện cùng với kinh nghiệm .
Nếu bạn đi phỏng vấn hoặc thi cử, đây là định nghĩa được hỏi nhiều nhất. Hãy nắm chắc 3 thành phần qua các ví dụ thực tế:
| Ứng dụng | Nhiệm vụ () | Kinh nghiệm () | Thước đo hiệu năng () |
|---|---|---|---|
| Lọc email rác (Spam Filter) | Phân loại email mới là Spam hay Hợp lệ | Tập hàng triệu email đã được người dùng gán nhãn | Tỷ lệ phần trăm email được phân loại đúng (Accuracy/F1-score) |
| Xe tự hành (Self-driving car) | Điều khiển tay lái, ga, phanh trên đường cao tốc | Dữ liệu camera, LiDAR và chuỗi thao tác của tài xế | Số km lái xe an toàn liên tục mà không cần con người can thiệp |
| AI chơi cờ (AlphaGo / Chess) | Chọn nước cờ tối ưu trong thế trận hiện tại | Hàng triệu ván cờ tự đấu với chính nó (Self-play) | Tỷ lệ phần trăm ván thắng trước các đại kiện tướng thế giới |
| Cảnh báo sinh viên rớt môn | Dự đoán sinh viên có nguy cơ thi lại trước tuần 8 | Lịch sử học tập, điểm danh, nộp bài của các khóa trước | Tỷ lệ phát hiện đúng sinh viên nguy cơ (Recall) và ít báo nhầm (Precision) |
💡 Mẹo ghi nhớ nhanh: Mỗi khi định làm một bài toán AI, hãy luôn tự hỏi 3 chữ cái: Làm cái gì ()? Học từ đâu ()? Đánh giá bằng thước đo nào ()?
3. Một mẫu dữ liệu trông như thế nào? (Terminology chuẩn)
Để máy tính hiểu được thế giới thực, ta phải số hóa các đối tượng thành các con số có cấu trúc:
Các khái niệm nền tảng:
- Sample / Instance / Example (): Một đối tượng đơn lẻ trong tập dữ liệu (ví dụ: một sinh viên cụ thể, một giao dịch chuyển tiền, một bức ảnh chụp lá cây).
- Feature / Attribute (): Một thuộc tính có thể đo đếm được mô tả đối tượng (ví dụ:
số_buổi_vắng,điểm_quiz,thời_gian_đọc_slide).- Một sample gồm đặc trưng được biểu diễn bằng một vector trong không gian chiều:
- Label / Target (): Đáp án hoặc kết quả cần dự đoán (ví dụ:
trượt = 1,qua môn = 0). - Feature Space (): Không gian toán học chứa tất cả các vector đặc trưng khả dĩ. Nếu có 2 feature, dữ liệu nằm trên mặt phẳng 2D; nếu có 100 feature, dữ liệu nằm trong không gian 100D.
Cạm bẫy thực chiến: Data Leakage qua Feature
Không phải cứ nhét mọi thứ có trong cơ sở dữ liệu vào làm feature là tốt:
- Nguyên tắc nhân quả (Causality): Feature phải là thông tin có thể biết được tại thời điểm ra quyết định.
- Ví dụ: Nếu bạn dự đoán “Khách hàng có hủy gói đăng ký vào tháng tới không?”, nhưng lại đưa vào feature “Ngày gọi lên tổng đài xin cắt hợp đồng”, mô hình sẽ đạt độ chính xác 99.9% khi train. Nhưng ngoài đời, khi khách hàng đã gọi cắt hợp đồng thì đã quá muộn để giữ chân. Đây là hiện tượng Rò rỉ dữ liệu (Data Leakage) - một trong những nguyên nhân hàng đầu khiến các dự án AI thất bại khi triển khai thực tế.
4. Ba trường phái học máy chính
CS50 AI phân chia thế giới Machine Learning thành 3 trụ cột lớn dựa trên bản chất của tín hiệu phản hồi (Feedback signal):
So sánh bằng góc nhìn trực giác và bản chất
| Tiêu chí | Supervised Learning (Có giám sát) | Reinforcement Learning (Tăng cường) | Unsupervised Learning (Không giám sát) |
|---|---|---|---|
| Ví dụ đời thường | Học sinh làm bài tập có sách giải chi tiết đằng sau. | Đứa trẻ tập đi xe đạp: ngã thì xước chân (phạt), giữ thăng bằng thì đi được xa (thưởng). | Đổ một thùng đồ chơi lộn xộn ra sàn và tự sắp xếp các món đồ có hình dáng/màu sắc giống nhau lại với nhau. |
| Dữ liệu đầu vào | Cặp có đầy đủ câu hỏi và đáp án đúng. | Trạng thái môi trường và tín hiệu thưởng/phạt sau khi hành động. | Chỉ có dữ liệu , hoàn toàn không có nhãn . |
| Mục tiêu học | Học hàm ánh xạ để dự đoán cho mẫu mới. | Học chiến lược hành động để tối đa hóa tổng phần thưởng tích lũy. | Khám phá cấu trúc tiềm ẩn, quy luật phân nhóm hoặc nén dữ liệu. |
| Ứng dụng tiêu biểu | Lọc spam, nhận diện khuôn mặt, định giá bất động sản, chẩn đoán bệnh. | AI chơi game (StarCraft, Cờ vua), robot điều khiển chuyển động, tối ưu hệ thống gợi ý thích nghi. | Phân khúc khách hàng, gợi ý bài hát theo gu, phát hiện giao dịch bất thường (Anomaly Detection). |
5. Vòng đời của một dự án Machine Learning (ML Pipeline)
Nhiều sinh viên mới học thường lầm tưởng: “Học máy là tải thư viện scikit-learn về rồi gọi hàm .fit() và .predict()”.
Thực tế trong công nghiệp, viết thuật toán chỉ chiếm khoảng 10-15% khối lượng công việc. Toàn bộ vòng đời dự án diễn ra theo một chu trình khép kín:
Kinh nghiệm thực chiến khi áp dụng:
- Garbage In, Garbage Out (GIGO): Dù bạn dùng mô hình phức tạp đến đâu, nếu dữ liệu thu thập bị sai lệch (biased) hoặc gán nhãn ẩu, mô hình cũng sẽ cho ra kết quả rác.
- Định lý No Free Lunch (Wolpert, 1996): Không tồn tại một thuật toán học máy nào là tốt nhất cho mọi bài toán. Một thuật toán chạy tuyệt vời trên dữ liệu ảnh (như CNN) chưa chắc đã đánh bại được Linear Regression trên bảng dữ liệu tài chính đơn giản. Người làm kỹ thuật thực tế không chỉ tìm kiếm thuật toán phức tạp nhất, mà biết chọn mô hình vừa đủ, phù hợp nhất với dữ liệu và tài nguyên tính toán.
6. Bản đồ lộ trình học tập của Module này
Để nắm trọn vẹn kiến thức của chương Learning, chúng ta sẽ lần lượt đi qua 4 chặng đường:
- Supervised Learning: Tìm hiểu cách máy học từ nhãn có sẵn qua các thuật toán nền móng: từ sự đơn giản của k-NN, sự đột phá của Perceptron, cho đến sức mạnh toán học của Support Vector Machines (SVM).
- Evaluating Models: Khám phá ranh giới sinh tử giữa “học thật” và “học vẹt” (Overfitting), hiểu sâu sắc Bias-Variance Tradeoff, và học cách đánh giá mô hình bằng Precision, Recall, F1 thay vì chỉ nhìn vào Accuracy mù quáng.
- Reinforcement Learning: Rời khỏi dữ liệu tĩnh để bước vào thế giới động, nơi một Agent tự học cách sinh tồn và chiến thắng thông qua thử - sai và hàm giá trị .
- Unsupervised Learning: Khám phá cách tìm ra trật tự từ sự hỗn độn khi không ai chỉ bảo, minh họa qua thuật toán phân cụm k-means và các thước đo chất lượng cụm.
Sau khi nắm vững các nguyên lý học cốt lõi này, bạn sẽ có nền tảng vững chắc nhất để bước sang chương kế tiếp: Neural Networks & Deep Learning.
7. Câu hỏi tự kiểm tra & Thảo luận
Dưới đây là các câu hỏi giúp bạn tự đo lường mức độ hiểu bài. Đừng chỉ đọc lướt, hãy thử tự trả lời trước khi xem gợi ý:
1. (Cơ bản) Dự đoán giá bán một căn nhà và phát hiện biển số xe là bài toán Supervised, Unsupervised hay Reinforcement Learning?
- Dự đoán giá nhà: Là Supervised Learning, cụ thể là Regression (Hồi quy) vì giá nhà là một số thực liên tục.
- Phát hiện / Nhận diện biển số xe: Là Supervised Learning, cụ thể là kết hợp giữa Object Detection (xác định vị trí biển số) và Classification (nhận diện từng ký tự chữ/số).
2. (Bản chất) Một công ty khoe rằng mô hình AI của họ đạt độ chính xác 100% trên dữ liệu huấn luyện. Là một kỹ sư, bạn có vội tin mô hình này sẵn sàng triển khai không? Tại sao?
Không vội tin! Đạt 100% trên training data là dấu hiệu kinh điển của Overfitting (Học vẹt). Giống như một học sinh học thuộc lòng đề cương câu chữ nhưng không hiểu bản chất, khi đi thi gặp câu hỏi chỉ cần đổi số là làm sai hoàn toàn. Cần phải kiểm tra hiệu năng trên Test Set độc lập (dữ liệu mô hình chưa từng thấy).
3. (Thực chiến) Hãy phân tích Task , Experience , Performance cho một hệ thống AI gợi ý video trên TikTok hoặc YouTube Shorts.
- Task (): Sắp xếp và gợi ý danh sách video tiếp theo hiển thị trên màn hình người dùng.
- Experience (): Lịch sử xem (thời lượng xem, xem hết hay lướt qua), tương tác (like, share, comment, bookmark) của hàng triệu người dùng trong quá khứ.
- Performance (): Tổng thời gian người dùng gắn bó với ứng dụng (Watch time / Session length) hoặc tỷ lệ tương tác (Engagement rate).
8. Tài liệu tham khảo
- CS50’s Introduction to Artificial Intelligence with Python - Lecture 4: Learning.
- Mitchell, T. M. (1997), Machine Learning, McGraw-Hill Series in Computer Science.
- Russell, S., & Norvig, P., Artificial Intelligence: A Modern Approach (4th Edition), Pearson.
- Wolpert, D. H. (1996), The Lack of A Priori Distinctions Between Learning Algorithms (No Free Lunch Theorem), Neural Computation.