Thuật ngữ:

  • phương pháp kết hợp: ensemble

  • bỏ túi: bagging

  • lấy mẫu tái lặp: boostrapping

  • phương pháp tăng cường: boosting.

  • phân loại nhị phân: binary classification

  • mô hình gốc cây: stump

12. Phương pháp tăng cường (Boosting)

Ở bài trước chúng ta đã được học về mô hình random forest. Đây là lớp mô hình dựa trên hai kĩ thuật chính là phương pháp kết hợp (ensemble learning) và bỏ túi (bagging). Trong đó phương pháp kết hợp là kĩ thuật sử dụng nhiều mô hình yếu phối hợp với nhau để tạo thành một mô hình dự báo mạnh hơn; bỏ túi là phương pháp huấn luyện các mô hình trên những bộ dữ liệu được lấy mẫu tái lặp (boostrapping) từ tập dữ liệu đầu vào.

Như vậy mô hình rừng cây là kết hợp của nhiều cây quyết định \(\hat{f}^1, \hat{f}^2, \dots, \hat{f}^p\). Những cây quyết định này được huấn luyện trên các tập dữ liệu khác nhau là \(\mathcal{B}_1, \mathcal{B}_2, \dots, \mathcal{B}_p\) được lấy mẫu tái lặp từ tập huấn luyện \(\mathcal{D}\). Kết hợp kết quả dự báo từ nhiều cây quyết định chúng ta sẽ thu được dự báo cho từng quan sát. Một điểm đáng lưu ý là trong mô hình rừng cây thì những cây quyết định là hoàn toàn độc lập.

Trong bài này chúng ta cùng tìm hiểu về phương pháp (tăng cường) boosting, đây cũng là một phương pháp kết hợp các cây quyết định nhưng giữa các cây quyết định không hoàn toàn độc lập mà chúng có sự phụ thuộc theo chuỗi. Tức là một cây quyết định được phát triển từ việc sử dụng thông tin được dự báo từ những cây quyết định được huấn luyện trước đó. Trong phương pháp tăng cường chúng ta không sử dụng lấy mẫu tái lặp để tạo dữ liệu huấn luyện mà các mô hình được huấn luyện ngay trên dữ liệu gốc. Giống như phương pháp kết hợp, kết quả dự báo của mô hình là sự kết hợp của những cây quyết định con.

Có nhiều thuật toán phân loại khác nhau được phát triển dựa trên phương pháp tăng cường. Trong đó AdaBoost là thuật toán đầu tiên được áp dụng trong bài toán phân loại nhị phân. Chính vì vậy, đây chính là thuật toán điển hình nhất mà chúng ta nên bắt đầu khi tiếp cận phương pháp tăng cường. Ngoài ra còn một số thuật toán hiện đại khác được xây dựng dựa trên AdaBoost, trong đó nổi bật nhất là Gradient Boosting. Trước tiên chúng ta sẽ cùng tìm hiểu về AdaBoost theo nội dung bên dưới.