What is Machine Learning?
Machine Learning: máy học từ ví dụ, không từ luật
Hai đầu bếp, một bát phở
Tưởng tượng bạn đang tập nấu ăn.
Đầu bếp 1mở quyển sách công thức và đọc từng dòng: “3 lít nước, 500g xương, 2 hoa hồi”. Cô làm đúng y như sách ghi, không thêm không bớt một thìa muối nào. Nấu xong, tô phở bưng ra đúng như mô tả: cùng vị, cùng mùi, cùng độ trong.
Đầu bếp 2 thì chưa từng đọc một quyển sách nấu ăn nào. Cô đứng bếp hàng trăm lần, mỗi nồi đều nếm thử rồi ghi nhớ chỗ nào quá tay để lần sau chỉnh lại. Nồi đầu tiên mặn quá, cô bớt muối. Đến nồi thứ mười, vị bắt đầu cân đối hơn. Đến nồi thứ một trăm, khách ăn xong khen nức nở mà cô vẫn không có một dòng công thức nào trong sổ.
Đầu bếp theo công thức
- 1.Mở sách: “Phở bò: 3 lít nước, 500g bò”.
- 2.Cân đúng, đo đúng, bỏ đúng lượng.
- 3.Ra đúng vị đã ghi trong sách.
Đầu bếp học từ nếm thử
Nồi thứ 1: quá mặn. Ghi nhớ.
Không ai đọc công thức cho đầu bếp này. Cô ấy tự tích kinh nghiệm sau mỗi lần nếm thử, nên càng nấu nhiều thì càng nấu chuẩn.
Bạn cần viết phần mềm cho bốn bài toán sau. Bài nào ML thường KHÔNG phải lựa chọn tốt hơn lập trình thường?
Hình minh họa
Lọc email rác giải theo hai cách rất khác nhau
Bấm hai tab để thấy mỗi cách xử lý email rác ra sao.
Người viết phải tự nghĩ ra từng dấu hiệu và viết thành luật cứng. Máy chỉ làm theo.
Xem máy học dần qua từng vòng
Máy không giỏi ngay từ đầu. Vòng đầu tiên nó đoán bừa, bị sửa, vòng sau đoán tốt hơn nhưng vẫn sai, rồi lại bị sửa tiếp. Quá trình này lặp đi lặp lại hàng triệu lần cho đến khi máy đoán gần đúng. Bấm “Chạy thêm” để xem từng giai đoạn.
Máy học đoán giá nước cam (theo ly)
Mục tiêu: đoán giá (nghìn đồng) của ba loại ly. Máy bắt đầu với số ngẫu nhiên, rồi mỗi vòng so với giá thật và tự điều chỉnh.
Ly nhỏ
Máy đoán
25k
Giá thật
15k
Lệch 10k
Ly vừa
Máy đoán
25k
Giá thật
25k
Lệch 0k
Ly to
Máy đoán
25k
Giá thật
40k
Lệch 15k
Bạn chọn: Lập trình thường hay ML?
Cho bốn bài toán dưới đây, theo bạn: nên dùng lập trình thường (viết luật if-else), hay Machine Learning (cho máy học từ ví dụ)?
Tính tiền điện
Mỗi kWh là 2.500 đồng. Tính tiền điện khi biết số kWh tiêu thụ trong tháng.
Chặn email rác
Hộp thư nhận 1000 email mỗi ngày. Phân biệt email thật và email rác. Kiểu rác thay đổi liên tục.
Nhận ra mèo trong ảnh
Cho một ảnh bất kỳ, cần biết trong ảnh có con mèo hay không, không phụ thuộc giống, màu lông, tư thế.
Đặt lại thứ tự bài hát
Có danh sách 50 bài hát. Cần sắp xếp theo tên bài theo thứ tự a-b-c.
Đã làm 0/4
Mọi hệ thống ML đều đi qua bốn bước
Từ Grab, Shopee đến ChatGPT, đường đi đều giống nhau ở bốn bước này. Bấm “Tiếp tục” để mở từng bước.
Dữ liệu: nguyên liệu nấu ăn
Trước khi máy có thể học được điều gì, người làm ML phải chuẩn bị ví dụ cho nó xem. Với app nhận diện ảnh mèo, cần hàng triệu ảnh và mỗi ảnh phải có nhãn rõ ràng là “mèo” hay “không phải mèo”. Với Grab, cần log hàng triệu chuyến đi thật, kèm thời gian, lộ trình, giá cước. Dữ liệu càng nhiều và càng chất lượng, máy càng có nhiều ví dụ để rút ra pattern, kết quả học cũng càng tốt.
Vẽ vòng học của ML
ML không “hiểu” như con người hiểu một bài toán. Thay vào đó, nó nhìn vào hàng triệu ví dụ và tìm ra pattern lặp lại trong những ví dụ đó. Pattern ấy chính là công thức ẩn mà không ai biết cách viết ra bằng tay.
Vì vậy, nếu dữ liệu bạn đưa cho máy là dữ liệu tốt và đa dạng, mô hình sẽ học ra công thức tốt. Nếu dữ liệu sai, thiếu hay lệch một chiều, mô hình sẽ học ra một công thức sai theo. Không có thuật toán nào cứu được dữ liệu kém.
Trung tâm tiếng Anh muốn làm hệ thống chấm phát âm cho học viên. Bài toán phù hợp nhất với cách nào?
Bạn viết một app đếm số học sinh trong lớp từ ảnh camera. Lớp có đúng 40 học sinh luôn. Có nên dùng ML không?
Bạn có 20 ảnh X-quang để làm app phát hiện gãy xương. Bạn huấn luyện xong, máy đạt 100% đúng trên 20 ảnh đó. Đáng ăn mừng không?
Giải thích
Machine Learning không phải một loại trí tuệ siêu nhiên. Nó chỉ là một cách viết phần mềm khác với cách truyền thống. Thay vì lập trình viên ngồi nghĩ ra mọi quy tắc rồi gõ thành if-else, ta thu thập rất nhiều ví dụ thật và để máy tự tìm quy tắc bên trong những ví dụ đó. Ba điểm cần nhớ về cách tiếp cận này:
Khi nào dùng
Khi pattern quá phức tạp để viết tay, ví dụ ảnh, giọng nói, ngôn ngữ, hành vi người dùng. Bạn có sẵn dữ liệu đủ lớn để máy học, và bạn chấp nhận máy đôi khi sai chứ không bắt buộc luôn đúng tuyệt đối.
Khi nào không dùng
Khi công thức đã quá rõ ràng, như tính thuế hay đổi đơn vị. Khi bạn chưa có dữ liệu để máy học. Hoặc khi sai một quyết định là gây hậu quả nghiêm trọng và bạn cần giải thích được vì sao máy ra quyết định đó.
Vị trí trong AI
AI là khái niệm rộng nhất, bao gồm mọi cách làm cho máy hành xử thông minh. ML là một nhánh trong AI, hiện là nhánh đông đúc nhất. Deep Learning lại là một nhánh nhỏ hơn nằm trong ML, chuyên dùng cho ảnh, giọng nói và ngôn ngữ.
- Grab đoán giá cước và thời gian tới nơi, học từ hàng triệu chuyến đi thật trên đường phố Việt Nam.
- Shopee gợi ý sản phẩm, học từ lịch sử bấm, mua, đánh giá của hàng triệu người dùng.
- TikTok đoán video tiếp theo bạn sẽ thích, học từ cách bạn vuốt, xem lâu, bấm tim.
Bạn vừa gặp khái niệm quan trọng nhất: ML học từ dữ liệu. Để đi tiếp, hãy xem những khái niệm toán cần biết (không đáng sợ như bạn nghĩ), rồi tìm hiểu dữ liệu được tổ chức thế nào (trái tim của mọi mô hình ML).
- ML = máy tự rút ra quy tắc từ ví dụ, thay vì người viết tay từng luật if-else.
- Giống đầu bếp học từ nếm thử, không đọc công thức. Càng nhiều kinh nghiệm càng giỏi.
- Bốn bước: Dữ liệu → Học → Mô hình → Dự đoán (và phản hồi để học tiếp).
- Dùng ML khi pattern phức tạp và có dữ liệu. Đừng dùng khi công thức đã rõ.
- Rác vào, rác ra. Chất lượng dữ liệu quyết định mọi thứ.
Kiểm tra hiểu biết
Sự khác biệt cơ bản giữa lập trình thường và Machine Learning là gì?