모델 하이퍼 매개 변수 튜닝

이 문서에서는 Azure Machine Learning 디자이너에서 모델 하이퍼 매개 변수 튜닝 구성 요소를 사용하는 방법을 설명합니다. 목표는 기계 학습 모델의 최적 하이퍼 매개 변수를 결정하는 것입니다. 구성 요소는 다양한 설정 조합을 사용하여 여러 모델을 빌드하고 테스트합니다. 모든 모델에 대한 메트릭을 비교하여 설정 조합을 얻습니다.

‘매개 변수’와 ‘하이퍼 매개 변수’라는 용어는 혼동을 줄 수 있습니다. 모델의 매개 변수는 구성 요소의 오른쪽 창에서 설정하는 것입니다. 기본적으로 이 구성 요소는 지정한 매개 변수 설정에 대해 매개 변수 스윕을 수행합니다. 각 특정 의사 결정 트리, 데이터 세트 또는 회귀 방법에 따라 달라질 수 있는 최적 ‘하이퍼 매개 변수’ 세트를 알아봅니다. 최적 구성을 찾는 프로세스를 ‘튜닝’이라고도 합니다.

구성 요소는 모델에 대한 최적의 설정을 찾기 위해 통합 학습 및 튜닝 메서드를 지원합니다. 이 메서드에서는 사용할 매개 변수 집합을 구성합니다. 그런 다음, 구성 요소가 여러 조합을 반복하도록 합니다. 구성 요소는 “최적” 모델을 찾을 때까지 정확도를 측정합니다. 대부분의 학습자 구성 요소에서는 학습 프로세스 중에 변경되어야 하는 매개 변수와 고정되어야 하는 매개 변수를 선택할 수 있습니다.

튜닝 프로세스를 실행하려는 기간에 따라 모든 조합을 완전히 테스트하도록 결정할 수 있습니다. 또는 매개 변수 조합 그리드를 설정하고 매개 변수 그리드의 임의 하위 집합을 테스트하여 프로세스를 단축할 수도 있습니다.

이 방법은 재사용하기 위해 저장할 수 있는 학습된 모델을 생성합니다.

관련 작업을 수행할 수 있습니다. 튜닝을 시작하기 전에 기능 선택을 적용하여 정보 값이 가장 높은 열 또는 변수를 결정합니다.

모델 하이퍼 매개 변수 튜닝을 구성하는 방법

기계 학습 모델의 최적 하이퍼 매개 변수를 학습하려면 파이프라인을 상당히 사용해야 합니다.

매개 변수 스윕을 사용하여 모델 학습

이 섹션에서는 모델 하이퍼 매개 변수 튜닝 구성 요소를 사용하여 모델을 학습하는 기본 매개 변수 스윕을 수행하는 방법을 설명합니다.

  1. 디자이너에서 모델 하이퍼 매개 변수 튜닝 구성 요소를 파이프라인에 추가합니다.

  2. 학습되지 않은 모델을 가장 왼쪽 입력에 연결합니다.

    참고

    모델 하이퍼 매개 변수 튜닝은 기본 제공 기계 학습 알고리즘 구성 요소에만 연결할 수 있으며, Python 모델 만들기에서 빌드된 사용자 지정 모델을 지원할 수 없습니다.

  3. 학습에 사용할 데이터 세트를 추가하고 모델 하이퍼 매개 변수 튜닝의 중간 입력에 연결합니다.

    필요에 따라 태그가 지정된 데이터 세트가 있는 경우 가장 오른쪽 입력 포트(선택적 유효성 검사 데이터 세트)에 연결할 수 있습니다. 이렇게 하면 학습 및 튜닝하는 동안 정확도를 측정할 수 있습니다.

  4. 모델 하이퍼 매개 변수 튜닝의 오른쪽 패널에서 매개 변수 스윕 모드의 값을 선택합니다. 이 옵션은 매개 변수가 선택되는 방식을 제어합니다.

    • 전체 그리드: 이 옵션을 선택하면 구성 요소는 시스템에서 미리 정의한 그리드를 반복하면서 여러 조합을 시도하여 최적 학습자를 식별합니다. 이 옵션은 최적의 매개 변수 설정을 모르며 가능한 모든 값 조합을 사용해 보려는 경우에 유용합니다.

    • 임의 스윕: 이 옵션을 선택하면 구성 요소는 시스템 정의 범위에서 매개 변수 값을 임의로 선택합니다. 구성 요소에서 실행할 최대 실행 횟수를 지정해야 합니다. 이 옵션은 선택한 메트릭을 사용하여 모델 성능을 향상하지만 컴퓨팅 리소스를 절약하려는 경우에 유용합니다.

  5. 레이블 열에서 열 선택기를 열어 단일 레이블 열을 선택합니다.

  6. 실행 횟수를 선택합니다.

    • 임의 스윕의 최대 실행 횟수: 임의 스윕을 선택하는 경우 매개 변수 값의 임의 조합을 사용하여 모델을 학습해야 하는 횟수를 지정할 수 있습니다.
  7. 순위에서 모델 순위를 지정하는 데 사용할 단일 메트릭을 선택합니다.

    매개 변수 스윕을 실행하면 구성 요소는 모델 유형에 적용 가능한 모든 메트릭을 계산하고 스윕 결과 보고서에 반환합니다. 구성 요소는 회귀 모델과 분류 모델에 대해 별도의 메트릭을 사용합니다.

    그러나 선택한 메트릭에 따라 모델의 순위가 결정됩니다. 선택한 메트릭에 따라 순위를 지정하여 최상위 모델만 채점에 사용할 학습된 모델로 출력됩니다.

  8. 임의 초기값에 대해 미리 정의된 범위에 대한 매개 변수 값을 임의로 선택하는 데 사용되는 의사 난수 생성기 상태로 정수 숫자를 입력합니다. 이 매개 변수는 매개 변수 스윕 모드임의 스윕인 경우에만 효과적입니다.

  9. 파이프라인을 제출합니다.

하이퍼 매개 변수 튜닝 결과

학습 완료 시:

  • 스윕 결과를 보려면 구성 요소를 마우스 오른쪽 단추로 클릭하고 시각화를 선택하거나 시각화할 구성 요소의 왼쪽 출력 포트를 마우스 오른쪽 단추로 클릭합니다.

    스윕 결과에는 모델 유형에 적용되는 모든 매개 변수 스윕과 정확도 메트릭이 포함되며, 순위에 대해 선택한 메트릭은 “최적”으로 간주되는 모델을 결정합니다.

  • 학습된 모델의 스냅샷을 저장하려면 모델 학습 구성 요소의 오른쪽 패널에서 출력+로그 탭을 선택합니다. 데이터 세트 등록 아이콘을 선택하여 모델을 재사용 가능한 구성 요소로 저장합니다.

기술 정보

이 섹션에는 구현 세부 정보와 팁이 포함되어 있습니다.

매개 변수 스윕의 작동 방식

매개 변수 스윕을 설정할 때 검색 범위를 정의합니다. 검색은 임의로 선택된 한정된 개수의 매개 변수를 사용할 수 있습니다. 또는 정의한 매개 변수 공간에 대한 전체 검색일 수 있습니다.

  • 임의 스윕: 이 옵션은 설정된 반복 횟수를 사용하여 모델을 학습합니다.

    반복할 값 범위를 지정하면 구성 요소는 임의로 선택한 값 하위 집합을 사용합니다. 값은 바꾸기로 선택됩니다. 즉, 이전에 임의로 선택한 숫자가 사용 가능한 숫자 풀에서 제거되지 않습니다. 따라서 임의 값이 선택될 가능성은 모든 패스에서 동일하게 유지됩니다.

  • 전체 그리드: 전체 그리드를 사용하는 옵션은 모든 조합이 테스트된다는 것을 의미합니다. 이 옵션은 가장 철저한 옵션이지만 가장 오랜 시간이 필요합니다.

학습의 길이와 복잡성 제어

많은 설정 조합을 반복하는 경우 시간이 오래 걸릴 수 있으므로 구성 요소는 프로세스를 제한하는 여러 가지 방법을 제공합니다.

  • 모델을 테스트하는 데 사용되는 반복 횟수를 제한합니다.
  • 매개 변수 공간을 제한합니다.
  • 반복 횟수와 매개 변수 공간을 제한합니다.

특정 데이터 세트와 모델에 대한 가장 효율적인 학습 방법을 결정하는 설정과 파이프라인하는 것이 좋습니다.

평가 메트릭 선택

테스트가 끝나면 모델은 각 모델에 대한 정확도가 포함된 보고서를 제공하므로 메트릭 결과를 검토할 수 있습니다.

  • 모든 이진 분류 모델에 대해 일관된 메트릭 세트가 사용됩니다.
  • 정확도는 모든 다중 클래스 분류 모델에 사용됩니다.
  • 회귀 모델에는 다른 메트릭 세트가 사용됩니다.

그러나 학습하는 동안 튜닝 프로세스 중에 생성되는 모델의 순위를 지정하는 데 사용할 ‘단일’ 메트릭을 선택해야 합니다. 최적 메트릭은 비즈니스 문제와 가양성 및 가음성의 비용에 따라 달라질 수 있습니다.

이진 분류에 사용되는 메트릭

  • 정확도는 총 사례 대비 참인 결과의 비율입니다.

  • 정밀도는 양성 결과 대비 참인 결과의 비율입니다.

  • 재현율은 모든 결과 대비 올바른 모든 결과의 비율입니다.

  • F 점수는 정밀도와 재현율의 균형을 조정하는 측정값입니다.

  • AUC는 x축에 가양성을 그리고, y축에 진양성을 그릴 때 곡선 아래의 영역을 나타내는 값입니다.

  • 평균 로그 손실은 두 확률 분포(실제 분포와 모델 내 분포) 간 차이입니다.

회귀에 사용되는 메트릭

  • 평균 절대 오차는 모델의 모든 오차에 대한 평균입니다. 여기서 ‘오차’는 실제 값과 예측 값 사이의 거리를 의미합니다. 종종 MAE로 줄여서 부릅니다.

  • 평균 제곱 오차의 제곱근은 오차 제곱의 평균을 측정하고 해당 값의 제곱근을 계산합니다. 종종 RMSE로 줄여서 부릅니다.

  • 상대 절대 오차는 오차를 true 값의 백분율로 나타냅니다.

  • 상대 제곱 오차는 총 제곱 오차를 예측 값의 총 제곱 오차로 나누어 정규화합니다.

  • 결정 계수는 데이터가 모델에 얼마나 적합한지를 나타내는 단일 숫자입니다. 값이 1이면 모델이 데이터와 정확히 일치합니다. 값이 0이면 데이터가 무작위이거나 모델에 적합하지 않습니다. 종종 r2 , R2 또는 ‘R-제곱’이라고 합니다.

매개 변수 스윕을 지원하지 않는 구성 요소

Azure Machine Learning의 거의 모든 학습자는 통합 매개 변수 스윕을 사용하여 교차 유효성 검사를 지원하므로 파이프라인할 매개 변수를 선택할 수 있습니다. 학습자가 값 범위 설정을 지원하지 않는 경우에도 교차 유효성 검사에서 사용할 수 있습니다. 이 경우, 스윕에서 허용되는 값 범위가 선택됩니다.

다음 단계

Azure Machine Learning에서 사용 가능한 구성 요소 집합을 참조하세요.