1. 개요[편집]
가중치 감쇠(weight decay)는 학습의 매 갱신 단계마다 파라미터를 일정 비율만큼 원점 쪽으로 직접 끌어당기는 정규화 기법으로, 갱신식에 항 하나를 더하는 것이 전부다.
손실 이 시키는 대로 움직이되, 매번 가중치를 배로 줄인다. 아무 학습 신호가 없으면 가중치는 지수적으로 0으로 붕괴하고, 학습 신호가 그 붕괴를 이겨낼 만큼 강한 방향에만 크기가 남는다. “쓸모를 증명하지 못한 파라미터는 조용히 사라진다” 는 것이 이 기법의 철학이다.1
이름은 딥러닝에서 붙었지만 실체는 훨씬 오래됐다. 선형 모형에 얹으면 능형회귀이고, 연산자 방정식에 얹으면 티호노프 정규화이며, 베이즈로 읽으면 가우스 사전분포 아래의 MAP 추정이다. 즉 심위키 관점에서 가중치 감쇠는 새 개념이 아니라 역문제 정규화가 학습률이라는 옷을 갈아입고 나타난 것이다. 그런데 그 옷 때문에 미묘한 사고가 하나 생겼고, 그것이 이 문서의 절반을 차지한다.
2. L2 정규화와 같은가 — SGD에서는 그렇다[편집]
교과서는 보통 손실에 벌점을 더하는 쪽으로 가르친다.
이것이 L2 정규화다. 기울기를 취하면 이고, 순수 확률적 경사하강법 갱신에 넣으면
가 되어 개요의 식과 정확히 일치한다(). 그래서 오랫동안 두 이름은 같은 것의 두 표기로 통했다. 다만 이 등가에는 조건이 붙어 있다는 점을 기억해야 한다.
- 스텝 크기에 묶여 있다. 실제 감쇠량은 이라, 학습률 스케줄로 를 10배 줄이면 정규화 세기도 10배 줄어든다. 두 하이퍼파라미터가 곱으로만 등장하므로 격자 탐색에서 서로 얽힌다.
- 모멘텀이 끼면 어긋난다. L2 항 는 모멘텀 버퍼를 통과하며 지연·평활되지만 직접 감쇠는 즉시 적용된다. 실무적 차이는 작지만 원리적으로 같은 식이 아니다.
- 적응형 옵티마이저에서는 완전히 다른 물건이 된다. 이게 진짜 문제다.
3. Adam에서 깨지는 이유와 AdamW[편집]
Adam은 좌표별로 기울기 2차 모멘트 의 제곱근으로 나눠 스텝을 정규화한다. L2 정규화를 쓰면 감쇠항 도 그 나눗셈을 함께 통과한다.
여기서 각 좌표의 실효 감쇠율이 로 좌표마다 달라진다. 방향을 뒤집어 읽으면 이렇다 — 기울기가 크게 요동쳐 온 파라미터일수록 덜 감쇠되고, 조용했던 파라미터일수록 세게 깎인다. 정규화의 의도가 “크게 자란 가중치를 억제한다”였다면 이건 정반대에 가깝다. 게다가 는 학습 중에 계속 변하므로 정규화 세기가 스스로 표류한다.
로슈칠로프와 후터(Loshchilov & Hutter)가 2017년 초고(정식 발표는 ICLR 2019)에서 내놓은 처방이 AdamW이며, 발상은 “감쇠를 손실에서 떼어내 갱신식에 직접 쓴다”는 것 하나뿐이다.
이것을 분리형 가중치 감쇠(decoupled weight decay)라 부른다. 감쇠가 를 안 거치므로 모든 좌표에 같은 비율로 적용되고, 와 의 최적값이 거의 독립이 되어 격자 탐색이 두 축으로 깔끔히 분리된다. 논문에서 실제로 보고한 성과도 “성능이 올랐다”보다 “하이퍼파라미터 지형이 축에 정렬된 타원이 되어 튜닝이 쉬워졌다” 쪽에 가깝다. 지금은 트랜스포머 계열 사전학습의 사실상 기본 옵티마이저다.
실무에서 반드시 새길 점 하나. weight_decay 라는 같은 이름의 인자가 프레임워크·옵티마이저마다 다른 식을 가리킨다. SGD 쪽 구현은 대개 L2 결합형(기울기에 를 더함)이고 AdamW는 분리형이다. 결합형에서 튜닝한 를 분리형에 그대로 옮기면 실효 세기가 배만큼 어긋난다. 논문 재현이 안 될 때 의외로 자주 나오는 범인이다.2
4. 베이즈로 읽기 — 가우스 사전분포와 MAP[편집]
가중치 감쇠가 왜 하필 인지는 확률로 보면 즉답이 나온다. 사후분포를 최대화하는 MAP 추정은
인데, 사전분포를 로 두면 다. 관측 잡음이 인 가우스 우도와 합치면 정확히 L2 정규화된 최소자승이 되고, 정규화 계수는
로 잡음 분산 대 사전 분산의 비다. “데이터가 시끄러울수록, 파라미터가 클 리 없다고 믿을수록 세게 정규화한다”는 상식이 식으로 확인된다. 라플라스 사전분포로 바꾸면 벌점, 즉 라쏘가 된다.
선형 모형에서는 여기서 닫힌 해까지 나온다. 이고, 특이값 분해로 보면 각 성분이 필터인자 로 눌린다 — 큰 특이값 방향은 살고 작은 특이값 방향(잡음이 증폭되는 방향)은 죽는다. 이 필터 그림과 선택법(L-곡선, 불일치 원리, 교차검증)은 티호노프 정규화와 능형회귀 문서가 상세히 다루므로 여기서 반복하지 않는다.
CAE 쪽으로 옮기면 이 등가가 왜 중요한지가 분명해진다. 실험 데이터로 재료 물성이나 경계조건을 역추정하는 문제, 칼만 필터류의 상태 추정, 대리모델 회귀 — 전부 조건수가 큰 악조건 문제이고, 거기서 해를 안정화하는 장치가 정확히 이 항이다. 딥러닝이 새로 발명한 것이 아니라 역문제 동네에서 반세기 쓰던 도구를 가져다 쓴 것이다.
5. 정규화층이 있으면 이야기가 달라진다[편집]
여기가 현대 신경망에서 가장 오해가 많은 지점이다. 배치 정규화나 층 정규화 바로 앞에 있는 가중치 는 스케일 불변이다. 를 배 해도 정규화 출력이 그대로이므로
가 성립한다(뒤의 것은 오일러 정리). 손실이 의 방향에만 의존하므로, 가중치 노름을 줄이는 것은 복잡도를 억제하는 일이 전혀 아니다. 그럼 무엇을 하는가?
기울기가 와 직교하므로 노름의 갱신은 피타고라스로 정리된다.
감쇠는 노름을 줄이고 기울기는 노름을 키우니 평형점이 존재한다. 임을 넣고 정상상태를 풀면
가 나온다. 결론이 강렬하다. 정규화층 앞 가중치에서 가중치 감쇠는 정규화 장치가 아니라 학습률 조절 장치다. 그리고 방향 공간에서 실제로 움직이는 보폭 는 와 에 따로 의존하지 않고 곱 에만 의존한다. 학습률을 반으로 줄이고 감쇠를 두 배로 올리면 학습 궤적이 거의 그대로인 현상이 여기서 나오며, 이 곱을 “내재 학습률”이라 부르며 분석하는 계열의 연구가 2017년 이후 쌓였다.
실무 규칙 몇 개가 이 그림에서 자연스럽게 따라온다.
- 편향과 정규화층 파라미터()에는 감쇠를 걸지 않는다. 스케일 불변성 논리가 적용되지 않는 데다, 를 0으로 끌면 그 층을 통째로 죽이는 짓이다. 대부분의 레시피가 이들을 감쇠 대상에서 제외한다.
- 감쇠를 껐는데 발산했다면 정규화가 아니라 유효 학습률을 잃은 것일 수 있다. 노름이 서서히 자라 가 0으로 수렴하면 학습이 조용히 멈춘다.
- 스케일 불변이 아닌 층(마지막 분류기, 임베딩)에는 고전적 의미의 정규화가 그대로 작동한다. 즉 한 모형 안에서 같은 가 층마다 전혀 다른 일을 한다.
6. 무엇이 아닌가[편집]
- 가중치 감쇠는 노름 제약이 아니다. 를 강제하는 것이 아니라 벌점을 얹을 뿐이라, 데이터가 세게 밀면 노름은 얼마든지 커진다. 라그랑주 쌍대 관점에서 대응하는 가 있지만 그 값은 사전에 모른다.
- 감쇠가 곧 일반화 향상은 아니다. 파라미터 수가 데이터 수를 압도하는 영역에서는 명시적 정규화 없이도 잘 일반화되는 현상(암묵적 정규화, 이중 하강)이 관측된다. 이 논쟁은 과적합·심층 학습 문서에 정리돼 있다.
- 희소성을 만들지 않는다. 벌점의 해는 계수를 0 근처로 밀 뿐 정확히 0으로 만들지 않는다. 가중치를 실제로 잘라내려면 라쏘나 신경망 가지치기가 필요하다.
- 다른 정규화 수단과 역할이 겹치되 같지는 않다. 드롭아웃은 적응적 로 해석되는 면이 있고, 조기 종료는 최소자승 문제에서 능형회귀와 근사적으로 대응하는 것이 알려져 있다. 셋 다 켜 놓고 하나씩 끄면서 어느 것이 일하고 있는지 확인하는 것이 실무의 정석이다.
전형적인 값 감각만 적어 두면, 영상 분류의 SGD+모멘텀 레시피에서 결합형 , 트랜스포머 사전학습의 AdamW에서 분리형 이 흔한 출발점이다. 물론 이 숫자들은 배치 크기·스케줄·모델 폭과 얽혀 있어서, 남의 설정을 그대로 베낄 때는 무엇이 함께 따라와야 하는지까지 베껴야 한다. 물리 정보 신경망처럼 손실 자체가 물리 잔차인 경우에는 특히 조심해야 한다 — 거기서 가중치 감쇠를 세게 걸면 “데이터에 과적합하지 않게” 하는 게 아니라 지배 방정식을 덜 만족하게 만드는 수가 있다.3
7. 관련 문서[편집]
- 능형회귀 · 티호노프 정규화 · 라쏘 · 역문제
- 확률적 경사하강법 · 경사하강법 · 학습률 스케줄
- 배치 정규화 · 층 정규화 · 드롭아웃 · 조기 종료
- 과적합 · 심층 학습 · 신경망 가지치기
- 특이값 분해 · 조건수 · 교차검증 · 물리 정보 신경망
8. Footnotes[편집]
-
신경망 맥락의 원조는 핸슨과 프랫(1988), 그리고 “단순한 가중치 감쇠가 일반화를 개선할 수 있다”는 제목을 그대로 결론으로 쓴 크로그와 헤르츠(1992)로 거슬러 올라간다. 30년 뒤에 같은 항이 이름만 바꿔 달고 거대 언어모형 설정 파일에 그대로 들어앉아 있는 것을 보면, 좋은 정규화는 늙지 않는다는 생각이 든다. ↩
-
더 사악한 변형도 있다. 대부분의 분리형 구현은 감쇠항에도 스케줄 배수를 곱하기 때문에, 코사인 스케줄로 가 0에 가까워지면 감쇠도 함께 꺼진다. “학습 막판에 노름이 갑자기 늘어나는데요?”의 답이 여기 있다. 이걸 원치 않으면 스케줄과 무관한 상수 감쇠를 따로 구현해야 하고, 그러면 또 재현이 안 된다. 정규화 하나 걸었을 뿐인데 인생이 복잡해진다. ↩
-
같은 이유로 정규화층이 없는 소형 완전연결망(전형적인 PINN 구조)에서는 앞 절의 스케일 불변성 논리도 성립하지 않는다. 즉 PINN의 가중치 감쇠는 고전적 의미의 정규화로 작동하며, 잔차 손실과 경계조건 손실 사이의 가중치 문제와 뒤엉킨다. 하이퍼파라미터가 세 개인데 셋 다 서로를 잡아먹는 상황이라, 이 바닥의 튜닝 로그가 유독 처참한 데는 이유가 있다. ↩