Tại sao các bước của tôi trở nên nhỏ hơn khi sử dụng kích thước bước cố định trong độ dốc giảm dần?


9

Giả sử chúng ta đang thực hiện một ví dụ đồ chơi trên độ dốc tốt, tối thiểu hóa hàm bậc hai , sử dụng kích thước bước cố định . ( )α = 0,03 A = [ 10 , 2 ; 2 , 3 ]xTAxα=0.03A=[10,2;2,3]

Nếu chúng ta vẽ sơ đồ dấu vết của trong mỗi lần lặp, chúng ta sẽ nhận được hình sau. Tại sao các điểm nhận được "nhiều mật độ" khi chúng tôi sử dụng kích thước bước cố định ? Theo trực giác, nó không giống như kích thước bước cố định, mà là kích thước bước giảm dần.x

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


PS: Mã R bao gồm cốt truyện.

A=rbind(c(10,2),c(2,3))
f <-function(x){
  v=t(x) %*% A %*% x
  as.numeric(v)
}
gr <-function(x){
  v = 2* A %*% x
  as.numeric(v)
}

x1=seq(-2,2,0.02)
x2=seq(-2,2,0.02)
df=expand.grid(x1=x1,x2=x2)
contour(x1,x2,matrix(apply(df, 1, f),ncol=sqrt(nrow(df))), labcex = 1.5, 
        levels=c(1,3,5,10,20,40))
grid()

opt_v=0
alpha=3e-2
x_trace=c(-2,-2)
x=c(-2,-2)
while(abs(f(x)-opt_v)>1e-6){
  x=x-alpha*gr(x)
  x_trace=rbind(x_trace,x)
}
points(x_trace, type='b', pch= ".", lwd=3, col="red")
text(x_trace, as.character(1:nrow(x_trace)), col="red")

Mã của bạn không khớp với mô tả của bạn: nó sử dụng alpha=3e-2thay vì . 0.01
whuber

Câu trả lời:


12

Đặt trong đó là đối xứng và xác định dương (tôi nghĩ giả định này an toàn dựa trên ví dụ của bạn). Sau đó và chúng ta có thể diagonalize là . Sử dụng thay đổi cơ sở . Khi đó ta có f(x)=12xTAxAf(x)=AxAA=QΛQTy=QTx

f(y)=12yTΛyf(y)=Λy.

Λ là đường chéo nên chúng tôi nhận được các cập nhật của mình là

y(n+1)=y(n)αΛy(n)=(IαΛ)y(n)=(IαΛ)n+1y(0).

Điều này có nghĩa là chi phối sự hội tụ và chúng ta chỉ nhận được sự hội tụ nếu . Trong trường hợp của bạn, chúng tôi có vì vậy 1αλi|1αλi|<1

Λ(10.5002.5)
IαΛ(0.89000.98).

Chúng ta có được sự hội tụ tương đối nhanh theo hướng tương ứng với hàm riêng với eigenvalue như đã thấy bằng cách các iterate hạ xuống phần dốc của paraboloid khá nhanh, nhưng sự hội tụ chậm theo hướng của eigenvector rất gần với . Vì vậy, mặc dù tốc độ học tập là cố định, cường độ thực tế của các bước theo hướng này phân rã theo khoảng0,98 1 α ( 0,98 ) n αλ10.50.981α(0.98)nmà trở nên chậm hơn và chậm hơn. Đó là nguyên nhân của sự chậm lại theo cấp số nhân trong tiến trình theo hướng này (nó xảy ra theo cả hai hướng nhưng hướng khác đủ gần để chúng ta không chú ý hoặc quan tâm). Trong trường hợp này, sự hội tụ sẽ nhanh hơn nhiều nếu được tăng lên.α

Để thảo luận tốt hơn và kỹ lưỡng hơn về vấn đề này, tôi thực sự khuyên bạn nên https://distill.pub/2017/momentum/ .


cảm ơn câu trả lời chi tiết và tài liệu tham khảo tuyệt vời!. thay đổi cơ sở của thực sự giúp tôi. y
Haitao Du

11

Để có chức năng trơn tru, tại cực tiểu cục bộ.f=0

Vì sơ đồ cập nhật của bạn là , độ lớnkiểm soát kích thước bước. Trong trường hợp bậc hai của bạn (chỉ cần tính toán hessian của bậc hai trong trường hợp của bạn). Lưu ý rằng điều này không phải luôn luôn đúng. Ví dụ: thử sơ đồ tương tự trên . Sau đó, kích thước bước của bạn luôn là do đó sẽ không bao giờ giảm. Hoặc thú vị hơn, , trong đó độ dốc chuyển sang 0 trong tọa độ y, nhưng không phải là tọa độ . Xem câu trả lời của Chaconne cho phương pháp luận cho tứ giác.| f | | Δ f | 0 f ( x ) = x α f ( x , y ) = x + y 2 xαf|f||Δf|0f(x)=xαf(x,y)=x+y2x

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.