メインコンテンツ

trainAutoencoder

(削除予定) 自己符号化器の学習

trainAutoencoder は将来のリリースで削除される予定です。詳細については、Transition Legacy Neural Network Code to dlnetwork Workflowsを参照してください。

コードの更新に関するアドバイスについては、バージョン履歴を参照してください。

説明

autoenc = trainAutoencoder(X) は、X の学習データを使用して学習させた自己符号化器 autoenc を返します。

autoenc = trainAutoencoder(X,hiddenSize) は、隠れ表現のサイズが hiddenSize の自己符号化器 autoenc を返します。

autoenc = trainAutoencoder(___,Name=Value) では、前の構文の入力引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、GPU で学習を行うには、UseGPU"on" に設定します。

すべて折りたたむ

サンプル データを読み込みます。

X = abalone_dataset;

X は、4177 個のアワビの貝殻について、性別 (M、F、および I (幼生))、全長、直径、高さ、全重量、むき身重量、内臓重量、貝殻重量の 8 個の属性を定義する 8 行 4177 列の行列です。このデータセットの詳細を表示するには、コマンド ラインで help abalone_dataset と入力します。

既定の設定でスパース自己符号化器に学習させます。

autoenc = trainAutoencoder(X);

Figure Neural Network Training (24-Jan-2026 18:22:43) contains an object of type uigridlayout.

学習済みの自己符号化器を使用して、アワビの貝殻の輪のデータを再構成します。

XReconstructed = predict(autoenc,X);

平均二乗再構成誤差を計算します。

mseError = mse(X-XReconstructed)
mseError = 
0.0167

入力引数

すべて折りたたむ

学習データ。学習サンプルの行列またはイメージ データの cell 配列として指定します。X が行列の場合、各列に 1 つのサンプルが含まれます。X がイメージ データの cell 配列の場合、各セルのデータの次元の数が同じでなければなりません。イメージ データは、グレー イメージのピクセル強度データにすることができます。この場合、各セルには mn 列の行列が格納されます。または、イメージ データを RGB データにすることができます。この場合、各セルには mn-3 列の行列が格納されます。

データ型: single | double | cell

自己符号化器の隠れ表現のサイズ。正の整数値として指定します。この数値は、隠れ層のニューロンの数になります。

データ型: single | double

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: EncoderTransferFunction="satlin",L2WeightRegularization=0.05 は、符号化器の伝達関数に正の飽和線形伝達関数、L2 重み正則化に 0.05 を指定します。

符号化器の伝達関数。次の表にリストされている値のいずれかとして指定します。

伝達関数オプション定義
"logsig"

ロジスティック シグモイド関数

f(z)=11+ez

"satlin"

正の飽和線形伝達関数

f(z)={0,if z0z,if 0<z<11,if z1

この引数は、出力 Autoencoder オブジェクトの EncoderTransferFunction 学習パラメーター プロパティを文字ベクトルとして設定します。

例: EncoderTransferFunction="satlin"

復号化器の伝達関数。次の表にリストされている値のいずれかとして指定します。

伝達関数オプション定義
"logsig"

ロジスティック シグモイド関数

f(z)=11+ez

"satlin"

正の飽和線形伝達関数

f(z)={0,if z0z,if 0<z<11,if z1

"purelin"

線形伝達関数

f(z)=z

この引数は、出力 Autoencoder オブジェクトの DecoderTransferFunction 学習パラメーター プロパティを文字ベクトルとして設定します。

例: DecoderTransferFunction="purelin"

学習エポックまたは反復の最大回数。正の整数値として指定します。

例: MaxEpochs=1200

コスト関数の L2 重み正則化項の係数 (LossFunction)。正のスカラー値として指定します。

例: L2WeightRegularization=0.05

学習に使用する損失関数。"msesparse" として指定します。これは、以下のようにスパース自己符号化器の学習用に調整された平均二乗誤差関数に対応しています。

E=1Nn=1Nk=1K(xknx^kn)2mean squared error+λ*ΩweightsL2regularization+β*Ωsparsitysparsityregularization,

ここで、λL2 正則化項の係数、β はスパース正則化項の係数です。自己符号化器の学習時に、名前と値の引数 L2WeightRegularization および SparsityRegularization を使用して、λ および β の値をそれぞれ指定できます。

この引数は、出力 Autoencoder オブジェクトの LossFunction 学習パラメーター プロパティを文字ベクトルとして設定します。

学習ウィンドウを表示するかどうかのインジケーター。数値または logical の 1 (true) または 0 (false) として指定します。

例: ShowProgressWindow=false

ニューロンが応答する学習例の目標比率。正のスカラー値として指定します。スパース率は、スパース正則化項のパラメーターです。これは、隠れ層からの出力のスパース性を制御します。SparsityProportion に低い値を指定すると、通常、隠れ層の各ニューロンは、少数の学習例の出力を大きくした場合に限り "特殊化" します。したがって、スパース率を低くすると、スパース度が高くなります。

例: SparsityProportion=0.01 は、隠れ層の各ニューロンの学習例に対する平均出力が 0.1 になるようにすることと等価です。

コスト関数のスパース正則化項の影響を制御する係数。正のスカラー値として指定します。

例: SparsityRegularization=1.6

自己符号化器の学習に使用するアルゴリズム。"trainscg" として指定します。これは、スケーリング共役勾配降下法 [1] を意味します。

この引数は、出力 Autoencoder オブジェクトの TrainingAlgorithm 学習パラメーター プロパティを文字ベクトルとして設定します。

入力データを再スケーリングするかどうかのインジケーター。数値または logical の 1 (true) または 0 (false) として指定します。

自己符号化器は、出力で入力を複製しようとします。これを可能にするには、入力データの範囲が復号化器の伝達関数の範囲と一致しなければなりません。trainAutoencoder は、自己符号化器の学習時に、この範囲に合わせて学習データを自動的にスケーリングします。自己符号化器の学習時にデータがスケーリングされた場合、predictencode、および decode の各メソッドでもデータのスケーリングが行われます。

例: ScaleData=false

学習に GPU を使用するオプション。次のいずれかの値として指定します。

  • "off" — ローカル CPU を使用します。

  • "on" — ローカル GPU を使用します。

  • "auto" — 利用可能な場合、ローカル GPU を使用します。そうでない場合、ローカル CPU を使用します。

GPU を使用して MATLAB® での計算を高速化するには、Parallel Computing Toolbox™ およびサポートされている GPU デバイスが必要です。サポートされているデバイスの詳細については、GPU 計算の要件 (Parallel Computing Toolbox)を参照してください。

R2026a より前: UseGPU オプションを数値または logical の 0 (false) または 1 (true) として指定します。これらはそれぞれ "off""auto" に対応します。

例: UseGPU="on"

出力引数

すべて折りたたむ

学習済みの自己符号化器。Autoencoder オブジェクトとして返されます。このオブジェクトのプロパティとメソッドについては、Autoencoder クラスのページを参照してください。

詳細

すべて折りたたむ

参照

[1] Moller, M. F. “A Scaled Conjugate Gradient Algorithm for Fast Supervised Learning”, Neural Networks, Vol. 6, 1993, pp. 525–533.

[2] Olshausen, B. A. and D. J. Field. “Sparse Coding with an Overcomplete Basis Set: A Strategy Employed by V1.” Vision Research, Vol.37, 1997, pp.3311–3325.

バージョン履歴

R2015b で導入

すべて展開する