위키득계정 ↗
기술

TernGrad

TernGrad기술
영문
Ternary Gradients
이름
TernGrad
상태
음수와 0과 양수
압축 대상
학습 중 기울기 통신
TernGrad는 기울기를 세 가지 상태와 스케일로 표현해 분산 학습의 통신량을 줄이는 방법이다. 확률적 삼진화와 층별 처리, 기울기 클리핑 등을 활용한다.

세 상태와 스케일

전송하는 기본 상태는 -1, 0, 1이지만 실제 기울기 크기를 표현하려면 스케일도 필요하다. 원래 성분의 크기에 따라 0이 아닌 상태를 선택하는 확률을 정한다. 모든 값을 단순히 부호로 바꾸는 결정적 압축과 다르다.

삼진화의 독립 예제

스케일이 2이고 한 기울기 성분이 -0.5라면 확률 0.25로 -2, 나머지 확률로 0을 택할 수 있다. 기댓값은 -0.5다. 매번 원래 값을 보내는 것은 아니며 이 예는 이미 정해진 스케일에서 한 성분만 설명한다.

층별 처리와 클리핑

큰 이상값 하나가 스케일을 키우면 작은 성분의 표현이 거칠어질 수 있다. 층별로 처리하고 기울기를 클리핑하는 구성이 이를 완화한다. 클리핑이 원래 기울기를 바꾸므로 확률 삼진화의 기댓값 보존과 클리핑 전 값의 보존을 구분해야 한다.

집계와 실제 비용

여러 삼진 값을 더하면 결과가 다시 세 값만 가지는 것은 아니다. 서버 집계와 반환에 필요한 표현도 살펴야 한다. 상태의 이론적 비트 수 외에 스케일과 메시지 비용을 포함하고, 같은 품질에 도달하는 전체 학습 시간을 비교한다.

관련 문서

QSGD / signSGD / 기울기 압축 오차 피드백 / PowerSGD / 신경망 양자화 / 경사 하강법