이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
ClassificationOutputLayer
분류 계층
설명
분류 계층은 상호 배타적인 클래스로의 분류 및 가중 분류 작업에서 교차 엔트로피 손실을 계산합니다.
생성
classificationLayer
를 사용하여 분류 계층을 만듭니다.
속성
분류 출력
ClassWeights
—가중 교차 엔트로피 손실에 대한 클래스 가중치
'none'
(디폴트 값) |양수로 구성된 벡터
가중 교차 엔트로피 손실에 대한 클래스 가중치로, 양수로 구성된 벡터 또는'none'
으로 지정됩니다.
벡터 클래스 가중치의 경우 각 요소는Classes
속성에 있는 대응하는 클래스에 대한 가중치를 나타냅니다. 클래스 가중치로 구성된 벡터를 지정하려면'Classes'
를 사용하여 클래스도 지정해야 합니다.
ClassWeights
속성이'none'
이면 계층은 비가중 교차 엔트로피 손실을 적용합니다.
Classes
—출력 계층의 클래스
'auto'
(디폴트 값) |分类형 벡터|string형 배열|문자형 벡터로 구성된 셀형 배열
출력 계층의 클래스로, categorical형 벡터, string형 배열, 문자형 벡터로 구성된 셀형 배열 또는'auto'
로 지정됩니다.Classes
가'auto'
인 경우, 소프트웨어가 훈련 시점에 자동으로 클래스를 설정합니다. string형 배열 또는 문자형 벡터로 구성된 셀형 배열str
을 지정하면, 출력 계층의 클래스가分类(str,str)
로 설정됩니다.
데이터형:字符
|分类
|string
|cell
OutputSize
—출력 크기
'auto'
(디폴트 값) |양의 정수
읽기 전용 속성입니다.
출력 크기로, 양의 정수로 지정됩니다. 이 값은 데이터에 있는 레이블의 개수입니다. 훈련 전에는 출력 크기가'auto'
로 설정됩니다.
LossFunction
—훈련에 대한 손실 함수
'crossentropyex'
읽기 전용 속성입니다.
훈련에 대한 손실 함수로,Cross Entropy Function for k Mutually Exclusive Classes(k개의 상호 배타적인 클래스에 대한 교차 엔트로피 함수)를 나타내는'crossentropyex'
로 지정됩니다.
계층
Name
—계층 이름
''
(디폴트 값) |문자형 벡터|string형 스칼라
계층 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.Layer
배열 입력값에 대해trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
함수는 이름이''
인 계층에 자동으로 이름을 할당합니다.
데이터형:字符
|string
NumInputs
—입력값의 개수
1
(디폴트 값)
읽기 전용 속성입니다.
계층의 입력값 개수. 이 계층은 단일 입력값만 받습니다.
데이터형:double
InputNames
—입력값 이름
{'in'}
(디폴트 값)
읽기 전용 속성입니다.
계층의 입력값 이름. 이 계층은 단일 입력값만 받습니다.
데이터형:cell
NumOutputs
—출력값 개수
0(디폴트 값)
계층의 출력값 개수. 이 계층에는 출력값이 없습니다.
데이터형:double
OutputNames
—출력값 이름
{}
(디폴트 값)
계층의 출력값 이름. 이 계층에는 출력값이 없습니다.
데이터형:cell
예제
분류 계층 만들기
이름이'output'
인 분류 계층을 만듭니다.
layer = classificationLayer('Name','output')
layer = ClassificationOutputLayer with properties: Name: 'output' Classes: 'auto' ClassWeights: 'none' 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 '' 2-D Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 2-D 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
가중 분류 계층 만들기
이름이 "cat", "dog", "fish"이고 각각 가중치가 0.7, 0.2, 0.1인 3개의 클래스에 대한 가중 분류 계층을 만듭니다.
classes = ["cat""dog""fish"]; classWeights = [0.7 0.2 0.1]; layer = classificationLayer(...'Classes',classes,...'ClassWeights',classWeights)
layer = ClassificationOutputLayer with properties: Name: '' Classes: [cat dog fish] ClassWeights: [3x1 double] OutputSize: 3 Hyperparameters LossFunction: 'crossentropyex'
Layer 배열에 가중 분류 출력 계층을 삽입합니다.
numClasses = numel(classes); layers = [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(numClasses) softmaxLayer classificationLayer('Classes',classes,'ClassWeights',classWeights)]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' 2-D Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 2-D Max Pooling 2x2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 3 fully connected layer 6 '' Softmax softmax 7 '' Classification Output Class weighted crossentropyex with 'cat' and 2 other classes
세부 정보
분류 출력 계층
분류 계층은 상호 배타적인 클래스로의 분류 및 가중 분류 작업에서 교차 엔트로피 손실을 계산합니다.
일반적인 분류 신경망에서 분류 계층은 대개 소프트맥스 계층 뒤에 옵니다. 분류 계층에서trainNetwork
는 다음과 같이 소프트맥스 함수에서 값을 가져와서 1-of-K 코딩 체계에 대한 교차 엔트로피 함수를 사용하여 각 입력값을 K개의 상호 배타적인 클래스 중 하나에 할당합니다[1].
여기서 N은 샘플의 개수이고, K는 클래스의 개수이고, 는 클래스 i의 가중치이고, 는 n번째 샘플이 i번째 클래스에 속한다는 표시자이고, 는 클래스 i의 샘플 n에 대한 출력값인데, 이 경우에는 소프트맥스 함수에서 가져온 값이 됩니다. 다시 말해서, 는 신경망이 n번째 입력값을 클래스 i에 연결할 확률입니다.
참고 문헌
[1] Bishop, C. M. Pattern Recognition and Machine Learning. Springer, New York, NY, 2006.
버전 내역
R2016a에 개발됨R2018b:ClassNames
속성 제거 예정
ClassNames
는 제거될 예정입니다.Classes
를 대신 사용하십시오.ClassNames
를 모두Classes
로 바꾸어 코드를 업데이트하십시오. 속성 간에 몇 가지 차이가 있어 추가로 코드를 업데이트해야 합니다.
출력 계층의ClassNames
속성은 문자형 벡터로 구성된 셀형 배열입니다.Classes
속성은 categorical형 배열입니다. 셀형 배열 입력값이 필요한 함수와 함께Classes
의값을사용하려면cellstr
함수를사용하여클래스를변환하십시오。
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)