Loading...
2024. 8. 18. 22:58

network pruning이란

1. introduction  이미 학습된 network에서 중요도가 낮은 parameter를 제거하여 model의 size를 줄이고자 하는 작업  parameter의 중요도를 어떻게 정의해야 좋은지 생각해보는 것이 주요 연구 과제 weight의 L2 norm이 크면 기여도가 높은 parameter? gradient가 크면 중요도가 높은 weight? 혹은 둘을 합쳐서 평가할 수도 있고 또 다른 metric을 생각해볼 수도 있다   학습된 parameter의 일부가 제거된 모습  2. structured pruning  parameter를 그룹 단위로 pruning하는 기법들을 모두 일컫는 말   그룹이라는 것은 channel단위일수도 있고 filter 단위나 layer 단위일수도 있음  필요없는 (0에..

2024. 8. 18. 20:58

MobileNet과 network decoupling

1. overview MobileNetV1은 depthwise separable convolution을 사용해 계산량을 줄이고 MobileNetV2는 inverted Residual block을 통해 계산량을 줄이고 MobileNetV3는 MobileNetV2에 Squeeze and excite를 사용해 계산량을 줄였다고함  2. MobileNetV2 ReLU6는 min(max(x,0),6)으로 ReLU에서 상한선을 6으로 고정한 함수 MobileNet 시리즈는 ReLU함수로 ReLU6를 사용   MobileNetV1과 MobileNetV2(stride=1, stride=2 version)의 기본 구조 비교  MobileNetV1은 depthwise convolution을 수행하고 pointwise co..

2024. 8. 17. 22:18

tensor decomposition 간단한 설명

학습된 weight tensor를 더 작은 단위의 vector나 tensor의 곱이나 합의 조합으로 근사적으로 표현하는 것 저장해야하는 weight가 줄어들어 computation이 줄어드는 효과  1. CP decomposition  rank one tensor의 P개의 linear combination으로 주어진 tensor를 decomposition할 수 있다는 것    convolution weight tensor x를 vector a,b,c의 outer product(=rank one tensor)의 linear combination(summation)으로 근사적으로 분해함 실제 network에 활용할 때는 일반적으로 full convolution이 image에 filter tensor를 con..

2024. 8. 16. 22:40

network compiling 간단하게

1. motivation  학습이 완료된 network를 deploy하려는 target hardware에 inference가 가능하도록 compile하는 작업  최적화 기법도 동반되어 사실상 속도에 가장 큰 영향을 미치는 작업 그러나 가장 복잡하면서 내용이 상당히 어려움 유명 제조사들에서 compile library를 제공함 NVIDIA의 TensorRT는 NVIDIA GPU에 최적화시켜 compile을 수행 Tensorflow의 Tflite는 여러 embedded device에 성능을 보장해줌 apache의 TVM은 Tflite와 비슷한 기능들을 제공?  2. 문제점  compile library마다, 적용하는 모델마다 성능에 차이가 있음    기본적으로 compile을 수행하면 inference 속도..

2024. 8. 16. 20:24

network quantization 간단하게

1. motivation 일반적으로 float32로 network 연산과정이 표현되나 그것보다 작은 크기의 데이터 타입인 float16 half precision이나 int8 fixed point로 mapping하여 연산을 수행하는 것  2. 예시   1번처럼 float32의 matrix들을 int8로 quantization mapping하여 표현을함 matrix를 계산한 결과가 2번임 2번을 다시 float32로 dequantization하면 3번이 됨 실제 quantization하지 않고 계산한 4번과 비교하면 어느정도 오차가 있는데 이것을 quantization error라고 부름 경험적으로 quantization error에 대해 robust하게 network가 잘 작동한다는 사실이 알려져서 보편..

2024. 8. 15. 20:27

knowledge distillation 간단하게

이미 학습된 큰 규모의 teacher network가 있다면 작은 student network 학습시 teacher network의 지식을 전달하여 학습을 시키자.  1. 일반적인 방법 주어진 input x를 pretrained teacher model과 student model에 넣어서 output을 낸다 teacher model의 경우 softmax(T=t)를 사용하여 soft label을 내놓고 student model은 softmax(T=1)의 hard label과 softmax(T=t)의 soft label을 모두 내놓는다   A부분에서는 student model의 hard prediction을 이용하여 ground truth와의 cross entropy를 이용한 일반적인 training이 이루..