Cây quyết định được tăng dần độ dốc

Giống như tạo hình bao bì và tăng cường hiệu ứng chuyển màu, tăng hiệu ứng chuyển màu là một phương pháp áp dụng cùng với một thuật toán học máy khác. Nói một cách đơn giản, cách tăng độ dốc liên quan đến có hai loại mô hình:

  • "yếu" mô hình học máy, thường là cây quyết định.
  • "mạnh" là một mô hình học máy, bao gồm nhiều yếu tố người mẫu.

Trong quá trình tăng độ dốc, ở mỗi bước, một mô hình yếu mới sẽ được huấn luyện để dự đoán "lỗi" của mô hình mạnh hiện tại (được gọi là phản hồi giả). Chúng tôi sẽ trình bày chi tiết về "lỗi" sau. Tạm thời, hãy giả định "lỗi" điểm khác biệt giữa dự đoán và nhãn hồi quy. Mô hình yếu (tức là "lỗi") là sau đó thêm vào mô hình mạnh cùng với dấu âm để giảm sai số của mô hình mạnh mẽ.

Tính năng tăng độ dốc có tính lặp lại. Mỗi lần lặp lại sẽ gọi công thức sau:

\[ F_{i+1} = F_i - f_i \]

trong đó:

  • $F_i$ là mô hình mạnh mẽ ở bước $i$.
  • $f_i$ là mô hình yếu ở bước $i$.

Thao tác này lặp lại cho đến khi đáp ứng một tiêu chí dừng, chẳng hạn như đạt đến số lần lặp lại hoặc nếu mô hình (mạnh) bắt đầu phù hợp quá mức khi được đo tập dữ liệu xác thực riêng biệt.

Hãy minh hoạ việc tăng độ dốc trên một tập dữ liệu hồi quy đơn giản trong đó:

  • Mục tiêu là dự đoán $y$ từ $x$.
  • Mô hình mạnh được khởi tạo là hằng số 0: $F_0(x) = 0$.
# Simplified example of regressive gradient boosting.

y = ... # the labels
x = ... # the features

strong_model = []
strong_predictions = np.zeros_like(y) # Initially, the strong model is empty.

for i in range(num_iters):

    # Error of the strong model
    error = strong_predictions - y

    # The weak model is a decision tree (see CART chapter)
    # without pruning and a maximum depth of 3.
    weak_model = tfdf.keras.CartModel(
        task=tfdf.keras.Task.REGRESSION,
        validation_ratio=0.0,
        max_depth=3)
    weak_model.fit(x=x, y=error)

    strong_model.append(weak_model)

    weak_predictions = weak_model.predict(x)[:,0]

    strong_predictions -= weak_predictions

Hãy áp dụng mã này trên tập dữ liệu sau:

Biểu đồ thực tế của một đối tượng (x) và nhãn của đối tượng đó là y. Cốt truyện là
chuỗi sin hơi tắt dần
.

Hình 25. Một tập dữ liệu hồi quy tổng hợp có một tính năng dạng số.

 

Sau đây là 3 biểu đồ sau lần lặp lại đầu tiên của tính năng tăng độ dốc thuật toán:

3 lô đất. Biểu đồ đầu tiên cho thấy dự đoán về mô hình mạnh, đó là
đường thẳng có hệ số góc 0 và giao điểm với y = 0. Biểu đồ thứ hai hiển thị lỗi của
mô hình mạnh mẽ, đó là một chuỗi sóng sin. Biểu đồ thứ ba cho thấy
dự đoán mô hình yếu, là một tập hợp các giá trị bình phương
.

Hình 26. Ba biểu đồ sau lần lặp đầu tiên.

 

Chú ý những điều sau về biểu đồ trong Hình 26:

  • Biểu đồ đầu tiên hiển thị dự đoán của mô hình mạnh mẽ, luôn luôn là 0.
  • Biểu đồ thứ hai hiển thị lỗi, đó là nhãn của mô hình yếu.
  • Biểu đồ thứ ba cho thấy mô hình yếu.

Mô hình yếu đầu tiên là tìm hiểu cách mô tả tương đối về nhãn và chủ yếu tập trung vào phần bên trái của không gian đối tượng (phần có nhiều biến thể nhất, và do đó gây ra lỗi nhiều nhất cho mô hình không đổi hằng số).

Sau đây là các biểu đồ tương tự cho một lần lặp lại khác của thuật toán:

3 lô đất. Biểu đồ đầu tiên cho thấy dự đoán về mô hình mạnh, đó là
nghịch đảo của đồ thị dự đoán mô hình yếu của mô hình trước
Hình. Biểu đồ thứ hai hiển thị lỗi của mô hình mạnh, mô hình này
tập hợp sóng sin. Biểu đồ thứ ba cho thấy dự đoán về mô hình yếu, điều này
là một vài hình vuông
.

Hình 27. 3 biểu đồ sau lần lặp thứ hai.

 

Chú ý những điều sau đây về các sơ đồ trong Hình 27:

  • Mô hình mạnh hiện chứa dự đoán về mô hình yếu của lặp lại trước đó.
  • Lỗi mới của mô hình mạnh là một chút nhỏ hơn.
  • Dự đoán mới về mô hình yếu hiện tập trung vào phần bên phải của không gian tính năng.

Chúng tôi chạy thuật toán này thêm 8 lần lặp nữa:

Cốt truyện cho thấy mô hình mạnh mẽ đang dần trở nên gần gũi hơn với thực tế
trong khi việc dự đoán mô hình yếu đang dần trở nên
yếu hơn.

Hình 28. Ba biểu đồ sau lần lặp thứ ba và lần lặp thứ mười.

 

Trong Hình 28, lưu ý rằng việc dự đoán mô hình mạnh bắt đầu giống với biểu đồ của tập dữ liệu.

Những hình này minh hoạ thuật toán tăng độ dốc bằng cách sử dụng cây quyết định như những học sinh yếu kém. Kết hợp này được gọi là cây tăng độ dốc (quyết định).

Các biểu đồ trên cho thấy bản chất của việc tăng độ dốc. Tuy nhiên, việc này ví dụ thiếu hai thao tác thực tế sau:

  • Mức độ co ngót
  • Tối ưu hoá giá trị lá bằng một bước trong phương pháp Newton

Thu hẹp

Mô hình yếu $f_i$ được nhân với một giá trị nhỏ $\nu$ (ví dụ: $\nu = 0,1$) trước khi được thêm vào mô hình mạnh mẽ $F_i$. Giá trị nhỏ này được gọi là sự sụt giảm. Nói cách khác, thay vì mỗi lần lặp lại sử dụng công thức:

\[ F_{i+1} = F_i - f_i \]

Mỗi lần lặp sử dụng công thức sau:

\[ F_{i+1} = F_i - \nu f_i \]

Hiện tượng co lại trong việc tăng độ dốc cũng tương tự như tốc độ học trong mạng nơron. Sự thu hẹp kiểm soát tốc độ học tập của mô hình mạnh mẽ, giúp hạn chế khái quát hoá kém. Điều đó nghĩa là giá trị co ngót gần với 0.0 sẽ giúp giảm hiện tượng quá tải so với giá trị co rút gần 1.0 hơn.

Trong mã trên, việc rút gọn sẽ được triển khai như sau:

shrinkage = 0.1   # 0.1 is a common shrinkage value.
strong_predictions -= shrinkage * weak_predictions