CompactClassificationNeuralNetwork
説明
CompactClassificationNeuralNetwork は、ClassificationNeuralNetwork モデル オブジェクトのコンパクトなバージョンです。コンパクトなモデルには、分類器の学習に使用されたデータが含まれません。このため、コンパクトなモデルを使用しても、交差検証など一部のタスクは実行できません。コンパクトなモデルは、新しいデータに対するラベルの予測などのタスクに使用します。
作成
CompactClassificationNeuralNetwork オブジェクトは、compact を使用して完全な ClassificationNeuralNetwork モデル オブジェクトから作成します。
プロパティ
ニューラル ネットワークのプロパティ
この プロパティ は読み取り専用です。
ニューラル ネットワーク モデルの全結合層のサイズ。
プロパティの値は、モデルの当てはめに使用した方法によって異なります。
ニューラル ネットワーク アーキテクチャを指定する
dlnetworkまたは層配列を使用して当てはめたモデルの場合、このプロパティは空になります。この場合、モデルのニューラル ネットワーク アーキテクチャを調べるには、dlnetwork(Deep Learning Toolbox) 関数を使用してモデルをdlnetworkオブジェクトに変換します。それ以外の場合、プロパティは正の整数ベクトルになります。
LayerSizesの i 番目の要素がニューラル ネットワーク モデルの i 番目の全結合層の出力数です。この場合、LayerSizesには最終全結合層のサイズは含まれません。この層の出力数は常に K で、K は応答変数内のクラス数です。
データ型: single | double
この プロパティ は読み取り専用です。
全結合層の学習済みの層の重み。
プロパティの値は、モデルの当てはめに使用した方法によって異なります。
ニューラル ネットワーク アーキテクチャを指定する
dlnetworkまたは層配列を使用して当てはめたモデルの場合、このプロパティは空になります。この場合、モデルの学習可能なパラメーターを調べるには、dlnetwork(Deep Learning Toolbox) 関数を使用してモデルをdlnetworkオブジェクトに変換します。それ以外の場合、プロパティは cell 配列になります。cell 配列のエントリ i が全結合層 i の層の重みに対応します。たとえば、
Mdl.LayerWeights{1}は、モデルMdlの最初の全結合層についての重みを返します。この場合、LayerWeightsには最終全結合層の重みが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
全結合層の学習済みの層のバイアス。
プロパティの値は、モデルの当てはめに使用した方法によって異なります。
ニューラル ネットワーク アーキテクチャを指定する
dlnetworkまたは層配列を使用して当てはめたモデルの場合、このプロパティは空になります。この場合、モデルの学習可能なパラメーターを調べるには、dlnetwork(Deep Learning Toolbox) 関数を使用してモデルをdlnetworkオブジェクトに変換します。それ以外の場合、プロパティは cell 配列になります。cell 配列のエントリ i が全結合層 i の層のバイアスに対応します。たとえば、
Mdl.LayerBiases{1}は、モデルMdlの最初の全結合層についてのバイアスを返します。この場合、LayerBiasesには最終全結合層のバイアスが含まれます。
データ型: cell
この プロパティ は読み取り専用です。
ニューラル ネットワーク モデルの全結合層の活性化関数。
プロパティの値は、モデルの当てはめに使用した方法によって異なります。
ニューラル ネットワーク アーキテクチャを指定する
dlnetworkまたは層配列を使用して当てはめたモデルの場合、このプロパティは''になります。この場合、モデルのニューラル ネットワーク アーキテクチャを調べるには、dlnetwork(Deep Learning Toolbox) 関数を使用してモデルをdlnetworkオブジェクトに変換します。それ以外の場合、プロパティは文字ベクトルまたは文字ベクトルの cell 配列になります。
Activationsに活性化関数が 1 つだけ含まれている場合は、ニューラル ネットワーク モデルの最終全結合層を除くすべての全結合層の活性化関数になります。最終全結合層の活性化関数は常にソフトマックス (OutputLayerActivation) です。Activationsが活性化関数の配列の場合は、i 番目の要素がニューラル ネットワーク モデルの i 番目の層の活性化関数になります。
Activations が文字ベクトルまたは文字ベクトルの cell 配列の場合、値は次の表のようになります。
| 値 | 説明 |
|---|---|
"relu" | 正規化線形ユニット (ReLU) 関数 — 各入力要素に対して、0 より小さい値については 0 に設定するという次のしきい値演算を実行します。 |
"tanh" | 双曲線正接 (tanh) 関数 — 各入力要素に関数 |
"sigmoid" | シグモイド関数 — 各入力要素に対して次の演算を実行します。 |
"none" | 恒等関数 — 変換を実行せずに、各入力要素を次のようにそのまま返します。f(x) = x |
データ型: char | cell
この プロパティ は読み取り専用です。
最終全結合層の活性化関数。
プロパティの値は、モデルの当てはめに使用した方法によって異なります。
ニューラル ネットワーク アーキテクチャを指定する
dlnetworkまたは層配列を使用して当てはめたモデルの場合、このプロパティは空になります。この場合、モデルのニューラル ネットワーク アーキテクチャを調べるには、dlnetwork(Deep Learning Toolbox) 関数を使用してモデルをdlnetworkオブジェクトに変換します。それ以外の場合、プロパティは
'softmax'になります。関数は入力 xi を取り、各入力について次を返します。K は応答変数内のクラスの数です。結果は予測分類スコア (または事後確率) に対応します。
データ プロパティ
この プロパティ は読み取り専用です。
予測子変数名。文字ベクトルの cell 配列として返されます。PredictorNames の要素の順序は、予測子名が学習データに現れる順序に対応します。
データ型: cell
この プロパティ は読み取り専用です。
カテゴリカル予測子のインデックス。正の整数のベクトルとして返されます。予測子データの行に観測値が含まれていると仮定すると、CategoricalPredictors には、カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値が格納されます。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。
データ型: double
この プロパティ は読み取り専用です。
展開された予測子名。文字ベクトルの cell 配列として返されます。モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNames は PredictorNames と同じです。
データ型: cell
この プロパティ は読み取り専用です。
学習に使用された一意のクラス名。数値ベクトル、categorical ベクトル、logical ベクトル、文字配列、または文字ベクトルの cell 配列として返されます。ClassNames のデータ型はモデルの学習に使用された応答変数内のクラス ラベルと同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。ClassNames はクラスの順序も決定します。
データ型: single | double | categorical | logical | char | cell
R2023b 以降
この プロパティ は読み取り専用です。
予測子の平均。数値ベクトルとして返されます。ニューラル ネットワーク モデルに学習させるときに Standardize を 1 または true に設定した場合、ベクトル Mu の長さは展開された予測子の数と等しくなります (ExpandedPredictorNames を参照)。展開されたカテゴリカル予測子に対応するダミー変数については、ベクトルに値 0 が格納されます。
ニューラル ネットワーク モデルに学習させるときに Standardize を 0 または false に設定した場合、Mu の値は空ベクトル ([]) になります。
データ型: double
この プロパティ は読み取り専用です。
応答変数名。文字ベクトルとして返されます。
データ型: char
R2023b 以降
この プロパティ は読み取り専用です。
予測子の標準偏差。数値ベクトルとして返されます。ニューラル ネットワーク モデルに学習させるときに Standardize を 1 または true に設定した場合、ベクトル Sigma の長さは展開された予測子の数と等しくなります (ExpandedPredictorNames を参照)。展開されたカテゴリカル予測子に対応するダミー変数については、ベクトルに値 1 が格納されます。
ニューラル ネットワーク モデルに学習させるときに Standardize を 0 または false に設定した場合、Sigma の値は空ベクトル ([]) になります。
データ型: double
他の分類のプロパティ
誤分類コスト。数値正方行列として返されます。Cost(i,j) は、真のクラスが i である場合に点をクラス j に分類するコストです。コスト行列は、i ~= j の場合は Cost(i,j) = 1、i = j の場合は Cost(i,j) = 0 という形式に必ずなります。行は真のクラスに、列は予測するクラスに対応します。Cost の行と列の順序は、ClassNames のクラスの順序に対応します。
Cost の値は予測に使用されますが、学習には使用されません。学習済みモデルの Cost プロパティの値はドット表記を使用して変更できます。
データ型: double
この プロパティ は読み取り専用です。
事前クラス確率。数値ベクトルとして返されます。Prior の要素の順序は ClassNames の要素に対応します。
データ型: double
スコア変換。文字ベクトルまたは関数ハンドルを指定します。ScoreTransform は、組み込みの変換関数または予測した分類スコアを変換する関数のハンドルを表します。
スコア変換関数を function などに変更するには、ドット表記を使用します。
組み込み関数の場合は、文字ベクトルを入力します。
Mdl.ScoreTransform = 'function';
次の表は、使用可能な組み込み関数の一覧です。
値 説明 'doublelogit'1/(1 + e–2x) 'invlogit'log(x / (1 – x)) 'ismax'最大のスコアをもつクラスのスコアを 1 に設定し、他のすべてのクラスのスコアを 0 に設定する 'logit'1/(1 + e–x) 'none'または'identity'x (変換なし) 'sign'x < 0 のとき –1
x = 0 のとき 0
x > 0 のとき 1'symmetric'2x – 1 'symmetricismax'最大のスコアをもつクラスのスコアを 1 に設定し、他のすべてのクラスのスコアを –1 に設定する 'symmetriclogit'2/(1 + e–x) – 1 MATLAB® 関数やユーザー定義関数の場合は、関数ハンドルを入力します。
Mdl.ScoreTransform = @function;
functionは、行列 (元のスコア) を受け入れて同じサイズの行列 (変換したスコア) を返さなければなりません。
データ型: char | function_handle
オブジェクト関数
dlnetwork (Deep Learning Toolbox) | 深層学習ニューラル ネットワーク |
lime | Local Interpretable Model-agnostic Explanations (LIME) |
partialDependence | 部分依存の計算 |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
shapley | シャープレイ値 |
compareHoldout | 新しいデータを使用して 2 つの分類モデルの精度を比較 |
testckfold | 交差検証の反復により 2 つの分類モデルの精度を比較 |
gather | Gather properties of Statistics and Machine Learning Toolbox object from GPU |
例
モデルから学習データを削除することにより、完全なニューラル ネットワーク分類器のサイズを縮小します。コンパクトなモデルを使用すると、メモリ効率を向上させることができます。
patients データ セットを読み込みます。データ セットから table を作成します。各行が 1 人の患者に対応し、各列が診断の変数に対応します。変数 Smoker を応答変数として使用し、残りの変数を予測子として使用します。
load patients
tbl = table(Diastolic,Systolic,Gender,Height,Weight,Age,Smoker);データを使用してニューラル ネットワーク分類器に学習させます。tbl の列 Smoker を応答変数として指定します。数値予測子を標準化するための指定を行います。
Mdl = fitcnet(tbl,"Smoker","Standardize",true)
Mdl =
ClassificationNeuralNetwork
PredictorNames: {'Diastolic' 'Systolic' 'Gender' 'Height' 'Weight' 'Age'}
ResponseName: 'Smoker'
CategoricalPredictors: 3
ClassNames: [0 1]
ScoreTransform: 'none'
NumObservations: 100
LayerSizes: 10
Activations: 'relu'
OutputLayerActivation: 'softmax'
Solver: 'LBFGS'
ConvergenceInfo: [1×1 struct]
TrainingHistory: [36×7 table]
Properties, Methods
Mdl は完全な ClassificationNeuralNetwork モデル オブジェクトです。
compact を使用してモデルのサイズを縮小します。
compactMdl = compact(Mdl)
compactMdl =
CompactClassificationNeuralNetwork
LayerSizes: 10
Activations: 'relu'
OutputLayerActivation: 'softmax'
Properties, Methods
compactMdl は CompactClassificationNeuralNetwork モデル オブジェクトです。compactMdl では、格納されるプロパティが完全なモデル Mdl よりも少なくなっています。
各ニューラル ネットワーク モデルで使用されるメモリの量を表示します。
whos("Mdl","compactMdl")
Name Size Bytes Class Attributes Mdl 1x1 18777 ClassificationNeuralNetwork compactMdl 1x1 6528 classreg.learning.classif.CompactClassificationNeuralNetwork
完全なモデルの方がコンパクトなモデルよりも大きくなっています。
拡張機能
使用上の注意および制限:
次のオブジェクト関数は GPU 配列を完全にサポートしています。
次の少なくとも 1 つに該当する場合、オブジェクト関数は GPU で実行されます。
モデルが GPU 配列を使用して当てはめられている。
オブジェクト関数に渡す予測子データが GPU 配列である。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2021a で導入fitcnet を使用して ClassificationNeuralNetwork オブジェクトを gpuArray データに当てはめて、そのオブジェクトを compact に渡すことで、GPU 配列で CompactClassificationNeuralNetwork オブジェクトを当てはめることができます。GPU で関数を実行できるように、CompactClassificationNeuralNetwork のほとんどのオブジェクト関数で GPU 配列の入力引数がサポートされるようになりました。GPU 配列の入力をサポートしていないオブジェクト関数は、lime および shapley です。
ニューラル ネットワーク モデルに含まれる Mu プロパティと Sigma プロパティに、学習前の予測子の標準化に使用される平均と標準偏差がそれぞれ格納されます。これらのプロパティは、近似関数で標準化が一切実行されない場合は空になります。
fitcnet でニューラル ネットワーク分類器の誤分類コストと事前確率がサポートされます。モデルを作成するときに、名前と値の引数 Cost および Prior を指定します。あるいは、モデルに学習させた後に誤分類コストを指定するには、ドット表記を使用して Cost プロパティの値を変更できます。
Mdl.Cost = [0 2; 1 0];
参考
fitcnet | predict | loss | margin | edge | ClassificationPartitionedModel | ClassificationNeuralNetwork | compact | dlnetwork (Deep Learning Toolbox)
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)