On the varieties of machine learning

June 7, 2011
  1. Supervised Learning (Induction Learning): train on large, labeled data sets drawn from same distribution as testing data
  2. Semi-supervised Learning (Induction Learning): same as above but, add large unlabelled or weakly labeled data sets from same domain.
  3. Transfer Learning (Induction Learning): Transfer learning is what happens when someone finds it much easier to learn to play chess having already learned to play checkers; or to recognize tables having already learned to recognize chairs; or to learn Spanish having already learned Italian.
  4. Transductive Learning: Given unlabeled test data during training, transfer the information from labeled examples to unlabeled.
  5. Self-taught Learning:…

Machine learning formalisms for classifying images of elephants and rhinos. Images on orange background are labeled; others are unlabeled. Top to bottom: Supervised classification uses labeled examples of elephants and rhinos; semi-supervised learning uses additional unlabeled examples of elephants and rhinos; transfer learning uses additional labeled datasets; self-taught learning just requires additional unlabeled images, such as ones randomly downloaded from the Internet. [Rajat Raina ICML'07].


Thiết kế một course học Machine Learning?

February 10, 2011

Machine Learning (máy học) là một lĩnh vực đa ngành giao thoa với  nhiều ngành, chẳng hạn như statistics, optimization, information theory, data mining. Mặt khác, ML đang phát triển rất nhanh. Những nghiên cứu trong Computer Vision hiện giờ phụ thuộc rất nhiều vào ML. Cho nên, muốn có những nghiên cứu state-of-the-art thì việc trang bị một kiến thức khá tốt về ML nên làm và không thể tránh khỏi. Vấn đề còn lại là làm sao học ML hiệu quả khi đang ở Việt Nam, và thậm chí ở nước ngoài :D ? Bệnh nghề nghiệp lại bắt mình suy nghĩ thiết kế một course học về ML như thế nào là hợp lý. :)

Theo kinh nghiệm bản thân, để học ML thì trước hết nên ôn lại một số kiến thức về Linear Algebra và Vector Calculus hoặc Analysis.

  • Linear Algebra: khái niệm matrix từ bài toán giải hệ N phương trình tuyến tính N ẩn, column space, row space, transpose, inverse, determinant, matrix multiplication (vô cùng quan trọng trong các biến đổi ma trận, thực tế có tới 4 cách biểu diễn nhân 2 ma trận với nhau), matrix derivatives, trace, rank, eigenvalue problem, eigen-decomposition, singular value decomposition (SVD), span (cảm sinh), khái niệm trực giao, basis space, pseudo-inverse matrix. Hầu hết các kiến thức này được gói gọn trong các phụ lục của nhiều cuốn textbook hiện nay. Tuy nhiên, tốt nhất là tham khảo từ cuốn Introduction to Linear Algebra hoặc Linear Algebra and Its Applications của Gilbert Strang. Ví dụ như các chương 1.Matrices and Gaussian Elimination; 2.Vector Spaces and Linear Equations; 3.Orthogonality; 4.Eigenvalues and Eigenvectors; 6.Positive Definite Matrices. Ba chương đầu rất cơ bản. Chương 4 cần thiết cho các nghiên cứu có sử dụng spectral method, phân tích thành phần cơ bản (PCA), dimensionality reduction. Chương 6 cần thiết cho kiến thức về optimization. Ngoài ra ông này có loạt OCW video lectures xuyên suốt cuốn sách. Nếu muốn tìm hiểu trên bình diện implementation các thuật toán trên ma trận thì cuốn Numerical Recipes hay Matrix Computations đều hữu ích. Tuy nhiên, phần lớn các thư viện LA đã rất optimized rồi.
  • Calculus/Analysis: Hai thứ này có giao thoa nhau một số phần cho nên tham khảo một trong hai cái này đều được. Một số khái niệm cần thiết: derivatives, integrate, limit, topology, set theory, divergence, Lagrange multiplier. Trong các năm phổ thông thì học sinh đã được làm quen với các khái niệm này rồi, tuy nhiên dừng lại ở vector calculus (3-chiều). Các khái niệm về topology  cũng không được làm rõ. Cập nhật các kiến thức này khá dễ dàng, tuy nhiên mỗi thứ một ít để vừa đủ và không quá nhiều thì cũng cần lựa chọn cẩn thận một tí. Cuốn Vector Calculus, Linear Algebra, and Differential Forms: A Unified Approach là một lựa chọn tốt cho những ai “quên gần hết”. Cuốn sách diễn giải khá chi tiết, nhưng đôi chỗ hơi rườm rà.
  • Optimization: ở một mức độ nào đó thì Machine Learning cũng có thể coi là một bài toán tối ưu. Gọi đầu vào X \in \mathbb{R}^p là một biến ngẫu nhiên, và đầu ra Y \in \mathbb{R} là một biến ngẫu nhiên có một phân phối ẩn P(X,Y) với X mà ta không biết. Tác vụ học đòi hỏi tìm kiếm một hàm f(X) để dự đoán Y một khi cho biết X. Hàm tổn thất (loss function) \mathcal{L}(Y, f(X)) là một định nghĩa đặt ra để ước lượng mức độ sai lệch giữa giá trị dự đoán và giá trị đáng lẽ ra. Nếu phát biểu ở dạng bài toán tối ưu thì ta có  \underset{f}{\text{argmin}}\mathcal{L}(Y, f(X)). Optimization thực sự cần thiết cho ML. Thực ra chúng ta cũng đã làm quen với bài toán tối ưu trong thời phổ thông, khi được giao giải các bài toán tìm cực trị bằng cách khảo sát đạo hàm. Bài toán tối ưu trong thực tế không theo một dạng chuẩn dễ giải (như một hàm tuyến tính hai một hàm bậc hai – quadratic form), đồng thời các cực trị toàn cục cũng khó tìm hơn (tồn tại nhiều cực trị cục bộ). Optimization phổ thông có lời giải đóng (closed form/analytical form), trong khi các bài toán tối ưu trong thực tế thì phải dùng các phương pháp số và xấp xỉ. Chuỗi Taylor là một ví dụ quen thuộc. Sách cho Optimization có thẻ kể ra gồm Convex Optimization của Stephen Boyd (trọng tâm là tối ưu hàm lồi, cách trình bày thiên cho các sinh viên rành toán), Practical Methods of Optimization của Fletcher (tối ưu nói chung, khá tổng quát, nhưng trình bày hơi chằng chịt khó đọc), Practical Optimization: Algorithms and Engineering Applications (là explained version cuốn sách của Fletcher nhưng dễ đọc hơn, tuy nhiên cũng “linh tinh” hơn), và Optimization của Kenneth Lange (một cuốn sách nhỏ có tóm tắt analysis, convexity, và các phương pháp tối ưu nói chung). Nhìn chung, optimization là một chủ đề không khó nếu được đào tạo bài bản (rất tiếc là chương trình CNTT không có môn này). Một sinh viên giỏi lập trình mà học thêm optimization thì như mọc thêm cánh trong những nghiên cứu về ML.

Sau khi đã nắm được cơ bản ba nhóm kiến thức trên rồi thì ta có thể nhào vô cày xới hai cuốn sách Pattern Recognition and Machine Learning của Bishop và Elements of Statistical Learning của Hastie, Tibshirani và Friedman. Có thể nói không ngoa rằng hai cuốn sách này hiện rất up-to-date và có rất nhiều những kiến thức được sử dụng trong các paper hiện thời. Cuốn PRML chú trọng vào các phép biến đổi trong công thức, giúp ta hiểu trên khía cạnh toán học. Cuốn ESL cung cấp cái nhìn qua vô số các ví dụ thống kê. Hai cuốn sách này bổ túc cho nhau tuyệt vời. Ngoài ra thì ta còn có vài kênh cập nhật kiến thức khác, như đã đề cập trong bài trước.


Học Online :D

February 4, 2011

Thông thường khi bắt đầu học postgraduate, sinh viên thường thiếu các kiến thức chuyên môn, hoặc vì không được học trong các chương trình trước đó, hoặc lĩnh vực nghiên cứu vẫn còn chưa ổn định (những lĩnh vực nghiên cứu trong Computer Vision hay Machine Learning bây giờ là khá mới, do đó nhiều kiến thức còn lộn xộn và chưa có tính hệ thống như Toán học hay một số ngành lâu đời khác). Mặt khác, CV hay ML cũng có  thể được xếp vào loại Applied Mathematics, do đó ứng dụng chéo kết quả và lý thuyết từ vài lĩnh vực con khác nhau của toán học, gây cho sinh viên rất nhiều khó khăn trong việc chọn lọc nguồn tiếp thu kiến thức. CV và ML giờ đây còn là những lĩnh vực rất hot, tạo nên sự bon chen khốc liệt trong việc publication trước hay sau, hoặc ai là những người viết những paper đầu tiên về lĩnh vực đó.

Bổ túc kiến thức luôn cần thiết. Do đó, cộng đồng nghiên cứu có tổ chức các Summer School cho first-year PhD student. Các summer school này quy tụ những invited speaker có tiếng tăm trong ngành, đồng thời có một syllabus được thiết kế tương tự một môn học, với các chủ đề khó dần và cụ thể dần. Tuy nhiên, hoạt động này diễn ra còn lẻ tẻ. Có một cách cập nhật khá tốt những kiến thức liên quan Applied Math, là theo dõi các viện toán ở Mỹ. Không phải là các nước khác không có viện toán, mà toán ứng dụng ở Mỹ chắc là đa dạng và tích cực hàng đầu thế giới (theo tôi nghĩ). Chúng ta có thể tìm được vô số tài nguyên quý (sumer school, workshop, lectures, video) nhất là trong lĩnh vực Machine Learning và Data Mining.

Một số kênh tài nguyên khác, mà chắc nhiều người đã biết, như:

  • Các tutorial sessions ở những hội nghị hàng đầu trong ngành
  • Videolectures.net
  • Các tutorial lẻ từ một số nhân vật giỏi + nổi tiếng + tốt bụng :D
  • Summer school của machine learning tổ chức từ năm 2003 đến nay

Ví dụ đây là một số chủ đề ở viện IPAM tôi quan tâm:

Danh sách các viện toán của NSF

AIM Events AIM (American Institute of Mathematics)
http://www.aimath.org
Palo Alto, CaliforniaAIM fosters progress in all areas of mathematics through focused collaborative research. 

IAS Events IAS (Institute for Advanced Study)
http://www.math.ias.edu
Princeton, New JerseyThe Institute for Advanced Study is an independent, private institution dedicated entirely to the encouragement, support and patronage of learning through fundamental research and definitive scholarship across a wide range of fields. 

ICERM Events ICERM (Institute for Computational and Experimental Research in Mathematics)
http://icerm.brown.edu/
Providence, Rhode IslandThe mission of ICERM is to support and broaden the relationship between mathematics and computation and, specifically, to expand the use of computational and experimental methods in mathematics, to support theoretical advances related to computation, and to address problems posed by the existence and use of the computer through mathematical tools, research and innovation. 

IMA Events IMA (Institute for Mathematics and its Applications)
http://www.ima.umn.edu
Minneapolis, MinnesotaThe IMA exists to increase the impact of mathematics by fostering interdisciplinary research linking mathematics with important scientific and technological problems from other disciplines and industry. Allied with this mission, the IMA also aims to expand and strengthen the talent base engaged in mathematical research applied to or relevant to such problems. 

IPAM Events IPAM (Institute for Pure and Applied Mathematics)
http://www.ipam.ucla.edu
Los Angeles, CaliforniaThe overall mission of the Institute for Pure and Applied Mathematics (IPAM) is to make connections between a broad spectrum of mathematicians and scientists, to launch new collaborations, to better inform mathematicians and scientists about interdisciplinary problems, and to broaden the range of applications in which mathematics is used. 

MBI Events MBI (Mathematical Biosciences Institute)
http://www.mbi.osu.edu
Columbus, OhioThe mission of the MBI is: (1) to develop mathematical theories, statistical methods, and computational algorithms for the solution of fundamental problems in the biosciences; (2) to involve mathematical scientists and bioscientists in the solutions of these problems; and (3) to nurture a community of scholars through education and support of students and researchers in mathematical biosciences. 

MSRI Events MSRI (Mathematical Sciences Research Institute)
http://www.msri.org
Berkeley, CaliforniaThe Mathematical Sciences Research Institute (MSRI) exists to further mathematical research through broadly based programs in the mathematical sciences and closely related activities. 

SAMSI Events SAMSI (Statistical and Applied Mathematical Sciences Institute)
http://www.samsi.info
Research Triangle Park, North CarolinaSAMSI is a national institute whose vision is to forge a new synthesis of the statistical sciences and the applied mathematical sciences with disciplinary science to confront the very hardest and most important data- and model-driven scientific challenges. 


PRML – cuốn sách khó nhằn

January 26, 2011

PRML chính là cuốn sách Pattern Recognition and Machine Learning của Bishop. Mình được thầy cho bản PDF của cuốn này vào năm thứ tư đại học, và vẫn chưa hoàn thành việc đọc nó cho đến bây giờ.Lý do duy nhất: ML đòi hỏi rất nhiều toán để có thể hiểu, và quan trọng hơn, hệ thống hóa những kiến thức bộn bề trong một ngành còn non trẻ.

Xuất phát điểm của ML là AI, hay còn gọi là trí tuệ nhân tạo. Sau đó nó khá tách ra khỏi AI và nhập vào nền tảng của Statistics. AI bây giờ đóng vai trò là một ngành tiền thân của ML, gồm các kiến thức học theo luật logic, các chiến thuật tìm kiếm heuristic trong bài toán tối ưu, v.v… Chắc cuốn AI, A Modern Approach sẽ cung cấp đầy đủ cái nhìn. Nhưng nói gì thì nói, ML giờ đây sexy hơn nhiều.

Cuốn PRML của Bishop không giống các cuốn sách về Pattern Recognition thông thường. So sánh với cuốn Pattern Recognition của Hart & Duda, PRML khác ở chỗ không chỉ tập trung vào bài toán Classification, Decision theory giờ cũng chỉ là một phần rất nhỏ, Neural Network giờ cũng không phải là người khổng lồ nữa.So sánh với Elements of Statistical Learning, PRML chú trọng vào Bayesian view hơn vì đơn giản là cách diễn dịch của xác suất Bayes phù hợp với bài toán máy học. Máy học thì cũng như người học: dựa vào các quan sát và dữ kiện thu nhận được để đánh giá khả năng xảy ra một sự kiện. Nói cách khác, đây là cái nhìn chủ quan (chủ quan tức là niềm tin và đánh giá của một con người, không phải của Chúa). Nếu coi mọi sự kiện từ cái nhìn của Chúa – tức là đấng tạo hóa, xác suất một sự kiện xảy ra là đáng tin cậy chỉ khi số lần thực hiện thí nghiệm đủ lớn, kiểu như định lý số lớn, hay trò tung đồng xu.

Điểm nhìn và sự xâu chuỗi của PRML rất tinh tế, nhưng sẽ không nhận ra nếu ta không hiểu nó :D Quả thật là khó nhằn ở điểm này. Nói trắng ra, nó dành cho advanced reader. Xuất phát điểm của nó là background math, một số phân phối cơ bản, giới thiệu sơ về Bayesian inference cũng như Maximum likelihood Estimation. Ngay lúc này thì kiến thức về Optimization đã cần rồi. Những chương ở giữa trình bày các phương pháp theo chiến thuật discriminative approach, tức là tìm một cách hiệu quả và nhanh để classify data mà không modeling data bằng một/nhiều phân phối xác suất. Các phương pháp dựa trên hình học chứng tỏ khả năng vượt trội, ví dụ SVM. Sau đó, PRML lại quay lại tiếp cận Bayes bằng việc giới thiệu graphical model, factor analysis, rồi một chương về EM, để mở đầu cho lĩnh vực approximate inference, một cách khả dụng hóa các phương pháp bayes dựa trên tính xấp xỉ các xác suất lề (marginal prob).

Đây cũng chỉ là một cái view rất thiếu sót và biased đối với mọt quyển sách đáng kính trọng như PRML. Hy vọng sẽ hiểu được nó.


Partiview & Ndaona: A good way to study Machine Learning

December 9, 2010

Partiview is a piece of software for interactive 4D-viewer dataset. It is also useful for 3D visualization of dataset in Machine Learning algorithm, i.e. show manifolds or classification results.

Ndaona is a piece of Matlab functions for Partiview-compatible data conversion.

Downloads

Screenshots

I borrow some screenshots from Ndaona’s website to illustrate here:

How well a linear svm (in LIBSVM) classifies Mandarin tones

How well does Principal Components Analysis separate faces


Follow

Get every new post delivered to your Inbox.