data,

What is Machine Learning?

Chau Chau Connect Feb 22, 2020 · 6 mins read
What is Machine Learning?

Share this post
Chắc hẳn các bạn đã nghe đến thuật ngữ Machine Learning hay Học Máy - một ngành đã và đang phát triển rất mạnh mẽ trong lĩnh vực Khoa học Máy tính. Vậy thực sự Machine Learning là gì? Ngành này quan tâm và giải quyết những vấn đề nào? Và hơn hết, để bắt đầu tìm hiểu về ngành học này, chúng ta nên bắt đầu từ đâu? STEMMeIn sẽ giúp bạn giải đáp ngắn gọn những câu hỏi này trong bài viết này, cũng như trả lời sâu hơn với nhiều ví dụ cụ thể trong chuỗi bài viết tiếp theo trên STEMMeIn Blog nhé!

Machine Learning là gì?

Machine Learning, như tên gọi của ngành, quan tâm đến việc giúp máy tính tự học mà không cần đến chỉ dẫn từ con người qua việc lập trình cụ thể từng trường hợp. Để làm được điều này, máy tính sẽ dựa vào các thuật toán giúp chúng tự học hỏi từ các dữ liệu có sẵn, và dự đoán được kết quả cho những dữ liệu chúng chưa từng gặp.

Ví dụ, bằng cách nhìn vào một số lượng lớn hình ảnh của các chữ số viết bằng tay có sẵn (các chữ số từ 0 đến 9) và sử dụng các thuật toán trong Machine Learning, máy tính có thể dự đoán khá chính xác những chữ số viết tay tiếp theo mà chúng nhận được. Nói cách khác, máy tính đã học được cách “nhìn” và nhận diện chữ số như con người.

Digits

Một số ứng dụng Machine Learning

Có nhiều cách phân loại các thuật toán trong Machine Learning. Sau đây là một số thuật toán dựa theo cách phân loại qua output - kết quả thu được của quá trình tự học, hoặc input - dữ liệu có sẵn cho máy tính.

Phân loại (Classification)

Supervised Learning Algorithms Dựa vào dữ liệu được phân loại sẵn, thuật toán có thể dự đoán dữ liệu mới (Nguồn http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/)

Dữ liệu có sẵn được chia sẵn ra làm nhiều loại, máy tính có nhiệm vụ dự đoán được loại của dữ liệu chưa từng nhìn thấy. Ví dụ trên về nhận diện chữ số viết tay chính là một ví dụ về phân loại. Một ví dụ khác đó là nhận dạng email rác - từ hàng loạt email bình thường và email rác, máy tính có thể quyết định được nếu một email nó chưa từng đọc là email rác hay không.

Phân nhóm (Clustering)

Clustering Máy tính phân nhóm dữ liệu thành 3 nhóm khác nhau (Nguồn Wikipedia)

Phân nhóm khác gì với Phân loại? Chúng khá giống nhau, chỉ khác là trong Phân nhóm, dữ liệu có sẵn không được chia thành loại từ đầu. Nói cách khác, trong Phân nhóm, máy tính được cho một loạt hình ảnh của các chữ số nhưng không biết từng hình ảnh ứng với chữ số nào. Chúng chỉ có thể phân nhóm những hình ảnh cho sẵn thành các nhóm, mỗi nhóm chứa những hình ảnh tương tự nhau mà có thể là cùng một chữ số 8 chẳng hạn. Khi chúng ta đưa máy tính một hình ảnh của số 8, máy tính sẽ xếp hình ảnh này vào nhóm của các số 8 - nhưng tất nhiên máy tính không biết nhóm này được gọi là “nhóm các số 8”!

Ta gọi phân nhóm là công việc unsupervised learning (học không giám sát), còn phân loại là supervised learning (học có giám sát), vì trong phân loại, ta cho máy tính biết kết quả phân loại mong muốn cho mỗi input bằng cách chia loại sẵn dữ liệu (gắn mỗi hình ảnh chữ số với giá trị chữ số của hình ảnh đó). Trái lại, trong phân nhóm, máy tính hoàn toàn không biết loại thật sự của input - kể cả input cho sẵn.

Hồi quy (Regression)

Regression Đồ thị Hồi quy tuyến tính (Nguồn Wikipedia)

Khác với hai loại trước, khi kết quả output nằm trong một số loại nhất định, Hồi quy cho phép dự đoán kết quả không nhất thiết được phân loại. Ví dụ khi được cho một loạt dữ liệu về giá tiền của nhiều căn nhà, đi kèm với diện tích nhà, chiều rộng, chiều dài, số tầng, vị trí…, máy tính có thể dự đoán được giá của một căn nhà mới khi nó biết được những thông số tương tự của căn nhà này. Theo bạn, Hồi qui sẽ thuộc về supervised learning hay unsupervised learning? Hãy comment bên dưới câu trả lời và giải thích lí do nhé!

Học củng cố (Reinforcement Learning)

Reinforcement learning Reinforcement learning là một trong rất nhiều thuật toán đã giúp AlphaGo đánh thắng con người ở môn cờ vây (Nguồn Wikipedia)

Khác với “unsupervised learning” và “supervised learning”, “reinforcement learning” là một thuật toán hữu dụng trong những trường hợp máy tính phải tương tác với môi trường động và phải hoàn thành một nhiệm vụ nào đó trong môi trường này. Ví dụ như rô bốt phải tìm đường ra trong một mê cung - mỗi bước đi đều thay đổi trạng thái của hệ - rô bốt gần đường ra hơn hay đi vào ngõ cụt, hoặc máy tính chơi đánh cờ với một đối thủ khác - cả lượt đi của máy tính và đối thủ đều thay đổi trạng thái ván cờ. Bằng cách cho máy tính cách tính điểm thưởng và điểm phạt sau mỗi lượt đi (ví dụ ăn quân của đối thủ so với bị ăn quân), máy tính sẽ nhận được “phản hồi” từ những nước đi trước của mình và dùng chúng để tính các bước tiếp theo.

Các tài liệu hay bằng tiếng Việt

Trong mỗi post mang tính chất giới thiệu sau này, STEMMeIn sẽ giới thiệu một nguồn tài liệu hay về môn Machine Learning dành cho các bạn yêu thích tìm hiểu sâu hơn về môn học hết sức hữu ích này.

Trong post lần này, STEMMeIn muốn giới thiệu blog Machine Learning của anh Vũ Hữu Tiệp - cựu học sinh chuyên Toán Thái Bình, hiện là nghiên cứu sinh ngành Học Máy và Thị Giác Máy Tính (Machine Learning and Computer Vision) tại Đại học bang Pennsylvania (Pennsylvania State University), Hoa Kỳ. Đây là 2 bài viết giới thiệu về Machine Learning và cách phân loại các thuật toán trong Machine Learning của anh Vũ Hữu Tiệp, với rất nhiều chi tiết nâng cao:

Lesson 1 - Giới thiệu về Machine Learning Lesson 2 - Phân nhóm các thuật toán Machine Learning

Các bài viết được cấu trúc khoa học, dễ hiểu với nhiều hình ảnh, ví dụ minh họa, giải thích những chủ đề quan trọng từ đơn giản đến nâng cao trong Machine Learning. Đặc biệt, blog viết bằng tiếng Việt nhưng vẫn đi kèm với thuật ngữ chuyên ngành bằng tiếng Anh để tiện cho việc tra cứu. Nếu các bạn muốn tìm hiểu sâu thêm về Machine Learning mà không thể đợi đến post tiếp theo của STEMMeIn thì hãy ghé thăm blog của anh Vũ Hữu Tiệp nhé!




Chau
Written by Chau
Hi, I am Chau. I love to talk about STEM and their applications in Arts and everyday life. Hope you find my site useful!