Optimization 종류
- 이제는 옛날에 비해 딥러닝에 대해 다양한 포스팅과 블로그들이 생기면서 한글로도 잘 정리된 자료들이 꽤 있다.
- optimizer은 거의 딥러닝 입문할 때 배우기 때문에 당연히 잘 정리된 자료가 있다.
- 밑의 reference을 참고하도록 하자.
- 실무적인 입장에서 optimizer을 선택하는 것을 말해보자면
- 어떤 연구를 할 때, optimizer을 랜덤으로 선택하는 것이 아니다.
- 일반적으로 기존의 연구들 중에서 공개된 코드를 본다.
- 공개된 코드를 보면 그 연구 분야에서 자주 사용하는 optimizer가 있을 것이다.
- 물론 같은 연구라도 방법론에 따라서 다른 optimizer을 사용할 수도 있을 것이다.
- 아무튼 본인이 추구하는 방향과 비슷한 연구의 optimizer을 선택한다.
- 만약 공개된 코드가 없거나 새로운 방식이라면, 일반적으로 잘 알려진 optimizer을 사용하면 된다.
- learning rate나 다른 파라미터들도 비슷하게 설정을 해주면 된다.
- 시간이 많으면 몇 개의 optimizer을 선택해서 비교하는게 좋긴 하겠지만 모델 구조만해도 실험해야할 시간이 워낙 많이 걸리기 때문에... 기존 연구를 참고하는게 좋을 것이다.
- 즉 여러 자료를 보아서 젤 좋아보이는 optimizer가 있을지라도 실제 내가 실험하는 task에 따라 다른 optimizer을 써야할 경우가 있다.
- 위의 그림만 보면 Adam이 젤 좋아보이긴 하다.
- 예를들면) 최근 BERT 계열의 큰 모델 학습할 때, xxxxlarge(엄청 큰) batch를 사용해야 하는 경우가 있는데 이럴때에 맞는 optimizer이 따로 있는 것처럼.
Reference
댓글
댓글 쓰기