Vượt xa dự đoán điểm: Giới thiệu thực tế về mạng nơ-ron Bayes (BNN)

Công nghệ01 tháng 9, 2026·7 phút đọc

Mạng nơ-ron truyền thống chỉ đưa ra một con số duy nhất mà không biết cách nói "tôi không chắc chắn". Bài viết này giới thiệu mạng nơ-ron Bayes (BNN) – một cách tiếp cận giúp lượng hóa độ bất định trong dự đoán, cho phép các nhà phân tích biết chính xác khi nào nên tin tưởng vào kết quả của mô hình. Thông qua việc triển khai thực tế trên bộ dữ liệu California Housing, bạn sẽ hiểu cách thay thế trọng số điểm bằng phân phối xác suất và sử dụng suy luận biến phân (Variational Inference) để tạo ra các khoảng tin cậy có ý nghĩa.

Vượt xa dự đoán điểm: Giới thiệu thực tế về mạng nơ-ron Bayes (BNN)

Vượt xa dự đoán điểm: Giới thiệu thực tế về mạng nơ-ron Bayes

Khi một mô hình học máy ước tính giá trị trung vị của một căn nhà tại California, nó thường đưa ra một con số duy nhất: 385.000 USD. Con số đó trông có vẻ chính xác, nhưng đằng sau nó là một sự bất định có thể xuất phát từ nhiều yếu tố khác nhau. Mạng nơ-ron tiêu chuẩn không thể trả lời câu hỏi quan trọng: "Dự đoán này chắc chắn đến mức nào?".

Mạng nơ-ron Bayes (Bayesian Neural Network - BNN) chính là giải pháp cho bài toán này. Thay vì đưa ra một giá trị điểm khô khan, BNN cung cấp một khoảng xác suất kèm theo mức độ tin cậy. Cách tiếp cận này đặc biệt hữu ích trong các lĩnh vực như bất động sản, tài chính hay chẩn đoán y tế, nơi hiểu rõ độ rủi ro quan trọng hơn việc chỉ có một con số dự đoán.

Vấn đề với các ước tính điểm

Trong học có giám sát, một mạng nơ-ron truyền thống nhận đầu vào, đưa ra dự đoán và so sánh với giá trị thực tế. Sau đó, nó điều chỉnh hàng triệu "nút vặn" (trọng số) để dự đoán ngày càng gần đúng hơn. Kết quả cuối cùng là một con số duy nhất – một ước tính điểm không kèm theo bất kỳ thông tin nào về độ tin cậy.

Khi nhìn vào sai số trung bình tuyệt đối (MAE) – một thước đo phổ biến – chúng ta chỉ biết được chất lượng trung bình trên toàn bộ tập kiểm tra, mà không biết điều gì đang xảy ra với từng dự đoán cụ thể.

Mạng nơ-ron Bayes giải quyết vấn đề này bằng cách thay mỗi trọng số điểm bằng một phân phối xác suất, thường là phân phối Gaussian (đường cong hình chuông). Thay vì trọng số có giá trị cố định là "5.2", nó trở thành một dải khả năng: "Giá trị có thể khoảng 5, nhưng dao động từ 3 đến 7".

So sánh trực quan giữa mạng nơ-ron truyền thống (trái) và mạng nơ-ron Bayes (phải)So sánh trực quan giữa mạng nơ-ron truyền thống (trái) và mạng nơ-ron Bayes (phải)

Lượng hóa độ bất định: Hai loại không chắc chắn

Không phải mọi độ bất định đều giống nhau. Trong triết học thống kê, có hai loại chính:

  • Bất định do mô hình (Epistemic uncertainty): Xảy ra khi mô hình chưa từng thấy dữ liệu tương tự. Ví dụ, một căn nhà có đặc điểm nằm ngoài vùng dữ liệu huấn luyện.
  • Bất định do tự nhiên (Aleatoric uncertainty): Xuất phát từ sự biến động vốn có của dữ liệu. Mô hình đã thấy nhiều căn nhà tương tự, nhưng giá trị của chúng vốn không ổn định.

Nghiên cứu hiện tại chỉ ra rằng hai loại bất định này thường đan xen về mặt toán học, và việc tách biệt chúng là điều không đơn giản. Trong bài này, chúng ta sẽ sử dụng một cơ chế ước lượng bất định tổng hợp.

Mạng nơ-ron Bayes hoạt động như thế nào?

Toán học đằng sau BNN dựa trên định lý Bayes. Lý tưởng nhất, chúng ta muốn tính phân phối hậu nghiệm của trọng số dựa trên dữ liệu huấn luyện:

p(w|D) = p(D|w) × p(w) / p(D)

Vấn đề nằm ở chỗ tính mẫu số p(D) đòi hỏi phải tích phân qua mọi tổ hợp trọng số có thể – điều này là bất khả thi về mặt tính toán với mạng có hàng nghìn tham số.

Giải pháp: Suy luận biến phân (Variational Inference)

Thay vì tìm lời giải chính xác, suy luận biến phân chuyển bài toán thành một bài toán tối ưu hóa: Tìm một phân phối đơn giản hơn sao cho càng giống với phân phối thật càng tốt. Chúng ta sử dụng KL divergence để đo độ khác biệt, nhưng do không thể tính trực tiếp, ta tối đa hóa một đại lượng tương đương gọi là ELBO (Evidence Lower Bound).

Triển khai BNN trong Python

Để minh họa, chúng ta sẽ sử dụng KerasTensorFlow Probability, cùng bộ dữ liệu California Housing (dựa trên điều tra dân số Mỹ năm 1990, với 20.640 mẫu nhà). Có nhiều quyết định kỹ thuật quan trọng khi xây dựng BNN:

1. Chọn prior (phân phối tiên nghiệm)

tfd = tfp.distributions

def posterior(kernel_size, bias_size=0, dtype=None):
    n = kernel_size + bias_size
    return tf_keras.Sequential([
        tfp.layers.VariableLayer(2 * n, dtype=dtype),
        tfp.layers.DistributionLambda(
            lambda t: tfd.Independent(
                tfd.Normal(loc=t[..., :n], scale=tf.nn.softplus(t[..., n:])),
                reinterpreted_batch_ndims=1))
    ])

def prior(kernel_size, bias_size=0, dtype=None):
    n = kernel_size + bias_size
    return tf_keras.Sequential([
        tfp.layers.DistributionLambda(
            lambda _: tfd.Independent(
                tfd.Normal(loc=tf.zeros(n, dtype=dtype), scale=0.25),
                reinterpreted_batch_ndims=1))
    ])

Lựa chọn prior Gaussian là phổ biến vì tính toán thuận tiện. Tuy nhiên, bạn có thể thử nghiệm với phân phối Laplace – phân phối có đuôi nặng hơn, gán xác suất cao hơn cho các giá trị cực đoan.

So sánh phân phối Gaussian và LaplaceSo sánh phân phối Gaussian và Laplace

2. Giả định mean-field và ma trận hiệp phương sai

Giả định mean-field bỏ qua tương quan giữa các trọng số, giúp tính toán hiệu quả hơn nhưng có thể đánh giá thấp tổng độ bất định. Để cải thiện, ta có thể sử dụng ma trận hiệp phương sai đầy đủ với tfd.MultivariateNormalTriL(). Điều này làm tăng số tham số từ 1.442 lên 159.434, nhưng mang lại khả năng lượng hóa độ bất định tốt hơn.

3. KL Annealing – Kỹ thuật làm mượt quá trình huấn luyện

Trong quá trình huấn luyện BNN, có hai mục tiêu cạnh tranh: khớp dữ liệu quan sát và giữ phân phối trọng số gần với prior. Kỹ thuật KL annealing tăng dần ảnh hưởng của thành phần KL theo thời gian, giúp mô hình học các mẫu hữu ích trước khi bị ràng buộc chặt bởi prior.

Đánh giá kết quả và trích xuất thông tin hữu ích

Sau khi huấn luyện, mỗi lần truyền cùng một đầu vào qua mạng sẽ cho kết quả khác nhau do trọng số được lấy mẫu ngẫu nhiên. Tập hợp các dự đoán này tạo thành khoảng dự đoán:

  • Dự đoán trung bình: $75.410
  • Giá trị thực tế: $79.300
  • Khoảng tin cậy 95%: ($8.007, $137.808)

Ví dụ trực quan về 25 ngôi nhà đầu tiên trong tập kiểm tra với khoảng dự đoánVí dụ trực quan về 25 ngôi nhà đầu tiên trong tập kiểm tra với khoảng dự đoán

Hai thước đo quan trọng cho BNN là coverage (tỷ lệ giá trị thực nằm trong khoảng dự đoán) và độ rộng trung bình của khoảng dự đoán. Kết quả từ nhiều cấu hình BNN khác nhau:

Cấu hìnhMAEĐộ rộng khoảng TBCoverage
Gaussian Prior$46.464$290.10398,9%
Laplace Prior$37.152$202.56996,0%
Full Covariance$39.801$227.04096,7%
KL Annealing$36.502$189.00194,8%

Ứng dụng thực tế: Lọc theo độ tự tin

Một trong những giá trị lớn nhất của BNN là khả năng quyết định thông minh dựa trên độ bất định. Bằng cách đặt ngưỡng trên tổng phương sai, chúng ta có thể chỉ sử dụng những dự đoán mà mô hình thực sự tự tin:

Cấu hìnhMAE gốcMAE (tự tin)Độ rộng gốcĐộ rộng (tự tin)
KL Annealing$36.502$26.921$189.001$142.453

Con số này cho thấy: lọc theo độ bất định giảm sai số tới 26% và thu hẹp khoảng dự đoán đáng kể.

Kết luận

Mạng nơ-ron Bayes không chỉ đơn thuần là một mô hình dự đoán, mà là một công cụ quản lý rủi ro. Khi triển khai ở quy mô sản xuất, bạn có thể tự động hóa các quyết định cho những dữ liệu có độ tự tin cao, đồng thời chuyển các trường hợp bất định lớn sang quy trình xem xét thủ công. Mặc dù định giá bất động sản có thể không phải là lĩnh vực rủi ro cao, nhưng đây là một ví dụ minh họa rõ ràng về cách lượng hóa giới hạn tri thức của mô hình – điều cần thiết trong thời đại AI ra quyết định ngày nay.

Bài viết được tham khảo và tổng hợp từ các notebook nguồn mở về BNN, sử dụng bộ dữ liệu California Housing (Pace and Barry, 1997).

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗