두 모델의 Softmax Outputs KL Divergence로 distilllation loss를 계산해서 feature의 지식을 student에 전달한다.
1) Student network와 ground-truth label의 cross entropy 2) Teacher network와 Student network의 KLD loss $T$는 large teacher network의 출력을 smoothing하는 역할 $ \alpha$는 두 loss의 균형을 조절하는 파라미터
Soft output이란? hard label(groundtruth)의 경우 이미지 classfication을 예시로 두었을 때 이미지에 여러 사물이 들어있어도 groundtruth는 하나에 대한 정보만 담고 있기 때문에 그 이미지에 대한 정보를 많이 담고 있지 않다. 따라서 soft target을 적용하는 것이 groundtruth보다 더 많은 정보를 담고 있다고 말한다.
4. Matrix/Tensor Decomposition
학습된 모델이 있을 때 가중치들을 더 작은 단위의 벡터나 텐서의 곱과 합으로 표현하는 방법이다. 결국, 하나의 텐서를 작은 텐서들의 연산들의 조합(합, 곱)으로 표현하는 것을 의미한다.
수학적으론 복잡하나, 간단한 구현으로 좋은 효과를 볼 수 있다.
▮하드웨어 관점
5. Network Quantization
일반적인 float32 데이터타입의 Network의 연산과정을 그보다 작은 크기의 데이터타입으로 변환하여 연산을 수행하는 것
사이즈 감소
성능은 약간 하락
속도는 하드웨어 여부 및 라이브러리에 따라 다르지만 향상 추세
사실상 속도에 가장 큰 영향을 미치는 기법
6. Network Compiling
학습이 완료된 Network를 deploy하려는 타겟 하드웨어에서 inference가 가능하도록 compile하는 것
사실상 속도에 가장 큰 영향을 미치는 기법
e.g) TensorRT(NVIDA), TFlite(Tensorflow)
특정 연산들을 하나의 연산으로 fusion된 것으로 대체하는 방법 예를 들어 tensorflow의 경우 200개의 Rule이 정의되어 있다. 연산 과정이 줄어드니까 속도가 빨라진다고 볼 수 있다.
그러나 Framework와 하드웨어마다 지원되는 core, unit 수 등이 다르기 때문에 Layer fusion의 조합에 따라 성능 차이가 발생한다.