このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
dlarray
カスタマイズ用の深層学習配列
説明
深層学習配列には、カスタム学習ループ用のデータとオプションのデータ形式ラベルが格納されます。関数は、この配列を使用し、自動微分による微分の計算を行ってその結果を利用することができます。
ヒント
ほとんどの深層学習タスクでは、事前学習済みのニューラル ネットワークを使用して独自のデータに適応させることができます。転移学習を使用して、畳み込みニューラル ネットワークの再学習を行い、新しい一連のイメージを分類する方法を示す例については、Retrain Neural Network to Classify New Imagesを参照してください。または、関数 trainnet
と関数 trainingOptions
を使用してニューラル ネットワークを作成し、これにゼロから学習させることができます。
タスクに必要な学習オプションが関数 trainingOptions
に用意されていない場合、自動微分を使用してカスタム学習ループを作成できます。詳細については、カスタム学習ループを使用したネットワークの学習を参照してください。
タスクに必要な損失関数が関数 trainnet
に用意されていない場合、カスタム損失関数を関数ハンドルとして trainnet
に指定できます。損失関数が予測とターゲットよりも多くの入力を必要とする場合 (たとえば、損失関数がニューラル ネットワークまたは追加の入力にアクセスする必要がある場合)、カスタム学習ループを使用してモデルに学習させます。詳細については、カスタム学習ループを使用したネットワークの学習を参照してください。
タスクに必要な層が Deep Learning Toolbox™ に用意されていない場合、カスタム層を作成できます。詳細については、カスタム深層学習層の定義を参照してください。層のネットワークとして指定できないモデルの場合は、モデルを関数として定義できます。詳細については、モデル関数を使用したネットワークの学習を参照してください。
どのタスクでどの学習手法を使用するかについての詳細は、MATLAB による深層学習モデルの学習を参照してください。
作成
説明
入力引数
出力引数
使用法
dlarray
のデータ形式を使用すると、データが適切な形状であることを確認した状態で、以下の表に示す関数を実行できます。
関数 | 操作 | 入力次元の検証 | 入力次元のサイズへの影響 |
---|---|---|---|
avgpool | プール サイズ パラメーターで定義された移動矩形 (または移動直方体) の空間 ('S' ) 領域における入力データの平均値を計算します。 | 'S' | 'S' |
batchnorm | 入力データの各チャネル ('C' ) に含まれる値を正規化します。 | 'C' | |
crossentropy | 推定値とターゲット値との間のクロスエントロピーを計算し、バッチ ('B' ) 次元のサイズに基づきその平均値を計算します。 | 'S' 、'C' 、'B' 、'T' 、'U' (推定値とターゲット値の配列は同じサイズでなければなりません。) | 'S' 、'C' 、'B' 、'T' 、'U' (出力は形式を整えていないスカラーです。) |
dlconv | フィルターの配列を使用して入力データの深層学習畳み込みを計算し、入力の空間 ('S' ) 次元とチャネル ('C' ) 次元 (の関数) の数を一致させ、定数バイアスを加算します。 | 'S' , 'C' | 'S' , 'C' |
dltranspconv | フィルターの配列を使用して入力データの深層学習転置畳み込みを計算し、入力の空間 ('S' ) 次元とチャネル ('C' ) 次元 (の関数) の数を一致させ、定数バイアスを加算します。 | 'S' , 'C' | 'S' , 'C' |
fullyconnect | 入力データの重み付き和を計算し、各バッチ ('B' ) 次元と時間 ('T' ) 次元にバイアスを適用します。 | 'S' , 'C' , 'U' | 'S' 、'C' 、'B' 、'T' 、'U' (出力のデータ形式は、常に、'CB' 、'CT' 、または 'CTB' となります。) |
gru | 入力データにゲート付き回帰型ユニット演算を適用します。 | 'S' , 'C' , 'T' | 'C' |
lstm | 入力データに長短期記憶演算を適用します。 | 'S' , 'C' , 'T' | 'C' |
maxpool | プール サイズ パラメーターで定義された移動矩形の空間 ('S' ) 領域における入力データの最大値を計算します。 | 'S' | 'S' |
maxunpool | 空間 ('S' ) 次元に沿って逆プーリング演算を実行します。 | 'S' | 'S' |
mse | 推定値とターゲット値との間の半平均二乗誤差を計算し、バッチ ('B' ) 次元のサイズに基づいてその平均値を計算します。 | 'S' 、'C' 、'B' 、'T' 、'U' (推定値とターゲット値の配列は同じサイズでなければなりません。) | 'S' 、'C' 、'B' 、'T' 、'U' (出力は形式を整えていないスカラーです。) |
softmax | 入力データの各チャネル ('C' ) にソフトマックス活性化を適用します。 | 'C' |
これらの関数を使用するには、各次元にラベルを付ける必要があります。次元ラベルの形式を指定するには、最初の入力を形式を整えた dlarray
として与えるか、関数の名前と値の引数 'DataFormat'
を使用します。
dlarray
は、'SCBTU'
の順序で次元ラベルを並べ替えます。これにより、入力間のラベルを暗黙的に一致させる演算において不明瞭な動作が排除されます。また、dlarray
は、次元ラベル 'C'
、'B'
、および 'T'
の出現回数がそれぞれ最大 1 回となるように処理します。これらの次元ラベルを使用する関数は、各ラベルの次元を最大 1 つまで受け入れます。
dlarray
には、dlarray
に関連付けられたデータ形式を取得する関数 (dims
)、データ形式を削除する関数 (stripdims
)、および特定の次元ラベルに関連付けられた次元を取得する関数 (finddim
) が用意されています。
dlarray
が形式を処理する方法の詳細については、dlarray の主な動作を参照してください。
オブジェクト関数
avgpool | Pool data to average values over spatial dimensions |
batchnorm | Normalize data across all observations for each channel independently |
crossentropy | 分類タスク用のクロスエントロピー損失 |
dims | dlarray の次元ラベル |
dlconv | Deep learning convolution |
dlgradient | 自動微分を使用したカスタム学習ループの勾配の計算 |
dltranspconv | Deep learning transposed convolution |
extractdata | dlarray からのデータの抽出 |
finddim | 指定されたラベルをもつ次元の検索 |
fullyconnect | すべての重み付き入力データの加算とバイアスの適用 |
gru | ゲート付き回帰型ユニット |
leakyrelu | 漏洩 (leaky) 正規化線形ユニット活性化の適用 |
lstm | 長短期記憶 |
maxpool | Pool data to maximum value |
maxunpool | 最大プーリング演算の出力の逆プーリング |
mse | 半平均二乗誤差 |
relu | 正規化線形ユニット活性化の適用 |
sigmoid | シグモイド活性化の適用 |
softmax | チャネル次元へのソフトマックス活性化の適用 |
stripdims | dlarray データ形式の削除 |
dlarray
には、数値の関数、行列、およびその他の演算を指定することもできます。一覧については、dlarray をサポートする関数の一覧を参照してください。
例
ヒント
dlgradient
は関数の内部で呼び出さなければなりません。勾配の数値を取得するには、dlfeval
を使用して関数を評価しなければなりません。また、関数の引数はdlarray
でなければなりません。Deep Learning Toolbox での自動微分の使用を参照してください。勾配を正しく評価するため、
dlfeval
はdlarray
をサポートしている関数のみを使用する関数を呼び出さなければなりません。dlarray をサポートする関数の一覧を参照してください。