본문의 모든 내용과 이미지의 저작권은 이지스퍼블리싱의 Do it! 강화 학습 입문 도서에 있습니다.
8-1. NAS를 만드는 3단계 다시 알아보기
- 7장에서 살펴본 NAS의 탐색 공간 구성, 탐색 전략 수립, 성능 평가 전략의 의미를 더 자세히 상기
- 강화 학습을 처음 적용한 NAS, 성능 평가 전략을 사용 한 NASNet, 가장 최근 발표된 ENAS를 중심으로 설명
1. NAS를 만드는 3단계 다시 정의하기
- NAS의 3단계는 “Neural Architecture Search: A Survey(Elsken, Metzen, and Hutter 2019)” 논문에서 정립한 개념
탐색 공간 구성 |
- 이론적으로 만들 수 있는 전체 신경망 구조의 집합
- 쉽게 이야기하자면 NAS로 찾으려고 하는 신경망 구조의 후보인 자식 신경망 집합체
- 신경망 구조의 집합은 신경망 구조의 종류(domain)에 따라서 달라지며 모두 수작업으로 직접 구성해야 함.
- 탐색 공간은 기호 𝛢로 표기 |
탐색 전략 수립 |
- 탐색 공간에서 어떤 신경망 구조를 선택할지 결정
- 탐색 공간 전체를 탐색하면 불필요한 자식 신경망까지 탐색해야 하므로 최적의 자식 신경망을 찾아가는 효율적인 방법을 고려해야 함
- 탐색 공간 𝛢에서 탐색 전략으로 선택한 신경망 구조는 A로 표기 |
성능 평가 전략 |
- 신경망 구조 A를 평가하고 그 결과를 에이전트에게 보상으로 입력하는 과정은 정확하고 빠르게 이뤄져야 함
- 평가 방법과 시간은 NAS 성능에 영향을 크게 미치므로 성능 평가 전략 최적화가 잘 진행되도록 해야 함 |
- NAS를 만드는 3단계에서 마지막 성능 평가 전략은 NAS의 전체 성능을 좌우하는 중요한 단계
- 따라서, 자식 신경망을 구성하는 시간보다 성능 평가에 더 많은 시간이 소요됨
- 딥러닝으로 신경망을 학습하는 과정을 자식 신경망의 탐색 범위만큼 반복하기 때문
NAS를 만드는 3단계
2. 탐색 공간 구성 요소 알아보기
- 탐색 공간은 NAS로 찾으려고 하는 신경망 구조가 될 수 있는 신경망 구조 후보인 자식 신경망의 집합체
- 탐색 공간에 속하지 않은 신경망 구조는 찾을 수 없으므로 탐색 공간 구성은 매우 중요
- NAS, NASNet, ENAS에서는 자식 신경망의 기본 구조를 정의한 후, 그 구조에서 변경할 수 있는 부분을 파라미터로 지정
탐색 공간 구조 선택 및 파라미터 선정
- 이미지를 분류하는 신경망을 탐색하려면 합성곱(Convolution) 연산자로 연결된 신경망 구조를 정의해야 함
- 탐색 공간의 파라미터는 각 계층의 연산자 종류와 계층 간의 스킵 커넥션 연결 여부
NAS 탐색 공간의 구조를 정의한 예
- 각 합성곱 연산자의 종류를 파라미터로 설정하면 다양한 합성곱 연산자를 대입 가능
- 계층간의 스킵 커넥션 연결 여부도 파라미터로 설정해서 연결 방식 변경 가능
- 자식 신경망의 기본 구조와 신경망 구조를 변경할 수 있는 파라미터의 후보 집합이 탐색 공간 𝛢
탐색 공간 파라미터 선택
자식 신경망 구조에서 선택할 수 있는 합성곱 연산자의 조합의 예
- 위 그림과 같은 탐색 공간에서 구성할 수 있는 자식 신경망 구조의 개수
- (선택 가능한 연산자 수)$^{(변동할\,수\,있는\,계층\,수)}$ = $4^4=256$개
- 연산자가 스킵 커넥션으로 연결되는 경우의 수
- 총 가능한 경우의 수
8-2. 탐색 전략 알아보기
- 탐색 전략이란 탐색 공간 𝛢에서 자식 신경망 A를 선택해 평가한 다음, 그 평가 결과를 보상값으로 하여 다른 자식 신경망 A를 선택하는 방법
- NAS에서는 탐색 전략으로 RNN(Recurrent Neural Network)을 사용
- 신경망 구조를 RNN으로 어떻게 효과적으로 탐색할 수 있는지 2가지 탐색 전략을 통해 분석
1번째 예 - 이미지 분류를 위한 CNN 탐색하기
- CNN 계열의 신경망 구조는 대부분 합성곱 연산자의 순차적인 연결로 구성
- 여기서 NAS는 RNN 학습으로 CNN 구성에 필요한 파라미터를 학습하고 결정
- 학습한 파라미터가 결정되는 과정이 곧 자식 신경망 구조를 선택하는 것
- NAS가 CNN을 구성할 때 정의한 파라미터
- 각 합성곱 계층의 가로/세로 크기
- 스트라이드 가로/세로 크기
- 필터의 개수
RNN을 활용하여 구성한 합성곱 계층 구성 예
- 합성곱 연산자의 형태를 파라미터로 선정한 뒤, RNN의 출력층에서 파라미터를 선택하는 것이 RNN을 탐색 전략으로 사용하는 방식
- 신경망 평가 이후 정확도와 목표 정확도의 차이를 보상값으로 하여 순환 신경망을 다시 학습하는 강화 학습이 진행
- 이 과정은 선택된 신경망 구조가 목표 정확도를 만족할 때까지 반복
- 신경망 구조 자체를 사람이 아닌 기계가 만드는 점에서 큰 의미가 있음
2번째 예 - 언어 모델을 위한 RNN with LSTM 탐색하기
- NAS에서는 언어 모델을 위한 신경망 구조를 만들 때 경사 사라짐 문제가 해결된 방법인 RNN with LSTM을 사용
- RNN with LSTM에서는 은닉 상태와 셀 상태를 순회하며 둘 중 한가지만 다음 층으로 전달
- 이때 RNN with LSTM은 순환 셀(Recurrent Cell)을 사용
- NAS에서는 이 순환 셀을 자동으로 구성
- 즉, 순환 셀이 자식 신경망 구조로 정의된 것
- RNN을 활용하여 순환 셀 구성을 위한 파라미터 값을 학습
목표 RNN with LSTM의 순환 셀 구성을 위한 RNN 구조 예
8-3. 성능 평가 전략 알아보기
- NAS의 마지막 단계인 성능 평가 전략은 딥러닝으로 자식 신경망을 학습시키고 평가하는 방법
- 자식 신경망을 아무리 효율적으로 찾는다 해도 성능 평가 전략의 효율이 낮다면 NAS 전체 학습 시간이 많이 소요
NAS 종류 |
파라미터(단위: 백만) |
오차율(단위: %) |
사용한 GPU(단위: 개) |
학습 시간(단위: 일) |
NAS 기본 |
7.1 |
4.47 |
800 |
21-28 |
NAS 기본 + 추가 필터 |
37.4 |
3.65 |
800 |
21-28 |
NASNet-A |
3.3 |
3.41 |
450 |
3-4 |
NASNet-A + CutOut |
3.3 |
2.65 |
450 |
3-4 |
ENAS 매크로 |
21.3 |
4.23 |
1 |
0.32 |
ENAS 매크로 + 추가 채널 |
38.0 |
3.87 |
1 |
0.32 |
ENAS 마이크로 |
4.6 |
3.54 |
1 |
0.45 |
ENAS 마이크로 + CutOut |
4.6 |
2.89 |
1 |
0.45 |
1. NAS의 성능 평가 전략 알아보기
- NAS는 성능 평가 전략으로 파라미터 서버를 활용한 분산 학습을 사용
- 컨트롤러를 여러 개 두고 각 컨트롤러가 자식 신경망을 나누어 학습
- 자식 신경망을 선택하는 보상값인 그래디언트를 파라미터 서버로 모은 후, 통합하여 다시 분배
- 파라미터 서버 구조에서 자식 신경망의 평가 결과를 탐색 전략에 빠르게 반영한 것
NAS의 성능 평가 전략 중 일부인 분산 학습
이 실험에서 사용한 환경
- 파라미터 서버 20개
- 컨트롤러 개수 100개
- 컨트롤러 하위의 자식 신경망 8개
2. NASNet의 성능 평가 전략 알아보기
- NAS에서는 분산 학습을 도입하여 전체 학습 성능을 개선하려고 했음
- NASNet에서는 학습 알고리즘의 성능을 향상시키려고 저충실도 예측을 사용
- 적은 수의 에포크로 모든 에포크를 학습했을 때와 유사한 결과를 내는 방법
- NASNet은 자식 신경망마다 학습 에포크 수를 50회에서 20회로 줄였음
- NASNet은 GPU를 800개에서 480개로, 학습 시간을 28일에서 4일로 단축
3. ENAS의 성능 평가 전략 알아보기
- ENAS의 가장 큰 특징은 학습 결과를 다시 사용한 것
- 한 번 학습된 결괏값을 저장하여 유사한 결과가 나오는 다른 부분에서 그 결괏값을 재사용
- ENAS는 학습 결과 재사용으로 GPU 1개로 신경망 구조의 학습을 8시간 만에 완료하는 성능
8-4. NAS, NASNet, ENAS 요약하기
1. NAS의 특징 및 연관성
- 강화 학습에 기반하여 NAS의 발전 과정 3단계를 그림으로 표시하면 다음과 같음
강화 학습에 기반한 NAS의 발전 과정 3단계
2. 강화 학습에 기반하지 않은 NAS
- NAS의 3가지 개념을 사용해 자식 신경망을 학습하는 방법은 강화 학습 외에도 다양함
이론 기반 |
종류 |
베이지안 최적화(Bayesian Optimization) |
- Auto-Keras - NASBOT |
진화 기법 (Evolutionary Methods) |
- AmeobaNet - Hierarchical NAS - JASQNet |
경사 하강법 (Gradient-based Methods) |
- One-Shot NAS - DARTS - ProxylessNAS | |