글 작성자: 만렙개발자

인공신경망은 수많은 연구를 통해 모델의 아키텍쳐가 결정됩니다. 문제에 따라 맞는 방식으로 연구자들의 패턴인식과 경험을 통해 최적의 아키텍쳐를 찾아냅니다. 그 아키텍쳐 내에서 파라미터가 학습되고, 인공지능의 한 기술로서 문제를 해결합니다. 그런데 한 걸음 더 나아가서, 인공신경망의 구조까지도 학습을 통해 찾아내는 접근법으로 나아갔습니다. 그 대표적인 신경망 세개를 살펴보고자 합니다.

 

1. MobileNet

 

MobileNet은 모바일 및 임베디드 시스템 어플리케이션을 위하여 제안되었습니다. MobileNet은 깊이 분리가 가능한 간소화 아키텍처를 사용하여 경량 심층 신경망을 구축합니다. 시간과 정확도 사이를 효율적으로 교환하는 두 가지 간단한 전역 하이퍼파라미터를 이용해 사용자가 제한 시간을 조건으로 모델 빌더에 전달 할 수 있습니다. 그러면, 그 제한 시간에 적합한 크기의 모델을 선택할 수 있게됩니다. 즉, 원하는 모바일 및 임베디드 시스템 어플리케이션에서의 최적의 모델을 찾아낼 수 있는 것입니다. 

 

2. NASNet

 

NASNet은 새로운 검색 공간을 디자인하여 트랜스퍼할 수 있도록한 것이 가장 큰 특징입니다. CIFAR-10 데이터셋에서 최고의 컨볼루션 레이어 (또는 셀)을 찾고, 이 레이어를 ImageNet 데이터셋에 적용하는 방식으로 트랜스퍼 합니다. 즉, 작은 데이터셋에서 학습한 최고의 결과를 더 큰 데이터셋에 적용하는 것이죠. ImageNet 데이터셋에 적용할 때에는 레이어의 사본을 쌓아서 적용합니다. 이것을 NASNet 아키텍처라고 부릅니다. 결과적으로 사람이 연구한 최고의 아키텍쳐보다 정확도에서 1.2% 높고, FLOPS(Floating point operations per second)는 90억개나 줄어들었습니다. 이는 이전의 최신 모델에 비해 28% 적은 수치입니다.

 

3. AmoebaNet

 

AmoebaNet은 진화 알고리즘(Evolutionary Algorithm)을 활용하여 학습합니다. 진화 알고리즘 방식의 학습의 규모는 일반인이 엄두를 낼 수 없을 정도로 엄청납니다. 천 개의 동일하고 간단한 시드 모델의 집합으로 시작합니다. 이 중에 한 쌍의 신경망을 무작위로 선택합니다. 그리고 학습을 진행하여, 더 높은 정확도를 가진 신경망은 선택(부모)되고, 복제 모델(자식)을 생성하여 변이시켜 천 개의 모델집합에 추가합니다. 낮은 정확도를 가진 신경망은 버립니다. 이렇게 많은 단계를 연속적으로 학습하면 모델의 집합은 개수는 그대로이지만 성능이 높아져, 진화하게 됩니다. 변이의 과정은 단순하게는 연결을 끊거나, 임의의 레이어 사이에 레지듀얼 컨넥션을 추가하거나, 학습의 속도를 변경하는 것 등이 있습니다. 이러한 방식으로 진화 알고리즘의 잠재력을 보여줍니다.

 

 

ref: Large-Scale Evolution of Image Classifiers

ref: Regularized Evolution for Image Classifier Architecture Search 

ref: MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

ref: Learning Transferable Architectures for Scalable Image Recognition

ref: Regularized Evolution for Image Classifier Architecture Search