ABOUT ME

Today
-
Total
-
  • [Do it! 강화 학습 입문]8장. NAS 더 자세히 알아보기
    도서 정리/Do it! 강화 학습 입문 2023. 8. 23. 15:42
    본문의 모든 내용과 이미지의 저작권은 이지스퍼블리싱의 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$개
    • 연산자가 스킵 커넥션으로 연결되는 경우의 수
      • $(222)(22)*2=64개$
    • 총 가능한 경우의 수
      • $256*64=16384개$

    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에서는 분산 학습을 도입하여 전체 학습 성능을 개선하려고 했음
      • 그런데도 GPU와 학습 시간이 많이 필요했음
    • 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 |

     

Designed by Tistory.