Quan hệ giữa các phân phối xác suất thông dụng nhất: Từ Bernoully cho đến Multinomial.

Hôm nay đi nhậu chia tay 1 ông anh đồng nghiệp đồng hương, uống hơi nhiều nên khá sấp và ko về nhà được, mấy ae đành lên công ty ngủ lại vs 2 bro trực hệ thống SOC ban đêm. Tuy nhiên do uống chưa đủ để sấp thực sự nên lại như mọi khi: "ko buồn ngủ". Vậy là ngẫu hứng dậy mở máy viết bài này. 

Bài viết này, tôi chỉ giới thiệu qua loa về một vài phân phối xác suất thông dụng cũng như tương quan giữa chúng. Chúng ta sẽ gặp những phân phối xác suất này rất nhiều trong quá trình nghiên cứu về Machine Learning. Còn tương quan giữa chúng chính là cách mà phân phối này có thể trở thành phân phối kia với những điều kiện cho trước nào đó. 

Vì sao lại là phân phối xác suất?

Đơn giản thôi, trong tự nhiên, mọi biến cố ngẫu nhiên (ví dụ như khả năng bạn cười 1 ai đó trong 1 tập các em gái cho trước) đều có thể thống kê. Nếu như nó tuân theo 1 phân phối xác suất nào đó (phổ điểm thi đại học tuân theo phân phối chuẩn) thì ta có thể dễ dàng đánh giá biến cố đó dựa vào đặc tính sẵn có của phân phối xác suất. Còn nếu nó ko tuân theo 1 phân phối xác suất nào đã biết công thức, thì người ta sẽ xấp xỉ nó theo 1 phân phối xác suất đã biết. Còn nếu đã xấp xỉ rồi mà vẫn ko matching vs nhau lắm, thì người ta sẽ dùng các mô hình toán học và các phép ước lượng để xấp xỉ dần dần tập giá trị của biến cố đó về 1 phân phối xác suất giới hạn (nghe giống như tính lim - giới hạn của hàm số, chuỗi số vậy). Ví dụ như mô hình Markov model kết hợp với phép ước lượng Monte Carlo để tạo thành phương pháp MCMC. 

Hơn nữa, trong lĩnh vực Thống kê nói chung và Machine Learning nói riêng, có 2 phương pháp tiếp cận đều dựa xác suất, nhưng chỉ có 1 phương pháp có mục tiêu tìm ra phân phối xác suất của tập mẫu: (xin phép ko dịch ra tiếng Việt)
  • Discriminative model: là lớp các cách tiếp cận với mục đích tính likelihood của biến ngẫu nhiên Y thông qua tính xác suất có điều kiện của biến mục tiêu Y khi đã biết các biến cố có sẵn X: $P(Y=y|X=x)$
  • Generative model: là lớp các cách tiếp cận với mục đích tìm ra phân phối xác suất (phân phối thực sự hoặc xấp xỉ) của tập dữ liệu. Cách tiếp cận này sẽ bám vào phân phối xác suất chung của các biến ngẫu nhiên trong tập dữ liệu: $P(X=x,Y=y)$


Như các bạn có thể thấy ở hình minh họa trên, đây là trường hợp phân loại dữ liệu (Classification)
  • Discriminative model sẽ tính khả năng mà mỗi điểm dữ liệu nhận giá trị nào trong tập biến cố $D=\{0; 1\}$ thông qua 2 giá trị xác suất $P(Y=0|x)$ và $P(Y=1|x)$; ý là khả năng chai rượu mới kia thuộc loại 0 cao hơn hay loại 1 cao hơn, rồi từ kết quả thu được, xem giá trị nào lớn hơn thì đưa ra quyết định chai rượu cần dự đoán (với $X=x$) sẽ thuộc phân lớp nào. Kết quả của Discriminative model sẽ là 1 hoặc nhiều đường biên phân cách (có thể thẳng hoặc cong) để phân loại tập dữ liệu thành các phân lớp; chai rượu $X=x$ có tọa độ rơi vào phân lớp nào thì nó sẽ được phân loại vào phân lớp đó. Một chút thông tin thêm, nếu đường biên là thẳng thì tương ứng với các phương pháp Classification thông thường (như Regression, Support Vector Machine, Soft Margin, Decision Tree, ...); còn nếu ko có hình dạng đồ thị xác định nào thì tương ứng với việc sử dụng Deep Learning để phân loại. 
  • Generative model sẽ tính ra phân phối xác suất giống nhất với phân phối xác suất thật của tập dữ liệu. Để làm điều này, người ta sẽ tính xác suất hậu nghiệm (posterior) của biến cố quan sát được dựa trên suy luận xuất phát từ công thức Bayes. Biến đổi chút, ta sẽ thấy: $P(x|Y=0)=\frac{P(x,Y=0)}{P(Y=0)}=\frac{P(Y=0|x).P(x)}{P(Y=0)}$; ý là tính khả năng chai rượu mới kia thuộc loại 0 thật sự là bao nhiêu nếu giả sử nó thuộc loại 0. (Kiểu như giả sử thằng đó vô tội, thì khả năng nó thực sự vô tội là bao nhiêu). Kết quả của Generative model sẽ cho ra phân phối xác suất thật nhất của tập dữ liệu. Hơn nữa, vì đã có phân phối xác suất của tập dữ liệu rồi, nên ta có thể tạo ra được điểm dữ liệu mới có đặc tính giống với các điểm dữ liệu khác trong cụm.
Mà phân phối xác suất đã biết thì có nhiều vãi lúa, do đó để dễ nhớ chúng, bạn nên đọc tiếp phần sau đây. Cách nhớ rất đơn giản, khi đã nhớ rồi thì ta có thể dễ hình dung ra cách lấy mẫu của chúng như thế nào.

Tương quan giữa các phân phối xác suất.


Đơn giản thôi, ở hình trên, các giá trị ko có dấu vector trên đầu nghĩa là các giá trị số trong tập số thực $R$ chẳng hạn; còn các vector trên đầu nghĩa là một vector $n$ thành phần thuộc $R^n$. Tương ứng với phân phối xác suất đơn biến hoặc đa biến. Nghĩa là, việc scale theo chiều ngang từ trái qua phải sẽ tương ứng với việc thực hiện phép thử (tung đồng xu, xúc xắc) với số lần tăng dần. Còn scale theo chiều dọc sẽ tương ứng với việc tăng dần kích thước của tập giá trị biến cố của biến ngẫu nhiên (đồng xu 2 mặt, xúc xắc 6 mặt, cái j đó nhiều mặt hơn). Riêng $\Sigma$ là ma trận vuông thuộc trường $R^n \times R^n$.

Đi từ đơn giản nhất, phân phối Bernoully, là phân phối xác xuất mô phỏng việc tung đồng xu 1 lần duy nhất; chẳng hạn ta cần thu được mặt ngửa, thì xác suất ngửa là $P(head)=\theta$, sấp là $P(tail) = 1-P(head) = 1-\theta$. Vì tập giá trị biến cố chỉ là 0 và 1, nên đây là phân phối xác suất của biến ngẫu nhiên rời rạc.
Do chỉ được tung duy nhất 1 lần, nên nếu số lần xuất hiện mặt ngửa là $x=0 \vee x=1$, thì ta thu được công thức tính hàm mật độ (khối) xác suất là: $p(x|\theta)=\theta^x.(1-\theta)^{1-x}$ với quy ước $0^0=1$.

Nhìn xuống ngay bên dưới, ta sẽ thấy phân phối Categorical, là phân phối xác suất mô phỏng việc tung xúc xắc 1 lần duy nhất (con xúc xắc có thể có 3, 4, 5, 6,  ..., K mặt). Chẳng hạn, ta tung xúc xắc 6 mặt, lúc này $\vec{\theta}=[\theta_{1};\theta_{2};\theta_{3};\theta_{4};\theta_{5};\theta_{6}]$ sẽ là vector biểu diễn khả năng xuất hiện của từng mặt khi tung xúc xắc. Các số $\theta_{i}$ sẽ tương ứng với xác suất xuất hiện mặt có $i$ chấm, tức là $P(X=i)=\theta_{i}$; và tổng của 6 thành phần $\theta_{i}$ của $\theta$ sẽ bằng 1. Tương tự như phân phối Bernoully, tập giá trị biến cố cũng chỉ là các giá trị rời rạc, do đó đây cũng là phân phối xác suất của biến ngẫu nhiên rời rạc.
Do cũng chỉ được tung 1 lần duy nhất, nên nếu số lần xuất hiện của mặt $k$ chấm nào đó là $x_{k}=1$, thì các mặt có số chấm khác $k$ phải có $x_{j \ne k}=0$ ; thì ta thu được công thức tính hàm mật độ (khối) xác suất là $p(X=k|\vec{\theta})=\prod\limits_{j=1}^{6}{\theta_{j}^{x_{j}}}$

Khi $K=2$, xúc xắc sẽ chỉ có 2 mặt, và đo đó nó trở về thành đồng xu. Lúc này, $\theta_{1} = \theta$, còn $\theta_{2} = 1-\theta$. Ốp vào công thức mật độ xác suất trên, ta sẽ thu được công thức mật độ xác suất của phân phối Bernoully.
Qua đó, ta có thể thấy rằng phân phối Categorical là dạng tổng quát hóa của phân phối Bernoully khi tăng kích thước tập giá trị của biến ngẫu nhiên rời rạc lên.

Nếu scale phân phối Bernoully theo chiều ngang, tức là tăng số lần thực hiện phép thử lên $n$ lần, đồng nghĩa với việc tung đồng xu $n$ lần, ta sẽ thu được phân phối Binomial (hay còn gọi là phân phối nhị thức - vì vẫn là 2 mặt xấp ngửa của đồng xu). Phân phối Binomial thực hiện khảo sát khả năng có $k$ lần xuất hiện mặt ngửa trong tổng cộng $n$ lần tung đồng xu. Và vì tập giá trị biến cố vẫn giữ nguyên là 0 và 1 (xấp và ngửa), nên đây cũng là phân phối xác suất của biến ngẫu nhiên rời rạc.
Do được tung nhiều lần, nên giả sử trong $n$ lần tung, có $k$ lần xuất hiện mặt ngửa; khi đó, ta thu được công thức tính hàm mật độ (khối) xác suất là: $p(X=k|n, \theta)=\left( \begin{array}{l} n\\ k \end{array} \right).\theta^k .(1-\theta)^{n-k}$ với $\left( \begin{array}{l} n\\ k \end{array} \right) = C_{n}^{k}=\frac{n!}{k!.(n-k)!}$ là tổ hợp chập $k$ của $n$ phần tử.
Rất dễ nhớ, chỉ cần tăng số lần thực hiện phép thử từ 1 lần lên $n$ lần, là ta đã có thể tổng quát hóa phân phối Bernoully thành phân phối Binomial. Nếu Bernoully là tung đồng xu 1 lần thì Binomial là tung đồng xu $n$ lần.

Gióng xuống ngay bên dưới. ta sẽ thấy phân phối Multinomial. Phân phối này vừa là dạng scale theo chiều ngang của phân phối Categorical, vừa là dạng scale theo chiều dọc của phân phối Binomial. Phân phối Multinomial thực hiện khảo sát khả năng có $x_{k}$ lần xuất hiện mặt $k$ chấm với từng giá trị $k$ trong tập giá trị của biến cố. Và đương nhiên, phân phối này vẫn thuộc loại phân phối xác suất của biến ngẫu nhiên rời rạc, vì tập giá trị biến cố vẫn là những giá trị rời rạc (số chấm của con xúc xắc).
Ko mất tính tổng quát, đặc biệt hóa trong trường hợp tung xúc xắc 6 mặt, phân phối này sẽ tính ra xác suất để trong $n$ lần tung xúc xắc, sẽ có đúng $x_{1}$ lần xuất hiện mặt 1 chấm, $x_{2}$ lần xuất hiện mặt 2 chấm, ..., $x_{6}$ lần xuất hiện mặt 6 chấm. Với xác suất để xuất hiện các mặt $k$ chấm sẽ lần lượt là thành phần của vector $\vec{\theta}=[\theta_{1};\theta_{2};\theta_{3};\theta_{4};\theta_{5};\theta_{6}]$. Khi đó, ta thu được công thức tính của hàm mật độ (khối) xác suất là: $p(\vec{X} = \vec{k}|\vec{\theta})=\frac{n!}{k_1!.k_2!...k_n!}.\theta_1^{k_1}.\theta_2^{k_2}...\theta_n^{k_n}$

Đó, game là dễ. Tạm thời hãng vậy thôi nhé. Ngồi gõ công thức Toán hơi tốn thời gian chút, nên đành chia bài viết ra thành nhiều phần và sẽ viết tiếp về các phân phối tổng quát hơn ở các bài tiếp theo vậy. Về căn bản thì bạn chỉ cần nhớ là có 2 hướng tổng quát hóa, 1 là tăng số lần thực hiện phép thử, 2 là tăng lực lượng của tập giá trị của biến ngẫu nhiên lên. Trong bài này, tôi mới chỉ nói đến phân phối xác suất của các biến ngẫu nhiên rời rạc. Trong các bài sau sẽ tổng quát hóa chúng lên dạng phân phối Poisson, là một phân phối xác suất mô tả các sự kiện xuất hiện với tần suất trung bình cho trước, khi số lượng phép thử là rất lớn, và xác suất để xuất hiện sự kiện là rất nhỏ, hoặc rất lớn (rất gần 0 hoặc 1).

Tuy nhiên, phân phối Poisson vẫn chỉ là phân phối của biến ngẫu nhiên rời rạc. Do đó để tổng quát hóa lực lượng tập giá trị của biến ngẫu nhiên lên mức trù mật theo tập hợp số thực, người ta sẽ sử dụng các phân phối cho các biến ngẫu nhiên liên tục như phân phối chuẩn (Gauss), phân phối chuẩn tắc, phân phối Student, phân phối Beta, phân phối Dirichlet mà cũng có vài phân phối xuất hiện trong hình ảnh ở trên. Các phân phối này đều có thể transform thành nhau được, nếu ko thể transform thì cũng có thể xấp xỉ nhau trong 1 số điều kiện cụ thể nào đó.

Nhận xét

Bài đăng phổ biến từ blog này

Trên con đường tu đạo luôn cực kỳ theo đuổi!

C++ Con trỏ (Pointer) toàn thư: Phần 4: Con trỏ "đa cấp". Đánh nhau bằng con trỏ.

Vừa ngộ ra sự vi diệu của Padding Oracle Attack thì được tin crush hồi lớp 12 sắp cưới.