Lý thuyết xác suất cơ bản sử dụng trong Machine Learning

Giới thiệu

Có thể nói một điều rằng lý thuyết xác suất là một trong những lý thuyết quan trọng nhất của khoa học hiện đại và đặc biệt là Machine Learning bởi vì đa phần các thuật toán của Machine Learning đều có cơ sở dựa trên xác suất. Nếu như bạn là một người mới bắt đầu bước chân vào lĩnh vực học máy bạn có lẽ sẽ tiếp cận với những Tutorial trên mạng theo hướng đi ăn xổi ở thì. Bạn có thể làm được một vài điều khá là hay ho, khá là kì diệu đối với bạn ở thời điểm đó như nhận diện được đâu là một chú mèo trong bức ảnh, dự đoán được biến động của thị trường chứng khoán ngày mai là như thế nào, chuẩn đoán được một người có phải bị bệnh HIV hay không... Tất nhiên những thứ đó giúp cho bạn có thứ cảm giác rất sung sướng khi làm được một điều gì đó với lĩnh vực mới này. Tuy nhiên khi bạn càng tìm hiểu sâu về nó thì bạn sẽ thấy có những vấn đề không thể có một Tutorial nào cho bạn cả, bản thân bạn phải tự giải quyết nó. Đến lúc đó bạn sẽ lại phải vòng ngược lại và tự vấn bản thân rằng vì sao người ta lại sử dụng thuật toán này để giải quyết bài toán đó???. Và đây chính là lúc bạn tìm về với lý thuyết xác suất một trong những lý thuyết cơ sở để hình thành nên nhưng thuật toán của Machine Learning. Trong bài viết này tôi sẽ tổng hợp lại những kiến thức xác suất cơ bản đó giúp cho các bạn ôn tập lại kiến thức của mình nhằm tiếp cận Machine Learning một cách dễ dàng hơn.

Không gian xác suất

Chúng ta đã được học đến khái niệm về xác suất trong bất kì chương trình đại học về kĩ thuật hoặc kinh tế nào. Khi nói đến xác suất là người ta nói đến các lý thuyết toán học về sự bất định - uncertainly hay nói một cách khác, xác suất biểu thị khả năng xảy ra của các sự kiện - event trong một môi trường bất định nào đó. Ví dụ chúng ta xét về xác suất có mưa hay không có mưa vào thứ hai tuần tới, xác suất tỏ tình thành công hay thất bại của cậu bạn thân... Tóm lại cứ nói đến xác suất là đề cập đến sự không chắc chắn hay bất định đó.

Về mặt toán học, người ta kí hiệu một không gian xác suất - probability space bao gồm 3 thành phần (Ω,F,P)(\Omega , F, P) như sau:

  • Ω\Omega chính là tập các giá trị có thể xảy ra - possible outcome với sự kiện trong không gian xác suất. Người ta còn gọi nó là không gian mẫu
  • F2ΩF \subseteq 2^{\Omega} - (cái này là lũy thừa cơ số 2 của Ω\Omega) là tập hợp các sự kiện có thể xảy ra trong không gian xác suất
  • PP là xác suất (hoặc phân phối xác suất) của sự kiện. PP ánh xạ một sự kiện EFE \in F vào trong một giá trị thực p[0;1]p \in \left [ 0;1 \right ]. Ở đây chúng ta gọi p=P(E)p = P(E) là xác suất của sự kiện EE

Ví dụ minh họa

Chúng ta cùng nhau xem xét một ví dụ khá kinh điển trong lý thuyết xác suất đó chính là ví dụ tung xúc sắc

Giả sử rằng chúng ta tung một con xúc sắc 6 mặt. Không gian các outcomes có thể xảy ra trong trường hợp này là $$\Omega = \left { 1, 2, 3, 4, 5, 6 \right }$$ - chúng ta không tính đến các trường hợp xúc sắc rơi lơ lửng tức là không thuộc mặt nào. Không gian các sự kiện $$F$$ sẽ tùy thuộc vào sự định nghĩa của chúng ta. Ví dụ chúng ta định nghĩa sự kiện xúc sắc là mặt chẵn hoặc mặt lẻ thì không gian sự kiện $$F=\left { \varnothing , \left { 1, 3, 5 \right }, \left { 2, 4, 6 \right }, \Omega \right }$$ trong đó $$\varnothing $$ là sự kiện có xác suất 0 - hay còn gọi là biến cố không thể có. $$\Omega$$ là sự kiện có xác suất 1 - hay còn gọi là biến cố chắc chắn

Các tính chất của xác suất

Giống như ví dụ ở phía trên, khi không gian mẫu - outcomes space là hữu hạn thì chúng ta thường lựa chọn không gian sự kiện F=2Ω={,{1,3,5},{2,4,6},Ω}F=2^{\Omega} = \left \{ \varnothing , \left \{ 1, 3, 5 \right \}, \left \{ 2, 4, 6 \right \}, \Omega \right \}. Cách tiếp cận này chưa hẳn đã tổng quát hóa cho mọi trường hợp tuy nhiên nó đủ dùng trong các bài toán thực tế, tất nhiên là với giả thiết không gian mẫu của chúng ta là hữu hạn. Khi không gian mẫu là vô hạn - infinite chúng ta phải hết sức cẩn thận trong việc lựa chọn không gian sự kiện FF. Khi đã định nghĩa dược không gian sự kiện FF thị hàm xác suất của chúng ta bắt buộc phải thỏa mãn các tính chất sau đây:

  • Không âm - non-negativity - xác suất của mọi sự kiện là không âm, tức là với mọi xF,  P(x)0x \in F,~~ P(x)\geq 0
  • Xác suất toàn cục - trivial event P(Ω)=1P(\Omega) = 1
  • Tính cộng - additivity tức là với mọi x,yFx, y \in F nếu như xy=x\cap y= \varnothing thì ta có P(xy)=P(x)+P(y)P(x\cup y) = P(x) + P(y)

Biến ngẫu nhiên - Random Variables

Random Variables là một thành phần quan trọng trong lý thuyết xác suất. Nó biểu diễn giá trị của các đại lượng không xác định, thông thường nó được coi như một ánh xạ từ tập các outcomes trong không gian mẫu thành các giá trị thực.

Quay trở lại với ví dụ tung xúc sắc phía trên, gọi XX là biến ngẫu nhiên biểu diễn kết quả của các những lần gieo xúc sắc. Một lựa chọn khá tự nhiên và đơn giản đó là:

X$$ là số chấm tròn trên mặt tung được

Chúng ta cũng có thể lựa chọn một chiến lược biểu diễn biến ngẫu nhiên $$X$$ khác chẳng hạn như sau:

X={1 if i is odd0 if i is even  (1)X = \begin{cases} & 1 \text{ if i is odd} \\ & 0 \text{ if i is even} \end{cases} ~~(1)

Có nghĩa là cùng một biến cố nhưng biểu diễn nó như thế nào là việc của mỗi chúng ta. Biến ngẫu nhiên XX biểu diễn như biểu thức (1)(1) được gọi là binary random variables - biến nhị phân. Biến nhị phân được sử dụng rất thông dụng trong thực tế công việc nhất là Machine Learning và thường được biết đến với cái tên indicator variables nó thể hiện sự xảy ra hay không xảy ra của một sự kiện

Từ nay trở đi, chúng ta sẽ nói về xác suất đối với các biến ngẫu nhiên. Nếu các bạn đọc ở một số tài liệu về xác suất thì có thể thấy một số kí hiệu của chúng như sau:

P(X=a)  or  PX(a)  (2)P(X=a)~~or~~P_X(a)~~(2)

Công thức (2)(2) biểu diễn xác suất của một biến ngẫu nhiên XX tại giá trị aa. Ngoài ra người ta còn kí hiệu khoảng giá trị của một biến ngẫu nhiên XXVal(X)Val(X)

Biến rời rạc và biến liên tục

Có hai loại biến ngẫu nhiên đó là BNN rời rạcBNN liên tục. Rời rạc có thể hiểu một cách đơn giản là giá trị của nó thuộc vào một tập định trước. Trong Machine Learning các giá trị này tương ứng với các phân lớp (class). Ví dụ tung xúc sắc bên trên là một điển hình của biến ngẫu nhiên rời rạc và hàm xác suất của nó được định nghĩa như sau:

xp(x)=1  (3)\sum_{\forall x}{p(x)}=1~~(3)

Còn biến ngẫu nhiên liên tục có thể định nghĩa là các biến ngẫu nhiên mà các giá trị của nó rơi vào một tập không biết trước. Trong Machine Learning người ta gọi lớp bài toán với biến ngẫu nhiên liên tụcHồi quy. Giá trị của nó có thể nằm trong một khoảng hữu hạn ví dụ như thời gian làm bài thi đại học là t(0;180)t \in \left ( 0;180 \right ) phút hoặc cũng có thể là vô hạn ví dụ như thời gian từ bây giờ đến ngày tận thế $t \in \left ( 0; +\infty \right ) $ chẳng hạn. Khi đó hàm mật độ xác suất của nó trên toàn miền giá trị DD của outcomes space được định nghĩa bằng một tích phân như sau:

Dp(x)dx=1  (4)\int_{D}p(x)dx=1~~(4)

Note: nếu xxBNN liên tục thì p(x)p(x) có thể là một số dương bất kì miễn sao nó đảm bảo được công thức (4)(4)

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

Dựa vào phổ điểm của các học sinh, liệu ta có thể tính được xác suất để một học sinh được điểm 10 môn Lý, biết rằng học sinh đó được điểm 1 môn Toán (ai cũng có quyền hy vọng). Hoặc biết rằng bây giờ đang là tháng 7, tính xác suất để nhiệt độ hôm nay cao hơn 30 độ C.

Xác suất có điều kiện (conditional probability) của một biến ngẫu nhiên xx biết rằng biến ngẫu nhiên yy có giá trị y^\* được ký hiệu là p(x\| y = y^\*) (đọc là probability of xx given that yy takes value y^\*).

Conditional probability p(x \| y = y^\*) có thể được tính dựa trên joint probobability p(x,y)p(x, y). Quay lại Hình 1 với vùng có nền màu nâu nhạt. Nếu biết rằng y=9y = 9, xác suất p(xy=9)p(x \| y = 9) có thể tính được dựa trên hàng thứ 9 của hình vuông trung tâm, tức hàng p(x,y=9)p(x, y = 9). Trong hàng này, những ô vuông lớn hơn thể hiện xác suất lớn hơn. Tương ứng như thế, $p(x | y = 9) $ cũng lớn nếu p(x,y=9)p(x, y= 9) lớn. Chú ý rằng tổng các xác suất xp(x,y=9)\sum_{x} p(x, y = 9) nhỏ hơn 1 và bằng tổng các xác suất trên hàng thứ 9 này. Để có đúng xác suất, tức tổng các xác suất có điều kiện bằng 1, ta cần chia mỗi đại lượng p(x,y=9)p(x, y = 9) cho tổng của toàn hàng này. Tức là:

p(xy=9)==p(x,y=9)xp(x,y=9)=p(x,y=9)p(y=9)p(x \| y = 9) = = \frac{p(x, y = 9)}{\sum_x p(x, y = 9)} = \frac{p(x, y = 9)}{p(y = 9)}

Tổng quát:

\displaystyle p(x\|y = y^\*) = \frac{p(x, y = y^\*)}{\sum_{x} p(x, y = y^\*)} = \frac{p(x, y = y^\*)}{p(y = y^\*)} ~~~~ (9)

ở đây ta đã sử dụng công thức marginal probability ở (4)(4) cho mẫu số. Thông thường, ta có thể viết xác suất có điều kiện mà không cần chỉ rõ giá trị y = y^\* và có công thức gọn hơn:

p(xy)=p(x,y)p(y)   (10) p(x \|y) = \frac{p(x, y)}{p(y)}~~~ (10)

Tương tự:

p(yx)=p(y,x)p(x) p(y \| x) = \frac{p(y, x)}{p(x)}

và ta sẽ có quan hệ:

p(x,y)=p(xy)p(y)=p(yx)p(x)   (11) p(x, y) = p(x\|y)p(y) = p(y \| x) p(x) ~~~ (11)

Khi có nhiều hơn hai biến ngẫu nhiên, ta có các công thức:

\begin{eqnarray} p(x, y, z, w) & = & p(x, y, z \| w) p(w) & (12)\\\ & = & p(x, y \| z, w)p(z, w) = p(x, y \| z, w) p(z \| w) p(w) \quad & (13) \\\ & = & p(x | y, z, w)p(y | z, w) p(z | w) p(w) & (14) \end{eqnarray}

Công thức (14)(14) có dạng chuỗi (chain) và được sử dụng nhiều sau này.

Quy tắc Bayes

Công thức (11)(11) biểu diễn joint probability theo hai cách. Từ đây ta có thể suy ra quan hệ giữa hai conditional probabilities p(xy)p(x \|y)p(yx)p(y \| x):

p(yx)p(x)=p(xy)p(y) p(y \|x) p(x) = p(x \| y) p(y)

Biến đối một chút:

\displaystyle \begin{eqnarray} p(y \| x) & = & \frac{p(x \|y) p(y)}{p(x} & (15)\\\ & = & \frac{p(x \|y) p(y)}{\sum_{y} p(x, y)} & (16)\\\ & = & \frac{p(x \|y) p(y)}{\sum_{y} p(x \| y) p(y)} \quad & (17) \end{eqnarray}

ở đó dòng thứ hai và ba đã sử dụng các công thức về marginal và conditional probability ở mẫu số. Từ (17)(17) ta có thể thấy rằng p(yx)p(y \| x) hoàn toàn có thể tính được nếu ta biết mọi p(xy)p(x \| y)p(y)p(y). Tuy nhiên, việc tính trực tiếp xác suất này thường là phức tạp. Thay vào đó, ta có thể đi tìm mô hình phù hợp của p(xy)p(\mathbf{x} \| y) trên training data sao cho những gì đã thực sự xảy ra có xác suất cao nhất có thể (Chỗ này có thể hơi khó hình dung, tôi sẽ nói cụ thể về việc này trong bài tiếp theo). Dựa trên training data, các tham số của mô hình này có thể tìm được qua một bài toán tối ưu.

Ba công thức (15)(17)(15) - (17) thường được gọi là Quy tắc Bayes (Bayes' rule). Quy tắc này rất quan trọng trong Machine Learning!

Trong Machine Learning, chúng ta thường mô tả quan hệ giữa hai biến xxyy dưới dạng xác suất có điều kiện p(xy)p(x\|y). Ví dụ, biết rằng đầu vào là một bức ảnh ở dạng vector x\mathbf{x}, xác suất để bức ảnh chứa một chiếc xe là bao nhiêu. Khi đó, ta phải tính p(yx)p(y \| \mathbf{x}).

Independence

Nếu biết giá trị của một biến ngẫu nhiên xx không mang lại thông tin về việc suy ra giá trị của biến ngẫu nhiên yy (và ngược lại), thì ta nói rằng hai biến ngẫu nhiên là độc lập (independence). Chẳng hạn, chiều cao của một học sinh và điểm thi môn Toán của học sinh đó có thể coi là hai biến ngẫu nhiên độc lập.

Khi hai biến ngẫu nhiên xxyyđộc lập, ta sẽ có:

\begin{eqnarray} p(x \| y) &=& p(x) \quad & (18) \\\ p(y \| x) &=& p(y) & (19) \end{eqnarray}

Thay vào biểu thức Conditional Probability trong (11)(11), ta có:

p(x,y)=p(xy)p(y)=p(x)p(y)   (20) p(x, y) = p(x \| y) p(y) = p(x) p(y) ~~~ (20)

Kỳ vọng

Kỳ vọng (expectation) của một biến ngẫu nhiên được định nghĩa là:

\begin{eqnarray} \text{E}[x] = \sum_x x p(x) \quad & \text{if}~ x ~ \text{is discrete} \quad & (21)\\\ \text{E}[x] = \int x p(x) dx \quad & \text{if}~ x ~ \text{is continuous} & (22) \end{eqnarray}

Giả sử f(.)f(.) là một hàm số trả về một giá trị với mỗi giá trị x^\* của biến ngẫu nhiên xx. Khi đó, nếu xx là biến ngẫu nhiên rời rạc, ta sẽ có:

E[f(x)]=xf(x)p(x)   (23) \text{E}[f(x)] = \sum_x f(x) p(x) ~~~ (23)

Công thức cho biến ngẫu nhiên liên tục cũng được viết tương tự.

Với joint probability:

E[f(x,y)]=x,yf(x,y)p(x,y)dxdy   (24) \text{E}[f(x, y)] = \sum_{x,y} f(x, y) p(x, y) dx dy ~~~ (24)

Có 3 quy tắc cần nhớ về kỳ vọng:

  1. Kỳ vọng của một hằng số theo một biến ngẫu nhiên xx bất kỳ bằng chính hằng số đó:

E[α]=α   (25) \text{E}[\alpha] = \alpha ~~~ (25)

  1. Kỳ vọng có tính chất tuyến tính:
\begin{eqnarray} \text{E}[\alpha x] & = & \alpha \text{E}[x] \quad & (26)\\\ \text{E}[f(x) + g(x)] & = & \text{E}[f(x)] + \text{E}[g(x)] & (27) \end{eqnarray}
  1. Kỳ vọng của tích hai biến ngẫu nhiên bằng tích kỳ vọng của hai biến đó nếu hai biến ngẫu nhiên đó là độc lập. Điều ngược lại không đúng, tôi sẽ bàn nếu có dịp:

E[f(x)g(y)]=E[f(x)]E[g(y)]   (28) \text{E}[f(x) g(y)] = \text{E}[f(x)] \text{E}[g(y)] ~~~ (28)

Một vài phân phối thường gặp

Bernouli distribution

Bernoulli distribution là một phân bố rời rạc mô tả biến ngẫu nhiên nhị phân: nó mô tả trường hợp khi đầu ra chỉ nhận một trong hai giá trị x0,1x \in \\{0, 1\\}. Hai giá trị này có thể là headtail khi tung đồng xu; có thể là fraud transactionnormal transaction trong bài toán xác định giao dịch lừa đảo trong tín dụng; có thể là ngườikhông phải người trong bài toán tìm xem trong một bức ảnh có người hay không.

Bernoulli distribution được mô tả bằng một tham số λ[0,1]\lambda \in [0, 1] và là xác suất để x=1x = 1. Phân bố của mỗi đầu ra sẽ là:

p(x=1)=λ,    p(x=0)=1p(x=1)=1λ   (29) p(x = 1) = \lambda, ~~~~ p(x = 0) = 1 - p(x = 1) = 1 - \lambda ~~~ (29)

Hai đẳng thức này thường được viết gọn lại:

p(x)=λx(1λ)1x    (29) p(x) = \lambda^x (1 - \lambda)^{1 - x} ~~~~ (29)

với giả định rằng 00=10 ^0 = 1.

Có thể bạn chưa quen với cách viết này, hồi đầu tôi cũng hơi ngạc nhiên. Nhưng bạn cứ thử thay xx bằng 0 và 1 vào là sẽ hiểu.

Bernoulli distribution được ký hiệu ngắn gọn dưới dạng:

p(x)=Bernx[λ]     (30) p(x) = \text{Bern}_x [\lambda] ~~~~~ (30)

Categorical distribution

Cũng là biến ngẫu nhiên rời rạc, nhưng trong hầu hết các trường hợp, đầu ra có thể là một trong nhiều hơn hai giá trị khác nhau. Ví dụ, một bức ảnh có thể chứa một chiếc xe, một người, hoặc một con mèo. Khi đó, ta dùng phân bố tổng quát của Bernoulli distribution và được gọi là Categorical distribution. Các đầu ra được mô tả bởi 1 phần tử trong tập 1,2,,K\\{1, 2, \dots, K\\}.

Nếu có KK đầu ra có thể đạt được, Categorical distribution sẽ được mô tả bởi KK tham số, viết dưới dạng vector: λ=[λ1,λ2,,λK]\lambda = [\lambda_1, \lambda_2, \dots, \lambda_K] với các λk\lambda_k không âm và có tổng bằng 1. Mỗi giá trị λk\lambda_k thể hiện xác suất để đầu ra nhận giá trị kk:

p(x=k)=λk p(x = k) = \lambda_k

Viết gọn lại:

p(x)=Catx[λ] p(x) = \text{Cat}_x [\lambda]

Biểu diễn theo cách khác, ta có thể coi như đầu ra là một vector ở dạng one-hot vector, tức xe_1,e_2,,e_K\mathbf{x} \in \\{\mathbf{e}\_1, \mathbf{e}\_2, \dots, \mathbf{e}\_K\\} với e_k\mathbf{e}\_k là vector đơn vị thứ kk, tức tất cả các phần tử bằng 0, trừ phần tử thứ kk bằng 1. Khi đó, ta sẽ có:

p(x=e_k)=j=1Kλjxj=λk    (31)p(\mathbf{x} = \mathbf{e}\_k) = \prod_{j=1}^K \lambda_j^{x_j} = \lambda_k ~~~~ (31)

Cách viết này được sử dụng rất nhiều trong Machine Learning.