위키득계정 ↗
기술

딥 컴프레션

딥 컴프레션기술
영문명
Deep Compression
첫 단계
가중치 연결 제거 후 재학습
둘째 단계
공유 가중치 대표값의 학습
셋째 단계
허프먼 부호화로 저장량 감소
딥 컴프레션은 신경망의 연결 제거, 학습 가능한 가중치 양자화, 허프먼 부호화를 결합한 모형 압축 방법이다. 남길 연결의 수와 각 연결을 나타내는 값의 종류, 저장 부호의 길이를 단계별로 줄인다.

연결을 줄이고 다시 학습하기

먼저 학습한 신경망에서 작은 가중치의 연결을 제거하고 남은 연결을 재학습한다. 이때 희소 구조를 저장하려면 값뿐 아니라 위치 정보도 필요하다. 제거 비율과 파일 크기 감소 비율이 반드시 같은 것은 아니다. 연결 수를 줄이는 작업과 각 값을 적은 비트로 나타내는 작업은 따로 구별한다.

대표값을 공유하는 계산

가중치를 묶어 같은 대표값을 참조하게 하고 대표값 자체도 학습으로 조정한다. 예를 들어 32비트 가중치 100개를 8개 대표값과 3비트 인덱스로 나타내면 값 부분은 3200비트에서 8×32+100×3=556비트가 된다. 이 자체 예제에서는 약 5.76배이며 위치 정보나 정렬 비용은 제외했다. 실제 모형 저장량을 계산할 때는 이 추가 비용을 포함해야 한다.

부호화가 더 줄이는 부분

공유값의 인덱스나 희소 위치 차이의 발생 빈도가 고르지 않으면 자주 나타나는 기호에 짧은 허프먼 부호를 줄 수 있다. 이 단계는 앞서 정해진 기호열을 손실 없이 표현한다. 앞 단계의 연결 제거와 양자화가 모형의 함수를 바꿀 수 있다는 사실까지 손실 없다고 바꾸지는 않는다.

압축 파일과 실행 모형

저장된 크기가 작아져도 해당 표현을 효율적으로 읽고 계산하는 실행기가 필요하다. 복호화와 인덱스 접근 비용, 희소 커널 지원에 따라 속도 효과가 달라진다. 정확도를 유지한 특정 실험 결과를 모든 모형의 보장으로 일반화하지 않으며 압축률과 실제 지연, 메모리 사용을 함께 확인한다.

관련 문서

신경망 양자화 / 허프먼 부호화 / 희소 행렬 / 지식 증류 / 신경망 / 복권 가설