Nhập môn Trí tuệ Nhân tạo·Uncertainty - Bất định

Chế độ xem

Xác suất có điều kiện và Bayes

Ở bài trước, ta mới xét các xác suất như:

P(Rain)P(Rain)

Nhưng AI thường nhận thêm evidence - bằng chứng quan sát được. Khi có thông tin mới, xác suất cần thay đổi theo.

Ví dụ:

Không biết gì thêm:
P(xe buýt trễ) = 0.20

Biết đang mưa lớn:
P(xe buýt trễ | mưa lớn) = 0.45

Đây là conditional probability - xác suất có điều kiện.

Các số trong ví dụ là số giả định để minh họa cách tính.

Mục tiêu

Sau bài này, bạn cần:

  • hiểu P(A∣B)P(A\mid B) nghĩa là gì;
  • tính conditional probability bằng cách thu hẹp không gian xét;
  • hiểu product rule;
  • hiểu joint probability và joint distribution;
  • dùng Bayes’ Rule để đảo chiều điều kiện;
  • hiểu prior, likelihood, posterior;
  • dùng được marginalization, normalization, inclusion-exclusion và law of total probability ở mức cơ bản.

Conditional Probability - Xác suất có điều kiện

Ký hiệu:

P(A∣B)P(A\mid B)

đọc là:

Xác suất của AA khi đã biết BB xảy ra.

Ý tưởng quan trọng nhất là thu hẹp không gian đang xét.

Công thức:

P(A∣B)=P(A∧B)P(B)P(A\mid B)=\frac{P(A\land B)}{P(B)}

với P(B)>0P(B)>0.

Ví dụ gần sinh viên: đi xe buýt đến trường

Giả sử ta ghi lại 100 buổi đi học:

  • 40 buổi trời mưa;
  • trong 40 buổi mưa có 24 buổi xe buýt đến trễ.

Gọi:

R: trời mưa
L: xe buýt trễ

Ta có:

P(R)=40100=0.4P(R)=\frac{40}{100}=0.4

và:

P(L∧R)=24100=0.24P(L\land R)=\frac{24}{100}=0.24

Do đó:

P(L∣R)=0.240.4=0.6P(L\mid R)=\frac{0.24}{0.4}=0.6

Nghĩa là:

Trong nhóm các buổi đã biết là có mưa, 60% buổi xe buýt bị trễ.

Lỗi dễ mắc là lấy 24/10024/100. Khi đã có điều kiện R, mẫu số phải thu hẹp về các trường hợp R đúng.

Product Rule - Quy tắc nhân

Từ:

P(A∣B)=P(A∧B)P(B)P(A\mid B)=\frac{P(A\land B)}{P(B)}

suy ra:

P(A∧B)=P(A∣B)P(B)P(A\land B)=P(A\mid B)P(B)

Tương tự:

P(A∧B)=P(B∣A)P(A)P(A\land B)=P(B\mid A)P(A)

Hai biểu thức này dẫn trực tiếp tới Bayes’ Rule.

Joint Probability - Xác suất đồng thời

Joint probability là xác suất nhiều sự kiện xảy ra cùng lúc.

Ví dụ:

P(Rain∧BusLate)P(Rain\land BusLate)

là xác suất vừa mưa vừa xe buýt trễ.

Một joint distribution cho hai biến có thể biểu diễn bằng bảng.

Giả sử:

BusLate=TrueBusLate=False
Rain=True0.240.16
Rain=False0.060.54

Tổng bốn ô bằng 1:

0.24+0.16+0.06+0.54=10.24+0.16+0.06+0.54=1

Từ bảng này:

P(Rain=True)=0.24+0.16=0.40P(Rain=True)=0.24+0.16=0.40

và:

P(BusLate=True)=0.24+0.06=0.30P(BusLate=True)=0.24+0.06=0.30

Marginalization - Cộng bỏ một biến

Nếu ta có joint distribution của XX và YY, muốn lấy xác suất riêng của XX, ta cộng qua mọi giá trị của YY.

Dạng tổng quát:

P(X=x)=∑yP(X=x,Y=y)P(X=x)=\sum_y P(X=x,Y=y)

Trong bảng trên:

P(Rain=True)=P(Rain=True,BusLate=True)+P(Rain=True,BusLate=False)P(Rain=True) =P(Rain=True,BusLate=True) +P(Rain=True,BusLate=False) =0.24+0.16=0.40=0.24+0.16=0.40

Có thể hiểu marginalization là:

Ta không còn quan tâm biến còn lại nhận giá trị gì, nên cộng tất cả khả năng của nó lại.

Từ joint distribution về conditional probability

Ta có thể tính:

P(BusLate=True∣Rain=True)P(BusLate=True\mid Rain=True)

bằng:

P(BusLate=True,Rain=True)P(Rain=True)=0.240.40=0.60\frac{P(BusLate=True,Rain=True)}{P(Rain=True)} =\frac{0.24}{0.40} =0.60

Joint distribution vì vậy chứa rất nhiều thông tin, nhưng khi số biến tăng thì bảng joint đầy đủ sẽ phình rất nhanh. Bayesian Network ở bài sau sẽ giải quyết vấn đề này bằng cách biểu diễn dependency có cấu trúc.

Bayes’ Rule - Đảo chiều câu hỏi

Từ product rule:

P(A∧B)=P(A∣B)P(B)P(A\land B)=P(A\mid B)P(B)

và:

P(A∧B)=P(B∣A)P(A)P(A\land B)=P(B\mid A)P(A)

suy ra:

P(A∣B)=P(B∣A)P(A)P(B)P(A\mid B)=\frac{P(B\mid A)P(A)}{P(B)}

Bayes hữu ích khi ta biết xác suất của evidence nếu nguyên nhân đúng, nhưng muốn suy ngược xác suất của nguyên nhân khi đã thấy evidence.

Ví dụ IT: cảnh báo server quá tải

Giả sử:

P(Overload)=0.05P(Overload)=0.05

Khi server thực sự quá tải, hệ thống cảnh báo đúng 90%:

P(Alert∣Overload)=0.90P(Alert\mid Overload)=0.90

Khi server không quá tải, cảnh báo vẫn bật nhầm 10%:

P(Alert∣¬Overload)=0.10P(Alert\mid \neg Overload)=0.10

Ta thấy Alert=True. Câu hỏi là:

P(Overload∣Alert)=?P(Overload\mid Alert)=?

Bước 1: tính xác suất có cảnh báo

Cảnh báo có thể xuất hiện theo hai đường:

Overload -> Alert
Not Overload -> Alert

Nên:

P(Alert)=P(Alert∣Overload)P(Overload)+P(Alert∣¬Overload)P(¬Overload)P(Alert) =P(Alert\mid Overload)P(Overload) +P(Alert\mid\neg Overload)P(\neg Overload) =(0.90)(0.05)+(0.10)(0.95)=0.14=(0.90)(0.05)+(0.10)(0.95)=0.14

Bước 2: dùng Bayes

P(Overload∣Alert)=P(Alert∣Overload)P(Overload)P(Alert)P(Overload\mid Alert) =\frac{P(Alert\mid Overload)P(Overload)}{P(Alert)} =(0.90)(0.05)0.14≈0.321=\frac{(0.90)(0.05)}{0.14} \approx0.321

Tức khoảng 32.1%.

Điều này cho thấy một điểm rất quan trọng:

P(Alert | Overload) = 90% không có nghĩa P(Overload | Alert) = 90%.

Hai conditional probabilities này là hai câu hỏi khác nhau.

Base Rate - Tần suất nền

Trong ví dụ trên, overload vốn hiếm:

P(Overload)=0.05P(Overload)=0.05

Trong khi thời gian server bình thường chiếm 95%. Dù false alarm chỉ 10%, 10% của một nhóm rất lớn vẫn tạo ra nhiều cảnh báo giả.

Đây là lý do phải chú ý base rate.

Một cách nhìn bằng 10,000 thời điểm giả định:

Trạng tháiSố lầnAlert=True
Overload500450
Không overload9,500950

Tổng alert:

450+950=1400450+950=1400

Trong đó alert thật do overload:

4501400≈32.1%\frac{450}{1400}\approx32.1\%

Cách đếm này thường dễ hiểu hơn việc nhớ công thức.

Prior, Likelihood, Posterior

Trong Bayes, ba từ xuất hiện rất nhiều:

Prior

Niềm tin trước khi thấy evidence:

P(H)P(H)

Ví dụ:

P(Overload)=0.05P(Overload)=0.05

Likelihood

Khả năng thấy evidence nếu hypothesis đúng:

P(E∣H)P(E\mid H)

Ví dụ:

P(Alert∣Overload)=0.90P(Alert\mid Overload)=0.90

Posterior

Niềm tin sau khi đã thấy evidence:

P(H∣E)P(H\mid E)

Ví dụ:

P(Overload∣Alert)≈0.321P(Overload\mid Alert)\approx0.321

Có thể nhớ mạch:

Hình minh họa công khai: Bayes bằng diện tích

Minh họa hình học cho Bayes' Rule

Hình: minh họa hình học của Bayes’ theorem. Nguồn: Wikimedia Commons, tác giả Cmglee, giấy phép CC BY-SA 3.0.

Điểm đáng chú ý trong hình không phải các ký hiệu cụ thể, mà là ý tưởng: khi điều kiện thay đổi, phần không gian ta đang xét cũng thay đổi. Bayes liên hệ hai cách “cắt” cùng một joint space.

Normalization - Chuẩn hóa

Đôi khi ta tính được các giá trị chỉ đúng theo tỉ lệ, chưa cộng thành 1.

Ví dụ:

P(C∣Rain)∝⟨0.08,0.02⟩P(C\mid Rain)\propto\langle0.08,0.02\rangle

Tổng hiện tại là:

0.08+0.02=0.100.08+0.02=0.10

Chia từng phần cho 0.10:

⟨0.8,0.2⟩\langle0.8,0.2\rangle

Đó là normalization.

Trong AI, ký hiệu α\alpha thường dùng cho hằng số chuẩn hóa:

P(X∣e)=αf(X,e)P(X\mid e)=\alpha f(X,e)

Inclusion-Exclusion - Xác suất của OR

Nếu muốn tính xác suất AA hoặc BB xảy ra:

P(A∨B)=P(A)+P(B)−P(A∧B)P(A\lor B)=P(A)+P(B)-P(A\land B)

Phải trừ phần giao vì khi cộng P(A)+P(B)P(A)+P(B), các trường hợp cả AA và BB đúng đã bị đếm hai lần.

Ví dụ:

A: sinh viên dùng Python cho project
B: sinh viên dùng JavaScript cho project

Nếu có sinh viên dùng cả hai, không thể cộng hai tỉ lệ rồi coi đó là số người dùng ít nhất một ngôn ngữ.

Law of Total Probability

Nếu BB và ¬B\neg B chia toàn bộ trường hợp thành hai nhóm, thì:

P(A)=P(A∣B)P(B)+P(A∣¬B)P(¬B)P(A) =P(A\mid B)P(B) +P(A\mid\neg B)P(\neg B)

Đây chính là cách ta tính P(Alert)P(Alert) trong ví dụ server.

Tư duy chung:

Chia bài toán thành các trường hợp không chồng nhau, tính từng nhánh, rồi cộng lại.

Những lỗi cần tránh

Nhầm chiều điều kiện

P(A∣B)≠P(B∣A)P(A\mid B)\ne P(B\mid A)

trong hầu hết trường hợp.

Bỏ qua base rate

Một detector rất chính xác vẫn có thể tạo posterior thấp nếu sự kiện cần phát hiện vốn rất hiếm.

Quên normalize

Một vector như:

⟨0.08,0.02⟩\langle0.08,0.02\rangle

chưa phải distribution hoàn chỉnh vì tổng chưa bằng 1.

Nhân joint probability khi chưa có independence

Không được mặc định:

P(A,B)=P(A)P(B)P(A,B)=P(A)P(B)

nếu chưa biết AA và BB độc lập.

Tự kiểm tra

Câu 1

Trong 200 lần truy cập LMS, có 50 lần mạng chậm. Trong 50 lần mạng chậm có 20 lần upload thất bại. Tính:

P(UploadFail∣SlowNetwork)P(UploadFail\mid SlowNetwork)
Đáp án2050=0.4\frac{20}{50}=0.4

Câu 2

Nếu:

P(Spam)=0.1P(Spam)=0.1

và:

P(Link∣Spam)=0.8P(Link\mid Spam)=0.8

có thể kết luận ngay P(Spam∣Link)=0.8P(Spam\mid Link)=0.8 không?

Đáp án

Không. Cần thêm thông tin để dùng Bayes, tối thiểu là xác suất xuất hiện Link hoặc các thành phần để tính nó.

Tóm tắt

  • P(A∣B)P(A\mid B) nghĩa là xác suất của AA sau khi đã biết BB.
  • Conditional probability thu hẹp không gian xét vào các trường hợp BB đúng.
  • Joint probability mô tả nhiều biến cùng lúc.
  • Bayes cho phép chuyển từ P(E∣H)P(E\mid H) sang P(H∣E)P(H\mid E) khi có đủ prior và evidence probability.
  • Prior là niềm tin trước evidence, posterior là niềm tin sau evidence.
  • Marginalization dùng phép cộng để bỏ bớt biến không quan tâm.
  • Normalization biến các trọng số theo tỉ lệ thành một probability distribution.

Tài liệu tham khảo