본문 바로가기
인공지능/논문 리뷰

AdamW 리뷰. Decoupled Weight Decay Regularization

by Project Box 2023. 7. 19.

 

서론

막연히 옵티마이저는 Adam이 가장 좋다라고 알고 있었겠지만, 사실 이는 2014년에 발표된 꽤 오래된 기술이다.

이 논문에서는 L2 reg와 weight decay reg가 SGD와 Adam에 미치는 영향을 밝힌다.

L2 방식은 Adam에서 만큼은 그다지 효과적이지 못하다는 것을 말해준다.

1. 보통 L2와 weight decay는 같은거라고 알고 있었지만, 이는 SGD에서만 그렇고.. Adam에서는 그렇지않다.

2. L2는 Adam에서 그리 효과적이지 않다. Adam같은 adaptive 옵티마이저가 SGD에 비해 보통 좋은 성능을 낸다고 생각했던 이유는 대부분 딥러닝 라이브러리에서 L2만 구현해두고, 오리지널 weight deday는 구현하지 않았기 때문이다.

3. (어찌보면 직관적이고 당연할 수 있지만) 옵티멀한 weight decay는 에폭 수에 달려있다고 한다.

4. Adam은 scheduled learning rate multiplier를 통해 더 효과적이게 된다. 이게 무슨말이냐면,, 각 파라미터마다 다르게 learning rate을 조절하여 최적화를 잘 이끌어낸다는 것이다.

 

결론

이 논문의 핵심은 Adam에서 L2와 Weight decay는 다른 개념임을 밝혔다는 것이다.

따라서 이 개념을 디커플링하여 weight decay를 Adam에 적용했을 때 훨씬 더 좋은 성능을 보여줌을 확인했다.

 

메인 메서드.. 2 DECOUPLING THE WEIGHT DECAY FROM THE GRADIENT-BASED UPDATE

 

Proposition 1. SGD에서는 L2와 weight decay가 같은 의미로 사용된다.

그러니까.. 이 녀석이 오리지널 weight decay라고 할 수 있다. 여기서 λ가 바로 하이퍼파라미터로 weight decay 강도를 조절한다.

반면에 L2는 이렇게  람다프라임이라는 하이퍼파라미터와 함께.. 그레디언트를 뻥튀기 시키는 역할을 한다.

 

Proposition 2 (Weight decay 6= L2 reg for adaptive gradients).

Adam같은 adaptive한 옵티마이저에서는 weight decay와 L2의 개념이 동일하지 않다.

이게 오리지널 adam의 weight update 방식이고..
마찬가지로 L2를 적용해보면
이렇게 나온다.

 

이와 같이 M_t가 단위행렬이 아닌 이상 weight decay와 L2의 역할은 다르게 될 것이며,

Adam에 단순 L2를 도입하게 되면 M_t 앞에 a때문에 의도치 않은 weight decay가 들어가게 된다. 즉.. 현재는 둘이 커플링된 상태로 일반화 능력을 떨어뜨리게 된다.

 

Proposition 3 (Weight decay = scale-adjusted L2 reg for adaptive gradient algorithm with fixed preconditioner)

따라서, 위처럼 weight decay와 L2를 분리하여 적용한다.

 

실험

이렇게 디커플링된 weight decay를 적용한 AdamW (아래 행)이 일반 L2가 적용된 Adam(위 행)보다 더 좋은 일반화 능력을 보이고 있다. 즉.. 디커플링함으로써 각자 할 일에 방해를 하지 않게 하니까 더 좋은 성능을 보이더라라고 말할 수 있을 것 같다.

 

---

여기서 정리용 질문 3가지..

1. AdamW가 제안하는 weight decay는 어떤 방식으로 Adam을 개선할까?

2. L2와 weight decay가 SGD에서는 같은 의미지만, Adam같은 옵티마이저에서는 다른 의미인 이유가 무엇일까?

3. 디커플링된 weight decay가 다양한 learning rate에 대해 어떤 효과를 보이고, 왜 이렇게 되는걸까?

'인공지능 > 논문 리뷰' 카테고리의 다른 글

GraphSAIL 논문 리뷰  (0) 2022.11.23