Sunday, September 2, 2012

Bayes và tần suất trong suy diễn thống kê (2): suy diễn và thuật toán

2. Suy diễn và thuật toán

Ta vẫn chưa thể đi thẳng vào câu chuyện Bayes chọi tần suất. Trước hết, cần định nghĩa thế nào là suy diễn thống kê (hay học thống kê)?

Một định nghĩa giản dị: Suy diễn thống kê là quá trình chắt lọc ra các quy luật từ dữ liệu thực tế.

Có hai đại lượng quan trọng trong suy diễn thống kê. Dữ liệu thực tế sẽ được biểu diễn bởi biến  X , còn quy luật hay cơ chế đằng sau dữ liệu quan sát được sẽ được biểu diễn bằng  \theta .  X  \theta nằm trong các không gian đã định trước, \mathcal{X}\Theta. Cụ thể hóa các không gian này rất quan trọng, nhưng ta tạm thời chưa nói nhiều về chúng.

Một suy diễn thống kê sẽ được biểu diễn bởi một hàm số của dữ liệu,  T(X) \in \Theta , lấy giá trị trong tập hợp \Theta. Chúng ta giả dụ rằng \theta là biểu diễn của cơ chế để sinh ra dữ liệu X. \theta là chân lý mà ta có thể không biết được chắc chắn. Nhưng thông qua T(X) ta muốn ước lượng, suy xét được \theta càng chính xác tỉ mỉ càng tốt. Vì T(X) là một hàm số áp dụng vào dữ liệu, nó còn được gọi là một thống kê.

Ví dụ thứ nhất: Tôi muốn biết tuyến đường Kim Mã ở Hà nội vào tầm 7 giờ sáng có hay bị tắc đường hay không. Bà hàng xén ở ngõ 199A Kim Mã cho tôi biết tình trạng đường xá lúc 7 giờ sáng trong suốt một năm vừa rồi. Dữ liệu như vậy là một dãy nhị phân X_1, \ldots, X_n, \; n = 365, trong đó X_i = 1 nếu hôm i đường tắc, và X_i = 0 nếu đường thông. \theta ở đây có thể coi là xác suất bị tắc đường Kim Mã lúc 7 giờ sáng (giả sử rằng đây là một đại lượng có ý nghĩa!). Vậy hàm T(X) là gì? Để ước lượng \theta, ta có thể lấy giá trị trung bình của các X_i trong suốt năm vừa qua:

T(X) = (X_1 + \ldots + X_n)/n.

The định luật số lớn trong lý thuyết xác suất, với một số điều kiện kỹ thuật nhất định, ta biết rằng T(X) tịnh tiến đến xác suất chân lý \theta nếu n càng lớn. Song, đây không phải là một thống kê hữu ích duy nhất. Ta có thể cảm nhận rằng tình trạng đường xá vào thứ 2 sẽ rất khác với thứ 6 hay cuối tuần. Mùa hè có thể khác với mùa đông. Như vậy nên chăng chỉ nên lấy thống kê cho các ngày cụ thể trong tuần để tìm ra xác suất tắc đường cho tửng ngày, giả dụ khái niệm xác suất này có ý nghĩa?

Một người khi đối đầu với một vấn đề cụ thể như thể này sẽ phải tìm cách đưa ra các thống kê thích hợp nhất cho vấn đề đặt ra. Công việc của những người nghiên cứu thống kê và học máy là tìm ra các phương pháp tổng quát để rút ra được các thống kê T(X) hữu ích cho các nhiều vấn đề và dạng dữ liệu càng tốt.

Đối với các vấn đề phức tạp hơn thì việc tìm kiếm ra các thống kê thích hợp không hề đơn giản. Hàm T(X) không thể tính được bằng tay mà phải cần sự trợ giúp của thuật toán.

Ví dụ thứ 2: Một dữ liệu là một bản email (gồm nội dung thư cũng như các thông tin người gửi, người nhận, thời gian gửi, v.v.) Chúng ta đã có n mẫu ở dạng cặp X = (x_i, y_i)_{i=1}^{n}. y_i \in \{0,1\} là nhãn của email x_i, theo nghĩa là y_i = 1 nếu x_i được cho là thư rác, 0 nếu không phải. Đây là bài toán phân lớp (classification) quen thuộc trong supervised learning.

Chúng ta muốn học quy luật \theta, ở đây được định nghĩa một hàm số cho phép chúng ta phân biệt thư rác hay không, đối với các bản email chưa được gán nhãn. Như vậy \Theta là không gian các hàm số có giá trị nhị phân: \Theta = \{f: \mathcal{X} \rightarrow \{0, 1\}\}. Để ước lượng được \theta \in \Theta, ta có thể chọn một thuật toán nổi tiếng như thuật toán Support vector machines để rút ra một hàm phân loại biểu diễn như sau:

T(X)(x) = \sum_{i=1}^{n} \alpha_i y_i \langle x_i, x\rangle.

Chi tiết của công thức này không quan trọng. Điều cần để ý ở đây là T(X) là một hàm số áp dụng cho một lá thư mới x. Các tham số \alpha_i của hàm số này không thể tính bằng tay, mà là giải pháp của một bài toán tôi ưu bậc hai cho n biến. Phải cần một thuật toán tương đối tinh xảo để tìm ra giải pháp này, đặc biệt khi số emails n rất lớn. Như vậy T(X) không còn là một thống kê giản đơn nữa, mặc dù nó vẫn là một hàm số của dữ liệu.

Ví dụ thứ 3: Đây là bài toán phân cụm (clustering) quen thuộc trong unsupervised learning. Một dữ liệu là một văn bản tiếng Việt (là một dãy các từ vựng có mặt trong từ điển tiếng Việt). Chúng ta đã có n mẫu văn bản X = (x_i)_{i=1}^{n}. Chúng ta cho rằng các văn bản này có thể được phân cụm thành các cụm (cluster) văn bản nói về các chủ đề khác nhau, dẫu chúng ta không biết các chủ để này là gì. Như vậy, \theta là tham số để biểu diễn các cụm. Để ước lượng ra \theta, ta có thể sử dụng một thuật toán thông dụng là thuật toán k-means, giả dụ rằng ta đã biết trước số cụm cần phải phân ra là bao nhiêu.

Thuật toán k-means lấy đầu vào là tập dữ liệu X, và đầu ra chính là một thống kê T(X). T(X) không thể viết ra dưới dạng một phương trình gọn ghẽ — ta chỉ có thể mô tả thuật toán, rồi để nó chạy đến khi hội tụ. Nhưng ta biết rằng (có thể chứng minh được rẳng) T(X) cho ta một ước lượng “tốt” của \theta, thông qua đó ta biết được về bản chất của các cụm văn bản, và cách gián nhãn cho từng văn bản x_i cụ thể.

Nói tóm lại, suy diễn thống kê là quá trình để tìm ra được một thống kê T(X), một hàm số của dữ liệu, thông qua đó cho ta ước lượng về một quy luật, cơ chế chân lý \theta \in \Theta.

Ngày xưa khi ngành thuật toán, cấu trúc dữ liệu nói riêng và khoa học máy tính nói chung chưa phát triển, các thống kê T(X) được sử dụng thường rất đơn giản để có thể tính toán được dễ dàng. Đây cũng là nghĩa đen của chữ “thống kê” mà chúng ta vẫn nghe nói và sử dụng thường ngày, ám chỉ các phép đếm, cộng trừ, nhân chia, lấy trung bình ngắn gọn v.v.

Về mặt lý thuyết, không có gì ràng buộc phạm vi của thống kê T(X) mà một nhà phân tích thống kê có thể tưởng tượng ra để rồi chắt lọc. Nếu dữ liệu càng thú vị và phức tạp, các quy luật, cơ chế \theta cũng sẽ được biểu diễn trong các không gian càng phức tạp hơn (về mặt toán học). Khi đó, các giải pháp của suy diễn thống kê chỉ có thể tìm được thông qua sự trợ giúp của các thuật toán tinh xảo hơn. Một quá trình để tính ra thống kê T(X) chính là một giải thuật học máy (learning algorithm).

Nếu chân lý quá phức tạp thì không thể có một thuật toán hiệu quả. Khi đó ta sẽ buộc lòng tìm một giải pháp xấp xỉ tốt nhất có thể được trong phạm vi tính toán cho phép. Đây chính là sự kết hợp rất tự nhiên giữa ngành khoa học máy tính và suy diễn thống kê mà chúng ta nhắc tới ở bài trước.


Link to full article

No comments:

Post a Comment