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
12∑i(yi−f(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(y−f)2
và sau đó lấy độ dốc theo dự đoán
∇fL(f;y)=f−y
Then the gradient update, starting from an initial value of y0 is
y1=y0−∇f(y0,y)=y0−(y0−y)=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,f0−y}
Now approximate
∇L by fitting weak learner to W. Say we get the approximation F≈∇L. 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.