Tổng hợp tất cả các thuật toán trong Machine Learning (Phần 1)

Phần 1: Thuật toán Regression (Hồi quy)

1. Linear Regression (Hồi quy tuyến tính)

Tìm ra mối quan hệ tuyến tính (quan hệ bậc 1) giữa 1 hoặc nhiều input đầu vào x với giá trị kết quả y.

  • Simple Linear Regression: Chỉ có 1 đầu vào x
  • Multiple Linear Regression: Có nhiều đầu vào x

Có 1 số cách gọi x và y:

  • x: Independent variable (biến độc lập), feature (đặc trưng)
  • y: Dependent variable (biến phụ thuộc), target (mục tiêu)

Các bài toán thực tế có thể dùng:

  • Simple Linear Regression: Dự đoán lương dựa vào năm kinh nghiệm, diện tích => giá
  • Multiple Linear Regression: Tương tự trên nhưng có nhiều đầu vào x hơn

Loss function thường được sử dụng là Mean Squared Error (MSE), tập trung tối thiếu hóa trung bình của bình phương sai số giữa giá trị thực tế và giá trị dự đoán

{MSE} = \frac{1}{m} \sum_{i=1}^m \left( y^{(i)} - \hat{y}^{(i)} \right)^2

2. Polynomial Regression (Hồi quy đa thức)

\begin{aligned}
y = \sum_{i=0}^n w_ix^i
\end{aligned}

Về cơ bản, nó giống hệt Linear Regression nhưng thay vì chỉ có hạng tử bậc 1, ta còn có cả hạng tử bậc n. Giá trị n là giá trị mà ta sẽ quyết định khi áp dụng thuật toán

Một số lưu ý:

  • bậc n càng cao càng dễ bị overfit
  • nên chọn n nhỏ (2, 3), và tăng lên khi cần

3. Regularization và Regression

  • Overfitting: Độ phức tạp của mô hình lớn hơn rất nhiều so với độ phức tạp của dữ liệu. Với dữ liệu được huấn luyện có kết quả rất tốt, nhưng khi đem vào với dữ liệu mới thì dự đoán sẽ không còn chuẩn, sai số cao
  • Regularization: Vừa tối thiểu hóa sai số dữ liệu thực tế với mô hình, vừa kiểm soát tối thiểu hóa độ phức tạp của mô hình.

Khi w càng lớn MSE giảm nhưng Regularization tăng và ngược lại => Bài toán của chúng ta sẽ là tìm w sao cho 2 cái này có sự cân bằng.

Có 2 cách chính:

  • L2 (Ridge regression): phạt tổng bình phương trọng số w => giảm độ lớn của w khi đó giảm ảnh hưởng của feature nhưng không làm triệt tiêu feature như L1
\begin{aligned}
J(\mathbf{w}) = \frac{1}{m} \sum_{i=1}^m \left( \hat{y}^{(i)} - y^{(i)} \right)^2 + \lambda \sum_{j=1}^n w_j^2
\end{aligned}
  • L1 (Lasso regression): phạt tổng giá trị tuyệt đổi của w => ép cho 1 số w trở về 0 để khi đó feature sẽ ko ảnh hưởng đến dự đoán cuối cùng. Thường được dùng trong chọn lọc feature
\begin{aligned}
J(\mathbf{w}) = \frac{1}{m} \sum_{i=1}^m \left( \hat{y}^{(i)} - y^{(i)} \right)^2 + \lambda \sum_{j=1}^n |w_j|
\end{aligned}

Ngoài ra còn có Elastic Net kết hợp cả 2 cái trên, tận dụng L2 để giảm bớt trọng số và L1 để bỏ bớt 1 vài feature. Rất tốt khi áp dụng với dữ liệu phức tạp, có nhiều feature tương quan.

Phần 2: Thuật toán Classification (Phân loại)

1. Logistic Regression

\begin{aligned}
\hat{y} = \sigma(\mathbf{w}^\top \mathbf{x} + b) = \frac{1}{1 + e^{-(\mathbf{w}^\top \mathbf{x} + b)}}
\end{aligned}

Ánh xạ giá trị y của Linear Regression thành giá trị trong khoảng từ 0 đến 1. Sau đó, đặt 1 giá trị ngưỡng, nếu lớn hơn là class 1, nếu nhỏ hơn là class 0.

Sau khi Linear Regression đưa ra kết quả, đưa kết quả đó qua hàm sigmol để tạo ra giá trị từ 0 đến 1.

2. Multinomial Logistic Regression

Sử dụng khi có nhiều class thay vì chỉ 2. Thay vì dùng sigmol, ta dùng hàm softmax.

\begin{aligned}
P(y = k \mid \mathbf{x}) = \frac{e^{\mathbf{w}_k^\top \mathbf{x} + b_k}}{\sum_{j=1}^K e^{\mathbf{w}_j^\top \mathbf{x} + b_j}}
\end{aligned}

Leave a Reply