Markdown 수식추가 Markdown 추가 네이버 스크립트 구글 스크립트

VarGFaceNet: An Efficient Variable Group convolutional Neural Network for Lightweight Face Recognition

M. Yan M. Zhao Z. Xu Q. Zhang G. Wang Z. Su

Abstract

본 저자들은 VarGFaceNet이라고 불리는 효율적인 variable group CNN을 제안한다. parameter와 cost를 줄이는데 집중을 했다. 특히, 특정한 설정이 필요한데, 네트워크의 입력단인 head와 fully-connected layer에서 특정 embedding stting이 필요하다. 저자들은 재귀적인 knowledge distillation을 사용했으며, teacher와 student 사이의 차이를 없애는 방향으로 접근하였다. 2019년 LFR deepglintlight에서 1등을 했다고 한다. github: https://github.com/zma-c137/VarGFaceNet

1. Introduction

얼굴 인식 분야에서 계산량을 줄이는 많은 논문들이 있지만, 여전히 제한적이다. SqueezeNet, MobileNet, ShuffleNet과 같이 $1\times1$ convolution을 사용해 사용량을 줄인 것들이 있다. MobileNet v1의 경우 depthwise separable convolution을 사용했으며, 그에 기초해 MobileNet v2는 반전된 bottlenect 구조로 네트워크의 분별능력을 강화했다. ShuffleNet 종류는 pointwise group convolution과 channel shuffle operation을 통해 계산량을 줄였다. VarGNet은 variable group convolution을 통해 블럭당 불균등한 계산량을 해결했다. 특히, 같은 kernel 크기에서 depthwise convolution보다 더 많이 수용할 수 있다. 그러나 VarGNet은 얼굴인식에는 적합하지않는데, 네트워크 시작단에서 공간영역을 반으로 줄이는 특성 때문이다. 얼굴 인식은 얼굴 이미지의 자세한 정보가 중요하다. 또한, average pooling layer가 마지막 conv와 fc layer 사이에만 있어, 충분한 분별 정보를 추출할 수 없다.

VarGNet을 기반으로 제안하는 VarGFaceNet이다. VarGNet과는 다르게 추가한 부분들이 있다. 1) SE block과 PReLU를 추가함 2) 더 많은 정보를 보존하기위해 네트워크 시작 부분의 downsample process 제거 3) embedding 때, fclayer 전에 $1 \times 1 \times 512$에 variable group convolution 적용.

네트워크의 해석 능력을 강화시키기위해 학습하는 동안 Knowledge distillation을 적용했다. 더 작고 효율적인 네트워크를 위해 pruning, quantization 등이 있는데, knowledge distillation의 경우 모델 변경이 자유로워 선택했다. Hinton 11은 knowldege distillation 개념에 대해서 소개했으며, FitNet은 feature distillation 아이디어를 채택하여 student network가 teacher network의 hidden feature를 따라할 수 있도록 했다. 그 후로, transferring the fature activation map 10과 activation-based and gradient-based Attention Maps 25 이 시도되었다.최근에는 ShrinkTeaNet 6은 angular distillation loss로 teacher model의 angular information에 집중했다. 게다가, teacher model과 student model 사이의 차이에 의해 발생하는 optimization의 복잡성을 해결하기위해 다음 세대를 위해 pretrained model을 한 세대에 student를 학습하는데 사용하였다.

본 논문은 LFR challenge에서 1등을 달성했으며, 좋은 성능을 보였다.

Contribution

  • VarGNet에서 다른 head setting과 새로운 embedding block을 제안했다. 새로운 embedding block은 처음에 $1 \times 1$ convolution을 통해 1024 channel로 확장하고 variable group conv와 pointwise conv를 적용했다.
  • generalization을 위해 recursive knowledge distillation을 사용함
  • variable group convolution의 효율성과 angular distillation loss와의 동일성을 분석함.

2. Approach

2.1 Variable Group convolution

Group convolution은 AlexNet부터 이어져온 기술이다. ResNext에서는 group convolution의 개수에 대해서 설명했으며, MobileNet들은 이것으로 depthwise separable convolution을 만들었다. 하지만, 계산량 대부분 (95%)을 $1\times1$에서 사용된다. 따라서, 이런 차이는 embedding 방법에는 적합하지 않는다. 따라서, VarGNet은 channel를 상수 $n_i$로 나눈 $S$를 사용한다. VarGNet의 계산량은 다음과 같다.

$$ K^2\times h_i\times w_i\times S \times c_{i+1} $$
$$ S=\frac{c_i}{n_i} $$

입력층의 $h_i \times w_i \times c_i$이며 출력층의 $h_i \times w_i \times c_{i+1}$ 이다. $k$는 kernel의 크기이다. 만약, MobileNet의 depthwise separable convolution 대신에 group convolution이 쓰인다면 pointwise convolution 같이 나온다.

$$ 1^2 \times h_1 \times w_i \times c_{i+1} \times c_{i+2} $$

variable group convolution과 pointwise convolution 사이의 계산량 비율은 $\frac{k^2S}{c_{i+2}}$이며 depthwise convolution과 pointwise convolution 사이의 비율은 $\frac{k^2}{c_{i+2}}$ 이다. 실제로 $c_{i+2}\gg k^2,\ S>1,$이므로 따라서, $\frac{k^2S}{c_{i+2}} > \frac{k^2}{c_{i+2}}$ 이다. 따라서, depthwise separable convolution 대신 pointwise convolution의 하단에 variable group convolution을 사용하면 블록 내에서 더 계산적으로 균형을 이룬다. 게다가, $S>1$은 더 많은 MAdds와 더 큰 네트워크 수용력을 나타내며, 더 많은 정보를 추출할 수 있음을 나타낸다.

2.2 Blocks of Variable Group Network

VarGNet은 normal block에서 입력 채널과 출력 채널의 수를 같게 했지만, 시작부분 block에서는 일반화 능력을 유지하기위해 C 채널 수를 2C 채널 수로 확장했다. 위의 그림 (a)과 (b)와 같이 구조를 쌓았으며, 구별능력 향상을 위해 normal block에 SE block을 추가하고 ReLU 대신 PReLU를 사용했다.

2.3 Lightweight Network for Face Recognition

2.3.1 Head setting

face recognition은 규모가 큰 문제이다. lightweight network를 유지하기 위해 $3\times3$ Conv에 stride를 1로 설정해 사용했으며 (VarGNet에 비해), 시작부분에서 downsampling이 아닌 그대로 사용했다. 그림 1의 (c)에서 확인할 수 있다.

2.3.2 Embedding setting

얼굴의 embedding을 얻기 위해서 많은 논문들이 마지막 convolution 뒤에 fc layer을 붙이는데 상대적으로 매우 큰 계산량을 차지한다. 예를들어 ReNet 100의 경우 49M에서 12.25M을 차지한다.

본 논문에서는 variable group convolution을 통해 fc layer 전에 $1\times1\times512$ feature map으로 줄어들게하였으며, fc layer에서 단지 1M만 사용한다. (그림 1의 (d)에서 확인 가능) 하지만, 이렇게 하면 feature tensor가 제한될 수 있어 마지막 conv layer 전에 늘리고 줄이는 방식을 통해 필수적인 정보는 감소되는 것을 방지하도록 했다.

1) $1\times1$ convolution을 통해 $7\times7\times320$에서 $7\times7\times1024$로 확장.

2) $7\times7$ variable group convolution을 통해 $1\times1\times7$로 줄어들게 함.

3) pointwise convolution을 통해 $1\times1\times512$로 만든다.

이렇게 새로운 embedding은 기존의 embedding인 30M에 비해 5.78M의 계산량을 가진다.

2.3.3 Overall architecture

약 20M 메모리와 1G의 FLOPs를 사용한다. 전체적인 구조는 표 1에서 확인할 수 있다.

2.4. Angular Distillation Loss

Knowledge distillation은 큰 네트워크에서 작은 네트워크로 해석 능력을 전달할 수 있다. scores/logits 또는 embeddings/feature magnitude에 L2/cross entropy를 사용한다. 하지만, 이런 것은 제한된 정보를 주거나 over-regularized 될 수 있다. 따라서, angular distillation loss라는 것을 사용해 유용한 정보를 추출하고 over-regularization을 피할 수 있다. 밑의 식은 angular knowledge distillation 이다. $F_t^i$는 i번째 teatcher, $F_s^i$는 i번째 student이다.

$$ L_\alpha(F_t^i,F_s^i)=\frac{1}{N}\sum_{i=1}^N ||1-\frac{F_t^i}{||F_t^i||}*\frac{F_s^i}{||F_s^i||}||^2_2 $$

본 논문에서는 위의 angular knowledge distillation을 구현의 편의성을 위해 변형하여 다음과 같이 사용한다.

$$ L_s(F_t^i,F_s^i)=\frac{1}{N}\sum_{i=1}^N ||\frac{F_t^i}{||F_t^i||}-\frac{F_s^i}{||F_s^i||}||^2_2 $$

또한 arcface를 차용하여 angular information에 더 지 ㅂ중한다.

$$ L_{Arc}=-\frac{1}{N}\sum_o{i=1}^N \log{\frac{e^{s(cos(\Theta_{y_i}+m))}}{e^{s(cos(\Theta_{y_i}+m))}+\sum_{j=1,j\neq y_i}^n e^{s\cos{\Theta_j}}}} $$

따라서, 최종 학습시킬 objective function은 다음과 같다.

$$ L=L_{Arc}+\alpha L_s $$

본 논문에서는 실험적으로 $\alpha=7$을 사용한다.

2.5 Recursive Knowledge Distillation

단 한 세대의 Knowledge distillation은 큰 모델과 작은 모델 사이의 간극을 때때로 매꿀 수 없을 때도 있다. 따라서, student network의 구별 능력과 일반화 능력을 향상시키기 위해 recursive knowledge distllation을 사용한다. 그리고, teacher network를 매 새대 같은 것을 사용해 지도되는 내용이 불변하도록 한다. Recursive knowldege distillation을 통해 얻는 이점은 다음과 같다.

  1. teacher로 부터 곧바로 지도를 받아 좋은 초기화를 제공할 수 있다.
  2. classification loss와 angular information 사이의 충돌을 다음 세대를 통해 해결할 수 있다.

3. Experiments

1) y2 network (deeper mobilefacenet)과 비교 2) 다른 teacher model들과 비교 3) LFR2019 Challenge에 적용한 성능

3.1 Datasets and Evaluation Metric

먼저 Training에는 LFR2019에서 제공하는 MSIM으로 모든 학습을 진행했으며, 모든 어굴 이미지는 RetinaFace로 $112\times112$로 재조정해서 사용했다. Testing에서는 Trillionpairs dataset을 사용했다. 위의 데이터 셋은 ELFW, DELFW를 포함하는 데이터셋이다. 모든 테스트 얼굴 이미지는 preprocess와 resize를 했다. 마지막으로 Evaluation은 LFW, CFP-FP 그리고 AgeDB-30을 사용했다. 또한, TPR@FPR=1e-8로 evaluation metric을 사용했다.

3.2 VarGFaceNt rain from scratch

Validation set에서 mobilefacenet (y2)와 비교한다. 표 2에서 확인할 수 있으며, 전체적으로 본 저자들이 만든 네트워크의 성능이 더 높게 나온다. 직관적으로 2가지의 나은 성능을 볼 수 있다.

  1. y2에 비해 더 많은 파라미터들을 포함하고 있으며, 마지막 conv layer에서 256에 비해 320 채널 수를 가진다.
  2. y2의 경우 256에서 512로 확장하지만, 본 논문의 네트워크는 320에서 1024로 확장한다. 따라서 더 많은 정보를 가진다.

3.3 VarGFaceNet guided by ResNet

angular distillation loss를 사용해 knowledge distillation을 했다. teacher model로는 SE block이 포함된 ResNet 100을 사용했다. 결과는 표 3에서 확인할 수 있다. 표의 결과에 따라 VarGFaceNet이 더 작은 네트워크 이지만, teacher model을 따라잡을 수 있음을 알 수 있다.

VarGFaceNet과 VarGNet을 비교했다. 여기서 VarGNet은 VarGFaceNet과 같은 head 설정을 했으며, 결과적으로 VarGFaceNet이 더 좋은 성능을 보인다. 즉, VarGFaceNet의 embedding setting이 더 적합하는 것을 알 수 있다.

3.4 Recursive Knowledge Distillation

VarGFaceNet을 recursive Knowledge Distillation으로 validation set에 사용한 결과이다. 표 5에서 확인할 수 있으며, LFW와 CFPFP는 0.1%의 상승을, deepglintlight는 0.4%의 상승을 확인할 수 있다. 저자들은 더 많은 generation을 통하면 성능을 더 증가할 것으로 생각한다.

4. Conclusion

본 VarGFaceNet으로 효율성과 성능 사이의 trade-off를 더 좋게 할 수 있음을 알게되었다. head setting과 embedding setting으로 information을 보전할 수 있으며, angular distillation loss와 recursive knowledge distillation을 통해 해석능령이 상승한 가벼운 네트워크를 만들 수 있었다.

 

Dynamic Feature Learning for Partial Face Recognition

L. He H. Li Q. Zhang Z. sun

Abstract

Partial face Recognition (PFR)은 CCTV나 모바일 환경같은 자유로운 환경에서 매운 중요한 task이다. 본 논문은 Fully Convolutional Network (FCN)과 Dynamic Feature Matching (DFM)을 조합해 PFR문제를 해결한다. sliding loss롤 FCN을 최적화 하며 intra-variantion을 줄인다.

1. Introduction

full 또는 frontal images face recognition은 쉽게 해결할 수 있는 문제이다. 하지만 , PFR은 전통적인 face recognition approaches로는 해결하기 힘든 문제들이다. 그림1과 같이 모자, 마스트 또는 스카프를 착용하거나 사람이나 건물에 가려져서 인식하기 힘들다.


존재하는 face recognition algorithm들은 고정된 입력 사이즈를 사용한다. 하지만, MRCNN 10은 얼굴과 부분 얼굴로 구역을 나눠서 feature을 추출하고 인식에 사용했다. 하지만, 중복되는 구역을 보는 계산량의 문제가 있는데, 이것은 Sliding window Matching (SWM 43)을 사용하면 줄일 수 있다. 여전히 sliding window는 필연적으로 같은 구역을 반복적으로 탐색하기 때문에 효율이 좋다고 할 수는 없다.

Dynamic Feature Matching (DFM)으로 좋은 효율성과 모호한 크기의 얼굴 이미지를 다룰 수 있다. 밑의 그림 2는 DFM의 구조에 대한 것이다.

먼저, FCN으로 spatial feature map을 galley와 probe로 부터 뽑아낸다. 추출된 feature map은 VGGFace에 사용된다. 마지막 pooling layer은 입력된 face의 크기에 상관없이 똑같은 feature extractor가 사용된다. 그 다음에, gallery feature map은 sub-feature map으로 분해된다. 마지막으로 Sparse Representation Classification (SRC)에 의해서 probe feature map과 gallery sub-feature map과의 유사도를 구한다. DFM은 MR-CNN보다 20배는 빠르다고 하며, 논문에서 제안하는 sliding loss는 추출된 feature map과 anchor의 유사도를 계산할 수 있다고 한다.

Contribution:

  1. FCN과 SRC를 조합한 DFM
  2. 전체적인 얼굴 뿐만 아니라 부분적인 얼굴도 인식가능한 DFM
  3. 더 많은 deep feature를 학습할 수 있는 sliding loss

2. Related Work

2.1 Deep Neural Networks.

CNN은 image classification, object detection 그리고 semantic segmentation을 해결할 수 있다. DeepFace 35 를 시작으로 VGGFace 26, Light CNN 39, FaceNet 32 그리고 SphereFace 16이 차례대로 등장했다. 게다가 최근에는 Spatial pyramid pooling (SPP) 8이 등장했는데, 모호한 크기의 인풋을 고정된 길이의 representation을 FCN에 제공할 수 있다.

2.2 Sparse Representation classification.

얼굴인식에 SRC를 사용한 유명한 논문은 38이며, 42, 40 등도 있다.

2.3 Partial Face Recognition.

Hu 11은 alignment 없이 SIFT descriptor representation이 가능한 방법을 제안했으며 instance-to-class (I2C)를 계산하였다. Liao 15는 alignment-free 접근 법인 multiple keypoints descriptor SRC (MKD-SRC)를 제안하였다. 본 방법은 keypoint들 사이에 변하지않는 것이 있으므로 그것을 특징으로 구별한다. Weng 37은 Robust Point Set Matching (RPSM) 방법을 사용해 SURF descriptor 그리고 LBP histogram을 적용하였다. region-based model들도 해결법으로 적용할 수 있다. 눈, 코, 얼굴의 반 그리고 눈 주위에 대한 정보를 사용하였다. 제일 최근에는 He 10 Multi-Scale Region-based CNNs (MRCNN)이 있다. 하지만 얼굴 구성과 pre-alignment가 필요하다. 따라서, 본 논문에선는 alignment-free PFR 알고리즘인 DFM을 소개하며 높은 정확도와 높은 효율성을 보인다.

3. Out Approach

3.1 Fully Convolutional Network

convolutional layer은 sliding-window 방법과 spatial 출력들을 만들어낸다. fully-connected layer는 고정된 차원 특징과 공간 좌표를 없애버린다. 따라서, 고정된 길이를 가져오는 fully-connected layer은 필요가 없다.
밑의 표1을 보면 VGGFace의 구조인데, fully-connected layer가 없다. 그 이유는 다양한 입력 사이즈에 대한 출력이 필요하며 더 견고한 feature를 뽑는데 필요가 없기 때문이다. 이처럼 모든 convolutional layer로 이루어진 구조를 Fully-convolutional network (FCN) 이라고 명명한다. FCN은 입력 크기의 제한 없이 서로 맞는 크기의 spatial feature map들을 뽑아낼 수 있다.

3.2 Dynamic Feature Matching

해당 섹션에서는 DFM에 대한 설명을 하는데, prob와 gallery에 대한 설명부터 한다.
prob: FCN에 의해서 feature map인 $p$가 나온다. 해당 $p$는 각각 너비, 높이 그리고 채널에 해당하는 $w,h,d$를 가진다.
Gallery: spatial feature map인 $g_c$는 FCN에 의해서 gallery의 $c$에서 feature 가 추출되어 나온다.

명백하게, prob와 Gallery의 차원이 불일치하면 계산을 할 수가 없다. 따라서, Gallery의 feature map인 $g_c$에서 prob의 feature map인 $p$ 만큼 sliding window로 잘라낸다. 위의 그림 2에서 보이는 것처럼 k개의 sub-feature maps은 $G_c = [g_{c_1},g_{c_2},...,g_{c_k}]$로 나타낼 수 있다. $G_c$는 probe 크기에 따라 $G_c \in \mathbb{R}^{M\times k}$이다.
정렬없이 feature matching을 위해서 $p$가 $G_c$의 선형 결합으로 표현되는 error reconstruction으로 문제를 바꿀 수 있다. 따라서, $G_c$에 관한 p의 계수를 계산할 것이다. 그리고 그 계수를 $w_c$로 표현한다. reconstruction error를 matching score로 표현할 수 있으며 최종적으로 $w_c$를 풀기위해서는 reconstruction error를 최소화 해야한다.
$$
\mathcal{L}(w_c)=||p-G_cw_c||_2^2
$$
$w_c\in \mathbb{R}^{k+1}$과 $p \in \mathbb{R}^{M+1}$이다. $w_c$를 구하기 위해 2가지 제한조건이 있는데 sparsity와 similarity 이다.

Sparse constraint는 feature vector $p$로 부터 나온 coding vector $w_c$의 sparsity를 컨트롤한다. 따라서, $w_c$는 $l_1-norm:\ ||w_c|| _1$을 사용한다.

Similarity-guided constraint.
feature $p$를 재구성한 sub-feature를 자유롭게 사용하는 재구성 프로세스에는 단점이 있다. $G_c$의 선형 조합을 위해 재구성 에러를 최소화하기 위해서 재구성 프로세스에만 집중하기 때문에 $p$와 feature vector $G_c$의 유사도를 고려하지 않는다. 즉, 재구성 에러를 최소화에 집중하기 때문에 비슷하지않은 feture vector들이 선택될 수 있다.
$p$와 $G_c$의 유사도를 계산하기위해 $l_2-norm$으로 1에 가깝게 정규화를 한다. 그러면 유사도 점수 벡터인 $p^TG_c \in \mathbb{R}^{1\times k}$는 cosine similarity measure이 된다. 이렇게 되면 유사ㅣ하면 더 많은 $g_c$가 선택되고 아니라면 제외된다. 즉, $p^TG_c$는 연관성을 보여준다. 그 후, similarity-guided constraint인 $p^TG_c W_c$가 정의된다.

최종 sparse representation formulation은 다음과 같다.
$$
L(w_c)=||p-G_cw_c||_2^2-\alpha^TG_cw_c+\beta||w_c||_1
$$
$\alpha$ 와 $\beta$는 각각 similarity-guided constraint 와 sparsity constraint을 나타낸다.
그 후에, $w_c$를 최적화 하기위해서 다음과 같이 변형한다.
$$
L(w_c)=\frac{1}{2}w_c^TG_c^Tw_c-(1+\frac{\alpha}{2})p^TG_cW_c+\frac{\beta}{2}||w_c||_1.
$$
$w_c$를 구하기 위해서 feature-sign search algorithm [14][14]를 사용하는데, $w_c$에서 Non-zero 값은 선택된 sub-feature vectors이다.
그리고 dynamic matching method를 적용해 probe와의 유사도를 검증한다.
$$
\underset{c}{min}\ r_c(p)=||p-G_cw_c||_2-\alpha^TG_cw_c.
$$
위의 수식은 reconstruction error와 weighted matching scores을 퓨전 합 한 것이다.

새로운 probe를 증명해야할 때, gallery feature map들을 다른 크기의 probe 이미지에 따라서 재분해한다. 따라서, gallery를 동적으로 사용할 수 있다. 또한, FCN의 몇며 layer들은 매우 효과적으로 output feature map 크기를 줄이기 때문에 효율성도 좋다.
논문에서는 probe의 크기가 $5\times5$이라면, $g_c$의 크기는 $7\times 7$이 되고, stride는 1 그리고 decomposition operation 인 $k=9$로 설정하면 된다고 한다.
DFM은 빠르게 feature를 뽑아낼 수 있으며, alignment-free method이며 다양한 크기의 probe로 부터 face recognition이 가능하다고 한다.

3.3 Sliding Loss

식 2에서는 FCN의 파라미터들은 고정되어있다. 따라서, 계수 $w_c$와 convolution parameters 인 $\theta$를 학습하기위해 Sliding Loss를 사용한다. 해당 Loss는 식 2를 최소화함으로써 나오는 deep feature들의 구분성을 계선하는데 사용한다.
$$
L(w_c,\theta)=y_c(||p-G_cw_c||^2_2-\alpha p^TG_cw_c)+\beta||w_c||_1.
$$
여기서 $y_c$가 1이면 $p$와 $G_c$는 같은 identity를 가지고 있는 것이며, $||p-GW||_2^2-\alpha p^TG_cw_c$를 최소화 하는 것이다. $y_c$가 -1이면 $p$와 $G_c$는 다른 identity를 가지고 있는 것이며, $-||p-GW||_2^2-\alpha p^TG_cw_c$를 최소화 하는 것이다.

3.4 Optimization.

처음에 $w_c$을 최적화하고 그 뒤에 $\theta$를 최적화 한다.
Step 1: fix $\theta$, optimize $w_c$.
reconstruction coefficients인 $w_c$를 feature-sign search algorithm을 사용해 학습시키는 것이다.
식 5를 변경한 것이다.
$$
L(w_c)=\frac{1}{2}y_cw_c^TG_c^TG_cw_c-y_c(1+\frac{\alpha}{2})p^TG_cw_c+\frac{\beta}{2}||w_c||_1,
$$

Step 2: fix $w_c$, optimize $\theta$.
FCN을 update 하면서 discrimintative feature들을 얻을 수 있다. $||p-G_cw_c||^2_2$는 $p$가 선택된 모든 sub-feature map 과의 근접함을 알 수 있다. $\alpha^TG_cw_c$는 p와 각 sub-feature map과의 거리를 줄여주는 것을 목표로 한다.
위의 2개 개념은 deep feature들의 구별성을 증가시켜 준다. 따라서, $p$와 $G_c$로 $L(\theta)$를 미분 하면
$$
\begin{cases}
& \frac{\partial L(\theta)}{\partial p}=2(p-G_cw_c)-\alpha G_cw_c \newline
& \frac{\partial L(\theta)}{\partial G_c}=-2(p-G_cw_c)w_c^T - \alpha w_c^T.
\end{cases}\
$$
$p$와 $G_c$는 같은 FCN 파라미터 $\theta$를 공유한다. 그림 3과 같이 연쇄적으로 구해진다. 그 후에 SGD로 FCN이 학습이 된다. 학습 알고리즘은 Alogorithm 1에서 볼 수 있다

본 논문에서는 통합된 프레임워크를 설명했으며, softmax loss와 비교해서 전체 얼굴에서 임의의 얼굴 이미지 사이 거리 정보를 더 잘 표현할 수 있다고 한다.

4.Experiments

Network Architecture.: VGGFace에서 non-convolutional layers들을 다 제거하고 13층의 convolutional layers을 사용하였다. 마지막 pooling layer은 feature extractor이다. 표 1에서 전체 구조를 확인 할 수 있다.

Training and testing. : 그림 4를 보면 전체적인 구조를 볼 수있다.

  • 16GB RAM, i7-4770 CPU @ 3.40GHz 장비를 사용함.
  • CASIA-WebFace dataset에서 FCN과 sliding loss를 사용함.
  • 각 랜덤 사이즈의 얼굴 이미지와 5개의 전체 얼굴 사진이 1그룹으로 2000개의 그룹이 존재한다.
  • batch는 20 $10^{-4}$의 learning rate, $\alpha=0.6, \beta=0.4$

test를 진행 할 대는, probe와 gallery를 1가지 셋으로 사용하였다. FCN으로 특징을 추출하고 식 3과 식 7을 통해 얼굴인식을 진행하였다.

Evaluation Protocol: 제한한 방법의 성능 평과를 위해 Cumulative Match Characteristic (CMC) curve 실험과 Receiver Operationg Characterisitc (ROC) curve 실험을 진행하였다.

Databases and Settings.

  • 학습에 partial-LFW를 사용하였다. LFW는 7,749명의 13,233 이미지가 포함되어 있는데, 많은 장애요소 (조명, 방해물, 각도 등)이 있따. 따라서, gallery face image는 $224\times224$로 재조정하고 probe는 전체 얼굴 이미지에서 랜덤으로 잘라서 사용한다.
  • evaluation에는 partial-YTF를 사용하였다. YTF는 1595명의 3,424개의 비디오들이 포함되어있다. gallery는 200명에 대한 200개의 얼굴 이미지로 사용했으며, probe는 임의의 크기로 전체 얼굴에서 잘라서 사용한다.
  • CASIA-NIR-Distance dataset 또한 evaluation에 사용한다. partial face image인 동시에 여러 각도와 크기 그리고 빛 상태를 가진다. 그림 5에서 확인 할 수 있다.

4.2 Experiment on LFW

4.2.1 Comparison to the State-of-the-Art

SOTA 비교를 위해 4개의 SOTA와 비교를 했다.

  • Multi-Scale Region-based CNN (MR-CNN) 10, MKDSRC-GTP 43, I2C 11 그리고 probe를 $224 \times 224$로 re-scaling한 VGGFace 이다. 본 논문에서 DFM은 $\alpha=2.1$ and $\beta=0.1$ 이다.
    표 2를 보면 DFM의 성능을 볼 수 있다. keypoint 기반의 알고리즘은, no robust하기 때문에 적절하지 않고, MR-CNN의 경우 alignment가 필요하며 CNN을 사용하지만 들인 시간만큼 성능이 나오지 않는다. 특히, 전통적인 방법으로는 임의의 크기를 가지는 얼굴 이미지들을 고정된 이미지로 조정해야한다.
    $224 \times 224$ VGGFace는 DFM보다 성능이 낮은데, 크기를 바꾸면서, 불필요한 기하학적 변형이 일어나기 때문이다. DFM은 변형없이 공간 정보를 유지한다.

    4.2.2 Face verification on LFW
  • Face verification은 얼굴 이미지 짝으로 부터 같은 사람인지 아닌지 확인하는 기술이다. 본 논문에서는 LFW의 test protocol을 사용했다. 데이터셋을 cross-validation으로 10개의 subset으로나누고 각 subset은 300개의 진짜/가짜를 이룬다. 부분 얼굴 이미지를 위해 임의의 크기로 랜덤하게 자른다.

그림6은 다양한 PFR 알고리즘에 대한 ROC curve를 나타낸다. DFM은 다른 알고리즘에 비해 제일 좋은 성능을 보이며, 0.19ㅊ초라는 획기적인 속도를 보여준다.

4.2.3 Evaluation on holistic face images and mixed partial and holistic face images

LFW에 대해 추가적인 실험을 진행햇는데, 총 3가지 그룹으로 나눠서 했다.

  1. Probe-1: 1000개의 전체 얼굴 이미지
  2. Probe-2: 500개의 전체 얼굴 이미지와 500개의 부분 얼굴 이미지
  3. Probe-3: 1000개의 부분 얼굴 이미지

표 3에서 결과를 보여주고 있다.

4.2.4 Influence of the cropped region size and the area


그림 7은 다른 크기의 얼굴 이미지에 따른 결과를 나타낸다.


그림 8은 어굴이미지의 다른 영역의 예제를 보여준다.


표 4는 그림 8의 예제를 가지고 실험한 결과를 보여준다.

위의 결과가 나오는 것은 당연하다. 잘라진 이미지는 더 적은 공간 정보를 갖고 있기 때문이다. 하지만, 눈 위로의 정보를 가질 경우, identification에 있어 좋은 성능을 보인다.

4.2.5 Parameter Analysis

similarity-guided constraint 인 $\alpha$와 sparsity constraint 인 $\beta$에 대한 실험도 진행했다. $\alpha$의 경우 0에서 4.2까지 0.3만큼 조절 했으며, $\beta$의 경우 0.1에서 1까지 0.1씩 조절했다. 그림 9는 DFM에 대한 $\alpha$와 $\beta$의 영향을 보여주면 best 는 $\alpha=2.1$과 $\beta=0.1$이다.

4.3 Partial Face Recognition on CASIA-NIR-Distance and Partial-YTF

CASIA-NIR-Distance와 Partial-YTF에 대한 성능 비교를 실험하였다. DFM, MKDSRC-GTP, RPSM, I2C, VGGFace 그리고 FaceNet에 대한 비교이다. 밑의 표 5를 보면 확인할 수 있다.

1) key-point 기반의 알고리즘은 부분 얼굴 인식에서 robust하지 못하기 떄문에 성능일 떨어지는 것으로 보인다.
2) VGGFace의 경우 고정 이미지로 변환하는 과정에 변형이 일어나 성능이 내려가는 것으로 보인다.

5. Conclusion

FCN은 모호한 입력사이즈로 부터 계산량 공유를 통해 부분적인 featur들을 생산한다. 또한 SRC를 사용해 alignment-free matching을 가능하게 했으며 FCN이 만든 feature를 잘 구별하는 DFM에 근거한 sliding loss를 제안했다.

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

Mingxing Tan Quoc V.Le

Abstract

ConvNet들은 공통적으로 고정된 자원안에서 계발되고 그 후에 더 좋은 정확도를 위해 이용가능한 자원을 사용한다. 본 논문에서는 네트워크의 깊이, 너비, 그리고 해상도를 적당히 조절하여 더 좋은 성능을 가져옴을 연구했다. 해당 요소를 'compound coefficient'라고 한다.
또한, neural architecture search 기술을 이용해 EfficientNet이라는 베이스라인을 사용했으며, 8.4배 더 작고 6.1배 더 빠른 내트워크를 만들었다. 물론, SOTA도 기록했다.

1. Introduction

Scaling을 통해 정확도를 올리는 것은 옛날부터 이어져왔다. ResNet이나 GPIpe 같은 모델들이 있다. 현재 scaling 방법에는 총 3가지 정도가 유행하는데, depth (ResNet [1][1]) , width (Wide ResNet [2][2]) 그리고 resolution (Gpipe [3][3]) 이 있다. 위의 3가지 차원을 임의로 scaling 하는 것은 지루한 tuning이 되고 그것 또한 sub-optimal accuracy와 efficiency 일 것이다.

논문에서는, ConvNet scaling 과정에 대해서 다시 생각해보고 연구했다. 주요 물음은 "더 좋은 정확도와 효율성을 달성하기 위해 ConvNet을 scaling하는 원칙에 입각한 방법이 있을까?" 이다. 고정된 비율로 각 요소에 대해 scaling을 하면 적절한 balance를 가질 수 있다. 이러한 방법을 Compound Scaling Method라고 한다. 이 방법은 공평하게 네트워크의 너비, 깊이 그리고 해상도를 scaling 하는 것이다. 예를 들어 제한된 자원이 $2^N$이라면, 깊이는 $\alpha^N$, 너비는 $\beta^N$ 그리고 해상도는 $\gamma^N$이다. 상수의 계수는 original model에서 grid search를 통해서 결정된다. 밑의 그림에서 확인 할 수 있다.

직갑적으로, 복합체 scaling 방법은 의미가 있다. 본 논문은 width, depth 그리고 resolution 세가지 사이의 관계에 대해 수량화한 첫번째 논문이다.

특히, 모델 scaling의 유효성은 베이스라인 네트워크에 의존 적인데, NAS를 사용해 EfficientNet을 베이스라인으로 사용했다. 그림 1을 보면 현저한 차이를 볼 수 있다. 이 때 당시의 최고 성능인 GPipe [3][3] 보다 8.4배 작은 파라미터를 가지며, 6.1배 더 빠르다. 또한,** EfficientNet들은 ImageNet에서 학습한 후 transfer learning을 통해 다른 데이터 셋에서도 좋은 성능을 보임을 보였다.**

2. Related Work

ConvNet Accuracy: AlexNet을 시작으로 ConvNet들은 정확도를 올리기 위해 더욱 더 커져갔다. 최근에는 GPipe 라는 제일 좋은 성능을 가지는 네트워크가 나왔는데, 특별한 pipeline parallelism library를 사용해 네트워크를 나누고 다른 accelerator를 각 부분에 분배하는 방식을 사용한다. 또한, ImageNet에서 성능이 좋으면 다른 데이터 셋으로 transfer learning에서 좋은 성능을 보였다. 하지만, 더 높은 정확도가 중요하지만, 하드웨어 메모리에 제한은 있으므로, 더 좋은 효율성을 얻는 것이 중요해졌다.

ConvNet Efficiency: Deep ConvNet들은 너무 과도한 파라미터들을 가진다. 따라서 모델 압축 기술이 나왔는데 [4][4], [5][5], 그리고 [6][6] 등이 있다. 또한, 직접 모델을 구축한 ,SqueezeNet, MobileNet 그리고 ShuffleNet 등이 있다. 최근에는 NAS가 등장해 효과적인 모바일 크기의 ConvNet ( [7][7] [8][8] )등이 등장 했으며 사람이 디자인한 ConvNet들 보다 더 좋은 성능을 보인다. 본 논문에서는 SOTA에 대한 모델 효율성에 집중한다. 그 후에 scaling에 따라 재분류한다.

Model Scaling: ResNet ([1][1]) 과 같은 모델은 네트워크의 깊이에 대해 신경을 썼으며, Wide ResNet ([2][2])과 MobileNet ([9][9])은 네트워크의 너비에 대해 신경을 썼다. 또한, 입력 해상도가 클 수록 좋은 성능을 보이는 것은 잘 알려진 사실이다. 과ㅏ거의 논문들은 깊이와 너비가 다 중요하다고 하지만 여전히 효율성과 정확도를 더 좋게하는 것에 대한 연구는 지속적으로 진행중이다. 본 논문에서는 ConvNet에 대한 너비, 깊이 그리고 해상도의 모든 차원 scaling에 대한 연구이다.

3. Compound Model Scaling

본 섹션에서는 scaling 문제를 공식화 하고 다른 접근법에 대해 소개하고 논문에서 만든 새로운 scaling method를 소개한다.

3.1 Problem Formulation

ConvNet Layer를 $i$라고 할 때, $Y_i=F_i(X_i)$ 이라고 할 수 있다.
$F_i$는 operator, $Y_i$는 출력, $X_i$는 입력 그리고 tensor 모양은 $<H_i, W_i, C_i>$ 이다. 따라서, ConvNet을 다음과 같이 나타낼 수 있다: $N=F_k \odot...\odot F_2 \odot F_1(X_1)=F_k \odot_{j=1...k}F_j(X_1)$
보통 Deep convNet의 경우 각 stage와 같은 구조를 가진다. ResNet의 경우 5개의 stage로 나눠져잇으며, 다운 샘플링을 하는 부분을 제외하고 같은 convolutional type을 가진다. 따라서 밑의 수식과 같이 ConvNet을 표현할 수 있다.
$$
N=\odot_{i=1...s}F_i^{L_i}(X_{<H_i,W_i,C_i>})
$$
i stage에서 $F_i$ layer가 $L_i$번 반복 되는 것을 뜻한다. fig2 (a)는 전형적인 ConvNet을 보여주며, 점점 spatial dimension이 작아지지만, Channel의 수는 증가한다.

일반적인 ConvNet을 디자인 하는 것과 다르게, 본 논문은 네트워크 layer의 구조가 아닌, lenghth, width 그리고 resolution을 변경한다. 물론, 고정적인 상수를 두고 비율을 변화시키는 방법을 사용하였다. 이것을 공식화하면:
$$
\max_{d,w,r} Accuracy(N(d,w,r)) \\
s.t. \quad N(d,w,r)=\odot_{i=1..s} \hat{F}i^{d \cdot \hat{L_i}} (X{<r\cdot \hat{H}_i, r\cdot \hat{W}_i,r\cdot \hat{C}_i}) \\

Memory(N)\leq target_memory \\
FLOPS(N)\leq target_flops
$$

w,d,r 은 각각 width, depth 그리고 resolution을 뜻하며 $\hat{A}$이 들어간 것은 이미 정의된 베이스라인 네트워크를 뜻한다.

3.2 Scaling dimensions

d, w, r은 서로서로 의존적이고 다른 resource constraints 아래에서 바꿔야함으로 scaling이 매우 어렵다. 각각은 다음과 같이 scaling 한다.
Depth (d): scaling network depth는 ConvNet의 정확도를 올리는 간편한 방법중 한가지이다. 하지만, 깊은 네트워크 일수록 gradient vanishing 문제를 해결하기가 어렵다. 하지만, Skip connection과 batch normalization이라는 방법이 나왓지만, 그래도 여전히 깊어질 수록 무조건 좋은 성능을 가져오는 것은 아니다.

Width (w): 더 넓은 너비를 가지는 네트워크는 쉽게 학습되고 fine-grained feature들을 잘 추출할 수 있다. 하지만, higher level feature들을 봅아 오는 걸 어려워하는 경향이 있다.

Resoultio (r): 더 큰 해상도는 더 많은 fine-grained pattern을 찾을 수 있다. 299x299 (Inception), 331x331 그리고 480x480 (GPipe)에 이르는 해상도를 가진 네트워크들도 있다. 하지만, 매우 높은 (560x560) 해상도에서는 도리어 정확도가 떨어지는 경향이 있다.

Observation 1: 너비, 깊이 그리고 해상도를 증가시키면 정확도가 상승하지만 도리어 매우 클 경우 정확도 상승이 없어진다. -> 즉, 적당한 크기가 존재한다는 것이다.

3.3 Compound Scaling

실험적으로, 다른 scaling dimensions들이 의존적이라는 것을 관찰했다. 직관적으로, 더 큰 해상도에서 더 깊은 네트워크나 넓은 네트워크의 정확도가 좋을 것이다. 따라서, 본 논문에서는 단일 dimension에 대해 실험을 진행한 것이 아니라, 여러 조합을 사용해 진행하였다.

위의 그래프를 살펴보면 깊이만 늘린 것보다 해상도와 함께 깊이를 올리는 것이 더 좋은 성능을 가져온다.

Observation 2: 더 좋은 정확도와 효율성을 추구하기 위해서는 너비, 깊이 그리고 해상도를 적절하게 scaling 해야한다.

본 논문에서는 새로운 compound scaling method를 제안하며 compound coefficient $\phi$로 표현한다.
$$
depth:\ d=\alpha^{\phi} \
width:\ w=\beta^{\phi} \
resolution:\ r=\gamma^{\phi} \
s.t \quad \alpha \cdot \beta^2 \cdot \gamma^2 \approx 2 \
\alpha \geq1,\beta \geq1, \gamma \geq1
$$

$\alpha,\beta,\gamma$는 grid search를 통해서 결정된다. 일반적으로 FLOPS는 $d,\ w^2,\ r^2$의 배율로 증가한다. 본 논문에서 새로운 $\phi$로 제한을 햇으며, 전체적인 FLOPS는 대략적으로 $2^\phi$만큼 증가한다.

4. EfficientNet Architecture

model scaling은 베이스라인 네트워크를 바꾸는 것이 아니기 때문에, 새로운 mobile-size baseline 인 EfficientNet을 만들었다.

MNAS ([7][7])에서 영감을 얻어 같은 search space와 $ACC(m) \times [FLOPS(m)/T]^w$를 사용했다. $T$는 목표하는 FLOPS 이며 $w=-0.07$로 정확도와 FLOPS 사이를 제어하는 하이퍼 파라미터이다. MNAS랑은 다르게 지연속도보다는 FLOPS를 최적화 하는데 목표를 두었다. 따라서 EfficienNet-B0가 나왔으며, MNASNet과는 유사하지만, 조금 더 많은 FLOPS를 가진다. 밑의 표1에서 구조를 확인할 수 있다. mobile inveted bottleneck인 MBConv를 주요 block으로 두고 squeeze-and-excitation ([10][10]) 최적화도 추가했다.

밑의 2가지 단계를 거쳐 scaling 된다.

  • STEP 1: $\phi=1$로 고정하고 grid search를 통해 $\alpha,\beta,\gamma$를 수식 2, 3에서 찾는다.
  • STEP 2: $\alpha, \beta, \gamma$를 고정한뒤 다른 $\phi$를 적용하여 수식 3을 완성한다.

간략하게 요약하면, 작은 베이스라인 네트워크를 찾고 (STEP 1) 적절한 scaling coefficient들을 찾는다. (STEP 2)

5. Experiments

5.1 Scaling Up MobileNets and ResNets

당시에 대표적인 ConvNet들인 mobileNet과 ResNet에 대한 scaling method를 적용하고 비교했다. 밑의 표3에서 확인할 수 있다.

5.2 ImageNet Results for EfficientNet

첫 문단에서는 ImageNet을 학습하는 환경에 대한 설명들이다.

  • RMSProp optimizer, decay: 0.9, momentum: 0.9
  • BN 사용, momentum: 0.99
  • weight decay: 1e-5
  • Initial learning rate: 0.256, 매 2.4 epoch 마다 decay:0.97
  • SiLU (Swish-1) 사용
  • AutoAugment 사용
  • 잔존확률: 0.8로 stochastic depth 사용
  • dropout 사용, 0.2(B0) ~ 0.5(B7)
  • trainingset에서 25K를 minival set으로 사용
  • validation 도중 최종 validation accuracy 도달 시 early-stopping

위의 표를 보면 비슷한 정확도에서 좀 더 효율적인 구조를 가지는 것으로 확인할 수 있다.

그림1과 그림 5를 비교하면 EfficientNet이 더 작고 효율적이라는 것을 확인할 수 있다.

지연시간 평가를 했으며, 위의 표 4를 보면 확인 할 수 있다.

5.3 Transfer Learning Results for EfficientNet

위의 표6을 보면 transfer learning에 사용한 데이터셋에 대해서 볼 수 있다.

위의 표5를 보면 tranfer learning에 대한 결과를 볼 수 있다.

1) 유명한 모델들인 NASNet-A 와 Inception-v4 에 대한 결과를 비교 했다.
2) 당시 SOTA 인 Gpipe에 DAT를 적용한 것과 비교를 했다.

마지막으로 밑의 그림 6을 보면 각 데이터 셋에서 EfficientNet이 얼마나 효율적인지를 볼 수 있다.

6. Discussion

Efficient 모델과 scaling method에 대한 공헌을 구분하기위해 그림 8을 보면 확연하게 알 수 있다. 다른 scaling method와의 비교를 통해 본 논문에서 제안한 scaling method가 더 효율적인 것을 알 수 있다.

또한 그래프상이 아닌 activation map을 통한 비교를 그림 7에서 볼 수 있다. 확연하게 compound scaling method가 더 잘 나타내는 것을 알 수 있다.

7. Conclusion

깊이, 너비 그리고 해상도를 밸런스있게 하는 것도 중요하지만, 더 나은 정확성과 효율성을 방해한다는 사실을 발견했다. 본 논문에서는 더 적은 FLOPS와 더 좋은 성능을 가진 EfficientNet 모델을 발견했다.

[1]: https://arxiv.org/abs/1512.03385 ""ResNet""
[2]: https://arxiv.org/abs/1605.07146 "Wide ResNet"
[3]: https://arxiv.org/abs/1811.06965 ""GPipe""
[4]: https://arxiv.org/pdf/1510.00149.pdf "Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding"
[5]:https://arxiv.org/abs/1802.03494 "Amc: Automl for model compression and acceleration on mobile devices"
[6]:https://arxiv.org/abs/1804.03230 "Netadapt: Platform-aware neural network adaptation for mobile applications"
[7]:https://arxiv.org/abs/1807.11626 "MNASNet"
[8]:https://arxiv.org/abs/1812.00332 "ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware"
[9]: https://arxiv.org/abs/1704.04861 ""MobileNet""
[10]: https://arxiv.org/abs/1709.01507 ""SENet""

Attack to Explain Deep Representation

[

Attack to Explain Deep Representation - IEEE Conference Publication

ieeexplore.ieee.org

](https://ieeexplore.ieee.org/document/9156888)

Mohammad A. A. K. Jalwana Naveed Akhtar M. Bennamoun A. Mian

University of Western Australia

Abstract

Deep visual model들은 입력 이미지의 극히 작은 변화에도 민감하다. 따라서, 본 논문에서는 모델을 공격해 바보처럼 만드는 것이 아닌 학습된 representation을 설명하는 것에 집중하는 첫 논문이다. 처음의 작은 변화가 나중에는 눈에 띄일 정도로 커지는 것을 확인할 수 있다. 본 저자들은 이러한 변화를 robust classifier에 공격을 함으로써 이미지 생성, 인페이팅 그리고 interactive image manipulation에 적용했다.

1. Introduction

deep model들은 적대적인 작은 변화에 대해서 취약하다. 특히, 사람이 인지못하는 추가적인 작은 신호를 통한 변화에도 약하다.
두 가지의 접근법이 있다.

1) 작은 변화를 생성하거나 높은 전도성을 통해 deep models을 멍청하게 만드는 것
2) 작은 변화에 반대해서 model을 방어하는 것

또한, 합성을 통해 적대적으로 robust한 network를 만드는 논문도 있다. -> 이건 꼭 보기[41]

[19]에서는 ImageNet과 같이 큰 데이터셋에서 사람이 인지하지못하고 불안정하지만 예측할 수 있는 feature들이 있다고 인정했다. 이렇게 non-robust feature에 의존적인 deep model들은 당연히 작은 변화에 민감할 수 밖에 없다. 이런 것을 미루어보아 사람의 인지와 deep visual representation 사이에는 큰 차이가 있는 것 같다. 따라서, [14]에서는 robust optimizer framework를 제안했지만, 기존의 것보다 계산량이 급격한 증가를 보인다.

인간의 지각과 일치하지않은 representation이 여전히 인간 의미 visual task에서 높은 정확도를 가지는 것이 역설적이다. 그림 1 (top) 을 보면 적대적인 작은 변화가 포함된 상태로 분류를 하면 완전히 다른 라벨로 분류되며 salient visual feature에서도 확인할 수 있다. 하지만, salient visual feature들을 보면 사람이 사물을 인지하는 것과 deep model들이 인지하는 것에 큰 차이가 없어보인다. 오히려 원시적이고 감지하기 힘든 형태이기는 하지만, 적대적인 작은 변화를 대상 라벨의 인간 의미 가하학적 feature들로 볼 수 있다. -> 다시 해석하자면, 적대적인 작은 변화는 인간이 알아차리기 힘든 형태지만 라벨에 해당하는 feature을 가지게되는 것이라고 볼 수 있다. 이것으로 미루어보아 deep model들도 인간이 사물에서 특징들을 인식하는 것처럼 작동하는 것으로 볼 수 있다.

본 논문의 변화 평가 알고리즘은 확률적으로 주어진 대상 라벨에 이미지 분산에 의해 변화된 샘플의 예측 확률을 극대화한다. 본 저자들은 변화 신호를 분류기의 깊은 층에 있는 매우 활동적인 뉴런들에 집중하기 위해서 연결한다. 그림 1에서 확인할 수 있다.

게다가, deep model들이 이미지에서 집중적으로 보는 visual feature들을 설명하고 인간의 지각과 deep representation의 일치를 위해서 자연스럽게 low-level task에 집중하게되었다. e.g 이미지 생성, 인페이팅 그리고 interactive image manipulation.

본 논문의 major contribution:

1) attack technique을 fooling이 아닌 설명을 위해 사용함
2) non-robust model들에 작은 변화를 줘서 나온 salient visual feature들로 미루어보아, 인간의 인지와 deep models의 인지에는 차이가 없을 것 같음을 보여줌
3) 이미지 생성, 인페이팅 그리고 interactive image manipulation에 실험을 진행함. 왜냐하면 자연스럽게 low-level을 탐구하게되어서

2. Related Work

[2] adversarial attack에 관한 논문.

Adversarial attcks: 초창기에는 Szegedy [45]에서 시작했으며, Goodfellow가 FSGM[16]을 시작으로 I-FGSM[25], MI-FGSM[[13][13]], D$I^2$-FGSM[[51][51]] 그리고 vr-IGSM[48]이 나왔다.

위의 논문들과 다른 여러 논문들은 사람한테는 noisy로 보이지만 완전하게 모델을 멍청하게 만드는 것에 집중했으며 많은 이미지를 오분류하게 만드는 noisy인 Universal Advesarial perturbation인 [29]도 나왔다. 따라서, 실질적으로 high-level에 사용하는 분류기에도 이러한 위협이 가깝게 다가오기 때문에 현재 활발하게 연구 되고있다.

Adversarial defenses: adversarial attack에 대항하여 model에 들어오는 변화를 감지하고 막는 기술이다. 하지만, 강력한 adversarial attack이면 이러한 defenses도 뚫을 수 있다.

Non-adversarial perspective: adversarial attack을 공격용도가 아닌 해석용도로 사용한 논문 들도 있다. [46][46]과 [47][47]이 대표적인데, adversarially robust models들을 바보로 만드는 작은변화 신호를 salient visual feature의 존재를 관측했다. 이러한 것을 통해 model을 설명하는 것이다. 그러나, 몇몇 논문에서는 deep representation과 인간 지각이 일치 하지 않음을 주장한다. [14][[46][46]]
???? 번역기 돌린거... 이해가 안됨: 잠재적으로 재정렬은 오직 심각한 성능 손실과 컴퓨팅 복장성의 증폭으로 모델을 적대적으로 강건하게해야만 달성 할 수 있다.[14] [[46][46]].

3. Attacking to explain

Adversarial attack에서는 Deep visual classification model을 통과할 때, 잘못된 label로 구별하는 것을 목표로 한다. 식으로 나타내면,
$$
\kappa(\iota+p) \rightarrow \mathcal{l}_ {target} \ s.t. \ \mathcal{l}_ {target} \neq \mathcal{l}_ {true},||p||_p \leq \eta,
$$
$\kappa$는 Deep visual classification model, $p$는 perturbation, $||p||_p$는 norm을 뜻하며, $\eta$에 의해 제한된다.

위의 (1)를 보면, $\kappa$와 $I$로 $p$를 표현할 수 있으며, $\kappa$가 고정된다면, 이미지의 특정한 변화를 계산하기 위해 $p$의 도메인을 국한한다. 하지만,이런 제한은 단 하나의 데이터에 대한 특질만 반영하여 전체적인 분류기의 성질을 나타내기 어렵다. 또한, 이미지의 특정한 변화를 통한 인간의 지각과 deep representation 사이의 어긋남에 대한 의문을 제기할 수 있다. 작은변화와 함께 분류기의 특성을 더 잘 보여주기 위해서는 신호에 대해 변하지않는 입력 샘플이 필요하며, p의 영역을 확장하여 달성할 수 있다.

universal perturbations [29]와 같은 논문은 본 논문과 비슷한 내용을 담고 있는데, 많은 이미지에 대해서 처리할 수 있지만, salient feature map을 보면 기하학적인 모양은 매우 틀리다. 아마도, 특정한 물체가 아닌 무작위 class로 할당되도록 만들어서 그렇다. 주어진 Deep model ($\kappa$)에 'targeted' 목적으로 pertubation 영역을 넓히는 것은 Deep model $\kappa$에 의해 실제로 target의 특징이 두드러지게 p의 기하학적 패턴을 유도할 가능성이 있다.
--> 즉... p가 target의 기하하적 특징을 가지도록 유도할 수 있다.

(1)의 식에서 $l_{target}$을 매핑하는 $\kappa$의 확률을 최대하 하는 것으로 바꿀 수 있다. 즉, 모든 샘플들을 포함해서 최대화해야한다.

$$
\mathbb{E}[P(\kappa(I + p) \rightarrow l_{target})] \geq \gamma, \ s.t \quad
Dom(p) = {\forall I|I \backsim \mathcal{I}}, |Dom(p)| \gg 1, ||p||_p \leq \eta,
$$
$\gamma \in [0,1]$을 만족하며, (2)를 만족하는 $p$에는 위의 예시에 대한 명백한 정보가 드러내질 것으로 예상된다. (Dom은 정의역을 나타낸다.)

다음과 같은 질문이 생길 것이다.

1) 모델로 물체의 구별할 수 있는 시각 특징으로 여겨지는 게 무엇인가?
2) 모델의 주어진 label index는 의미론적으로 어떻게 볼 수 있는가?
3) feature들과 semanitcs가 인간 해석적이라고 볼 수 있을까?

4. Algorithm

2가지 단계로 나눠진다.

1) perturbation estimation: 전체론적으로 작은 변화가 목표 클래스의 구별가능한 feature들로 유도되도록 하는 것.
2) perturbation refinement: 이미지 구역들에서 작은변화가 더 많은 뉴런 활동을 할 수 있도록 하는 것

Perturbation estimation: perturbation 영역의 확장을 위해 입력의 분산이 필요하다. 입력 $I$는 다음과 같은 공식으로 결정된다. $\mathfrak{F} = {d} \cup \bar{D}$. $d$는 seed 이미지인 반면에 D는 입력으로 부터 온다. Perturbation estimation은 Algorithm.1 에서 확인할 수 있다. SGD를 사용한다.
$$
max_p \mathfrak{H}=\mathbb{E}_ {I \sim \mathfrak{F}} [P(\kappa(I + p)) \rightarrow l_{target}] \quad s.t. \ ||p||_2\leq \eta.
$$

핵심적으로, 알고리즘은 위의 공식인 (3)을 해결하기위해 시각적 모델의 cost surface 의 다단계 순회를 위한 분산 샘플의 mini-batch를 사용한다. 밑의 algortihm 1은 gradient monet와 mini-batch의 surface를 미분을 해 $\mathfrak{F}$을 최대화한다. 즉, SGD와 Momentum을 통해서 위의 (3)식을 최대화 한다. $\mathfrak{F} \geq \gamma$가 되도록 한다.

알고리즘을 설명하면
line 2: mini-batch인 b에서 -1을 한 b-1만큼 데이터 샘플을 뽑고
line 3-4: seed d와 최근의 perturbation을 샘플에 둘러싼다. 이 cliping은 0에서 1사이로 샘플을 국한시킨다. $\ominus$는 샘플이나 set에서 각각의 요소에 perturbation을 적용시키는 것을 뜻한다. 반복문 안에서는 SGD로 작동한다.
seed는 입력을 변경하여 perturbation의 변화를 허용하기 위해 알고리즘에 사용된다. 입력 샘플에 대한 제한을 정하지 않으며, D와 d가 매우 다를 수 있음을 나타낸다. 또한, $l_{traget}$에 직접적으로 gradient를 구한 것이 $d$에 계산된 것과 현저하게 다를 수 있음을 나타낸다. (denoted $\triangledown_{d_i} \mathcal{J}(d_i, l_{targe}))$
line 6: 이 차이를 설명하기위해, $d_i$에 대한 gradient norm을 $d_i \in D$의 평균으로 나눈 비율을 구한다.
line 7: 6에서 구한 비율을 여기서 결합하는데, seed gradient과의 높은 관련성을 얻기위해서 사용된다.
line 8-9: 위의 합성된 gradient로 first and second raw moment를 추산하는데 $\alpha$와 $\beta$로 조절한다. 위의 moment는 Adam algorithm으로 부터 영감을 받았다. 경험적으로 hyperparameter들의 영향이 비슷하며 Adam의 값으로 고정한다. -> 이것은 line 1에서 확인할 수 있다. 다른 값들은 0으로 초기화하는데 $\alpha$ 와 $\beta$만 특정한 값을 가진다.
line 10: 이동평균법을 적용 시킨 것
line 11-19: 중간의 perturbation을 업데이트 하는 신호 $\rho$ 결과를 찾도록 binary search를 실행 하는 부분. 그 이유는 확률적으로 본 논문의 알고리즘은 궁극적인 목표를 벗어날 수 있는데, 이러한 binary search가 억제한다고 한다. 즉.. 이 부분이 모델을 더 잘 설명할 수 있도록 한다.
line 20: $\eta$ 반지름의 $l_2-ball$를 updated perturbation에 투영한다.
line 21-22: 작은 변동과 clip을 거친 분산 샘플에 대한 $\mathfrak{H}$을 추산한다.

perturbation의 $l_p-norm$은 인식이 불가능하게 만드는 적대적 설정으로 제한되는 반면에, 본 논문에서는 전혀 다른 역할을 한다. 반복적인 back-propjection과 clipping을 통해, 모든 입력 샘플에 대한 $l_{label}$을 예측하는 $\kappa(.)$에 큰 영향을 미치는 기하학적인 패턴 perturbation을 증폭시킨다. 밑의 figure 2에서 확인 할 수 있다. 그리고 정제를 통해 더욱 더 잘 확인할 수 있다.

*Perturbation refinement: * 질 좋은 패턴을 뽑아내기위해 Algorithm 2를 보면 적절한 구역에서 적응할 수 있는 filter에 집중한 기술을 볼 수 있다.

이 알고리즘의 핵심은 앞선 외부의 영향이 없다는 가정하에 perturbation의 정확도를 유지하는 것이다.
line 2: perturbation을 정제하기위해서 분류기의 convolutional base인 $\bar{\kappa}(.)$을 입력으로 넣는다.
line 3: 출력인 $\Omega$는 낮은 해상도의 2D signal을 가지며, 평균 signal $a$에 의해 축소된 것이다. 이 signal은 입력 perturbation에서 대략적인 salient region의 윤각을 보여주어, 본 기술에 유용한 spatial filter가 된다.
line 4: $\Phi(.)$는 평균 signal에 대한 'Otsu threshold'를 계산한다.
line 5: 이미지를 이분화하기위해 위의 $\Phi(.)$를 사용한다.
line 6: 입력 perturbation의 차원을 맞추기 위해 결과로 나온 이미지에 bicubic interpolation로 upsampling 한다. 그 뒤에 scailed mask가 perturbation에 적용되고 뒤의 valid dtnamic range에서 cliping 한다.
알고리즘 2의 출력은 알고리즘 1에의해추가로 처리되며, 필터링으로 감소 할 수있는 sailent pattern을 다시 강조한다. 최종의 perturbatin은 위의 두가지 알고리즘이 반복적으로 실행되어 계산된다.

5. Experimentation

5.1 Model explanation

Setup: $I$는 original image이고 $\bar{D}$는 ILSVRC 2012 validation dataset에서 256개의 이미지를 랜덤으로 샘플링한 dataset이다. mini-batch인 $b = 32$, probability threshold인 $\gamma = 0.8$ and perturbation norm인 $\eta = 10$ 이다. $\gamma$는 최종 perturbation에서 salient pattern이 확연하게 보이는 값으로 정했다. 높은 $\gamma$는 더 깨끗한 패턴을 보이지만 더 높은 계산량을 가진다. $\eta$의 경우 기존의 논문끼리 비교를 통해 정했다. 하드웨어는 Titan V gpu with 12 GB RAM을 사용함.

perturbation을 구하기위해, Algorithm 1을 먼저 실행한다. (desired $\mathfrak{H}$) 그 후에 refinement를 위해 algorithm 2 를 실행한다. 그 후에, algorithm 1을 실행하지만 300 iteration 전까지 매 50 interation 마다 refinement (algorithm2) 를 실행한다.

Salient visual features: 본 논문에서는의 공격은 이러한 perturbation의 signal을 통해 target label들의 salient feature들을 발견할 수 있도록 한다. 그림 3을 보면 확연하게 볼 수 있으며, 어떤 perturbation이 없더라도 패턴이 나타남을 알 수 있다.

위의 그림을 보면서 먼저 '사람-이해 의미론적인 것이 출력 뉴런에 연결 되는 것'에 대한 답을 내릴 수 있다. 즉, 잘 모르는 모델을 가지고 label의 output layer을 봐야할 때 유용하다. 두번째로, "분류기로 부터 해당 클래스를 구분하는 특징이 어떤 기하학적 패턴을 가지는가?''에 대한 답을 내릴 수 있다. 그림을 보면 사람 개념과 유사하게 패턴을 잘 정렬한다. 즉.. 딥러닝이 사물을 인식하는 것과 사람이 사물을 인식하는 것과 유사하다고 볼 수 있다.

Diversity of the salient patterns: 그림 3에서 다른 모양으로 나타나는 이유는 seed를 다르게줘서 그렇다. 그리고 salient map을 통해서 deep learning model 또한 사람이 사물을 인식하는 것처럼 인식한다고 단언할 수 있다. $\bar{D}$는 독립적으로 생성해서 실험을 진행 하였는데, 이러한 패턴들이 visual model을 통해 만들어지고 보여진다. (image generation and image classification)

Region specific semantic: 이미지 공간의 특정 영역과 관련된 모델 의미론을 추출 할 가능성에 대해서도 탐구했다. 이렇게하면 개별적인 샘플의 기울기가 지정된 영역에 대해 동일한 방향으로 이끈다. back-projection으로 해당 영역의 신호를 강화하는 반면 다른 영역의 약한 신호는 정제를 통해 억제된다. 모든 샘플에 대해 관심 이미지 영역을 64x64 패치로 대체하여 모방하는데, 모든 패치 픽셀은 샘플의 평균 픽셀 값으로 생성된다.

그림 4는 지네를 라벨로 랜덤한 영역에 넣어서 salient feature map을 보인 결과이다. 보는 것과 같이 공격은 특정 영역근처에 더 집중적이다. 흥미롭게도, 대상 라벨의 유사한 차별적인 특징을 일관된 방식으로 서로 다른 영역에 연관시킬 수 있으며, deep representation과 인산 인식 사이의 차이점이 없어 보인다.

*Patterns for different models: * 위의 그림 4는 resizing을 한 뒤에 보여준 패턴이다. 그러나, salient visual feature들의 나타남은 deep visual classifier에서 나타나는 일반적인 현상이다.

그림 5에서 보듯이 perturbation들은 모든 모델에서 해당 라벨의 특징을 명백하게 묘사한다.

해당 모델에 대해서 여러 모델들의 높은 confidence는 추출된 패턴들이 해당 class의 구별가능한 visual feature들로 잘 보이는 것으로 나타낸다. -> 즉... 어떤 모델에서든 추출한 visual feature들은 다른 모델에서도 잘 작동시킬 수 있는 visual feature들을 뽑아 낸다는 것이다.

5.2 Leverage in low-level tasks

Santuraker et al 41은 이미지 생성과 인페이팅에서 자신들의 모델을 증명햇으며, 적대적인 robust deep calssifier들을 사용했다. 또한, 강력한 분류기를 위해 계산된 적대적 perturbation에서 salient visual feature의 존재에 대한 논문이다. 위의 논문도 우리의 발견과 관계가 있다. 성공적으로 모델을 설명할 수 있을 뿐만 아니라 SOTA를 달성했다.
결과에 대한 개선점을 증명하기위해 41과 똑같은 budget과 평가 과정을 사용하였다. $\bar{D}$를 샘플링 할때는 다중 가우시안 분포 $N(\mu_1,\Sigma_1)$를 사용했으며, ImageNet에서 가져왔다. 계산을 위해 다중 가우시안 분포는 원본의 이미지들의 4x downsampling을 사용하였다. 랜덤으로 256개 분포 샘플들은 네트워크 입력과의 일치를 위해 나중에 업샘플링되고 $\bar{D}$에 사용된다. 전체적으로 이미지 프로세싱은 했지만, refinement step을 제외하였다.

5.2.1 Image Genearation

적대적 공격의 맥략에서, 생성된 이미지는 seed image의 적대적인 예시이다. 다양한 시드, 텍스쳐 세부 정보 및 명확한 의미 일관성으로 생성된 이미지의 다양성은 강력한 분류기가 분류 이상을 수행 할 수 있음을 의미한다.

5.2.2 Inpainting

다음의 task를 해결하기 위해 변질된 이미지를 binary mask로 알아보게 만든 seed로 다룬다. robust classifier parameter들을 고정하고 밑의 loss를 최소화 하는 것으로 목표로 한다.
$$
L(p)=\mathbb{E}[\mathcal{J}(\mathfrak{F}_ p,l_{target})+\beta(p\odot(1-F))],
$$
$\mathfrak{F}_p = \mathfrak{F}\ominus p,$ $\mathcal{J}$는 cross-entropy loss 이다. $\beta=10$으로 고정하며 실험적으로 얻어낸 scaling factor이다. 위의 loss function은 perturbation 신호가 제한 없이 변질된 이미지를 다른 구역과는 자유롭게 해결하기위해 만든다.

41과 비교한 그림이며 같은 perturbation budget 인 $\eta=21$를 사용했다. 시각적으로도 잘 생성하고 더 좋은 결과를 가져온다.

5.2.3 Interactive Image Manipulation

대충 그린 스케치로 부터 그림을 생성하는 기술을 attacking/fooling robust classifiers로 해결할 수 있는 가능성을 41에서 제시했다. 논문의 기술이 더 적합함을 보였다.
다중 가우시안 분포를 사용하여 만들었지만 refinement 과정이 포함되어있다. 결과는 밑의 그림에서 확인 할 수 있다.

위의 3가지 기술 (generation, inpainting and manipulation)을 통해 perturbations이 보통적으로 모델을 바보로 만들 뿐만 아니라 저자들이 알고자하는 방향에 대한 확신을 준다고 한다.

6. Conclusion

본 논문은 모델을 바보처럼 만드는 것이 아닌 설명을 목적으로 한 attack의 첫 논문입니다. 작은 변화를 계산하기위해 공격은 모델의 cost surface에 대해 stochastic gradient search를 수행하여 특정 대상으로 분류 될 이미지의 '분포' 로그 확률을 높인다...(?) 반복적으로 기울기의 back-projection 와 adaptive attention와 함께 재정의 함으로써, 논문의 공격은 분류기의 salient로 여겨지는 작은 변화인 기하학적인 패턴을 발견했다. 현실적인 이미지생성, 인페이팅 그리고 interactive image manipulation은 모델에 대한 공격의 nature을 알아냈으며, 사전의 SOTA에 대한 새로운 분류기 활용을 발견했다.

Resolution Adaptive Networks for Efficient Inference

Le Yang Yizeng Han Xi chen Shiji Song Jifeng Dai Gao Huang

Tsinghua University, BNRist, HIT, SenseTime

Abstract

Adaptive inference(조정가능한 추론?실험?)은 동적으로 정확도와 계산량을 tradeoff 할 수 있도록하는 효과적인 메커니즘이다. 현재 존재하는 works은 네트워크의 높이와 너비를 불필요한 구조를 사용한다. 따라서, 본 논문은 입력에서 공간의 불필요한 반복에 집중했으며, Resolution Adaptive Network(RANet)을 제안한다. 본 논문은 쉽게 분류 가능한 것들은 원형의 feature들 만으로 충분하지만, 분류가 힘든 것들은 공간적인 정보가 더 필요하는 것에 착안했다. 즉, 입력단에서 충분히 예측가능한 것들은 바로 출력으로 가는 것이다. 그 동안에, 분류가 힘든 것들은 큰 해상도를 유지하면서 네트워크를 통과해 간다.


1. Introduction

하드웨어의 발전으로 ResNet이나 DenseNet과 같이 높은 계산량을 요구하는 Deep CNN이 나왔지만, 비용이 너무 많이 든다. 이런 점을 보완하기 위해 lightweight network, network pruning, weight quantization 이 나왔다. 그 중에서 adaptive inference scheme이라는 개념은 불필요한 반복을 하는 계산량을 줄이기 위해 쉬운 샘플을 동적으로 네트워크 구조에 적용하거나 각 입력에 조건부로 파라미터를 사용해 놀라운 성능을 보였다.

최근 adaptive inference에 대한 논문들은 너비와 높이를 줄여나가는 방향으로 하고 있다. 이것은 본래의 분류가 어렵다는 것을 보여주고 있다. 작은 모델로도 정확하게 분류하는 구조가 있는가 하면, 더 큰 구조가 필요한 경우도 있다. 23은 실행 시간 동안 강화학습으로 학습한 policy에 의거해 pruning을 실시하며, 36은 convolutional layer 전에 linear layer을 추가해서 binary decision을 실시한다. Multi-Scale Dens Network(MSDNet)은 보조의 분류기를 사용해 어떤 샘플들은 빠르게 분류되도록 한다.

기존에 존재하는 논문들은 네트워크 구조에서 계산량의 불필요한 반복을 줄이는데 집중을 했지만 본 논문은 데이터 샘플에서 정보의 불필요한 반복을 줄이는데 집중한다.

즉, 사진의 (a)처럼 쉬운 샘플은 낮은 해상도에서 해결하고 (b)처럼 어려운 샘플은 고해상도에서 해결하는 것이다.

위의 fig1은 직관적으로 RANet을 이해할 수 있다. 쉽게 판별이 되는 것은 작은 sub-network에서 끝나며, 판별이 어려운 것은 점점 더 고해상도에 해당하는 sub-network로 판별하며, 전의 sub-network에서 사용한 정보를 재사용한다. 여기서, 불필요한 convolution을 제거하면서, 계산량의 효율을 증가시킨다.

CIFAR-10,100, ImageNet에 대한 이미지 분류를 실행했으며, 11에서 손쉽게 adaptive inference task를 실시할 수 있다.


2. related work

Efficient inference for deep networks.

network inference 속도를 늘리기위해, 가벼운 모델을 디바인 하거나, pruning 하거나, quantizing network 만들었다. 게다가, knowledge distilling 이라는 기법으로 작은 네트워크가 더 큰 네트워크를 따라하게 만드는 기법도 있다.

앞선 방법들은 지속적으로 전체 네트워크에 입력을 사용하지만, adaptive network는 전략적으로 입력 이미지 복잡도에 따라 적절하게 할당할 수 있다. 이러한 전략은 최근 각광받고 있다. ensemble model or 선택적 실행 model이 예시이다. 또한, skip layer/block을 사용하거나, 동적으로 channel을 선택하는 논문들도 있다. 그리고 auxiliary predictor(보조 예측기)를 사용하는 것도 있다. 게다가, 많은 가지를 가지는 구조를 사용해 동적으로 활용하는 논문도 있다.(35) 그러나 전의 논문들은 오직 네트워크 구조를 디자인 하는데만 치중하고 있으며 그래도 Drop an Octave와 같은 논문이 구조적/공간적 불필요한 반복을 활용했다고 할 수 있다.

Multi-scale feature maps and spatial redundancy.

다양한 scale의 인식에 사용하는 것이 성능 증가에 좋다는 것이 밝혀졌으며, 다양한 vision task에 활용되고 있다.

고해상도의 feature map을 유지하는 것이 특이한 샘플이나 구체적인 task가 요구되는 pose estimation에서 필수적이다. Drop an Octave에서 제안한 Octave convolution은 작은 scale에서의 feature map을 활용해 분류 성능과 계산 효율성을 동시에 증가시킨다.

하지만, 공간적 불필요한 반복(spatial redundancy)을 고려한 adaptive model은 없다. 본 논문의 RANet은 resolution adaptation을 통해 계산 효율성과 성능을 모두 개선했다.

3.Method

여기서 RANet 설명

3.1 Adaptive Inference Setting

일단, K개의 분류기가 존재한다. 다음의 수식은 입력 x에 대한 출력을 나타낸다.

 

는 k번째 분류기에 해당하는 파라미터

은 c번째 클래스에 대한 예측값이다. 또한

의 파라미터들은 공유된다.

입력의 복잡성에 따라 적정한 계산 리소스를 할당한다. 본 논문은 softmax를 사용하는데, 각 분류기의 softmax 값은 threshold 인

을 넘어야 다음 분류기로 가지 않는다. 밑의 수식은 위를 나타내는 것이다.

 
 

에 의해서 분류기 성능과 테스트시의 계산 비용이 trade-off 관계이다.

3.2 Overall Architecture

위의 그림은 RANet의 전체적인 구조이다. 이와 같은 multi scale structure은 11과 유사한데, 가장 다른 점은 low-resolution feature을 먼저 추출하는 것이다. 기존의 네트워크들은 high-resolution feature을 추출한다.

RANet의 기본적인 아이디어는 먼저, 가장낮은 해상도에서 feature map을 추출하는 것이다. 그리고 만약 분류 결과가 별로라면 다음 sub-network로 넘어가며 이 때, 전의 sub-network에서 사용한 feature map을 혼합해서 사용한다. 또한, 분류기는 마지막 block에서 2~3개만 가진다.

이와 같은 구조는 쉽게 분류되는 것은 저해상도에서 충분히 분류될 것이고, 분류가 어려운 것은 저해상도에 사용된 feature와 함께 고해상도로 올라가면서 분류가 된다.

3.3 Network Details

3.3.1 Initial Layer

H와 S에 의해 입력 이미지의 해상도가 결정되는 곳이다. H는 네트워크 안의 base feature 수를 뜻한다. 그리고 Conv Block은 BN, ReLU, stride=2 인 conv layer을 가진다. 만약 H=4, S=3 이라고하면, 가장 h=3,4와 같은 마지막 2개는 같은 해상도를 가질 것이다.

3.3.2 Sub-networks with Different Scales

각 sub-networks들은 분리되어 다른 Conv Blocks를 가진다.

Sub-network 1.

그림 3(a)는 첫 sub-network를 제외하고는 전의 sub-network에서 온 feature를 사용하는 것을 보여준다. 그리고 각 feature map이 다음 sub-network로 가는데 DenseNet과 유사하다.

Sub-networks on larger-scale features.

그림 3(b,c)는 h>1인 경우 즉, 첫 sub-network 이후를 보여주며, 보는 것과 같이 전의 sub-network로 부터 feature map을 받으며 이 부분을 Fusion Blocks 라고 한다.

sub-network는 두 개의 fusion 방법이 있다. 첫 번째는 입력 해상도를 유지하는 것이고, 두 번째는 해상도를 줄여가는 것이다. 각각 fig3(b)와 (c)를 뜻한다. 그리고 Up-Conv layer에서는 bilinear interpolation(이중선형보간법)을 사용해 같은 해상도를 갖도록 하며 dense connection을 한다.

그리고 fig3(c)의 마지막을 보면, stride-Conv layer를 통해 해상도를 줄이고 sub-network로 부터 오는 feature map과 단순한 연결을 할 수 있도록 한다. 즉.. sub-network의 해상도에 맞춘다.

규칙이 있는데,

에서

까지는 모두 Fusion Blocks를 사용하고 나머지는 Dense Block을 사용한다. 또한,

은 feature map을 downsample하도록한다. 이와같은 처리는 sub-network 마지막 단(분류기가 있는 block)의 feature map이 가장 작은 저해상도를 갖도록 한다.

Transition layer.

transition layer을 추가해 feature map이 압축되도록 하며 계산 효율성을 가지도록 했다. 1x1 convolution operation with BN, ReLU를 만들어서!!

classifiers and loss function.

1~H까지 순서대로 cross-entropy loss function을 사용했다. 그리고 각 분류기에서 loss가 누적되도록 만들었다. 그리고 weight는 11을 따랐다.

3.4 Resolution and Depth Adaptation

위의 사진은 MSDNet과 RANet의 차이점이다. 일단, classifier가 각 sub-network에 존재하며, 전의 sub-network의 feature map을 사용한다. 그리고, 해상도와 depth adaptation이 자연스럽게 혼합되서 사용된다.

4. experiments

CIFAR, ImageNet에 대해서 실험을 진행했다.

Datasets.

그냥.. 통과ㅣ해도 될듯, 그냥 11처럼 CIFAR에서의 validation을 사용함.

Training policy.

하이퍼 파라미터 지정에 대한 내용. 공통적으로, SGD 사용, momentum 0.9, weight decay 0.0001 CIFAR batch size: 64, epoch: 300, learning rate: (0, 15, 225)(0.1, 0.01, 0.001) ImageNet batch size: 256, epoch: 90, learning rate: (0, 30, 60) (0.1, 0.01, 0.001)

Data augmentation.

CIFAR 32x32 randomly crop(After zero-padding), horizontally flip(p=0.5), RGB channel normalization(채널당 평균, 분산) ImageNet training에는 ResNet 따라서 실행. test에서는 224x224 center crop 실시

4.1 Anytime Prediction

prediction을 할 때, 모든 분류기를 사용했다.

Baseline models.

ResNet, DenseNet, Ensemble ResNet, Ensemble DenseNet을 포함했다. 그리고 RANet과 MSDNet의 경우 학습시 22를 참고해 추가했다고 한다.

Results.

MSDNet과 RANet이 가장 좋은 성능을 보이며, RANet이 계산량이 적다. 그림을 보면 알 수 있는데, RANet이 적은 계산량으로도 높은 정확도를 보인다. 모든 데이터셋에서 RANet이 더 좋은 영향을 보여준다. 그리고 Ensemble ResNet과 다른 점은 전의 sub-network에서 사용한 feature map을 현재 sub-network에서 사용한다는 것이다. 따라서, 정확도와 더불어 계산량 감소에도 효과적이다.

4.2 Budgeted Batch Classifcation

thresholds(임계값)는 계산량에 따라 다르게ㅔ 설정해야한다. 만약 confidence가 임계값에 도달하면 예측결과를 내놓게 된다.

Baseline models.

그냥 어떤 네트워크를 사용했다에 대한 내용들이다. 특이점으로는 CIFAR에서 WideResNet, ImageNet에서 GoogLeNet을 사용한 것이다. 그리고 22를 참고해서 test에 사용 한 것.

Result.

위의 결과 그림으로 보아 RANet은 적은 계산량으로도 높은 정확도를 가진다. 여기에는 결과에 대한 설명이 전부다 이다. 이런 결과를 미루어보아 RANet이 매우 뛰어난 성능을 보이는 것 같다.

4.3 Visualization and Discussion

위의 사진처럼 어려울 수록 더 뒷단의 sub-network에서 분류가 된다.

Multiple objects.

다양한 객체 사이에서도 좋은 성능을 보인다. fig7의 (a) 'hard' 중간은 사람들 사이에 부엉이가 있다. 이와같은 사진은 부엉이보다는 사람으로 인식할 가능성이 더 높다. 하지만, 사람의 관점에서는 사람들 보다는 사진의 중앙에 있는 부엉이가 더 중요한 정보라고 판단할 수 있으며, 이처럼 잘 분류하는 것이 강력한 네트워크라고 할 수 있다.

Tiny objects.

매우 작은 이미지에서 좋은 성능을 보인다. 작은 이미지는 downsampling 되면서 급속도로 정보가 사라진다. 이것은 fig7의 (b)를 보면 알 수 있다.

Objects without representative characteristics.

이미지에서 학습을 하는 것은 부분적인 특징으로 객체를 분류한다고 볼 수 있다. fig7의 (c)를 보면, 개의 얼굴이 보이지 않으면 인식이 어려운데, 이는 부분적인 특징(얼굴)로 객체를 분류하는 것으로 볼 수 있다. 고해상도 이미지를 사용하는 sub-network에서 충분히 부분적인 특징이 아닌 전체적인 특징으로 인식할 수 있다.

저해상도에서 구분이 가능한 것은 저해상도에 충분한 정보가 담겨진 것이고 분류가 힘든 것은 고해상도로 가면 더 많은 정보가 담겨져 있기 때문에 분류가 가능해진다.

5. Conclusion

결과적으로 RANet 이라는 가벼운 네트워크를 구축했으며, resolution adaptation과 depth adaptation을 통해서 계산 효율이 좋은 네트워크를 구축했다.

** 내얘기 ** 그렇다면 결국에는 고해상도로 갈 수록 좋은 성능을 보인다는 건데, 단지 resize를 통해서 고해상도로 만든다면 좋은 성능을 보일 수 있을까? 이게 궁금하네...

 

 

Supplementary

1. Appendix A : Implementation Details

1.1 CIFAR-10 and CIFAR-100

MSDNet :

scale(32x32, 16x16, 8x8) classifier(6, 8, 10) depth(16, 20, 24)

RANet:

3 종류의 base line이 있다. 3 또는 4개의 sub-network를 가진다.

Model-C-1

1) even: 각 Conv Block의 layers 수. 여기선 4. 2) linear growth(lg): 각 sub-network마다 추가되는 Conv Block의 수. 여기선 2. 3) Channel numbers: 16, 32, 64. sub-network마다 입력 채널이 다르다. 4) 3 sub-network의 growth rate는 (6, 12, 24) 5) Fusion Block의 경우 현재 sub-network에서 75% 전 sub-network에서 25%를 가진다. 6) 총 6개 분류기를 가진다.

Model-C-2

1) Input Resolution: 32x32, 16x16, 16x16, 8x8 2) Conv Blocks 갯수: 8, 6, 4, 2 3) Input channel 수 : 16, 32, 32, 64 4) growth rate : 6, 12, 12, 24 5) 같은 resolution을 가지는 sub-network 사이에는 Up-conv Layers가 regular Conv Layers로 대체된다. 6) 총 8개 분류기를 가진다.

Model-C-3

1) Input Resolution: 32x32, 32ㅌ32, 16x16, 8x8 2) Conv Blocks 갯수: 8, 6, 4, 2 3) Input channel 수 : 16, 16, 32, 64 4) growth rate : 6, 6, 12, 24 5) 같은 resolution을 가지는 sub-network 사이에는 Up-conv Layers가 regular Conv Layers로 대체된다. 6) 총 8개 분류기를 가진다.

1.2. ImageNet

1) Input Resolution: 56x56, 28x28, 14x14, 7x7 2) Conv Blocks 개숫: 8, 6, 4, 2 3) Input channel 수 : 32, 64, 64, 128 4) growth rate : 16, 32, 32, 64 5) conpress factor: 0.25 6) Model 1과 Model2가 있는데, model2의 input channel 수가 64, 128, 128, 256 이다.

SSD: Single Shot MultiBox Detector

Abstract.

 단일의 deep neural entwork로 object detection을 구현했습니다. SSD라고 불리는 접근법은 다양한 크기와 비율을 가진 default box들로 각 feature map에서 bbox를 뽑아냅니다. predict를 할 때는 네트워크가 각 default box가 각각의 사물 카테고리에 속하는 score와 사물 모양에 잘 맞는 box를 만들어 냅니다. 게다가, 다양한 크기를 가지는 사물을 매끄럽게 변환한 다양한 feature map들을 결합하여 predict에 사용합니다. 쉽게 보면 object proposal들을 사용하는 방법들과 다릅니다. 그 이유는 proposal을 생성하는 부분과 pixel 또는 feature를 리샘플링하는 부분이 제거했으며 모든 계산을 단일 네트워크에서 진행합니다. 단일 네트워크로 학습을 쉽게 할 수 있고 detection에 필요한 요소를 통합했습니다.

 

 결과로는 VOC2007에서 74.3%의 정확도와 59fps가 나왔다고 합니다.

Introduction

 당시에 SOTA는 Faster-rcnn이었습니다. 정확도도 높고 deep 한 network입니다. 하지만 계산량이 너무 많으며 좋은 하드웨어를 사용해도 실시간으로는 사용하기 어렵다. 제일 빨라봤자 7 fps 밖에 나오지 않는다. 따라서 속도를 올리려고 노력했지만 속도가 올라간 만큼 저확도가 감소하였다.

 

 본 논문은 object proposal를 사용하지 않고 object detection을 할 수 있으며 VOC2007 test를 기준으로 Faster R-CNN의 경우 7 fps, 73.2%이며 YOLO의 경우 45 fps, 63.4%이다. 본 논문에서 소개하는 SSD의 경우 59 fps, 74.3%의 결과를 가져왔다고 합니다. 즉, 속도와 정확도 두 마리의 토끼를 동시에 잡았습니다.
 우선 proposal생성과 resampling 단계를 제거하여 속도를 증가시켰습니다. 또한 정확도를 위해 다른 scale과 aspect ratio를 가지는 default box를 사용하였습니다. ( Faster-RCNN의 Anchor와 유사) 그 후에 다른 크기들의 feature map을 prediction에 사용하였습니다.

  • YOLO 보다 빠르고 Faster-RCNN 보다 정확한 SSD를 소개합니다.
  • SSD의 핵심은 작은 conv filter들을 사용한 default box들을 여러 feature map에 적용시켜 score와 box 좌표를 예측합니다.
  • 정확도를 높이기 위해서 여러 크기의 다른 feature map들로부터 여러 크기의 predict를 수행하고 비율 또한 다르게 적용했습니다.
  • end-to-end 학습을 할 수 있게 구축했으며 저해상도 이미지에서도 높은 정확도를 가집니다.
  • 여러 대회(PASCAL VOC, COCO, ILSVRC)에서 실험을 진행한 것을 소개합니다.

The Single Shot Detector(SSD)

 2.1은 SSD의 model을 설명하고 2.2는 학습 방법론에 대해 설명하겠습니다.

2.1 Model

 SSD는 NMS를 거쳐 최종적으로 나오는 bbox와 score를 포함한 box들을 생각하는 feed-forward convolutional network(FFCNN)를 기반합니다. 밑의 그림은 단순한 FFCNN입니다. ( 원래 더 거대하다.)

 앞의 네트워크는 base network라고 불리는데 조금 수정한 pre-trained conv network이다. 그리고 detection을 위해 몇 가지 구조를 추가했는데 밑에서 설명하겠습니다.

 

Multi-scale feature maps for detection

 base network에서 끝이 생략된 conv feature layer를 추가했습니다. 이 layer들은 점진적으로 크기가 줄어들고 다양한 크기에서 prediction 하도록 했습니다. detection을 위한 convolutional model은 Overfeat 그리고 YOLO 같이 단일 크기의 feature map을 만드는 다른 feature layer입니다.

 

Convolutional predictors for detection

 각각 더해진 feature layer은 prediction을 위해 conv filter가 사용된 세트를 만듭니다. 즉, 밑의 사진에서 SSD 네트워크 구조의 윗단을 가리킵니다.

 m x n x p의 feature layer을 얻기 위해 각 conv layer로 부터 3 x 3 x p의 conv layer을 추가로 통과시킵니다. 즉, m x n 의 위치에 3 x 3 x p 의 kernel을 적용시킵니다. 이것을 detection에 사용합니다. bbox는 default box의 위치로 알 수 있습니다.

 

Default boxes and spect ratios

 여러 개의 feature maps을 얻기 위해 각 feature map 당 default b box들을 적용했습니다. 위의 그림에서 각 con layer의 최상단에서 detections로 넘어갈 때 default box들에 적용했습니다. 각 feature map에 맞게 default box들 또한 바뀌어 적용합니다.(feature map cell이라고 불립니다.)

 각 feature map cell은 classfier score 뿐만 아니라 box의 좌표 또한 예측할 수 있습니다. 즉, feature map cell에서 k개의 box를 가진 다고 하면, c개의 classifier score와 4개의 box 좌표를 계산해야 합니다. 즉 (c+4) k의 필터가 필요합니다. 여기서 만약 feature map이 m x n을 가진 다고 하면, (c+4)kmn의 파라미터를 가집니다.

 default box의 예시는 첫 번째 그림에서 볼 수 있습니다. 이 default box는 faster RCNN의 anchor와 비슷합니다. 하지만, 각 default box를 여러 개의 feature map에 적용시켰습니다. 각각의 feature map 마다 default box를 가지는 것은 물체의 크기와 비율이 달라져도 효과적으로 대응할 수 있습니다.

2.2 Training

 SSD와 여타 다른 detector과 크게 다른 점은 gt 정보가 고정된 detector 출력들에 특정한 출력으로 할당해야 하는 것이다. 이런 것은 VOLO, Faster RCNN, MultiBox에도 똑같이 필요하다. 할당되는 게 한번 정해지면, 손실 함수와 역전파는 end-to-end로 적용된다. 학습에는 default box들의 크기와 비율을 선택하는 것뿐만 아니라 negative mining과 data augmentation 방법들도 선택해야 한다.

 

Matching strategy

 학습을 하는 동안, default box는 gt box와 대응하여 network가 학습된다. 따라서, default box들의 위치, 크기 그리고 비율은 다양하게 선택되어야 한다. MultiBox의 최고 jaccard overlap과 함께 gt box와 default box를 매칭 시켰다. MultiBox와는 다르게 threshold인 0.5보다 크게 잡았다. 이렇게 하면 좀 더 정확하게 겹쳐야 default box가 선택이 된다. 즉, 학습을 좀 더 단순화시킨다.

 

Training objective

 SSD 학습은 MultiBox에서 파생되었지만, 더 많은 object 목록을 가진다.

가 있다고 하자. 여기서 i는 default box의 index, j는 gt box의 index, 그리고 p는 object의 index이다. 위의 _Matching Strategy_을 적용시키면

를 예측할 수 있다.


 결국엔 전체 손실 함수는 localization loss (loc)와 confidence loss (conf)의 합으로 나타난다.

  • N : gt box와 매칭 된 default box의 개수 ( N이 '0'이면 loss 또한 '0'이다.)
  • l : 예측한 box
  • g : gt box
  • c : confidence score(물체일 확률)
  • loc는 l과 g을 파라미터로 가지는 Smooth L1 loss function이다.
  • α : weight term이며, cross validataion에서 1로 설정된다.

  • Faster-RCNN과 똑같이 box들의 좌표는 중심 좌표(cx, cy), 너비(w), 그리고 높이(h)를 가진다.
  • g^은 gt box와 default box의 차이를 뜻한다.

  • conf의 경우는 c를 파라미터로 가지는 softmax loss function이다.
  •  

Choosing scales and aspect ratios for default boxes

 다른 크기와 비율의 object를 인식하는 방법에는 여러 가지가 있다. 4, 9, 10, 그리고 11가 있다. 본 논문에서는 여러 가지의 크기와 비율을 가진 default box들을 이용한다. 다른 차원의 feature map들을 사용한 네트워크는 성능이 좋습니다. SSD 또한 다른 차원의 feature map을 사용합니다. 위의 _Convolutional predictors for detection_의 그림에서와 같이 다른 차원의 feature map에서 default box를 가져와 인식에 사용합니다.

  • m : feature map의 개수.

  • s : default box들의 크기

  • min : 0.2 ( 가장 낮은 차원의 feature map 크기)

  • max : 0.9 ( 가장 높은 차원의 feature map 크기)

     결과적으로 1 셀당 6개의 default box들이 생겨난다. 만약, 5x5 feature map이라고 하면 5x5x6x(c+1)의 박스가 생겨난다.

     

     더 큰 feature map에서는 작은 object를 더 작은 feature map에서는 큰 object를 인식할 수 있다. 그 이유는 셀이 많은수록 default box의 크기가 작아 object가 크다면 인식하지 못하기 때문이다.

Hard negative mining

 matching 단계가 지난 후에는 대부분의 default box들은 negative 일 것입니다. 이것은 positive와 negative 학습 데이터의 언밸런스 문제로 이어집니다. 따라서 모든 negative 데이터를 사용하는 것이 아니라 negative : positive = 3:1 로 사용합니다. 본 논문을 제작한 분들이 이 비율이 제일 optimal 하다고 합니다.

 

data augmentation

 input으로 사용할 object는 다양한 크기와 모양이 필요합니다. 따라서

  • 0.1, 0.3, 0.5, 0.7, or 0.9의 jaccard overlap을 사용합니다.

  • 무작위로 sample들을 사용합니다.

     

     각 sample을의 크기는 기존의 이미지의 0.1 에서 1배의 크기를 가지며 비율 또한 2배 또는 1/2배 입니다. 물론, 이미지의 중앙을 기준으로 적용시킵니다.
     위의 샘플링 작업이 끝난 뒤, 원래의 크기로 resize 하고 50%의 확률로 뒤집어 적용시킵니다.
    마지막으로는 14처럼 왜곡을 적용합니다.

3. Experimental Results

 여기에서는 실험 결과가 아니라 여러 실험을 통해 나온 팁을 적을 것입니다.

 

base network
 base network로는 VGG16을 적용시켰다고 합니다. 하지만 완벽하게 그대로 사용한 것이 아니라 layer를 조금 변형시켜 적용했다고 합니다.

3.2 Model analysis

 

Data augmentation이 중요합니다.

 data augmentation을 적용시켰을 때 8.8%의 성능이 향상되었다고 합니다.

 

변형한 VGG16이 빠릅니다.

 SSD에서는 VGG16을 사용했는데 완전하게 쓴 것이 아니라 conv11_2를 제거하고 사용하였다. 그렇게 진행하니

 

여러 feature map을 사용하는 것이 성능을 향상시킵니다.

 위의 표에서 6개의 feature map을 사용하는 것이 아닌 마지막 feature map을 사용하지 않고 5개의 feature map을 사용하는 것이 더 좋은 성능이 나옵니다.

5. Conclusions

 SSD는 multiple categories 1-stage detector이다. 제일 큰 특징은 여러 개의 featuremap으로부터 다양한 크기의 bbox를 가져오는 것이다. 이것이 매우 효과적으로 성능 향상에 도움이 되었다. 다른 obejcet detector(faster rcnn, yolo 등)와 비교하여 높은 인식률과 속도를 보여줍니다. 마지막으로 rnn이나 영상에서 object tracking에서도 잘 사용될 것이다.

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

본 논문 리뷰는 v1 : 4/6/15 (NIPS 2015)이 아닌 v3 : 6/1/16 을 기준으로 작성하였습니다.

Abstract

 이때 당시 SOTA는 SPPnetFast R-CNN 입니다. bottleneck 같은 region proposal(RP) 계산을 사용합니다. 본 논문에서는 Region Proposal Network(RPN)을 소개합니다. RPN이란 전체 이미지를 CNN시킨 feature map을 공유하는 네트워크로 RP를 cost 부담 없이 사용할 수 있다고 합니다. (Free Time and Accuracy)

 RPN은 Fully Convolutional Network로 각 지점에서 Bbox 와 classifier을 동시에 예측할 수 있다고 합니다. 여기서 중요한 점은 Fast R-CNN이 detection 하는 것을 그대로 가져왔으며 단지 바뀐점은 RP를 RPN을 이용하는 것입니다. 결국, 이 논문은 RPN과 Fast R-CNN을 feature map을 공유하는 한 개의 네트워크로 합친 것입니다.

 성능은 뒤에서도 설명하겠지만, backbone으로는 VGG-16을 사용하고 PASCAL VOC 2007 test set에 대한 결과로 79.2%mAP가 나왔습니다.(train set은 VOC 2007+2012 trainval을 사용 하였습니다.) 속도는 모든 단계를 포함해도 이미지당 198ms이 나온다고 합니다.

1. Introduction

  1. R-CNN - Fast R-CNN - Faster R-CNN으로 이어져 왔습니다.

  2. Selective Search(SS)의 경우 RP를 찾는 유명한 방법이지만 이미지당 2초씩 계산 시간이 걸리기 때문에 real-trime object detection에는 적합하지 않습니다.

  3. EdgeBoxes라는 이미지당 0.2초가 걸리는 방법이 나왔지만 결국엔 detection 부분에서 여전히 오래 걸립니다.

    • 이유로는, RP를 찾는 부분에서 GPU가 아닌 CPU를 사용해야합니다. GPU로 재구현하는 방법이 존재합니다.
    • 하지만 이 또한 down-stream detection network를 무시하는 것과 sharing computation(공유 계산...? 계산한 것을 공유한다는 뜻인 것 같습니다.)를 하지 않는 문제가 있습니다.
  4. 이 논문에서는 위의 문제들을 우아하게(?) 알고리즘적으로 해결했다고 합니다

    바로, RPN입니다. 즉, 테스트 시간에 convolution들을 공유한다면 가장 끝에서 계산 시간이 줄어들 것이라고 합니다. (여기선 이미지당 10ms가 걸린다고 합니다.)

    Fast R-CNN에서 feature map이 RP로 사용될 뿐만 아니라 RP를 생성하는 것을 봤습니다. 따라서, 막 feature map이 만들어졌을 때, RPN을 feature map으로 쌓아서 만들고 각 지점을 정형화된 grid로 나눈다면 bbox와 classifer을 동시에 할 수 있을 것이라고 생각했습니다. 즉, RPN은 fully convolutional network와 비슷한 것이며 detection proposal들을 만드는 것을 end-to-end로 학습할 수 있다고 합니다.

 RPN은 SPPnet이나 Fast R-CNN과 같은 일반적인 방법들과는 달리 다양한 scale과 aspect ratio에서도 RP를 효과적으로 예측할 수 있도록 만들어졌다고 합니다.

  1. 일반적으로 (a)나 (b) 같은 방법으로 다양한 scale과 aspect ratio에서 RP를 예측한다고 합니다.

  2. 본 논문은 (c)와 같은 방법으로 Archor라는 다양한 scale과 aspect ratio를 가진 참고 박스를 소개합니다.

  3. 즉, 여러 크기의 이미지를 열거하거나(a) 많은 scale 또는 aspect ratio들을 사용하는 것(b)보다 단일 scale의 이미지를 사용하는 것(c)이 효과적이며 빠릅니다.

    본 논문의 RPN은 RP를 위한 fine-tuning과 object detection을 위한 fine-tuning을 선택적으로 학습시킬 수 있습니다. 또한, 빠르게 수렴합니다.

    본 논문은 포괄적으로 평가하였는데,

  4. PASCAL VOC detection benchmarks에서 SS와 RPN을 비교 ( with Fast R-CNN)
    => SS와 비교해 proposals들을 생성하는데 단지 10ms만 걸렸다.

  5. very deep network의 문제인 시간 부하를 모든 단계를 다 포함해도 5fps의 성능이 나온답니다. 물론, 속도와 정확도를 버리지 않고도 작동함. (GPU를 사용할 경우)

  6. MS COCO dataset에 대해 결과를 연구하였다.

  7. ILSVRC 와 COCO 2015 대회에서 ImageNet detection, ImageNet localization, COCO detection, 과 COCO segmentation 에서 1등을 했다고 합니다.

  8. deep 해질수록 더 높은 정확성을 가진다고 합니다. [resnet][18]

  9. 본 논문의 첫 논문인 v1 이후로 3D object detection, part-based detection, instance segmentation, image captioning, 그리고 Pinterests 에서 수용하고 사용했다고 합니다.

 결국, "많은 결과를 토대로 Faster R-CNN은 실용적이며, object detection 정확도를 높이는 방법이다" 라고 합니다.

2. Related Work

2-1. Object Proposals

 19, 20, 21 에 object proposal에 대한 포괄적인 survey와 비유가 있다고 합니다. (자기들도 설명이 귀찮았나 봅니다...) 크게 두 가지 경우가 있습니다.

  1. 픽셀들끼리 묶는 SS, CPMC, 그리고 MCG이 있습니다.

  2. 슬라이딩 윈도우 기법을 사용하는 objectness in windowsEdgeBoxes가 있습니다.

    Object Proposal 기법은 SS를 이용한 object detection, R-CNN, 그리고 Fast R-CNN에서 사용되었습니다.

2-2. Deep networks for Object Detection

 R-CNN은 기본적으로 CNN들의 end-to-end로 학습을 하여 배경 또는 사물들인지 RP를 통해 판별합니다. 또한, 기본적으로 classifier로 동작하지 object bound을 예측하지는 않습니다. (물론, bbox 회귀는 제외합니다.)
따라서, RP 모듈에 의해서 성능이 좌지우지됩니다. (참고 문서 : comparisons)

 Overfeat, Deep neural networks for object detection, Scalable object detecton using deep nueral networ, Scalable high-quality object detection 과 같은 논문에서는 deep network를 object bbox에 사용하는 것을 제안합니다.

 Overfeat 기법에서 fully-connected 층은 단일 사물의 위치를 boxing하는 예측을 위해 학습됩니다. 즉, 한 image안에 여러개의 사물이 있을 경우 각 사물마다 bounding box를 생성하는 역활입니다. 또한, 여러 사물을 찾는 convolutional 층을 조정하는데 사용됩니다.

 MultiBox 기법( 위에서 Overfeat를 제외한 논문들 )은 fully-coonected 층을 Overfeat 기법처럼 다수의 사물을 동시에 예측하는 네트워크로 사용하며 RP를 추측합니다. 또한, MultiBox proposal 네트워크는 fully-connected 층을 사용하기 보단 단일 이미지 모음 또는 다중 이미지 모음을 사용합니다. (보통 224x224)
 또, proposal 과 detection 네트워크의 feature를 공유하지는 않습니다.

 ** 아마도, overfeat의 장점과 MultiBox 장점을 다 가진다는 것을 표현하고 싶었던 것 같습니다.**

 convolution들의 계산을 공유하는 Overfeat, SPP, Fast-RCNN, 7, 그리고 semantic segmentation 들은 시각 인식 분야에서 정확도 같은 효율성에 관심을 가졌다. Overfeat 기법은 classfication, localization, 그리고 detection을 위해 이미지 피라미드로 부터 convolutional feature를 계산하였다. SPP의 feature map을 공유하는 adaptively-sized pooling, 30 그리고 semantic segmentation 또한 효과적인 region 기반의 object detection 이다.

밑의 사진은 SPP에 대해 짤막하게 설명한다. 즉, featurn map을 crop과 resize를 통해 detection 하는 것입니다.

 마지막으로 Fast R-CNN은 feature map을 공유하여 end-to-end detector 학습이 가능하며 정확도와 속도가 높다.

3. Faster R-CNN

 Faster R-CNN은 2개의 모듈로 이루어져있습니다. 첫번째 모듈은 PR을 만드는 deep fully convolutional network 이며, 두번째 모듈은 Fast R-CNN detector 처럼 PR을 사용하는 것입니다.

전체 시스템은 밑의 그림 처럼 통합된 네트워크가 단일입니다.

 그 당시 뉴럴 네트워크에서 유명했던 attention 메카니즘을 RPN에서 볼 수 있다.

3-1 에서는 RPN의 구조와 요소 를 소개할 것이며 3-2에서는 feature shared 모듈을 개발하는 알고리즘을 볼 것입니다.

3-1. Region Proposal Networks

 RPN의 입력은 이미지이며 출력은 사물 점수를 포함한 사각형의 object proposal 셋이다. 즉, classifier와 bbox가 된 것입니다. 본 논문에서 fully convolutional 층을 semantic segmentation의 fully convolutional 층처럼 만들었습니다.
또한, 두 네트워크를 같은 convolutional 층들로 사용했는데, 그 이유는 Fast-RCNN처럼 계산을 공유하기 위해서입니다. 실험에서는 ZFVGG-16을 사용했다고 합니다.

 RP을 뽑아내기위해, 최초의 convolutional 층들의 마지막 단에서 작은 네트워크로 분리했습니다. (위의 그림에서 proposals 부분) 이 작은 네트워크는 feature map을 n x n으로 나눈 window를 입력으로 가집니다. 각 슬라이딩 윈도우는 33에서 처럼 더 작은 차원의 feature와 맵핑됩니다. 이 feature은 다시 또 두개의 fully-connected 층들의 입력으로 들어가는데 box-regression layer(reg) 와 box-classification layer(cls)이다. 본 논문에서 n은 3으로 정하여 사용하는데, ZFVGG-16에서 잘 작동하기 떄문이다.

 나눠진 네트워크는 위의 그림처럼 생겼다.
 미니 네트워크는 슬라이딩 윈도우 만듦새를 사용하기 때문에 fully-connected layer들은 모든 부분 위치에서 공유된다. 즉, 위의 사진에서 저 부분에서 나온 feature들이 cls 와 reg에서 공유한다는 뜻이다. 이 구조는 자연스럽게 n x n conv layer를 거쳐 두 개의 1 x 1 conv layer로 구현된다.

3-1-1. Anchors

 각 슬라이딩 윈도우 위치에서 동시에 여러 RP들을 예측할수 있는데 최대 k개 입니다. 따라서 reg 층에서는 k개의 박스들에서 4k개의 박스 요소 출력을 가지며, cls 층에서는 각 proposal에서 사물일 확률과 배경일 확률 총 2k개의 출력을 가집니다. 이 k개의 proposal들은 anchor라고 부르는 k개의 참고 박스를 매겨변수로 가집니다. 앵커는 슬라이딩 윈도우의 중심좌표를 가지며, scale과 aspect ratio와 관련이 있습니다. default 값으로 3개의 scale과 3개의 aspect ratio인데, 각 슬라이디 윈도우마다 k=9개의 앵커를 가지는 것입니다. 보통 feature map은 W x H(~2,400)이므로, 결국 W x H x K의 앵커들을 가집니다. ex) if w = h = 2400, k = 9 ==> 51,840,000‬개의 앵커를 가집니다.

Translation-Invariant Anchors

 짧게 설명한다면 이 앵커라는 개념은 본 논문에서 중요하다고 합니다. Multibox 방법은 k-means를 사용해서 800개의 앵커들을 만들어 낸다고 합니다. 하지만 이 앵커들은 사물이 바뀌면 제대로 작동이 안 된다고 합니다. 즉, 사물 당 800개 정도의 앵커들이 필요하다는 것입니다. 본 논문의 경우 9개의 앵커만 필요합니다. 이것은 모델의 크기를 줄이는 역할을 합니다. 밑의 표를 살펴보면 차이가 많이 납니다.

content Multibox Faster-RCNN
fully-connected output layer size (4+1) x 800 (4+2) x 9

 본 논문에서는 Faster-RCNN에 VGG-16 모델을 사용하고 Multibox에 GoogleNet을 사용했습니다. 음... 같은 모델을 사용했으면 좋을 거 같은데... 따라서 결과적으로

content Multibox(GoogleNet) Faster-RCNN(VGG-16)
parameters 1536 x (4+1) x 800 512 x (4+2) x 9

 따라서... 파라미터가 적어서 PASCAL VOC 같은 작은 데이터 셋에서 오버 피팅이 발생을 줄인다고 합니다.

Multi-Scale Anchors as Regression References

 (a) DPM 이나 CNN 기반은 방법들은 이미지 당 featuremap이 피라미드 형태입니다. 이미지들을 여러 크기로 만들고 그 이미지 마다 feature map들이 존재한다. 따라서 각 이미지 마다 계산을 해줘야 합니다. 이 방법은 유용하지만 시간이 너무 오래 걸립니다.
 (b) feature map에서 많은 크기와 비율의 슬라이딩 윈도우를 사용하는 방법입니다. 예를 들면, DPM에서는 비율이 다른 슬라이딩 윈도우를 사용하는데 5 x 7 그리고 7 x 5를 사용합니다. 이 방법은 (a)보다 성능이 좋아 다른 object detection에서 사용됩니다.

위의 방법들과 비교해서 앵커 피라미드를 사용하는 것이 매우 효과적입니다. cls와 reg에서 앵커 박스들을 참조합니다. 오직 앵커 박스는 단일 크기의 feature map에 적용됩니다. 즉, 1개의 슬라이딩 윈도우당 k개의 앵커 박스가 존재하는 것입니다.
 본 논문에서는 3가지의 크기와 3가지의 비율을 가진 총 9개의 앵커 박스를 사용했습니다. 크기의 경우 128x128, 256x256, 512x512을 사용했으며 비율의 경우 2:1, 1:1, 1:2를 사용했습니다.

따라서, 다양한 크기의 앵커 박스를 사용함으로써 다른 cost(공간이든 시간이든) 없이 특징들을 공유할 수 있습니다.

3-1-2. Loss Function

 RPN의 학습을 진행할 때, 각 앵커에 positive or negative의 라벨을 달아줍니다. positive 라벨에는 두 가지 경우가 있는데

  1. Ground-Truth box와 가장 높은 IoU를 가지는 경우

  2. IoU가 0.7 보다 높은 경우

    이런 경우 한 개의 GT box가 여러개의 앵커에 positive 라벨을 달아줄 수 있습니다. 보통 2번째 조건까지하면 posivive 샘픔가 나오는데 positive 샘플이 없는 특별한 경우가 발생할 수 있습니다. 따라서 밑의 조건을 더 추가합니다.

  3. IoU가 0.3 보다 낮을 경우 negative 라벨을 달아준다.

    마지막으로 0.3<IoU<0.7의 샘플들은 학습 데이터로 사용하지 않습니다.

    이런 방법들로 objective function은 Fast R-CNN의 multi-task loss를 따릅니다. 밑은 이미지당 가지는 손실 함수의 정의입니다.

i : batch 당 앵커의 인덱스.
pi : 앵커 i가 사물로 인식한 확률. (score)
pi*: Ground-Truth 라벨. ( 1: positive, 0: negative)
ti: bbox의 좌표(보통 중앙의 x, y, w, h)
ti*: Ground-Truth의 bbox 좌표
Lcls: classification loss. 사물인지 배경인지(둘 score)
Lreg: Regression loss. 다시 밑의 수식으로 나뉨.
$$
Lreg(ti, ti_) = R(ti - ti_) $$
R: robust한 손실 함수.(smooth L1)
pi*Lreg: positive일 때 작동한다는 뜻.

각각 cls와 reg의 출력은 {pi}, {ti}로 이뤄져 있다. Ncls 와 Nreg에 의해 표준화되며, λ에 의해 균형잡힌 가중치가 나옵니다.
보통 Ncls = 256, Nreg = ~2,400, λ = 10 으로 지정되어 있습니다.

밑의 수식은 bbox regression에서 t들에 대한 정의입니다.

  • x,y,w,h 는 중심의 x,y좌표와 박스의 너비와 높이입니다.

  • 0, 0a, 0* 는 각각 예측한 박스, 앵커 박스, GT 박스 의 값를 뜻합니다.

    따라서 이 수식은 앵커 박스를 통해 GT 박스로 근접해 가는 것으로 볼 수 있습니다.

    그렇지만 Resion of Interst(RoI: 관심 영역) 기반의 방법들인 R-CNN이나 Fast R-CNN과는 다른 방법으로 bbox regression을 얻었다. 기존의 방식들은 임의의 RoI 크기를 사용했으며 모든 region이 같은 regression weight를 사용한다. 보통 3 x 3 크기의 feature map들을 사용한다.

    본 논문은 다양한 크기들에서도 detection 하기 위해 k 개의 bbox regressor를 학습시켰다. 각 regressor은 단일의 크기와 비율을 가지는데 k 개의 regressor은 가중치를 공유하지 않는다. 따라서 앵커들로 구현하여 feature들이 다른 크기나 비율을 가지더라도 detection 할 수 있는 것이다.

3-1-3. Training RPNs

 RPN은 backpropagation 과 Stochastic Gradient Descent(SGD : 확률 경사 하강법) 을 통해 end-to-end 학습이 가능하다. Fast-RCNN과 같이 이미지의 중심으로 샘플링을 한다. 각 mini-batch는 많은 positive 와 negative 앵커가 포함된 이미지가 생기게 합니다. 모든 앵커들을 손실 함수로 최적화가 가능하지만, negative 샘플들로 치우치게 됩니다.
대신에, mini-batch의 손실함수로 사용하기 위해 무작위로 positive 와 negative 샘플들을 1:1 비율로 256개 앵커를 뽑아냅니다. 만약, positive 샘플이 128개(50%)보다 적다면, negative 샘플들로 채웁니다.

 무작위로 모든 layer들을 생성하며 가중치는 0-평균 Gaussian ditribution(표준 편차 0.01)로 초기화 합니다. (물론 RPN에서의 conv layer 입니다.)
 모든 layer들은 ImageNet classification의 pre-training된 데이터로 초기화합니다. ZF net의 모든 층 그리고 conv3_1 와 학습된 VGG net으로 조정합니다.
PASCAL VOC 데이터 셋에서 learning rate로는 0.001 (mini-batch 60k), 0.0001 (mini-batch 20k)으로 사용한다. momentum은 0.9, weight decay는 0.0005를 사용한다. 구현은 Caffe로 함.

3-2. Sharing Features for RPN and Fast R-CNN

 위의 내용까지는 PR을 위한 RPN이였다. 실질적으로 Detection을 하는 부분에서는 Fast-RCNN과 동일하다. 밑의 박스친 부분이 Detection 부분이다.

 RPN과 Fast-RCNN 둘다 독립적으로 훈련되어 각자 다른 방법으로 conv layer들을 수정한다. 따라서 이 두 네트워크가 따로 학습하는 것이 아니라 conv layer들을 공유하게 하기 위해서 밑의 3가지 방법을 소개 합니다.

3-2-1. Alternating Training

 이 방법은 본 논문에서 사용된 방법으로 먼저 RPN을 학습하고 proposal들을 사용해 Fast R-CNN을 학습하는 것입니다. 즉, Fast R-CNN은 RPN으로 초기화된 네트워크를 사용하며 이 단계를 반복하는 것입니다.

3-2-2. Approximate Joint Training

 RPN과 Fast R-CNN 네트워크를 병합하여 위의 사진에서 검은색으로 박스친 부분처럼 하나의 네트워크로 만드는 것입니다. SGD 단계가 반복할 때마다, 순전파 단계에서 PR을 생성할 때 Fast R-CNN detector가 학습하는 것처럼 고치고 미리 계산하는 것입니다. 역전파 단계에서는 RPN과 Fast R-CNN 둘다 손실이 결함된 형태로 역전파가 이루어집니다.
 이 방법은 구현이 쉽지만, proposal 박스들의 좌표 값을 무시하고 근삿값을 사용한다. ( 이 부분은 잘 모르겠습니다..)
이 방법으로 실험해본 결과 alternating training 결과와 거의 근접했지만 학습시간이 25~50% 더 걸린다고 합니다.

3-2-3. No-approximate Joint Training

 RPN으로 예측한 bbox를 함수의 입력으로 사용하는 것입니다. 즉, Fast R-CNN의 RoI pooling layer은 conv feature들을 입력을 받는데, 여기서 예측한 bbox 또한 입력으로 넣습니다. 이 방법은 이론적으로 Approximate Joint Training의 문제를 해결하는 것처럼 보입니다.
 하지만, 이것은 proposal 박스들의 좌표 값을 무시하는 문제를 해결하지 않습니다. 따라서 RoI pooling layer을 preopsal 박스들의 좌표 값을 추출할 수 있게 해야합니다. 이 문제는 사소한 문제인데 RoI warping을 사용하면 됩니다. 이 방법은 15 논문에서 잘 설명하고 있습니다.

3-2-4. 4-Step Alternating Training

 본 논문에서는 Alternating optimization을 통해 4 단계 학습 알고리즘을 사용합니다.

  1. RPN을 먼저 학습한다. ImageNet-pre-trained 모델로 초기화하고 미세 조정을 거친다.

  2. step-1의 RPN에서 만들어낸 proposal들을 사용하여 Fast R-CNN을 학습한다. 물론, Fast R-CNN또한 ImageNet-pre-trained 모델로 초기화한다. 아직까지는 두 네트워크가 conv layer들을 공유하지는 않는다.

  3. detector network를 학습된 RPN으로 초기화 한다. 여기서 conv layer들을 공유할 수 있게 수정하고 오직 RPN의 특별한 layer들만 미세 조정한다. 여기서 두 네트워크가 conv layer들을 공유한다.

  4. 공유하는 conv layer들을 유지하면서 Fast R-CNN의 특별한 layer들만 미세 조정한다. 여기서 두 네트워크는 같은 conv layer들을 공유하고 통합된 네트워크를 형성한다.

    실험 결과로, 위의 단계를 더 많이 반복해도 결과에 영향은 줄만큼은 아니였다고 합니다.

3.3 Implementation Details

 먼저 SPP나 Fast R-CNN 처럼 단일 크기의 이미지를 사용하고 600pixel로 재조정했다고 합니다. 물론, 여러 크기의 이미지를 사용하면 정확도는 올라가지만 그만큼 속도가 더 떨어지기 때문에 손해입니다.

 ZF나 VGG의 경우 마지막 단에서 1/16으로 줄어들며, 일반적인 PASCAL 이미지의 경우 500x375 크기인데 약 10pixel 정도로 줄어든다고 합니다. 그리고 작은 stride를 쓸수록 정확도가 높아진다고 합니다.

앵커의 경우 3개의 크기인 128², 256² 그리고 512² 를 사용하고 비율의 경우 1:1, 1:2, 2:1을 사용합니다. 앵커 파라미터 선택은 그렇게 중요하지 않습니다.
 이미지 경계를 지나가는 앵커 박스는 조심해서 다뤄야 합니다. 학습을 진행하는 동안은, 앵커들끼리 교차 경계가 생기는 것은 무시합니다. 따라서 loss에 영향을 끼치지 않습니다. 일반적으로 1000 x 600 이미지는 약 20000개의 앵커를 가지고 있습니다. 이럴 경우, 이미지당 6000개의 앵커가 훈련에 사용됩니다. 이렇게 되면 학습을 진행하면서 지속적으로 앵커들이 쌓이고 나중에는 활용할 수 없을 정도가 됩니다.
 그러나, 테스트를 하며서 fully convolutional RPN을 전체 이미지에 사용합니다. 이것으로 이미지 경계를 자른 교차 경계 proposal box들이 생깁니다. 몇몇의 RPN preoposal들은 서로 많이 겹쳐있습니다. 많이 겹쳐있는 박스들을 없애기 위해서 non-maximum suppression(NMS)라는 것을 cls을 기준으로 적용시킵니다. NMS의 IoU threshold를 0.7로 고치는데 약 2000개의 PR만 남게 됩니다. 즉, cls score가0.7 이하인 것은 다 지우는 겁니다. NMS 이후에, top-N로 순위가 매겨진 PR을 사용합니다. 이로써 Fast R-CNN 학습에는 2000개의 RPN proposal들이 사용되지만, 실제 테스트 시간에서는 몇 개의 proposal들만 사용됩니다.

Experiments

 실험 결과에 대해서는 따로 언급하지 않겠습니다.

Conclusion

 RPN으로 효과적이고 정확하게 RP를 만들 수 있습니다. detection 네트워크에 conv feature들을 공유하면서 RP 단계가 거의 자유롭게 할 수 있습니다. 본 논문의 방법은 통합되고, 딥 한 object detection을 실시간 시스템을 가능하게 합니다. 즉, RPN으로 RP 질을 높일 수 있으며 이로 인해 전체 object detection 정확도가 올라갑니다.

+ Recent posts