Những điều cơ bản về Logistic Regression

Chào mọi người, trong bài viết này chúng ta sẽ tìm hiểu vấn đề cơ bản về thuật toán Logistic Regression. Thuật toán Logistic Regression là một thuật toán phân loại sử dụng trong các bài toán mà đầu ra có thể được biến đổi để trả về một giá trị xác suất.
Ví dụ:

  • Xác suất thi đỗ nếu biết thời gian ôn thi
  • Xác suất ngày mai có mưa hay không dựa trên thông tin đo được trước đó
  • Dự đoán xem thư đó là spam hay không…

Sự khác nhau giữa thuật toán Logistic Regression và Linear Regression:
Lấy ví dụ là dữ liệu cho trước bao gồm thời gian ôn tập và kết quả thi. Ta thấy:

  • Linear Regression: có thể giúp ta dự đoán điểm của học sinh đó là bao nhiêu trong khoảng từ 0-10.
  • Logistic Regression: có thể giúp ta dự đoán được học sinh đó trượt hay đỗ bài kiểm tra đó.

Mở đầu bài toán

Giả sử có dữ liệu của một nhóm 20 sinh viên dành thời gian trong khoảng từ 0-6 giờ cho việc ôn thi.Thời gian ôn thi này có ảnh hưởng như thế nào đến kết quả thi của sinh viên?
Ta có bảng kết quả sau:


Ta thấy rằng có người dành 3.5 giờ cho việc ôn thi nhưng kết quả là trượt trong khi có người chỉ dành 1.75 giờ ôn thi nhưng kết quả thì đỗ. Vậy nên không thể áp dụng thuật toán PLA (Perception Learning Algorithm) trong bài toán này được vì không thể nói một người học bao nhiêu giờ sẽ đỗ 100%, và ví dụ của người dành 1.75 giờ và 3.5 ôn thi cho thấy dữ liệu này không thể linearly separable được vì luôn tồn tại hai điểm dữ liệu bị phân lớp lỗi (để hiểu rõ hơn về thuật toán PLA, mọi người có thể tham khảo thêm bài viết Sơ lược về Perceptron Learning Algorithm của chị Tina).

Chúng ta biểu diễn các điểm trên đồ thị để dễ dàng quan sát hơn:

Mô hình thuật toán

Đầu ra dự đoán của Logistic Regression thường được viết chung dưới dạng:

image


Ta nhận thấy rằng:
  • Xác suất một sự kiện xảy ra nằm trong khoảng [0,1]
  • Xác suất càng cao thì sự kiện đó càng chắc chắn xảy ra. Ví dụ như ôn tập càng nhiều giờ thì tỉ lệ đỗ càng lớn.

Và trong các hàm số, thì hàm sigmoid có đủ các tính chất trên và được sử dụng nhiều nhất:

image

Hàm mất mát và phương pháp tối ưu

Xây dựng hàm mất mát

Với mô hình trên, ta giả sử xác suất để một điểm x rơi vào class 1 là f(wtx) và rơi vào class 0 là 1 - f(wtx). Ta có thể viết như sau:

image


trong đó P(yi=1|xi;w) được hiểu là xác suất y = 1 xảy ra khi biết tham số mô hình w và dữ liệu đầu vào xi.Mục đích của chúng ta là tìm các hệ số w sao cho f(wtxi) càng gần với 1 càng tốt với các điểm dữ liệu thuộc class 1 và càng gần với 0 càng tốt với những điểm thuộc class 0.
Ký hiệu zi = f(wtxi) và viết gộp hai biểu thức lại ta có:

image


Xét toàn bộ tập training set với X = [x1,x2,…,xn] ∈ RdxNy = [y1,y2,…,yn], chúng ta cần tìm w để biếu thức sau đây đạt giá trị lớn nhất:

image


ở đây, ta ký hiệu X, y như các biến ngẫu nhiễn, nói cách khác:

image

Tối ưu hàm mất mát

  • Chúng ta lại sử dụng phương pháp Stochastic Gradient Descent (SGD). Nhắc qua một chút phương pháp SGD (biến thể của phương pháp Gradient Descent (GD)), thì ở phương pháp này, ta chỉ tính đạo hàm của hàm mất mát dựa trên chỉ một điểm dữ liệu xi rồi cập nhật θ dựa trên đạo hàm này.
  • Trong bài toán này, hàm mất mát với chỉ một điểm dữ liệu (xi,yy) là:

image


và sau khi đạo hàm, kết quả ta thu được là:

image


Và công thức cập nhật (theo thuật toán SGD) cho Logistic regression là:

image

Trên đây là một số vấn đề cơ bản của thuật toán Logistic regression mà mình tìm hiểu được.

1 Like