ClassificationOutputLayer
(非推奨) 分類出力層
ClassificationOutputLayer オブジェクトを推奨します。代わりに、関数 trainnet を使用し、損失関数を "crossentropy" に設定します。詳細については、バージョン履歴を参照してください。
説明
分類層は、互いに排他的なクラスをもつ分類タスクおよび重み付き分類タスクのクロスエントロピー損失を計算します。
作成
分類層は 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 スカラーとして指定します。Layer 配列入力の場合、関数 trainNetwork は、名前が "" の層に自動的に名前を割り当てます。
ClassificationOutputLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。
データ型: char | string
層への入力の数。1 として返されます。この層は単一の入力のみを受け入れます。
データ型: double
入力名。{'in'} として返されます。この層は単一の入力のみを受け入れます。
データ型: cell
層の出力の数。0 として返されます。この層には出力がありません。
データ型: 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 '' 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
詳細
分類層は、互いに排他的なクラスをもつ分類タスクおよび重み付き分類タスクのクロスエントロピー損失を計算します。
一般的な分類ネットワークでは、通常、分類層がソフトマックス層の後に続きます。分類層では、trainNetwork がソフトマックス関数から値を取得し、1 対 K 符号化方式のクロス エントロピー関数を使用して、K 個の互いに排他的なクラスのうちの 1 つに各入力を割り当てます[1]。
ここで、N はサンプルの数、K はクラスの数、wi はクラス i の重み、tni はサンプル n がクラス i に属することを表すインジケーターです。yni はクラス i のサンプル n の出力で、この場合はソフトマックス関数からの値です。つまり、yni は、ネットワークが観測値 n をクラス i に関連付ける確率です。
参照
[1] Bishop, C. M. Pattern Recognition and Machine Learning. Springer, New York, NY, 2006.
バージョン履歴
R2016a で導入R2024a 以降、ClassificationOutputLayer オブジェクトは非推奨となりました。代わりに、trainnet を使用し、損失関数を "crossentropy" に設定してください。
ClassificationOutputLayer オブジェクトのサポートを削除する予定はありません。ただし、関数 trainnet には次の利点があるため、代わりにこの関数を使うことを推奨します。
trainnetはdlnetworkオブジェクトをサポートしています。このオブジェクトは、ユーザーが作成したり外部のプラットフォームからインポートしたりできる、さまざまなネットワーク アーキテクチャをサポートしています。trainnetを使用すると、損失関数を簡単に指定できます。組み込みの損失関数を選択するか、カスタム損失関数を指定できます。trainnetはdlnetworkオブジェクトを出力します。このオブジェクトは、ネットワークの構築、予測、組み込み学習、可視化、圧縮、検証、およびカスタム学習ループをサポートする統合されたデータ型です。trainnetは、通常、trainNetworkよりも高速です。
関数 trainNetwork と ClassificationOutputLayer オブジェクトを組み合わせた代表的な使用法と、代わりに関数 trainnet を使用するためのコードの更新方法を、次の表に示します。
| 非推奨 | 推奨 |
|---|---|
net = trainNetwork(data,layers,options)。layers には ClassificationOutputLayer オブジェクトが含まれています。 | net = trainnet(data,layers,"crossentropy",options);ClassificationOutputLayer オブジェクトを使用せずに、layers で同じネットワークを指定しています。 |
net = trainNetwork(data,layers,options)。layers には、ClassWeights が数値ベクトルに設定された ClassificationOutputLayer オブジェクトが含まれています。 | lossFcn = @(Y,T) crossentropy(Y,T,Weights=weights);
net = trainnet(data,layers,"crossentropy",options);ClassificationOutputLayer オブジェクトを使用せずに、weights でクラスの重みを指定し、layers で同じネットワークを指定しています。 |
ClassNames は削除される予定です。代わりに Classes を使用してください。コードを更新するには、ClassNames のすべてのインスタンスを Classes に置き換えます。プロパティの間に多少の違いがある場合は、コードをさらに更新する必要があります。
出力層の ClassNames プロパティは文字ベクトルの cell 配列です。Classes プロパティは categorical 配列です。cell 配列入力を必要とする関数に Classes の値を使用するには、関数 cellstr を使用してクラスを変換します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)