CVPR 2019 ์ ๊ณต๊ฐ๋ ๋ ผ๋ฌธ์ผ๋ก, image classification ๋ฑ์ vision ๋ถ์ผ์์ ์ฐธ๊ณ ํ๋ฉด ์ข์ ์ฌ๋ฌ training ๋ฐฉ๋ฒ๋ก ์ ์ ๋ฆฌ ๋ฐ ์คํํ ๋ ผ๋ฌธ์ ๋๋ค.
Introduction

Image classification task์์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด์๋ ๋ ์ข์ ๋ ํฐ network ๋ฅผ ์ฐ๋ฉด ๋์ง๋ง, network๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ ์ด์ธ์๋ ์ฑ๋ฅ์ ์ข์ง์ฐ์งํ๋ ๋ง์ ์์๋ค์ด ์กด์ฌํฉ๋๋ค.
๋ณธ ๋ ผ๋ฌธ์์๋ ResNet50์ ๊ธฐ์ค์ผ๋ก network architecture๋ ํฌ๊ฒ ๋ณ๊ฒฝํ์ง ์๊ณ ์ฌ๋ฌ Trick ๋ค์ ์คํํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ฌ๋ฌ trick๋ค์ ์ ์ฉํ๋ฉด ์ ์ฉ ์ด์ ๋ณด๋ค ImageNet Top-1 accuracy๊ฐ 4% ๊ฐ๋์ด๋ ์ฆ๊ฐํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค(์์ Table 1).
๋ชจ๋ ์คํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋์ ์ด๋ฏธ์ง ์ ์ฒ๋ฆฌ ์ฌ์ฉํฉ๋๋ค.
Preprocessing pipelines
- Randomly sample an image and decode it into 32-bit floating point raw pixel values in [0, 255].
- Randomly crop a rectangular region whose aspect ratio is randomly sampled in [3/4, 4/3] and area randomly sampled in [8%, 100%], then resize the cropped region into a 224-by-224 square image.
- Flip horizontally with 0.5 probability.
- Scale hue, saturation, and brightness with coefficients uniformly drawn from [0.6, 1.4].
- Add PCA noise with a coefficient sampled from a normal distribution N(0, 0.1).
- Normalize RGB channels by subtracting 123.68, 116.779, 103.939 and dividing by 58.393, 57.12, 57.375, respectively.
๋ฌด์์ ์ํ ์ถ์ถ โ 32bit decode(0~255) โ ๊ฐ๋ก/์ธ๋ก ๋น์จ ํน์ ๋ฒ์๋ก random crop(์ง์ฌ๊ฐํ) โ 224x224 ๋ก resize โ ์ํ flip(prob = 50%) โ Hue, Saturation, Brightness augmentation โ PCA ๋ ธ์ด์ฆ ์ถ๊ฐ โ normalize
Additional Setting
- convolution filter, FC layer ์ weight ๋ Xavier Initialization
- Batch normalization : ๊ฐ๋ง=1, ๋ฒ ํ=0
- Optimizer : NAG(Nesterov Accelerated Gradient)
- # of GPU = 8
- Batch Size = 256
- Total Epoch = 120
- Initial learning rate = 0.1
- Learning rate decay : 30epoch ๋ง๋ค lr/=10 step decay
๋ ผ๋ฌธ์์ ์ ์ฉํ ๋ฐฉ๋ฒ๋ค์ ํฌ๊ฒ 3๊ฐ์ง๋ก, Efficient Training, Model Tweaks ๊ทธ๋ฆฌ๊ณ Training Refinement ์ ๋๋ค. ์๋์์ ๊ฐ๊ฐ์ ๋ฐฉ๋ฒ๋ก ์ ๋ํด ์ค๋ช ํ๋ ค ํฉ๋๋ค.
1. Efficient Training
์ด ํํธ์์๋ ๋ฅ๋ฌ๋ ๋คํธ์ํฌ์ ํจ์จ์ ์ธ ํ์ต๋ฐฉ๋ฒ์ ์ ์ฉํ์ฌ ํ์ต ์๋์ ์ฑ๋ฅ์ ๋์ด๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ํฌ๊ฒ Large-batch Training ๊ณผ Low-precision Training ์ ์ ์ํ๊ณ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ, batch size๊ฐ ํฌ๋ฉด ์๋ ด์ด ๋๋ ค์ง ์ ์๋๋ฐ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ค์ํ ์ฐ๊ตฌ๊ฐ ์งํ๋์์ต๋๋ค.
1.1 Linear Scaling Learning Rate
'Accurate, large minibatch SGD: training imagenet in 1 hour' ๋ ผ๋ฌธ์ ๋ฐ๋ฅด๋ฉด batch size๋ฅผ ํค์ธ์๋ก linearํ๊ฒ learning rate๋ฅผ ํค์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค. (๋ณดํต training ์๋๋ฅผ ์ํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ ์ฐฐ ๋๊น์ง batch size๋ฅผ ํค์ฐ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์คํํ๊ฒฝ์ ๋ฐ๋ผ batch size์ learning rate ์ค์ ์ด ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ์ฐ๊ตฌ๋ ์งํ๋์์์ต๋๋ค.)
1.2 Learning Rate Warmup

์ผ๋ฐ์ ์ผ๋ก learning rate ๋ initial setting ๊ฐ์์ ์กฐ๊ธ์ฉ ์ค์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํฉ๋๋ค(e.g. step decay, cosine decay,...etc). ํ์ง๋ง, learning rate warmup ๋ฐฉ์์ ์ด๊ธฐ learning rate๋ฅผ 0์ผ๋ก ์ค์ ํ๊ณ ์ผ์ ๊ธฐ๊ฐ ๋์ linear ํ๊ฒ ํค์ฐ๊ณ (warmup) ๊ทธ ๋ค์ learning rate decay๋ฅผ ์ ์ฉํฉ๋๋ค. (์ด ๋ฐฉ๋ฒ๋ ์์์ ์ธ๊ธํ ๋ ผ๋ฌธ์์ ์ ์ํฉ๋๋ค.)
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ด๊ธฐ์ 5epoch๊น์ง ์ ํ์ ์ผ๋ก learning rate๋ฅผ initial setting ๊ฐ๊น์ง ํค์ฐ๊ณ ๊ทธ ๋ค์ learning rate decay๋ฅผ ์ ์ฉํ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฌํ heuristic์ training์ ๋์์ ์ค๋๋ค.
1.3 Zero Gamma in Batchnorm
Batch normalization layer์์ input x์ ๊ณฑํ๋ ๊ฐ์ธ gamma๋ beta์ ๋ง์ฐฌ๊ฐ์ง๋ก trainableํ parameter์ด๋ฏ๋ก ํ์ต ์ initialize๋ฅผ ํด์ค์ผํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก gamma=1, beta=0 ์ผ๋ก intialize ํ๋๋ฐ, ResNet ๊ฐ์ด residual connection์ด ์๋ network๋ฅผ ํ์ตํ ๋๋ gamma๋ฅผ 0์ผ๋ก initialize ํด์ฃผ๋ ๊ฒ์ด ํ์ต ์์ ์ฑ์ ๋์ฌ์ค๋ค๊ณ ํฉ๋๋ค.
1.4 No Bais Decay
'Highly scalable deep learning training system with mixed-precision: Training imagenet in four minutes' ๋ ผ๋ฌธ์ ๋ฐ๋ฅด๋ฉด L2 regularization ์์ weight ์๋ง decay๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด overfitting์ ๋ฐฉ์งํ๋๋ฐ ํจ๊ณผ์ ์ด๋ผ๊ณ ์ธ๊ธํฉ๋๋ค. ๋ณธ ๋ ผ๋ฌธ์์๋ weight ์ด์ธ์๋ decay๋ฅผ ์ ์ฉํ์ง ์์ต๋๋ค. bias ๋ฟ๋ง ์๋๋ผ, batch norm์ gamma, beta์๋ ์ ์ฉํ์ง ์์ค๋น๋ค.
1.5 Low-precision Training
์ผ๋ฐ์ ์ธ neural network์์๋ 32-bit floating point(FP32) precision์ ์ด์ฉํ์ฌ ํ์ต์ ์ํค๋๋ฐ, ์ต์ ํ๋์จ์ด์์๋ lower precision(FP16) ๊ณ์ฐ์ด ์ง์๋๋ฉด์ ์๋์์ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค. ํ์ง๋ง, FP16์ผ๋ก precision์ ์ค์ด๋ฉด ์๋ฅผ ํํํ๋ ๋ฒ์๊ฐ ์ค์ด๋ค๋ฉด์ ํ์ต ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค. ๋ณธ ๋ ผ๋ฌธ์์๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Mixed precision training์ ์ ์ฉํ์ฌ network๋ฅผ ํ์ต์ํต๋๋ค.
2. Model Tweaks
Model Tweaks์์๋ ResNet architecture์ ๋ง์ด๋ํ ์์ ์ ํตํด ์ฑ๋ฅ์ ๋์ด๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ข์ธก ๊ทธ๋ฆผ์ vanilla ResNet ๊ตฌ์กฐ์ด๊ณ , ์ฐ์ธก์ ResNet-B, ResNet-C, ResNet-D๋ ๋ณธ ๋ ผ๋ฌธ์์ ์ ์ํ๋ ๊ตฌ์กฐ์ด๋ฉฐ resnet์ input stem ๋๋ down sampling ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.


- ResNet-B
ResNet์ downsampling module์ ์ผ๋ถ ๋ณ๊ฒฝํ๋ ๊ตฌ์กฐ์ ๋๋ค. Path A์์ convolution์ด stride 2์ธ 1x1์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ input feature map์ ์ผ๋ถ๋ฅผ ๋ฌด์ํฉ๋๋ค.(1x1 ์ธ๋ฐ stride2์ด๋ฉด ํ์นธ์ฉ ๊ฑด๋๋ฐ๋ฉด์ ๋ณด๋๊น) ResNet-B๋ path A์ ์ฒ์ ๋ convolution ์ stride๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ด๋ฅผ ๋ณด์ํฉ๋๋ค. 1x1์ stride 1๋ก, 3x3 ์ stride 2๋ก ๋ณ๊ฒฝํ๋๋ฐ 3x3์ stride 2๋๋ผ๋ filter๊ฐ ๊ฒน์น๋ ๋ถ๋ถ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌด์๋๋ feature map ๊ตฌ๊ฐ์ด ์์ด์ง๋๋ค.
- ResNet-C
์ด ๋ฐฉ๋ฒ์ inception-v2์์ ์ฒ์ ์ ์๋์๊ณ , SENet, PSPNet, DeepLabV3, ShuffleNet ๋ฑ์์๋ ์ฌ์ฉํฉ๋๋ค. convolution์ ๊ณ์ฐ๋น์ฉ์ด kernel width ๋๋ height์ quadratic์ ๋๋ค.(7x7 kernel์ 3x3 kernel์ ๋นํด 5.4๋ฐฐ์ ๋๋ค.) ๋ฐ๋ผ์ ์ด tweak์์๋ ResNet ์ ์ผ ์ฒซ convolution์ธ 7x7 kernel์ convolution์ 3๊ฐ์ 3x3 convolution ์ผ๋ก ๋์ฒดํฉ๋๋ค.
- ResNet-D
ResNet-B์์ ์๊ฐ์ ๋ฐ์ downsampling ๋ธ๋ก์ path B์ ์๋ 1x1 convolution ๋ํ input feature map์ ์ผ๋ถ๋ฅผ ๋ฌด์ํฉ๋๋ค. feature ๊ฐ ๋ฌด์๋์ง ์๋๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด stride๊ฐ 1๋ก ๋ณ๊ฒฝ๋ 1x1 convolution ์ด์ ์ 2x2 average pooling layer๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด์ ๊ฐ์ ๋ฐฉ๋ฒ์ด ๊ฒฝํ์ ์ผ๋ก ์ ๋์ํ๊ณ computational cost์ ๊ฑฐ์ ์ํฅ์ ๋ผ์น์ง ์๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํฉ๋๋ค.
๊ทธ๋ฅ 1x1 conv stride 2๋ฅผ stride 1๋ก ๋ฐ๊พธ๋ฉด ๊ทธ ์ฐ์ฐ์์ ๋งํผ์ ์ฐ์ฐ๋์ด 2๋ฐฐ๊ฐ ๋๊ธฐ๋๋ฌธ์, average pooling ์ผ๋ก feature spatial size๋ฅผ ์ค์ด๊ณ stride 1์ 1x1 conv ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
Experimental Results of Model tweaks

์คํ ๊ฒฐ๊ณผ๋ ResNet-D๊ฐ ์ฝ๊ฐ์ FLOPS ์ฆ๊ฐ๊ฐ ์์ง๋ง, Top-1 accuracy๊ฐ 1% ๊ฐ๋ ์ฆ๊ฐํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
3. Training Refinement
์ด ํํธ์์๋ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ์๋ 4๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ ์ ์ํฉ๋๋ค.
3.1 Cosine Learning Rate Decay
cosine ํจ์๋ฅผ ์ฌ์ฉํ์ฌ learning rate๋ฅผ ๋ณ๊ฒฝํ๋ decay ๋ฐฉ๋ฒ์ด๋ฉฐ, ์ด ๋ฐฉ์์ผ๋ก ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค๊ณ ํฉ๋๋ค.
3.2 Label Smoothing
๊ธฐ์กด์๋ classification task์์ network๋ฅผ ํ์ต์ํฌ ๋ ์ ๋ต์ 1 ๋๋จธ์ง๋ 0์ธ one-hot vector๋ฅผ label๋ก ์ฌ์ฉํฉ๋๋ค.


Label smoothing์ 1,0 ๋์ smoothing ๋ label์ ์ฌ์ฉํฉ๋๋ค.
3.3 Knowledge Distillation
Knowledge distillation์ ์ฑ๋ฅ์ด ์ข์(ํ์ต๋) teacher model๋ก parameter ๊ฐ ๋ ์ ๊ณ ์ฐ์ฐ๋์ด ์ ์ student model์ ํ์ต์์ผ์ teacher model์ ์ฑ๋ฅ์ ๋ฐ๋ผ๊ฐ๋๋ก ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ ๋๋ค.
Teacher model๋ก ResNet152 ๋ฅผ ์ฌ์ฉํ๊ณ student model์ Resnet50์ ์ฌ์ฉํฉ๋๋ค.
3.4 Mixup Training
Mixup augmentation์ image space์์ ๋ image์ label์ weighted linear interpolationํ์ฌ ์๋ก์ด ์ํ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ฉฐ weight ๋น์จ์ ๋ฐ๋ผ ์ ๋ต label์ ๋น์จ๋ ๋ฌ๋ผ์ง๋๋ค.


Experimental Results of Training Refinement

Transfer Learning - Object detection, Semantic segmentation


์์์ classification์ ์ ์ฉํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ค์ object detection, semantic segmentation์ ์ ์ฉํฉ๋๋ค. ์คํ๊ฒฐ๊ณผ๋ ๋๋ถ๋ถ ์ฑ๋ฅ์ด ํฅ์๋์ง๋ง segmentation task์์๋ label smoothing ๊ณผ mixup ๋ฑ์ ์คํ๋ ค ์์ข์ ํจ๊ณผ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๋ณธ ๋ ผ๋ฌธ์์๋ ์ฌ๋ฌ ๋ง์ ๋ ผ๋ฌธ์์ ์๊ฐ๋์๋ deep neural network ์ training ๊ธฐ๋ฒ๋ค์ ํ๋ํ๋ ์คํํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก classification task์์ network๋ฅผ develop ํ๋ ๊ฒ ์ด์ธ์ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ก ๋ค์ด network์ ์ฑ๋ฅ ๋ฐ ํจ์จ์ฑ์ ๋์ฌ์ค๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ํ classification ์ด ์๋ ๋ค๋ฅธ task์๋ ์ ์ฉ๋๋ ๋ฐฉ๋ฒ๋ก ๋ค์ด ๋ง์ผ๋, ๋ฅ๋ฌ๋์ผ๋ก ๋ชจ๋ธ์ training ์์ผ์ผํ๋ ๊ฒฝ์ฐ ๊ผญ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋ ผ๋ฌธ์ ๋๋ค.
'๐ Research > Image Classification' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ฐ๋จ ์ค๋ช ] ๊ธฐ๋ณธ์ ์ธ CNN ์ํคํ ์ฒ ์ค๋ช | VGGNet, ResNet, Densenet (0) | 2022.02.02 |
---|