Tổng quan học máy
Học máy (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo, nhiệm vụ là xây dựng các hệ thống tự động “học từ dữ liệu” để giải quyết những vấn đề cụ thể.
Machine Learning is a field of study that gives computers the ability to learn without being explicitly programmed.
— Arthur Samuel (nhà khoa học máy tính)
Ứng dụng của học máy trong những năm gần đây xuất hiện ở khắp mọi nơi, từ việc nhận dạng khuôn mặt, vân tay, cử chỉ, tiếng nói đến các hệ thống quản trị rủi ro tài chính, các mô hình xử lí ảnh y khoa,… Học máy có thể ứng dụng hầu hết các loại dữ liệu từ cấu trúc (bảng số liệu kinh tế, số liệu nông nghiệp,…) và cả dữ liệu phi cấu trúc (hình ảnh, văn bản, tín hiệu âm thanh,…).
Phần lớn các thử thách mà bạn phải đối mặt khi ứng dụng các mô hình học máy vào cuộc sống là việc quản lí dữ liệu và tìm mô hình đúng đắn:
Dữ liệu có thể có kích thước khác nhau, không đầy đủ (bị mất), bị ảnh hưởng của nhiễu, điểm dị biệt và ở nhiều định dạng khác nhau,…
Xử lí dữ liệu của bạn đòi hỏi một số kỹ năng đặc biệt về loại dữ liệu đó. Ví dụ, như kiểu dữ liệu hình ảnh đòi hỏi bạn cần một chút kiến thức về xử lí ảnh số những kiểu dữ liệu như âm thanh thì lại có cách sử lí khác,…
Tốn thời gian để chọn được một mô hình tốt, việc chọn đúng mô hình nào phù hợp ngay từ ban đầu là một việc khó khăn đầy gian nan. Một mô hình tốt ngay từ đầu nếu không đánh giá kỹ có thể bị quá khớp (dự đoán tốt trên tập huấn luyện nhưng thất bại khi đưa vào thực nghiệm). Mô hình đơn giản dể sử dụng thì lại có quá nhiều giả định (như Naive Bayes với một giả định khá “ngây thơ” là các đặc trưng phải độc lập thống kê).
1. Phân loại các thuật toán học
Học có giám sát (Supervised learning): thuật toán học nhận một số thí dụ luyện tập và nhãn thí dụ tương ứng để xây dựng mô hình dự đoán. Sử dụng khi bạn muốn nhận dự đoán một kết quả đầu ra từ dữ liệu đầu vào và bạn có các cặp dữ liệu (đầu vào/đầu ra) tương ứng. Để xây dựng mô hình học có giám sát thường phải có sự nổ lực từ con người để gán nhãn cho tập dữ liệu.
Học không giám sát (Unsupervised learning): Không bất kì nhãn nào được cung cấp cho thuật toán học, thuật toán sẽ đi tìm cấu trúc bên dưới dữ liệu. Mảng này gồm nhiều bài toán khác khác nhau như: phân cụm (tự gán nhãn cho các cụ dữ liệu có cấu trúc tương tự nhau, giảm chiều dữ liệu để hổ trợ các hình thức học khác,…)
Học tăng cường (Reinforcement learning): dữ liệu huấn luyện sẽ được thuật toán học xây dựng mô hình, mô hình này dùng để dự đoán và nhận phản hồi từ môi trường từ đó tự động cải thiện mô hình. Một số bài toán tiêu biểu cho hình thức học tăng cường là là công nghệ xe tự lái, tự động chơi game,… Học tăng cường không có các cặp dữ liệu vào/kết quả đúng, các hành động gần tối ưu cũng không được đánh giá đúng sai một cách tường minh.
2. Những câu hỏi cần trả lời trước khi giải quyết bài toán học máy
Trước khi thực hiện các bài toán liên quan học máy bạn cần phải biết tác vụ bạn muốn thực hiện là gì, dữ liệu hiện tại bạn đang có và sẽ có như thế nào, cụ thể:
- Câu hỏi mà bạn muốn máy cố gắng trả lời là gì? Liệu dữ liệu của bạn có thể trả lời những câu hỏi đó?
- Liệu dữ liệu thu thập đã đủ để dự đoán (reveal something) hay chưa?
- Làm cách nào để bạn cân đo đong đếm được sự thành công của ứng dụng? Những độ đo nào sẽ phù hợp cho bài toán của bạn?
- Ứng dụng của bạn khả thi để ứng dụng vào cuộc sống hay không? (xe tự lái, chẩn đoán ảnh y khoa là những tác vụ nhạy cảm, liệu bạn đã đủ tự tin thuyết phục phương pháp mình sẽ được chấp nhận?)
3. Một số bài toán ứng dụng học máy
Phân lớp (classification): trong bài toán phân lớp dữ liệu sẽ được dự đoán đầu ra từ một danh sách khả năng. Một số bài toán phân lớp tiêu biểu: một bức ảnh chụp hình động vật được phân vào lớp nào sau đây [cá heo, mèo, chuột, gà], một lá thư được gửi vào hòm thư của bạn nó là [thư spam, không phải thư spam],…
[+] Các thuật toán học tiêu biểu: Naive Bayes, k nearest neighbor, logistic regression, decision tree, support vector machine, neural network,…Hồi quy (regression): đầu ra một số thực. Một số bài toán hồi quy tiêu biểu là: dự đoán thu nhập cá nhân, dự đoán giá nhà đất, dự đoán sản lượng nông nghiệp,…
[+] Các thuật toán học tiêu biểu: linear regression, decision tree regression, generalized linear model,…Phân cụm (clustering): bài toán này sẽ gom những nhóm đối tượng tương tự nhau về cấu trúc (theo một ngữ cảnh). Bài toán này có nhiều ứng dụng khác nhau như: phân đoạn hình ảnh, gom nhóm các đối tượng tương tự nhau,…
[+] Các thuật toán học tiêu biểu: k-Means, k-Medoid, DBSCAN, Fuzzy C-Mean, Expectation–maximization algorithm,…Giảm chiều dữ liệu (dimensionality reduction): khi đối mặt với các bài toán cụ thể ngoài thực tế, có khả năng số lượng chiều rất lớn (như bài toán ảnh chỉ cần ảnh width:1000, height:1000 là chúng ta đã có 1000000 chiều dữ liệu), điều này gây nhiều trở ngại về tốc độ tính toán và khả năng dự đoán của mô hình.
[+] Các thuật toán học tiêu biểu: principal component analysis, factor analysis, rough set theory,…
…và một số bài toán đặc biệt khác :D sẽ bàn đến khi có thời gian.
Tham khảo
- Wikipedia cộng tác viên. “Học tăng cường.” Wikipedia, Bách khoa toàn thư mở. 1 tháng 2 năm 2017, 12:47 UTC. Tổ chức Quỹ Hỗ trợ Wikimedia. 1 tháng 2 năm 2017
- The MathWorks, Inc. “MATLAB for Machine Learning”. https://www.mathworks.com/solutions/machine-learning.html