Phân Loại Thuật Toán Machine Learning: Dựa Trên Phương Pháp Học và Chức Năng

Machine Learning (học máy) là một lĩnh vực rộng lớn với vô số thuật toán khác nhau. Để dễ dàng tiếp cận và ứng dụng, các thuật toán này thường được phân loại theo hai cách chính: dựa trên phương pháp học (learning style) và dựa trên chức năng (function). Bài viết này sẽ đi sâu vào cả hai cách phân loại này, giúp bạn có cái nhìn tổng quan và hệ thống về các thuật toán Machine Learning phổ biến.

1. Phân Nhóm Dựa Trên Phương Pháp Học

Cách phân loại này tập trung vào cách thức mà thuật toán học từ dữ liệu. Theo đó, các thuật toán Machine Learning được chia thành bốn nhóm chính:

Supervised Learning (Học Có Giám Sát)

Trong học có giám sát, thuật toán được cung cấp một tập dữ liệu đã được gán nhãn, tức là mỗi điểm dữ liệu đều đi kèm với một kết quả (outcome) hoặc nhãn (label) chính xác. Mục tiêu của thuật toán là học một hàm số ánh xạ từ dữ liệu đầu vào đến nhãn, sao cho khi có một dữ liệu mới chưa được gán nhãn, thuật toán có thể dự đoán nhãn của nó một cách chính xác.

Ảnh minh họa học có giám sát: Dữ liệu đầu vào và nhãn tương ứng được sử dụng để huấn luyện mô hình

Một cách hình thức, ta có một tập hợp biến đầu vào ( mathcal{X} = {mathbf{x}_1, mathbf{x}_2, dots, mathbf{x}_N} ) và một tập hợp nhãn tương ứng ( mathcal{Y} = {mathbf{y}_1, mathbf{y}_2, dots, mathbf{y}_N} ). Từ tập training data ( (mathbf{x}_i, mathbf{y}_i) in mathcal{X} times mathcal{Y} ), thuật toán sẽ xấp xỉ hàm số (f) sao cho ( mathbf{y}_i approx f(mathbf{x}_i), ~~ forall i = 1, 2, dots, N ).

Ví dụ:

  • Nhận dạng chữ viết tay: Thuật toán được huấn luyện trên hàng ngàn ảnh chữ số viết tay, mỗi ảnh được gán nhãn với chữ số tương ứng. Sau khi huấn luyện, thuật toán có thể nhận diện chữ số trong một ảnh mới.
  • Lọc email spam: Gmail sử dụng thuật toán học có giám sát để phân loại email là spam hay không spam, dựa trên các đặc trưng của email (ví dụ: từ khóa, người gửi, tiêu đề).

Supervised Learning được chia thành hai loại chính:

  • Classification (Phân loại): Nhãn được chia thành một số hữu hạn nhóm. Ví dụ: xác định một email là spam hay không spam, dự đoán giới tính dựa trên khuôn mặt.
  • Regression (Hồi quy): Nhãn là một giá trị thực liên tục. Ví dụ: dự đoán giá nhà dựa trên diện tích, số phòng ngủ và vị trí.

Unsupervised Learning (Học Không Giám Sát)

Trái ngược với học có giám sát, học không giám sát chỉ sử dụng dữ liệu đầu vào mà không có bất kỳ nhãn nào. Mục tiêu của thuật toán là khám phá ra cấu trúc tiềm ẩn trong dữ liệu, ví dụ như phân nhóm các điểm dữ liệu tương tự nhau hoặc giảm số chiều của dữ liệu để dễ dàng lưu trữ và xử lý.

Ảnh minh họa học không giám sát: Dữ liệu đầu vào không có nhãn, thuật toán tự tìm ra cấu trúc

Về mặt toán học, chúng ta chỉ có dữ liệu đầu vào (mathcal{X}) mà không biết nhãn (mathcal{Y}) tương ứng.

Ví dụ:

  • Phân cụm khách hàng: Phân nhóm khách hàng dựa trên hành vi mua hàng của họ để đưa ra các chiến dịch marketing phù hợp.
  • Phân tích giỏ hàng: Tìm ra các sản phẩm thường được mua cùng nhau để gợi ý khách hàng mua thêm.

Các bài toán Unsupervised learning được chia thành hai loại:

  • Clustering (Phân nhóm): Phân chia dữ liệu thành các nhóm nhỏ dựa trên sự tương đồng.
  • Association: Khám phá ra các quy luật hoặc mối quan hệ giữa các biến trong dữ liệu.

Semi-Supervised Learning (Học Bán Giám Sát)

Học bán giám sát là sự kết hợp giữa học có giám sát và học không giám sát. Trong trường hợp này, chúng ta có một lượng lớn dữ liệu nhưng chỉ một phần nhỏ trong số đó được gán nhãn. Thuật toán sẽ sử dụng cả dữ liệu có nhãn và dữ liệu không nhãn để cải thiện hiệu suất học.

Ví dụ:

  • Phân loại ảnh trên internet: Một phần nhỏ ảnh được gán nhãn (ví dụ: ảnh về người, động vật), phần lớn ảnh còn lại chưa được gán nhãn. Thuật toán học bán giám sát có thể sử dụng cả hai loại dữ liệu này để phân loại ảnh chính xác hơn.

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

Học củng cố là một phương pháp học tập trong đó một tác nhân (agent) học cách hành động trong một môi trường để tối đa hóa phần thưởng nhận được. Tác nhân sẽ thực hiện các hành động và nhận phản hồi từ môi trường dưới dạng phần thưởng hoặc hình phạt. Dựa trên phản hồi này, tác nhân sẽ điều chỉnh hành vi của mình để đạt được kết quả tốt nhất.

Ảnh minh họa học củng cố: Tác nhân tương tác với môi trường để học cách tối đa hóa phần thưởng

Ví dụ:

  • Chơi game: Thuật toán học cách chơi game bằng cách thử nghiệm các hành động khác nhau và nhận điểm số làm phần thưởng. Ví dụ điển hình là AlphaGo, chương trình đã đánh bại kỳ thủ cờ vây hàng đầu thế giới.
  • Điều khiển robot: Robot học cách di chuyển và thực hiện các nhiệm vụ bằng cách nhận phản hồi từ môi trường.

2. Phân Nhóm Dựa Trên Chức Năng

Cách phân loại này dựa trên mục đích sử dụng của thuật toán. Dưới đây là một số nhóm thuật toán phổ biến:

Regression Algorithms (Thuật toán Hồi quy)

Dùng để dự đoán một giá trị liên tục.

  • Linear Regression (Hồi quy tuyến tính)
  • Logistic Regression (Hồi quy Logistic)
  • Stepwise Regression

Classification Algorithms (Thuật toán Phân loại)

Dùng để phân loại dữ liệu vào các nhóm khác nhau.

  • Linear Classifier
  • Support Vector Machine (SVM)
  • Kernel SVM
  • Sparse Representation-based classification (SRC)

Instance-based Algorithms

Dựa trên việc so sánh các instance (mẫu) dữ liệu mới với các instance đã biết.

  • k-Nearest Neighbor (kNN)
  • Learning Vector Quantization (LVQ)

Regularization Algorithms

Sử dụng để ngăn chặn overfitting (quá khớp) trong mô hình.

  • Ridge Regression
  • Least Absolute Shrinkage and Selection Operator (LASSO)
  • Least-Angle Regression (LARS)

Bayesian Algorithms

Dựa trên định lý Bayes để tính toán xác suất.

  • Naive Bayes
  • Gaussian Naive Bayes

Clustering Algorithms (Thuật toán Phân cụm)

Dùng để phân nhóm dữ liệu.

  • k-Means clustering
  • k-Medians
  • Expectation Maximization (EM)

Artificial Neural Network Algorithms (Thuật toán Mạng Nơ-ron Nhân Tạo)

Mô phỏng cấu trúc và chức năng của bộ não con người.

  • Perceptron
  • Softmax Regression
  • Multi-layer Perceptron
  • Back-Propagation

Dimensionality Reduction Algorithms (Thuật toán Giảm Chiều)

Giảm số lượng biến đầu vào trong dữ liệu.

  • Principal Component Analysis (PCA)
  • Linear Discriminant Analysis (LDA)

Ensemble Algorithms

Kết hợp nhiều thuật toán khác nhau để cải thiện hiệu suất.

  • Boosting
  • AdaBoost
  • Random Forest

Kết luận

Việc phân loại thuật toán Machine Learning theo phương pháp học và chức năng giúp chúng ta dễ dàng lựa chọn thuật toán phù hợp cho từng bài toán cụ thể. Hiểu rõ các loại thuật toán khác nhau là bước quan trọng để xây dựng các mô hình Machine Learning hiệu quả và giải quyết các vấn đề thực tế.

Tài liệu tham khảo

  1. A Tour of Machine Learning Algorithms
  2. Điểm qua các thuật toán Machine Learning hiện đại