Main Content

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

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 함수를 사용하십시오.

예제는 Train Network with Multiple Outputs 항목을 참조하십시오.

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

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

참고 항목

| | | | |

관련 항목