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

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

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

최대 훈련 반복 횟수로, '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에 개발됨

참고 항목

|