Bayesian Network
Mạng Bayesian mô hình hóa các biến và quan hệ phụ thuộc có điều kiện giữa chúng dưới dạng đồ thị có hướng không chu trình, cho phép bằng chứng cập nhật xác suất của các nguyên nhân.
Mạng Bayesian, còn gọi là mạng niềm tin, là một model đồ thị xác suất biểu diễn tập hợp các biến ngẫu nhiên và quan hệ phụ thuộc có điều kiện giữa chúng bằng đồ thị có hướng không chu trình (DAG). Mỗi nút là một biến, chẳng hạn bệnh, triệu chứng hoặc chỉ số cảm biến; mỗi mũi tên đi từ một yếu tố ảnh hưởng trực tiếp đến biến chịu tác động. Mỗi nút lưu một bảng xác suất có điều kiện, cho biết phân phối của nút đó với từng tổ hợp giá trị của các nút cha; các bảng này kết hợp lại xác định phân phối xác suất đồng thời đầy đủ của mọi biến. Khi có bằng chứng về một số biến, mạng tính xác suất cập nhật cho những biến còn lại, nhờ đó hỗ trợ chẩn đoán, đánh giá rủi ro và ra quyết định trong điều kiện bất định. Judea Pearl đã phát triển phần lớn lý thuyết này trong thập niên 1980; công trình về suy luận xác suất và nhân quả đã giúp ông nhận Giải Turing năm 2011.
Cấu trúc và bảng xác suất có điều kiện#
Đồ thị mã hóa tính độc lập có điều kiện: khi đã biết các nút cha, mỗi biến độc lập với những biến không phải hậu duệ của nó. Nhờ đó, phân phối đồng thời có thể được phân tích thành các phần cục bộ nhỏ: P(X1, ..., Xn) = P(X1 | parents(X1)) × ... × P(Xn | parents(Xn)). Mạng báo động-trộm cắp kinh điển trong công trình của Pearl, được sử dụng xuyên suốt sách giáo khoa Trí tuệ nhân tạo: Một cách tiếp cận hiện đại của Russell và Norvig, gồm năm biến có/không. Một vụ trộm hoặc động đất có thể kích hoạt chuông báo động tại nhà, khiến hai người hàng xóm John và Mary gọi cho chủ nhà.
Bảng xác suất đồng thời đầy đủ cho năm biến nhị phân cần 31 xác suất độc lập. Mạng chỉ cần 10: mỗi biến trộm cắp và động đất cần một xác suất; biến báo động cần bốn xác suất ứng với từng tổ hợp giá trị của hai nút cha; mỗi người hàng xóm cần hai xác suất dựa trên trạng thái báo động. Số lượng cần thiết giảm nhanh khi có thêm biến, vì kích thước mỗi bảng chỉ phụ thuộc vào số nút cha của nút tương ứng.
Suy luận: cập nhật niềm tin từ bằng chứng#
Suy luận cố định các biến đã quan sát và tính phân phối hậu nghiệm của biến truy vấn bằng cách áp dụng định lý Bayes trên đồ thị. Suy luận có thể diễn ra theo mọi hướng: từ nguyên nhân đến kết quả (dự đoán), từ kết quả đến nguyên nhân (chẩn đoán), và giữa các nguyên nhân của cùng một kết quả. Mẫu cuối cùng, gọi là giải thích loại trừ, nghĩa là khi biết chuông báo đã kêu, việc biết có động đất sẽ làm giảm xác suất xảy ra vụ trộm. Suy luận chính xác bằng liệt kê hoặc loại bỏ biến có thể thực hiện được trên mạng nhỏ hoặc dạng cây, nhưng nhìn chung là bài toán NP-hard; do đó, mạng lớn dùng các phương pháp gần đúng như trọng số hợp lý, lấy mẫu Gibbs hoặc lan truyền niềm tin vòng lặp.
Ví dụ này trả lời truy vấn trong sách giáo khoa P(Burglary | John calls, Mary calls) bằng phép liệt kê, tính tổng phân phối đồng thời đã phân tích theo các biến động đất và báo động chưa quan sát:
from itertools import product
# Conditional probability tables of the burglary-alarm network
p_burglary, p_earthquake = 0.001, 0.002
p_alarm = {(True, True): 0.95, (True, False): 0.94, (False, True): 0.29, (False, False): 0.001}
p_john = {True: 0.90, False: 0.05} # P(John calls | alarm)
p_mary = {True: 0.70, False: 0.01} # P(Mary calls | alarm)
def bern(p, value):
"""Return the probability of a binary outcome with success probability p."""
return p if value else 1 - p
# Evidence: both neighbors called. Sum the factored joint over the hidden variables.
joint = {True: 0.0, False: 0.0}
for b, e, a in product([True, False], repeat=3):
joint[b] += bern(p_burglary, b) * bern(p_earthquake, e) * bern(p_alarm[b, e], a) * p_john[a] * p_mary[a]
print(f"P(burglary | John and Mary call) = {joint[True] / sum(joint.values()):.3f}")Tập lệnh in ra 0.284, đúng bằng kết quả trong sách giáo khoa. Hai cuộc gọi làm xác suất xảy ra vụ trộm tăng từ 1/1.000 lên khoảng 28%; 72% còn lại thuộc về những lời giải thích không có vụ trộm, chẳng hạn báo động do động đất hoặc sự cố kích hoạt, vì trộm cắp rất hiếm.
Học mạng Bayesian từ dữ liệu#
Có thể xây dựng mạng thủ công dựa trên kiến thức chuyên gia, học từ dữ liệu hoặc kết hợp cả hai. Học tham số điền các bảng xác suất có điều kiện từ tần suất quan sát, dùng prior để làm trơn các tổ hợp hiếm và dùng thuật toán kỳ vọng-tối đa hóa khi thiếu một số giá trị. Học cấu trúc tìm kiếm chính đồ thị, bằng cách chấm điểm các đồ thị ứng viên theo tiêu chí như tiêu chuẩn thông tin Bayesian hoặc chạy kiểm định độc lập có điều kiện như thuật toán PC. Các mũi tên được học thể hiện sự phụ thuộc thống kê; việc diễn giải chúng như quan hệ nhân quả cần thêm các giả định được nghiên cứu trong lĩnh vực khám phá nhân quả. Các thư viện Python như pgmpy triển khai cả hai kiểu học cùng các phương pháp suy luận chính xác và gần đúng.
Ứng dụng thực tế#
- Chẩn đoán y khoa: Mạng liên kết bệnh với các triệu chứng và kết quả xét nghiệm do bệnh gây ra, nhờ đó quan sát của bác sĩ cập nhật xác suất của từng bệnh; mọi kết luận đều có thể truy vết qua đồ thị, một dạng AI có thể giải thích.
- Chẩn đoán lỗi: Các hệ thống công nghiệp và CNTT mô hình hóa cách lỗi linh kiện lan truyền thành cảnh báo và chỉ số đo. Trong kiểm tra trực quan, các lớp lỗi được phát hiện bởi detector YOLO26 có thể được đưa vào mạng dưới dạng bằng chứng quan sát, từ đó cập nhật xác suất của từng nguyên nhân gốc ở thượng nguồn, chẳng hạn dụng cụ bị mòn hoặc máy móc hiệu chuẩn sai.
- Đánh giá rủi ro: Các nhà sinh thái học, công ty bảo hiểm và kỹ sư an toàn kết hợp dữ liệu thưa với đánh giá của chuyên gia trong các mạng ước tính khả năng xảy ra sự kiện hiếm.
Mạng Bayesian và các model liên quan#
- Naive Bayes: Mạng Bayesian có một nút lớp làm nút cha duy nhất của mọi đặc trưng, với giả định các đặc trưng độc lập khi biết lớp.
- Trường ngẫu nhiên Markov: Model đồ thị có cạnh vô hướng, phù hợp với các quan hệ đối xứng như giữa những pixel lân cận trong ảnh.
- Quy trình quyết định Markov: Model ra quyết định tuần tự, trong đó hành động làm thay đổi trạng thái và phần thưởng cần được tối đa hóa; đây là khuôn khổ tiêu chuẩn của học tăng cường. Mạng Bayesian chỉ có quyết định và phần thưởng khi được mở rộng thành biểu đồ ảnh hưởng với các nút quyết định và tiện ích.
- Model Markov ẩn: Mạng Bayesian động lặp lại cùng một cấu trúc ở mỗi bước thời gian, với trạng thái ẩn tạo ra một quan sát ở mỗi bước. Bộ lọc Kalman có cùng cấu trúc nhưng dùng trạng thái liên tục cùng các chuyển tiếp và quan sát tuyến tính-Gaussian.










