주요 콘텐츠

network

R2026b

(제거될 예정임) 사용자 지정 얕은 신경망 만들기

    network 함수는 향후 릴리스에서 제거될 예정입니다. 자세한 내용은 레거시 신경망 코드를 dlnetwork 워크플로로 전환하기 항목을 참조하십시오.

    코드 업데이트에 대한 자세한 지침은 버전 내역 항목을 참조하십시오.

    설명

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

    생성

    설명

    net = network는 입력값, 계층 또는 출력값이 없는 새 신경망을 반환합니다.

    예제

    net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)는 추가 신경망 옵션을 지정합니다.

    입력 인수

    모두 확장

    입력값의 개수로, 양의 정수로 지정됩니다.

    계층 개수로, 양의 정수로 지정됩니다.

    편향 연결로, numLayers×1 논리형 벡터로 지정됩니다.

    입력 연결로, numLayers×numInputs 논리형 행렬로 지정됩니다.

    입력 연결로, numLayers×numLayers 논리형 행렬로 지정됩니다.

    출력 연결로, 1×numLayers 논리형 벡터로 지정됩니다.

    속성

    모두 확장

    일반

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

    사용자 데이터로, 구조체로 지정됩니다.

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

    net.userdata.note
    

    아키텍처

    입력값의 개수로, 음이 아닌 정수로 지정됩니다.

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

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

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

    계층 개수로, 음이 아닌 정수로 지정됩니다.

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

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

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

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

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

    net.IW
    net.LW
    net.b
    

    편향 연결로, numLayers×1 논리형 벡터로 지정됩니다.

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

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

    입력 연결로, numLayers×numInputs 논리형 행렬로 지정됩니다.

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

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

    계층 연결로, numLayer×numLayers 논리형 벡터로 지정됩니다.

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

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

    출력 연결로, 1×numLayers 논리형 벡터로 지정됩니다.

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

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

    읽기 전용 속성입니다.

    net.outputConnect에 따른 신경망 출력값의 개수로, 음이 아닌 정수로 지정됩니다.

    읽기 전용 속성입니다.

    모든 net.layerWeights{i,j}.delays에 따른 최대 계층 지연으로, 음이 아닌 정수로 지정됩니다.

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

    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
    

    읽기 전용 속성입니다.

    신경망에 있는 가중치 및 편향 값의 개수로, 음이 아닌 정수로 지정됩니다. 이 속성은 다음과 같은 2개의 셀형 배열에 저장된 행렬의 요소 개수의 합입니다.

    net.IW
    new.b
    

    하위객체 구조체

    입력값으로, numInputs×1 셀형 배열로 지정됩니다.

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

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

    net.input

    입력 객체는 다음과 같은 속성을 갖습니다.

    속성설명
    net.inputs{i}.name

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

    net.inputs{i}.feedbackInput(읽기 전용)

    이 신경망에 개루프 피드백 출력값이 연결된 경우 이 속성은 해당 출력값의 인덱스를 나타냅니다. 그렇지 않은 경우 이 속성은 빈 행렬이 됩니다.

    net.inputs{i}.processFcns

    i번째 신경망 입력값이 사용할 처리 함수 이름으로 구성된 행 셀형 배열입니다. 처리 함수는 신경망이 사용하기 전의 입력값에 적용됩니다.

    이 속성이 변경될 때마다 입력값 processParams는 주어진 처리 함수에 대한 디폴트 값으로 설정되고, exampleInput에 처리 함수와 파라미터를 적용함으로써 processSettings, processedSize, processedRange가 정의됩니다.

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

    net.inputs{i}.processParams

    i번째 신경망 입력값이 사용할 처리 함수 파라미터로 구성된 행 셀형 배열입니다. 처리 파라미터는 처리 함수에 의해 신경망이 사용하기 전의 입력값에 적용됩니다.

    이 속성이 변경될 때마다 입력값 processSettings, processedSize, processedRange는 exampleInput에 처리 함수와 파라미터를 적용함으로써 정의됩니다.

    net.inputs{i}.processSettings (읽기 전용)

    i번째 신경망 입력값이 사용할 처리 함수 설정으로 구성된 행 셀형 배열입니다. 처리 설정은 exampleInput에 처리 함수와 파라미터를 적용함으로써 구해지며, 그런 다음 신경망이 새 입력값을 사용하기 전에 새 입력값에 일관성 있는 결과를 제공하는 데 사용됩니다.

    net.inputs{i}.processedRange(읽기 전용)

    processingFcns와 processingParams에 의해 처리된 후의 exampleInput 값의 범위입니다.

    net.inputs{i}.processedSize(읽기 전용)

    processingFcns와 processingParams에 의해 처리된 후의 exampleInput 값에 있는 행 개수입니다.

    net.inputs{i}.range

    i번째 신경망 입력값의 각 요소의 범위입니다.

    이 속성은 임의의 Ri×2 행렬로 설정할 수 있습니다. 여기서 Ri는 입력값의 요소 개수(net.inputs{i}.size)이고 1열에 있는 각 요소는 그 요소 옆에 있는 2열의 요소보다 작습니다.

    각 j번째 행은 j번째 입력 요소의 최솟값과 최댓값을 순서대로 정의합니다.

    net.inputs{i}(j,:)
    

    일부 초기화 함수는 입력값 범위를 사용하여 입력 가중치 행렬의 적절한 초기값을 구합니다.

    이 속성의 행 개수가 변경될 때마다 입력값 size, processedSize, processedRange가 일관성을 유지하도록 변경됩니다. 이 입력값에서 온 모든 가중치의 크기와 가중치 행렬의 차원도 변경됩니다.

    net.inputs{i}.size

    i번째 신경망 입력값의 요소 개수입니다. 이 속성은 0 또는 양의 정수로 설정할 수 있습니다.

    이 속성이 변경될 때마다 입력값 range, processedRange, processedSize가 업데이트됩니다. 연관된 모든 입력 가중치는 그에 맞게 크기가 변경됩니다.

    net.inputs{i}.userdata

    사용자가 i번째 신경망 입력값에 사용자 지정 정보를 추가할 수 있는 장소입니다.

    계층으로, numLayers×1 셀형 배열로 지정됩니다.

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

    계층 객체는 다음과 같은 속성을 갖습니다.

    속성설명
    net.layers{i}.name

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

    net.layers{i}.dimensions

    i번째 계층의 뉴런의 물리적 차원입니다. 자기 조직화 맵에서는 다차원 방식으로 계층의 뉴런을 배열하는 능력이 중요합니다.

    이 속성은 0 또는 양의 정수 요소로 구성된 임의의 행 벡터로 설정할 수 있습니다. 여기서 모든 요소의 곱은 계층에 있는 뉴런 개수(net.layers{i}.size)가 됩니다.

    계층 차원은 계층의 위상 함수(net.layers{i}.topologyFcn)를 사용하여 계층 내 뉴런의 위치(net.layers{i}.positions)를 계산하는 데 사용됩니다.

    이 속성이 변경될 때마다 계층의 크기(net.layers{i}.size)가 일관성을 유지하도록 변경됩니다. 계층의 뉴런 위치(net.layers{i}.positions)와 뉴런 간 거리(net.layers{i}.distances)도 업데이트됩니다.

    net.layers{i}.distanceFcn

    뉴런 positions에서부터 i번째 계층에 있는 뉴런 간의 distances를 계산하는 데 사용할 거리 함수입니다. 뉴런 거리는 자기 조직화 맵에서 사용합니다. 이 속성은 임의의 거리 함수의 이름으로 설정할 수 있습니다.

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

    이 속성이 변경될 때마다 계층의 뉴런 간 거리(net.layers{i}.distances)가 업데이트됩니다.

    net.layers{i}.distances(읽기 전용)

    i번째 계층에 있는 뉴런 간 거리입니다. 이러한 거리는 자기 조직화 맵에서 사용합니다.

    이 속성은 항상 계층의 거리 함수(net.layers{i}.distanceFcn)를 계층의 뉴런 위치(net.layers{i}.positions)에 적용한 결과로 설정됩니다.

    net.layers{i}.initFcn

    신경망 초기화 함수(net.initFcn)가 initlay인 경우 i번째 계층을 초기화하는 데 사용할 계층 초기화 함수입니다. 신경망 초기화가 initlay로 설정된 경우, 이 속성이 가리키는 함수가 계층의 가중치와 편향을 초기화하는 데 사용됩니다.

    net.layers{i}.netInputFcn

    시뮬레이션 및 훈련 과정에서 계층의 가중 입력값과 편향이 주어졌을 때 i번째 계층의 순 입력값을 계산하는 데 사용할 순 입력 함수입니다.

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

    net.layers{i}.netInputParam

    계층의 순 입력 함수의 파라미터입니다. 각 필드에 대한 설명을 보려면 현재 순 입력 함수에 대해 help를 호출하십시오.

    help(net.layers{i}.netInputFcn)
    
    net.layers{i}.positions(읽기 전용)

    i번째 계층에 있는 뉴런의 위치입니다. 이러한 위치는 자기 조직화 맵에서 사용합니다.

    이 속성은 항상 계층의 위상 함수(net.layers{i}.topologyFcn)를 계층의 차원(net.layers{i}.dimensions)의 위치에 적용한 결과로 설정됩니다.

    plotsom을 사용하여 계층의 뉴런의 위치를 플로팅합니다.

    예를 들어, 신경망의 첫 번째 계층의 뉴런이 차원(net.layers{1}.dimensions) [4 5]로 정렬되었고 위상 함수(net.layers{1}.topologyFcn)가 hextop라면 뉴런의 위치는 다음과 같이 플로팅할 수 있습니다.

    plotsom(net.layers{1}.positions)
    

    Self-organizing map showing neuron positions. The function arranges the neurons in a hexagonal pattern.

    net.layers{i}.range(읽기 전용)

    i번째 계층의 각 뉴런의 출력 범위입니다.

    이 속성은 Si×2 행렬로 설정됩니다. 여기서 Si는 계층의 뉴런 개수(net.layers{i}.size)이고 1열에 있는 각 요소는 그 요소 옆에 있는 2열의 요소보다 작습니다.

    각 j번째 행은 계층의 전달 함수 net.layers{i}.transferFcn의 최소 및 최대 출력값을 정의합니다.

    net.layers{i}.size

    i번째 계층에 있는 뉴런의 개수입니다. 이 속성은 0 또는 양의 정수로 설정할 수 있습니다.

    이 속성을 변경할 때마다 해당 계층으로 가는 입력 가중치의 크기(net.inputWeights{i,:}.size), 해당 계층으로 가는 계층 가중치의 크기(net.layerWeights{i,:}.size) 또는 해당 계층에서 오는 계층 가중치의 크기(net.layerWeights{i,:}.size), 계층의 편향 크기(net.biases{i}.size)가 변경됩니다.

    대응되는 가중치 행렬(net.IW{i,:}, net.LW{i,:}, net.LW{:,i}) 및 편향(net.b{i})의 차원도 변경됩니다.

    이 속성을 변경하면 계층의 출력값과 목표값이 존재하는 경우 계층의 출력값 크기(net.outputs{i}.size)와 목표값 크기(net.targets{i}.size)도 변경됩니다.

    마지막으로, 이 속성을 변경하면 계층의 뉴런의 차원(net.layers{i}.dimension)이 모두 동일한 값으로 설정됩니다. (그 결과 뉴런이 1차원으로 배열됩니다. 다른 배열이 필요한 경우 size를 사용하는 대신 dimensions 속성을 직접 설정하십시오.)

    net.layers{i}.topologyFcn

    계층의 차원(net.layers{i}.dimensions)에서 i번째 계층의 뉴런 위치(net.layers{i}.positions)를 계산하는 데 사용할 위상 함수입니다.

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

    이 속성이 변경될 때마다 계층의 뉴런의 위치(net.layers{i}.positions)가 업데이트됩니다.

    plotsom을 사용하여 계층 뉴런의 위치를 플로팅합니다. 예를 들어, 신경망의 첫 번째 계층의 뉴런이 차원(net.layers{1}.dimensions) [8 10]으로 정렬되었고 위상 함수(net.layers{1}.topologyFcn)가 randtop라면 뉴런의 위치는 다음 플롯과 비슷하게 정렬됩니다.

    plotsom(net.layers{1}.positions)
    

    Self-organizing map showing neuron positions

    net.layers{i}.transferFcn

    시뮬레이션 및 훈련 과정에서 계층의 순 입력값이 주어졌을 때 i번째 계층의 출력값을 계산하는 데 사용할 전달 함수입니다.

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

    net.layers{i}.transferParam

    계층의 전달 함수의 파라미터입니다. 각 필드의 의미에 대한 설명을 보려면 현재 전달 함수에 대해 help를 호출하십시오.

    help(net.layers{i}.transferFcn)
    
    net.layers{i}.userdata

    이 속성은 사용자가 i번째 신경망 계층에 사용자 지정 정보를 추가할 수 있는 장소를 제공합니다.

    편향으로, numLayers×1 셀형 배열로 지정됩니다.

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

    편향 객체는 다음과 같은 속성을 갖습니다.

    속성설명
    net.biases{i}.initFcn

    신경망 초기화 함수가 initlay이고 i번째 계층의 초기화 함수가 initwb인 경우 i번째 계층의 편향 벡터(net.b{i})를 설정하는 데 사용되는 가중치 및 편향 초기화 함수입니다.

    net.biases{i}.learn

    훈련 및 적응 중에 i번째 편향 벡터를 변경해야 할지 여부입니다. 이 속성은 0 또는 1로 설정할 수 있습니다.

    이 속성은 adapt 및 train에 대한 호출 중에 편향의 학습을 활성화 또는 비활성화합니다.

    net.biases{i}.learnFcn

    신경망 훈련 함수가 trainb, trainc 또는 trainr이라면 훈련 중에, 혹은 신경망 적응 함수가 trains라면 적응 중에 i번째 계층의 편향 벡터(net.b{i})를 업데이트하는 데 사용할 학습 함수입니다.

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

    이 속성이 변경될 때마다 편향 학습 파라미터(net.biases{i}.learnParam)가 새 함수의 필드와 디폴트 값을 포함하도록 설정됩니다.

    net.biases{i}.learnParam

    i번째 계층의 편향의 현재 학습 함수에 대한 학습 파라미터와 값입니다. 이 속성의 필드는 현재 학습 함수에 따라 달라집니다. 각 필드의 의미에 대한 설명을 보려면 현재 학습 함수에 대해 help를 호출하십시오.

    net.biases{i}.size(읽기 전용)

    i번째 계층의 편향 벡터의 크기입니다. 이 속성은 항상 i번째 계층의 크기(net.layers{i}.size)로 설정됩니다.

    net.biases{i}.userdata

    이 속성은 사용자가 i번째 계층의 편향에 사용자 지정 정보를 추가할 수 있는 장소를 제공합니다.

    입력 가중치로, numLayers×numLayers 셀형 배열로 지정됩니다.

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

    입력 가중치 객체는 다음과 같은 속성을 갖습니다.

    속성설명
    net.inputWeights{i,j}.delays

    j번째 입력값과 그 입력값에서 i번째 계층으로 가는 가중치 사이의 탭 지연선입니다. 이 속성은 증가하는 값으로 구성된 행 벡터로 설정되어야 합니다. 요소는 0 또는 양의 정수여야 합니다.

    이 속성이 변경될 때마다 가중치의 크기(net.inputWeights{i,j}.size)와 가중치 행렬(net.IW{i,j})의 차원이 업데이트됩니다.

    net.inputWeights{i,j}.initFcn

    신경망 초기화 함수가 initlay이고 i번째 계층의 초기화 함수가 initwb인 경우 j번째 입력값에서 i번째 계층으로 가는 가중치 행렬(net.IW{i,j})을 초기화하는 데 사용할 가중치 및 편향 초기화 함수입니다. 이 함수는 임의의 가중치 초기화 함수의 이름으로 설정할 수 있습니다.

    net.inputWeights{i,j}.initSettings(읽기 전용)

    신경망이 처음 훈련될 때 또는 신경망에서 함수 configure가 직접 호출될 때 자동으로 이루어지는 구성 절차의 일환으로 가중치를 초기화하는 데 유용한 값입니다.

    net.inputWeights{i,j}.learn

    훈련 및 적응 중에 j번째 입력값에서 i번째 계층으로 가는 가중치 행렬을 변경해야 할지 여부입니다. 이 속성은 0 또는 1로 설정할 수 있습니다.

    net.inputWeights{i,j}.learnFcn

    신경망 훈련 함수가 trainb, trainc 또는 trainr이라면 훈련 과정에서, 신경망 적응 함수가 trains라면 적응 과정에서 j번째 입력값에서 i번째 계층으로 가는 가중치 행렬(net.IW{i,j})을 업데이트하는 데 사용할 학습 함수입니다. 이 속성은 임의의 가중치 학습 함수의 이름으로 설정할 수 있습니다.

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

    net.inputWeights{i,j}.learnParam

    j번째 입력값에서 오는 i번째 계층의 가중치의 현재 학습 함수에 대한 학습 파라미터와 값입니다.

    이 속성의 필드는 현재 학습 함수(net.inputWeights{i,j}.learnFcn)에 따라 달라집니다. 현재 학습 함수의 필드를 확인하려면 바로 위의 항목을 실행하십시오.

    각 필드의 의미에 대한 설명을 보려면 현재 학습 함수에 대해 help를 호출하십시오.

    net.inputWeights{i,j}.size(읽기 전용)

    j번째 신경망 입력값에서 오는 i번째 계층의 가중치 행렬의 차원입니다. 이 속성은 항상 요소를 2개 가진 행 벡터로 설정됩니다. 이는 연관된 가중치 행렬(net.IW{i,j})의 행 개수와 열 개수를 나타냅니다. 첫 번째 요소는 i번째 계층의 크기(net.layers{i}.size)와 같습니다. 두 번째 요소는 가중치 지연 벡터의 길이와 j번째 입력값의 크기의 곱과 같습니다.

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

    사용자가 (i,j)번째 입력 가중치에 사용자 지정 정보를 추가할 수 있는 장소입니다.

    net.inputWeights{i,j}.weightFcn

    j번째 입력값에 이 입력값에서 오는 i번째 계층의 가중치를 적용할 때 사용할 가중치 함수입니다. 이 속성은 임의의 가중치 함수의 이름으로 설정할 수 있습니다. 가중치 함수는 시뮬레이션과 훈련 중에 계층 입력값을 변환하는 데 사용됩니다.

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

    net.inputWeights{i,j}.weightParam

    계층의 순 입력 함수의 파라미터입니다. 각 필드에 대한 설명을 보려면 현재 순 입력 함수에 대해 help를 호출하십시오.

    계층 가중치로, numLayers×numLayers 셀형 배열로 지정됩니다.

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

    계층 가중치 객체는 다음과 같은 속성을 갖습니다.

    속성설명
    net.layerWeights{i,j}.delays

    j번째 계층과 그 계층에서 i번째 계층으로 가는 가중치 사이의 탭 지연선입니다. 이 속성은 증가하는 값으로 구성된 행 벡터로 설정되어야 합니다. 요소는 0 또는 양의 정수여야 합니다.

    net.layerWeights{i,j}.initFcn

    신경망 초기화 함수가 initlay이고 i번째 계층의 초기화 함수가 initwb인 경우 j번째 계층에서 i번째 계층으로 가는 가중치 행렬(net.LW{i,j})을 초기화하는 데 사용할 가중치 및 편향 초기화 함수입니다. 이 함수는 임의의 가중치 초기화 함수의 이름으로 설정할 수 있습니다.

    net.layerWeights{i,j}.initSettings(읽기 전용)

    신경망이 처음 훈련될 때 또는 신경망에서 함수 configure가 직접 호출될 때 자동으로 이루어지는 구성 절차의 일환으로 가중치를 초기화하는 데 유용한 값입니다.

    net.layerWeights{i,j}.learn

    훈련 및 적응 중에 j번째 계층에서 i번째 계층으로 가는 가중치 행렬을 변경해야 할지 여부입니다. 이 속성은 0 또는 1로 설정할 수 있습니다.

    net.layerWeights{i,j}.learnFcn

    신경망 훈련 함수가 trainb, trainc 또는 trainr이라면 훈련 과정에서, 신경망 적응 함수가 trains라면 적응 과정에서 j번째 계층에서 i번째 계층으로 가는 가중치 행렬(net.LW{i,j})을 업데이트하는 데 사용할 학습 함수입니다. 이 속성은 임의의 가중치 학습 함수의 이름으로 설정할 수 있습니다.

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

    net.layerWeights{i,j}.learnParam

    j번째 계층에서 오는 i번째 계층의 가중치의 현재 학습 함수에 대한 학습 파라미터 필드와 값입니다. 이 속성의 필드는 현재 학습 함수에 따라 달라집니다. 각 필드에 대한 설명을 보려면 현재 순 입력 함수에 대해 help를 호출하십시오.

    net.layerWeights{i,j}.size(읽기 전용)

    j번째 계층에서 오는 i번째 계층의 가중치 행렬의 차원입니다. 이 속성은 항상 요소를 2개 가진 행 벡터로 설정됩니다. 이는 연관된 가중치 행렬(net.LW{i,j})의 행 개수와 열 개수를 나타냅니다. 첫 번째 요소는 i번째 계층의 크기(net.layers{i}.size)와 같습니다. 두 번째 요소는 가중치 지연 벡터의 길이와 j번째 계층의 크기의 곱과 같습니다.

    net.layerWeights{i,j}.userdata

    사용자가 (i,j)번째 계층 가중치에 사용자 지정 정보를 추가할 수 있는 장소입니다.

    net.layerWeights{i,j}.weightFcn

    j번째 계층의 출력값에 이 계층에서 오는 i번째 계층의 가중치를 적용할 때 사용할 가중치 함수입니다. 이 속성은 임의의 가중치 함수의 이름으로 설정할 수 있습니다. 가중치 함수는 신경망이 시뮬레이션될 때 계층 입력값을 변환하는 데 사용됩니다.

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

    net.layerWeights{i,j}.weightParam

    계층의 순 입력 함수의 파라미터입니다. 각 필드에 대한 설명을 보려면 현재 순 입력 함수에 대해 help를 호출하십시오.

    출력값으로, 1×numLayers 셀형 배열로 지정됩니다.

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

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

    net.output

    출력 객체는 다음과 같은 속성을 갖습니다.

    속성설명
    net.outputs{i}.name

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

    net.outputs{i}.feedbackInput

    출력값이 개루프 피드백(net.outputs{i}.feedbackMode = 'open')을 구현하는 경우 이 속성은 연결된 피드백 입력값의 인덱스를 나타내며 그렇지 않은 경우 빈 행렬이 됩니다.

    net.outputs{i}.feedbackDelay

    이 출력값과 신경망 입력값 사이의 시간 스텝 차이입니다. 입력-출력 신경망 지연은 removedelay 함수와 adddelay 함수를 사용하여 제거하고 추가할 수 있으며 그 결과 이 속성이 늘어나거나 줄어듭니다. 입력값과 출력값 사이의 타이밍 차이는 preparets가 시뮬레이션 및 훈련 데이터의 형식을 올바르게 지정하는 데 사용하고, closeloop가 개루프 출력값을 닫을 때 올바른 지연 수를 더하는 데 사용하고, openloop가 폐루프를 열 때 지연을 제거하는 데 사용합니다.

    net.outputs{i}.feedbackMode

    피드백이 아닌 출력값에 대한 문자열 'none'입니다. 피드백 출력값의 경우 이 속성이 'open' 또는 'closed'로 설정될 수 있습니다. 'open'으로 설정된 경우, 출력값은 피드백 입력값에 연결되며, 속성 feedbackInput이 입력값의 인덱스를 나타냅니다.

    net.outputs{i}.processFcns

    i번째 신경망 출력값이 사용할 처리 함수 이름으로 구성된 행 셀형 배열입니다. 처리 함수는 신경망이 사용하기 전의 목표값에 적용되고, 역으로 신경망 출력값으로 반환되기 전의 계층 출력값에 적용됩니다.

    이 속성을 변경하면 다음과 같은 설정에도 영향을 주게 됩니다. 출력 파라미터 processParams가 지정된 처리 함수의 디폴트 값으로 수정됩니다. exampleOutput에 처리 함수와 파라미터를 적용한 결과를 사용하여 processSettings, processedSize 및 processedRange가 정의됩니다. i번째 계층 크기가 processedSize와 일치하도록 업데이트됩니다.

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

    net.outputs{i}.processParams

    i번째 신경망 출력값이 목표값에 대해 사용할 처리 함수 파라미터로 구성된 행 셀형 배열입니다. 처리 파라미터는 처리 함수에 의해 신경망이 사용하기 전의 입력값에 적용됩니다.

    이 속성이 변경될 때마다 출력값 processSettings, processedSize, processedRange는 exampleOutput에 처리 함수와 파라미터를 적용함으로써 정의됩니다. i번째 계층의 크기도 processedSize와 일치하도록 업데이트됩니다.

    net.outputs{i}.processSettings(읽기 전용)

    i번째 신경망 출력값이 사용할 처리 함수 설정으로 구성된 행 셀형 배열입니다. 처리 설정은 exampleOutput에 처리 함수와 파라미터를 적용함으로써 구해지며, 그런 다음 신경망이 새 목표값을 사용하기 전에 새 목표값에 일관성 있는 결과를 제공하는 데 사용됩니다. 또한, 처리 설정은 역으로 신경망에 의해 반환되기 전의 계층 출력값에 적용됩니다.

    net.outputs{i}.processedRange(읽기 전용)

    processingFcns와 processingParams에 의해 처리된 후의 exampleOutput 값의 범위입니다.

    net.outputs{i}.processedSize(읽기 전용)

    processingFcns와 processingParams에 의해 처리된 후의 exampleOutput 값에 있는 행 개수입니다.

    net.outputs{i}.size(읽기 전용)

    i번째 계층의 출력값의 요소 개수입니다. 이 속성은 항상 i번째 계층의 크기(net.layers{i}.size)로 설정됩니다.

    net.outputs{i}.userdata

    사용자가 i번째 계층의 출력값에 사용자 지정 정보를 추가할 수 있는 장소입니다.

    함수

    신경망 적응 함수로, string형으로 지정됩니다.

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

    신경망 적응 함수는 adapt가 호출될 때마다 적응을 수행하는 데 사용됩니다.

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

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

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

    도함수로, string형으로 지정됩니다.

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

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

    데이터 분할 함수로, string형으로 지정됩니다.

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

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

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

    신경망 초기화 함수로, string형으로 지정됩니다.

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

    net = init(net)
    

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

    신경망 성능 함수로, string형으로 지정됩니다.

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

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

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

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

    플롯 함수로, 셀형 배열로 지정됩니다.

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

    신경망 훈련 함수로, string형으로 지정됩니다.

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

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

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

    파라미터

    신경망 적응 파라미터로, parameter 객체로 지정됩니다.

    각 필드의 의미에 대한 설명을 보려면 현재 적응 함수에 대해 help를 호출하십시오.

    help(net.adaptFcn)
    

    신경망 데이터 분할 파라미터로, parameter 객체로 지정됩니다.

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

    help(net.divideFcn)
    

    데이터 분할 모드로, string형으로 지정됩니다.

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

    신경망 초기화 파라미터로, parameter 객체로 지정됩니다.

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

    help(net.initFcn)
    

    신경망 초기화 파라미터로, parameter 객체로 구성된 셀형 배열로 지정됩니다.

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

    help(net.plotFcns{i})
    

    훈련 함수 파라미터로, parameter 객체로 지정됩니다.

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

    help(net.trainFcn)
    

    가중치 및 편향 값

    입력 가중치 값으로, 입력 가중치 값으로 구성된 numLayers×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
    

    계층 가중치 값으로, 계층 가중치 값으로 구성된 numLayers×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
    

    편향 값으로, 편향 값으로 구성된 numLayers×1 셀형 배열로 지정됩니다.

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

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

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

    net.biases{i}.size
    

    예제

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

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

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

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

    net = network(1,2)
    

    버전 내역

    R2006a 이전에 개발됨

    모두 축소