딥 러닝 용 Adam 최적화 프로그램에 바이어스 보정 용어를 포함시키는 것이 중요한 이유는 무엇입니까?


15

저는 Deep Learning 의 Adam 최적화 프로그램에 대해 읽었으며 Begnio, Goodfellow 및 Courtville 의 새 책 Deep Learning 에서 다음 문장을 보았습니다.

Adam은 원점에서의 초기화를 설명하기 위해 1 차 모멘트 (모멘텀 항) 및 (비 중심) 2 차 모멘트의 추정치에 대한 바이어스 보정을 포함합니다.

이러한 바이어스 보정 항을 포함하는 주된 이유는 및 의 초기화 바이어스를 제거하기 때문 입니다.mt=0vt=0

  • 나는 그것이 무엇을 의미하는지 100 % 확신하지 못하지만 아마도 그것은 첫 번째와 두 번째 순간이 0에서 시작하고 어떻게 든 제로에서 시작하여 훈련을 위해 불공평하거나 유용한 방법으로 0에 가까운 값을 의미한다는 것을 의미합니다 ?
  • 나는 그것이 조금 더 정확하게 무엇을 의미하는지 그리고 그것이 학습에 어떤 영향을 미치는지 알고 싶습니다. 특히 옵티마이 저의 바이어스를 해제하면 최적화 측면에서 어떤 이점이 있습니까?
  • 이것이 딥 러닝 모델을 훈련시키는 데 어떻게 도움이됩니까?
  • 또한 편견이 없을 때의 의미는 무엇입니까? 나는 편향되지 않은 표준 편차가 무엇을 의미하는지 잘 알고 있지만이 맥락에서 그것이 무엇을 의미하는지 명확하지 않습니다.
  • 편향 보정이 실제로 큰 문제입니까 아니면 Adam 옵티 마이저 논문에 과장된 것입니까?

사람들은 내가 원래의 논문을 이해하기 위해 열심히 노력했지만 원래의 논문을 읽고 다시 읽는 것에서 거의 얻지 못했다는 것을 알고 있습니다. 나는이 질문 중 일부가 거기에 대답 될 수 있다고 생각하지만 대답을 파싱 할 수없는 것 같습니다.


2
링크 : arxiv.org/pdf/1412.6980v8.pdf 1 차 및 2 차 모멘트 구배 추정값은 이동 평균을 통해 업데이트되고 두 estimat4가 모두 0으로 시작되므로 실제 값이 0이 아닌 초기 값은 결과를 바이어스합니다 초기 추정치 0은 점차적으로 소멸되기 때문입니다. 내가 이해하지 못하는 것은 초기 시점의 그라디언트가 이러한 것들의 초기 값에 사용되지 않은 다음 첫 번째 매개 변수 업데이트에 사용되는 이유입니다. 그런 다음 취소해야 할 초기 0 값에 의한 오염이 없으므로 바이어스 보정이 필요하지 않습니다.
Mark L. Stone

1
따라서 초기 반복에 대한 특수 코드가 아닌 저자는 편견이 무엇인지 소개 한 다음 실행 취소하여 수학적으로 동등한 작업을 수행하기로 결정한 것으로 보입니다. 이렇게하면 모든 반복에 대해 불필요한 계산이 빠르지 만 빠릅니다. 이 작업을 수행하면서 모든 반복에서 동일하게 보이는 순수한 코드를 유지했습니다. 방금 첫 번째 그라디언트 평가로 시작했으며 그라디언트 모멘트 업데이트 수식이 두 번째 반복에서만 시작되도록했습니다.
Mark L. Stone

@ MarkL.Stone 저자들은 너무 편향 보정을 강조하여 논문에서 새롭거나 중요했던 것 같습니다. 그래서 그들은 단지 "바이어스를 교정"할 수 없었고 동일한 알고리즘을 가질 수 있었습니까? 그것이 사실이라면 나는 왜 adam이 중요한 옵티 마이저인지 또는 큰 문제인지 알 수 없습니다. 나는 항상 그것이 편향 보정이라고 생각했습니다.
Charlie Parker

4
그들은 편견을 도입 한 다음 나에게 명백한 이유없이 교정합니다. 그것은 2를 곱한 것과 같습니다 (오, 결과는 편향됩니다). 바이어스 도입 및 제거와 관련된 모든 것은 불필요한 사이드 쇼처럼 보입니다. 어쩌면 종이가 길지 않아서 충분히 길지 않았기 때문에 그들은 더 오래 만들기 위해이 필을 추가했습니다. 저자들이 여기 와서 설명 해주길 바랍니다. 어쩌면 나는 미묘한 점이 누락되었거나 무언가를 오해하고 있습니다.
Mark L. Stone

답변:


17


논문에 따르면 편견을 교정하지 않는 문제

드문 드문 기울기의 경우, 두 번째 모멘트의 안정적인 추정을 위해서는 작은 값의 β2를 선택하여 많은 기울기에서 평균을 구해야합니다. 그러나 초기 바이어스 보정의 부족이 훨씬 더 큰 초기 단계를 초래할 수있는 작은 β2의 경우이다.

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

일반적으로 는 보다 1에 훨씬 가깝게 설정 (작성자가 , ) 업데이트 계수 은 보다 훨씬 작습니다. .β2β1β2=0.999β1=0.91β2=0.0011β1=0.1

, 훈련의 첫 번째 단계 에서, 바이어스 추정을 직접 사용하는 경우 매개 변수 업데이트 의 항이 매우 클 수 있습니다.m1=0.1gtv1=0.001gt2m1/(v1+ϵ)

한편, 편향 보정 추정을 사용할 때 및 , 용어는 및 덜 민감 해 .m1^=g1v1^=g12mt^/(vt^+ϵ)β1β2

편향 보정 방법
알고리즘은 이동 평균을 사용하여 첫 번째와 두 번째 모멘트를 추정합니다. 치우친 추정은 임의의 추측 에서 시작 하여 점진적으로 추정을 업데이트하는 입니다. 따라서 처음 몇 단계에서 이동 평균이 초기 쪽으로 크게 편향되어 있음이 분명합니다 .m0mt=βmt1+(1β)gtm0

이를 수정하기 위해 이동 평균에서 초기 추측 (바이어스)의 영향을 제거 할 수 있습니다. 예를 들어 시간 1, 에서 에서 항을 꺼내고 이를 로 나누면 . 경우 , . 완전한 증거는 논문의 섹션 3에 나와 있습니다.m1=βm0+(1β)gtβm0m1(1β)m1^=(m1βm0)/(1β)m0=0mt^=mt/(1βt)


Mark L. Stone이 잘 언급했듯이

그것은 2를 곱한 것과 같습니다 (오, 결과는 편향됩니다).

어떻게 든 이것은 정확히

초기 점에서의 그라디언트는 이러한 것들의 초기 값에 사용 된 다음 첫 번째 매개 변수 업데이트에 사용됩니다

(물론 업데이트 규칙을 변경하여 동일한 형식으로 바꿀 수 있습니다 (답변 업데이트 참조).이 줄은 주로 편견을 도입 할 필요가 없다는 것을 보여 주지만 차이를 주목할 가치가 있다고 생각합니다)

예를 들어, 시간 2에서 수정 된 첫 번째 순간

m2^=β(1β)g1+(1β)g21β2=βg1+g2β+1

동일한 업데이트 규칙을 사용하여 을 초기 값으로 사용하는 경우 는 처음 몇 단계에서 쪽으로 편향됩니다 .g1

m2=βg1+(1β)g2
g1

편향 보정은 실제로 큰 문제입니다.
실제로 훈련의 처음 몇 단계에만 영향을 미치기 때문에 많은 인기있는 프레임 워크 (예 : keras , caffe )에서는 편향된 추정치 만 구현 되는 것이 큰 문제가 아닌 것 같습니다 .

내 경험에 따르면 편견 추정은 때때로 손실이 줄어들지 않는 바람직하지 않은 상황으로 이어집니다 (나는 그것을 철저히 테스트하지 않았으므로 이것이 편견 추정인지 또는 다른 것이 원인인지 정확하게 확신하지 못합니다) 및 트릭 내가 사용 하는 초기 단계 크기를 조정하기 위해 더 큰 을 사용하고 있습니다.ϵ

업데이트
재귀 업데이트 규칙을 기본적으로 는 그라디언트의 가중 평균입니다. 분모는 기하 합계 공식으로 계산할 수 있으므로 다음 업데이트와 같습니다. 규칙 (바이어스 용어를 포함하지 않음) m^t

m^t=βt1g1+βt2g2+...+gtβt1+βt2+...+1

m1g1
수행하면서 수렴하지 (가중치 합) (가중 평균)
mtβmt+gt
m^t(1β)mt1βt

따라서 바이어스 용어를 도입하고 수정하지 않고도 수행 할 수 있습니다. 다른 알고리즘 (예 : RmsProp)과 비교할 때 편의상이 논문이 편향 보정 형식으로되어 있다고 생각합니다.


1
질문에 대한 두 번째 의견에 동의하십니까? 나에게 그것은 결론이다. 2를 곱하고 나누는 것에 대한 것은 단지 문제에 사용 된 수학이 아니라 "이해하기 쉬운"유추 인 것으로 생각되었습니다. 내가 보지 않았지만 ADAM의 경우 완전히 피할 수 있지만 수정하지 않은 것처럼 보이는 동일한 메커니즘에 의한 편견을 도입 한 다른 논문이 있다면, 그것은 완전히 STUPID입니다 (어쨌든 편견이 없다면) 알고리즘 성능에 도움이 됨).
Mark L. Stone

@ MarkL.Stone 그렇습니다! 사실 나는 그것을 영어로 유감스럽게 생각했다. 그리고 바이어스를 수정하지 않은 알고리즘은 rmsprop이지만 adam rmsprop와 달리 바이어스와 잘 작동합니다.
dontloo

@dontloo는 왜 바이어스 보정이 불필요한 것처럼 보이는지에 대한 Mark L. Stone의 의견을 다루고 있습니까? (저는 원래 논문의 내용을 설명하는 것보다 훨씬 중요하다고 생각합니다).
Charlie Parker

@CharlieParker 당신은 왜 바이어스 보정이 불필요한 지 또는 저자가 왜 불필요한 지 보이게합니까?
dontloo

@dontloo 저자가 불필요하다고 생각하지 않습니다. 나는 그들이 실제로 필요하다고 생각했습니다 (특정 조건을 부여 함). 그러나 Mark의 제안이 필요하지 않다고 생각했습니다. 의견 섹션의 내 질문은 실제로 수정 용어가 필요한지 여부입니다.
Charlie Parker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.