위키득계정 ↗
기술

기울기 클리핑

기울기 클리핑기술
영문명
Gradient clipping
주요 대상
매개변수 갱신 전의 기울기
대표 방식
값 제한과 노름 제한
구분할 설정
개별 텐서와 전체 기울기
기울기 클리핑은 학습 중 계산한 기울기가 정해진 크기를 넘을 때 줄이는 방법이다. 성분별 값을 제한하거나 기울기 벡터의 노름을 제한할 수 있다. 어떤 범위의 기울기를 함께 제한하는지에 따라 결과가 달라진다.

노름을 제한하기

유한한 벡터 g와 양수 한계 c에 대해 대표적인 L2 노름 제한은 길이가 c 이하이면 그대로 두고, 초과하면 c/||g||를 곱한다. 기울기가 0이면 그대로 둔다. 같은 양의 배율로 줄이므로 0이 아닌 벡터의 방향은 유지된다.

값 제한과의 차이

g=(6,8), c=5라면 노름은 10이므로 노름 제한 뒤에는 (3,4)다. 각 성분을 -5부터 5 사이로 자르는 값 제한은 (5,5)가 된다. 후자는 길이가 √50이라 5보다 크며 방향도 달라졌다. 성분의 상한과 벡터 길이의 상한은 같은 조건이 아니다.

전체와 개별 제한

서로 다른 두 매개변수의 기울기가 각각 6과 8이면 전역 L2 노름은 10이다. 전체를 5로 제한하면 둘 다 절반으로 줄어 3과 4가 된다. 각 매개변수를 따로 길이 5로 제한하면 5와 5다. 같은 한계 숫자를 사용해도 묶는 범위에 따라 학습 경로가 달라질 수 있다.

제한의 의미

클리핑은 기울기를 바꾸는 연산이다. 단순 경사 하강법에서는 갱신량과 직접 비례하지만 모멘텀이나 적응형 상태가 있으면 최종 이동량의 상한과 같지 않다. 비정상적인 무한대나 NaN 기울기의 원인을 고치는 방법으로도 간주해서는 안 된다.

관련 문서

경사 하강법 / 모멘텀 (최적화) / Adam (최적화) / RMSprop / 인공 신경망 / Adagrad