.. raw:: html
.. raw:: html
.. raw:: html
.. _sec_prob:
Xác suất
========
.. raw:: html
Theo cách này hay cách khác, học máy đơn thuần là đưa ra các dự đoán.
Chúng ta có thể muốn dự đoán *xác suất* của một bệnh nhân có thể bị đau
tim vào năm sau, khi đã biết tiền sử lâm sàng của họ. Trong tác vụ phát
hiện điều bất thường, chúng ta có thể muốn đánh giá *khả năng* các thông
số động cơ máy bay ở mức nào, liệu có ở mức hoạt động bình thường không.
Trong học tăng cường, chúng ta muốn có một tác nhân hoạt động thông minh
trong một môi trường. Nghĩa là chúng ta cần tính tới xác suất đạt điểm
thưởng cao nhất cho từng hành động có thể thực hiện. Và khi xây dựng một
hệ thống gợi ý chúng ta cũng cần quan tâm tới xác suất. Ví dụ, *giả
thiết* rằng chúng ta làm việc cho một hãng bán sách trực tuyến lớn.
Chúng ta có thể muốn ước lượng xác suất một khách hàng cụ thể muốn mua
một cuốn sách cụ thể nào đó. Để làm được điều này, chúng ta cần dùng tới
ngôn ngữ xác suất. Có những khóa học, chuyên ngành, luận văn, sự nghiệp,
và cả các ban ngành đều dành toàn bộ cho xác suất. Vì thế đương nhiên
mục tiêu của chúng tôi trong chương này không phải để dạy toàn bộ môn
xác suất. Thay vào đó, chúng tôi hy vọng đưa tới cho bạn đọc các kiến
thức nền tảng, đủ để bạn đọc có thể bắt đầu xây dựng mô hình học sâu đầu
tiên của chính mình, và truyền cảm hứng cho bạn thêm yêu thích xác suất
để có thể bắt đầu tự khám phá nếu muốn.
.. raw:: html
Chúng tôi đã nhắc tới xác suất trong các chương trước mà không nói rõ
chính xác nó là gì hay là đưa ra một ví dụ cụ thể nào. Giờ hãy cùng bắt
đầu nghiêm túc hơn bằng cách xem xét trường hợp đầu tiên: phân biệt mèo
và chó dựa trên các bức ảnh. Điều này tưởng chừng đơn giản nhưng thực ra
là một thách thức. Để bắt đầu, độ phức tạp của bài toán này có thể phụ
thuộc vào độ phân giải của ảnh.
.. raw:: html
.. _fig_cat_dog:
.. figure:: ../img/cat_dog_pixels.png
:width: 300px
Ảnh ở các độ phân giải khác nhau (:math:`10 \times 10`,
:math:`20 \times 20`, :math:`40 \times 40`, :math:`80 \times 80`, and
:math:`160 \times 160` điểm ảnh).
.. raw:: html
Như thể hiện trong :numref:`fig_cat_dog`, con người phân biệt mèo và
chó dễ dàng ở độ phân giải :math:`160 \times 160` điểm ảnh, có chút thử
thách hơn ở :math:`40 \times 40` điểm ảnh, và gần như không thể ở
:math:`10 \times 10` điểm ảnh. Nói cách khác, khả năng phân biệt mèo và
chó của chúng ta ở khoảng cách càng xa (đồng nghĩa với độ phân giải
thấp) càng giống đoán mò. Xác suất trang bị cho ta một cách suy luận
hình thức về mức độ chắc chắn. Nếu chúng ta hoàn toàn chắc chắn rằng bức
ảnh mô tả một con mèo, ta có thể nói rằng *xác suất* nhãn tương ứng
:math:`y` là “mèo”, ký hiệu là :math:`P(y=` “mèo”\ :math:`)` equals
:math:`1`. Nếu chúng ta không có manh mối nào để đoán rằng :math:`y =`
“mèo” hoặc là :math:`y =` “chó”, thì ta có thể nói rằng hai xác suất này
có *khả năng* bằng nhau, biễu diễn bởi :math:`P(y=`
“mèo”\ :math:`) = P(y=` “chó”\ :math:`) = 0.5`. Nếu ta khá tự tin, nhưng
không thực sự chắc chắn bức ảnh mô tả một con mèo, ta có thể gán cho nó
một xác suất :math:`0.5 < P(y=` “mèo”\ :math:`) < 1`.
.. raw:: html
Giờ hãy xem xét trường hợp thứ hai: cho dữ liệu theo dõi khí tượng,
chúng ta muốn dự đoán xác suất ngày mai trời sẽ mưa ở Đài Bắc. Nếu vào
mùa hè, xác suất trời mưa có thể là :math:`0.5`.
.. raw:: html
Trong cả hai trường hợp, chúng ta đều quan tâm tới một đại lượng nào đó
và cùng không chắc chắn về giá trị đầu ra. Nhưng có một khác biệt quan
trọng giữa hai trường hợp. Trong trường hợp đầu tiên, bức ảnh chỉ có thể
là chó hoặc mèo, và chúng ta chỉ không biết là loài nào. Trong trường
hợp thứ hai, đầu ra thực sự có thể là một sự kiện ngẫu nhiên, nếu bạn
tin vào những thứ như vậy (và hầu hết các nhà vật lý tin vậy). Như vậy
xác suất là một ngôn ngữ linh hoạt để suy đoán về mức độ chắc chắn của
chúng ta, và nó có thể được áp dụng hiệu quả trong vô vàn ngữ cảnh khác
nhau.
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Lý thuyết Xác suất cơ bản
-------------------------
.. raw:: html
Giả sử, ta tung xúc xắc và muốn biết cơ hội để thấy mặt số :math:`1` so
với các mặt khác là bao nhiêu? Nếu chiếc xúc xắc có chất liệu đồng nhất,
thì cả :math:`6` mặt :math:`\{1, \ldots, 6\}` đều có khả năng xuất hiện
như nhau, nên ta sẽ thấy mặt :math:`1` xuất hiện một lần trong mỗi sáu
lần tung xúc xắc như trên. Ta có thể nói rằng mặt :math:`1` xuất hiện
với xác suất là :math:`\frac{1}{6}`.
.. raw:: html
Với một chiếc xúc xắc thật, ta có thể không biết được tỷ lệ này và cần
kiểm tra liệu xúc xắc có bị hư hỏng gì không. Cách duy nhất để kiểm tra
là tung thật nhiều lần rồi ghi lại kết quả. Mỗi lần tung, ta quan sát
thấy một số trong :math:`\{1, \ldots, 6\}` xuất hiện. Với kết quả này,
ta muốn kiểm chứng xác suất xuất hiện của từng mặt số.
.. raw:: html
Cách tính trực quan nhất là lấy số lần xuất hiện của mỗi mặt số chia cho
tổng số lần tung. Cách này cho ta một *ước lượng* của xác suất ứng với
một *sự kiện* cho trước. *Luật số lớn* cho ta biết rằng số lần tung xúc
xắc càng tăng thì ước lượng này càng gần hơn với xác xuất thực. Trước
khi giải thích chi tiết hơn, hãy cùng lập trình thí nghiệm này.
.. raw:: html
Bắt đầu, ta nhập các gói lệnh cần thiết.
.. code:: python
%matplotlib inline
from d2l import mxnet as d2l
from mxnet import np, npx
import random
npx.set_np()
.. raw:: html
Tiếp theo, ta sẽ cần tung xúc xắc. Trong thống kê, ta gọi quá trình thu
các mẫu từ phân phối xác suất là quá trình *lấy mẫu*. Phân phối mà gán
các xác suất cho các lựa chọn rời rạc (*discrete choices*) được gọi là
*phân phối đa thức* (*multinomial distribution*). Sau này, ta sẽ đưa ra
định nghĩa chính quy *phân phối* là gì; nhưng để hình dung, hãy xem nó
như phép gán xác suất xảy ra cho các sự kiện. Trong MXNet, ta có thể lấy
mẫu từ phân phối đa thức với hàm ``np.random.multinomial``. Có nhiều
cách sử dụng hàm này, nhưng ta tập trung vào cách dùng đơn giản nhất.
Muốn lấy một mẫu đơn, ta chỉ cần đưa vào hàm này một vector chứa các xác
suất. Hàm ``np.random.multinomial`` sẽ cho kết quả là một vector có
chiều dài tương tự: trong vector này, giá trị tại chỉ số :math:`i` là số
lần kết quả :math:`i` xuất hiện.
.. code:: python
fair_probs = [1.0 / 6] * 6
np.random.multinomial(1, fair_probs)
.. parsed-literal::
:class: output
array([0, 0, 0, 1, 0, 0], dtype=int64)
.. raw:: html
.. raw:: html
.. raw:: html
Nếu chạy hàm lấy mẫu vài lần, bạn sẽ thấy rằng mỗi lần các giá trị trả
về đều là ngẫu nhiên. Giống với việc đánh giá một con xúc xắc có đều hay
không, chúng ta thường muốn tạo nhiều mẫu từ cùng một phân phối. Tạo dữ
liệu như trên với vòng lặp ``for`` trong Python là rất chậm, vì vậy hàm
``random.multinomial`` hỗ trợ sinh nhiều mẫu trong một lần gọi, trả về
một mảng chứa các mẫu độc lập với kích thước bất kỳ.
.. code:: python
np.random.multinomial(10, fair_probs)
.. parsed-literal::
:class: output
array([1, 1, 5, 1, 1, 1], dtype=int64)
.. raw:: html
Chúng ta cũng có thể giả sử làm :math:`3` thí nghiệm, trong đó mỗi thí
nghiệm cùng lúc lấy ra :math:`10` mẫu.
.. code:: python
counts = np.random.multinomial(10, fair_probs, size=3)
counts
.. parsed-literal::
:class: output
array([[1, 2, 1, 2, 4, 0],
[3, 2, 2, 1, 0, 2],
[1, 2, 1, 3, 1, 2]], dtype=int64)
.. raw:: html
Giờ chúng ta đã biết cách lấy mẫu các lần tung của một con xúc xắc, ta
có thể giả lập 1000 lần tung. Sau đó, chúng ta có thể đếm xem mỗi mặt
xuất hiện bao nhiêu lần. Cụ thể, chúng ta tính toán tần suất tương đối
như là một ước lượng của xác suất thực.
.. code:: python
# Store the results as 32-bit floats for division
counts = np.random.multinomial(1000, fair_probs).astype(np.float32)
counts / 1000 # Reletive frequency as the estimate
.. parsed-literal::
:class: output
array([0.164, 0.153, 0.181, 0.163, 0.163, 0.176])
.. raw:: html
Do dữ liệu được sinh bởi một con xúc xắc đều, ta biết mỗi đầu ra đều có
xác suất thực bằng :math:`\frac{1}{6}`, cỡ :math:`0.167`, do đó kết quả
ước lượng bên trên trông khá ổn.
.. raw:: html
Chúng ta cũng có thể minh họa những xác suất này hội tụ tới xác suất
thực như thế nào. Hãy cũng làm :math:`500` thí nghiệm trong đó mỗi thí
nghiệm lấy ra :math:`10` mẫu.
.. code:: python
counts = np.random.multinomial(10, fair_probs, size=500)
cum_counts = counts.astype(np.float32).cumsum(axis=0)
estimates = cum_counts / cum_counts.sum(axis=1, keepdims=True)
d2l.set_figsize((6, 4.5))
for i in range(6):
d2l.plt.plot(estimates[:, i].asnumpy(),
label=("P(die=" + str(i + 1) + ")"))
d2l.plt.axhline(y=0.167, color='black', linestyle='dashed')
d2l.plt.gca().set_xlabel('Groups of experiments')
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend();
.. figure:: output_probability_vn_145937_11_0.svg
.. raw:: html
Mỗi đường cong liền tương ứng với một trong sáu giá trị của xúc xắc và
chỉ ra xác suất ước lượng của sự kiện xúc xắc ra mặt tương ứng sau mỗi
thí nghiệm. Đường đứt đoạn màu đen tương ứng với xác suất thực. Khi ta
lấy thêm dữ liệu bằng cách thực hiện thêm các thí nghiệm, thì :math:`6`
đường cong liền sẽ hội tụ tiến tới xác suất thực.
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Các Tiên đề của Lý thuyết Xác suất
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. raw:: html
Khi thực hiện tung một con xúc xắc, chúng ta gọi tập hợp
:math:`\mathcal{S} = \{1, 2, 3, 4, 5, 6\}` là *không gian mẫu* hoặc
*không gian kết quả*, trong đó mỗi phần tử là một *kết quả*. Một *sự
kiện* là một tập hợp các kết quả của không gian mẫu. Ví dụ, “tung được
một số :math:`5`” (:math:`\{5\}`) và “tung được một số lẻ”
(:math:`\{1, 3, 5\}`) đều là những sự kiện hợp lệ khi tung một con xúc
xắc. Chú ý rằng nếu kết quả của một phép tung ngẫu nhiên nằm trong sự
kiện :math:`\mathcal{A}`, sự kiện :math:`\mathcal{A}` đã xảy ra. Như
vậy, nếu mặt :math:`3` chấm ngửa lên sau khi xúc xắc được tung, chúng ta
nói sự kiện “tung được một số lẻ” đã xảy ra bởi vì
:math:`3 \in \{1, 3, 5\}`.
.. raw:: html
Một cách chính thống hơn, *xác suất* có thể được xem là một hàm số ánh
xạ một tập hợp các sự kiện tới một số thực. Xác suất của sự kiện
:math:`\mathcal{A}` trong không gian mẫu :math:`\mathcal{S}`, được kí
hiệu là :math:`P(\mathcal{A})`, phải thoả mãn những tính chất sau:
.. raw:: html
- Với mọi sự kiện :math:`\mathcal{A}`, xác suất của nó là không âm, tức
là: :math:`P(\mathcal{A}) \geq 0`;
- Xác suất của toàn không gian mẫu luôn bằng :math:`1`, tức:
:math:`P(\mathcal{S}) = 1`;
- Đối với mọi dãy sự kiện có thể đếm được
:math:`\mathcal{A}_1, \mathcal{A}_2, \ldots` *xung khắc lẫn nhau*
(:math:`\mathcal{A}_i \cap \mathcal{A}_j = \emptyset` với mọi
:math:`i \neq j`), xác suất có ít nhất một sự kiện xảy ra sẽ là tổng
của những giá trị xác suất riêng lẻ, hay:
:math:`P(\bigcup_{i=1}^{\infty} \mathcal{A}_i) = \sum_{i=1}^{\infty} P(\mathcal{A}_i)`.
.. raw:: html
Đây cũng là những tiên đề của lý thuyết xác suất, được đề xuất bởi
Kolmogorov năm 1933. Nhờ vào hệ thống tiên đề này, ta có thể tránh được
những tranh luận chủ quan về sự ngẫu nhiên; và ta có thể có được những
suy luận chặt chẽ sử dụng ngôn ngữ toán học. Ví dụ, cho sự kiện
:math:`\mathcal{A}_1` là toàn bộ không gian mẫu và
:math:`\mathcal{A}_i = \emptyset` với mọi :math:`i > 1`, chúng ta có thể
chứng minh rằng :math:`P(\emptyset) = 0`, nghĩa là xác suất của sự kiện
không thể xảy ra bằng :math:`0`.
.. raw:: html
.. raw:: html
.. raw:: html
Biến ngẫu nhiên
~~~~~~~~~~~~~~~
.. raw:: html
Trong thí nghiệm tung xúc xắc ngẫu nhiên, chúng ta đã giới thiệu khái
niệm của một *biến ngẫu nhiên*. Một biến ngẫu nhiên có thể dùng để biểu
diễn cho hầu như bất kỳ đại lượng nào và giá trị của nó không cố định.
Nó có thể nhận một giá trị trong tập các giá trị khả dĩ từ một thí
nghiệm ngẫu nhiên. Hãy xét một biến ngẫu nhiên :math:`X` có thể nhận một
trong những giá trị từ tập không gian mẫu
:math:`\mathcal{S} = \{1, 2, 3, 4, 5, 6\}` của thí nghiêm tung xúc xắc.
Chúng ta có thể biểu diễn sự kiện “trông thấy mặt :math:`5`” là
:math:`\{X = 5\}` hoặc :math:`X = 5`, và xác suất của nó là
:math:`P(\{X = 5\})` hoặc :math:`P(X = 5)`. Khi viết :math:`P(X = a)`,
chúng ta đã phân biệt giữa biến ngẫu nhiên :math:`X` và các giá trị (ví
dụ như :math:`a`) mà :math:`X` có thể nhận. Tuy nhiên, ký hiệu như vậy
khá là rườm rà. Để đơn giản hóa ký hiệu, một mặt, chúng ta có thể chỉ
cần dùng :math:`P(X)` để biểu diễn *phân phối* của biến ngẫu nhiên
:math:`X`: phân phối này cho chúng ta biết xác xuất mà :math:`X` có thể
nhận cho bất kỳ giá trị nào. Mặt khác, chúng ta có thể đơn thuần viết
:math:`P(a)` để biểu diễn xác suất mà một biến ngẫu nhiên nhận giá trị
:math:`a`. Bởi vì một sự kiện trong lý thuyết xác suất là một tập các
kết quả từ không gian mẫu, chúng ta có thể xác định rõ một khoảng các
giá trị mà một biến ngẫu nhiên có thể nhận. Ví dụ,
:math:`P(1 \leq X \leq 3)` diễn tả xác suất của sự kiện
:math:`\{1 \leq X \leq 3\}`, nghĩa là
:math:`\{X = 1, 2, \text{hoặc}, 3\}`. Tương tự,
:math:`P(1 \leq X \leq 3)` biểu diễn xác suất mà biến ngẫu nhiên
:math:`X` có thể nhận giá trị trong tập :math:`\{1, 2, 3\}`.
.. raw:: html
Lưu ý rằng có một sự khác biệt tinh tế giữa các biến ngẫu nhiên *rời
rạc*, ví dụ như các mặt của xúc xắc, và các biến ngẫu nhiên *liên tục*,
ví dụ như cân nặng và chiều cao của một người. Việc hỏi rằng hai người
có cùng chính xác chiều cao hay không khá là vô nghĩa. Nếu ta đo với đủ
độ chính xác, ta sẽ thấy rằng không có hai người nào trên hành tinh này
mà có cùng chính xác chiều cao cả. Thật vậy, nếu đo đủ chính xác, chiều
cao của bạn lúc mới thức dậy và khi đi ngủ sẽ khác nhau. Cho nên không
có lý do gì để tìm xác suất một người nào đó cao
:math:`1.80139278291028719210196740527486202` mét cả. Trong toàn bộ dân
số trên thế giới, xác suất này gần như bằng :math:`0`. Sẽ có lý hơn nếu
ta hỏi chiều cao của một người nào đó có rơi vào một khoảng cho trước
hay không, ví dụ như giữa :math:`1.79` và :math:`1.81` mét. Trong các
trường hợp này, ta có thể định lượng khả năng mà ta thấy một giá trị nào
đó theo một *mật độ xác suất*. Xác suất để có chiều cao chính xác
:math:`1.80` mét không tồn tại, nhưng mật độ của sự kiện này khác không.
Trong bất kỳ khoảng nào giữa hai chiều cao khác nhau ta đều có xác suất
khác không. Trong phần còn lại của mục này, ta sẽ xem xét xác suất trong
không gian rời rạc. Về xác suất của biến ngẫu nhiên liên tục, bạn có thể
xem ở :numref:`sec_random_variables`.
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Làm việc với Nhiều Biến Ngẫu nhiên
----------------------------------
.. raw:: html
Chúng ta sẽ thường xuyên phải làm việc với nhiều hơn một biến ngẫu nhiên
cùng lúc. Ví dụ, chúng ta có thể muốn mô hình hóa mối quan hệ giữa các
loại bệnh và các triệu chứng bệnh. Cho một loại bệnh và một triệu chứng
bệnh, giả sử “cảm cúm” và “ho”, chúng có thể xuất hiện hoặc không trên
một bệnh nhân với xác suất nào đó. Mặc dù chúng ta hy vọng xác suất cả
hai xảy ra gần bằng không, ta có thể vẫn muốn ước lượng các xác suất này
và mối quan hệ giữa chúng để có thể thực hiện các biện pháp chăm sóc y
tế tốt hơn.
.. raw:: html
Xét một ví dụ phức tạp hơn: các bức ảnh chứa hàng triệu điểm ảnh, tương
ứng với hàng triệu biến ngẫu nhiên. Và trong nhiều trường hợp các bức
ảnh sẽ được gán một nhãn chứa tên các vật xuất hiện trong ảnh. Chúng ta
cũng có thể xem nhãn này như một biến ngẫu nhiên. Thậm chí, ta còn có
thể xem tất cả các siêu dữ liệu như địa điểm, thời gian, khẩu độ, tiêu
cự, ISO, khoảng lấy nét và loại máy ảnh, là các biến ngẫu nhiên. Tất cả
các những biến ngẫu nhiên này xảy ra đồng thời. Khi làm việc với nhiều
biến ngẫu nhiên, có một số đại lượng đáng được quan tâm.
.. raw:: html
Xác suất Đồng thời
~~~~~~~~~~~~~~~~~~
.. raw:: html
Đầu tiên là *xác suất đồng thời* :math:`P(A = a, B=b)`. Cho hai biến
:math:`a` và :math:`b` bất kỳ, xác suất đồng thời cho ta biết xác suất
để cả :math:`A=a` và :math:`B=b` đều xảy ra. Ta có thể thấy rằng với mọi
giá trị :math:`a` và :math:`b`, :math:`P(A=a, B=b) \leq P(A=a)`. Bởi để
:math:`A=a` và :math:`B=b` xảy ra thì :math:`A=a` phải xảy ra *và*
:math:`B=b` cũng phải xảy ra (và ngược lại). Do đó, khả năng :math:`A=a`
và :math:`B=b` xảy ra đồng thời không thể lớn hơn khả năng :math:`A=a`
hoặc :math:`B=b` xảy ra một cách độc lập được.
.. raw:: html
.. raw:: html
.. raw:: html
Xác suất có điều kiện
~~~~~~~~~~~~~~~~~~~~~
.. raw:: html
Điều này giúp ta thu được một tỉ lệ thú vị:
:math:`0 \leq \frac{P(A=a, B=b)}{P(A=a)} \leq 1`. Chúng ta gọi tỉ lệ này
là *xác suất có điều kiện* và ký hiệu là :math:`P(B=b \mid A=a)`: xác
suất để :math:`B=b`, với điều kiện :math:`A=a` đã xảy ra.
.. raw:: html
Định lý Bayes
~~~~~~~~~~~~~
.. raw:: html
Sử dụng định nghĩa của xác suất có điều kiện, chúng ta có thể thu được
một trong những phương trình nổi tiếng và hữu dụng nhất trong thống kê:
*định lý Bayes*. Cụ thể như sau: Theo định nghĩa chúng ta có *quy tắc
nhân* :math:`P(A, B) = P(B \mid A) P(A)`. Tương tự, ta cũng có
:math:`P(A, B) = P(A \mid B) P(B)`. Giả sử :math:`P(B) > 0`. Kết hợp các
điều kiện trên ta có:
.. math:: P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)}.
.. raw:: html
Lưu ý rằng ở đây chúng ta sử dụng ký hiệu ngắn gọn hơn, với
:math:`P(A, B)` là *xác suất đồng thời* và :math:`P(A \mid B)` là *xác
suất có điều kiện*. Các phân phối này có thể được tính tại các giá trị
cụ thể :math:`A = a, B=b`.
.. raw:: html
Phép biên hóa
~~~~~~~~~~~~~
.. raw:: html
Định lý Bayes rất hữu ích nếu chúng ta muốn suy luận một điều gì đó từ
một điều khác, như là nguyên nhân và kết quả, nhưng ta chỉ biết các đặc
tính theo chiều ngược lại, như ta sẽ thấy trong phần sau của chương này.
Chúng ta cần làm một thao tác quan trọng để đạt được điều này, đó là
*phép biên hóa*. Có thể hiểu là việc xác định :math:`P(B)` từ
:math:`P(A, B)`. Chúng ta có thể tính được xác suất của B bằng tổng xác
suất kết hợp của A và B tại mọi giá trị có thể của A:
.. math:: P(B) = \sum_{A} P(A, B),
.. raw:: html
Công thức này cũng được biết đến với tên gọi *quy tắc tổng*. Xác suất
hay phân phối thu được từ thao tác biên hóa được gọi là *xác suất biên*
hoặc *phân phối biên*.
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Tính độc lập
~~~~~~~~~~~~
.. raw:: html
Một tính chất hữu ích khác cần kiểm tra là *tính phụ thuộc* và *tính độc
lập*. Hai biến ngẫu nhiên :math:`A` và :math:`B` độc lập nghĩa là việc
một sự kiện của :math:`A` xảy ra không tiết lộ bất kỳ thông tin nào về
việc xảy ra một sự kiện của :math:`B`. Trong trường hợp này
:math:`P(B \mid A) = P(B)`. Các nhà thống kê thường biểu diễn điều này
bằng ký hiệu :math:`A \perp B`. Từ định lý Bayes, ta có
:math:`P(A \mid B) = P(A)`. Trong tất cả các trường hợp khác, chúng ta
gọi :math:`A` và :math:`B` là hai biến phụ thuộc. Ví dụ, hai lần đổ liên
tiếp của một con xúc xắc là độc lập. Ngược lại, vị trí của công tắc đèn
và độ sáng trong phòng là không độc lập (tuy nhiên chúng không hoàn toàn
xác định, vì bóng đèn luôn có thể bị hỏng, mất điện hoặc công tắc bị
hỏng).
.. raw:: html
Vì :math:`P(A \mid B) = \frac{P(A, B)}{P(B)} = P(A)` tương đương với
:math:`P(A, B) = P(A)P(B)`, hai biến ngẫu nhiên là độc lập khi và chỉ
khi phân phối đồng thời của chúng là tích các phân phối riêng lẻ của
chúng. Tương tự, cho một biến ngẫu nhiên :math:`C` khác, hai biến ngẫu
nhiên :math:`A` và :math:`B` là *độc lập có điều kiện* khi và chỉ khi
:math:`P(A, B \mid C) = P(A \mid C)P(B \mid C)`. Điều này được ký hiệu
là :math:`A \perp B \mid C`.
.. raw:: html
.. _subsec_probability_hiv_app:
Ứng dụng
~~~~~~~~
.. raw:: html
Hãy thử nghiệm các kiến thức chúng ta vừa học. Giả sử rằng một bác sĩ
phụ trách xét nghiệm AIDS cho một bệnh nhân. Việc xét nghiệm này khá
chính xác và nó chỉ thất bại với xác suất :math:`1\%`, khi nó cho kết
quả dương tính dù bệnh nhân khỏe mạnh. Hơn nữa, nó không bao giờ thất
bại trong việc phát hiện HIV nếu bệnh nhân thực sự bị nhiễm bệnh. Ta sử
dụng :math:`D_1` để biểu diễn kết quả chẩn đoán (:math:`1` nếu dương
tính và :math:`0` nếu âm tính) và :math:`H` để biểu thị tình trạng nhiễm
HIV (:math:`1` nếu dương tính và :math:`0` nếu âm tính).
:numref:`conditional_prob_D1` liệt kê xác suất có điều kiện đó.
.. raw:: html
.. _conditional_prob_D1:
.. table:: Xác suất có điều kiện của :math:`P(D_1 \mid H)`.
+---------------------------+-------------+-------------+
| Xác suất có điều kiện | :math:`H=1` | :math:`H=0` |
+===========================+=============+=============+
| :math:`P(D_1 = 1 \mid H)` | 1 | 0.01 |
+---------------------------+-------------+-------------+
| :math:`P(D_1 = 0 \mid H)` | 0 | 0.99 |
+---------------------------+-------------+-------------+
.. raw:: html
Lưu ý rằng tổng của từng cột đều bằng :math:`1` (nhưng tổng từng hàng
thì không), vì xác suất có điều kiện cần có tổng bằng :math:`1`, giống
như xác suất. Hãy cùng tìm xác suất bệnh nhân bị AIDS nếu xét nghiệm trả
về kết quả dương tính, tức :math:`P(H = 1 \mid D_1 = 1)`. Rõ ràng điều
này sẽ phụ thuộc vào mức độ phổ biến của bệnh, bởi vì nó ảnh hưởng đến
số lượng dương tính giả. Giả sử rằng dân số khá khỏe mạnh, ví dụ:
:math:`P(H=1) = 0.0015`. Để áp dụng Định lý Bayes, chúng ta cần áp dụng
phép biên hóa và quy tắc nhân để xác định
.. math::
\begin{aligned}
&P(D_1 = 1) \\
=& P(D_1=1, H=0) + P(D_1=1, H=1) \\
=& P(D_1=1 \mid H=0) P(H=0) + P(D_1=1 \mid H=1) P(H=1) \\
=& 0.011485.
\end{aligned}
.. raw:: html
.. raw:: html
.. raw:: html
Do đó, ta có
.. math::
\begin{aligned}
&P(H = 1 \mid D_1 = 1)\\ =& \frac{P(D_1=1 \mid H=1) P(H=1)}{P(D_1=1)} \\ =& 0.1306 \end{aligned}.
.. raw:: html
Nói cách khác, chỉ có 13,06% khả năng bệnh nhân thực sự mắc bệnh AIDS,
dù ta dùng một bài kiểm tra rất chính xác. Như ta có thể thấy, xác suất
có thể trở nên khá phản trực giác.
Một bệnh nhân phải làm gì nếu nhận được tin dữ như vậy? Nhiều khả năng
họ sẽ yêu cầu bác sĩ thực hiện một xét nghiệm khác để làm rõ sự việc.
Bài kiểm tra thứ hai có những đặc điểm khác và không tốt bằng bài thứ
nhất, như ta có thể thấy trong :numref:`conditional_prob_D2`.
.. raw:: html
.. raw:: html
.. _conditional_prob_D2:
.. table:: Xác suất có điều kiện của :math:`P(D_2 \mid H)`.
+---------------------------+-------------+-------------+
| Xác xuất có điều kiện | :math:`H=1` | :math:`H=0` |
+===========================+=============+=============+
| :math:`P(D_2 = 1 \mid H)` | 0.98 | 0.03 |
+---------------------------+-------------+-------------+
| :math:`P(D_2 = 0 \mid H)` | 0.02 | 0.97 |
+---------------------------+-------------+-------------+
Không may thay, bài kiểm tra thứ hai cũng có kết quả dương tính. Hãy
cùng tính các xác suất cần thiết để sử dụng định lý Bayes bằng cách giả
định tính độc lập có điều kiện:
.. math::
\begin{aligned}
&P(D_1 = 1, D_2 = 1 \mid H = 0) \\
=& P(D_1 = 1 \mid H = 0) P(D_2 = 1 \mid H = 0) \\
=& 0.0003,
\end{aligned}
.. math::
\begin{aligned}
&P(D_1 = 1, D_2 = 1 \mid H = 1) \\
=& P(D_1 = 1 \mid H = 1) P(D_2 = 1 \mid H = 1) \\
=& 0.98.
\end{aligned}
.. raw:: html
Bây giờ chúng ta có thể áp dụng phép biên hóa và quy tắc nhân xác suất:
.. math::
\begin{aligned}
&P(D_1 = 1, D_2 = 1) \\
=& P(D_1 = 1, D_2 = 1, H = 0) + P(D_1 = 1, D_2 = 1, H = 1) \\
=& P(D_1 = 1, D_2 = 1 \mid H = 0)P(H=0) + P(D_1 = 1, D_2 = 1 \mid H = 1)P(H=1)\\
=& 0.00176955.
\end{aligned}
.. raw:: html
Cuối cùng xác suất bệnh nhân mắc bệnh AIDS qua hai lần dương tính là
.. math::
\begin{aligned}
&P(H = 1 \mid D_1 = 1, D_2 = 1)\\
=& \frac{P(D_1 = 1, D_2 = 1 \mid H=1) P(H=1)}{P(D_1 = 1, D_2 = 1)} \\
=& 0.8307.
\end{aligned}
.. raw:: html
Cụ thể hơn, thử nghiệm thứ hai mang lại độ tin cậy cao hơn rằng không
phải mọi chuyện đều ổn. Mặc dù bài kiểm tra thứ hai kém chính xác hơn
bài đầu, nó vẫn cải thiện đáng kể dự đoán.
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Kỳ vọng và Phương sai
---------------------
.. raw:: html
Để tóm tắt những đặc tính then chốt của các phân phối xác suất, chúng ta
cần một vài phép đo. *Kỳ vọng* (hay trung bình) của một biến ngẫu nhiên
:math:`X`, được ký hiệu là
.. math:: E[X] = \sum_{x} x P(X = x).
.. raw:: html
Khi giá trị đầu vào của phương trình :math:`f(x)` là một biến ngẫu nhiên
nhiên cho trước theo phân phối :math:`P` với các giá trị :math:`x` khác
nhau, kỳ vọng của :math:`f(x)` sẽ được tính theo phương trình:
.. math:: E_{x \sim P}[f(x)] = \sum_x f(x) P(x).
.. raw:: html
Trong nhiều trường hợp, chúng ta muốn đo độ lệch của biến ngẫu nhiên
:math:`X` so với kỳ vọng của nó. Đại lượng này có thể được đo bằng
phương sai
.. math::
\mathrm{Var}[X] = E\left[(X - E[X])^2\right] =
E[X^2] - E[X]^2.
.. raw:: html
Nếu lấy căn bậc hai của kết quả ta sẽ được độ lệch chuẩn. Phương sai của
một hàm của một biến ngẫu nhiên đo độ lệch của hàm số đó từ kỳ vọng của
nó khi các giá trị :math:`x` khác nhau được lấy mẫu từ phân phối của
biến ngẫu nhiên đó:
.. math:: \mathrm{Var}[f(x)] = E\left[\left(f(x) - E[f(x)]\right)^2\right].
.. raw:: html
Tóm tắt
-------
.. raw:: html
- Chúng ta có thể sử dụng MXNet để lấy mẫu từ phân phối xác suất.
- Các biến ngẫu nhiên có thể được phân tích bằng các phương pháp như
phân phối đồng thời (*joint distribution*), phân phối có điều kiện
(*conditional distribution*), định lý Bayes, phép biên hóa
(*marginalization*) và giả định độc lập (*independence assumptions*).
- Kỳ vọng và phương sai là các phép đo hữu ích để tóm tắt các đặc điểm
chính của phân phối xác suất.
.. raw:: html
Bài tập
-------
.. raw:: html
1. Tiến hành :math:`m=500` nhóm thí nghiệm với mỗi nhóm lấy ra
:math:`n=10` mẫu. Thay đổi :math:`m` và :math:`n`. Quan sát và phân
tích kết quả của thí nghiệm.
2. Cho hai sự kiện với xác suất :math:`P(\mathcal{A})` và
:math:`P(\mathcal{B})`, tính giới hạn trên và dưới của
:math:`P(\mathcal{A} \cup \mathcal{B})` và
:math:`P(\mathcal{A} \cap \mathcal{B})`. (Gợi ý: sử dụng `biểu đồ
Venn `__.)
3. Giả sử chúng ta có các biến ngẫu nhiên :math:`A`, :math:`B` và
:math:`C`, với :math:`B` chỉ phụ thuộc :math:`A`, và :math:`C` chỉ
phụ thuộc vào :math:`B`. Làm thế nào để đơn giản hóa xác suất đồng
thời của :math:`P(A, B, C)`? (Gợi ý: đây là một `Chuỗi
Markov `__.)
4. Trong :numref:`subsec_probability_hiv_app`, bài xét nghiệm đầu tiên
có độ chính xác cao hơn. Vậy tại sao chúng ta không sử dụng bài xét
nghiệm đầu tiên cho lần thử tiếp theo?
.. raw:: html
.. raw:: html
.. raw:: html
Thảo luận
---------
- `Tiếng Anh `__
- `Tiếng Việt `__
Những người thực hiện
---------------------
Bản dịch trong trang này được thực hiện bởi:
- Đoàn Võ Duy Thanh
- Nguyễn Văn Tâm
- Vũ Hữu Tiệp
- Nguyễn Cảnh Thướng
- Lê Khắc Hồng Phúc
- Phạm Hồng Vinh
- Mai Sơn Hải
- Trần Kiến An
- Tạ H. Duy Nguyên
- Phạm Minh Đức
- Trần Thị Hồng Hạnh
- Lê Thành Vinh
- Nguyễn Minh Thư