본문 바로가기

반응형

Machine Learning Models

(56)
Pruning Filters for Efficient Convnets ImageNet challenge 이후 Convolutional Neural Networks (Convnets)는 높은 성능을 위해 점점 커지고 깊어졌지만 이에 대한 반대급부로 한정된 computational 리소스를 가진 임베디드 시스템에 모델을 deploy하기가 어려워지고 FLOPS의 증가로 inference 시간이 길어지면서 실시간 서비스가 중요한 웹 서비스에 부적합하게 되었습니다. 이 문제를 해결하기 위해 모델의 불필요한 부분을 제거하거나 (pruning), 모델 파라미터를 표현하는 bit 수를 감소시키는 (quantization) 등의 다양한 모델 압축 기법이 연구되고 있습니다. 이번 포스트에서는 그 중 모델의 영향력이 적은 파라미터를 통째로 제거하는 pruning 기법에 관해 살펴보려 합니다...
EfficientNet Convolution Neural Networks (CNN) 은 일반적으로 레이어가 많고 (deep), feature map의 수가 많고 (wide), resolution이 커야 더 좋은 성능을 얻을 수 있습니다. 하지만 구현 환경에 따른 resource는 한정되어 있다보니 baseline CNN을 구성한 이후 성능을 높이기 위해 굉장히 heuristic한 scaling을 하여 CNN의 complexity를 높이게 됩니다. EfficientNet은 CNN의 feature map 개수 (width), 레이어 개수 (deep), resolution 을 일정한 비율로 증가시키는 compound scaling 방법을 제안하였습니다. 이는 기존에 구성한 baseline 모델에 대해 모델의 depth, width,..
DenseNet ResNet이 layer의 shortcut connection이 convolution layer의 깊은 적층을 가능하게 보인 이후, 각 layer를 shortcut으로 잇고자 하는 다양한 architecture들이 발표되었습니다. DenseNet은 2016년에 발표된 CNN architecture중 하나로 CNN의 반복된 각 layer를 dense하게 연결한 구조입니다. DenseNet은 다음 그림과 같이 이전 layer들의 feature map이 다음 layer의 입력으로 dense하게 연결하는 구조를 가지고 있습니다. 입력 layer의 feature map은 이후 모든 layer의 입력으로 연결되고 그 다음 layer의 feature mpa은 그 이후의 모든 layer의 입력으로 연결됩니다. 따라서 ..
NASNet 최근 인공지능 학계에서 큰 화두가 되고 있는 분야는 바로 AutoML일 것입니다. AutoML이란 딥러닝 architecture를 사람이 직접 설계하는 것이 아닌 machine learning 방법론으로 설계하는 방법론으로 여러 방법론이 있습니다만, 이번 포스트에서는 학습을 통해 최적의 architecture를 찾아가는 architecture search 방법론을 알아볼 계획입니다. Architecture search에서의 학습은 유전 알고리즘, 강화학습, gradient 방식 등이 주로 사용되며 이번 포스트에서 알아볼 NASNet은 강화학습 기반의 architecture search 방법론입니다. Neural Architecture Search (NAS) 강화학습으로 최적의 architecture를 찾..
Xception Xception은 eXtreme Inception의 약자로 기존 Inception 모델이 채널, 공간 correlation을 분리한 것을 depthwise separable convolution으로 강화한 모델입니다. Inception V3과 비슷한 수의 파라미터를 가지면서 image classification에서 더 좋은 성능을 이끌어 냈습니다. Inception 일반적인 convolution은 높이, 너비의 spatial dimension과 channel dimension을 함께 correlation한 결과를 도출합니다. Inception은 이와 다르게 먼저 서너 개의 1 x 1 convolution으로 channel correlation을 먼저 매핑한 후 3 x 3, 5 x 5 convolution..
ShuffleNet V2 딥러닝 모델의 연산량을 측정하는 FLOPS는 딥러닝 모델 속도 측정에 관해 얼마나 정확한 지표일까요? ShuffleNet V2는 FLOPS 이외의 memory access cost 나 gpu/arm device 등 플랫폼에 따른 다른 요소들도 고려한다고 주장하며, 효율적인 CNN 모델 설계를 위한 4 가지 가이드라인을 제시합니다. 이 가이드라인을 기반으로 기존의 ShuffleNet을 개선한 모델을 제안합니다. Introduction Xception, MobileNet, ShuffleNet 등의 경량화 모델에서 group convolution과 depthwise convolution은 굉장히 중요한 요소로 작용합니다. 이러한 요소를 많이 사용하는 것은 이론상으로 FLOPS를 줄이지만 감소된 만큼의 속도 증..
ShuffleNet 모바일 같은 저사양 디바이스에 딥러닝 모델을 탑재하기 위해서는 제한된 하드웨어의 computation power에 맞춘 딥러닝 모델의 경량화가 필수적입니다. 모델 pruning, low-bit representation 등의 다양한 경량화 기법 중에서 ShuffleNet은 convolution 모델의 효율적인 디자인을 통해 더 적은 연산 (FLOPS) 으로도 좋은 성능을 달성하는 성과를 이루어냈습니다. ShuffleNet 그동안 학계에서는 convolution 연산을 효율화하기 위해 depthwise separable convolution이나 group convolution 등을 도입했습니다. ShuffleNet 의 주요 컨셉은 기존 Xception이나 ResNeXt의 비효율적인 pointwise con..
FLOPS (FLoating point OPerationS) - 플롭스 개발한 딥러닝 모델은 얼마나 빠를까요? 특히, 모바일 같은 저사양 디바이스에서의 딥 뉴럴 네트워크에서는 성능보다는 해당 사양에서 원활히 돌아가는지가 서비스 측면에서 매우 중요합니다. 물론, 성능은 최대한 유지하는 선에서 말이죠. 모바일 같은 엣지 디바이스에서의 딥러닝 모델을 위해서는 무엇을 고려해야 할까요? 먼저 모델의 크기일겁니다. (몇 MB 인지) 동작 시에 메인 메모리를 얼마나 잡아먹는지도 있겠죠. 메모리를 너무 많이 잡아먹으면 꺼지겠죠. 스트리밍 비디오 등 리얼 타임이 중요한 태스크에 대해서 동작 시간이 얼마나 걸리냐도 있겠습니다. 전력소모도 고려사항이 되어야 할겁니다. 게임 같은 어플리케이션을 켰을 때 배터리가 엄청나게 빨리는 것을 경험해보셨을 겁니다. 그렇다면 딥러닝 모델이 얼마나 가볍고 빠른..

반응형