Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ClassificationOutputLayer

説明

分類層は、互いに排他的なクラスをもつ分類タスクおよび重み付き分類タスクの交差エントロピー損失を計算します。

作成

分類層は classificationLayer を使用して作成します。

プロパティ

すべて展開する

分類出力

交差エントロピー損失のクラスの重み。正の数値のベクトルまたは 'none' として指定します。

クラスの重みをベクトルで指定した場合、各要素は、Classes プロパティで該当するクラスの重みを表します。クラスの重みのベクトルを指定するには、'Classes' を使用してクラスも指定しなければなりません。

ClassWeights プロパティが 'none' の場合は、重みなしの交差エントロピー損失が層に適用されます。

出力層のクラス。categorical ベクトル、string 配列、文字ベクトルの cell 配列、または 'auto' として指定します。Classes'auto' の場合、学習時にクラスが自動的に設定されます。string 配列または文字ベクトルの cell 配列 str を指定すると、出力層のクラスが categorical(str,str) に設定されます。

データ型: char | categorical | string | cell

このプロパティは読み取り専用です。

出力のサイズ。正の整数として指定します。この値は、データに含まれるラベルの数です。学習前に、出力サイズが 'auto' に設定されます。

このプロパティは読み取り専用です。

学習用の損失関数。"k 個の互いに排他的なクラスの交差エントロピー関数" を意味する 'crossentropyex' として指定します。

層の名前。文字ベクトルまたは string スカラーとして指定します。層グラフに層を含めるには、空ではない一意の層の名前を指定しなければなりません。この層が含まれる系列ネットワークに学習させて Name'' に設定すると、学習時に層に名前が自動的に割り当てられます。

データ型: char | string

層の入力の数。この層は単一の入力のみを受け入れます。

データ型: double

層の入力名。この層は単一の入力のみを受け入れます。

データ型: cell

層の出力の数。この層には出力がありません。

データ型: double

層の出力名。この層には出力がありません。

データ型: 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   ''   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

"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   ''   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         3 fully connected layer
     6   ''   Softmax                 softmax
     7   ''   Classification Output   Class weighted crossentropyex with 'cat' and 2 other classes

詳細

すべて展開する

互換性の考慮事項

すべて展開する

R2018b 以降は非推奨

参照

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

R2016a で導入