이 페이지에서는 AI Platform Training에서 제공하는 자동화 모델 개선 도구인 초매개변수 조정과 관련된 개념을 설명합니다. 초매개변수 조정에서는 모델을 학습시킬 때 Google Cloud의 처리 인프라를 활용하여 다양한 초매개변수 구성을 테스트합니다. 이를 통해 초매개변수 값을 최적화하여 모델의 예측 정확성을 극대화할 수 있습니다.
초매개변수란?
초매개변수는 학습 프로세스 자체를 제어하는 데이터를 포함합니다.
학습 애플리케이션은 모델을 학습시키면서 다음과 같은 세 가지 데이터 카테고리를 처리합니다.
입력 데이터(학습 데이터)는 머신러닝 문제와 관련하여 중요한 특성을 포함하는 개별 레코드(인스턴스)의 컬렉션입니다. 학습 중에 이 데이터는 비슷한 데이터의 새 인스턴스를 정확히 예측할 수 있도록 모델을 구성하는 데 사용됩니다. 그러나 입력 데이터의 값은 어떠한 경우에도 모델에 직접 포함되지 않습니다.
모델의 매개변수는 선택한 머신러닝 기법에서 데이터를 조정하는 데 사용하는 변수입니다. 예를 들어 심층신경망(DNN)은 처리 노드(뉴런)로 구성되며, 데이터가 네트워크를 통과하면서 각 노드에서 데이터에 대한 작업이 수행됩니다. DNN을 학습시킬 때 각 노드의 가중치 값은 해당 노드가 최종 예측에 영향을 미치는 정도를 나타냅니다. 이러한 가중치가 모델 매개변수의 예입니다. 모델의 매개변수는 비슷한 데이터로 작동하는 같은 유형의 여러 모델을 서로 구분하므로 모델 자체라고 보아도 무방합니다.
초매개변수는 학습 프로세스 자체를 제어하는 변수입니다. 예를 들어 심층신경망을 설정할 때는 입력 레이어와 출력 레이어 사이에 사용할 노드의 히든 레이어 수 및 각 레이어가 사용할 노드 수를 결정해야 합니다. 이러한 변수는 학습 데이터와 직접 관련되지 않는 구성 변수입니다. 매개변수는 학습 작업 중에 변화할 수 있지만, 초매개변수는 일반적으로 작업 중에 일정합니다.
모델 매개변수는 모델의 작업을 통해 데이터를 실행하고, 결과 예측을 각 데이터 인스턴스의 실제 값과 비교하고, 정확성을 평가하고, 최선의 값을 찾아낼 때까지 조정하는 학습 프로세스에 의해 최적화, 다른 표현으로 '조정'됩니다. 초매개변수는 전체 학습 작업을 실행하고 집계된 정확성을 확인하고 조절하는 방식으로 조정됩니다. 두 경우 모두 모델의 구성을 수정하면서 문제를 처리하는 최상의 조합을 찾아냅니다.
AI Platform Training 초매개변수 조정과 같은 자동화 기술이 없으면 최적 값에 도달하기 위해 여러 학습 실행을 진행하는 동안 초매개변수를 수동으로 조정해야 합니다. 초매개변수 조정은 최상의 초매개변수 설정을 판단하는 과정을 쉽고 간편하게 만들어 줍니다.
초매개변수 조정의 원리
초매개변수 조정은 단일 학습 작업에서 여러 번의 시행을 실행합니다. 각 시행에서는 선택한 초매개변수의 값을 지정한 한도 내로 설정하여 학습 애플리케이션을 완전히 실행합니다. AI Platform Training의 학습 서비스는 각 시행 결과를 추적하고 후속 시행에 맞게 조정합니다. 작업이 끝나면 모든 시행 요약과 함께 지정한 기준에 따라 가장 효과적으로 판명된 값 구성을 확인할 수 있습니다.
초매개변수 조정 시에는 AI Platform Training의 학습 서비스와 학습 애플리케이션 간의 명시적인 통신이 필요합니다. 학습 애플리케이션은 모델에 필요한 모든 정보를 정의합니다. 조정할 초매개변수(변수) 및 각 초매개변수의 목푯값을 정의해야 합니다.
AI Platform Training에서 초매개변수 조정에 Bayesian 최적화를 어떻게 사용하는지 알아보려면 Hyperparameter Tuning in Cloud Machine Learning Engine using Bayesian Optimization(Cloud Machine Learning Engine에서 Bayesian 최적화를 사용하여 초매개변수 조정) 블로그 게시물을 참조하세요.
Bayesian 최적화 이외에 AI Platform Training은 초매개변수 조정 작업 간 최적화를 수행합니다. 목표 함수만 변경하거나 새 입력 열을 추가하면서 유사한 여러 모델로 초매개변수 조정을 수행하면 AI Platform Training은 시간에 따라 점점 개선되며 초매개변수 조정을 효율화할 수 있습니다.
초매개변수 조정의 최적화 대상
초매개변수 조정은 지정된 단일 목표 변수(초매개변수 측정항목)를 최적화합니다. 일반적인 측정항목은 평가 실행 시 계산되는 모델의 정확성입니다. 측정항목은 숫자 값이어야 하며, 모델을 조정하여 측정항목을 최대화할지 아니면 최소화할지 여부를 지정할 수 있습니다.
초매개변수 조정과 함께 작업을 시작할 때 초매개변수 측정항목의 이름을 설정합니다. 이 이름은 학습 애플리케이션에 추가하는 스칼라 요약에 할당한 이름입니다.
측정항목의 기본 이름은 training/hptuning/metric
입니다. 여기에 커스텀 이름을 할당하는 것이 좋습니다. 커스텀 이름을 사용할 때의 유일한 기능상 차이점은 작업 요청에서 HyperparameterSpec 객체의 hyperparameterMetricTag
값을 선택한 이름과 일치하도록 설정해야 한다는 것입니다.
AI Platform 학습이 측정항목을 가져오는 방법
TensorFlow 모델의 경우 AI Platform Training 서비스는 학습 애플리케이션에서 생성된 TensorFlow 요약 이벤트를 모니터링하고 측정항목을 검색합니다.
모델이 다른 프레임워크로 빌드되었거나 커스텀 컨테이너를 사용하는 경우 cloudml-hypertune
Python 패키지를 사용하여 학습 측정항목을 AI Platform Training에 보고해야 합니다.
초매개변수 값의 흐름
초매개변수 조정을 사용하지 않고 학습 애플리케이션에서 원하는 방법을 사용하여 초매개변수를 직접 설정할 수 있습니다. 예를 들어 기본 애플리케이션 모듈에 명령줄 인수를 전달하거나 애플리케이션에 구성 파일로 입력하여 초매개변수를 구성할 수 있습니다.
초매개변수 조정을 사용할 때는 다음 절차에 따라 조정에 사용하는 초매개변수 값을 설정해야 합니다.
기본 학습 모듈에서 조정 대상인 각 초매개변수에 대한 명령줄 인수를 정의합니다.
애플리케이션의 텐서플로우 코드에서 이러한 인수에 전달된 값을 사용하여 초매개변수를 설정합니다.
초매개변수를 조정하면서 학습 작업을 구성할 때 조정할 각 초매개변수, 유형, 시도할 값 범위를 정의합니다. 기본 모듈에서 정의한 해당 인수와 동일한 이름으로 각 초매개변수를 식별합니다. 학습 서비스는 애플리케이션을 실행할 때 해당 이름을 사용하는 명령줄 인수를 포함합니다.
조정할 초매개변수 선택
조정할 초매개변수를 선택하는 방법에 대해서 보편적으로 권장되는 사항은 거의 없습니다. 사용하는 머신러닝 기법을 다루어 본 경험이 있다면 초매개변수의 동작을 어느 정도 파악하고 있을 것입니다. 머신러닝 커뮤니티에서 조언을 구할 수도 있습니다.
무엇보다 선택에 따른 영향을 정확히 이해하는 것이 중요합니다. 조정하기로 선택한 모든 초매개변수는 조정 작업이 성공하는 데 필요한 시행 수를 증가시킬 가능성이 있습니다. AI Platform Training에서 학습을 수행할 때는 작업 기간에 대해 요금이 청구되므로 조정할 초매개변수를 신중하게 선택하면 모델 학습에 따르는 시간과 비용을 줄일 수 있습니다.
초매개변수 유형
지원되는 초매개변수 유형은 작업 참조 문서에 나열되어 있습니다. 다음 표의 설명에 따라 ParameterSpec 객체에 각 초매개변수의 유형 및 관련 값 범위를 지정합니다.
유형 | 값 범위 | 값 데이터 |
---|---|---|
DOUBLE |
minValue 및 maxValue |
부동 소수점 값 |
INTEGER |
minValue 및 maxValue |
정수 값 |
CATEGORICAL |
categoricalValues |
카테고리 문자열 목록 |
DISCRETE |
discreteValues |
오름차순 값 목록 |
초매개변수 조정
초매개변수에 수행할 조정 유형을 지정할 수 있습니다. 조정은 DOUBLE 및 INTEGER 유형에 권장됩니다. 사용 가능한 조정 유형은 다음과 같습니다.
UNIT_LINEAR_SCALE
UNIT_LOG_SCALE
UNIT_REVERSE_LOG_SCALE
검색 알고리즘
HyperparameterSpec 객체에 검색 알고리즘을 지정할 수 있습니다. 알고리즘을 지정하지 않으면 작업은 기본 AI Platform Training 알고리즘을 사용합니다. 이 알고리즘은 매개변수 검색이 매개변수 공간에서의 효과적인 검색을 통해 최적의 솔루션에 도달하도록 유도합니다.
사용 가능한 값은 다음과 같습니다.
ALGORITHM_UNSPECIFIED
: 검색 알고리즘을 지정하지 않을 때의 동작과 같습니다. AI Platform Training에서 기본 알고리즘을 사용합니다. 즉, Bayesian 최적화를 적용하여 가능한 초매개변수 값의 공간을 검색하므로 초매개변수 집합에 가장 효과적인 기법을 발휘합니다.GRID_SEARCH
: 가능한 공간 내에서 단순 그리드 검색을 수행합니다. 이 옵션은 가능한 공간의 포인트 수보다 많은 시행 횟수를 지정하려는 경우에 특히 유용합니다. 이러한 경우 그리드 검색을 지정하지 않으면 AI Platform Training 기본 알고리즘이 중복 제안을 생성할 수 있습니다. 그리드 검색을 사용하려면 모든 매개변수는INTEGER
,CATEGORICAL
또는DISCRETE
유형이어야 합니다.RANDOM_SEARCH
: 가능한 공간 내에서 단순 무작위 검색을 수행합니다.
다음 단계
- 학습 작업에 초매개변수 조정을 구현하는 방법 알아보기
- 블랙박스 모델에서 Bayesian 초매개변수 조정을 수행하는 방법 및 GitHub에서 이에 상응하는 코드에 대한 예시 읽어보기
- Bayesian 최적화 및 초매개변수 조정에 대한 블로그 게시물 보기
- 초매개변수 조정의 발전 상황에 대한 블로그 글 읽어보기