Main Content

CompactRegressionNeuralNetwork

回帰用のコンパクトなニューラル ネットワーク モデル

R2021a 以降

    説明

    CompactRegressionNeuralNetwork は、RegressionNeuralNetwork モデル オブジェクトのコンパクトなバージョンです。コンパクトなモデルには、回帰モデルの学習に使用されたデータが含まれません。このため、コンパクトなモデルを使用しても、交差検証など一部のタスクは実行できません。コンパクトなモデルは、新しいデータに対する応答値の予測などのタスクに使用します。

    作成

    CompactRegressionNeuralNetwork オブジェクトは、compact を使用して完全な RegressionNeuralNetwork モデル オブジェクトから作成します。

    プロパティ

    すべて展開する

    ニューラル ネットワークのプロパティ

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

    ニューラル ネットワーク モデル内の全結合層のサイズ。正の整数ベクトルとして返されます。LayerSizes の i 番目の要素は、ニューラル ネットワーク モデルの i 番目の全結合層の出力数です。

    LayerSizes には最終全結合層のサイズは含まれません。この層の出力は常に 1 つです。

    データ型: single | double

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

    全結合層の学習済みの層の重み。cell 配列として返されます。cell 配列内の i 番目のエントリは、i 番目の全結合層の層の重みに対応します。たとえば、Mdl.LayerWeights{1} は、モデル Mdl の最初の全結合層についての重みを返します。

    LayerWeights には最終全結合層の重みが含まれます。

    データ型: cell

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

    全結合層の学習済みの層のバイアス。cell 配列として返されます。cell 配列内の i 番目のエントリは、i 番目の全結合層の層のバイアスに対応します。たとえば、Mdl.LayerBiases{1} は、モデル Mdl の最初の全結合層についてのバイアスを返します。

    LayerBiases には最終全結合層のバイアスが含まれます。

    データ型: cell

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

    ニューラル ネットワーク モデルの全結合層の活性化関数。次の表の値をもつ文字ベクトルまたは文字ベクトルの cell 配列として返されます。

    説明
    'relu'

    正規化線形ユニット (ReLU) 関数 — 各入力要素に対して、0 より小さい値については 0 に設定するという次のしきい値演算を実行します。

    f(x)={x,x00,x<0

    'tanh'

    双曲線正接 (tanh) 関数 — 各入力要素に関数 tanh を適用します。

    'sigmoid'

    シグモイド関数 — 各入力要素に対して次の演算を実行します。

    f(x)=11+ex

    'none'

    恒等関数 — 変換を実行せずに、各入力要素を次のようにそのまま返します。f(x) = x

    • Activations に活性化関数が 1 つだけ含まれている場合は、ニューラル ネットワーク モデルの最終全結合層を除くすべての全結合層の活性化関数になります。最終全結合層には活性化関数はありません (OutputLayerActivation)。

    • Activations が活性化関数の配列の場合は、i 番目の要素がニューラル ネットワーク モデルの i 番目の層の活性化関数になります。

    データ型: char | cell

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

    最終全結合層の活性化関数。'none' として返されます。

    データ プロパティ

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

    予測子変数名。文字ベクトルの cell 配列として返されます。PredictorNames の要素の順序は、予測子名が学習データに現れる順序に対応します。

    データ型: cell

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

    カテゴリカル予測子のインデックス。正の整数のベクトルとして返されます。予測子データの行に観測値が含まれていると仮定すると、CategoricalPredictors には、カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値が格納されます。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

    データ型: double

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

    展開された予測子名。文字ベクトルの cell 配列として返されます。モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNamesPredictorNames と同じです。

    データ型: cell

    R2023b 以降

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

    予測子の平均。数値ベクトルとして返されます。ニューラル ネットワーク モデルに学習させるときに Standardize1 または true に設定した場合、ベクトル Mu の長さは展開された予測子の数と等しくなります (ExpandedPredictorNames を参照)。展開されたカテゴリカル予測子に対応するダミー変数については、ベクトルに値 0 が格納されます。

    ニューラル ネットワーク モデルに学習させるときに Standardize0 または false に設定した場合、Mu の値は空ベクトル ([]) になります。

    データ型: double

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

    応答変数名。文字ベクトルとして返されます。

    データ型: char

    応答変換関数。'none' または関数ハンドルを指定します。ResponseTransform は、生の応答値を変換する方法を表します。

    MATLAB® 関数やユーザー定義関数の場合は、関数ハンドルを入力します。たとえば、Mdl.ResponseTransform = @function を入力できます。ここで function は、元の応答の数値ベクトルを受け入れ、変換した応答が格納されている同じサイズの数値ベクトルを返します。

    データ型: char | function_handle

    R2023b 以降

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

    予測子の標準偏差。数値ベクトルとして返されます。ニューラル ネットワーク モデルに学習させるときに Standardize1 または true に設定した場合、ベクトル Sigma の長さは展開された予測子の数と等しくなります (ExpandedPredictorNames を参照)。展開されたカテゴリカル予測子に対応するダミー変数については、ベクトルに値 1 が格納されます。

    ニューラル ネットワーク モデルに学習させるときに Standardize0 または false に設定した場合、Sigma の値は空ベクトル ([]) になります。

    データ型: double

    オブジェクト関数

    すべて展開する

    limeLocal Interpretable Model-agnostic Explanations (LIME)
    partialDependence部分依存の計算
    plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
    shapleyシャープレイ値
    loss回帰ニューラル ネットワークの損失
    predict回帰ニューラル ネットワークの使用による応答の予測

    すべて折りたたむ

    モデルから学習データを削除することにより、完全な回帰ニューラル ネットワーク モデルのサイズを縮小します。コンパクトなモデルを使用すると、メモリ効率を向上させることができます。

    patients データ セットを読み込みます。データ セットから table を作成します。各行が 1 人の患者に対応し、各列が診断の変数に対応します。変数 Systolic を応答変数として使用し、残りの変数を予測子として使用します。

    load patients
    tbl = table(Age,Diastolic,Gender,Height,Smoker,Weight,Systolic);

    データを使用して回帰ニューラル ネットワーク モデルに学習させます。tblTrain の列 Systolic を応答変数として指定します。数値予測子を標準化するための指定を行います。

    Mdl = fitrnet(tbl,"Systolic","Standardize",true)
    Mdl = 
      RegressionNeuralNetwork
               PredictorNames: {'Age'  'Diastolic'  'Gender'  'Height'  'Smoker'  'Weight'}
                 ResponseName: 'Systolic'
        CategoricalPredictors: [3 5]
            ResponseTransform: 'none'
              NumObservations: 100
                   LayerSizes: 10
                  Activations: 'relu'
        OutputLayerActivation: 'none'
                       Solver: 'LBFGS'
              ConvergenceInfo: [1x1 struct]
              TrainingHistory: [1000x7 table]
    
    
    

    Mdl は完全な RegressionNeuralNetwork モデル オブジェクトです。

    compact を使用してモデルのサイズを縮小します。

    compactMdl = compact(Mdl)
    compactMdl = 
      CompactRegressionNeuralNetwork
                   LayerSizes: 10
                  Activations: 'relu'
        OutputLayerActivation: 'none'
    
    
    

    compactMdlCompactRegressionNeuralNetwork モデル オブジェクトです。compactMdl では、格納されるプロパティが完全なモデル Mdl よりも少なくなっています。

    各ニューラル ネットワーク モデルで使用されるメモリの量を表示します。

    whos("Mdl","compactMdl")
      Name            Size            Bytes  Class                                                    Attributes
    
      Mdl             1x1             73733  RegressionNeuralNetwork                                            
      compactMdl      1x1              6910  classreg.learning.regr.CompactRegressionNeuralNetwork              
    

    完全なモデルの方がコンパクトなモデルよりも大きくなっています。

    拡張機能

    バージョン履歴

    R2021a で導入

    すべて展開する