Main Content

신경망 객체 속성

다음과 같은 속성은 신경망의 기본 특징을 정의합니다. 신경망 하위객체 속성에서는 신경망을 정의하는 속성에 대해 자세히 설명합니다.

일반

다음은 신경망의 일반적인 속성입니다.

net.name

이 속성은 신경망 이름을 정의하는 문자열로 이루어져 있습니다. feedforwardnet과 같은 신경망 생성 함수는 이 속성을 적절하게 정의합니다. 그러나 원하는 어떤 문자열로도 설정할 수 있습니다.

net.userdata

이 속성은 사용자가 network 객체에 사용자 지정 정보를 추가할 수 있는 장소를 제공합니다. 하나의 필드만 미리 정의되어 있습니다. 이 필드는 모든 Deep Learning Toolbox™ 사용자를 대상으로 하는 비밀 메시지를 포함합니다.

net.userdata.note

아키텍처

다음과 같은 속성은 신경망 하위객체(입력값, 계층, 출력값, 목표값, 편향, 가중치 등)의 개수와 이들이 연결되는 방식을 결정합니다.

net.numInputs

이 속성은 신경망이 받는 입력값의 개수를 정의합니다. 이 속성은 0 또는 양의 정수로 설정할 수 있습니다.

명확한 설명.  신경망 입력값의 개수와 신경망 입력값의 크기는 같지 않습니다. 입력값의 개수는 신경망이 입력값으로서 몇 개의 벡터 세트를 받는지 정의합니다. 각 입력값의 크기(즉, 각 입력 벡터의 요소 개수)는 입력 크기(net.inputs{i}.size)로 결정됩니다.

대부분의 신경망은 하나의 입력값만 가지며, 입력값의 크기는 문제에 의해 결정됩니다.

부수 효과.  이 속성을 변경하면 입력값에서 계층으로의 연결(net.inputConnect)을 정의하는 행렬의 크기와 입력 하위객체(net.inputs)로 구성된 셀형 배열의 크기가 변경됩니다.

net.numLayers

이 속성은 신경망이 가진 계층의 개수를 정의합니다. 이 속성은 0 또는 양의 정수로 설정할 수 있습니다.

부수 효과.  이 속성을 변경하면 계층과의 연결을 정의하는 다음과 같은 각 부울 행렬의 크기가 변경됩니다.

net.biasConnect
net.inputConnect
net.layerConnect
net.outputConnect

또한, 계층의 개수에 따라 크기가 결정되는 하위객체 구조체로 구성된 각 셀형 배열의 크기도 변경됩니다.

net.biases
net.inputWeights
net.layerWeights
net.outputs

또한, 신경망의 조정 가능한 파라미터의 각 속성의 크기도 변경됩니다.

net.IW
net.LW
net.b

net.biasConnect

이 속성은 어느 계층이 편향을 갖는지 정의합니다. 이 속성은 부울 값으로 구성된 임의의 N×1 행렬로 설정할 수 있습니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)입니다. i번째 계층에 대한 편향의 존재(또는 부재) 여부는 다음에서 1(또는 0)로 표시됩니다.

net.biasConnect(i)

부수 효과.  이 속성을 변경하면 편향(net.biases)으로 구성된 셀형 배열에서 구조체의 존재 또는 부재 여부가 변경되고, 편향 벡터(net.b)로 구성된 셀형 배열에서 벡터의 존재 또는 부재 여부가 변경됩니다.

net.inputConnect

이 속성은 어느 계층이 입력값에서 온 가중치를 갖는지 정의합니다.

이 속성은 부울 값으로 구성된 임의의 Nl×Ni 행렬로 설정할 수 있습니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)이고 Ni는 신경망 입력값의 개수(net.numInputs)입니다. j번째 입력값에서 i번째 계층으로 가는 가중치의 존재(또는 부재)는 net.inputConnect(i,j)에서 1(또는 0)로 표시됩니다.

부수 효과.  이 속성을 변경하면 입력 가중치 하위객체(net.inputWeights)로 구성된 셀형 배열에서 구조체의 존재 또는 부재 여부가 변경되고, 입력 가중치 행렬(net.IW)로 구성된 셀형 배열에서 행렬의 존재 또는 부재 여부가 변경됩니다.

net.layerConnect

이 속성은 어느 계층이 다른 계층에서 온 가중치를 갖는지 정의합니다. 이 속성은 부울 값으로 구성된 임의의 NlxNl 행렬로 설정할 수 있습니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)입니다. j번째 입력값에서 i번째 계층으로 가는 가중치의 존재(또는 부재)는 다음에서 1(또는 0)로 표시됩니다.

net.layerConnect(i,j)

부수 효과.  이 속성을 변경하면 계층 가중치 하위객체(net.layerWeights)로 구성된 셀형 배열에서 구조체의 존재 또는 부재 여부가 변경되고, 계층 가중치 행렬(net.LW)로 구성된 셀형 배열에서 행렬의 존재 또는 부재 여부가 변경됩니다.

net.outputConnect

이 속성은 어느 계층이 신경망 출력값을 생성하는지 정의합니다. 이 속성은 부울 값으로 구성된 임의의 1xNl 행렬로 설정할 수 있습니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)입니다. i번째 계층에서 생성되는 신경망 출력값의 존재(또는 부재) 여부는 net.outputConnect(i)에서 1(또는 0)로 표시됩니다.

부수 효과.  이 속성을 변경하면 신경망 출력값의 개수(net.numOutputs)와 출력 하위객체(net.outputs)로 구성된 셀형 배열에서 구조체의 존재 또는 부재 여부가 변경됩니다.

net.numOutputs(읽기 전용)

이 속성은 신경망에 몇 개의 출력값이 있는지를 나타냅니다. 이 속성은 항상 net.outputConnect에 있는 1의 개수와 같습니다.

net.numInputDelays(읽기 전용)

이 속성은 신경망을 시뮬레이션하기 위해 입력해야 하는 지난 입력값의 시간 스텝 개수를 나타냅니다. 이 속성은 항상 신경망 입력 가중치와 연관된 최대 지연값으로 설정됩니다.

numInputDelays = 0;
for i=1:net.numLayers
  for j=1:net.numInputs
    if net.inputConnect(i,j)
      numInputDelays = max( ...
        [numInputDelays net.inputWeights{i,j}.delays]);
    end
  end
end

net.numLayerDelays(읽기 전용)

이 속성은 신경망을 시뮬레이션하기 위해 입력해야 하는 지난 계층 출력값의 시간 스텝 개수를 나타냅니다. 이 속성은 항상 신경망 계층 가중치와 연관된 최대 지연값으로 설정됩니다.

numLayerDelays = 0;
for i=1:net.numLayers
  for j=1:net.numLayers
    if net.layerConnect(i,j)
      numLayerDelays = max( ...
       [numLayerDelays net.layerWeights{i,j}.delays]);
    end
  end
end

net.numWeightElements(읽기 전용)

이 속성은 신경망에 있는 가중치 및 편향 값의 개수를 나타냅니다. 이 속성은 다음과 같은 2개의 셀형 배열에 저장된 행렬의 요소 개수의 합입니다.

net.IW
new.b

하위객체 구조체

다음과 같은 속성은 신경망의 각 입력값, 계층, 출력값, 목표값, 편향 및 가중치를 정의하는 구조체로 구성된 셀형 배열로 이루어져 있습니다.

각 하위객체 유형에 대한 속성은 신경망 하위객체 속성에서 설명합니다.

net.inputs

이 속성은 신경망의 각 입력값에 대한 속성으로 구성된 구조체를 저장합니다. 이 속성은 항상 입력 구조체로 구성된 Ni×1 셀형 배열입니다. 여기서 Ni는 신경망 입력값의 개수(net.numInputs)입니다.

i번째 신경망 입력값의 속성을 정의하는 구조체는 다음에 있습니다.

net.inputs{i}

신경망에 입력값이 1개만 있는 경우 다음과 같이 셀형 배열 표기법을 사용하지 않고도 net.inputs{1}에 액세스할 수 있습니다.

net.input

입력 속성.  입력 속성에 대한 설명은 입력값 항목을 참조하십시오.

net.layers

이 속성은 신경망의 각 계층에 대한 속성으로 구성된 구조체를 저장합니다. 이 속성은 항상 계층 구조체로 구성된 Nl×1 셀형 배열입니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)입니다.

i번째 계층의 속성을 정의하는 구조체는 net.layers{i}에 있습니다.

계층 속성.  계층 속성에 대한 설명은 계층 항목을 참조하십시오.

net.outputs

이 속성은 신경망의 각 출력값에 대한 속성으로 구성된 구조체를 저장합니다. 이 속성은 항상 Nl×1 셀형 배열입니다. 여기서 Nl은 신경망 출력값의 개수(net.numOutputs)입니다.

net.outputConnect(i)가 1(또는 0)이면 i번째 계층(또는 null 행렬 [])에서의 출력값의 속성을 정의하는 구조체는 net.outputs{i}에 있습니다.

신경망에 출력값이 계층 i에 하나만 있는 경우 다음과 같이 셀형 배열 표기법을 사용하지 않고도 net.outputs{i}에 액세스할 수 있습니다.

net.output

출력 속성.  출력 속성에 대한 설명은 출력값 항목을 참조하십시오.

net.biases

이 속성은 신경망의 각 편향에 대한 속성으로 구성된 구조체를 저장합니다. 이 속성은 항상 Nl×1 셀형 배열입니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)입니다.

net.biasConnect(i)가 1(또는 0)이면 i번째 계층(또는 null 행렬 [])과 연관된 편향의 속성을 정의하는 구조체는 net.biases{i}에 있습니다.

편향 속성.  편향 속성에 대한 설명은 편향 항목을 참조하십시오.

net.inputWeights

이 속성은 신경망의 각 입력 가중치에 대한 속성으로 구성된 구조체를 저장합니다. 이 속성은 항상 Nl×Ni 셀형 배열입니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)이고 Ni는 신경망 입력값의 개수(net.numInputs)입니다.

net.inputConnect(i,j)가 1(또는 0)이면 j번째 입력값(또는 null 행렬 [])에서 i번째 계층으로 가는 가중치의 속성을 정의하는 구조체는 net.inputWeights{i,j}에 있습니다.

입력 가중치 속성.  입력 가중치 속성에 대한 설명은 입력 가중치 항목을 참조하십시오.

net.layerWeights

이 속성은 신경망의 각 계층 가중치에 대한 속성으로 구성된 구조체를 저장합니다. 이 속성은 항상 Nl×Nl 셀형 배열입니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)입니다.

net.layerConnect(i,j)가 1(또는 0)이면 j번째 계층(또는 null 행렬 [])에서 i번째 계층으로 가는 가중치의 속성을 정의하는 구조체는 net.layerWeights{i,j}에 있습니다.

계층 가중치 속성.  계층 가중치 속성에 대한 설명은 계층 가중치 항목을 참조하십시오.

함수

다음과 같은 속성은 신경망을 적응시켜야 할 경우, 초기화해야 할 경우, 성능을 측정해야 할 경우 또는 훈련시켜야 할 경우에 사용할 알고리즘을 정의합니다.

net.adaptFcn

이 속성은 신경망을 적응시킬 때 사용할 함수를 정의합니다. 이 속성은 임의의 신경망 적응 함수의 이름으로 설정할 수 있습니다. 신경망 적응 함수는 adapt가 호출될 때마다 적응을 수행하는 데 사용됩니다.

[net,Y,E,Pf,Af] = adapt(NET,P,T,Pi,Ai)

함수 목록을 보려면 help nntrain을 입력하십시오.

부수 효과.  이 속성이 변경될 때마다 신경망의 적응 파라미터(net.adaptParam)가 새 함수의 파라미터와 디폴트 값을 포함하도록 설정됩니다.

net.adaptParam

이 속성은 현재 적응 함수의 파라미터와 값을 정의합니다. 각 필드의 의미에 대한 설명을 보려면 현재 적응 함수에 대해 help를 호출하십시오.

help(net.adaptFcn)

net.derivFcn

이 속성은 신경망이 역전파와 같은 지도 학습 알고리즘을 사용하여 훈련될 때 오차 기울기와 야코비 행렬을 계산하는 데 사용할 도함수를 정의합니다. 이 속성은 임의의 도함수의 이름으로 설정할 수 있습니다.

함수 목록을 보려면 help nnderivative를 입력하십시오.

net.divideFcn

이 속성은 신경망이 역전파와 같은 지도 학습 알고리즘을 사용하여 훈련될 때 사용할 데이터 분할 함수를 정의합니다. 이 속성은 분할 함수의 이름으로 설정할 수 있습니다.

함수 목록을 보려면 help nndivision을 입력하십시오.

부수 효과.  이 속성이 변경될 때마다 신경망의 적응 파라미터(net.divideParam)가 새 함수의 파라미터와 디폴트 값을 포함하도록 설정됩니다.

net.divideParam

이 속성은 현재 데이터 분할 함수의 파라미터와 값을 정의합니다. 각 필드의 의미에 대한 설명을 보려면 다음 명령을 입력하십시오.

help(net.divideFcn)

net.divideMode

이 속성은 데이터 분할 함수가 호출됐을 때 분할할 목표 데이터의 차원을 정의합니다. 이 함수의 디폴트 값은 정적 신경망의 경우 'sample'이고 동적 신경망의 경우 'time'입니다. 또한 목표 데이터를 샘플과 시간 스텝으로 분할하려면 'sampletime'으로 설정할 수 있고, 목표 데이터를 모든 스칼라 값으로 분할하려면 'all'로 설정할 수 있고, 데이터를 분할하지 않으려면 'none'으로 설정할 수 있습니다(이 경우 모든 데이터가 훈련용으로 사용되고 검증 또는 테스트용으로는 하나도 사용되지 않음).

net.initFcn

이 속성은 신경망의 가중치 행렬과 편향 벡터를 초기화하는 데 사용할 함수를 정의합니다. 초기화 함수는 init가 호출될 때마다 신경망을 초기화하는 데 사용됩니다.

net = init(net)

부수 효과.  이 속성이 변경될 때마다 신경망의 초기화 파라미터(net.initParam)가 새 함수의 파라미터와 디폴트 값을 포함하도록 설정됩니다.

net.initParam

이 속성은 현재 초기화 함수의 파라미터와 값을 정의합니다. 각 필드의 의미에 대한 설명을 보려면 현재 초기화 함수에 대해 help를 호출하십시오.

help(net.initFcn)

net.performFcn

이 속성은 신경망의 성능을 측정하는 데 사용할 함수를 정의합니다. 성능 함수는 훈련 중에 train이 호출될 때마다 신경망 성능을 계산하는 데 사용됩니다.

[net,tr] = train(NET,P,T,Pi,Ai)

함수 목록을 보려면 help nnperformance를 입력하십시오.

부수 효과.  이 속성이 변경될 때마다 신경망의 성능 파라미터(net.performParam)가 새 함수의 파라미터와 디폴트 값을 포함하도록 설정됩니다.

net.performParam

이 속성은 현재 성능 함수의 파라미터와 값을 정의합니다. 각 필드의 의미에 대한 설명을 보려면 현재 성능 함수에 대해 help를 호출하십시오.

help(net.performFcn)

net.plotFcns

이 속성은 신경망과 연관된 플롯 함수를 정의하는 문자열로 구성된 행 셀형 배열로 이루어져 있습니다. train 함수에 의해 열리는 신경망 훈련 창에는 각 플로팅 함수에 대한 버튼이 표시됩니다. 훈련 중에 또는 훈련 후에 버튼을 클릭하여 원하는 플롯을 엽니다.

net.plotParams

이 속성은 net.plotFcns의 각 플롯 함수의 파라미터와 값을 정의하는 구조체로 구성된 행 셀형 배열로 이루어져 있습니다. 각 필드의 의미에 대한 설명을 보려면 각 플롯 함수에 대해 help를 호출하십시오.

help(net.plotFcns{i})

net.trainFcn

이 속성은 신경망을 훈련시키는 데 사용할 함수를 정의합니다. 이 속성은 임의의 훈련 함수의 이름으로 설정할 수 있습니다. 훈련 함수는 train이 호출될 때마다 신경망을 훈련시키는 데 사용됩니다.

[net,tr] = train(NET,P,T,Pi,Ai)

함수 목록을 보려면 help nntrain을 입력하십시오.

부수 효과.  이 속성이 변경될 때마다 신경망의 훈련 파라미터(net.trainParam)가 새 함수의 파라미터와 디폴트 값을 포함하도록 설정됩니다.

net.trainParam

이 속성은 현재 훈련 함수의 파라미터와 값을 정의합니다. 각 필드의 의미에 대한 설명을 보려면 현재 훈련 함수에 대해 help를 호출하십시오.

help(net.trainFcn)

가중치 및 편향 값

다음과 같은 속성은 신경망의 조정 가능한 파라미터인 가중치 행렬과 편향 벡터를 정의합니다.

net.IW

이 속성은 신경망 입력값에서 계층으로 가는 가중치로 구성된 가중치 행렬을 정의합니다. 이 속성은 항상 Nl×Ni 셀형 배열입니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)이고 Ni는 신경망 입력값의 개수(net.numInputs)입니다.

net.inputConnect(i,j)1(또는 0)이면 j번째 입력값(또는 null 행렬 [])에서 i번째 계층으로 가는 가중치에 대한 가중치 행렬은 net.IW{i,j}에 있습니다.

가중치 행렬에는 가중치가 가는 계층의 크기(net.layers{i}.size)와 같은 개수의 행이 있습니다. 가중치 행렬에는 가중치와 연관된 지연의 개수에 입력 크기를 곱한 것과 같은 개수의 열이 있습니다.

net.inputs{j}.size * length(net.inputWeights{i,j}.delays)

전처리 함수 net.inputs{i}.processFcns는 일부 신경망에서 기본적으로 'removeconstantrows'로 지정됩니다. 이 경우 신경망 입력값 X에 모든 행 요소가 동일한 값을 갖는 m개의 행이 포함되어 있으면 가중치 행렬의 열은 위의 곱보다 m개 적습니다. 신경망 입력값 X에 대한 자세한 내용은 train을 참조하십시오.

이러한 차원은 입력 가중치 속성에서 얻을 수 있습니다.

net.inputWeights{i,j}.size

net.LW

이 속성은 계층에서 다른 계층으로 가는 가중치로 구성된 가중치 행렬을 정의합니다. 이 속성은 항상 Nl×Nl 셀형 배열입니다. 여기서 Nl은 신경망 계층의 개수(net.numLayers)입니다.

net.layerConnect(i,j)가 1(또는 0)이면 j번째 계층(또는 null 행렬 [])에서 i번째 계층으로 가는 가중치에 대한 가중치 행렬은 net.LW{i,j}에 있습니다.

가중치 행렬에는 가중치가 가는 계층의 크기(net.layers{i}.size)와 같은 개수의 행이 있습니다. 가중치 행렬에는 가중치와 연관된 지연의 개수에 가중치가 온 계층의 크기를 곱한 것과 같은 개수의 열이 있습니다.

net.layers{j}.size * length(net.layerWeights{i,j}.delays)

이러한 차원은 계층 가중치 속성에서 얻을 수 있습니다.

net.layerWeights{i,j}.size

net.b

이 속성은 편향이 있는 각 계층에 대해 편향 벡터를 정의합니다. 이 속성은 항상 Nl ×1 셀형 배열입니다. 여기서 Nl 은 신경망 계층의 개수(net.numLayers)입니다.

net.biasConnect(i)가 1(또는 0)이면 i번째 계층(또는 null 행렬 [])의 편향 벡터는 net.b{i}에 있습니다.

편향 벡터의 요소 개수는 항상 편향 벡터와 연관된 계층의 크기(net.layers{i}.size)와 같습니다.

이 차원은 편향 속성에서 얻을 수 있습니다.

net.biases{i}.size

참고 항목

| |

관련 항목