Bài toán dự đoán (prediction) dựa trên mô hình hồi quy trong Machine Learning
Xin chào tất cả các bạn. Hôm nay mình xin được trở lại với các bạn trong một chủ đề khá hấp dẫn đó chính là Bài toán dự đoán (Prediction) . Đây là một trong những lĩnh vực khá hay ho mà Machine Learning có thể làm được. OK, không dài dòng thêm nhiều nữa. Chúng ta bắt đầu thôi nào. Học máy ...
Xin chào tất cả các bạn. Hôm nay mình xin được trở lại với các bạn trong một chủ đề khá hấp dẫn đó chính là Bài toán dự đoán (Prediction). Đây là một trong những lĩnh vực khá hay ho mà Machine Learning có thể làm được. OK, không dài dòng thêm nhiều nữa. Chúng ta bắt đầu thôi nào.
Học máy (Machine Learning) là gì?
Học máy hiểu đơn giản là tập hợp các phương pháp, các giải thuật khiến cho máy tính có thể tự "học", tự "suy nghĩ" và đưa ra các quyết định giống như con người. Chính vì lý do đó người ta xếp Machine Learning (ML) thuộc vào phạm vi của lĩnh vực Trí tuệ nhân tạo. Người ta thường phân chia các thuật toán trong ML thành 2 dạng đó là (supervised learning) và (unsupervised learning). Mình sẽ trình bày sơ qua khái niệm này trong các phần tiếp theo để chúng ta có thể hiểu được một cách cơ bản nhất trước khi bước vào chủ để chính của bài viết này đó là thảo luận về Bài toán dự đoán trong ML. OK chúng ta tiếp tục thôi nào...
Học có hướng dẫn (Supervised Learning - SL)
Nhiều người đã dịch SL là học có giám sát, tuy nhiên mình thấy cách dịch này đôi khi làm khó hiểu cho những người mới tìm hiểu về ML. Thay vì đó, mình xin tạm dịch SL là học có hướng dẫn. Điều này nghĩa là sao? Có nghĩa là trong SL, chúng ta cần phải cung cấp cho máy tính một tập dữ liệu mấu (ví dụ như một tập hợp các câu hỏi và các câu trả lời đúng chẳng hạn). Sau đó chúng ta kì vòng rằng máy tính có thể thông qua các thuật toán, các mô hình được cài đặt để tìm ra các câu trả lời cho các câu hỏi chưa có đáp án trong tương lai. Đó chính là tư tưởng của bài toán dự đoán (prediction) mà chúng ta sắp thảo luận dưới đây. Để làm được việc này người ta thường tạo ra một tập dữ liệu chuẩn để làm tập dữ liệu huấn luyện (training dataset). Trên tập này chúng ta sẽ "hướng dẫn" cho máy tính "học" thông qua các mô hình mà chúng ta quy định. Các tham số sinh ra được từ tập dữ liệu huẩn luyện sẽ được sử dụng để thẩm định lại tính thích hợp của mô hình trên tập dữ liệu kiểm tra (testing dataset). Có hai lớp bài toán điển hình trong SL đó là hồi quy (regression) và phân lớp (Classification)
Học không cần hướng dẫn (Unsupervised Learning - USL)
Nếu như học có hướng dẫn chúng ta cần phải cung cấp cho máy tính một tập dữ liệu mẫu với các câu trả lời đúng cho từng câu hỏi (hướng dẫn) thì có những thuật toán trong USL không cần làm điều đó. Các thuật toán USL có khả năng khai thác cấu trúc ẩn của dữ liệu từ một tập dữ liệu chưa được gán nhãn trước (chưa có câu trả lời mẫu). Các hướng tiếp cận điển hình trong USL có thể kể đến như Phân cụm, Phát hiện bất thường, Mạng Nơ ron nhân tạo. OK vậy là chúng ta đã có một chút khái niệm cơ bản về học máy rồi phải không nào. Bây giờ chúng ta sẽ cùng nhau đi sâu tìm hiểu một lớp bài toán quan trọng trong ML đó chính là bài toán dự đoán dựa trên phương pháp hồi quy - một phương pháp nổi tiếng đã được nhắc đến trong phần Học có hướng dẫn ở trên.
Phân tích hồi quy
Bản chất của phân tích hồi quy chính là việc ước lượng mối quan hệ giữa các tham số (variables) trong mô hình mà chúng ta đang xét. Quay về trên quan điểm của xác suất thống kê, mình vẫn nhớ quan điểm của một người thầy rằng "Không có một sự kiện nào trên đời là ngẫu nhiên, những thứ đang cho là ngẫu nhiên chỉ là những sự kiện ta chưa tìm ra được mô hình để biểu diễn quy luật của chúng". Hãy tạm coi như phát biểu của ông thầy kia là đúng và tưởng tượng chúng ta đang là những người đánh xổ số. Giả sử rằng chúng ta có thể tìm ra được mối liên hệ giữa kết quả xổ số của một ngày với một vài tham số dễ thương như sau:
- Biến X1 biểu diễn số trẻ em sinh ra trong ngày hôm nay
- Biến X2 biểu diễn số người chết đi trong ngày hôm nay
- Biến X3 biểu diễn lượng mưa trong ngày hôm nay
- Biến X4 biểu diễn số thằng bị thất tình trong ngày hôm nay
- ...
Và giả sử rằng kết quả xổ số của ngày hôm nay phụ thuộc một cách nào đó vào số người mới sinh, số người chết, lượng mưa và số thằng thất tình... Tức là chúng ta có thể viết dưới dạng toán học như sau:
Kết quả xổ số = f(X1, X2, X3, X4, ...)
Hàm f của chúng ta là gì??? Đó là công việc của hàm hồi quy, việc của chúng ta đó là hãy sưu tập cho máy tính một tập dữ liệu gốc thật chuẩn (training dataset). Sau khi tìm ra được các tham số phụ thuộc ví dụ như:
Kết quả xổ số = 0.6X1 + 3X2 - 9X3 + 0.25X4 +...)
chúng ta sẽ sử dụng để so sánh nó trên tập dữ liệu kiểm tra (testing dataset). Thay đổi các phương pháp hồi quy cho đến khi sai số trên tập dữ liệu kiểm tra là nhỏ nhất. Như vậy chúng ta đã có một mô hình hồi quy sử dụng để tính toán kết quả xổ sổ rồi. Việc còn lại là tìm các giá trị cho X1, X2, X3.... áp vào mô hình rồi lấy kết quả đi đánh xổ số và tự tin với xác suất thắng lợi giống y như xác suất cao nhất bạn đạt trên tập dữ liệu kiểm tra. Qúa thú vị phải không nào. Hi vọng qua ví dụ hơi hoang tưởng trên bạn có thể hình dung ra được việc sử dụng phương pháp hồi quy trong bài toán dự đoán là như thế nào. Tất nhiên, trên thực tế người ta đã sử dụng mô hình hồi quy để ứng dụng vào các bài toán như:
- Dự đoán giá cả của sản phẩm
- Dự đoán biến động chứng khoán
- Dự đoán thời tiết
- ...
Kết luận
Qua bài viết này mình muốn chia sẻ với các bạn những hiểu biết rất cơ bản về phương pháp hồi quy - một phương pháp đơn giản mà hiệu quả trong học máy được sử dụng cho bài toán dự đoán. Mình dự định sẽ viết sâu thêm về các thuật toán trong phương pháp hồi quy nói riêng và rộng hơn là các trong bài toán dự đoán nói chung. Rất mong được sự ủng hộ và theo dõi từ các bạn.
Tham khảo
Bài giảng Precdiction MIT
Machine Learning Documentation