[논문 리뷰] Recent advances in convolutional neural networks

뱅모·2022년 12월 26일
0

2023 동계 Paper Review

목록 보기
1/5
post-thumbnail

본 Paper Review는 고려대학교 스마트생산시스템 연구실 2023년 동계 논문 세미나 활동입니다.
논문의 전문은 여기에서 확인 가능합니다.

Abstract

  • Annotated data & GPU의 발달로 CNN 연구는 빠르게 성장하였고 수많은 Task에서 SOTA를 달성한 구조
  • Layer Design / Activation Function / Loss Function / Regularization / Optimization / Fast Computation 의 측면에서 CNN의 발전과정을 살펴보는 논문
  • CV / Speech / NLP 등 여러 적용 분야들도 소개해줌

1. Introduction

CNN의 역사에 대한 파트입니다.
LeNet-5, AlexNet, ZFNet, VGGNet, GoogleNet, ResNet 과 같은 대표적인 CNN 모델들이 소개됩니다.

간단하게 트렌드를 설명드리자면 CNN 구조는 점점 더 Deep해지는 경향을 보입니다.
장점으로는 increased nonlinearity를 가지고 target function을 더 잘 근사하게되고 feature representations을 더 잘 얻게되어서 Task를 해결하는 데에 도움이 됩니다.
단점으로는 네트워크의 복잡성이 대표적입니다. 이로 인해 optimize하기 어려워지고 overfitting에 빠지기 쉽습니다.

장점은 유지한채 단점을 해결하려는 노력은 계속되고 있습니다.

본 논문의 연구자들은 CNN의 전반부터 구성하는 요소들 활용 분야들까지 전범위에 걸쳐서 Survey 했습니다.


2. Basic CNN components

CNN 구조를 표현하기 위해 다양한 변형이 있지만, 일반적으로는 다음과 같이 3개의 layer가 대표적입니다.

  • Convolution layer : input의 feature representations을 학습

수식으로 표현하면 위와 같고, w는 weight, x는 input patch, b는 bias입니다.
여기서 w는 k번째 feature map의 weight으로 l번째 layer의 모든 feature map을 산출하는데 공유됩니다. 해당 weight sharing 방법론은 복잡성을 줄이고 네트워크를 학습하기 쉽게 만드는 장점이 있습니다.

Conv 층을 거쳐가면서 edges & curves와 같은 간단한 정보부터 abstract feature를 인코드할 수 있도록 학습됩니다.

다음으로 nonlinear feature를 탐지하기 위해 nonlinear activation function을 거치게 됩니다. 일반적으로는 sigmoid, tanh, ReLU가 사용됩니다.

  • Pooling layer : Shift-invariance를 획득하기 위해 feature map의 해상도를 줄이는 층

일반적으로 두 개의 Conv layer 사이에 위치하게 됩니다.

average-pooling / max-pooling이 대표적입니다.

  • Fully-connected layer : 고차원의 추론을 위한 층

Global semantic information을 만들어내기 위해 이전 층의 모든 뉴런을 다음 층의 뉴런과 연결시킵니다.
항상 필요한 층은 아니며 1x1 conv layer로 대체 가능합니다.

위는 CNN의 loss function 입니다. CNN을 학습시키는 것은 global optimization 문제입니다. 위 loss를 minimize하여 최적의 paramters를 찾아냅니다.
SGD가 일반적인 solution입니다.


3. Improvements on CNNs

2012년 AlexNet의 성공 이후 CNN은 다양하게 향상을 거뒀습니다. 차례로 6개의 측면에서 CNN이 어떻게 발전해왔는지 알아보겠습니다.


Convolutional layer

기본 CNN의 Convolution filter는 GLM(generalized linear model)로 latent concept의 객체들이 linearly하게 나뉘어져있는 경우 작동을 잘했습니다.
Representation ability 향상시키기위해 여러가지 발전이 있었습니다.

Tiled convolution

Weight sharing 방법은 파라미터의 수를 급격하게 낮췄지만 invariance한 특성을 학습하는 데에는 제한이 있었습니다.

Tiled CNN은 rotational하고 scale invariant한 features를 학습하기 위해 feature map을 여러개 타일 깔듯이 사용합니다.
분리된 kernel이 같은 층에서 학습되며 이웃된 부분을 square-root pooling하여 complex invariance가 학습됩니다.

위 Fig 3.(b) 그림에서 볼 수 있듯이 k개의 유닛에 convolution 연산이 적용되며 k는 공유되는 weight 간의 거리를 조절할 수 있는 타일 사이즈로 이해하시면 됩니다.
k가 1이라면 기존의 Conv kernel과 동일하며 방법론을 제안한 연구자들은 NORB와 CIFAR-10 데이터셋에 적용해본 결과 k가 2일때 가장 좋은 성능을 냈다고 발표했습니다.

Tiled CNN은 기존 CNN 보다 small time series 데이터셋에서 좋은 성능을 냅니다.

Transposed conolution

Tranposed convolution은 Deconvolution 이나 Fractionally strided convolution으로도 알려져있는 것으로 기존 convolution의 반대로 생각하시면 됩니다.

muliple input activation을 single activation으로 연결시키는 기존 convolution과 반대로, deconvolution은 single activation을 multiple output activation과 연결 짓습니다.

위 Fig 3.(d) 그림을 보시면 4x4의 kernel 중 한 unit으로 unit stride와 zero padding을 거쳐서 3x3 kernel을 만들어냅니다.

Deconvolution의 stride는 input feature map에 대한 dilation factor를 제공하게 됩니다.
즉, Upsampling을 거친 후 convolution을 진행하는 것입니다.

주로 deconvolution은 visualizaiton, recognition, localization, semantic segmentation, visual question answering, super-resolution에 쓰입니다.

Dilated convolution

Dilated CNN은 CNN의 최근 발전으로 convolutional layer에 hyper-parameter 하나를 더 추가합니다.
Filter element 사이에 0을 끼워넣음으로써, 네트워크의 receptive field size를 늘리고 더 많은 relevant information을 다룰 수 있게합니다.

수식을 살펴보면, 1차원 dilated convolution with dilation l을 signal F, kernel k, size r을 포함한다고 했을 때 다음과 같이 표현가능합니다.

해당 공식은 2차원으로 확장되어도 똑같습니다.

위 Fig 3.(c)는 3 층의 dilated convolution layer를 보여주며 dilation factor l은 exponetial하게 증가하는 경우입니다.

Dilated CNN은 최근 scene segmentation, machine translation, speech synthesis, speech recognition 분야에서 좋은 성능을 보입니다.

Network in network

NIN은 convolution layer의 linear filter를 작은 네트워크로 대체합니다.
ex. multilayer perceptron conlution (mlpconv) layer

Latent concepts의 더 abstract한 representation을 근사하기 위함입니다.

말은 복잡해보이지만 위 Fig. 4. 그림을 보면 개념은 간단합니다.

mlpconv layer에서는 기존의 convolutional layer를 거친 후에 1x1 convolution을 거치는데 이는 ReLU로 이어지는 cross-channel parametric pooling 연산과 동일합니다. 마지막에는 global average pooling을 적용해서 마지막 layer의 feature map을 공간적으로 평균 짓게되고 softmax layer로 이어집니다. Fully-connected layer가 아니라 global average pooling을 택한 이유는 더 적은 parameter를 필요로하며 overfitting 위험을 줄일 수 있기 때문입니다.

Inception module

Inception module은 다양한 크기의 visual 패턴을 잡아내기 위해 다양한 크기의 filter를 사용하고 최적 sparse structure를 근사합니다.

일반적으로 하나의 Pooling layer와 다른 종류의 3가지 convolution 연산을 포함합니다. 3가지 convolution 연산은 1x1, 3x3, 5x5이며 이를 병렬적으로 사용한다면 computational complexity를 증가시키지 않고 CNN의 깊이와 넓이를 증가시켜 차원을 축소할 수 있습니다.

Inception module의 도움으로, 네트워크 파라미터는 급격하게 감소했습니다.

최근 논문에서는, 상대적으로 적당한 계산 복잡성에 고성능 네트워크 구조를 찾아내기 위해 representation size가 input에서 output으로 완만하게 감소하고, spatial aggregation이 표현 손실 없이 저차원 임베딩에서 수행되어야한다고 제안됩니다.

각 층에서의 filter 개수와 네트워크의 깊이의 균형이 이루어져야 최적의 성능을 발휘할 수 있습니다.

Fig. 5.(d)에서 알 수 있듯 inception module과 shortcut connections을 함께 쓰이는 연구도 활발히 진행 중입니다.


Pooling layer

Pooling은 convolution layer들 사이의 연결을 줄여서 computational burden을 낮춥니다.

L_p Pooling

L_p Pooling은 max pooling보다 일반화 성능이 좋습니다.

수식은 위와 같고, p가 1이면 average pooling, p가 inf이면 max pooling과 같습니다.

Mixed pooling

Random Dropout과 DropConnect에 영감을 받은 것으로 max pooling과 average pooling을 결합한 방식입니다.

수식은 위와 같고 여기서 람다는 0과 1 사이의 임의의 값으로 average pooling을 더 사용할 것인지 max pooling을 더 사용할 것인지 결정합니다. 순전파 때 결정되며 역전파 때도 동일하게 사용됩니다.

Overfitting 문제에 적용하기 좋으며, 당연하겠지만 각각의 Pooling 방법보다 더 좋습니다.

Stochastic pooling

해당 방법론도 Dropout에 영감을 받았습니다.

Max pooling이 하는 것처럼 각 pooling 지역의 max 값을 선택하는 것이 아니라, 다변량정규분포에 따르도록 랜덤하게 activation을 선택하게 됩니다. 이 경우 max 값이 아닌 값도 사용될 수 있습니다.

확률적으로 선택해야하기 때문에 확률 p를 결정해야하고 이는

와 같이 설정할 수 있습니다.

Stochastic component 때문에 max pooling에 비해 overfitting을 피할 수 있는 장점이 있습니다.

Spectral pooling

해당 방법론은 주파수 영역에서 input의 representation을 잘라냄으로써 차원 축소를 수행합니다.

mxm의 feature map을 hxw 크기의 feature map으로 변환하기 위해서 먼저 discrete Fourier transform (DFT)를 계산하고, 다음으로 중심에 hxw 크기의 주파수만 남기고 잘라내고, inverse DFT를 거쳐서 다시 spatial domatin으로 근사하는 과정입니다.

이는 max pooling과 비교했을 때, 동일한 출력 차원에 대해 더 많은 정보를 보존할 수 있습니다. 그리고 다른 pooling 기법들보다 급격한 차원 축소에서 자유롭습니다. 행렬 계산으로 수행되므로 computing cost도 낮습니다.

Spatial pyramid pooling

해당 방법론은 input size와 관계없이 고정된 길이의 representation을 만들어낼 수 있습니다.

SPP Pool은 이미지 크기에 비례하는 크기를 가진 local spatial bin에 입력 feature map을 입력하여 bin의 수를 고정합니다. 이는 sliding window 크기에 따라 output의 크기가 결정되는 방식과 다릅니다.

Multi-scale orderless pooling

해당 방법론은 전체 이미지와 여러 스케일의 local patch 모두로부터 activation feature를 추출합니다.

전체 이미지에서 activation을 추출하는 것은 기존의 CNN 방식과 같고 local patch로부터 activation을 추출하는 것은 더 local하고 fine-grained한 세부 정보를 획득하는 역할을 수행합니다.


Activation function

적절하게 활성화 함수를 선택하면 CNN의 성능을 해당 Task에 맞게 향상시킬 수 있습니다.
해당 파트는 간단한 수식과 설명으로만 넘어가겠습니다.

ReLU

음수 값을 가지면 0으로, 양수 값을 가지면 자기 자신을 내뱉는 활성화 함수.

max 연산만 사용하기 때문에 상당히 빠르고 sparse한 representations을 쉽게 얻을 수 있습니다.

역전파 시 ReLU 함수의 0 값에 의한 단절이 문제되곤 하지만, 경험적으로 sigmoid나 tanh 활성화 함수보다는 자주 쓰이며 좋은 성능을 보입니다.

Leaky ReLU

0을 내뱉어서 학습이 되지 않도록하는 ReLU의 단점을 극복한 활성화 함수입니다.
양수 값을 가지면 동일하게 자기 자신이 나오지만, 음수 값을 가질 때는 아주 작은 파라미터 람다를 곱한 값이 나오도록 합니다.

Parametric ReLU


앞서 본 Leaky ReLU와 유사하지만 사전에 정의한 파라미터 람다 대신에 정확도를 향상시키기 위해 adaptively하게 학습하는 파라미터 람다를 사용합니다.

물론 아주 작은 값을 파라미터로 사용하며 파라미터의 개수는 전체 네트워크의 채널 수와 동일합니다.
해당 활성화함수는 overfitting 위험이 추가되지 않고, computational cost 또한 추가되지 않습니다.
파라미터는 역전파를 통해 학습됩니다.

Randomized ReLU

양수 값을 가질 때는 동일하고, 음수 값을 가질 때는 Uniform 분포로부터 랜덤하게 샘플된 파라미터를 사용해서 값을 내뱉습니다.

랜덤한 특성 덕분에 overfitting을 줄일 수 있습니다.

제안한 연구자에 따르면 ReLU, LReLU, PReLU 보다도 RReLU가 좋은 성능을 보인다고 합니다.

ELU

연구자는 Exponential Linear Unit (ELU) 이 DNN의 학습을 빠르게 하고 더 정확한 분류 성능을 갖게 해준다고 주장합니다.

앞서 살펴본 활성화 함수와 동일하게, 양수 값은 자기 자신을 내뱉도록 해서 기울기 소실 문제를 피하게 하고, 음수 값은 더 빠른 학습을 가능하게 합니다.
Noise에 강건하다는 특성도 있습니다.

Maxout

해당 방법론은 k개 채널의 feature map이 있다면 그 중 가장 큰 값 내뱉는 활성화 함수입니다.

ReLU의 장점을 이용하고, Dropout의 효과도 볼 수 있습니다.

Probout

Maxout의 방법을 확률적으로 사용하는 방법론입니다.

자세한 설명은 스킵하겠습니다.


Loss function

특정 Task에 대해 적절한 loss function을 선택하는 것은 중요합니다.

Hinge loss

SVM과 같은 large margin classifiers를 학습하기에 적합한 방법론입니다.

위 수식에서 w는 weight, y는 class label(1~K)입니다.
Delta 함수는 맞췄을 때 1, 틀렸을 때 -1을 내뱉습니다.

p=1이면 Hinge-Loss (L1 loss) / p=2이면 Squared Hinge-Loss (L2 loss)입니다.
L2 loss는 미분가능하며, L1 loss에 비해 margin을 위반했을 때 더 큰 loss를 부과합니다.

Softmax loss

해당 loss는 multinomial logistic loss and softmax를 결합한 loss function입니다.
Softmax 함수는 0과 1사이의 값으로 output을 내뱉기에 확률로서 해석 가능하고 해당 컨셉을 Multinomial logistic loss로 계산하는 방법입니다.

이를 확장시켜 Large-Margin softmax (L-Softmax) loss도 제안되었습니다.

이는 angular margin을 도입한 방법인데 수식이 복잡하니 생략하겠습니다.

해당 Loss function은 상대적으로 어려운 학습 목표를 규정하는데 도움이 되고 overfitting을 효과적으로 피할 수 있다고 합니다. L-Softmax의 성능은 MNIST, CIFAR-10, CIFAR-100에서 기존 Softmax loss 보다 뛰어남이 입증되었습니다.

Contrastive loss


해당 loss 는 일치 또는 비일치로 분류된 데이터 pair 간의 similarity를 학습하기 위한 weakly-supervised scheme의 Siamese network를 학습하는데 일반적으로 사용됩니다.

위 방식은 모든 pair로 네트워크를 fine-tuning할 때 급격한 성능 감소가 있습니다. 왜냐하면 비일치 pair의 경우에만 fine-tuning 시 좋은 성능을 보이기 때문입니다. 일치하는 pair를 handling하는 것이 중요합니다.

해당 문제를 해결하기 위해서 연구자들은 위와 같은 double margin loss function 을 제안했습니다. 마지막 layer에서 contrastive loss를 계산하는 것이 아니라, 모든 layer에서 contrastive layer를 계산하고 각 layer의 loss를 위한 역전파는 한 번에 수행하는 것입니다.

Triplet loss


해당 loss는 세가지 유닛을 고려하는데 anchor instance, positive instance, negative instance 입니다.

위 수식에서 d function은 feature representation들 간의 L2 norm 입니다. 각각은 anchor, positive / anchor, negative의 L2 norm을 계산하고 차이를 본 것입니다.

Triplet loss의 목적은 anchor와 positive 간의 거리를 최소화하고, anchor와 negative 간의 거리는 최대화하는 것입니다.

이를 보완한 loss는 Coupled Clusters (CC) loss 이고 수식은 아래와 같습니다.

Kullback-Leibler Divergence

KLD는 같은 discrete variable x를 공유하는 두 개의 확률분포 p(x)와 q(x) 사이의 차이를 계산하는 measure입니다. 아래와 같은 식으로 표현 가능합니다.

KLD는 다양한 Autoencoders (AE)의 목적 함수 속 information loss의 measure로 널리 사용되어왔습니다.

또한 KLD의 symmetrical form인 Jensen-Shannon Divergence (JSD)는 아래와 같습니다. JSD를 최소화시키면 p(x)와 q(x)가 가능한 가깝게 만들 수 있습니다.

이는 Generative Adversarial Networks (GANs) 모델에서 일반적으로 사용됩니다.

각 모델들에 대한 자세한 Loss가 궁금하신 분들은 본 논문을 참고하시면 감사하겠습니다.


Regularization

Regularization은 deep CNN에서 무시할 수 없는 문제인 Overfitting을 효과적으로 줄일 수 있습니다.

lp-norm regularization

정규화는 모델 복잡성에 패널티를 주는 additional term을 추가하여 목적 함수를 수정합니다.

위와 같이 일반적인 loss function에 추가하여 regularized loss로 표현할 수 있습니다.
여기서 R(.)이 regularization term, 람다가 regularization strength 입니다.

lp-norm regularization은 R(.)로 아래와 같은 식을 사용하는 것입니다.

p가 1 이상이면 lp-norm은 convex하여, 최적화가 더욱 쉬워집니다.
p가 2일 때 일반적으로 l2-norm regularization은 weight decay로 불립니다.

Dropout

Dropout은 overfitting을 줄이는데 효과적입니다.

처음 제안되었을 때 fully-connected layers에 적용되었습니다.

Dropout은 네트워크가 특정 뉴런에 너무 의존적으로 학습되지 않도록 방지하고 특정 정보의 부재로 인해 더욱 정확해질 수 있도록 강제합니다.

Dropout 또한 많은 연구가 진행되었는데요, 몇 개만 나열하겠습니다.

  • fast Dropout / adaptive Dropout / Dropout before 1x1 conv layer / SpatialDropout

DropConnect

DropConnect는 Dropout을 한 스텝 일찍 적용하는 아이디어입니다. 뉴런의 output을 랜덤하게 끊는 것이 아니라 weight를 랜덤하게 0으로 두어 학습이 되지않도록 하는 것입니다.


Optimization

해당 파트는 논문에서 자세하게는 나와있으나 간략한 설명을 위해 저의 과거 자료로 대체하겠습니다.

Data augmentation

Deep CNN은 많은 양의 학습 데이터를 필요로 합니다.
CNN과 관련된 파라미터 수와 비교하여 상대적으로 부족한 데이터 수를 충당하는 방법이 Data Augmentation입니다.

데이터 본질을 바꾸지 않고 새로운 데이터로 변형하는 것이 중요한데, 대표적으로 sampling / mirroring / rotating / shifting / photometric transformations 등이 있습니다.

Diffeomorphisms을 랜덤하게 만들어서 데이터 증강하는 방법도 있다는데... 저는 모르겠습니다.

인터넷에서 이미지를 추가적으로 수집하는 방법도 있습니다. (이것도 데이터 증강..?)

Weight initialization

Deep CNN은 파라미터의 수가 많고 loss function이 non-convex하여 학습하기가 어렵습니다.

학습을 빠르게하고 기울기 소실 문제를 피하기 위해서 적절한 network initialization이 필수적입니다.

Bias 파라미터는 0으로 초기화할 수 있지만, weight 파라미터는 신중하게 초기화해야합니다.
초기화 작업을 수행하지 않으면 output으로 너무 큰 값이 나오거나 너무 작은 값이 나올 수 있습니다.

몇 가지 초기화 방법들을 나열하겠습니다.

  • zero-mean Gaussian distribution with standard deviation 0.01
  • Xavier : 활성화 함수로 sigmoid, tanh 등의 S자 모양 곡선을 사용할 때
  • He : 활성화 함수로 ReLU를 사용할 때

Stochastic gradient descent

역전파 알고리즘은 파라미터를 갱신하기 위해 gradient descent를 사용합니다.


Standard gradient descent 알고리즘들은 다음과 같이 매개변수를 갱신합니다.
여기서 expectation 값을 손실함수의 기울기로 바꾼 것이 SGD 입니다.

SGD는 적절한 학습률을 설정하는 것이 어렵습니다.
따라서 특정 값으로 정해놓고 학습이 진행되면서 점차 낮추는 방법을 선택할 수 있습니다.

불안정한 갱신을 극복하고자 velocity vector를 추가한 Momentum 방법론도 제안되었습니다.

Batch normalization

데이터 정규화는 주로 데이터 전처리의 첫번째 단계입니다.

Global data normalization은 모든 데이터를 평균 0, 분산 1의 분포를 따르도록 변형시킵니다.
하지만 이 경우 깊은 네트워크를 흘러감에 따라 값을 잃게 되고 정확도가 낮아집니다.

이러한 현상을 완화시키기 위해서 Batch Normalization (BN)이 제안되었습니다.

이는 많은 장점이 있습니다.
첫 번째로, internal covariant shift 를 줄였습니다.
두 번째로, 초깃값 의존도를 낮춰 gradient flow를 원활하게 했습니다.
세 번째로, divergence 위험 없이 높은 learning rate을 사용 가능하게 합니다.
네 번째로, Dropout의 필요성을 낮춥니다.
마지막으로, sturated model에 문제없이 saturating nonlinear activation function을 사용할 수 있습니다.

Shortcut connections

앞서 살펴보았듯 Deep CNN의 기울기 소실 문제는 가중치 초기화와 BN을 통해서 완화됩니다.
해당 방법들이 성공적으로 Overfitting을 막을 수는 있지만, 최적화 성능을 떨어뜨려 오히려 shallow 네트워크보다 안 좋은 성능을 가져올 수도 있습니다.

이러한 optimization 문제를 Degradation 문제라고 합니다.

LSTM에 영감을 받아 임의적 깊이를 사용하여 최적화를 가능하게 하는 highway network가 제안되었습니다.

해당 매커니즘은 input과 output의 크기를 같도록 강제하고, 수십 수백개의 layer들이 효과적으로 학습될 수 있도록 합니다.

해당 아이디어를 사용하여 큰 성공을 거둔 대표적인 모델이 Residual Nets (ResNet) 입니다.

위와 같은 수식으로 Shortcut connections을 수행하였고, 그 결과 굉장히 깊은 layers를 사용하면서도 안정적으로 Optimize 하는 것이 가능해졌습니다.
위 수식에서 f 함수는 Convolution, BN, ReLU, Pooling 등을 사용할 수 있습니다.

ResNet을 발전시킨 모델들도 많은데 본 논문에서 소개하는 모델은 다음과 같습니다.

  • Wide ResNets / Stochastic Depth ResNets / Dropout ResNets
  • ResNets in ResNets (RiR) / ResNets of ResNets (RoR)

4. Fast processing of CNNs

Computer Vision이나 머신러닝 Task에서 증가하는 challenge는 DNN 모델이 점점 더 복잡해진다는 것이다.

이 경우 Overfitting을 피하기 위해 많은 학습 데이터셋을 필요로 합니다.
하지만 거대한 학습 데이터셋은 제한 시간안에 네트워크를 어떻게 통과시킬 지가 새로운 challenge이다.

FFT

FFT-based 방법론은 많은 장점이 있습니다.

  1. 필터가 미니 배치에서 여러 이미지로 Convolution되기 때문에 필터의 푸리에 변환을 재사용할 수 있다.
  2. Output gradients의 푸리에 변환은 필터와 input 이미지 역전파 기울기 모두에게 재사용될 수 있다.
  3. input channel에 대한 합은 푸리에 도메인에서 수행되어, inverse 푸리에 변환은 이미지당 output channel당 한 번만 수행되면 된다.

정확한 이유는 잘 모르겠습니다만 학습과 추론 모두에서 CNN 모델의 수행 속도를 올려준답니다.

FFT 외에도 CNN의 수행속도를 높이기 위한 방법들이 제안되었습니다.

  • Structured transforms
  • Low precision
  • Weight compression
  • Sparse convolution

자세한 설명은 생략하지만, 추후에 더 공부해보도록 하겠습니다.


5. Applications of CNNs

CNN 모델들은 여러 분야에서 SOTA 성능을 달성했습니다.
아래에 몇가지 대표 분야들과 대표 CNN 모델들을 소개하겠습니다.
이번 장은 Review Paper의 형식을 띄고 있으니 저는 모델 이름 / 주요 개념들만 소개하고 궁금하신 분들은 해당 모델에 대한 논문을 찾아보시면 감사하겠습니다.

Image Classification

Large scale dataset classfication : filter size 줄이기, network depth 늘리기

  • AlexNet ~

Hierarchy of classifiers : class의 수가 많은 때의 classification 문제

  • Hierarchical deep CNNs (HD-CNNs)
  • coarse-to-fine classification paradigm

Subcategory classification
(Supervised)

  • fine-grained image datasets: Birds, Dogs, Cars, Plants
  • part-based R-CNN : Selective search
  • Deep LAC

(UnSupervised)

  • Unsupervised selective search
  • visual attention in CNN

Object Detection

Sliding window based approaches : highly computational cost

Object proposal based methods

  • Region-based CNN (R-CNN) : Selective Search (SS), computational cost high

  • OverFeat

  • Spatial pyramid pooling network (SPP net) : multi-stage pipeline

  • Fast RCNN

  • Faster RCNN : Region proposal network (RPN)

  • Online bootstrapping for CNN

  • Online hard example mining (OHEM)

  • YOLO : Object Detection --> Regression problem

  • SSD : Better than YOLO

Object tracking

Problem: view point change, illumination changes, occlusions

  • CNN as a base learner
  • CNN tracker with a shift-variant architecture : spatial and temporal structures
  • target-specific CNN for object tracking
  • visual tracking algorithm based on a pre-trained CNN

이밖에도

  • Pose estimation
  • Text detection recognition
  • Visual saliency detection
  • Action recognition
  • Scene labeling
  • Speech processing
  • Natural language processing

에 관한 문제들과 해결하기 위한 CNN 모델들이 소개되어있으니 관심있는 부분을 찾아 읽어보시길 추천합니다!


6. Conclusions and outlook

본 논문은 CNN의 최근 발전에 대한 방대한 Survey 논문입니다.

Layer design, activation function, loss function, regularization, optimization, fast computation
과 같은 6개의 측면에서 CNN의 발전을 살펴봤고
image classification, object detection, object tracking, pose estimation, text detection, visual saliency detection, action recognition, scene labeling, speech and natural language processing
과 같은 분야에서 어떻게 활용되는지를 보여줍니다.

하지만 CNN 또한 몇가지 개선사항들이 존재합니다.

  1. CNN이 점점 더 깊어짐에 따라서 large-scale dataset과 massive computing power 가 필요합니다. 하지만 Labeling된 데이터를 구하는 것은 쉽지 않기 때문에 unsupervised learning 방식의 CNN을 고민해볼 차례입니다.

  2. CNN을 새로운 task에 적용할 때 적절한 hyperparameters를 고민해야하는데 이게 쉽지 않습니다.

  3. CNN의 기반이 되는 단단한 이론이 부족합니다. 다양하게 좋은 성능으로 적용되고 있지만 이게 왜 좋은지 어떻게 잘 작용하는지에 대한 설명이 부족합니다.

profile
KU. SPS Lab 대학원생

0개의 댓글