Main Content

network

사용자 지정 얕은 신경망 만들기

구문

net = network
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)

도움말 보기

help network/network를 입력합니다.

딥러닝 신경망을 만드는 방법에 대한 자세한 내용은 dlnetwork 항목을 참조하십시오.

설명

network는 새 사용자 지정 신경망을 만듭니다. 이 함수는 feedforwardnet, narxnet와 같은 함수에 의해 사용자 지정되는 신경망을 만드는 데 사용됩니다.

net = network와 같이 인수 없이 사용하면 입력값, 계층, 출력값이 없는 새 신경망이 반환됩니다.

net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)는 다음 선택적 인수를 받습니다(디폴트 값과 함께 표시됨).

numInputs

입력값의 개수, 0

numLayers

계층의 개수, 0

biasConnect

numLayers×1 부울 벡터, 모두 0

inputConnect

numLayers×numInputs 부울 행렬, 모두 0

layerConnect

numLayers×numLayers 부울 행렬, 모두 0

outputConnect

numLayers 부울 벡터, 모두 0

그런 후 다음을 반환합니다.

net

속성값이 주어진 새 신경망

속성

아키텍처 속성

net.numInputs

0 또는 양의 정수

입력값의 개수입니다.

net.numLayers

0 또는 양의 정수

계층의 개수입니다.

net.biasConnect

numLayer×1 부울 벡터

net.biasConnect(i)가 1인 경우, 계층 i는 편향을 갖고 net.biases{i}는 이 편향을 설명하는 구조체입니다.

net.inputConnect

numLayer×numInputs 부울 벡터

net.inputConnect(i,j)가 1인 경우, 계층 i는 입력값 j에서 오는 가중치를 갖고 net.inputWeights{i,j}는 이 가중치를 설명하는 구조체입니다.

net.layerConnect

numLayer×numLayers 부울 벡터

net.layerConnect(i,j)가 1인 경우, 계층 i는 계층 j에서 오는 가중치를 갖고 net.layerWeights{i,j}는 이 가중치를 설명하는 구조체입니다.

net.outputConnect

numLayers 부울 벡터

net.outputConnect(i)가 1인 경우, 신경망은 계층 i에서 오는 출력값을 갖고 net.outputs{i}는 이 출력값을 설명하는 구조체입니다.

net.numOutputs

0 또는 양의 정수(읽기 전용)

net.outputConnect에 따른 신경망 출력값의 개수입니다.

net.numInputDelays

0 또는 양의 정수(읽기 전용)

모든 net.inputWeights{i,j}.delays에 따른 최대 입력 지연입니다.

net.numLayerDelays

0 또는 양수(읽기 전용)

모든 net.layerWeights{i,j}.delays에 따른 최대 계층 지연입니다.

하위객체 구조체 속성

net.inputs

numInputs×1 셀형 배열

net.inputs{i}는 입력값 i를 정의하는 구조체입니다.

net.layers

numLayers×1 셀형 배열

net.layers{i}는 계층 i를 정의하는 구조체입니다.

net.biases

numLayers×1 셀형 배열

net.biasConnect(i)가 1인 경우, net.biases{i}는 계층 i의 편향을 정의하는 구조체입니다.

net.inputWeights

numLayers×numInputs 셀형 배열

net.inputConnect(i,j)가 1인 경우, net.inputWeights{i,j}는 입력값 j에서 계층 i로 전달되는 가중치를 정의하는 구조체입니다.

net.layerWeights

numLayers×numLayers 셀형 배열

net.layerConnect(i,j)가 1인 경우, net.layerWeights{i,j}는 계층 j에서 계층 i로 전달되는 가중치를 정의하는 구조체입니다.

net.outputs

numLayers 셀형 배열

net.outputConnect(i)가 1인 경우, net.outputs{i}는 계층 i에서 전달되는 신경망 출력값을 정의하는 구조체입니다.

함수 속성

net.adaptFcn

신경망 적응 함수의 이름 또는 ''

net.initFcn

신경망 초기화 함수의 이름 또는 ''

net.performFcn

신경망 성능 함수의 이름 또는 ''

net.trainFcn

신경망 훈련 함수의 이름 또는 ''

파라미터 속성

net.adaptParam

신경망 적응 파라미터

net.initParam

신경망 초기화 파라미터

net.performParam

신경망 성능 파라미터

net.trainParam

신경망 훈련 파라미터

가중치 및 편향 값 속성

net.IW

입력 가중치 값으로 구성된 numLayers×numInputs 셀형 배열

net.LW

계층 가중치 값으로 구성된 numLayers×numLayers 셀형 배열

net.b

편향 값으로 구성된 numLayers×1 셀형 배열

기타 속성

net.userdata

유용한 값을 저장하는 데 사용할 수 있는 구조체

예제

1개의 입력값과 2개의 계층을 갖는 신경망 만들기

이 예제에서는 입력값과 계층 없는 신경망을 만든 다음 입력값의 개수와 계층의 개수를 각각 1과 2로 설정하는 방법을 보여줍니다.

net = network
net.numInputs = 1
net.numLayers = 2

또는 코드 한 줄을 사용하여 이와 동일한 신경망을 만들 수도 있습니다.

net = network(1,2)

피드포워드 신경망을 만들고 속성 보기

이 예제에서는 입력값이 1개이고 계층이 2개인 피드포워드 신경망을 만드는 방법을 보여줍니다. 첫 번째 계층만 편향을 갖습니다. 첫 번째 입력값에서 첫 번째 계층으로 입력 가중치가 연결됩니다. 첫 번째 계층에서 두 번째 계층으로 계층 가중치가 연결됩니다. 두 번째 계층은 신경망 출력값으로, 목표값을 갖습니다.

net = network(1,2,[1;0],[1; 0],[0 0; 1 0],[0 1])

다음 코드를 사용하여 신경망의 하위객체를 볼 수 있습니다.

net.inputs{1}
net.layers{1}, net.layers{2}
net.biases{1}
net.inputWeights{1,1}, net.layerWeights{2,1}
net.outputs{2}

신경망 내 아무 하위객체 속성이나 변경할 수 있습니다. 이 코드는 두 계층 모두의 전달 함수를 변경합니다.

net.layers{1}.transferFcn = 'tansig';
net.layers{2}.transferFcn = 'logsig';

첫 번째 입력에서 첫 번째 계층으로의 연결에 대한 가중치를 다음과 같이 볼 수 있습니다. 입력값에서 계층으로의 연결에 대한 가중치는 net.IW에 저장되어 있습니다. 값이 아직 설정되지 않은 경우 빈 결과 값이 반환됩니다.

net.IW{1,1}

첫 번째 계층에서 두 번째 계층으로의 연결에 대한 가중치는 다음과 같이 볼 수 있습니다. 계층에서 계층으로의 연결에 대한 가중치는 net.LW에 저장되어 있습니다. 마찬가지로, 값이 아직 설정되지 않은 경우 빈 결과 값이 반환됩니다.

net.LW{2,1}

첫 번째 계층에 대한 편향은 다음과 같이 볼 수 있습니다.

net.b{1}

첫 번째 입력값의 요소 개수를 2로 변경하려면 다음과 같이 각 요소의 범위를 설정하십시오.

net.inputs{1}.range = [0 1; -1 1];

신경망을 훈련시킨 후 sim을 사용하여 신경망을 시뮬레이션할 수 있습니다. 예를 들어, 요소를 2개 가진 입력 벡터에 대해 신경망을 시뮬레이션할 수 있습니다.

p = [0.5; -0.1];
y = sim(net,p)

버전 내역

R2006a 이전에 개발됨