이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

classificationLayer

분류 출력 계층

설명

분류 계층은 상호 배타적인 클래스를 갖는 다중 클래스 분류 문제에 대해 교차 엔트로피 손실을 계산합니다.

이 계층은 이전 계층의 출력 크기로부터 클래스의 개수를 추정합니다. 예를 들어, 네트워크의 클래스 개수 K를 지정하려면 분류 계층 앞에 출력 크기가 K인 완전 연결 계층 1개, 그리고 소프트맥스 계층 1개를 삽입하십시오.

layer = classificationLayer는 분류 계층을 만듭니다.

예제

layer = classificationLayer(Name,Value)는 이름-값 쌍을 사용하여 선택적 NameClasses 속성을 설정합니다. 예를 들어, classificationLayer('Name','output')은 이름이 'output'인 분류 계층을 만듭니다. 각 속성 이름을 작은따옴표로 묶습니다.

예제

모두 축소

이름이 'output'인 분류 계층을 만듭니다.

layer = classificationLayer('Name','output')
layer = 
  ClassificationOutputLayer with properties:

            Name: 'output'
         Classes: 'auto'
      OutputSize: 'auto'

   Hyperparameters
    LossFunction: 'crossentropyex'

Layer 배열에 분류 출력 계층을 삽입합니다.

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    reluLayer
    maxPooling2dLayer(2,'Stride',2)
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer]
layers = 
  7x1 Layer array with layers:

     1   ''   Image Input             28x28x1 images with 'zerocenter' normalization
     2   ''   Convolution             20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                    ReLU
     4   ''   Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
     5   ''   Fully Connected         10 fully connected layer
     6   ''   Softmax                 softmax
     7   ''   Classification Output   crossentropyex

입력 인수

모두 축소

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: classificationLayer('Name','output')은 이름이 'output'인 분류 계층을 만듭니다.

계층 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 계층 그래프에 계층을 포함하려면 비어 있지 않은 고유한 계층 이름을 지정해야 합니다. 이 계층을 사용하여 시리즈 네트워크를 훈련시킬 때 Name''로 설정하면, 소프트웨어가 훈련 시점에 해당 계층에 자동으로 이름을 할당합니다.

데이터형: char | string

출력 계층의 클래스로, categorical형 벡터, string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 'auto'로 지정됩니다. Classes'auto'인 경우, 소프트웨어가 훈련 시점에 자동으로 클래스를 설정합니다. string형 배열 또는 문자형 벡터로 구성된 셀형 배열 str을 지정하면, 출력 계층의 클래스가 categorical(str,str)로 설정됩니다. 디폴트 값은 'auto'입니다.

데이터형: char | categorical | string | cell

출력 인수

모두 축소

분류 계층으로, ClassificationOutputLayer 객체로 반환됩니다.

계층을 결합하여 컨벌루션 신경망 아키텍처를 생성하는 방법은 Layer를 참조하십시오.

세부 정보

모두 축소

분류 계층

분류 계층은 상호 배타적인 클래스를 갖는 다중 클래스 분류 문제에 대해 교차 엔트로피 손실을 계산합니다.

일반적인 분류 네트워크에서 분류 계층은 소프트맥스 계층 뒤에 와야 합니다. 분류 계층에서 trainNetwork는 다음과 같이 소프트맥스 함수에서 값을 가져와서 1-of-K 코딩 체계에 대한 교차 엔트로피 함수를 사용하여 각 입력값을 K개의 상호 배타적인 클래스 중 하나에 할당합니다[1].

loss=i=1Nj=1Ktijlnyij,

여기서 N은 샘플의 개수이고, K는 클래스의 개수이고, tij는 i번째 샘플이 j번째 클래스에 속한다는 표시자이고, yij는 클래스 j의 샘플 i에 대한 출력값인데, 이 경우에는 소프트맥스 함수에서 가져온 값이 됩니다. 즉, 이것은 네트워크가 i번째 입력값을 클래스 j에 연결할 확률입니다.

참고 문헌

[1] Bishop, C. M. Pattern Recognition and Machine Learning. Springer, New York, NY, 2006.

R2016a에 개발됨