Giới thiệu
Trong thế giới máy học, mỗi ngày đều có những điều thú vị mới mẻ. Từ các kỹ thuật học tăng cường (RL), kiến trúc transformer hiệu quả hơn GPT-2, đến việc tạo dữ liệu tổng hợp để huấn luyện mạng nơ-ron. Tuy nhiên, trước khi khám phá những điều phức tạp này, hãy cùng nhớ lại một phương pháp đã được kiểm chứng theo thời gian, dễ hiểu và hiệu quả cho những bài toán đơn giản hơn: Hồi quy tuyến tính.
Nếu tóm tắt trong một câu, hồi quy tuyến tính là một mô hình máy học cố gắng tìm ra một phương trình tuyến tính:
$$f(x) = y = ax + b$$
Mục tiêu là tìm ra phương trình này sao cho nó phù hợp nhất với dữ liệu của chúng ta.
Định Nghĩa "Phù Hợp Nhất"
Nhưng vấn đề đầu tiên mà chúng ta gặp phải là: làm thế nào để định nghĩa “phù hợp nhất với dữ liệu của chúng ta”? Chúng ta có một vài phương pháp tiếp cận khác nhau. Trước tiên, hãy định nghĩa hàm chi phí của chúng ta:
$$Eᵢ = yᵢ - f(xᵢ)$$
Vậy làm thế nào để tối ưu hóa hàm chi phí này để dự đoán dữ liệu của chúng ta một cách chính xác nhất?
Phương Pháp 1: Tối Thiểu Hóa Sai Số
$$Σ_{i=1}^{n} (Eᵢ)$$
Điều này chỉ đơn giản là tối thiểu hóa sự biến đổi tổng thể của từng điểm dữ liệu so với phương trình tuyến tính dự đoán. Tuy nhiên, nếu bạn để ý, các sai số dương và âm có thể cộng lại cho giá trị thấp, nhưng điều đó không nhất thiết phải chính xác và có thể dẫn đến nhiều đường thẳng khác nhau.
Phương Pháp 2: Lấy Giá Trị Tuyến Tính Tuyệt Đối
$$Σ_{i=1}^{n} (|Eᵢ|)$$
Nếu các giá trị âm và dương hủy nhau, hãy lấy giá trị tuyệt đối. Tuy nhiên, phương pháp này cũng có thể trả về nhiều đường thẳng với tối thiểu là 2.
Phương Pháp 3: Tiêu Chí Bình Phương Nhỏ Nhất
$$Σ_{i=1}^{n} (Eᵢ²)$$
Đây là tiêu chí bình phương nhỏ nhất và nó giúp khắc phục cả hai vấn đề lớn của chúng ta, đó là việc có nhiều đường thẳng và các dấu hiệu trái ngược hủy nhau.
Cách Mà Máy Tìm Ra Phương Trình
Có hai cách chính để tìm ra phương trình cho mô hình hồi quy tuyến tính:
- Phương trình dạng đóng: Nếu tập dữ liệu không quá lớn, độ dốc và giao điểm có thể được giải quyết gần như ngay lập tức.
- Gradient Descent: Nếu tập dữ liệu lớn, công thức trở nên phức tạp và việc giải quyết các giá trị cần thiết tốn thời gian. Thay vì làm vậy, ta chỉ cần để máy tính đi xuống từng bước, điều chỉnh cho đến khi đạt điểm thấp nhất.
Hồi Quy Tuyến Tính Với Nhiều Biến
Khi có một biến, chúng ta đang vẽ một đường thẳng trên đồ thị 2D; với hai biến, nó trở thành một mặt phẳng trong không gian 3D. Tuy nhiên, khi số biến tăng lên, chúng ta không thể trực quan hóa được nữa. Hãy xem xét ví dụ về chi phí nhà ở trong thành phố giả tưởng “Machineland”:
$$Price = 100Area + 7000Bedrooms + 30000Location + 25No. of humanoids + Intercept$$
Mỗi hệ số cho biết tác động của đặc tính đó khi giữ các đặc tính khác không đổi. Tuy nhiên, một hạn chế là các biến có thể đôi khi phụ thuộc lẫn nhau, dẫn đến hiện tượng đa cộng tuyến.
Tại Sao Hồi Quy Tuyến Tính Quan Trọng?
- Dễ hiểu: Kết quả dễ giải thích.
- Nhanh chóng: Có thể tính toán ngay cả trên tập dữ liệu lớn.
- Cơ sở: Mọi quy trình máy học đều bắt đầu từ đây.
Demo Mã Lệnh
Chạy đoạn mã này trong IDE Python của bạn để tương quan giữa kích thước miếng pizza và mức độ hạnh phúc bằng hồi quy tuyến tính 🍕🥳
python
from sklearn.linear_model import LinearRegression
import numpy as np
# Kích thước pizza tính bằng inch
X = np.array([[6], [8], [10], [12], [14]])
# Mức độ hạnh phúc từ 10 (hoàn toàn tưởng tượng!)
y = np.array([3, 5, 7, 9, 10])
# Huấn luyện mô hình
model = LinearRegression()
model.fit(X, y)
print("Độ dốc:", model.coef_[0])
print("Giao điểm:", model.intercept_)
print("Dự đoán mức độ hạnh phúc cho pizza 16 inch:", model.predict([[16]])[0])
Kết quả của bạn sẽ như sau:
Độ dốc: 0.7
Giao điểm: -1.5
Dự đoán mức độ hạnh phúc cho pizza 16 inch: 9.7
Kết Luận
Hy vọng bạn đã thích cái nhìn tổng quan về chủ đề thú vị này. Trước khi thực hiện dự án AI tiếp theo của bạn, hãy tôn trọng cái nôi của máy học, đó chính là hồi quy tuyến tính.
Cảm ơn bạn đã đọc!