Main Content

실험 관리자

실험을 계획 및 실행하며 딥러닝 신경망을 훈련시키고 비교합니다.

R2020a 이후

설명

실험 관리자 앱을 사용하여 여러 초기 조건하에서 신경망을 훈련시키는 딥러닝 실험을 만들고 결과를 비교할 수 있습니다. 예를 들어, 실험 관리자를 사용하여 다음을 수행할 수 있습니다.

  • 일련의 하이퍼파라미터 값을 스윕하거나 베이즈 최적화를 사용하여 최적의 훈련 옵션을 찾습니다. 베이즈 최적화를 사용하려면 Statistics and Machine Learning Toolbox™가 필요합니다.

  • 내장 함수 trainNetwork를 사용하거나 사용자 지정 훈련 함수를 정의합니다.

  • 여러 데이터 세트를 사용한 결과를 비교하거나 여러 심층 신경망 아키텍처를 테스트합니다.

사전 구성된 템플릿으로 시작하면 실험을 빠르게 설정할 수 있습니다. 실험 템플릿은 영상 분류, 영상 회귀, 시퀀스 분류, 오디오 분류, 의미론적 분할, 사용자 지정 훈련 루프를 포함한 다양한 워크플로를 지원합니다.

실험 관리자는 실험 결과를 관리하고 관측 내용을 기록할 수 있는 시각화, 필터, 주석을 제공합니다. 실험 관리자는 재현성을 향상시키기 위해 실험을 실행할 때마다 실험 정의의 복사본을 저장합니다. 지난 실험 정의에 액세스하여 각 결과를 생성하는 하이퍼파라미터 조합을 추적할 수 있습니다.

실험 관리자는 실험과 결과를 프로젝트로 정리합니다.

  • 여러 실험을 하나의 프로젝트에 저장할 수 있습니다.

  • 각 실험은 실험을 실행할 때마다 그에 대한 결과 집합을 포함합니다.

  • 각 결과 집합은 서로 다른 하이퍼파라미터 조합에 대응되는 하나 이상의 시행으로 구성됩니다.

실험 브라우저 창에는 프로젝트에 포함된 실험과 결과의 계층 구조가 표시됩니다. 예를 들어, 이 프로젝트에는 각각 여러 개의 결과 집합을 포함하는 세 개의 실험이 있습니다.

Experiment Browser showing three experiments. Experiment1 is a general-purpose example with three results. Experiment 2 is a built-in training experiment for deep learning with two results. Experiment3 is a custom training experiment for deep learning or machine learning with two results.

주황색 둥근 바닥 플라스크 은 Deep Learning Toolbox™ 라이선스 없이 MATLAB®에서 실행할 수 있는 범용 실험을 나타냅니다. 파란색 삼각 플라스크 은 훈련 함수 trainNetwork를 사용하는 딥러닝을 위한 기본 제공 훈련 실험을 나타냅니다. 녹색 비커 은 사용자 지정 훈련 함수를 사용하는 딥러닝 또는 머신러닝을 위한 사용자 지정 훈련 실험을 나타냅니다. 범용 실험에 대한 자세한 내용은 Manage Experiments 항목을 참조하십시오.

기본적으로 실험 관리자는 한 번에 하나의 시행을 실행합니다. Parallel Computing Toolbox™가 있는 경우에는 동시에 여러 시행을 실행하거나 클러스터, 클라우드, 여러 GPU에서 단일 시행을 실행할 수 있습니다. MATLAB Parallel Server™를 사용하고 있다면 실험을 원격 클러스터의 일괄 처리 작업으로 넘길 수도 있습니다. 이렇게 하면 하던 작업을 계속하거나 실험이 실행되는 중에 MATLAB 세션을 닫을 수 있습니다. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 Offload Deep Learning Experiments as Batch Jobs to a Cluster 항목을 참조하십시오.

필요한 제품

  • Deep Learning Toolbox - 딥러닝을 위한 기본 제공 훈련 실험 또는 사용자 지정 훈련 실험을 실행하고 이러한 실험에 대한 혼동행렬을 보려는 경우

  • Statistics and Machine Learning Toolbox - 머신러닝을 위한 사용자 지정 훈련 실험과 베이즈 최적화를 사용하는 실험을 실행하려는 경우

  • Parallel Computing Toolbox - 클러스터, 클라우드, 또는 복수의 GPU에서 한 번에 여러 개의 시행을 실행하거나 한 번에 하나의 시행만 실행하려는 경우

  • MATLAB Parallel Server - 실험을 원격 클러스터의 일괄 처리 작업으로 넘기려는 경우

Experiment Manager app

실험 관리자 앱 열기

  • MATLAB 툴스트립: 탭의 MATLAB에서 실험 관리자 아이콘을 클릭합니다 (R2023b 이후).

  • MATLAB 명령 프롬프트: experimentManager를 입력합니다.

예제

모두 확장

이 예제에서는 하이퍼파라미터 스윕을 사용한 영상 분류에 실험 템플릿을 사용하는 방법을 보여줍니다. 이 템플릿을 사용하면 trainNetwork 함수를 사용하는 기본 제공 훈련 실험을 빠르게 설정할 수 있습니다. trainNetwork 함수를 사용하려면 Deep Learning Toolbox가 필요합니다.

다음 단계에 따라 직접 실험을 구성할 수 있습니다. 또는 구성 단계를 건너뛰고 검사하고 실행할 수 있도록 사전 구성되어 있는 실험의 예제를 열어 불러옵니다.

1. 열려 있는 프로젝트를 모두 닫고 실험 관리자 앱을 엽니다.

2. 대화 상자에 시작하기 튜토리얼과 최근 프로젝트로 연결되는 링크, 그리고 새 프로젝트를 만들거나 문서 예제를 여는 버튼이 있습니다. 새로 만들기에서 빈 프로젝트를 선택합니다.

3. 대화 상자에는 영상 분류, 영상 회귀, 시퀀스 분류, 오디오 분류, 의미론적 분할, 사용자 지정 훈련 루프를 포함한 다양한 AI 워크플로를 지원하는 몇 가지 템플릿이 나와 있습니다. 영상 분류 실험에서 하이퍼파라미터 스윕을 사용한 영상 분류를 선택합니다.

4. 새 프로젝트의 이름과 위치를 지정합니다. 실험 관리자가 프로젝트에서 새 실험을 엽니다. 실험 정의 탭에 설명, 하이퍼파라미터, 설정 함수, 실험을 정의하는 메트릭이 표시됩니다.

5. 설명 필드에 실험에 대한 설명을 입력합니다.

Classification of digits, using various initial learning rates.

6. 하이퍼파라미터에서 myInitialLearnRate의 값을 0.0025:0.0025:0.015로 바꿉니다. 전략Exhaustive Sweep으로 설정되었는지 확인합니다.

7. 설정 함수에서 편집을 클릭합니다. MATLAB 편집기에서 설정 함수가 열립니다. 설정 함수는 실험의 훈련 데이터, 신경망 아키텍처 및 훈련 옵션을 지정합니다. 이 실험에서 설정 함수에는 다음 섹션이 있습니다.

  • 훈련 데이터 불러오기는 실험의 훈련 데이터와 검증 데이터를 포함하는 영상 데이터저장소를 정의합니다. 실험은 Digits 데이터 세트를 사용합니다. 이 데이터 세트에는 0부터 9까지의 숫자를 나타내는 28×28 픽셀 회색조 영상 10,000개가 각 숫자별로 범주화되어 있습니다. 이 데이터 세트에 대한 자세한 내용은 Image Data Sets 항목을 참조하십시오.

  • 신경망 아키텍처 정의하기는 딥러닝 분류를 위한 간단한 컨벌루션 신경망의 아키텍처를 정의합니다.

  • 훈련 옵션 지정하기는 실험을 위한 trainingOptions 객체를 정의합니다. 이 실험에서 설정 함수는 하이퍼파라미터 테이블의 myInitialLearnRate 항목으로부터 초기 학습률에 대한 값을 불러옵니다.

실험을 실행하면 실험 관리자가 설정 함수에 의해 정의된 신경망을 6번 훈련시킵니다. 각 시행에서는 하이퍼파라미터 테이블에 지정된 학습률 중 하나를 사용합니다. 기본적으로 실험 관리자는 한 번에 하나의 시행을 실행합니다. Parallel Computing Toolbox를 사용 중이라면 한 번에 여러 개의 시행을 실행하거나 실험을 클러스터에 일괄 처리 작업으로 넘겨줄 수 있습니다.

  • 한 번에 하나의 실험 시행을 실행하려면 실험 관리자 툴스트립에서 모드Sequential로 설정하고 실행을 클릭하십시오.

  • 한 번에 여러 개의 시행을 실행하려면 모드Simultaneous로 설정하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그러면 실험 관리자가 병렬 풀에 있는 워커의 개수만큼 동시 시행을 실행합니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Run Experiments in ParallelGPU 연산 요구 사항 (Parallel Computing Toolbox) 항목을 참조하십시오.

  • 실험을 일괄 처리 작업으로 넘겨주려면 모드Batch Sequential 또는 Batch Simultaneous로 설정하고 클러스터와 풀 크기를 지정한 다음 실행을 클릭하십시오. 자세한 내용은 Offload Deep Learning Experiments as Batch Jobs to a Cluster 항목을 참조하십시오.

결과 테이블에 각 시행의 정확도와 손실이 표시됩니다.

실험이 실행 중인 동안에 훈련 플롯을 표시하고 각 시행의 진행 상황을 추적하려면 결과 검토에서 훈련 플롯을 클릭합니다. MATLAB 명령 창에서도 훈련 진행 상황을 모니터링할 수 있습니다.

완료된 각 시행의 검증 데이터에 대한 혼동행렬을 표시하려면 결과 검토에서 검증 데이터를 클릭합니다.

실험이 완료되면 필터 창을 사용하여 열을 기준으로 테이블을 정렬하거나 시행을 필터링할 수 있습니다. 결과값 테이블에 주석을 추가하여 관측 내용을 기록할 수도 있습니다. 자세한 내용은 실험 결과 정렬, 필터링 및 주석 추가하기 항목을 참조하십시오.

개별 시행의 성능을 테스트하려면 훈련된 신경망 또는 시행의 훈련 정보를 내보내십시오. 실험 관리자 툴스트립에서 내보내기 > 훈련된 신경망을 선택하거나 내보내기 > 훈련 정보를 선택합니다. 자세한 내용은 netinfo 항목을 참조하십시오. 결과값 테이블의 내용을 MATLAB 작업 공간에 table 배열로 저장하려면 내보내기 > 결과값 테이블을 선택하십시오.

이 예제에서는 하이퍼파라미터 스윕을 사용한 영상 회귀에 실험 템플릿을 사용하는 방법을 보여줍니다. 이 템플릿을 사용하면 trainNetwork 함수를 사용하는 기본 제공 훈련 실험을 빠르게 설정할 수 있습니다. trainNetwork 함수를 사용하려면 Deep Learning Toolbox가 필요합니다.

다음 단계에 따라 직접 실험을 구성할 수 있습니다. 또는 구성 단계를 건너뛰고 검사하고 실행할 수 있도록 사전 구성되어 있는 실험의 예제를 열어 불러옵니다.

1. 열려 있는 프로젝트를 모두 닫고 실험 관리자 앱을 엽니다.

2. 대화 상자에 시작하기 튜토리얼과 최근 프로젝트로 연결되는 링크, 그리고 새 프로젝트를 만들거나 문서 예제를 여는 버튼이 있습니다. 새로 만들기에서 빈 프로젝트를 선택합니다.

3. 대화 상자에는 영상 분류, 영상 회귀, 시퀀스 분류, 오디오 분류, 의미론적 분할, 사용자 지정 훈련 루프를 포함한 다양한 AI 워크플로를 지원하는 몇 가지 템플릿이 나와 있습니다. 영상 회귀 실험에서 하이퍼파라미터 스윕을 사용한 영상 회귀를 선택합니다.

4. 새 프로젝트의 이름과 위치를 지정합니다. 실험 관리자가 프로젝트에서 새 실험을 엽니다. 실험 정의 탭에 설명, 하이퍼파라미터, 설정 함수, 실험을 정의하는 메트릭이 표시됩니다.

5. 설명 필드에 실험에 대한 설명을 입력합니다.

Regression to predict angles of rotation of digits, using various initial learning rates.

6. 하이퍼파라미터에서 myInitialLearnRate의 값을 0.001:0.001:0.006으로 바꿉니다. 전략Exhaustive Sweep으로 설정되었는지 확인합니다.

7. 설정 함수에서 편집을 클릭합니다. MATLAB 편집기에서 설정 함수가 열립니다. 설정 함수는 실험의 훈련 데이터, 신경망 아키텍처 및 훈련 옵션을 지정합니다. 이 실험에서 설정 함수에는 다음 섹션이 있습니다.

  • 훈련 데이터 불러오기는 실험의 훈련 데이터와 검증 데이터를 4차원 배열로 정의합니다. 훈련 데이터와 검증 데이터가 각각 Digits 데이터 세트의 5,000개의 영상을 포함합니다. 각 영상은 0부터 9까지의 숫자가 특정 각도로 회전된 모습을 보여줍니다. 회귀 값은 회전 각도에 대응됩니다. 이 데이터 세트에 대한 자세한 내용은 Image Data Sets 항목을 참조하십시오.

  • 신경망 아키텍처 정의하기는 딥러닝 회귀를 위한 간단한 컨벌루션 신경망의 아키텍처를 정의합니다.

  • 훈련 옵션 지정하기는 실험을 위한 trainingOptions 객체를 정의합니다. 이 실험에서 설정 함수는 하이퍼파라미터 테이블의 myInitialLearnRate 항목으로부터 초기 학습률에 대한 값을 불러옵니다.

실험을 실행하면 실험 관리자가 설정 함수에 의해 정의된 신경망을 6번 훈련시킵니다. 각 시행에서는 하이퍼파라미터 테이블에 지정된 학습률 중 하나를 사용합니다. 기본적으로 실험 관리자는 한 번에 하나의 시행을 실행합니다. Parallel Computing Toolbox를 사용 중이라면 한 번에 여러 개의 시행을 실행하거나 실험을 클러스터에 일괄 처리 작업으로 넘겨줄 수 있습니다.

  • 한 번에 하나의 실험 시행을 실행하려면 실험 관리자 툴스트립에서 모드Sequential로 설정하고 실행을 클릭하십시오.

  • 한 번에 여러 개의 시행을 실행하려면 모드Simultaneous로 설정하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그러면 실험 관리자가 병렬 풀에 있는 워커의 개수만큼 동시 시행을 실행합니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Run Experiments in ParallelGPU 연산 요구 사항 (Parallel Computing Toolbox) 항목을 참조하십시오.

  • 실험을 일괄 처리 작업으로 넘겨주려면 모드Batch Sequential 또는 Batch Simultaneous로 설정하고 클러스터와 풀 크기를 지정한 다음 실행을 클릭하십시오. 자세한 내용은 Offload Deep Learning Experiments as Batch Jobs to a Cluster 항목을 참조하십시오.

결과 테이블에 각 시행의 평균 제곱 오차의 제곱근(RMSE)과 손실이 표시됩니다.

실험이 실행 중인 동안에 훈련 플롯을 표시하고 각 시행의 진행 상황을 추적하려면 결과 검토에서 훈련 플롯을 클릭합니다. MATLAB 명령 창에서도 훈련 진행 상황을 모니터링할 수 있습니다.

실험이 완료되면 필터 창을 사용하여 열을 기준으로 테이블을 정렬하거나 시행을 필터링할 수 있습니다. 결과값 테이블에 주석을 추가하여 관측 내용을 기록할 수도 있습니다. 자세한 내용은 실험 결과 정렬, 필터링 및 주석 추가하기 항목을 참조하십시오.

개별 시행의 성능을 테스트하려면 훈련된 신경망 또는 시행의 훈련 정보를 내보내십시오. 실험 관리자 툴스트립에서 내보내기 > 훈련된 신경망을 선택하거나 내보내기 > 훈련 정보를 선택합니다. 자세한 내용은 netinfo 항목을 참조하십시오. 결과값 테이블의 내용을 MATLAB 작업 공간에 table 배열로 저장하려면 내보내기 > 결과값 테이블을 선택하십시오.

이 예제에서는 사용자 지정 훈련 루프를 사용한 영상 분류에 훈련 실험 템플릿을 사용하는 방법을 보여줍니다. 이 템플릿을 사용하면 사용자 지정 훈련 실험을 빠르게 설정할 수 있습니다.

다음 단계에 따라 직접 실험을 구성할 수 있습니다. 또는 구성 단계를 건너뛰고 검사하고 실행할 수 있도록 사전 구성되어 있는 실험의 예제를 열어 불러옵니다.

1. 열려 있는 프로젝트를 모두 닫고 실험 관리자 앱을 엽니다.

2. 대화 상자에 시작하기 튜토리얼과 최근 프로젝트로 연결되는 링크, 그리고 새 프로젝트를 만들거나 문서 예제를 여는 버튼이 있습니다. 새로 만들기에서 빈 프로젝트를 선택합니다.

3. 대화 상자에는 영상 분류, 영상 회귀, 시퀀스 분류, 오디오 분류, 의미론적 분할, 사용자 지정 훈련 루프를 포함한 다양한 AI 워크플로를 지원하는 몇 가지 템플릿이 나와 있습니다. 영상 분류 실험에서 사용자 지정 훈련 루프를 사용한 영상 분류를 선택합니다.

4. 새 프로젝트의 이름과 위치를 지정합니다. 실험 관리자가 프로젝트에서 새 실험을 엽니다. 실험 정의 탭에 실험을 정의하는 설명, 하이퍼파라미터 및 훈련 함수가 표시됩니다.

5. 설명 필드에 실험에 대한 설명을 입력합니다.

Classification of digits, using various initial learning rates.

6. 하이퍼파라미터에서 myInitialLearnRate의 값을 0.0025:0.0025:0.015로 바꿉니다. 전략Exhaustive Sweep으로 설정되었는지 확인합니다.

7. 훈련 함수에서 편집을 클릭합니다. MATLAB 편집기에서 훈련 함수가 열립니다. 훈련 함수는 실험에 사용되는 훈련 데이터, 신경망 아키텍처, 훈련 옵션 및 훈련 절차를 지정합니다. 이 실험에서 훈련 함수에는 다음 섹션이 있습니다.

  • 훈련 데이터 불러오기는 실험의 훈련 데이터를 4차원 배열로 정의합니다. 실험은 Digits 데이터 세트를 사용합니다. 이 데이터 세트에는 0부터 9까지의 숫자를 나타내는 28×28 픽셀 회색조 영상 5,000개가 각 숫자별로 범주화되어 있습니다. 이 데이터 세트에 대한 자세한 내용은 Image Data Sets 항목을 참조하십시오.

  • 신경망 아키텍처 정의하기는 딥러닝 분류를 위한 간단한 컨벌루션 신경망의 아키텍처를 정의합니다. 사용자 지정 훈련 루프를 사용하여 신경망을 훈련시키기 위해 훈련 함수는 신경망을 dlnetwork 객체로 표현합니다.

  • 훈련 옵션 지정하기는 실험에 사용되는 훈련 옵션을 정의합니다. 이 실험에서 훈련 함수는 하이퍼파라미터 테이블의 myInitialLearnRate 항목으로부터 초기 학습률에 대한 값을 불러옵니다.

  • 모델 훈련시키기는 실험에 사용되는 사용자 지정 훈련 루프를 정의합니다. 각 Epoch에 대해, 사용자 지정 훈련 루프는 데이터를 섞고 데이터의 미니 배치를 반복합니다. 각 미니 배치에 대해 사용자 지정 훈련 루프는 모델 기울기, 상태 및 손실을 계산하고, 시간 기반 감쇠 학습률 일정의 학습률을 확인하며, 신경망 파라미터를 업데이트합니다. 훈련 진행 상황을 추적하고 훈련 손실 값을 기록하기 위해 훈련 함수는 experiments.Monitor 객체인 monitor를 사용합니다.

실험을 실행하면 실험 관리자가 훈련 함수에 의해 정의된 신경망을 6번 훈련시킵니다. 각 시행에서는 하이퍼파라미터 테이블에 지정된 학습률 중 하나를 사용합니다. 기본적으로 실험 관리자는 한 번에 하나의 시행을 실행합니다. Parallel Computing Toolbox를 사용 중이라면 한 번에 여러 개의 시행을 실행하거나 실험을 클러스터에 일괄 처리 작업으로 넘겨줄 수 있습니다.

  • 한 번에 하나의 실험 시행을 실행하려면 실험 관리자 툴스트립에서 모드Sequential로 설정하고 실행을 클릭하십시오.

  • 한 번에 여러 개의 시행을 실행하려면 모드Simultaneous로 설정하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그러면 실험 관리자가 병렬 풀에 있는 워커의 개수만큼 동시 시행을 실행합니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Run Experiments in ParallelGPU 연산 요구 사항 (Parallel Computing Toolbox) 항목을 참조하십시오.

  • 실험을 일괄 처리 작업으로 넘겨주려면 모드Batch Sequential 또는 Batch Simultaneous로 설정하고 클러스터와 풀 크기를 지정한 다음 실행을 클릭하십시오. 자세한 내용은 Offload Deep Learning Experiments as Batch Jobs to a Cluster 항목을 참조하십시오.

결과 테이블에 각 시행의 훈련 손실이 표시됩니다.

실험이 실행 중인 동안에 훈련 플롯을 표시하고 각 시행의 진행 상황을 추적하려면 결과 검토에서 훈련 플롯을 클릭합니다.

실험이 완료되면 필터 창을 사용하여 열을 기준으로 테이블을 정렬하거나 시행을 필터링할 수 있습니다. 결과값 테이블에 주석을 추가하여 관측 내용을 기록할 수도 있습니다. 자세한 내용은 실험 결과 정렬, 필터링 및 주석 추가하기 항목을 참조하십시오.

개별 시행의 성능을 테스트하려면 시행의 훈련 출력값을 내보내십시오. 실험 관리자 툴스트립에서 내보내기 > 훈련 출력값을 선택합니다. 이 실험에서 훈련 출력값은 훈련 손실 값과 훈련된 신경망이 포함된 구조체입니다. 결과값 테이블의 내용을 MATLAB 작업 공간에 table 배열로 저장하려면 내보내기 > 결과값 테이블을 선택하십시오.

이 예제에서는 실험 관리자를 사용하여 기본 제공 훈련 실험을 설정하는 방법을 보여줍니다. 기본 제공 훈련 실험은 trainNetwork 함수를 사용하고 영상 분류, 영상 회귀, 시퀀스 분류, 의미론적 분할 같은 워크플로를 지원합니다. trainNetwork 함수를 사용하려면 Deep Learning Toolbox가 필요합니다.

기본 제공 훈련 실험은 설명, 하이퍼파라미터 테이블, 설정 함수, 그리고 실험의 결과를 평가하기 위한 메트릭 함수의 모음으로 이루어져 있습니다.

Default configuration for built-in training experiment.

설명 필드에 실험에 대한 설명을 입력합니다.

하이퍼파라미터에서 실험에 사용할 전략을 선택하고 하이퍼파라미터를 지정합니다.

 완전 스윕

 베이즈 최적화

설정 함수는 실험의 훈련 데이터, 신경망 아키텍처 및 훈련 옵션을 구성합니다. 설정 함수의 입력값은 하이퍼파라미터 테이블의 필드로 구성된 구조체입니다. 설정 함수의 출력값은 trainNetwork 함수의 입력값과 일치해야 합니다. 다음 표에는 설정 함수에 대해 지원되는 시그니처가 나와 있습니다.

실험 목표설정 함수 시그니처
images로 지정된 영상과 응답 변수 및 options로 정의된 훈련 옵션을 사용하여 영상 분류 및 회귀 작업에 대해 신경망을 훈련시킵니다.
function [images,layers,options] = Experiment_setup(params)
...
end
images로 지정된 영상과 responses로 지정된 응답 변수를 사용하여 신경망을 훈련시킵니다.
function [images,responses,layers,options] = Experiment_setup(params)
...
end
sequences로 지정된 시퀀스와 응답 변수를 사용하여 시퀀스 또는 시계열의 분류 및 회귀 작업에 대해 신경망(예: LSTM 또는 GRU 신경망)을 훈련시킵니다.
function [sequences,layers,options] = Experiment_setup(params)
...
end
sequences로 지정된 시퀀스와 responses로 지정된 응답 변수를 사용하여 신경망을 훈련시킵니다.
function [sequences,responses,layers,options] = Experiment_setup(params)
...
end
features로 지정된 특징 데이터와 응답 변수를 사용하여 특징 분류 또는 회귀 작업에 대해 신경망(예: 다층 퍼셉트론(MLP) 신경망)을 훈련시킵니다.
function [features,layers,options] = Experiment_setup(params)
...
end
features로 지정된 특징 데이터와 responses로 지정된 응답 변수를 사용하여 신경망을 훈련시킵니다.
function [features,responses,layers,options] = Experiment_setup(params)
...
end

설정 함수를 작성할 때는 다음과 같은 지침을 따릅니다.

  • 점 표기법을 사용하여 실험에 대한 하이퍼파라미터 값에 액세스합니다. 자세한 내용은 구조체형 배열 항목을 참조하십시오.

  • 모든 병렬 워커에 액세스할 수 있는 위치에서 실험용 데이터를 불러옵니다. 예를 들면 데이터를 프로젝트 외부에 저장하고 절대 경로를 사용하여 데이터에 액세스합니다. 또는 데이터저장소의 AlternateFileSystemRoots 속성을 설정하여 다른 컴퓨터의 데이터에 액세스할 수 있는 datastore 객체를 만듭니다. 자세한 내용은 Set Up Datastore for Processing on Different Machines or Clusters 항목을 참조하십시오.

  • 배치 정규화 계층을 포함하는 신경망의 경우 BatchNormalizationStatistics 훈련 옵션이 population이면 실험 관리자는 최종 검증 메트릭 값을 표시합니다. 이 값은 종종 이 훈련 중에 계산된 검증 메트릭과 다릅니다. 이러한 값의 차이는 신경망이 훈련을 종료한 후에 수행한 추가 연산의 결과입니다. 자세한 내용은 배치 정규화 계층 항목을 참조하십시오.

  • 실험에 사용할 수 있는 실행 모드는 훈련 옵션 ExecutionEnvironmentDispatchInBackground에 지정한 설정에 따라 다릅니다.

    실행 모드ExecutionEnvironment에 유효한 설정DispatchInBackground에 유효한 설정
    순차적"auto", "cpu", "gpu", "multi-gpu", "parallel"true, false
    동시"auto", "cpu", "gpu"false
    순차적 일괄 처리"auto", "cpu", "gpu", "parallel"true, false
    동시적 일괄 처리"auto", "cpu", "gpu"false

    자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 Offload Deep Learning Experiments as Batch Jobs to a Cluster 항목을 참조하십시오.

메트릭 섹션은 실험의 결과를 평가할 함수를 지정합니다. 메트릭 함수의 입력값은 다음과 같은 세 개의 필드로 구성된 구조체입니다.

  • trainedNetworktrainNetwork 함수가 반환하는 SeriesNetwork 객체 또는 DAGNetwork 객체입니다. 자세한 내용은 훈련된 신경망을 참조하십시오.

  • trainingInfotrainNetwork 함수가 반환하는 훈련 정보를 포함하는 구조체입니다. 자세한 내용은 훈련 정보를 참조하십시오.

  • parameters는 하이퍼파라미터 테이블의 필드로 구성된 구조체입니다.

메트릭 함수의 출력값은 스칼라 숫자, 논리값 또는 string형이어야 합니다.

실험에서 베이즈 최적화를 사용하는 경우에는 최적화 목록에서 최적화할 메트릭을 선택하십시오. 방향 목록에서 이 메트릭을 최대화할 것인지 아니면 최소화할 것인지 지정하십시오. 실험 관리자는 이 메트릭을 사용하여 실험에 대한 최적의 하이퍼파라미터 조합을 결정합니다. 일반적인 훈련 또는 검증 메트릭(예: 정확도, RMSE 또는 손실)을 선택하거나 표에서 사용자 지정 메트릭을 선택할 수 있습니다.

이 예제에서는 실험 관리자를 사용하여 사용자 지정 훈련 실험을 설정하는 방법을 보여줍니다. 사용자 지정 훈련 실험은 trainNetwork 이외의 훈련 함수가 필요한 워크플로를 지원합니다. 그러한 워크플로에는 다음이 포함됩니다.

  • 계층 그래프로 정의되지 않는 신경망의 훈련.

  • 사용자 지정 학습률 일정을 사용하여 신경망 훈련.

  • 사용자 지정 함수를 사용하여 신경망의 학습 가능한 파라미터 업데이트.

  • 생성적 적대 신경망(GAN) 훈련.

  • 트윈 신경망 훈련.

사용자 지정 훈련 실험은 설명, 하이퍼파라미터 테이블 및 훈련 함수로 구성됩니다.

Default configuration for custom training experiment.

설명 필드에 실험에 대한 설명을 입력합니다.

하이퍼파라미터에서 실험에 사용할 전략을 선택하고 하이퍼파라미터를 지정합니다.

 완전 스윕

 베이즈 최적화

훈련 함수는 실험에 사용되는 훈련 데이터, 신경망 아키텍처, 훈련 옵션 및 훈련 절차를 지정합니다. 훈련 함수의 입력값은 다음과 같습니다.

  • 하이퍼파라미터 테이블의 필드로 구성된 구조체

  • experiments.Monitor 객체 - 훈련 진행 상황을 추적하고, 결과값 테이블의 정보 필드를 업데이트하며, 훈련에 사용된 메트릭의 값을 기록하고, 훈련 플롯을 생성하는 데 사용할 수 있습니다.

실험 관리자가 훈련 함수의 출력값을 저장하기 때문에, 훈련이 끝나면 사용자는 출력값을 MATLAB 작업 공간으로 내보낼 수 있습니다.

훈련 함수를 작성할 때는 다음과 같은 지침을 따릅니다.

  • 점 표기법을 사용하여 실험에 대한 하이퍼파라미터 값에 액세스합니다. 자세한 내용은 구조체형 배열 항목을 참조하십시오.

  • 모든 병렬 워커에 액세스할 수 있는 위치에서 실험용 데이터를 불러옵니다. 예를 들면 데이터를 프로젝트 외부에 저장하고 절대 경로를 사용하여 데이터에 액세스합니다. 또는 데이터저장소의 AlternateFileSystemRoots 속성을 설정하여 다른 컴퓨터의 데이터에 액세스할 수 있는 datastore 객체를 만듭니다. 자세한 내용은 Set Up Datastore for Processing on Different Machines or Clusters 항목을 참조하십시오.

  • 실험의 결과값 테이블에서 정보 열과 메트릭 열에는 모두 숫자형 값이 표시됩니다. 또한 메트릭 값은 훈련 플롯에 기록됩니다. 결과값 테이블에는 표시하지만 훈련 플롯에는 표시하지 않으려는 값에는 정보 열을 사용하십시오.

  • 훈련이 완료되면 툴스트립의 결과 검토 갤러리에 훈련 함수에서 만든 각 Figure의 버튼이 표시됩니다 (R2023a 이후). 시각화 창에 Figure를 표시하려면 갤러리의 사용자 지정 플롯 섹션에서 해당하는 버튼을 클릭하십시오. Figure의 Name 속성을 사용하여 버튼의 이름을 지정합니다. Figure의 이름을 지정하지 않으면 실험 관리자가 좌표축 또는 Figure 제목에서 버튼 이름을 도출합니다.

  • 훈련이 완료되면 툴스트립의 결과 검토 갤러리에 훈련 함수에서 만든 각 Figure의 버튼이 표시됩니다 (R2023a 이후). 시각화 창에 Figure를 표시하려면 갤러리의 사용자 지정 플롯 섹션에서 해당하는 버튼을 클릭하십시오. Figure의 Name 속성을 사용하여 버튼의 이름을 지정합니다. Figure의 이름을 지정하지 않으면 실험 관리자가 좌표축 또는 Figure 제목에서 버튼 이름을 도출합니다.

실험에서 베이즈 최적화를 사용하는 경우에는 최적화 아래 메트릭 섹션에서 최적화할 메트릭 이름을 입력합니다. 방향 목록에서 이 메트릭을 최대화할 것인지 아니면 최소화할 것인지 지정하십시오. 실험 관리자는 이 메트릭을 사용하여 실험에 대한 최적의 하이퍼파라미터 조합을 결정합니다. 훈련 함수를 위해 experiments.Monitor 객체를 사용하여 사용자가 정의한 메트릭을 선택할 수 있습니다.

실험 관리자는 실험을 중단할 수 있는 두 가지 옵션을 제공합니다.

  • 중지 를 클릭하면 실행 중인 시행이 중지됨으로 표시되고 결과가 저장됩니다. 실험이 중지되면 훈련 플롯을 표시하고 시행의 훈련 결과를 내보낼 수 있습니다.

  • 취소 를 클릭하면 실행 중인 시행이 취소됨으로 표시되고 결과가 삭제됩니다. 실험이 중지되면 훈련 플롯을 표시할 수 없고 시행의 훈련 결과를 내보낼 수 없습니다.

두 옵션 모두 완료된 시행 결과를 저장하고 대기 중인 시행을 취소합니다. 일반적으로 취소중지보다 빠릅니다.

전체 실험을 중단하는 대신 실행 중인 각 시행을 중지하거나 대기 중인 각 시행을 취소할 수 있습니다. 결과값 테이블의 동작 열에서 시행의 중지 버튼 또는 취소 버튼 을 클릭합니다.

Results table showing Stop button for a running trial.

실험의 크기를 줄이려면 더 이상 관련이 없는 시행의 결과와 시각화를 삭제합니다. 결과값 테이블의 동작 열에서 시행의 삭제 버튼 을 클릭합니다.

Results table showing Discard button for a completed trial.

훈련이 완료되면 중지하거나 취소하거나 삭제한 시행을 다시 시작할 수 있습니다. 결과값 테이블의 동작 열에서 해당 시행에 대해 다시 시작 버튼 을 클릭합니다.

Results table showing Restart button for a stopped trial.

또는, 여러 개의 시행을 다시 시작하려면 실험 관리자 툴스트립에서 다시 시작 목록을 열고 다시 시작 기준을 하나 이상 선택한 다음 다시 시작 을 클릭합니다. 다시 시작 기준에는 취소된 모든 시행, 중지된 모든 시행, 오류 있는 모든 시행, 삭제된 모든 시행이 있습니다.

참고

모든 실험 유형, 전략 또는 실행 모드에서 중지, 취소, 다시 시작 옵션이 사용 가능한 것은 아닙니다.

실험 관리자는 각 시행에 대해 서로 다른 하이퍼파라미터 조합을 사용하여 여러 개의 실험 시행을 실행합니다. 결과 테이블에 각 시행의 하이퍼파라미터 값과 메트릭 값이 표시됩니다. 여러 결과를 비교하기 위해 이러한 값을 사용하여 결과값 테이블을 정렬하고 시행을 필터링할 수 있습니다.

결과값 테이블의 시행을 정렬하려면 열 제목의 드롭다운 목록을 사용하십시오.

  1. 정렬 기준으로 사용하려는 열 제목을 마우스로 가리킵니다.

  2. 삼각형 아이콘을 클릭합니다.

  3. 오름차순으로 정렬 또는 내림차순으로 정렬을 선택합니다.

    Results table showing drop down list for the Validation Accuracy column.

결과값 테이블의 시행을 필터링하려면 필터 창을 사용하십시오.

  1. 실험 관리자 툴스트립에서 필터를 선택합니다.

    필터 창에는 결과값 테이블에서 숫자형 값이 있는 각 열에 대한 히스토그램이 표시됩니다. 히스토그램을 제거하려면 결과값 테이블에서 해당 열의 드롭다운 목록을 열고 필터 표시 체크박스의 선택을 해제하십시오.

  2. 필터링하려는 열의 히스토그램 아래에 있는 슬라이더를 조정합니다.

    Histogram for Validation Accuracy, with filter sliders set to 60 and 62.

    결과값 테이블에 선택한 범위에 있는 값을 갖는 시행만 표시됩니다.

    Results table showing only trials with Validation Accuracy between 60 and 62.

  3. 결과값 테이블에서 모든 시행을 복원하려면 실험 결과 탭을 닫고 실험 브라우저 창에서 결과를 다시 여십시오.

실험 결과에 대한 관측 내용을 기록하려면 주석을 추가하십시오.

  1. 결과값 테이블에서 셀 하나를 마우스 오른쪽 버튼으로 클릭하고 주석 추가를 선택합니다. 또는 결과값 테이블에서 셀 하나를 선택하고 실험 관리자 툴스트립에서 주석 > 주석 추가를 선택합니다.

    Results table showing drop down list for the Validation Accuracy cell with the largest value.

  2. 주석 창의 텍스트 상자에 관측 내용을 입력합니다. 결과값 테이블에서 각 셀에 주석을 여러 개 추가할 수 있습니다.

    Annotation text says, "Largest validation accuracy."

  3. 주석을 정렬하려면 정렬 기준 드롭다운 목록을 사용하십시오. 생성 시간 또는 시행 번호로 정렬할 수 있습니다.

    Sorting options include: Creation Time: Older to Newer (Default), Creation Time: Newer to Older, Trial Number: Lowest to Highest, and Trial Number: Highest to Lowest.

  4. 특정 주석에 대응되는 셀을 강조 표시하려면 그 주석 위에 있는 링크를 클릭합니다.

  5. 주석을 삭제하려면 주석 오른쪽에 있는 삭제 버튼 을 클릭합니다.

실험 관리자는 실험의 하이퍼파라미터 값과 실험의 각 결과 집합을 생성하는 MATLAB 코드를 읽기 전용 복사본으로 저장합니다. 매번 다른 버전의 코드를 사용하지만 항상 동일한 함수 이름을 사용하여 실험을 여러 번 실행할 수 있습니다. 이전 버전의 코드로 되돌리려는 경우 이전 결과에 대한 실험 소스를 열어 해당 코드에 액세스할 수 있습니다. 이 정보를 보려면 다음을 수행하십시오.

  1. 실험 브라우저 창에서 검사하려는 결과 집합의 이름을 더블 클릭합니다.

  2. 실험 결과 탭에서 실험 소스 보기를 클릭합니다.

  3. 실험 소스 탭에서 실험 설명, 하이퍼파라미터 값, 결과 집합을 생성한 함수를 검사합니다.

  4. 실험에 사용된 함수를 열려면 탭 하단의 링크를 클릭합니다. 이러한 함수는 읽기 전용이지만 프로젝트 폴더에 복사하여 실험을 다시 실행하면 결과를 재현할 수 있습니다.

관련 예제

  • 하이퍼파라미터를 스윕하지 않고 신경망을 시각화하고 구축하고 훈련시키려면 심층 신경망 디자이너 앱을 사용하면 됩니다. 신경망 훈련이 끝난 후, 실험을 생성하여 최적의 훈련 옵션을 찾아보십시오. 자세한 내용은 Generate Experiment Using Deep Network Designer 항목을 참조하십시오.

  • 마우스를 사용할 수 없는 경우에 실험 관리자를 탐색하려면 바로 가기 키를 사용하십시오. 자세한 내용은 Keyboard Shortcuts for Experiment Manager 항목을 참조하십시오.

  • 실험의 크기를 줄이려면 더 이상 관련이 없는 시행의 결과와 시각화를 삭제합니다. 결과값 테이블의 동작 열에서 시행의 삭제 버튼 을 클릭합니다.

버전 내역

R2020a에 개발됨

모두 확장