-
메모리, 전력을 효율적으로 사용하면서 성능을 유지하기 위해 나온 것이 Model compression
-
레이어가 더 많은 네트워크에서 적은 쪽으로 정보를 내줌(일반적으로 레이어가 많으면 성능이 좋다)
- Teacher의 정보를 활용해 Student를 학습
-
모델을 경량화
-
처음엔 teacher의 마지막 아웃풋을 student에게 전달하는 방법으로 구현했었음
-
-
위는 소프트맥스를 합은 항상 1이 되면서(확률이기 때문) T로 나누어 y값의 차이를 줄여 평평하게 만듦
- teacher의 아웃풋을 평평하게 만들어 정답값으로 쓰는 것
- teacher에서 강아지라고 100% 확인했지만 강아지의 특성 중 늑대와 비슷하거나 털이 있는 등의 특성을 사용하기 위해 T를 사용하는 것
- T의 값이 클수록 평평해짐(평평할수록 다른 특성을 더 많이 보겠다는 의미)
-
attention map
- 정보를 넘겨줄때 픽셀의 값을 모두 더해서 한장으로 만들어서 넘겨주기
- 위에서 가로세로 각 픽셀마다 C장 만큼 절대값으로 다 더해서 같은 가로세로 크기의 attention map을 만들어서 넘겨줌
- 중간중간 피처를 넘겨주는 의미
-
Factor Transfer
- teacher, student의 레이어, 피처의 크기와 개수가 다른데 teacher만의 결과를 넘겨주는것은 알맞지 않다고 생각하여 나온 방법
- 각각의 결과를 모듈을 통과시켜 크기를 중여 factor로 추출
- teacher의 결과를 압축후 다시 복원했을때 압축전과 복원 후의 결과가 비슷하면 할수록 가운데의 크기가 가장 작은 부분은 원본의 특징을 가장 잘 표현했다고 말할 수 있음
- 이것은 teacher의 결과를 잘 표현하면서 크기를 잘 줄여준것임
- student도 학습후 결과를 factor로 압축하고 teacher와 student의 factor의 차이를 줄여서 사용
-
FT의 성능
- k : 압축 작으면 압축을 더 많이 한것(압축을 많이한다는 것은 factor의 크기가 작아지는 것)
- ST는 teacher를 활용하지 않는 결과
- 일반적으로 압축을 많이하고 teacher의 정보를 활용한것이 성능이 좋음