Main Content

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

실험 관리자

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

설명

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

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

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

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

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

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

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

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

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

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

기본적으로 실험 관리자는 한 번에 하나의 시행을 실행합니다. Parallel Computing Toolbox™가 있는 경우에는 동시에 여러 시행을 실행하도록 실험을 구성할 수 있습니다. 실험을 병렬로 실행하면 훈련이 진행 중인 동안에 MATLAB®을 사용할 수 있습니다. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목을 참조하십시오.

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

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를 사용 중이라면 한 번에 여러 개의 시행을 실행할 수 있습니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 릴리스별 GPU 지원 (Parallel Computing Toolbox) 항목을 참조하십시오.

  • 한 번에 실험의 시행 하나를 실행하려면 실험 관리자 툴스트립에서 실행을 클릭하십시오.

  • 한 번에 여러 개의 시행을 실행하려면 병렬 연산을 클릭하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그런 다음 실험 관리자는 사용 가능한 병렬 워커의 개수에 따라 여러 개의 동시 시행을 실행합니다.

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

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

정오분류표를 클릭하여 완료된 각 시행의 검증 데이터에 대한 정오분류표를 표시합니다.

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

개별 시행의 성능을 테스트하려면 훈련된 신경망 또는 시행의 훈련 정보를 내보내십시오. 실험 관리자 툴스트립에서 내보내기 > 훈련된 신경망을 선택하거나 내보내기 > 훈련 정보를 선택합니다. 자세한 내용은 net 항목과 info 항목을 참조하십시오.

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

이 예제에서는 하이퍼파라미터 스윕을 사용한 영상 회귀에 실험 템플릿을 사용하는 방법을 보여줍니다. 이 템플릿을 사용하면 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를 사용 중이라면 한 번에 여러 개의 시행을 실행할 수 있습니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 릴리스별 GPU 지원 (Parallel Computing Toolbox) 항목을 참조하십시오.

  • 한 번에 실험의 시행 하나를 실행하려면 실험 관리자 툴스트립에서 실행을 클릭하십시오.

  • 한 번에 여러 개의 시행을 실행하려면 병렬 연산을 클릭하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그런 다음 실험 관리자는 사용 가능한 병렬 워커의 개수에 따라 여러 개의 동시 시행을 실행합니다.

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

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

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

개별 시행의 성능을 테스트하려면 훈련된 신경망 또는 시행의 훈련 정보를 내보내십시오. 실험 관리자 툴스트립에서 내보내기 > 훈련된 신경망을 선택하거나 내보내기 > 훈련 정보를 선택합니다. 자세한 내용은 net 항목과 info 항목을 참조하십시오.

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

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

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

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

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

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

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

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

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

Classification of digits, using various initial learning rates.

4. 하이퍼파라미터에서 myInitialLearnRate의 값을 0.0025:0.0025:0.015로 바꿉니다.

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를 사용 중이라면 한 번에 여러 개의 시행을 실행할 수 있습니다. 최상의 결과를 위해서는 실험을 실행하기 전에 GPU와 같은 수의 병렬 풀을 시작하십시오. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목과 릴리스별 GPU 지원 (Parallel Computing Toolbox) 항목을 참조하십시오.

  • 한 번에 실험의 시행 하나를 실행하려면 실험 관리자 툴스트립에서 실행을 클릭하십시오.

  • 한 번에 여러 개의 시행을 실행하려면 병렬 연산을 클릭하고 실행을 클릭하십시오. 기존 병렬 풀이 없는 경우 실험 관리자는 디폴트 클러스터 프로파일을 사용하여 병렬 풀을 시작합니다. 그런 다음 실험 관리자는 사용 가능한 병렬 워커의 개수에 따라 여러 개의 동시 시행을 실행합니다.

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

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

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

개별 시행의 성능을 테스트하려면 시행의 훈련 출력값을 내보내십시오. 실험 관리자 툴스트립에서 내보내기를 선택합니다. 이 실험에서 훈련 출력값은 훈련 손실 값과 훈련된 신경망이 포함된 구조체입니다.

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

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

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

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

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

  • 일련의 하이퍼파라미터 값을 스윕하려면 전략완전 스윕으로 설정하십시오. 하이퍼파라미터 표에서, 실험에 사용되는 하이퍼파라미터의 값을 지정합니다. 하이퍼파라미터 값은 스칼라로 지정하거나 숫자형, 논리형 또는 string형 값으로 구성된 벡터로 지정할 수 있습니다. 예를 들어, 다음은 하이퍼파라미터를 지정하는 데 유효한 값입니다.

    • 0.01

    • 0.01:0.01:0.05

    • [0.01 0.02 0.04 0.08]

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

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

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

    • 범위 — 실수 값 또는 정수 값 하이퍼파라미터의 하한과 상한을 지정하는, 요소를 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

참고

훈련 옵션 ExecutionEnvironment'multi-gpu' 또는 'parallel'로 설정하거나 훈련 옵션 DispatchInBackground를 활성화한 경우에는 실험 관리자가 병렬 실행을 지원하지 않습니다. 자세한 내용은 Use Experiment Manager to Train Networks in Parallel 항목을 참조하십시오.

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

  • 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"]

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

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

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

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

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

참고

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Results table showing only trials with Validation Accuracy greater than 62.

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

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

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

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

  2. 주석 창의 텍스트 상자에 관측 내용을 입력합니다.

    Annotation text says, "Best accuracy so far. Train for longer to improve this value."

    결과값 테이블에서 각 셀에 주석을 여러 개 추가할 수 있습니다. 각 주석은 타임스탬프와 함께 표시됩니다.

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

주석 창을 열고 모든 주석을 보려면 실험 관리자 툴스트립에서 주석 > 주석 보기를 선택하십시오.

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

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

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

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

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

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

관련 예제

R2020a에 개발됨