신경망 구조 탐색

**신경망 구조 탐색**(Neural architecture search, **NAS**) 또는 **신경 구조망 탐색**은 기계 학습 분야에서 널리 사용되는 모델인 인공 신경망(ANN)의 설계를 자동화하는 기술이다. NAS는 수동으로 설계된 아키텍처와 동등하거나 더 나은 성능을 내는 네트워크를 설계하는 데 사용되어 왔다. NAS 방법은 사용되는 탐색 공간, 탐색 전략 및 성능 추정 전략에 따라 분류할 수 있다.

* 탐색 공간은 설계 및 최적화될 수 있는 ANN의 유형을 정의한다.
* 탐색 전략은 탐색 공간을 탐색하는 데 사용되는 접근 방식을 정의한다.
* 성능 추정 전략은 가능한 ANN의 설계를 통해(구축 및 훈련 없이) 성능을 평가한다.

NAS는 하이퍼파라미터 최적화 및 메타 학습과 밀접하게 관련되어 있으며 자동화된 기계 학습(AutoML)의 하위 분야이다.

## 강화 학습
강화 학습(RL)은 NAS 탐색 전략의 기반이 될 수 있다. 배럿 조프(Barret Zoph)와 쿠옥 비엣 르(Quoc Viet Le)는 CIFAR-10 데이터셋을 대상으로 RL과 NAS를 적용하여 정확도 면에서 최고의 수동 설계 아키텍처에 필적하는 네트워크 아키텍처를 달성했다. 오류율은 3.65%로, 관련 수동 설계 모델보다 0.09% 더 좋고 1.05배 더 빨랐다. 펜 트리뱅크 데이터셋에서는 LSTM을 능가하는 순환 셀을 구성하여 테스트 세트의 혼란도 62.4에 도달했으며, 이는 이전 최고의 시스템보다 3.6 더 좋은 혼란도이다. PTB 문자 언어 모델링 작업에서 문자당 비트(bits per character)는 1.214를 달성했다.

대규모 데이터셋에서 모델 아키텍처를 직접 학습하는 것은 긴 과정일 수 있다. NASNet은 작은 데이터셋을 위해 설계된 빌딩 블록을 더 큰 데이터셋으로 전이하여 이 문제를 해결했다. 설계는 두 가지 유형의 합성곱 셀을 사용하여 입력 특징 맵을 합성할 때 두 가지 주요 기능을 수행하는 특징 맵을 반환하도록 제한되었다. 즉, 동일한 범위(높이 및 너비)의 맵을 반환하는 일반 셀과 반환된 특징 맵의 높이 및 너비가 2배 감소하는 감소 셀이다. 감소 셀의 경우, 셀의 입력에 적용되는 초기 연산은 두 개의 스트라이드(높이 및 너비를 줄이기 위해)를 사용한다. 설계의 학습된 측면에는 각 상위 레이어가 입력으로 어떤 하위 레이어를 취하는지, 해당 레이어에 적용되는 변환, 각 레이어에서 여러 출력을 병합하는 것과 같은 요소들이 포함되었다. 연구된 예시에서 최적의 합성곱 레이어(또는 "셀")는 CIFAR-10 데이터셋을 위해 설계된 다음, 이 셀의 복사본을 각각 고유한 매개변수와 함께 쌓아서 이미지넷 데이터셋에 적용되었다. 이 접근 방식은 상위-1 정확도 82.7%와 상위-5 정확도 96.2%를 달성했다. 이는 90억 FLOPS를 덜 사용하면서(28% 감소) 인간이 고안한 최고의 아키텍처를 능가하는 결과였다. 이 시스템은 다양한 계산 수준에서 수동 설계된 대안을 계속해서 능가했다. 이미지 분류에서 학습된 이미지 특징은 다른 컴퓨터 비전 문제로 전이될 수 있다. 예를 들어, 객체 탐지의 경우, Faster-RCNN 프레임워크와 통합된 학습된 셀은 COCO 데이터셋에서 성능을 4.0% 향상시켰다.

이른바 효율적인 신경망 구조 탐색(ENAS)에서 컨트롤러는 큰 그래프 내에서 최적의 서브그래프를 탐색하는 방법을 학습하여 아키텍처를 발견한다. 컨트롤러는 정책 기울기를 사용하여 검증 세트의 예상 보상을 최대화하는 서브그래프를 선택하도록 훈련된다. 서브그래프에 해당하는 모델은 표준 교차 엔트로피 손실을 최소화하도록 훈련된다. 여러 하위 모델이 매개변수를 공유하므로 ENAS는 다른 접근 방식보다 GPU-시간을 적게 필요로 하며 "표준" NAS보다 1000배 적게 필요하다. CIFAR-10에서 ENAS 설계는 2.89%의 테스트 오류율을 달성했으며, 이는 NASNet과 유사하다. 펜 트리뱅크에서 ENAS 설계는 55.8의 테스트 혼란도에 도달했다.

## 진화
NAS에 대한 대안적인 접근 방식은 여러 그룹에서 채택된 진화 알고리즘에 기반한다. 신경망 구조 탐색을 위한 진화 알고리즘은 일반적으로 다음 절차를 수행한다. 먼저, 다양한 후보 아키텍처와 그 유효성 점수(적합도)로 구성된 풀이 초기화된다. 각 단계에서 후보 풀의 아키텍처는 변형된다(예: 5x5 합성곱 대신 3x3 합성곱). 다음으로, 새로운 아키텍처는 몇 에포크 동안 처음부터 훈련되고 유효성 점수가 얻어진다. 이어서 후보 풀에서 가장 낮은 점수를 받은 아키텍처는 더 좋고 새로운 아키텍처로 대체된다. 이 절차는 여러 번 반복되며, 따라서 후보 풀은 시간이 지남에 따라 개선된다. ANNs 진화 맥락에서 변형은 레이어를 추가하거나 제거하는 것과 같은 연산이며, 여기에는 레이어 유형 변경(예: 합성곱에서 풀링으로), 레이어의 하이퍼파라미터 변경 또는 훈련 하이퍼파라미터 변경이 포함된다. CIFAR-10 및 이미지넷에서 진화와 RL은 비슷한 성능을 보였고, 둘 다 무작위 탐색을 약간 능가했다.

## 베이즈 최적화
하이퍼파라미터 최적화를 위한 효율적인 방법으로 입증된 베이즈 최적화(BO)는 NAS에도 적용될 수 있다. 이 맥락에서, 목적 함수는 여러 에포크 동안 훈련된 아키텍처를 해당 검증 오류에 매핑한다. 각 반복에서 BO는 이전에 얻은 아키텍처와 그 검증 오류를 기반으로 이 목적 함수를 모델링하기 위해 대리 모델을 사용한다. 그런 다음 탐색과 활용 사이의 균형을 제공하는 예상 개선과 같은 획득 함수를 최대화하여 평가할 다음 아키텍처를 선택한다. 획득 함수 최대화 및 목적 함수 평가는 NAS에서 종종 계산 비용이 많이 들고, 이 맥락에서 BO의 적용을 어렵게 만든다. 최근 BANANAS는 신경 예측자와 결합된 고성능 BO 인스턴스화를 도입하여 이 방향으로 유망한 결과를 달성했다.

## 힐 클라이밍
다른 그룹은 네트워크 형태를 적용한 후 짧은 코사인-어닐링 최적화 실행을 따르는 힐 클라이밍 절차를 사용했다. 이 접근 방식은 경쟁력 있는 결과를 산출했으며, 단일 네트워크를 훈련하는 것과 동일한 자원 규모를 요구했다. 예를 들어, CIFAR-10에서 이 방법은 단일 GPU에서 12시간 만에 오류율 5% 미만의 네트워크를 설계하고 훈련했다.

## 다중 목표 탐색
대부분의 접근 방식은 최대 예측 성능을 가진 아키텍처를 찾는 데만 초점을 맞추지만, 대부분의 실제 응용 프로그램에서는 메모리 소비, 모델 크기 또는 추론 시간(즉, 예측을 얻는 데 필요한 시간)과 같은 다른 목표가 중요하다. 이 때문에 연구자들은 다중 목표 탐색을 만들었다.

LEMONADE는 여러 목표를 효율적으로 최적화하기 위해 용불용설을 채택한 진화 알고리즘이다. 각 세대에서 자식 네트워크는 현재 ANN 모집단에 대한 파레토 프론티어를 개선하기 위해 생성된다.

Neural Architect는 네트워크 임베딩 및 성능 예측을 통한 자원 인식 다중 목표 RL 기반 NAS라고 주장된다. 네트워크 임베딩은 기존 네트워크를 훈련 가능한 임베딩 벡터로 인코딩한다. 임베딩을 기반으로 컨트롤러 네트워크는 대상 네트워크의 변환을 생성한다. 다중 목표 보상 함수는 네트워크 정확도, 계산 자원 및 훈련 시간을 고려한다. 보상은 컨트롤러 네트워크와 사전 훈련되거나 공동 훈련된 여러 성능 시뮬레이션 네트워크에 의해 예측된다. 컨트롤러 네트워크는 정책 기울기를 통해 훈련된다. 수정 후 결과 후보 네트워크는 정확도 네트워크와 훈련 시간 네트워크 모두에 의해 평가된다. 결과는 출력물을 컨트롤러 네트워크로 다시 전달하는 보상 엔진에 의해 결합된다.

## 원샷 모델
RL 또는 진화 기반 NAS는 NASNet, mNASNet 및 MobileNetV3 논문에 설명된 최첨단 컴퓨터 비전 결과를 달성하기 위해 수천 GPU-일의 탐색/훈련 시간을 필요로 한다.

계산 비용을 줄이기 위해 많은 최신 NAS 방법은 가중치 공유 아이디어에 의존한다. 이 접근 방식에서는 단일 오버파라미터화된 슈퍼네트워크(원샷 모델이라고도 함)가 정의된다. 슈퍼네트워크는 하위 그래프가 다른 후보 신경망인 매우 큰 유향 비순환 그래프(DAG)이다. 따라서 슈퍼네트워크에서는 가중치가 공통 에지를 갖는 많은 수의 다른 하위 아키텍처들 사이에 공유되며, 각각은 슈퍼넷 내의 경로로 간주된다. 핵심 아이디어는 수천 개의 네트워크를 독립적으로 생성하고 훈련하는 대신 최종 설계를 위한 많은 옵션을 포함하는 하나의 슈퍼네트워크를 훈련하는 것이다. 학습된 매개변수 외에도 한 모듈에 대한 다른 모듈에 대한 선호도를 나타내기 위해 일련의 아키텍처 매개변수가 학습된다. 이러한 방법은 필요한 계산 자원을 몇 GPU-일로 줄여준다.

최근의 연구들은 이 가중치 공유 패러다임을 탐색 공간의 연속적 이완과 결합하여 기울기 기반 최적화 방법을 사용할 수 있게 한다. 이러한 접근 방식은 일반적으로 차등 가능 NAS라고 불리며 신경 아키텍처의 탐색 공간을 탐색하는 데 매우 효율적임이 입증되었다. 기울기 기반 NAS 방법 중 가장 인기 있는 알고리즘 중 하나는 DARTS이다. 그러나 DARTS는 스킵 연결의 피할 수 없는 집적으로 인한 성능 저하와 미래의 많은 알고리즘에 의해 해결된 낮은 일반화 문제에 직면한다.와 같은 방법은 헤시안 노름(Hessian norm) 기반 정규화와 무작위 스무딩/적대적 공격을 각각 도입하여 DARTS를 강화하고 검증 정확도 경관을 더 부드럽게 만드는 것을 목표로 한다. 성능 저하의 원인은 나중에 아키텍처 선택 측면에서 분석되었다.

차등 가능 NAS는 RL 기반 탐색 방법이 필요로 하는 탐색 시간의 일부만을 사용하여 경쟁력 있는 결과를 생성하는 것으로 나타났다. 예를 들어, FBNet(페이스북 버클리 네트워크의 약자)은 슈퍼네트워크 기반 탐색이 ImageNet 이미지 분류 데이터셋에서 mNASNet 및 MobileNetV2의 속도-정확도 트레이드오프 곡선을 능가하는 네트워크를 생성함을 보여주었다. FBNet은 mNASNet에 사용된 탐색 시간보다 400배 이상 적은 탐색 시간을 사용하여 이를 달성한다. 또한 SqueezeNAS는 슈퍼네트워크 기반 NAS가 Cityscapes 시맨틱 세분화 데이터셋에서 MobileNetV3의 속도-정확도 트레이드오프 곡선을 능가하는 신경망을 생성하며, SqueezeNAS는 MobileNetV3 저자들의 RL 기반 탐색에 사용된 시간보다 100배 이상 적은 탐색 시간을 사용한다.

## 신경망 구조 탐색 벤치마크
신경망 구조 탐색은 비용이 많이 드는 훈련 및 평가 단계 때문에 종종 많은 계산 자원을 필요로 한다. 이는 이러한 방법의 평가에 필요한 큰 탄소 발자국으로 이어진다. 이러한 한계를 극복하기 위해 NAS 벤치마크가 도입되었으며, 이를 통해 신경망 아키텍처의 최종 성능을 몇 초 만에 질의하거나 예측할 수 있다. NAS 벤치마크는 고정된 훈련-테스트 분할, 탐색 공간 및 고정된 훈련 파이프라인(하이퍼파라미터)을 가진 데이터셋으로 정의된다. NAS 벤치마크에는 크게 두 가지 유형이 있다: 대리 NAS 벤치마크와 표 형식 NAS 벤치마크. 대리 벤치마크는 대리 모델(예: 신경망)을 사용하여 탐색 공간에서 아키텍처의 성능을 예측한다. 반면에 표 형식 벤치마크는 수렴까지 훈련된 아키텍처의 실제 성능을 질의한다. 이 두 벤치마크는 모두 질의 가능하며, 처음부터 아키텍처를 훈련하는 대신 CPU만을 사용하여 벤치마크를 질의함으로써 많은 NAS 알고리즘을 효율적으로 시뮬레이션하는 데 사용할 수 있다.

## 같이 보기
* 신경망 인텔리전스
* 자동화된 기계 학습
* 하이퍼파라미터 최적화

## 더 읽어보기
조사 논문.

* 
* 
* 
* 

## 각주

분류:인공지능공학