Main Content

얕은 신경망의 입력값과 출력값 구성하기

이 항목은 신경망 설계를 위한 워크플로에서 설명하는 설계 워크플로의 일부입니다.

신경망을 생성한 후에는 신경망을 구성해야 합니다. 구성 단계는 입력 데이터와 목표 데이터 검토하기, 신경망의 입력 크기와 출력 크기가 데이터와 일치하도록 설정하기, 가장 좋은 신경망 성능으로 낼 수 있도록 입력값과 출력값의 처리를 위한 설정 선택하기와 같은 작업으로 이루어집니다. 구성 단계는 일반적으로 훈련 함수가 호출되었을 때 자동으로 수행됩니다. 그러나 구성 함수를 사용하여 직접 정할 수도 있습니다. 예를 들어, 이전에 만들어 둔 신경망이 사인 함수를 근사하도록 구성하려면 다음 명령을 실행하십시오.

p = -2:.1:2;
t = sin(pi*p/2);
net1 = configure(net,p,t);

신경망에 입력값과 목표값(원하는 신경망 출력값)으로 구성된 예제 세트를 제공했습니다. configure 함수는 이 정보를 사용하여 신경망 입력값과 출력값이 데이터와 일치하도록 설정할 수 있습니다.

구성 후에 계층 1과 계층 2 사이의 가중치를 다시 살펴보면 가중치의 차원이 1x20임을 알 수 있습니다. 이 신경망의 목표값이 스칼라이기 때문입니다.

net1.layerWeights{2,1}

    Neural Network Weight

            delays: 0
           initFcn: (none)
        initConfig: .inputSize
             learn: true
          learnFcn: 'learngdm'
        learnParam: .lr, .mc
              size: [1 10]
         weightFcn: 'dotprod'
       weightParam: (none)
          userdata: (your custom info)

구성 단계에서는 가중치에 대해 적절한 차원을 설정하는 것 외에도, 입력값과 출력값의 처리를 위한 설정을 정의합니다. 입력값 처리에 관한 정보는 inputs 하위객체 내에서 찾을 수 있습니다.

net1.inputs{1}

    Neural Network Input

              name: 'Input'
    feedbackOutput: []
       processFcns: {'removeconstantrows', mapminmax}
     processParams: {1x2 cell array of 2 params}
   processSettings: {1x2 cell array of 2 settings}
    processedRange: [1x2 double]
     processedSize: 1
             range: [1x2 double]
              size: 1
          userdata: (your custom info)

입력값이 신경망에 적용되기 전에 먼저 removeconstantrows 함수와 mapminmax 함수에 의해 처리됩니다. 이 단계는 얕은 다층 신경망과 역전파 훈련에서 자세히 설명하므로 여기서는 세부적으로 들여다보지 않겠습니다. 이들 처리 함수는 몇 개의 처리 파라미터를 가질 수 있으며, 이들은 하위객체 net1.inputs{1}.processParam에 들어 있습니다. 이러한 처리 함수에는 재정의 가능한 디폴트 값이 있습니다. 처리 함수에는 샘플 데이터에 의해 좌우되는 구성 설정도 있습니다. 이들은 net1.inputs{1}.processSettings에 들어 있으며 구성 절차 중에 설정됩니다. 예를 들어, mapminmax 처리 함수는 모든 입력값이 범위 [−1, 1]에 속하도록 데이터를 정규화합니다. 구성 설정에는 올바른 정규화를 수행하는 데 필요한 샘플 데이터의 최솟값과 최댓값이 포함됩니다. 이에 대해서는 얕은 다층 신경망과 역전파 훈련에서 자세히 설명합니다.

일반적으로 처리 파라미터, 훈련 파라미터 등에서 사용되는 용어 “파라미터”는 신경망이 생성될 때 소프트웨어가 할당하는 (그리고 사용자가 재정의할 수 있는) 디폴트 값을 갖는 상수를 나타낼 때 사용합니다. 절차 구성 설정 등에서 사용되는 용어 “구성 설정”은 소프트웨어가 샘플 데이터 분석을 통해 할당하는 상수를 나타낼 때 사용합니다. 이러한 설정에는 디폴트 값이 없으며, 일반적으로 재정의해서는 안 됩니다.

자세한 내용은 얕은 신경망 데이터 구조 이해하기 항목을 참조하십시오.