세 상태와 스케일
전송하는 기본 상태는 -1, 0, 1이지만 실제 기울기 크기를 표현하려면 스케일도 필요하다. 원래 성분의 크기에 따라 0이 아닌 상태를 선택하는 확률을 정한다. 모든 값을 단순히 부호로 바꾸는 결정적 압축과 다르다.
삼진화의 독립 예제
스케일이 2이고 한 기울기 성분이 -0.5라면 확률 0.25로 -2, 나머지 확률로 0을 택할 수 있다. 기댓값은 -0.5다. 매번 원래 값을 보내는 것은 아니며 이 예는 이미 정해진 스케일에서 한 성분만 설명한다.
층별 처리와 클리핑
큰 이상값 하나가 스케일을 키우면 작은 성분의 표현이 거칠어질 수 있다. 층별로 처리하고 기울기를 클리핑하는 구성이 이를 완화한다. 클리핑이 원래 기울기를 바꾸므로 확률 삼진화의 기댓값 보존과 클리핑 전 값의 보존을 구분해야 한다.
집계와 실제 비용
여러 삼진 값을 더하면 결과가 다시 세 값만 가지는 것은 아니다. 서버 집계와 반환에 필요한 표현도 살펴야 한다. 상태의 이론적 비트 수 외에 스케일과 메시지 비용을 포함하고, 같은 품질에 도달하는 전체 학습 시간을 비교한다.
관련 문서
QSGD / signSGD / 기울기 압축 오차 피드백 / PowerSGD / 신경망 양자화 / 경사 하강법