AIToanHoc.comAI Toán Học
Toán đứng sau trí tuệ nhân tạo

Hồi quy logistic là gì: hàm sigmoid, tỉ số odds và một bước huấn luyện tính tay

Hồi quy logistic dự đoán xác suất có hay không bằng hàm sigmoid. Tính tay một ví dụ lọc thư, đọc hệ số qua tỉ số odds, một bước huấn luyện và chọn ngưỡng.

Dong Nai post office sorting room, a clerk seen from behind dividing envelopes into two wooden trays, warm afternoon light through tall windows, medium shot

Hồi quy logistic là mô hình dự đoán xác suất một sự việc xảy ra, ví dụ thư có phải thư rác không, bằng cách tính một tổng có trọng số của các đặc trưng rồi đưa qua hàm sigmoid để ép kết quả vào khoảng từ 0 đến 1. Dù tên có chữ hồi quy, đây là mô hình phân loại. Nó cũng chính là một nơ-ron nhân tạo đơn lẻ với hàm kích hoạt sigmoid, nên hiểu nó là bước đệm tự nhiên để hiểu mạng nơ-ron.

Mô hình này vẫn được dùng rộng rãi trong thống kê y sinh, chấm điểm rủi ro và làm mốc so sánh cho các mô hình phức tạp hơn, vì hệ số của nó đọc được bằng ngôn ngữ thường. Bài này tính tay với ví dụ giả định lọc thư, giải thích cách đọc hệ số qua tỉ số odds, thực hiện một bước huấn luyện bằng tay, và bàn về việc chọn ngưỡng quyết định.

Vì sao không dùng hồi quy tuyến tính cho bài toán có hoặc không

Giả sử nhãn là 1 cho thư rác và 0 cho thư thường. Nếu khớp một đường thẳng như hồi quy tuyến tính, đầu ra có thể là 1,4 hoặc −0,3, những con số không thể là xác suất. Tệ hơn, vài điểm dữ liệu ở xa có thể kéo nghiêng cả đường thẳng, làm ranh giới phân loại dịch chuyển dù các điểm đó đã được phân loại đúng rõ ràng.

Hồi quy logistic giữ phần tuyến tính nhưng đổi cách diễn giải. Tổng có trọng số z = w1·x1 + w2·x2 + … + b không còn được coi là xác suất, mà là log odds, tức logarit của tỉ số giữa khả năng xảy ra và khả năng không xảy ra. Log odds có thể là bất kỳ số thực nào, âm vô cùng tới dương vô cùng, nên mô hình tuyến tính hợp với nó. Sau đó hàm sigmoid đổi log odds ngược về xác suất.

Cách nhìn này cho mô hình hai điểm mạnh. Đầu ra luôn là xác suất hợp lệ. Và mỗi hệ số có nghĩa rõ ràng: tăng một đặc trưng lên một đơn vị thì log odds tăng đúng bằng hệ số của nó, giữ nguyên các đặc trưng khác.

Hàm sigmoid: ép mọi số thực vào khoảng 0 đến 1

Hàm sigmoid có công thức σ(z) = 1 chia (1 + e mũ −z). Bảng dưới cho giá trị tại vài điểm, làm tròn bốn chữ số:

z−3−2−10123
σ(z)0,04740,11920,26890,50,73110,88080,9526

Ba tính chất đáng nhớ. Tại z = 0, xác suất đúng bằng 0,5, đây là chỗ mô hình phân vân nhất. Hàm đối xứng: σ(−z) = 1 − σ(z), ví dụ 0,1192 + 0,8808 = 1. Và hàm thay đổi nhanh nhất quanh 0, phẳng dần ở hai đầu: đi từ z = 0 lên 1 xác suất tăng khoảng 0,23, nhưng đi từ 3 lên 4 chỉ tăng khoảng 0,03.

Đạo hàm của sigmoid có dạng rất gọn: σ′(z) = σ(z)·(1 − σ(z)), lớn nhất bằng 0,25 tại z = 0. Tính chất này làm phép tính gradient khi huấn luyện trở nên đơn giản, và cũng là nguyên nhân sigmoid làm gradient teo lại khi xếp nhiều lớp trong mạng sâu.

Tính tay với ví dụ lọc thư rác

Ví dụ giả định với hai đặc trưng: x1 là số đường liên kết trong thư, x2 bằng 1 nếu thư có cụm “khuyến mãi” và 0 nếu không. Giả sử mô hình đã có trọng số w1 = 0,8, w2 = 1,5 và độ lệch b = −3.

  1. Thư A có 2 liên kết và có cụm “khuyến mãi”: z = 0,8·2 + 1,5·1 − 3 = 0,1. Xác suất là σ(0,1), xấp xỉ 0,525. Mô hình gần như phân vân.
  2. Thư B có 5 liên kết và có cụm “khuyến mãi”: z = 0,8·5 + 1,5 − 3 = 2,5. Xác suất là σ(2,5), xấp xỉ 0,924. Khả năng cao là thư rác.
  3. Thư C không có liên kết, không có cụm đó: z = 0 + 0 − 3 = −3. Xác suất xấp xỉ 0,047. Gần như chắc là thư thường.
  4. Với ngưỡng 0,5, cả A và B bị xếp là thư rác, C là thư thường. Nhưng A chỉ vượt ngưỡng một chút, một hệ thống cẩn thận có thể đưa A vào mục “cần xem lại” thay vì chặn hẳn.

Ranh giới giữa hai lớp là nơi z = 0, tức 0,8·x1 + 1,5·x2 = 3. Đây là một đường thẳng trong mặt phẳng hai đặc trưng. Hồi quy logistic luôn cho ranh giới tuyến tính theo các đặc trưng đầu vào; muốn ranh giới cong, phải tự tạo đặc trưng phi tuyến hoặc chuyển sang mô hình khác.

Đọc hệ số qua tỉ số odds

Odds của một sự việc là xác suất xảy ra chia cho xác suất không xảy ra. Xác suất 0,5 có odds bằng 1, xác suất 0,8 có odds bằng 4, nghĩa là khả năng xảy ra gấp bốn lần khả năng không xảy ra. Trong hồi quy logistic, log odds bằng z, nên odds bằng e mũ z.

Từ đó có cách đọc hệ số rất hữu ích: tăng x1 thêm một đơn vị thì odds được nhân với e mũ w1. Với w1 = 0,8, e mũ 0,8 xấp xỉ 2,23. Nghĩa là trong ví dụ giả định, mỗi liên kết thêm vào làm odds thư rác tăng khoảng 2,23 lần. Kiểm với thư A: z = 0,1 cho odds xấp xỉ 1,105; thêm một liên kết thì z = 0,9, xác suất xấp xỉ 0,711, odds xấp xỉ 2,46, đúng bằng 1,105 nhân 2,23.

Cần cẩn thận ở hai điểm khi diễn giải. Hệ số nhân odds, không nhân xác suất; tăng odds 2,23 lần ứng với mức tăng xác suất rất khác nhau tuỳ điểm xuất phát. Và hệ số chỉ mô tả mối liên hệ trong dữ liệu, giữ nguyên các đặc trưng khác, không chứng minh quan hệ nhân quả. Trong nghiên cứu y sinh, tỉ số odds từ hồi quy logistic được báo cáo rất phổ biến, và việc đọc nhầm nó thành tỉ số xác suất là lỗi hay gặp.

Huấn luyện: một bước cập nhật làm bằng tay

Hồi quy logistic được huấn luyện bằng cách tối thiểu hoá entropy chéo nhị phân: với một mẫu có nhãn y và xác suất dự đoán p, mất mát là −[y·ln p + (1 − y)·ln(1 − p)]. Ghép với sigmoid, đạo hàm theo mỗi trọng số có dạng rất gọn: (p − y) nhân đặc trưng tương ứng; đạo hàm theo độ lệch là (p − y).

Giả sử thư A thật ra là thư rác, tức y = 1, và mô hình đang cho p ≈ 0,525. Sai lệch p − y ≈ −0,475. Gradient theo w1 là −0,475 · 2 = −0,95; theo w2 là −0,475 · 1 = −0,475; theo b là −0,475. Với tốc độ học 0,1, trọng số mới là w1 = 0,8 + 0,095 = 0,895; w2 = 1,5 + 0,0475 = 1,5475; b = −3 + 0,0475 = −2,9525.

Tính lại cho thư A: z = 0,895·2 + 1,5475 − 2,9525 = 0,385, xác suất xấp xỉ 0,595, tăng từ 0,525. Mất mát giảm từ khoảng 0,644 xuống khoảng 0,519. Mô hình đã nhích về phía đáp án đúng. Huấn luyện thật lặp bước này trên hàng nghìn mẫu, mỗi mẫu kéo trọng số về phía của nó, và kết quả cuối là sự cân bằng giữa tất cả các lực kéo đó. Hàm mất mát của hồi quy logistic là hàm lồi, nên thuật toán hạ dốc với tốc độ học phù hợp sẽ tiến về đúng một cực tiểu, không có chuyện kẹt ở cực tiểu địa phương.

Chọn ngưỡng quyết định: 0,5 không phải lúc nào cũng đúng

Mô hình cho xác suất, còn quyết định chặn hay không chặn là do bạn đặt ngưỡng. Ngưỡng nên chọn theo hậu quả của từng loại sai trong bài toán cụ thể:

NgưỡngĐiều xảy raHợp với tình huống
Thấp, ví dụ 0,3Bắt được nhiều trường hợp dương hơn, nhưng báo nhầm nhiều hơnSàng lọc ban đầu, nơi bỏ sót rất tốn kém và có bước kiểm thứ hai
0,5Cân bằng hai loại sai khi chúng có chi phí như nhau và hai lớp cân đốiĐiểm khởi đầu mặc định, cần kiểm lại theo dữ liệu thật
Cao, ví dụ 0,9Ít báo nhầm, nhưng bỏ sót nhiều hơnHành động tự động khó đảo ngược, như chặn hẳn thư hay khoá tài khoản

Cách chọn có cơ sở là thử nhiều ngưỡng trên tập kiểm định, ghi lại số trường hợp bắt đúng và báo nhầm ở mỗi ngưỡng, rồi chọn theo chi phí thực tế. Đường cong ROC và diện tích dưới đường cong tóm tắt việc đó cho mọi ngưỡng cùng lúc. Khi một lớp rất hiếm, nên xem thêm độ chính xác dương và độ nhạy thay vì chỉ nhìn độ chính xác tổng.

Giới hạn cần biết trước khi dùng

Ranh giới tuyến tính. Nếu hai lớp chỉ tách được bằng đường cong, hồi quy logistic thuần sẽ kém, trừ khi bạn tự thêm đặc trưng như bình phương hay tích của hai đặc trưng.

Dữ liệu tách hoàn toàn. Khi có một đường thẳng tách đúng mọi mẫu, mô hình có thể giảm mất mát mãi bằng cách tăng độ lớn trọng số, và hệ số tiến tới vô cùng. Thêm chính quy hoá là cách xử lý thường dùng.

Đặc trưng tương quan mạnh. Hai đặc trưng gần như trùng thông tin làm hệ số của từng cái không ổn định, khó diễn giải, dù xác suất dự đoán vẫn ổn.

Thang đo khác nhau. Đặc trưng đo bằng triệu và đặc trưng đo bằng phần nghìn cho hệ số không so sánh được với nhau. Chuẩn hoá trước khi so độ lớn hệ số.

Vẫn nên chạy nó làm mốc so sánh. Trước khi dựng một mô hình phức tạp cho bài toán phân loại trên dữ liệu dạng bảng, hãy huấn luyện hồi quy logistic trước. Nó nhanh, ít tham số, dễ kiểm. Nếu mô hình phức tạp chỉ hơn mốc này một chút, cái giá về thời gian, chi phí vận hành và khả năng giải thích có thể không đáng. Nếu hơn hẳn, bạn có bằng chứng rằng dữ liệu thật sự chứa quan hệ phi tuyến đáng khai thác.

Xác suất chưa chắc đã chuẩn. Mô hình cho 0,8 không có nghĩa trong thực tế 80% trường hợp như vậy là dương. Cần kiểm độ hiệu chỉnh trên dữ liệu mới, nhất là khi dữ liệu huấn luyện được lấy mẫu lại cho cân bằng lớp.

Câu hỏi thường gặp

Hồi quy logistic có phải là mạng nơ-ron không?

Có thể coi là mạng nơ-ron đơn giản nhất: một nơ-ron, hàm kích hoạt sigmoid, hàm mất mát entropy chéo nhị phân. Mạng nơ-ron nhiều lớp tự học các đặc trưng phi tuyến ở lớp ẩn rồi mới đưa vào một lớp đầu ra mà về bản chất thường chính là hồi quy logistic hoặc phiên bản nhiều lớp của nó.

Phân loại nhiều hơn hai lớp thì làm thế nào?

Có hai cách phổ biến. Cách thứ nhất là huấn luyện một mô hình riêng cho mỗi lớp so với phần còn lại. Cách thứ hai là hồi quy softmax, mở rộng tự nhiên của hồi quy logistic: mỗi lớp có một bộ trọng số, các điểm số đi qua softmax để thành vector xác suất có tổng bằng 1.

Vì sao không dùng MSE làm hàm mất mát cho hồi quy logistic?

Ghép MSE với sigmoid cho một hàm mất mát không lồi, có thể có nhiều vùng phẳng làm thuật toán hạ dốc chậm. Thêm nữa, khi mô hình sai mà rất tự tin, gradient của MSE lại nhỏ vì sigmoid đã phẳng. Entropy chéo khắc phục cả hai và có nền tảng hợp lý cực đại.

Hệ số âm trong hồi quy logistic nghĩa là gì?

Hệ số âm nghĩa là tăng đặc trưng đó làm giảm log odds, tức giảm khả năng thuộc lớp dương, khi giữ nguyên các đặc trưng khác. Ví dụ hệ số −0,7 nghĩa là odds được nhân với e mũ −0,7, xấp xỉ 0,50, tức giảm khoảng một nửa với mỗi đơn vị tăng thêm.

Có cần nhiều dữ liệu để huấn luyện hồi quy logistic không?

Ít hơn nhiều so với mạng nơ-ron, vì số tham số chỉ bằng số đặc trưng cộng một. Một quy tắc kinh nghiệm hay được nhắc trong thống kê là cần đủ số mẫu thuộc lớp hiếm hơn cho mỗi đặc trưng, nhưng con số cụ thể còn tranh luận; dùng chính quy hoá và kiểm định chéo an toàn hơn dựa vào quy tắc cứng.

Dùng chatbot để giải thích kết quả hồi quy logistic có ổn không?

Ổn cho việc giải thích khái niệm và gợi ý cách đọc bảng hệ số. Nhưng nên tự tính lại tỉ số odds từ hệ số, kiểm xem chatbot có diễn giải nhầm odds thành xác suất không. Nếu bảng kết quả đến từ dữ liệu thật của khách hàng hay bệnh nhân, chỉ dán bảng hệ số, không dán dữ liệu gốc.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138