본문 바로가기

취업준비/인공지능

[AI Tech] 6주차 25-2차시 Modern CNN - 1x1 convolution의 중요성

25-2. Modern CNN - 1 x 1 convolution의 중요성

Modern이라는 말에는 어패가 있는 것 같다. → 기본적인 CNN보다 Modern 하지만 완전 Modern하지는 않는다.

1. AlexNet

Alex Krizhevsky, Ilya Sutskever, and Geoffrey Hinton, "ImageNet Classification with Deep Convolutional Neural Networks", NIPS, 2012

ILSVRC

[ ImageNet Large-Scale Visual Recognition Challenge ]

- Classification / Detection / Localization / Segmentation

- 1,000가지의 다른 카테고리

- 100만장 이상의 이미지

- 연습 세트: 456,567 이미지

Performance of ILSVRC
AlexNet

성공의 이유

- Rectified Linear Unit (ReLU)를 사용했다. → 효과적인 활성함수를 사용했다.

- GPU implementation (2개 GPU 사용하는 것)

- Local response normalization, Overlapping pooling

- Data augmentation

- Dropout

ReLU 활성함수

- 선형함수의 성질을 유지한다.

- 경사하강법으로 최적화하기 쉽다.

- Good generalization → 결과론적인 성절이다.

- Overcome the vanishing gradient problem ★★★

 

2. VGGNet

성질

- Increasing depth with 3 x 3 convolution filters (with stride 1)

- 1 x 1 convolution for fully connted layers

- Dropout (p=0.5)

- VGG16, VGG19

VGGNet

왜 3 x 3 convolution을 사용하는 가?

Receptive Field

3 x 3 을 2개 사용하는 것과 5 x 5 하나 사용하는 것과 Receptive Field 가 동일하다.

이때 파라미터 수      294,912        409,600

 

3. GoogLeNet

GoogLeNet

- GoogLeNet won the ILSVRC at 2014

- Inception blocks

Inception blocks

Inception Block

이점: 파라미터 수 줄어든다.

어떻게 줄이는지

1) Recall how the number of parameters is computed.

2) 1 x 1 convolution can be seen as channel-wise dimension reduction

benefit of 1x1 convolution

(좌)

3 x 3 x 128 x 128 = 147,456

(우)

1 x 1 x 128 x 32 = 4,096

3 x 3 x 32 x 128 = 36,864

4,096 + 36,864 = 40,960

★ 1x1 convolution enables about 30% reduce of the number of parameters!

 

4. Quiz

Which CNN architecture has the least number of parameters?

1) AlexNet (8-layers) → 60M
2) VGGNet (19-layers) → 110M
3) GoogLeNet (22-layers) → 4M

[답] 3번

 

5. ResNet

Deeper neural networks are hard to learn.

- Overfitting is usually caused by an excessive number of parameters.

- But, not in this case.

Add an identity map (skip connection)

ResNet
ResNet 2

Add an identity map after nonlinear activations:

nonlinear activations

Batch normalization after convolutions:

Bottleneck architecture

bottleneck

3x3 convolution 전에 input channel 줄이고, 3x3 convolution 후에 input channel을 늘리는 방식으로 적용했다.

이를 위해 3x3 convolution 앞, 뒤에 1x1 convolution을 넣었다.

History

 

6. DenseNet

DenseNet uses concatenation instead of addition

DenseNet

function이 기하급수적으로 증가한다.

Dense Block

Each layer concatenates the feature maps of all preceding layers.

The number of channels increases geometrically.

Transition Block

BatchNorm -> 1 x 1 Conv → 2 x 2 AvgPooling

Dimension reduction

DenseNet Structure

 

7. Summary

VGG: repeated 3x3 blocks

GoogLeNet: 1x1 convolution

ResNet: skip-connection

DenseNet: concatenation

 

 

 

 

 

©️NAVER Connect Foundation. All Rights Reserved.