Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

trainSoftmaxLayer

분류를 위해 소프트맥스 계층 훈련

설명

예제

net = trainSoftmaxLayer(X,T)는 입력 데이터 X와 목표값 T에 대해 소프트맥스 계층 net을 훈련시킵니다.

net = trainSoftmaxLayer(X,T,Name,Value)는 하나 이상의 Name,Value 쌍 인수로 지정된 추가 옵션을 사용하여 소프트맥스 계층 net을 훈련시킵니다.

예를 들어, 손실 함수를 지정할 수 있습니다.

예제

모두 축소

샘플 데이터를 불러옵니다.

[X,T] = iris_dataset;

X는 붓꽃의 4가지 특성으로 구성된 4x150 행렬입니다. 4가지 특성은 꽂받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비입니다.

T는 각 입력값이 3가지 클래스 중 어느 것에 할당되었는지를 정의하는 클래스 벡터로 구성된 3x150 행렬입니다. 각 행은 붓꽃 종(클래스) 하나를 나타내는 가변수에 대응됩니다. 각 열에서 3개 행 중 하나에 존재하는 1은 특정 샘플(관측값 또는 예)이 속하는 클래스를 나타냅니다. 관측값이 속하지 않는 다른 클래스에 대응되는 행에는 0이 존재합니다.

샘플 데이터를 사용하여 소프트맥스 계층을 훈련시킵니다.

net = trainSoftmaxLayer(X,T);

훈련된 소프트맥스 계층을 사용하여 3개 클래스 중 하나로 관측값을 분류합니다.

Y = net(X);

소프트맥스 계층으로부터 얻은 분류 결과와 목표값을 사용하여 혼동행렬을 플로팅합니다.

plotconfusion(T,Y);

입력 인수

모두 축소

훈련 데이터로, m×n 행렬로 지정됩니다. 여기서 m은 훈련 데이터에 있는 변수의 개수이고, n은 관측값(표본)의 개수입니다. 따라서 X의 각 열은 하나의 샘플을 나타냅니다.

데이터형: single | double

목표 데이터로, k×n 행렬로 지정됩니다. 여기서 k는 클래스의 개수이고, n은 관측값의 개수입니다. 각 행은 특정 클래스를 나타내는 가변수입니다. 즉, 각 열은 하나의 샘플을 나타내고, 하나의 행에 있는 1개의 1을 제외한 열의 모든 요소는 0입니다. 이 1개의 1은 해당 샘플의 클래스를 나타냅니다.

데이터형: single | double

이름-값 인수

예: 'MaxEpochs',400,'ShowProgressWindow',false는 최대 반복 횟수를 400으로 지정하고 훈련 창을 숨깁니다.

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

최대 훈련 반복 횟수로, 'MaxEpochs'와 함께 양의 정수 값이 쉼표로 구분되어 지정됩니다.

예: 'MaxEpochs',500

데이터형: single | double

소프트맥스 계층의 손실 함수로, 'LossFunction'과 함께 'crossentropy' 또는 'mse'가 쉼표로 구분되어 지정됩니다.

mse는 평균 제곱 오차 함수를 나타내며, 다음과 같이 표현됩니다.

E=1nj=1ni=1k(tijyij)2,

여기서 n은 훈련 표본의 개수이고, k는 클래스의 개수입니다. tij는 목표 행렬 T의 ij번째 요소이고, yij는 입력 벡터가 xj인 경우 오토인코더의 i번째 출력값입니다.

교차 엔트로피 함수는 다음과 같이 표현됩니다.

E=1nj=1ni=1ktijlnyij+(1tij)ln(1yij).

예: 'LossFunction','mse'

훈련 중에 훈련 창을 표시할지 여부 표시자로, 'ShowProgressWindow'와 함께 true 또는 false가 쉼표로 구분되어 지정됩니다.

예: 'ShowProgressWindow',false

데이터형: logical

소프트맥스 계층을 훈련시키는 데 사용할 훈련 알고리즘으로, 'TrainingAlgorithm'과 함께 스케일링된 켤레 기울기를 나타내는 'trainscg'가 쉼표로 구분되어 지정됩니다.

예: 'TrainingAlgorithm','trainscg'

출력 인수

모두 축소

분류를 위한 소프트맥스 계층으로, network 객체로 반환됩니다. 소프트맥스 계층 net은 목표값 T와 크기가 같습니다.

버전 내역

R2015b에 개발됨

참고 항목

|