neural network에서의 low rank approximation은 무엇이 있는가
1. filter decomposition
network의 filter를 decomposition하여 계산량을 줄이면서 decomposition하기 전의 결과에 approximation시키는 방법
depthwise separable convolution은 depthwise convolution을 수행하고 pointwise convolution을 수행하여
일반적인 convolution보다 계산량을 줄이고 원래 일반적인 convolution의 결과에 거의 approximation할 수 있다.. (같지 않나 아닌감)
2. low rank tensor approximation
이미 학습된 network의 filter가 차원이 너무 높아 계산비용이 너무 많이 드는 경우
하지만 input을 받아 output을 내는 결과는 decomposition하기 전과 최대한 비슷하게 approximation
high rank의 network weight tensor를 low rank tensor의 곱이나 합으로 분해하여
그 중에 필요없는 tensor는 버리기도 하여 진짜 필요한 부분만 가지고 와서(truncated SVD같은 경우 0인 부분은 버려서 approximation시켰죠? 기억남?)
계산비용은 최대한 줄이면서 원래 결과와 최대한 비슷하게 approximation하는 방법
linear algebra의 tensor decomposition을 활용하여 학습된 filter tensor만 가지고 decomposition하여
모델을 경량화시키는 대표적인 data-free 방법이기도 함 (분해한 모델의 성능을 볼때는 데이터가 필요하지만)
3. 구체적인 방법 예시 그림
network를 CP decomposition을 이용하여 layer의 weight를 분해할 수 있고
SVD를 활용하여 분해할 수 있고
Tucker decomposition을 수행한 다음에 CP decomposition을 수행할 수 있고
'딥러닝 > light weight modeling' 카테고리의 다른 글
hardware optimization이 일어나는 원리 locality of reference (0) | 2024.11.26 |
---|---|
lottery ticket을 찾는 방법들로 제안된 방법들 살펴보기 (0) | 2024.11.25 |
가장 좋은 augmentation을 찾기 위한 시도들 - AutoML, Rand augmentation (0) | 2024.10.01 |
hinton의 knowledge distillation이후에 발명된 knowledge distillation들 알아보기 (0) | 2024.09.26 |
knowledge distillation 자세하게 (0) | 2024.09.24 |