Học máy (tiếng Anh: machine learning) là một nhánh của trí tuệ nhân tạo chuyên nghiên cứu và phát triển các phương pháp cho phép hệ thống tự học từ dữ liệu để giải quyết các vấn đề cụ thể mà không cần lập trình chi tiết. Các thuật toán học máy xây dựng mô hình từ dữ liệu huấn luyện để đưa ra dự đoán hoặc quyết định. Ví dụ, hệ thống có thể tự động phân loại email thành thư rác hoặc không mà không cần lập trình cụ thể cho từng trường hợp. Học máy có liên hệ gần gũi với suy diễn thống kê nhưng khác về thuật ngữ. Một nhánh nổi bật gần đây là học sâu, đạt được kết quả vượt trội so với các phương pháp khác. Học máy có sự kết hợp với thống kê nhưng tập trung nhiều hơn vào tính toán phức tạp của các giải thuật, với nhiều bài toán thuộc loại NP-khó cần nghiên cứu các giải thuật xấp xỉ để xử lý.
Học máy hiện được ứng dụng rộng rãi trong các lĩnh vực như tìm kiếm dữ liệu, chẩn đoán y khoa, phát hiện gian lận thẻ tín dụng, phân tích chứng khoán, phân loại chuỗi DNA, nhận diện tiếng nói và chữ viết, dịch thuật tự động, chơi game và điều khiển rô-bốt (robot locomotion).
Khái niệm
Trong trí tuệ nhân tạo, học máy chủ yếu được thúc đẩy bởi nhu cầu thu thập tri thức (knowledge acquisition). Khi kiến thức chuyên gia khan hiếm hoặc không đủ, hoặc khi cần ra quyết định nhanh chóng dựa trên khối lượng dữ liệu lớn, máy tính trở thành công cụ cần thiết. Dữ liệu ngày nay chủ yếu có định dạng máy đọc được (computer readable), chứa nguồn tri thức quan trọng. Học máy nghiên cứu cách mô hình hóa bài toán để máy tính có thể tự hiểu, xử lý và học từ dữ liệu nhằm thực hiện nhiệm vụ được giao cũng như cách đánh giá hiệu quả của quá trình này.
Tom Mitchell, một giáo sư danh tiếng tại Đại học Carnegie Mellon University - CMU, đã định nghĩa học máy một cách cụ thể và chuẩn mực: 'Một chương trình máy tính CT được coi là học khi nó có khả năng thực hiện một nhiệm vụ NV tốt hơn nhờ vào trải nghiệm KN, và sự tiến bộ này được đo lường bằng thang năng lực NL' (khi máy đã học được).
Biểu diễn
Biểu diễn (tiếng Anh: representation) là một vấn đề then chốt trong học máy. Biểu diễn ở đây đề cập đến cách mã hóa (encode) thông tin từ thế giới thực để thực hiện nhiệm vụ một cách hiệu quả nhất. Thông tin này bao gồm dữ liệu đầu vào, đầu ra, trạng thái của hệ thống, và cách đánh giá hiệu quả của chương trình.
Trong học máy, thường dùng các mô hình với biến ngẫu nhiên để biểu diễn dữ liệu và trạng thái của hệ thống. Ví dụ: Biến ngẫu nhiên có thể thể hiện tính chất của email là thư rác (giá trị 0) hoặc không phải (giá trị 1). Mối quan hệ giữa các biến này có thể được mô tả bằng các mô hình xác suất dạng đồ thị. Để đo hiệu quả, có thể sử dụng các hàm thiệt hại (hay hàm tiện ích, trong tiếng Anh là loss function và utility function tương ứng).
Tính phổ quát
Một trong những mục tiêu quan trọng của học máy là đạt được tính phổ quát (tiếng Anh: generalization), tức là khả năng của chương trình làm việc hiệu quả với dữ liệu chưa từng gặp trước đây (tiếng Anh: unseen data). Nếu một chương trình chỉ hoạt động tốt với dữ liệu đã biết, thì tính hữu dụng của nó sẽ bị hạn chế.
Ví dụ, trong việc phân loại email tự động, một hệ thống học máy có thể phát triển các nguyên tắc riêng từ dữ liệu huấn luyện ('training'), như kiểm tra nội dung (nếu email viết bằng tiếng Anh và chứa các từ như 'porn', 'sell', 'good product' hoặc người gửi từ Somalia và người nhận ở Hà Nội không quen biết) để xác định thư rác. Tuy nhiên, nếu dữ liệu huấn luyện (training data) chứa các ngôn ngữ khác (như tiếng Việt) hoặc dạng dữ liệu không phải văn bản (như hình ảnh), máy có thể gặp khó khăn trong việc đưa ra dự đoán chính xác.
Một số hệ thống học máy có khả năng tự cập nhật liên tục, ví dụ khi người dùng chỉ ra rằng thư đã được phân loại sai.
Giao tiếp với con người
Một số hệ thống học máy cố gắng giảm bớt sự can thiệp của con người trong phân tích dữ liệu, trong khi những hệ thống khác lại hướng đến việc tăng cường hợp tác giữa người và máy. Việc hoàn toàn loại bỏ tác động của con người là không thể, vì các nhà phát triển phải chỉ định cách dữ liệu được biểu diễn và các cơ chế tìm kiếm đặc tính của dữ liệu. Học máy có thể được coi là một nỗ lực tự động hóa một phần của phương pháp khoa học. Một số nhà nghiên cứu học máy phát triển các phương pháp trong khuôn khổ thống kê Bayes.
Liên hệ với Khai phá dữ liệu
Khai phá dữ liệu và học máy thường bị nhầm lẫn vì chúng có nhiều điểm tương đồng và thường sử dụng các phương pháp, công cụ chung. Tuy nhiên, điểm khác biệt chủ yếu là mục tiêu của chúng:
- Khai phá dữ liệu: chủ yếu nhằm phát hiện các thông tin hoặc tri thức hoàn toàn mới có tiềm năng giá trị trong nguồn dữ liệu.
- Học máy: tập trung vào việc dự đoán các thông tin từ dữ liệu dựa trên những đặc điểm đã biết.
Các loại thuật toán
Thuật toán học máy được phân loại dựa trên mục tiêu mà chúng hướng đến. Các loại thuật toán phổ biến bao gồm:
- Học có giám sát—khi thuật toán học cách ánh xạ dữ liệu đến kết quả mong muốn. Một ví dụ tiêu biểu của học có giám sát là bài toán phân loại: chương trình cần học cách xấp xỉ một hàm ánh xạ từ một vector đến các lớp khác nhau bằng cách nghiên cứu các mẫu dữ liệu - kết quả của hàm đó.
- Học không giám sát—xây dựng mô hình từ dữ liệu mà không có các ví dụ đã gắn nhãn trước.
- Học nửa giám sát—kết hợp cả các ví dụ đã gắn nhãn và chưa gắn nhãn để tạo ra một hàm hoặc bộ phân loại phù hợp.
- Học tăng cường—thuật toán học cách hành động dựa trên quan sát thế giới, với mỗi hành động ảnh hưởng đến môi trường và môi trường cung cấp phản hồi để hướng dẫn quá trình học.
- Chuyển đổi—tương tự học có giám sát nhưng không tạo ra hàm một cách rõ ràng, mà cố gắng dự đoán kết quả mới từ dữ liệu huấn luyện và thử nghiệm có sẵn.
- Học cách học—thuật toán học cách cải thiện chính mình dựa trên kinh nghiệm đã có.
Đánh giá hiệu quả các thuật toán học máy thuộc về lĩnh vực thống kê, được gọi là lý thuyết học điện toán.
Các chủ đề trong học máy
Danh sách các chủ đề của môn học này bao gồm:
- Mô hình hóa các hàm xác suất điều kiện: hồi quy và phân loại
- Mạng nơ-ron
- Máy học cực độ (Extreme learning machine)
- Cây quyết định
- Lập trình biểu thức gen
- Lập trình di truyền
- Hồi quy quá trình Gauss
- Phân tích biệt thức tuyến tính
- K láng giềng gần nhất
- Độ dài thông điệp tối thiểu
- Cảm tri nguyên
- Hàm cơ sở xuyên tâm
- Máy vector hỗ trợ (Support Vector Machine)
- Mô hình hóa các hàm xác suất qua các mô hình phát sinh:
- Thuật toán cực đại kỳ vọng
- Các mô hình đồ họa như mạng Bayes và mạng Markov
- Ánh xạ topo phát sinh
- Các kỹ thuật suy luận xấp xỉ chính xác:
- Chuỗi Markov phương pháp Monte Carlo
- Phương pháp biến thiên
- Tối ưu hóa: hầu hết các phương pháp trên đều sử dụng hoặc dựa trên các thuật toán tối ưu hóa.
- Trí tuệ nhân tạo
- Trí tuệ điện toán
- Khai thác dữ liệu
- Nhận diện mẫu
- Các tài liệu quan trọng trong học máy (khoa học máy tính)
- Các tài liệu quan trọng trong học máy (thống kê)
- Robot tự động
- Lập trình suy diễn logic
- Bishop C. M. (1995). Mạng nơ-ron cho Nhận diện Mẫu, Nhà xuất bản Đại học Oxford. ISBN 0-19-853864-2
- Richard O. Duda, Peter E. Hart, David G. Stork (2001). Phân loại mẫu (ấn bản lần 2), Wiley, New York, ISBN 0-471-05669-3.
- MacKay D. J. C. (2003). Thuyết Thông tin, Suy diễn, và Thuật toán Học, Nhà xuất bản Đại học Cambridge. ISBN 0-521-64298-1
- Sholom Weiss và Casimir Kulikowski (1991). Các Hệ thống Máy Tính Học Tập, Morgan Kaufmann. ISBN 1-55860-065-5
Liên kết bên ngoài
Tài nguyên tổng hợp
- UCI description Lưu trữ 2008-05-21 tại Wayback Machine
- Danh sách MLnet
- Kmining Danh sách các hội nghị khoa học về học máy, khai thác dữ liệu và KDD
- Sách 'Hệ thống thông minh và các xã hội của chúng Lưu trữ 2005-08-30 tại Wayback Machine' của Walter Fritz
- Các liên kết từ Open Directory Project Lưu trữ 2017-03-09 tại Wayback Machine
- Eruditionhome Lưu trữ 2006-02-12 tại Wayback Machine - nơi chứa nhiều mục đề về Học máy
- MLpedia Lưu trữ 2011-07-27 tại Wayback Machine - Từ điển bách khoa wiki dành riêng cho chủ đề Học máy
Các Tạp chí và Hội thảo
- Tạp chí Nghiên cứu Học máy
- Tạp chí Học máy
- Các bài báo Học máy tại CiteSeer
- NIPS: Hệ thống Xử lý Thông tin Nơ-ron
- ICML: Hội nghị Quốc tế về Học máy Lưu trữ 2005-12-18 tại Wayback Machine
Các Nhóm Nghiên cứu
- Nhóm Học máy tại Đại học Hebrew
- Nhóm Học máy và Xử lý Ngôn ngữ Tự nhiên tại Đại học Freiburg
- Nhóm Học máy và Khai thác Dữ liệu trong Sinh học tại TU München
- Nhóm Học máy và Tính toán Sinh học tại Đại học Bristol
- Nhóm Học máy và Thống kê Ứng dụng Lưu trữ 2005-06-30 tại Wayback Machine của Microsoft Research
- Khoa Công nghệ Tri thức của Học viện Jozef Stefan
- Nhóm Học máy Đa phương tiện Thống kê tại Đại học British Columbia
- Nhóm Hệ thống Học máy tại Jet Propulsion Laboratory, Học viện Kỹ thuật California
- Khoa Suy diễn Thực nghiệm Lưu trữ 2005-12-28 tại Wayback Machine tại Viện Max Planck về Điều khiển học Sinh học, Tübingen
- Nhóm Học máy tại Đại học Toronto
- Nhóm Phân tích Dữ liệu Thông minh Lưu trữ 2007-06-27 tại Wayback Machine tại Fraunhofer FIRST, Berlin
- Nhóm Học máy tại Đại học Tự do Bruxelles
Phần mềm
- Các chương trình mạng nơ-ron đa lớp (Multi Layer Neural Network) và mạng nơ-ron tự tổ chức (Self Organizing Maps) được giải thích bằng tiếng Việt. Lưu trữ 2011-07-15 tại Wayback Machine
- Hướng dẫn sử dụng phần mềm mạng nơ-ron 3 lớp Spice-MLP Lưu trữ 2011-09-29 tại Wayback Machine
- Hướng dẫn sử dụng phần mềm mạng tự tổ chức Spice-SOM Lưu trữ 2011-09-29 tại Wayback Machine
- Hướng dẫn ứng dụng mạng nơ-ron thực tế Lưu trữ 2011-06-26 tại Wayback Machine, bao gồm phân loại ảnh khuôn mặt, người đi bộ, xe hơi, dự đoán chứng khoán và nhiều ví dụ khác
- SPIDER Lưu trữ 2005-12-20 tại Wayback Machine - bộ công cụ học máy toàn diện cho Matlab
- PRTools, gói phần mềm hoàn chỉnh tương tự SPIDER và tích hợp trong Matlab. SPIDER có nhiều hỗ trợ cơ bản, còn PRTools đa dạng hơn với tài liệu phong phú. Cả hai đều miễn phí cho các ứng dụng phi thương mại.
- Orange, bộ công cụ học máy với các script Python và giao diện lập trình đồ họa
- YALE, công cụ miễn phí mạnh mẽ cho Học máy và Khai thác dữ liệu
- Weka, phần mềm học máy
- Matlab, cung cấp các công cụ học máy như Support Vector Machines và phân loại KNN, cùng với các công cụ mạng nơ-ron hoàn chỉnh. Gần đây, Matlab cải tiến phương pháp đánh giá bộ phân loại và thẩm định chéo, làm cho nó hấp dẫn hơn cho học máy.
- MLC++, thư viện C++ dành cho học có giám sát
Những lĩnh vực chính của khoa học máy tính |
---|
Chuyên ngành chính của Tin học |
---|