주요 콘텐츠

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

다중 입력 및 다중 출력 신경망

Deep Learning Toolbox™에서는 다중 입력값(예: 여러 소스 및 데이터 유형에 대해 훈련된 신경망) 또는 다중 출력값(예: 분류 응답 변수 및 회귀 응답 변수를 모두 예측하는 신경망)을 갖는 신경망 아키텍처를 정의할 수 있습니다.

다중 입력 신경망

신경망에서 여러 소스의 데이터 또는 다양한 형태의 데이터가 필요한 경우 다중 입력값을 갖는 신경망을 정의합니다. 예를 들어, 여러 센서에서 캡처한 다양한 해상도의 영상 데이터가 필요한 신경망입니다.

다중 입력값을 갖는 딥러닝 신경망을 정의하고 훈련시키려면 dlnetwork 객체를 사용하여 신경망 아키텍처를 지정하고 trainnet 함수를 사용하여 훈련시킵니다.

다중 입력값을 갖는 훈련된 딥러닝 신경망에서 예측을 수행하려면 minibatchpredict 함수를 사용하십시오. 다음 중 하나를 사용하여 다중 입력값을 지정합니다.

  • combinedDatastore 객체

  • transformedDatastore 객체

  • 여러 개의 숫자형 배열

영상 입력값과 특징 입력값을 모두 갖는 신경망을 훈련시키는 방법을 보여주는 예제는 영상 데이터와 특징 데이터로 신경망 훈련시키기 항목을 참조하십시오.

다중 출력 신경망

다양한 형식의 다중 응답 변수가 필요한 작업의 경우 다중 출력값을 사용하여 신경망을 정의합니다. 예를 들면 categorical형과 숫자형 출력값이 모두 필요한 작업이 있을 수 있습니다.

다중 출력값을 갖는 딥러닝 신경망을 훈련시키려면 trainnet 함수를 사용자 지정 손실 함수와 함께 사용하십시오. 예를 들어 예측 레이블과 목표 레이블의 교차 엔트로피 손실과 예측 및 목표 숫자형 응답 변수의 평균제곱오차의 합을 손실로 정의하려면 다음 손실 함수를 사용하십시오.

lossFcn = @(Y1,Y2,T1,T2) crossentropy(Y1,T1) + mse(Y2,T2);

신경망을 이 사용자 지정 손실 함수를 사용하여 trainnet 함수로 훈련시킵니다.

net = trainnet(dsTrain,net,lossFcn,options);

다중 출력값을 갖는 훈련된 딥러닝 신경망에서 예측을 수행하려면 minibatchpredict 함수를 사용하십시오.

예제는 여러 개의 출력값을 갖는 신경망 훈련시키기 항목을 참조하십시오.

다중 입력 및 다중 출력 신경망에 데이터저장소 사용하기

다중 입력 계층 또는 다중 출력값을 갖는 신경망을 훈련시키려면 combine 함수와 transform 함수를 사용하여 (numInputs + numOutputs개의) 열로 구성된 셀형 배열을 출력하는 데이터저장소를 만듭니다. 여기서 numInputs는 신경망 입력값의 개수이고 numOutputs는 신경망 출력값의 개수입니다. 처음 numInputs개의 열은 각 입력값에 대한 예측 변수를 지정하고 마지막 numOutputs개의 열은 응답 변수를 지정합니다. 입력값과 출력값의 순서는 각각 신경망의 InputNamesOutputNames 속성에 따라 결정됩니다.

minibatchpredict 함수를 사용한 추론에서는, 데이터저장소의 읽기 함수가 예측 변수에 대응되는 열을 반환하기만 하면 그 데이터저장소는 유효합니다. minibatchpredict 함수는 처음 numInputs개의 열을 사용하고 뒤에 오는 열을 무시합니다. 여기서 numInputs는 신경망의 입력 계층 개수입니다.

참고 항목

| | | | |

도움말 항목