Làm thế nào là tăng cường độ dốc như giảm độ dốc?


9

Tôi đang đọc mục Wikipedia hữu ích về tăng cường độ dốc ( https://en.wikipedia.org/wiki/Gradient_boosting ) và cố gắng hiểu làm thế nào / tại sao chúng ta có thể ước chừng số dư bằng bước xuống dốc nhất (còn được gọi là giả độ dốc ). Bất cứ ai có thể cho tôi trực giác về cách đi xuống dốc nhất được liên kết / tương tự như phần dư? Giúp nhiều đánh giá cao!

nhập mô tả hình ảnh ở đây

Câu trả lời:


11

Giả sử chúng ta đang ở trong tình huống sau đây. Chúng tôi có một số dữ liệu , trong đó mỗi{xi,yi} có thể là một số hoặc vector, và chúng tôi muốn xác định một hàm f rằng xấp xỉ với mối quan hệ f ( x i ) y i , theo nghĩa rằng lỗi bình phương nhỏ nhất:xiff(xi)yi

12i(yif(xi))2

nhỏ.

Bây giờ, câu hỏi nhập vào những gì chúng ta muốn miền của là. Một sự lựa chọn thoái hóa cho miền chỉ là những điểm trong dữ liệu đào tạo của chúng tôi. Trong trường hợp này, chúng tôi có thể chỉ cần xác định f ( x i ) = y , bao gồm toàn bộ miền mong muốn và được thực hiện với nó. Một vòng về cách để đi đến câu trả lời này là bằng cách thực hiện giảm độ dốc với không gian riêng biệt này làm miền. Điều này có một chút thay đổi trong quan điểm. Chúng ta hãy xem sự mất mát là một hàm của điểm y đúng và dự đoán (hiện tại, không phải là hàm, mà chỉ là giá trị của dự đoán)ff(xi)=yy ff

L(f;y)=12(yf)2

và sau đó lấy độ dốc theo dự đoán

fL(f;y)=fy

Then the gradient update, starting from an initial value of y0 is

y1=y0f(y0,y)=y0(y0y)=y

So we recover our perfect prediction in a gradient step with this setup, which is nice!

The flaw here is, of course, that we want f to be defined at much more than just our training data points. To do this, we must make a few concessions, for we are not able to evaluate the loss function, or its gradient, at any points other than our training data set.

The big idea is to weakly approximate L.

Start with an initial guess at f, almost always a simple constant function f(x)=f0, this is defined everywhere. Now generate a new working dataset by evaluating the gradient of the loss function at the training data, using the initial guess for f:

W={xi,f0y}

Now approximate L by fitting weak learner to W. Say we get the approximation FL. We have gained an extension of the data W across the entire domain in the form of F(X), though we have lost precision at the training points, since we fit a small learner.

Finally, use F in place of L in the gradient update of f0 over the entire domain:

f1(x)=f0(x)F(x)

We get out f1, a new approximation of f, a bit better than f0. Start over with f1, and iterate until satisfied.

Hopefully, you see that what is really important is approximating the gradient of the loss. In the case of least squares minimization this takes the form of raw residuals, but in more sophisticated cases it does not. The machinery still applies though. As long as one can construct an algorithm for computing the loss and gradient of loss at the training data, we can use this algorithm to approximate a function minimizing that loss.


Yah, I think that's good. The only thing to note is that if you, for example, want to boost to minimize the binomial loss
iyilog(pi)+(1yi)log(1pi)
then the gradient we expand is no longer related to the residuals in a natural way.
Matthew Drury

Thanks Matthew. One thing that i am trying to get my head around. In the literature it is often stated that the model update is F(m+1) = F(m) + αmh(m), where h(m) is the weak learner. If i am thinking of a tree-based model - does it mean that for both regression and classification we acually practically update our prediction for a given datapoint by simple addition of the outcomes of the two models? does that also work if we are trying to binary classify this? or should the + sign not be interpreted so literally?
Wouter

The plus sign is quite literal. But for a tree based weak learners, the model predictions should be interpreted as the weighted average in the leaf, even in the case where the tree is fit to binomial data. Note though, that in boosting, we are usually not fitting to binomial data, we are fitting to the gradient of the likelihood evaluated at the prior stage's predictions, which will not be 0,1 valued.
Matthew Drury

1
@MatthewDrury I think in many literature, we are not direct update f1 with f0F(x), but with f0αF(x), where α from 0 to 1 is a learning rate.
Haitao Du

@hxd1011 Yes, that's absolutely correct, and crucial for using gradient boosting successfully.
Matthew Drury
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.