Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

실험 관리자

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

설명

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

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

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

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

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

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

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

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

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

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

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

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

Experiment Browser showing two experiments. Experiment1 is a built-in training experiment with four results. Experiment2 is a custom training experiment with two results.

파란색 플라스크 trainNetwork 함수를 사용하는 기본 제공 훈련 실험을 나타냅니다. 녹색 비커 는 다른 훈련 함수를 사용하는 사용자 지정 훈련 실험을 나타냅니다. 실험의 구성을 열고 결과를 보려면 해당 실험 또는 결과 집합의 이름을 더블 클릭하십시오.

Experiment Manager app

실험 관리자 앱 열기

  • MATLAB 툴스트립: 탭의 머신러닝 및 딥러닝에서 앱 아이콘을 클릭합니다.

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

예제

모두 확장

이 예제에서는 하이퍼파라미터 스윕을 사용한 영상 분류에 실험 템플릿을 사용하는 방법을 보여줍니다. 이 템플릿을 사용하면 trainNetwork 함수를 사용하는 기본 제공 훈련 실험을 빠르게 설정할 수 있습니다. 실험 관리자를 사용하여 영상 분류 문제를 푸는 다른 예제는 Create a Deep Learning Experiment for Classification 항목과 Use Experiment Manager to Train Networks in Parallel 항목을 참조하십시오. 하이퍼파라미터를 스윕하는 다른 전략에 대한 자세한 내용은 Tune Experiment Hyperparameters by Using Bayesian Optimization 항목을 참조하십시오.

검사하고 실행할 수 있도록 사전 구성되어 있는 실험 프로젝트의 예제를 열어 불러옵니다. 실험을 열기 위해 실험 브라우저 창에서 실험의 이름(Experiment1)을 더블 클릭합니다.

또는 다음 단계에 따라 직접 실험을 구성할 수도 있습니다.

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

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

3. 영상 분류 실험에서 하이퍼파라미터 스윕을 사용한 영상 분류를 선택합니다.

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

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

Classification of digits, using various initial learning rates.

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

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

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

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

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

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

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

  • 한 번에 여러 개의 시행을 실행하려면 모드에서 Simultaneous를 선택하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그런 다음 실험 관리자는 사용 가능한 병렬 워커의 개수에 따라 여러 개의 동시 시행을 실행합니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 릴리스별 GPU 지원 (Parallel Computing Toolbox) 항목을 참조하십시오.

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

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

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

혼동행렬을 클릭하여 완료된 각 시행의 검증 데이터에 대한 혼동행렬을 표시합니다.

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

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

실험을 닫으려면 실험 브라우저 창에서 프로젝트의 이름을 마우스 오른쪽 버튼으로 클릭하고 프로젝트 닫기를 선택하십시오. 실험 관리자가 프로젝트에 포함된 모든 실험과 결과를 닫습니다.

이 예제에서는 하이퍼파라미터 스윕을 사용한 영상 회귀에 실험 템플릿을 사용하는 방법을 보여줍니다. 이 템플릿을 사용하면 trainNetwork 함수를 사용하는 기본 제공 훈련 실험을 빠르게 설정할 수 있습니다. 실험 관리자를 사용하여 회귀 문제를 푸는 다른 예제는 Create a Deep Learning Experiment for Regression 항목을 참조하십시오. 하이퍼파라미터를 스윕하는 다른 전략에 대한 자세한 내용은 Tune Experiment Hyperparameters by Using Bayesian Optimization 항목을 참조하십시오.

검사하고 실행할 수 있도록 사전 구성되어 있는 실험 프로젝트의 예제를 열어 불러옵니다. 실험을 열기 위해 실험 브라우저 창에서 실험의 이름(Experiment1)을 더블 클릭합니다.

또는 다음 단계에 따라 직접 실험을 구성할 수도 있습니다.

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

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

3. 영상 회귀 실험에서 하이퍼파라미터 스윕을 사용한 영상 회귀를 선택합니다.

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 편집기에서 설정 함수가 열립니다. 설정 함수는 실험의 훈련 데이터, 신경망 아키텍처 및 훈련 옵션을 지정합니다. 이 실험에서 설정 함수에는 세 개의 섹션이 있습니다.

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

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

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

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

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

  • 한 번에 여러 개의 시행을 실행하려면 모드에서 Simultaneous를 선택하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그런 다음 실험 관리자는 사용 가능한 병렬 워커의 개수에 따라 여러 개의 동시 시행을 실행합니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 릴리스별 GPU 지원 (Parallel Computing Toolbox) 항목을 참조하십시오.

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

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

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

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

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

실험을 닫으려면 실험 브라우저 창에서 프로젝트의 이름을 마우스 오른쪽 버튼으로 클릭하고 프로젝트 닫기를 선택하십시오. 실험 관리자가 프로젝트에 포함된 모든 실험과 결과를 닫습니다.

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

검사하고 실행할 수 있도록 사전 구성되어 있는 실험 프로젝트의 예제를 열어 불러옵니다. 실험을 열기 위해 실험 브라우저 창에서 실험의 이름(Experiment1)을 더블 클릭합니다.

또는 다음 단계에 따라 직접 실험을 구성할 수도 있습니다.

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

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

3. 영상 분류 실험에서 사용자 지정 훈련 루프를 사용한 영상 분류를 선택합니다.

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

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

Classification of digits, using various initial learning rates.

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

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

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

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

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

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

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

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

  • 한 번에 여러 개의 시행을 실행하려면 모드에서 Simultaneous를 선택하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그런 다음 실험 관리자는 사용 가능한 병렬 워커의 개수에 따라 여러 개의 동시 시행을 실행합니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 릴리스별 GPU 지원 (Parallel Computing Toolbox) 항목을 참조하십시오.

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

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

실험이 실행 중인 동안에 훈련 플롯을 클릭하여 훈련 플롯을 표시하고 각 시행의 진행 상황을 추적합니다.

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

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

실험을 닫으려면 실험 브라우저 창에서 프로젝트의 이름을 마우스 오른쪽 버튼으로 클릭하고 프로젝트 닫기를 선택하십시오. 실험 관리자가 프로젝트에 포함된 모든 실험과 결과를 닫습니다.

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

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

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

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

  • 일련의 하이퍼파라미터 값을 스윕하려면 전략완전 스윕으로 설정하십시오. 하이퍼파라미터 테이블에서, 실험에 사용되는 하이퍼파라미터의 이름과 값을 입력합니다. 하이퍼파라미터 이름은 영문자로 시작해야 하며 그 뒤에 영문자, 숫자, 밑줄이 옵니다. 하이퍼파라미터 값은 스칼라이거나 숫자형, 논리형, string형 값으로 구성된 벡터 또는 문자형 벡터로 구성된 셀형 배열이어야 합니다. 예를 들어, 다음은 하이퍼파라미터를 지정하는 데 유효한 값입니다.

    • 0.01

    • 0.01:0.01:0.05

    • [0.01 0.02 0.04 0.08]

    • ["sgdm" "rmsprop" "adam"]

    • {'squeezenet' 'googlenet' 'resnet18'}

    실험을 실행하면 실험 관리자가 테이블에 지정된 하이퍼파라미터 값의 모든 조합을 사용하여 신경망을 훈련시킵니다.

  • 베이즈 최적화를 사용하여 최적의 훈련 옵션을 찾으려면 전략베이즈 최적화로 설정하십시오. 하이퍼파라미터 표에서, 실험에 사용되는 하이퍼파라미터의 다음과 같은 속성을 지정합니다.

    • 이름 — 유효한 하이퍼파라미터 이름을 입력합니다. 하이퍼파라미터 이름은 영문자로 시작해야 하며 그 뒤에 영문자, 숫자, 밑줄이 옵니다.

    • 범위 — 실수 값 또는 정수 값 하이퍼파라미터의 경우 하이퍼파라미터의 하한과 상한을 지정하는, 요소를 2개 가진 벡터를 입력합니다. categorical형 하이퍼파라미터의 경우 하이퍼파라미터의 가능한 값을 나열하는 string형 배열 또는 문자형 벡터로 구성된 셀형 배열을 입력합니다.

    • 유형실수(실수 값 하이퍼파라미터), 정수(정수 값 하이퍼파라미터) 또는 categorical형(categorical형 하이퍼파라미터)을 선택합니다.

    • 변환없음(변환 없음) 또는 로그(로그 변환)를 선택합니다. 로그를 선택한 경우, 하이퍼파라미터가 실수 또는 정수이고 양수여야 합니다. 이 옵션을 사용하면 하이퍼파라미터가 탐색되고 로그 스케일로 모델링됩니다.

    실험을 실행하면 실험 관리자가 최적의 하이퍼파라미터 조합을 검색합니다. 실험의 각 시행은 이전 시행의 결과를 바탕으로 새로운 하이퍼파라미터 값의 조합을 사용합니다.

    실험의 지속 시간을 지정하려면 베이즈 최적화 옵션에서 실행할 최대 시간(단위: 초)과 최대 시행 횟수를 입력하십시오. 하나의 시행이 실행 완료될 때만 실험 관리자가 이러한 옵션을 체크하므로 실험의 실제 실행 시간과 시행 횟수는 이러한 설정값을 초과할 수 있습니다.

    베이즈 최적화를 사용하려면 Statistics and Machine Learning Toolbox가 필요합니다. 자세한 내용은 Tune Experiment Hyperparameters by Using Bayesian Optimization 항목을 참조하십시오.

설정 함수는 실험의 훈련 데이터, 신경망 아키텍처 및 훈련 옵션을 구성합니다. 설정 함수의 입력값은 하이퍼파라미터 테이블의 필드로 구성된 구조체입니다. 설정 함수의 출력값은 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,reponses,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

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

  • 모든 워커에 액세스할 수 있는 위치의 절대 경로를 사용하여 훈련 데이터와 검증 데이터를 불러옵니다.

  • 배치 정규화 계층을 포함하는 신경망의 경우 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 Experiments as Batch Jobs to Cluster 항목을 참조하십시오.

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

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

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

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

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

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

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

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

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

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

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

  • 샴 신경망 훈련.

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

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

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

  • 일련의 하이퍼파라미터 값을 스윕하려면 전략완전 스윕으로 설정하십시오. 하이퍼파라미터 테이블에서, 실험에 사용되는 하이퍼파라미터의 이름과 값을 입력합니다. 하이퍼파라미터 이름은 영문자로 시작해야 하며 그 뒤에 영문자, 숫자, 밑줄이 옵니다. 하이퍼파라미터 값은 스칼라이거나 숫자형, 논리형, string형 값으로 구성된 벡터 또는 문자형 벡터로 구성된 셀형 배열이어야 합니다. 예를 들어, 다음은 하이퍼파라미터를 지정하는 데 유효한 값입니다.

    • 0.01

    • 0.01:0.01:0.05

    • [0.01 0.02 0.04 0.08]

    • ["sgdm" "rmsprop" "adam"]

    • {'squeezenet' 'googlenet' 'resnet18'}

    실험을 실행하면 실험 관리자가 테이블에 지정된 하이퍼파라미터 값의 모든 조합을 사용하여 신경망을 훈련시킵니다.

  • 베이즈 최적화를 사용하여 최적의 훈련 옵션을 찾으려면 전략베이즈 최적화로 설정하십시오. 하이퍼파라미터 표에서, 실험에 사용되는 하이퍼파라미터의 다음과 같은 속성을 지정합니다.

    • 이름 — 유효한 하이퍼파라미터 이름을 입력합니다. 하이퍼파라미터 이름은 영문자로 시작해야 하며 그 뒤에 영문자, 숫자, 밑줄이 옵니다.

    • 범위 — 실수 값 또는 정수 값 하이퍼파라미터의 경우 하이퍼파라미터의 하한과 상한을 지정하는, 요소를 2개 가진 벡터를 입력합니다. categorical형 하이퍼파라미터의 경우 하이퍼파라미터의 가능한 값을 나열하는 string형 배열 또는 문자형 벡터로 구성된 셀형 배열을 입력합니다.

    • 유형실수(실수 값 하이퍼파라미터), 정수(정수 값 하이퍼파라미터) 또는 categorical형(categorical형 하이퍼파라미터)을 선택합니다.

    • 변환없음(변환 없음) 또는 로그(로그 변환)를 선택합니다. 로그를 선택한 경우, 하이퍼파라미터가 실수 또는 정수이고 양수여야 합니다. 이 옵션을 사용하면 하이퍼파라미터가 탐색되고 로그 스케일로 모델링됩니다.

    실험을 실행하면 실험 관리자가 최적의 하이퍼파라미터 조합을 검색합니다. 실험의 각 시행은 이전 시행의 결과를 바탕으로 새로운 하이퍼파라미터 값의 조합을 사용합니다.

    실험의 지속 시간을 지정하려면 베이즈 최적화 옵션에서 실행할 최대 시간(단위: 초)과 최대 시행 횟수를 입력하십시오. 하나의 시행이 실행 완료될 때만 실험 관리자가 이러한 옵션을 체크하므로 실험의 실제 실행 시간과 시행 횟수는 이러한 설정값을 초과할 수 있습니다.

    베이즈 최적화를 사용하려면 Statistics and Machine Learning Toolbox가 필요합니다. 자세한 내용은 Use Bayesian Optimization in Custom Training Experiments 항목을 참조하십시오.

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

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

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

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

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

  • 모든 워커에 액세스할 수 있는 위치의 절대 경로를 사용하여 훈련 데이터와 검증 데이터를 불러옵니다.

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

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

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

  • 중지는 실행 중인 시행을 Stopped로 표시하고 결과를 저장합니다. 실험이 중지되면 훈련 플롯을 표시하고 시행의 훈련 출력값을 내보낼 수 있습니다.

  • 취소는 실행 중인 시행을 Canceled로 표시하고 결과를 삭제합니다. 실험이 중지되면 훈련 플롯을 표시할 수 없고 시행의 훈련 출력값을 내보낼 수 없습니다.

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

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

Results table showing Stop icon for a running trial.

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

Results table showing Restart icon for a running trial.

또는, 실험 관리자 툴스트립에서 취소한 시행을 모두 다시 시작하려면 취소된 시행 모두 다시 시작 을 클릭하십시오.

참고

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

이 예제에서는 실험을 실행한 후 결과를 비교하고 관측 내용을 기록하는 방법을 보여줍니다.

실험을 실행하면 실험 관리자가 설정 함수로 정의된 신경망을 여러 번 훈련시킵니다. 각 시행은 서로 다른 하이퍼파라미터 조합을 사용합니다. 실험이 완료되면 테이블에 각 시행에 대한 훈련 및 검증 메트릭(예: RMSE 및 손실)이 표시됩니다. 실험의 여러 결과를 비교하기 위해 이러한 메트릭을 사용하여 결과값 테이블을 정렬하고 시행을 필터링할 수 있습니다.

결과값 테이블의 시행을 정렬하려면 훈련 또는 검증 메트릭에 해당하는 열의 드롭다운 목록을 사용하십시오.

  1. 정렬 기준으로 사용하려는 열의 헤더를 마우스로 가리킵니다.

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

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

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

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

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

  2. 필터링하려는 훈련 또는 검증 메트릭의 히스토그램 아래에 있는 슬라이더를 조정합니다.

    Histogram for Validation RMSE, with filter sliders set to 10.5 and 12.5.

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

    Results table showing only trials with Validation RMSE between 10.5 ans 12.5.

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

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

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

    Results table showing drop down list for the Validation RMSE cell with the smallest value.

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

    Annotation text says, "Minimizes validation RMSE."

  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.

주석을 삭제하려면 주석 오른쪽에 있는 삭제 버튼 을 클릭하십시오.

이 예제에서는 특정 결과를 생성한 실험의 구성을 검사하는 방법을 보여줍니다.

실험을 실행한 후에 실험 소스 창을 열어서 실험 설명 및 하이퍼파라미터 테이블, 실험에 사용된 모든 함수에 연결되는 링크를 읽기 전용 복사본으로 볼 수 있습니다. 이 창의 정보를 사용하여 각 결과를 생성한 데이터, 신경망 및 훈련 옵션의 구성을 추적할 수 있습니다.

예를 들어, 하나의 실험을 여러 번 실행했다고 가정하겠습니다. 실험을 실행할 때마다 설정 함수의 내용은 변경했지만 항상 동일한 함수 이름을 사용했습니다. 첫 번째 실험 실행에서는 영상 분류을 위해 실험 템플릿에 제공된 디폴트 신경망을 사용했습니다. 두 번째 실험 실행에서는 마지막 계층을 전이 학습을 위한 새로운 계층으로 바꾸어서 설정 함수가 사전 훈련된 GoogLeNet 신경망을 불러오도록 수정했습니다. 이러한 두 개의 신경망 아키텍처를 사용하는 예제는 Create a Deep Learning Experiment for Classification 항목을 참조하십시오.

첫 번째 실험 결과 창에서 실험 소스 보기 링크를 클릭합니다. 실험 관리자가 실험 소스 창을 열고 첫 번째 결과 집합을 생성한 실험 정의를 보여줍니다. 창 하단의 링크를 클릭하여 첫 번째 실험 실행에서 사용한 설정 함수를 엽니다. 이 설정 함수를 복사하여 간단한 분류 신경망을 사용한 실험을 다시 실행할 수 있습니다.

두 번째 실험 결과 창에서 실험 소스 보기 링크를 클릭합니다. 실험 관리자가 실험 소스 창을 열고 두 번째 결과 집합을 생성한 실험 정의를 보여줍니다. 창 하단의 링크를 클릭하여 두 번째 실험 실행에서 사용한 설정 함수를 엽니다. 이 설정 함수를 복사하여 전이 학습을 사용한 실험을 다시 실행할 수 있습니다.

실험 관리자는 사용한 모든 함수의 복사본을 저장하므로, 실험을 수정하고 다시 실행할 때 이러한 함수의 이름을 직접 바꿀 필요가 없습니다.

관련 예제

버전 내역

R2020a에 개발됨