machine learning hay statistics? P1

Machine learning hay statistics? P1

Khi tôi đang học đại học ở Postech và tìm một đề tài nghiên cứu tốt nghiệp, tôi làm quen với machine learning một cách tự nhiên. Mặc dù thích cả về lý thuyết thuật toán, nhưng ngày đó machine learning nghe sexy hơn nhiều. Tưởng tượng xem, tôi học ngành máy học (hay học máy nhỉ). Những năm 90 vẫn còn đọng lại dư âm cái hype của những neural networks và genetic algorithms bắt đầu từ thập niên 80. Ôi chà, những thuật toán có cảm hứng từ sinh học. Những lãng mạn từ “2001: A space odyssey” và MIT Robotics lab của Rodney Brook… Ông thầy vung vẩy tờ bìa Tạp chí Nature với cái tít “thế kỷ của brain science“, và tất nhiên tin học sẽ luôn là xe đò trong các khoa học tự nhiên và ứng dụng. This is it! Neural networks và genetic algorithms. Có rất nhiều tạp chí và conference, thậm chí cả PhD program được tập trung vào những lĩnh vực này. Thậm chí có rất nhiều người đã cao giọng khái quát hóa NNs và GAs thành các “paradigm”, “architecture” của trí tuệ nhân tạo trong tương lai. Rất nhiều chương trình nghiên cứu, như của thầy hướng dẫn thời undergraduate của tôi, chỉ xoay vần khá chật vật quanh mô hình này.

Ngày nay, NNs và GAs không còn nằm ở trung tâm của nghiên cứu machine learning hay artificial intelligence nữa. Một cách công bằng, NNs và GAs có thể coi là những dạng mô hình học hữu ích trong nhiều áp dụng thực tế. Nhưng chúng không phải là paradigm tổng quát gì cả, mà cũng có những hạn chế như rất nhiều mô hình thống kê khác. Không có gì bí ẩn tại sao các thuật toán NNs hay GAs lại work và không work. Thế mạnh và yếu đều được hiểu một cách khá cặn kẽ từ nền tảng thống kê cổ điển và hiện đại (classical và modern statistics), lý thuyết xác suất, lý thuyết xấp xỉ, v.v.

Có lẽ đóng góp lịch sử lớn nhất của NNs và GAs là sự hấp dẫn, mới lạ và sự hiệu quả của những phương pháp này. Chúng thu hút một số lượng lớn rất nhiều các kỹ sư, các nhà khoa học thực nghiệm và tính toán, vật lý lý thuyết, … tất cả những ai phải xử lý số lượng dữ liệu lớn và nhiều chiều. Những người này đã quan tâm đến và góp phần phát triển tiếp machine learning. Họ thường không ngại ngần gì với những data sets khổng lồ. Họ cần những giải pháp computation hữu hiệu, nhưng không thích quá nhiều assumption cứng nhắc về dữ liệu. Họ thực dụng, và không bị lệ thuộc vào các mô hình thống kê cổ điển giáo điều. Họ quả cảm và năng động chứ không máy móc như các nhà thống kê cổ điển. Và cũng giống như fashion, machine learning vẫn tiếp tục sexy, nhưng cái hype không còn là NNs hay GAs mà chuyển sang các mô hình thống kê khác, như graphical models (Bayes nets), support vector machines, các mô hình nonparametric Bayes, v.v.

Đó là một câu chuyện sơ lược về machine learning. Các ứng dụng của machine learning thường thú vị và bất ngờ, hương pháp áp dụng thường là những heuristic thông minh, nhưng lại ad hoc. Để phân tích và phát triển tiếp thì machine learning phải dựa vào nền tảng vững chắc của thống kê. Nếu bạn là một sinh viên đại học hoặc bắt đầu học cao học và muốn nghiên cứu về machine learning, thì phải học xác suất thống kê cho vững. Nếu không có thể bị chóng mặt bởi một đống fashionable algorithms của nó.

Vậy về mặt tri thức, machine learning và thống kê khác nhau ở điểm gì?

Đối với tôi, không hề có sự khác biệt mà chúng là một. Có thể nói đây là vision mà tôi chia sẻ với không ít người khác. Theo tôi, cả hai ngành đều cùng phát triển và sẽ hội tụ về thành một điểm trong tương lai. Gọi nó là statistical machine learning, hoặc computational statistics gì đều được. Đóng góp của statistics có tính chất nền tảng trong việc xử lý uncertainty, xử lý noise trong dữ liệu. Đóng góp của machine learning nói riêng và KHMT nói chung là sự chú trọng đến khía cạnh thuật toán và hiệu quả tính toán.

Trước đây thống kê cổ điển không chú trọng nhiều đến khía cạnh computation này, nên các sản phẩm của họ (dưới dạng statistical tests hoặc linear estimation procedures) thường có tính chất về computation rất đơn giản. Do đó chúng chỉ áp dụng được cho các data set rất nhỏ, mặc dù chúng có hiệu quả thống kê rất tốt về mặt lý thuyết; hoặc nếu data set lớn thì chỉ hữu ích khi chúng tuân thủ theo các assumption rất khắc nghiệt. Nhưng sự phát triển không ngừng của KHMT và những thành công của machine learning là cho các nhà thống kê học giật mình, và họ bắt đầu giang rộng vòng tay đón nhận machine learning như một lĩnh vực tiên phong trong statistics, sẵn sàng đón nhận những thách thức về computation bên cạnh độ hiệu quả về thống kê.

Quả thực sự phát triển của machine learning như thổi một luồng gió mới vào chính ngành statistics, làm cho nó sexy hơn. Một mặt khác, nhưng người làm về machine learning cũng cảm thấy cần thiết phải quay lại với những nền tảng của statistics để hiểu và gọt rũa các phương pháp heuristic của họ một cách hoàn chỉnh, và bớt đi phần ad hoc hơn.

Rồi bạn sẽ thấy ngày càng ít những phát biểu kiểu như: “My approach is neural network based, not a statistical one“. Trái lại bạn sẽ nghe thấy các nhà thống kê học nói nhiều hơn đến “algorithms” và “data structure”, còn dân KHMT sẽ nói nhiều đến “statistical analysis”. Bạn nào học machine learning khi trả lời phỏng vấn visa ở lãnh sự quán Mỹ, muốn tránh phiền phức với các chuyên ngành nhạy cảm (như AI, machine learning, vision, robotics,…) có thể thật thà theo giải pháp của tôi: nghiên cứu về statistical computer science Nói với tay lãnh sự rằng, it’s fun, it’s sexy, but not at all sensitive 🙂

ác Long,
Tôi quả thật muốn tìm hiểu về
– Sự áp dụng của Log-linear model, tôi không chắc rằng nó và Logistic Regression là một hay không, chỉ biết nó có tên gọi khác là Maximum Entropy. Sự khác biệt giữa Log-linear model và Bayes model được ET Jaynes đề cập đến trong “Probability: The logic of science”, tuy nhiên quả thật tôi cũng thấy rất mơ hồ về sự khác biệt này. Gần đây trong ngành Statistical Machine Learning, LL Model outperformed Bayes model, với sự tiên phong của FJ Och và Hermann Ney, hiện nay FJ Och đang làm leader nhóm Machine Translation của Google. Tuy nhiên, khi tôi nói chuyện với Bill Byrne http://mi.eng.cam.ac.uk/~wjb31/, anh ấy tỏ vẻ không tin vào LL model, và nói rằng: “Nhiều người cứ hay nói đến Feature Function trong LL Model, nhưng not many ones understand what a Feature Function is”. Tôi cho rằng nhiều researchers của Statistical Machine Learning (theo thuật ngữ của bác) vẫn có cái nhìn hoài nghi với LL model. Cá nhân tôi thì cho rằng LL Model là sexy (mượn lời của bác Long)
– Sự phát triển mạnh của Computational Neuroscience có đem lại điều gì mới mẻ cho Statistical Machine Learning không? Tôi mới để ý đến Comp. Neuro gần đây, và vẫn chưa nắm được các ý chính của nó.

@Cuong: Loglinear model va logistic regression đều thuộc họ GLIM (generalized linear models), mỗi thứ sẽ thích hợp với một việc khác nhau. Các sách basic về statistical models đều cover cả.

Re: log-linear model và Bayes model. Tôi chưa đọc Jaynes’s book nên không comment. Tuy nhiên nếu bạn muốn nói Bayes model là Bayesian models? hay generative Bayesian models? Và log-linear model là một ví dụ cụ thể của discriminative model? Nếu câu hỏi là “Bayesian generative models vs. discriminative models” thì câu trả lời của tôi là “there is no answer”. Tôi không tin vào chuyện một mô hình tốt hơn một mô hình khác. Đây là một vấn đề practical. Tùy thuộc vào data và domain knowledge. Còn Bayesian vs. frequentist methodology? Cũng không có câu trả lời đâu. Tùy vấn đề mà cách nhìn này hữu ích hơn cách kia. Trừ khi bạn nói chuyện triết lý (mà có vẻ như đây là cái mà Jaynes hướng tới). Tôi nhìn nhận chuyện này một cách pragmatic.

LL model is sexy? Tôi không nghĩ là như vậy. Với tôi đó chỉ là một model, không hơn không kém. Bài blog trên tôi nói đến sexy theo nghĩa perception chung của rất nhiều người. Nhưng kỳ thực cá nhân tôi không nghĩ là có bất kỳ một mô hình nào là sexy cả, mặc dù có thể có một số machine learning researchers (hoặc rất nhiều) hay chạy theo một mô hình nào đó mà họ cho là sexy. Một câu nói hay được nhắc là, all models are wrong, but some are useful. Nhưng tôi cũng xin chua thêm là, some are useful *some time*.

Re: Computational Neuroscience: Tôi coi đây là một application domain thú vị để model neural data, và useful theo nghĩa đó. Có thể có insight từ neuroscience được dùng để giúp cho việc tạo ra models thú vị hơn, giải thích được data và dùng để predict tốt hơn. Quả thực có khá nhiều collaboration giữa dân neuroscience và dân statistics/machine learning. Nhưng tôi không kỳ vọng là neuroscience sẽ tạo ra cái mới mẻ ngược lại cho SML.

Cảm ơn bác Long, tôi sẽ quay lại discuss chi tiết hơn sắp tới.

Từ chuyện bác nói “Bayesian vs. frequentist”, tôi liên tưởng đến một thời tôi đọc ở đâu đó về Probability vs. Fuzzy, Lại nhân chuyện bác nói “All models are wrong”, tôi cho rằng Fuzzy hay Prob cũng chỉ là cách ta model the real world thôi.

Nhân tiện tôi thử rephrase lại câu trên thành “All models are wrong, some are more useful than the others on some applications”.

Tôi tạm nghĩ rằng E.T. Jaynes chỉ discuss Maximum Entropy vs. Bayes method, trên bài toán sau:

“We have a feature vector X which we want to assign a label Y.
Bayesian method will try to estimate p(Y|X)=p(X|Y).p(Y)/p(X), i.e. we base on the datapoint’s likelihood p(X|Y) to find its posterior probability p(Y|X).

The maximum entropy method will try to estimate directly p(Y|X)=\frac{exp[\sum_{m=1}^M{lambda_m * H(Y,X)}]}{\sum_Y'{exp[\sum_{m=1}^M{lambda_m * H(Y’,X)}]}}, that is, to try to describe p(Y|X) discriminately using the “feature functions” H(Y,X)”

Đó là phần cơ bản nhất của sự hiểu của tôi về mối quan hệ Maximum Entropy vs. Bayesian Model. 2 models này chắc nằm trong mối quan hệ so sánh discriminative/generative. Tên “Maximum Entropy” được Jaynes dùng trong “The logic of science”, và được dân NLP dùng, ngoài ra nó đôi khi được gọi với tên Log-Linear (trong các papers liên quan đến ngành Machine Translation)

Một teacher của tôi nói rằng: “They are stupid calling log-linear as Maximum Entropy”, tôi thì chưa hiểu sự stupidity này.

Tôi cho rằng Log-Linear sexy hơn Bayesian (generative?) model, vì

a. Nó tổng quát hơn BG ở chỗ: các feature functions H đều có thể là p(X|Y) hoặc p(Y)
b. Nó cho phép dùng weight parameters, trong khi tích p(X|Y).p(Y) thì 2 weight đó đều là 1 (hình như ta cũng có thể dùng weight khác 1 với 2 thành phần của tích này, mà mô hình vẫn được gọi là Bayesian Generative model, tôi không rõ lắm)

Mô hình Log-Linear này được trained thế nào thì tôi vẫn chưa hiểu rõ, chỉ đọc được rằng ta có thể “train as many as 10^6 feature functions” (In particular, the use of discriminative training techniques based on millions of features seems to be promising http://www.elda.org/tcstar-workshop_2006/pdfs/keynotes/tcstar06_och.pdf)

Rất có thể tôi đã lẫn lộn giữa các khái niệm, so sánh không ngang hàng nhau ở đâu đó. Mong bác chỉ bảo.

Hi Cường — log-linear model chỉ là một mô hình khá đơn giản và phù hợp với một số domain như text hay dữ liệu dạng string. So sánh log-linear model với các mô hình Bayes là khập khiễng, giống như so sánh gà có đuôi tím ở rừng U Minh với các loài vât sống ở rừng Cúc Phương vậy. Các mô hình generative hierachical Bayes rất phức tạp hơn nhiều. Các mô hình discriminative như log-linear chỉ là một layer, nhưng ngày nay người ta cũng có những mô hình discriminative có nhiều layer hơn.

Dù dùng discriminative models hay generative models thì ngày nay đều có thể deal được với số lượng features rất lớn. Log-linear models có thể có nhiều features chính vì nó đơn giản và chỉ có một layer, nên về mặt computation thì rất hiệu quả. Nhưng trong nhiều ứng dụng thì nó không đủ để capture những quan hệ phức tạp hơn. Khi đó phải đòi hỏi đến hierchical models (generative hay discriminative gì cũng được).

Thầy Cường nói đúng đó: It’s stupid naive to say log-linear model as maximum entropy. Mặc dù log-linear model có tính chất appealing là đó chính là mô hình có maximum entropy nếu ta có moment constraints. Nhưng không phải lúc nào đó cũng là mô hình tốt. Đó là mô hình tối giản khi ta không còn thông tin nào khác tốt hơn về data ngoài các moment constraints. Nhưng như ai đó trên đã nói, vấn đề là moment với các feature nào. Đó là cả một vấn đề. Và đôi khi, ta có những knowledge hữu ích hơn thì sao. Cái nhìn lành mạnh, với tôi, là coi maximum entropy là một phương pháp để estimate mô hình. Nhưng còn có các phương pháp estimation khác nữa, gom chung là M-estimators (maximizing a risk functional) mà maximum entropy chỉ là một phương pháp đặc biệt trong đó. Nhiều người chỉ biết mỗi maximum entropy method nên họ chỉ dùng nó và tán dương nó lên thành “principle”, v.v.