반응형

연구/논문 리뷰 23

[ICLR 2019] ProxylessNAS: Direct Neural Architecture Search On Target Task And Hardware

ProxylessNAS: Direct Neural Architecture Search On Target Task And Hardware Problems To Solve 기존 cotroller를 사용하는 방식의 NAS는 많은 GPU Time이 걸렸다. 이를 해결하기 위해 NAS의 objective function을 differentiable하게 만들어 archtecture search를 한 시도는 GPU Time은 많이 줄일 수 있었으나 GPU Memory 사용이 많았다. 더불어 ImageNet과 같은 큰 데이터셋에 대해서는 시간이 오래 걸려 proxy를 사용하여, network를 evaluation을 하려는 시도가 있었으나 proxy task에 evaluation된 아키텍쳐가 target task에서 성..

[NIPS 2017] Attention Is All You Need

Introduction - Reccurent model은 input/output sequence의 심볼 포지션에 따라서 계산을 나눈다. 즉, sequence를 처리하기 위해 t번째 input에 대한 output을 만들기 위해, t번째 input과 (t-1)번째 hidden state를 사용한다. - 이는 학습 시 t번째 hidden state를 얻기 위해 (t-1)번째 hidden state가 필요함을 뜻한다. 즉, 순서대로 계산해야 하는데 이때문에 병렬 처리에 제한이 생긴다. - 더불어 한 sequence 내에서 단어가 멀 경우, 서로간의 정보를 이용하지 못하는 'long-term dependency problem'이 발생한다. 입력 sequence가 짧은 경우 문제가 되지 않지만 긴 sequence를..

[Arxiv] Single Shot Structured Pruning Before Training

Introduction SNIP을 structured setting으로 두고 적용한 논문이다. pruning시에 compute-aware scoring을 하여 가속에 초점을 맞춘 것이 특징이다. *3SP (Single Shot Structured Pruning) Method - 저자들은 SNIP의 setting을 효율적인 binary mask를 찾는 문제로 보았다. - convolution layer에서는 각 output channel에 linear layer에서는 각 hidden unit에 binary mask를 두었다. - SNIP에서 했던 것과 유사하게 세 가지 가정을 갖고서 변화율을 근사했다. 1. binary mask를 연속적인 변수로 근사하였다. 2. first-order taylor expa..

[ICLR 2020] Once for All: Train One Network and Specialize it for Efficient Deployment

Introduction - 기존의 efficient network를 디자인하는 방법은 크게 두가지, MobileNet, ShuffleNet과 같은 'Compact Model Design'과 Pruning, Quantization, Distillation을 이용한 'Model Compression'이 있다. 이 방법은 deployment scenario에 따라서 total cost가 선형적으로 증가함. 가령, 스마트폰에 모델을 탑재하려고해도 AP에 따라 specialized model이 달라질 것이다. - 이를 해결하기 위해 diverse sub-network을 가질 수 있는 'Once for All Network (OFA Network)'를 디자인했음. 플랫폼에 탑재 시에는 ofa network의 sub..

[ECCV 2018] ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design

Introduction 본 논문은 기존 경량화 모델에서 고려됐던 metric인 FLOPs이 간접적인 메트릭임을 지적하며 직접적인 메트릭인 speed와 latency를 언급했다. 더불어 네트워크 디자인에 대한 가이드라인을 제시하며 이에 따라 업그레이드된 ShuffleNetV2를 제안한다. 기존의 경량화 모델들은 주로 depth conv, ptwise conv, group conv과 같은 tensor decomposition을 활용하여 FLOPs을 줄이는 걸 목표로 디자인했다. 이를 따르면 실제 기기에 올라갈 때 빨라질 것 같지만 그렇지 않다. FLOPs만을 고려하는 디자인은 sub-optimal한 디자인일 수 밖에 없다. 1) FLOPs에는 영향을 덜 끼치지만 speed에는 영향을 끼치는 팩터가 있기 때문..

[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은 여러 사이즈의 필터를 모아놓은 모듈이다. 이..

반응형