1. 요 며칠 사이에 딥러닝 손실 함수의 극소점(minima)과 학습률에 관하여 살펴보았다. 찾아본 연구의 핵심은 근방이 넓은 (평평한) 극소점을 어떻게 찾아낼 수 있을까이다. 근방이 넓은 극소점이 그렇지 않은 것보다 왜 더 좋을까? 2. 우리가 현실에서 만날 데이터의 분포는 모델을 학습시킨 데이터셋의 분포와는 모양이 조금 다를 것이다. 우리가 찾은 손실 함수의 극소점 근방이 좁은 협곡과 같다면 현실의 노이즈가 조금만 더해져도 손실 값이 비탈을 오르며 크게 증가할 것이다. 반면에 근방이 완만한 분지와 같다면 별다른 영향이 없을 것이다. 그러므로 근방이 넓은 극소점의 가중치를 찾는 건 더 강건한 모델을, 일반화 성능이 더 좋은 모델을 찾는 일과 같다. 이를 위한 여러 방법론이 있다. 3. Cosine Annealed Warm Restart Learning Schedule 가장 많이 쓰이는 건 학습률의 스케줄을 조정하는 것이다. 흔히 Epoch이 진행될수록 학습률을 감소시키는데, 코사인 함수의 곡선 형태로 감소시키는 걸 Cosine Annealing이라고 한다. 학습률이 점차 줄면서 손실 함수의 극소점에 안착할 때쯤 다시 크게 키운다. (즉, Restart 한다.) 근방이 좁다면 탐색은 가파른 비탈을 넘어 다른 극소점을 찾아 나아갈 것이다. 반면, 근방이 넓다면 학습률을 키워도 이 완만한 분지를 빠져나가지 못할 것이다. 이렇게 학습률을 주기적으로 초기화시키면서 차츰 감소시켜 나가는 방법을 쓸 수 있다. 4. Sharpness Aware Minimization (SAM) 손실 함수를 손 볼 수도 있다. 본래의 손실 함수에 근방의 가파른 정도를 추가해주는 것이다. 이렇게 새로 정의한 손실 함수를 최소화시키면 본래의 손실을 줄이면서 근방도 완만한 가중치 값을 찾아낼 것이다. 참고로 EfficientNet에 이 SAM을 적용한 것이 현재 CIFAR-100의 SOTA이다. 5. Stochastic Weight Averaging (SWA) 재미있게도 확률적 경사 하강법(SGD)의 탐색은 극소점에 정확히 이르지 못하고 완만한 분지가 시작되는 주변부 입구에서 끝나는 경향이 있다고 한다. (위에서 말한 방법론 중 하나로) 학습률을 Restart 하면 탐색 지점은 다시 튀어올라, 흘러 내려오다가 주변부 입구 다른 언저리에 안착할 것이다. 몇 번 반복하면 안착점들은 분지의 주변부를 원을 그리며 훑게 된다. 이 안착점들의 가중치를 평균 내보자. 그러면 가중치의 평균이 분지의 정중앙, 그러니까 일반 SGD로 도달할 수 없었던 극소점을 가리키게 된다. 이것이 SWA의 핵심 아이디어로 일종의 앙상블인 셈이다. 다만, 안착점마다 가중치를 저장하고 평균 내는 일은 메모리(스토리지)를 많이 잡아먹기 때문에 실제로는 Restart 하기 전의 안착점마다 해당 가중치를 이동 평균으로 업데이트하며 저장한다. 6. 나는 리서치 사이언티스트가 아니기 때문에 야생에서(in the wild) 검증된 연구들을 좋아한다. 위에서 언급한 방법론은 현업이나 DS 컴피티션에서 자주 사용되며 모델의 일반화 성능을 끌어올린다고 증명된 것들이다. 여담이지만 2013년 노벨 물리학상 선정 이유였던 힉스 입자는 이미 50년 전 예견된 것이었다. 그만큼 학문의 이론적 토대가 강건한 것이다. 데이터 과학은 그렇지 않다. 19세기 생화학의 지식처럼 여전히 끊어 오르는 멜팅 팟이다. 내가 읽은 서적의 1판은 묻지도 따지지도 말고 옵티마이저로 Adam을 쓰라고 했다. 2판에서는 일반화 성능에 문제가 있으니 사용을 지양하라고 명시했다. 3판은 또 어떻게 변할지 모른다. 적어도 이 분야에서 일하는 사람은 (낭만적으로 말하면) 벨 에포크 시대를 살고 있는 셈이다. 7. References Stochastic Gradient Descent with Warm Restarts (2016) Averaging Weights Leads to Wider Optima and Better Generalization (2018) Sharpness-Aware Minimization for Efficiently Improving Generalization (2020)

2021년 11월 11일 오전 10:00

댓글 0