12/08/2018, 16:09

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

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 ...

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.

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)(Ω,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
  • F⊆2ΩF subseteq 2^{Omega}F2Ω - (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
  • PPP là xác suất (hoặc phân phối xác suất) của sự kiện. PPP ánh xạ một sự kiện E∈FE in FEF vào trong một giá trị thực p∈[0;1]p in left [ 0;1 ight ]p[0;1]. Ở đây chúng ta gọi p=P(E)p = P(E)p=P(E) là xác suất của sự kiện EEE

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 ight }$$ - 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 ight }, left { 2, 4, 6 ight }, Omega ight }$$ 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 ight }, left { 2, 4, 6 ight }, Omega ight }F=2Ω={,{1,3,5},{2,4,6},Ω}. 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 FFF. Khi đã định nghĩa dược không gian sự kiện FFF 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 x∈F,  P(x)≥0x in F,~~ P(x)geq 0xF,  P(x)0
  • Xác suất toàn cục - trivial event P(Ω)=1P(Omega) = 1P(Ω)=1
  • Tính cộng - additivity tức là với mọi x,y∈Fx, y in Fx,yF nếu như x∩y=∅xcap y= varnothingxy= thì ta có P(x∪y)=P(x)+P(y)P(xcup y) = P(x) + P(y)P(xy)=P(x)+P(y)

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 XXX 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 = egin{cases} & 1 ext{ if i is odd} & 0 ext{ if i is even} end{cases} ~~(1) X={1 if i is odd0 if i is even  (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 XXX biểu diễn như biểu thức (1)(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) P(X=a)  or  PX(a)  (2)

Công thức (2)(2)(2) biểu diễn xác suất của một biến ngẫu nhiên XXX tại giá trị aaa. 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 XXXVal(X)Val(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) xp(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 ight )t(0;180) 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∈(0;+∞)t in left ( 0; +infty ight ) t(0;+) chẳng hạn. Khi đó hàm mật độ xác suất của nó trên toàn miền giá trị DDD 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) Dp(x)dx=1  (4)

Note: nếu xxxBNN liên tục thì p(x)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)(4)

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 xxx biết rằng biến ngẫu nhiên yyy có giá trị y^* được ký hiệu là p(x| y = y^*) (đọc là probability of xxx given that yyy 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)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 = 9y=9, xác suất p(x∥y=9)p(x | y = 9)p(xy=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)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)p(x | y = 9) p(xy=9) cũng lớn nếu p(x,y=9)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)xp(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)p(x,y=9) cho tổng của toàn hàng này. Tức là:

p(x∥y=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)} p(xy=9)==xp(x,y=9)p(x,y=9)=p(y=9)p(x,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)(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(x∥y)=p(x,y)p(y)   (10) p(x |y) = frac{p(x, y)}{p(y)}~~~ (10) p(xy)=p(y)p(x,y)   (10)

Tương tự:

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

và ta sẽ có quan hệ:

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

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

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

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

Công thức (11)(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(x∥y)p(x |y)p(xy)p(y∥x)p(y | x)p(yx):

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

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

displaystyle egin{eqnarray} p(y | x) &amp = &amp frac{p(x |y) p(y)}{p(x} &amp (15) &amp = &amp frac{p(x |y) p(y)}{sum_{y} p(x, y)} &amp (16) &amp = &amp frac{p(x |y) p(y)}{sum_{y} p(x | y) p(y)} quad &amp (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)(17) ta có thể thấy rằng p(y∥x)p(y | x)p(yx) hoàn toàn có thể tính được nếu ta biết mọi p(x∥y)p(x | y)p(xy)p(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(x∥y)p(mathbf{x} | y)p(xy) 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)(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 xxxyyy dưới dạng xác suấ

0