Tổng số lượt xem trang

Thứ Hai, 22 tháng 5, 2017

Máy học là gì?

Ở trong 2 bài trước, chúng tôi đã đề cập tới 2 câu hỏi: tại sao (WHY) và khi nào (WHEN) chúng ta sử dụng Máy học. Trong bài này, chúng tôi trả lời câu hỏi WHAT: vậy Máy học là gì?

Trước hết chúng tôi sẽ giới thiệu qua về Lịch sử Máy học.
------

Lịch sử Máy học
Máy học được đưa ra năm 1959 bởi Arthur Samuel: “là một lĩnh vực nhằm giúp máy tính có khả năng học mà không được lập trình/chỉ định rõ ràng”. Điều này có nghĩa là kiến thức được máy tính hấp thụ “tự động” mà không cần phải lập trình cho nó. Rất nhiều người nhầm hiểu rằng sự thông minh của máy tính là do con người lập trình. Nếu cặn kẽ, thì có thể nói rằng, con người lập trình để máy tính có thể “tự học”. Giống như chúng ta hướng dẫn một đứa trẻ học vậy, còn trí thông minh là do trẻ tự học mà có được. Do lịch sử, mặc dù những thuật toán Máy học đã có từ rất lâu nhưng gần đây mới thực sự được ứng dụng rộng rãi. Ví dụ Vladimir Vapnik là nhà khoa học thuộc Liên Xô cũ đã đưa ra thuật toán Support Vector Machine (SVM) năm 1963 nhưng không được chú ý cho tới những năm 1990 khi Vapnick sang Mỹ và nghiên cứu ở Bell Labs. Tương tự thuật toán Neuron Netwok được đưa ra những năm 1940, nhưng máy tính lúc đó quá chậm để có thể thực hiện thuật toán. Quan niệm về Máy học đã nhiều lần thay đổi. Mỗi lần như vậy người ta lại nghĩ Máy học chỉ là một hiện tượng tạm thời. Cho tới những năm gần đây, các nền tảng phần cứng phát triển (định luật Moore) đã giúp các nhà khoa học và cả xã hội nhận thấy Máy học là một công cụ thực sự quan trọng và hữu ích. Nó dần khẳng định vai trò không thể thay thế trong nhiều lĩnh vực của xã hội [8].

 Máy học là gì?
Ngoài định nghĩa rất hay nhưng mang tính hình thức của Tom Mitchell trong cuốn sách Machine Learning nổi tiếng [5], ông có đưa ra khái niệm dễ hiểu về Máy học: “Máy học liên quan tới gốc rễ của vấn đề làm thế nào để xây dựng các chương trình máy tính sao cho nó có thể tự động cải thiện bằng kinh nghiệm”.
Trong cuốn sách [4], ba tác giả là ba nhà thống kê (statisticians) của Standford đã đưa ra một định nghĩa về Máy học:  “Một lượng rất lớn dữ liệu được sinh ra bởi nhiều lĩnh vực khác nhau, công việc của các nhà thống kê là tìm ra ý nghĩa của các dữ liệu đó, bằng cách: trích xuất và tìm ra các mẫu (pattern) và các xu hướng, và để hiểu ‘dữ liệu đang nói gì’. Như vậy là chúng ta đang học từ dữ liệu”.
Marsland đã cung cấp một nhận định đáng giá trong cuốn sách [6]: “Một trong những đặc trưng thú vị của Máy học là nó là sự giao thoa của các ngành ngành: khoa học máy tính, thống kê học, toán học, và kĩ thuật”.
Trong biểu đồ Hình 1 có 3 thành phần chính: 1. Hacking Skills chính là những kĩ năng sử dụng máy tính và lập trình để thao tác và xử lý dữ liệu; 2. Math&Statistics là nền tảng để chúng ta trích xuất những thông tin hữu ích từ dữ liệu; 3. Substantive Expertise là kiến thức của lĩnh vực chúng ta quan tâm. Như chúng ta thấy ở biểu đồ Venn, Máy học cần một phần kĩ năng của khoa học máy tính và một phần của toán học thống kê. 


Hình 1: Biểu đồ Venn của Drew Conway về Data Science [7].
Tuy có rất nhiều định nghĩa khác nhau, tùy thuộc vào góc nhìn, tuy nhiên rất nhiều người cho rằng: “Giá trị quan trọng của Máy học là mô hình dự đoán, ở đó chúng ta dùng các dữ liệu quá khứ để huấn luyện mô hình và dùng mô hình để dự đoán”. Hay thậm chí ngắn gọn hơn: “Viết một chương trình mà nó có thể tự học!”

Máy học có nhiều tên gọi khác nhau, được đặt bởi những cộng đồng nghiên cứu khác nhau. Khi sử dụng Máy học để nhận dạng các mẫu, Máy học là pattern recognition; khi sử dụng trong khai phá dữ liệu, Máy học là data mining; khi sử dụng trong các mô hình dự đoán, Máy học có tên là redictive analytics hay còn gọi là predictive modeling; khi sử dụng vào phân tích dữ liệu, Máy học có tên gọi là data science; khi sử dụng trong các hệ thống tự thích nghi tương tác với môi trường, Máy học được gọi là adaptive systems; khi sử dụng để khai phá tri thức, Máy học có tên gọi là knowledge discovery; khi sử dụng trong việc phân tích và thống kê dữ liệu, Máy học có tên gọi là statistic learning hay còn gọi là statistic modeling. Ngoài ra còn có thể kể ra rất nhiều tên khác nưa: statistical modeling, self-organizing systems, v.v…  
Đứng ở góc độ người mới tìm hiểu và muốn nghiên cứu hay xây dựng cho mình một chương trình Máy học, chúng ta cần:
1.      Sử dụng được một ngôn ngữ lập trình. Ví dụ như Java, Matlab, R, Python, ... Tuy nhiên, theo chúng tôi ngôn ngữ Python là một sự lựa chọn rất phù hợp
2.      Bổ sung một vài kiến thức về toán học cho khoa học máy tính như: Lý thuyết xác suất thống kê, đại số tuyến tính; nếu sang hơn thì là toán tối ưu :-)
3.      Tìm hiểu về lĩnh vực chuyên sâu mà bạn muốn xây dựng ứng dụng, ví dụ: y học (dự đoán bệnh), nông nghiệp (dự báo năng suất), ...
Chúc các bạn sớm yêu thích và tham gia vào lĩnh vực thú vị và có nhiều ứng dụng này.

Tham khảo:

1. https://www.coursera.org/learn/machine-learning
2. Pedro Domingos. A few useful things to know about machine learning, Published by ACM 2012 Article. Volume 55 Issue 10, October 2012, pages 78-87.
3. http://gerardnico.com/wiki/data_mining/bias_trade-off
4. Trevor Hastie. Robert Tibshirani. Jerome Friedman. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer; 2nd ed. 2009. Corr. 7th printing 2013 edition, 745 pages
5. Tom Mitchell. Machine Learning. McGraw-Hill Education; 1st edition, March 1997, 432 pages
6. Stephen Marsland. Machine Learning: An Algorithmic Perspective. Chapman and Hall/CRC; 1st edition April 2009, 406 pages
7. http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram
8. 10 Machine Learning based Products You MUST see: https://www.youtube.com/watch?v=dcZvhP-IqY4
9. https://sebastianraschka.com/faq/docs/datascience-ml.html
10. https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition
11. http://adilmoujahid.com/posts/2016/06/introduction-deep-learning-python-caffe
12. http://www.forbes.com/sites/85broads/2014/01/06/six-novel-machine-learning-applications/
13. http://yann.lecun.com/exdb/mnist/
14. https://www.youtube.com/watch?v=wr4rx0Spihs
15. https://en.wikipedia.org/wiki/Machine_learning
16. Yaser  S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin. Learning From Data. AMLBook (March 27, 2012), 213 pages.

2 nhận xét:

Nguyễn Chỉnh nói...

Dạ xin hỏi . Sách này tên là gì ạ và mình muốn mua tìm hiểu thì ở đâu vậy. Mong tác giả sơm phản hồi. Mình cũng mong muốn tìm hiểu sâu về ML. Cảm ơn nhiều.

Thanh Trà nói...

"Cùng tìm hiểu thêm về machine learning nhé!
machine learning là gì"