기본 bottleneck inverted residual block구조
기본 bottleneck 블록은 많은 채널에서 줄였다가 다시 많은 채널로 돌아오지만
이 경우는 적은 채널에서 늘렸다가 다시 적은 채널로 돌아옴
채널 키우고, 뎁스와이즈 컨브후, 다시 채널 줄임.
오리지날 레즈넷의 bottleneck
Squeeze and excitation은
기본적으로 채널 attention을 위한 구조고
CBAM은 channel attention과 spatial attention를 직렬적으로 가져가는 구조임
모든 레즈넷 구조에서 사용할 수 있음
본론
airface는 기본적으로 mobilefacenet구조로 개량한 버전임
차이점
1. arcface를 개량한 li-arcface라는 loss를 사용함.
arcface는 cos에 m이라는 마진을 주어 일정하지 않은데 여기는 그냥 리니어 공간에서 m이라는 마진을 줌
그러면 학습이 더 잘 되고 직관적임
2. 모델을 더 두툼하게 만들고 너비도 널게 만듦(너비가 중요함)
(mobilefacenet은 mobilenet v2 대비 expansion factor를 대폭 줄이고 relu대신 prelu를 사용하는건 유지)
3. 모든 bottleneck에 CBAM을 추가 대신 마지막 activation은 sigmoid > 1+tanh 로 변경
4. fine-tune시에 li-arcface와 arcface를 잘 섞어서 사용
5. knowledge distilation 사용
6. 하이퍼파라미터
bs = 256* 4,
SGD w momentum 0.9,
lr: [0.1@0 , 0.01@18k , 0.001 @26k, 0.0001@29k],
weight decay: 5e-4 마지막 임베딩 레이어 5e-3
마진 m : 0.4~0.45