[Nhập môn Machine Learning] Bài 2: Supervised Learning và Unsupervised Learning



Ở bài trước, mình đã nói về mục đích của Machine Learning và nó đã đưa cho chúng ta một giải pháp cho các vấn đề còn tồn đọng. Tuy nhiên, những vấn đề có thể sử dụng Machine Learning để giải quyết cũng được chia ra làm 2 loại chính mà các bạn nên biết. Đó chính là Supervised LearningUnsupervised Learning. 

Sự kỳ diệu của dữ liệu

Dữ liệu, hẳn là một từ quen thuộc trong cuộc công nghệ số ngày nay. Mọi thứ đều có thể là dữ liệu, từ dòng tin nhắn, tấm ảnh hay lịch sử truy cập trang web của bạn. Không chỉ trong thế giới số, dữ liệu mới được hình thành, mà từ thưở ban đầu, khi chưa có sự xuất hiện của máy tính, ta đã sống chung với dữ liệu rồi. Bạn cao bao nhiêu, nghề nghiệp, quê quán, tuổi tác đều là dữ liệu cả. Nhưng, chỉ khi có máy tính, dữ liệu mới được mã hóa dưới dạng 0 và 1. Từ đó khiến ta dễ dàng tương tác và vận chuyển chúng dễ dàng hơn (những thứ bạn đang xem trên màn hình này đều được cấu thành và chuyển tới bởi 0 và 1 đấy).

Không chỉ biểu thị thông tin, những dữ liệu còn mang cho ta khả năng dự đoán nữa (Tuyệt vời! Machine Learning thích điều này). Nếu bạn quan sát thấy Mặt Trời ngày nào cũng mọc ở phía Đông dù bạn có đứng ở nhà hay ở đâu đi nữa. Từ dữ liệu đã có sẵn, mai bạn có thể đoán rằng chắc chắn, Mặt Trời sẽ mọc ở phía Đông. Tất nhiên, khả năng Mặt Trời mọc ở phía Tây cũng có nhưng khả năng xảy ra là không cao. Nên đa phần, dự đoán của bạn sẽ đúng.

Chúng ta vừa bàn đến một điều hiển nhiên. Bây giờ, hãy chuyển qua một chủ đề "bớt hiển nhiên" hơn nhé. Tôi trao bạn một đồng xu và hỏi rằng, khi búng lên, mặt nào của đồng xu sẽ ngửa lên? Rõ ràng đây là tình huống 50-50.
Thú thật, tôi đã ăn gian, đồng xu của bạn có mặt ngửa nặng hơn mặt sấp, khi nó rơi xuống đất khả năng cao sẽ là mặt sấp. Rõ ràng bạn không biết về điều này và tôi cũng không nói cho bạn. Nhưng nếu trước đó bạn đã quan sát đồng xu này nhiều lần thì chắc chắn quy luật đó cũng sẽ rõ ràng với bạn.
Và dự đoán của bạn sẽ chính xác hơn.

Vậy là từ những dữ liệu đã có trước đó, ta có thể lập ra những quy luật để dự đoán tương lai. Machine Learning cũng thế, chúng nhìn vào dữ liệu và xây dựng ra quy luật cho việc dự đoán của chúng. Từ những yếu tố kể trên, bạn nên nhớ trong Machine Learning, dữ liệu là quan trọng. Vậy nên, trước khi có một ý tưởng cho một dự án Machine Learning ,điều tôi luôn nghĩ tới đầu tiên là: 
"Dữ liệu đâu?" 

Supervised Learning

Supervised Learning (hay dịch theo tiếng Việt là học có giám sát) là những bài toán trong khi bạn thu thập dữ liệu để máy tính có thể giải nó hộ bạn. Bạn cũng đã thu thập luôn kết quả cần dự đoán. Giả sử bạn thu thập dữ liệu về giá cả đất đai để phục vụ cho cỗ máy dự đoán giá đất của mình. Dữ liệu có thể trông như thế này.
Đây là một bài toán thuộc supervised learning. Ta gọi những dữ liệu trên là dữ liệu đã dán nhãn.

Một số ví dụ khác có thể kể ra như phân loại thư rác, dự đoán giá đất hay nhận diện chữ viết tay,...
Trong thực tế, đa số các vấn đề đều nằm trong dạng này. Bạn có thể kể ra thêm một vài ví dụ nữa không?

Thuộc lĩnh vực của Supervised Learning, ta có thêm 2 loại nữa.

Regression

Giá trị mà chúng ta dự đoán là giá trị liên tục. Giá trị liên tục có thể hiểu đơn giản là dãy số của ta. Ví dụ trong việc dự đoán giá đất thì giá trị đưa ra có thể là \$1000, \$1500 hay \$2310.526. Nói chung là có vô số giá trị để dự đoán.

Classification

Mặt khác, classification chỉ trả về giá trị rời rạc. Bạn cũng có thể nghĩ nó giống như là các nhóm riêng biệt. Tung đồng xu thì chỉ dự đoán "sấp" hoặc "ngửa". Nhận diện chữ số viết tay thì chỉ kết quả chỉ là một trong các số từ 0-9. Mục đích của chúng ta là phân loại vào một trong các nhóm cho trước.

Unsupervised Learning

Ngược lại với supervised learning khi thu thập dữ liệu, ta chỉ thu thập đống dữ liệu không có nhãn. Có thể bạn sẽ nghĩ: "Không có nhãn tức là không dự đoán gì à?". Cũng không hẳn, khác với supervised learning là chúng ta có dữ liệu để đối chiếu xem dự đoán của ta là đúng hay sai (nếu mảnh đất 150 $m^2$ mà chỉ có $210 thôi là biết sai rồi), dự đoán của các vấn đề thuộc unsupervised learning mặt nào đó không có sự đúng-sai. Một vấn đề tôi thường gặp thuộc unsupervised learning là: "Tôi có một đống các dữ liệu. Dữ liệu này có thể chia ra thành bao nhiêu nhóm?"

Tôi có ở đây dữ liệu về chiều cao và cân nặng của thị trường quần áo tiềm năng (mà đa số dữ liệu là giả).


 Để có thể tiết kiệm chi phí nhưng vẫn thu được lợi nhuận. Tôi cần xác định số nhóm nhỏ nhất có thể chia ra của thị trường này dựa trên chiều cao và cân nặng để từ đó làm ra những chiếc áo có kích cỡ phù hợp. Chương trình Machine Learning của tôi có thể cho ra kết quả sau.

Vậy là tôi có thể làm 3 kích thước áo khác nhau lần lượt là S, M, L cho 3 nhóm trên. Nhưng thật ra việc chia nhóm này không thực sự có câu trả lời đúng. Những cách chia dưới cũng có thể coi là hợp lý.
Có một dự án thuộc về unsupervised learning của GoogleAI mới đây đã làm mọi người ấn tượng. Các nhà nghiên cứu của GoogleAI đã có thể tách riêng ra giọng nói của một người từ hỗn hợp các âm thanh khác nhau (lý do gọi là unsupervised learning vì họ chỉ yêu cầu máy chia nhóm từ hỗn hợp các tần số âm). Hãy cùng xem video dưới để kết thúc bài viết này và cảm nhận độ "vi diệu" nhé.


Link full: https://www.youtube.com/watch?v=rVQVAPiJWKU

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

Phép phân tích ma trận A=LU

Độc lập tuyến tính và phụ thuộc tuyến tính

Thuật toán tính lũy thừa nhanh. Giải thích một cách đơn giản