그래디언트 디센트에서 고정 스텝 크기를 사용할 때 왜 스텝이 작아 지는가?


9

고정 단계 크기 사용하여 2 차 함수 최소화하면서 기울기 정도에 대한 장난감 예제를 수행한다고 가정합니다 . ( )xTAxα=0.03A=[10,2;2,3]

각 반복에서 의 트레이스를 플로팅하면 다음 그림이 나타납니다. 고정 스텝 크기를 사용할 때 왜 포인트가 "조밀하게"표시 됩니까? 직관적으로, 고정 단계 크기가 아니라 단계 크기가 감소합니다.x

여기에 이미지 설명을 입력하십시오


추신 : R 코드는 플롯을 포함합니다.

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")

코드는 귀하의 설명과 일치하지 않습니다 : 그것은 사용 alpha=3e-2하기보다는0.01.
whuber

답변:


12

허락하다 f(x)=12xTAx 어디 A대칭적이고 긍정적 인 결정입니다 (이 가정은 귀하의 예에 따라 안전하다고 생각합니다). 그때f(x)=Ax 우리는 대각선 화 할 수 있습니다 A 같이 A=QΛQT. 기초의 변화를 사용하십시오y=QTx. 그럼 우리는

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

Λ 대각선이므로 업데이트를 다음과 같이 얻습니다.

와이(+1)=와이()αΛ와이()=(나는αΛ)와이()=(나는αΛ)+1와이(0).

이것은 1αλ나는 컨버전스를 통제하고 우리는 컨버전스 만 |1αλ나는|<1. 당신의 경우에 우리는

Λ(10.5002.5)
그래서
나는αΛ(0.89000.98).

고유 값을 갖는 고유 벡터에 해당하는 방향으로 비교적 빠르게 수렴합니다. λ10.5 반복이 포물면의 가파른 부분을 매우 빠르게 내려가는 방식에서 볼 수 있듯이 수렴이 더 작은 고유 값을 갖는 고유 벡터의 방향으로 느립니다. 0.98 너무 가까이 1. 학습률이α 이 방향으로 단계의 실제 크기는 대략 (0.98)느리고 느려집니다. 그것이이 방향으로의 진행이 기하 급수적으로 느려지는 원인입니다 (양방향으로 발생하지만 다른 방향은 우리가 알지 못하거나 신경 쓰지 않을 정도로 빨리 가까워집니다). 이 경우 수렴이 훨씬 빠를 것입니다α 증가했다.

이것에 대해 훨씬 더 철저하게 논의 하려면 https://distill.pub/2017/momentum/을 강력히 권장 합니다.


자세한 답변과 훌륭한 참조에 감사드립니다!. 기초를 바꾸다와이정말 도와주었습니다.
Haitao Du

11

부드러운 기능을 위해 에프=0 지역 최소에서.

업데이트 체계가 α에프, 크기 |에프|단계 크기를 제어합니다. 2 차의 경우|Δ에프|0또한 (이 경우에는 2 차의 헤 시안을 계산하십시오). 이것이 항상 사실 일 필요는 없습니다. 예를 들어 동일한 구성표를 사용해보십시오에프(엑스)=엑스. 그러면 스텝 크기는 항상α그러므로 결코 줄어들지 않을 것입니다. 더 흥미롭게도에프(엑스,와이)=엑스+와이2y 좌표에서 그래디언트가 0으로 이동하지만 엑스동등 어구. 2 차법에 대한 방법론에 대해서는 Chaconne의 답변을 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.