반응형

연구 38

[CVPR 2018] ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

Introduction 본 논문은 pointwise group convolution과 channel shuffle을 활용하여 연산량을 줄이면서도 높은 성능을 보였다. Xception, ResNeXt의 경우 dense한 1x1 conv를 사용했기 때문에. 뿐만 아니라 이전포스트 'MobileNet'에서 보았듯이 1x1 conv를 활용하여 파라미터 수를 줄여 연산량을 줄일 수 있었지만 결과적으로 모델의 전체 연산량에서 많은 비율을 차지하는 것을 확인했다. 그리고 ResNeXt의 경우에는 3x3 conv를 하는 layer에만 group conv를 적용했는데, 이에 따라 각 residual unit에 대해 1x1 conv가 전체 연산량의 약 93%를 차지하는 것을 확인했다. 여튼, 알렉스넷보다는 13배 빠르고 ..

[Arxiv 2017] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

Introduction 본 논문은 모바일 환경에서 CNN 모델을 사용하기 위해 고안된 모델이다. 아이디어는 간단하다. 기존의 convolution 연산을 depthwise seperable convolution으로 잘 쪼개 필요한 연산량을 줄였다. 일반적인 convolution의 연산량이 어떤지 알아야 어떻게 이를 개선했는지 알 수 있을텐데 한번 살펴보자. 일반적인 conv는 input으로 $D_F \times D_F \times M$을 받으면 $D_G \times D_G \times N$ 으로 output feature map을 만들어낸다. 여기서 $M$은 input channel 개수를, $M$은 output channel 개수를 나타낸다. 그러면 Convolution filter는 $D_K \tim..

[CVPR 2016] Deep Residual Learning for Image Recognition (ResNet)

Introduction 이전 연구들(VGGNet, AlexNet, GoogLeNet)에서 레이어를 깊게 쌓을수록 데이터의 피쳐를 잘 추출할 수 있기 때문에 학습을 잘 할 수 있게 된다는 것을 알 수 있었다. 하지만, 레이어가 깊어지면 학습시키기가 어려워진다. 예를 들어, GoogLeNet의 경우 레이어가 깊어짐에 따라 'gradient vanishing'이 발생해 모델이 수렴하지 않거나 느리게 수렴하는 문제점을 갖고 있었다. 그래서 이를 해결하기 위해 'Auxillary Classifier'를 두어 해결하려는 시도를 했다. 뿐만 아니라 batch normalization layer를 둔다던가 초기값을 잘 설정(He Initialization, Xavier Initialization)하는 시도를 통해 해결..

[CVPR 2015] Going Deeper with Convolutions (GoogLeNet)

Introduction ILSVRC2014에서 1위한 GoogLeNet을 소개하는 논문이다. 성능을 높이기 위해 네트워크를 깊게 쌓고는 싶은데 computation cost가 많이 들어 이에 대한 고민을 슬슬 했던 것 같다. 모델에 Inception module을 도입했는데, dimension reduction을 통해 연산량을 줄이려고 1x1 conv를 도입한 것이 특징이다. 더불어 레이어를 깊게 쌓았을 때는 gradient vanishing이 생긴다. 이를 해결하기 위해 중간중간 inception module 뒤에 auxiliary classifier를 두었다. Achitecture Details Inception module Inception module은 여러 사이즈의 필터를 모아놓은 모듈이다. 이..

[Arxiv] cuDNN: Efficient Primitives for Deep Learning

Introduction cuDNN은 엔비디아에서 제공하는 DNN primitives를 모아놓은 라이브러리다. 본문에서는 CNN이 기존 선형대수 라이브러리와는 달리 dense kernel을 이용해 계산하는 점을 지적하며, 이를 위해 만든 최적화된 primitives를 어떻게 만들었는지 소개한다. Spatial Convolutions CNN에서 가장 중요한 연산은 convolution이다. 이때 필요한 파라미터는 다음과 같다. Convolution에는 input data와 convolutional filter 두 개의 input이 필요하다. input data는 미니 배치 내의 이미지 개수(N), 인풋 채널 개수(C), 이미지의 가로, 세로 (W,H)로 결정된다. convolutional filter는 아웃..

[AAAI 2020] Pruning from Scratch

Paper Link: https://arxiv.org/abs/1909.12579 Introduction 이전 리뷰에서는 Pruned Structure를 어떻게 하면 빠르게 수렴시킬 수 있고, 높은 성능을 낼 수 있을까에 대한 이야기를 하였습니다. "Lottery Ticket Hypothesis(LTH)"이후의 후속 논문들을 살펴보면 대개 Pruned Structure를 어떻게 하면 잘 얻을 수 있을지, 이 Structure는 어떤 성격을 갖고 있는지, 그리고 Winning Ticket은 어떻게 얻을 지와 같은 이야기들을 합니다. 하지만 여기서 필연적으로 '학습'이라는 과정이 필요합니다. 여기서 고민해볼 필요가 있습니다. 과연 '학습'은 Pruned Structure를 얻는 데 있어 꼭 필요한 걸까요? 답..

[AAAI 2019] TAPAS: Train-Less Accuracy Predictor for Architecture Search

Introduction NAS(Network Architecture Search)시에 child network의 성능을 트레이닝없이 추정할 수 있다면 아키텍쳐를 찾는 시간을 줄일 수 있을 것이다. 이에 대한 시도는 크게 두가지가 있었다. 첫 번째는 partial learning curve를 통해 네트워크의 성능을 예측하는 방법, 두 번째는 실험 DB를 통해 예측하는 방법이다. 전자는 특정 네트워크에 대한 partial training을 요구하고, 후자는 미리 많은 네트워크를 트레이닝 시켜둬야 하기 때문에 시간이 오래 걸린다. 본 논문에서는 데이터셋의 difficulty를 예측하여 unseen datasets에 대한 train-less accuracy predictor를 개발하였고, unseen datas..

반응형