Bayes và tần suất trong suy diễn thống kê

Bayes và tần suất trong suy diễn thống kê

(Tác giả: Nguyễn Xuân Long – Nguồn: procul.org/blog)

1. Một chút lịch sử

Hầu như những ai có một chút liên hệ với thống kê và học máy đều đã từng nghe nói đến sự khác biệt và đối chọi giữa phương pháp Bayes và phương pháp tần suất. Những người nghiên cứu lý thuyết và ứng dụng của thống kê đều có lúc phải đối đầu với một sự lựa chọn giữa Bayes và tần suất. Bản chất của sự khác biệt này là gì?

Đây là câu chuyện rất dài và sẽ là nội dung của loạt bài này. Sự khác biệt giữa hai phương pháp Bayes và tần suất có thể được mô tả từ rất nhiều góc độ khác nhau, đi từ những cái rất cốt lõi cho đến những thứ rất râu ria. Với dân nghiên cứu thống kê và học máy, với một vấn đề cụ thể đôi khi sự lựa chọn giữa hai phương pháp suy diễn này lại dẫn đến các giải pháp khác biệt với kết quả suy diễn không thống nhất.

Bayes chọi tần suất cũng là một chủ đề thú vị lúc trà dư tửu hậu. Đôi khi với kết quả “đẫm máu”. Chuyện này có thật: Khoảng 15 năm về trước ở khoa tôi có một ông làm về phương pháp Bayes, còn ông kia chủ trương theo tần suất. Cả hai ông này rất uy tín trong ngành (ông Bayes lúc đó là trưởng khoa, còn ông tần suất đã từng làm editor cho Annals of Statistics). Thế mà trong một bữa tiệc vui vẻ của toàn khoa ở nhà riêng một đồng nghiệp, trong lúc ngà ngà nói chuyện Bayes chọi tần suất một hồi thế nào mà hai bác xông ra đánh nhau thật, làm mọi người phải xô ra ngăn.

Mặc dù phương pháp Bayes và tần suất có thể truy về Thomas Bayes (thể kỷ 18) và Pierre-Simon Laplace (thế kỷ 19), sự đối chọi của hai trường phái chỉ thực sự thành hình ở đầu thế kỷ 20, khi suy luận thống kê được xây dựng trên một nền tảng toán học tương đối chắc chắn với công của Ronald Fisher, Karl Pearson, Jerzy Neyman, De Finetti và Abraham Wald và một số nhà tiên phong khác. Trong một thời gian dài từ trước thế chiến hai, phương pháp tần suất được phát triển rất mạnh. Đến tận khoảng 15 năm trở về trước sự lựa chọn giữa Bayes và tần suất còn ảnh hưởng đến cơ hội nghề nghiệp. Tần suất thắng thế và thống trị khắp các khoa thống kê ở Mỹ, từ Berkeley, Stanford đến Harvard, Chicago. Phương pháp Bayes chỉ được nghiên cứu ở vài khoa thống kê nhỏ hơn (khi đó) như Carnegie Mellon và Duke. Thay vì sử dụng phương pháp Bayes hay tần suất, bạn sẽ được (bị) gọi là nhà thống kê Bayes hay nhà tần suất. Không có chỗ dung dưỡng cho cả hai phương pháp đối với từng người. Ở châu Âu về cơ bản tần suất cũng thống trị, nhưng có một số trường phái theo đuổi Bayes rất kiên định ở Italy và Anh.

Ngày nay sự đối chọi này bớt phần khốc liệt máu lửa hơn. Khoa học thống kê cũng bớt dần tính triết lý giáo điều mà dịch dần về tính thực dụng do phải đối đầu với các vấn đề có dữ liệu phức tạp và khổng lồ. Mèo trắng hay mèo đen đều được miễn là bắt được chuột. Phương pháp Bayes được từng bước tiếp nhận và ưa chuộng, và được dạy và học ở hầu hết các khoa thống kê. Sự phát triển và giao thoa với khoa học máy tính cũng làm thay đổi một cách bản chất về các nền tảng lý thuyết của suy diễn thống kê. Ngoài cái kiềng tần suất và Bayes, bây giờ còn có một cái kiềng nữa là sự phức tạp của giải thuật học (learning algorithm). Hiện tại chưa có một lý thuyết hoàn chỉnh để dung hòa được sự tương tác và đối chọi giữa ba cái kiếng này.

Mặc dù vậy, nhưng khác biệt căn bản giữa Bayes và tần suất vẫn còn nguyên. Và với những đột phá trong vài thập niên gần đây về khía cạnh thuật toán và những vấn đề mở về sự giằng co giữa hiệu quả thống kê và hiệu quả và thuật toán, câu chuyện về Bayes và tần suất không những vẫn còn nóng hổi tính thời sự, mà còn mang nhiều sắc thái mới vô cùng thú vị.

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 ánh xạ đi từ dữ liệu đến tập hợp các quy luật có thể \Theta, X \mapsto T(X) \in \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) tiệm cậ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 \{-1,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, -1 nếu không phải. Đây là bài toán phân lớp (classification) quen thuộc trong học máy có giám sát (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 \{-1, 1\}\}. Để ước lượng được \theta \in \Theta, ta có thể chọn một thuật toán khá quen thuộc, 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) = \textrm{sign} \left (\sum_{i=1}^{n} \alpha_i y_i \langle x_i, x\rangle \right ).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 lĩnh vực học không giám sát (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.

———–&&———–

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: