1. Trí tuệ nhân tạo

Ý tưởng XGBoost là gì Tại sao trong các bài toán thực tế trên Kaggle lại cho kết quả tốt hơn hẳn Deep Neural Network?

Mình nhận thấy trong các bài toán trên Kaggle, đa số đều được giải quyết bởi XGBoost, trong khi đó các mạng neural tuy hiện đại nhưng lại không hiệu quả bằng.

Mình có tham khảo một số tài liệu nước ngoài nhưng vẫn chưa hiểu rõ lắm về XGBoost, Mọi người có thể giải thích và so sánh giúp mình được không?

Từ khóa: xgboost, neural network, kaggle, Trí tuệ nhân tạo

Mình thấy quora trả lời khá rõ cho câu hỏi của bạn.

https://www.quora.com/Why-is-xgboost-given-so-much-less-attention-than-deep-learning-despite-its-ubiquity-in-winning-Kaggle-solutions

Xgboost được dùng để boost các weak learners để trở thành strong ones. (weak learners có thể là nhiều ML algo khác nhau.)

Mình đồng ý với quan điểm sau:

- Do trên Kaggle dữ liệu chưa được nhiều và dữ liệu thường là tabular (bảng cột,...)

- Và việc design a network in deep learning là một vấn đề. Do có thể phải design cái deep architecture khác cho từng bài toán khác nhau để tối ưu và việc đó quá tốn công sức.

Mình vẫn chưa trả lời xgboost step by step như thế nào.

Trả lời

Mình thấy quora trả lời khá rõ cho câu hỏi của bạn.

https://www.quora.com/Why-is-xgboost-given-so-much-less-attention-than-deep-learning-despite-its-ubiquity-in-winning-Kaggle-solutions

Xgboost được dùng để boost các weak learners để trở thành strong ones. (weak learners có thể là nhiều ML algo khác nhau.)

Mình đồng ý với quan điểm sau:

- Do trên Kaggle dữ liệu chưa được nhiều và dữ liệu thường là tabular (bảng cột,...)

- Và việc design a network in deep learning là một vấn đề. Do có thể phải design cái deep architecture khác cho từng bài toán khác nhau để tối ưu và việc đó quá tốn công sức.

Mình vẫn chưa trả lời xgboost step by step như thế nào.

Câu hỏi 1 ý tưởng XGBoost là gì? Viết tắt là Extreme Gradient Boosting. Nó đơn giản là giải thuật Tree (Cây), áp dụng các kỹ thuật để kết hợp các Tree, làm mịn Training Loss (Sai số khi huấn luyện) và Regularization (Chuẩn hóa sai số, hệ số và số biến )

Bạn đọc được tiếng anh thì theo dõi Link này nhé, đọc được công thức là tốt :

http://xgboost.readthedocs.io/en/latest/model.html

Nghĩa là , Xgboost cố gắng khớp dữ liệu tốt nhất. Tuy nhiên, nhiều trường hợp XGBoost bị overfit khủng khiếp.

Câu hỏi 2, tại sao nó thắng nhiều thế: Thực tế chẳng có giải thuật nào có thể áp dụng cho tất cả các bài toán trong cuộc sống. Mỗi loại bài toán, mỗi loại dữ liệu sẽ có những cách tiếp cận hiệu quả (Giải thuật phù hợp). Vì vậy, đơn giản là XGBoost đang có vẻ hợp với dữ liệu từ cuộc thi trên Kaggle.

Ngoài ra, bạn nên tìm hiểu DEEP Neuro Network là gì? Người ta dùng chữ Deep này như nào, ở lĩnh vực nào, bản chất toán học của nó là gì, dữ liệu phù hợp cho giải thuật Neuro Network. Ngoài chữ Deep, Google còn dùng thêm chữ WIDE để tăng chất lượng MODEL (Mảng này đa dạng công thức lắm, nhưng cơ bản mỗi lớp như là Y= A f(x) +B, f(x) cũng đa dạng, đầu ra hàm đó , là đầu vào ở lớp tiếp theo, dùng hàm kích hoạt để ra quyết định (đa phần dùng hàm softmax hoặc "Ác TĂNG- Arctan ( trong lượng giác) )).

Có một đặc biệt: Không ai biết với dữ liệu đang có, thì thiết kết cái Network thế nào cho tốt, Bao nhiêu lớp, mỗi lớp bao nhiêu Neron. Dùng hàm kích hoạt nào. Có dùng bộ nhớ hay không. Có dùng Hệ số quên hay không. Blabla. Vì thế mà để thành công với Deep Neuro Network, sẽ tốn không it trí tuệ và thời gian.