ToanNV's Blog

ToanNV

Developer, living in Tokyo, get married.


"Good friends, good books, and a sleepy conscience: this is the ideal life." ― Mark Twain

[Course][ML] Machine learning là gì?

Introduction

Machine Learning definition

Machine learning được định nghĩa như sau:

"Một chương trình máy tính được gọi là học từ kinh nghiệm E để hoàn thành nhiệm vụ T và hiệu quả đo được là P, nếu hiệu quả đó khi thực hiện T, được đánh giá bởi P, và cải thiện kinh nghiệm E."

Nguyên gốc bản tiếng anh:

“A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.”

Thoạt đầu đọc thì có vẻ khó hiểu, nhưng nếu đọc kỹ thì sẽ thấy ý tưởng thực sự ở đây rất đơn giản. Ví dụ một đứa trẻ biết ngồi và đang trong giai đoạn chuẩn bị biết đi, đứa trẻ đó sẽ tập đứng lên, ngã, đứng lên, ngã... rất nhiều lần, rồi nó dần dần biết đứng rồi, chập chững đi, và sau đó là đi và chạy. Thì ở đây, nhiệm vụ của đứa trẻ mong muốn là đi được(T), và nó học được điều đó sau những lần vấp ngã(E), và hiệu quả đo được là tốc độ bước đi của đứa trẻ, hay số lần bị ngã P. Và sau mỗi lần vấp ngã đó thì đứa trẻ lại đứng lên và đi với tốc độ ngày càng nhanh hơn, hay số lần vấp ngã sẽ giảm xuống (cải thiện kinh nghiệm E). Chương trình tính cũng giống như vậy, nó sẽ thực hiện 1 nhiệm vu T để thu được kinh nghiệm E, với hiệu quả đo được là P, và dựa vào kinh nghiệm E thực hiện nhiệm vụ T để cải tiến E với hiệu quả đo được là P.

Trong ML thì nhiệm vụ T thường là xử lý dữ liệu thế nào cho tốt(dữ liệu chứa nhiều features). Và dữ liệu này thường được biểu diễn dưới dạng vector đặc trưng. Tại sao lại là vector?

Trong ML thì dữ liệu thường được chia ra làm 2 tập riêng biệt: training settest set.

  • Training set: dùng để tìm kiếm các tham số mô hình.
  • Test set: dùng để kiểm tra hiệu quả P của mô hình đã tìm ra.

Quá trình train, là quá trình trải nghiệm(E) trên các tập dataset, các tập dữ liệu khác nhau sẽ mang lại trải nghiệm khác nhau, do đó chất lượng của tập dữ liệu train ảnh hưởng mật thiết đến chất lượng của mô hình thu được.

Trong ML thì có hai thuật toán học phổ biến là: Supervised learning và Unsupervised learning. Ngoài ra thì có nhiều thuật toán khác như: Reinforcement learning (gần đây khá nổi vì giải quyết được các giới hạn gặp phải trước đó), recommender systems...

Supervised learning

Là thuật toán dự đoán output của một hoặc nhiều dữ liệu mới dựa trên các cặp (input, output) đã biết. Hay nói một cách đơn giản là tìm một hàm số để mapping tập input với tập output.

Thuật toán này có hai loại thường gặp là:

  • Classification
  • Regression

Unsupervised learning

Với thuật toán này chúng ta chỉ biết input là các vector đặc trưng, chứ không biết về output. Nghĩa là với một input I mô hình sẽ làm việc và đưa ra một output O, mà chúng ta không biết kết quả chính xác là gì. Ví dụ, đưa cho chương trình một tập dữ liệu các bài báo, chương trình sẽ phân loại chúng ra theo các feature (có thể là chủ đề, là category...)