bilstmLayer
再帰型ニューラル ネットワーク (RNN) 用の双方向長短期記憶 (BiLSTM) 層
説明
双方向 LSTM (BiLSTM) 層は、時系列データまたはシーケンス データのタイム ステップ間の双方向の長期的な依存関係を学習する RNN 層です。これらの依存関係は、各タイム ステップで時系列全体から RNN に学習させる場合に役立ちます。
作成
説明
は、双方向 LSTM 層を作成し、layer = bilstmLayer(numHiddenUnits)NumHiddenUnits プロパティを設定します。
は、1 つ以上の名前と値のペアの引数を使用して、追加の layer = bilstmLayer(numHiddenUnits,Name,Value)OutputMode、活性化、状態、パラメーターと初期化、学習率および正則化、および Name の各プロパティを設定します。複数の名前と値のペアの引数を指定できます。各プロパティ名を引用符で囲みます。
プロパティ
BiLSTM
隠れユニットの数 (隠れサイズとも呼ばれる)。正の整数として指定します。
隠れユニットの数は、タイム ステップ間に層によって記憶された情報 (隠れ状態) の量に相当します。隠れ状態には、シーケンス長に関係なく、以前のすべてのタイム ステップからの情報を含めることができます。隠れユニットの数が大きすぎる場合、層が学習データに対して過適合する可能性があります。隠れ状態によって、1 回の反復の間に層で処理されるタイム ステップ数が制限されることはありません。
この層は、2*NumHiddenUnits 個のチャネルをもつデータを出力します。
BiLSTMLayer オブジェクトを作成する場合、このプロパティを設定するには、引数 numHiddenUnits を使用します。BiLSTMLayer オブジェクトの作成後、このプロパティは読み取り専用になります。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
出力モード。次のいずれかの値として指定します。
"sequence"— シーケンス全体を出力します。"last"— シーケンスの最後のタイム ステップを出力します。
BiLSTMLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。
BiLSTMLayer オブジェクトを作成する場合、このプロパティを設定するには、対応する名前と値の引数を使用します。BiLSTMLayer オブジェクトの作成後、このプロパティは読み取り専用になります。
この プロパティ は読み取り専用です。
層への状態入力のフラグ。0 (false) または 1 (true) として指定します。
HasStateInputs プロパティが 0 (false) の場合、層は、入力データに対応する "in" という名前の 1 つの入力をもちます。この場合、層は HiddenState プロパティと CellState プロパティを使用して層処理を行います。
HasStateInputs プロパティが 1 (true) の場合、層は、それぞれ入力データ、隠れ状態、およびセル状態に対応する "in"、"hidden"、および "cell" という名前の 3 つの入力をもちます。この場合、層はこれらの入力に渡された値を使用して層処理を行います。HasStateInputs が 1 (true) の場合、HiddenState プロパティと CellState プロパティは空でなければなりません。
この プロパティ は読み取り専用です。
層からの状態出力のフラグ。0 (false) または 1 (true) として指定します。
HasStateOutputs プロパティが 0 (false) の場合、層は、出力データに対応する "out" という名前の 1 つの出力をもちます。
HasStateOutputs プロパティが 1 (true) の場合、層は、それぞれ出力データ、隠れ状態、およびセル状態に対応する "out"、"hidden"、および "cell" という名前の 3 つの出力をもちます。この場合、層は、計算した状態値も出力します。
この プロパティ は読み取り専用です。
入力サイズ。正の整数または "auto" として指定します。InputSize が "auto" の場合、学習時に入力サイズが自動的に割り当てられます。
InputSize が "auto" の場合、BiLSTMLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。
データ型: double | char | string
活性化
セル状態と隠れ状態を更新する活性化関数。次のいずれかの値として指定します。
"tanh"— 双曲線正接関数 (tanh) を使用します。"softsign"— ソフトサイン関数 を使用します。"relu"(R2024b 以降) — 正規化線形ユニット (ReLU) 関数 を使用します。
ソフトウェアは、セル状態と隠れ状態を更新する計算における関数 としてこのオプションを使用します。
BiLSTMLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。
ゲートに適用する活性化関数。次のいずれかの値として指定します。
"sigmoid"— シグモイド関数 を使用します。"hard-sigmoid"— ハード シグモイド関数を使用します。
ソフトウェアは、層のゲートの計算における関数 としてこのオプションを使用します。
BiLSTMLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。
BiLSTMLayer オブジェクトを作成する場合、このプロパティを設定するには、対応する名前と値の引数を使用します。BiLSTMLayer オブジェクトの作成後、このプロパティは読み取り専用になります。
状態
層処理で使用されるセル状態。2*NumHiddenUnits 行 1 列の数値ベクトルとして指定します。この値は、データが層に渡されるときのセル状態の初期値に対応します。
このプロパティを手動で設定した後に関数 resetState を呼び出すと、セル状態がこの値に設定されます。
HasStateInputs が true の場合、CellState プロパティは空でなければなりません。
データ型: single | double
層処理で使用される隠れ状態。2*NumHiddenUnits 行 1 列の数値ベクトルとして指定します。この値は、データが層に渡されるときの隠れ状態の初期値に対応します。
このプロパティを手動で設定した後に関数 resetState を呼び出すと、隠れ状態がこの値に設定されます。
HasStateInputs が true の場合、HiddenState プロパティは空でなければなりません。
データ型: single | double
パラメーターと初期化
入力の重みを初期化する関数。次のいずれかに指定します。
'glorot'– Glorot 初期化子 [1] (Xavier 初期化子とも呼ばれる) を使用して入力の重みを初期化します。Glorot 初期化子は、平均 0、分散2/(InputSize + numOut)の一様分布から個別にサンプリングを行います。ここで、numOut = 8*NumHiddenUnitsです。'he'– He 初期化子 [2] を使用して入力の重みを初期化します。He 初期化子は、平均 0、分散2/InputSizeの正規分布からサンプリングを行います。'orthogonal'– 直交行列 Q を使用して入力の重みを初期化します。この直交行列は、単位正規分布に従ってサンプリングされた乱数行列 Z に対する QR 分解 Z = QR によって与えられます。[3]'narrow-normal'– 平均 0、標準偏差 0.01 の正規分布から個別にサンプリングを行って、入力の重みを初期化します。'zeros'– 0 で入力の重みを初期化します。'ones'– 1 で入力の重みを初期化します。関数ハンドル – カスタム関数で入力の重みを初期化します。関数ハンドルを指定する場合、関数は
weights = func(sz)という形式でなければなりません。ここで、szは入力の重みのサイズです。
この層では、InputWeights プロパティが空の場合にのみ入力の重みが初期化されます。
データ型: char | string | function_handle
再帰重みを初期化する関数。次のいずれかに指定します。
'orthogonal'– 直交行列 Q を使用して入力の重みを初期化します。この直交行列は、単位正規分布に従ってサンプリングされた乱数行列 Z に対する QR 分解 Z = QR によって与えられます。[3]'glorot'– Glorot 初期化子 [1] (Xavier 初期化子とも呼ばれる) を使用して再帰重みを初期化します。Glorot 初期化子は、平均 0、分散2/(numIn + numOut)の一様分布から個別にサンプリングを行います。ここで、numIn = NumHiddenUnitsおよびnumOut = 8*NumHiddenUnitsです。'he'– He 初期化子 [2] を使用して再帰重みを初期化します。He 初期化子は、平均 0、分散2/NumHiddenUnitsの正規分布からサンプリングを行います。'narrow-normal'– 平均 0、標準偏差 0.01 の正規分布から個別にサンプリングを行って、再帰重みを初期化します。'zeros'– 0 で再帰重みを初期化します。'ones'– 1 で再帰重みを初期化します。関数ハンドル – カスタム関数で再帰重みを初期化します。関数ハンドルを指定する場合、関数は
weights = func(sz)という形式でなければなりません。ここで、szは再帰重みのサイズです。
この層では、RecurrentWeights プロパティが空の場合にのみ再帰重みが初期化されます。
データ型: char | string | function_handle
バイアスを初期化する関数。次のいずれかの値として指定します。
"unit-forget-gate"— 忘却ゲート バイアスを 1 で初期化し、残りのバイアスを 0 で初期化します。"narrow-normal"— 平均 0、標準偏差 0.01 の正規分布から個別にサンプリングを行って、バイアスを初期化します。"ones"— 1 でバイアスを初期化します。関数ハンドル — カスタム関数でバイアスを初期化します。関数ハンドルを指定する場合、関数は
bias = func(sz)という形式でなければなりません。ここで、szはバイアスのサイズです。
この層では、Bias プロパティが空の場合にのみバイアスが初期化されます。
BiLSTMLayer オブジェクトは、このプロパティを文字ベクトルまたは関数ハンドルとして格納します。
データ型: char | string | function_handle
入力の重み。行列として指定します。
この入力重み行列は、双方向 LSTM 層にあるコンポーネント (ゲート) の 8 個の入力重み行列の連結です。8 個の行列は、以下の順で垂直に連結されています。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
入力の重みは学習可能なパラメーターです。関数 trainnet を使用してニューラル ネットワークに学習させるとき、InputWeights が空でない場合、ソフトウェアは InputWeights プロパティを初期値として使用します。InputWeights が空の場合、InputWeightsInitializer によって指定された初期化子が使用されます。
学習時、InputWeights は 8*NumHiddenUnits 行 InputSize 列の行列です。
データ型: single | double
再帰重み。行列として指定します。
この再帰重み行列は、双方向 LSTM 層にあるコンポーネント (ゲート) の 8 個の再帰重み行列の連結です。8 個の行列は、以下の順で垂直に連結されています。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
再帰重みは学習可能なパラメーターです。関数 trainnet を使用して RNN に学習させるとき、RecurrentWeights が空でない場合、ソフトウェアは RecurrentWeights プロパティを初期値として使用します。RecurrentWeights が空の場合、RecurrentWeightsInitializer によって指定された初期化子が使用されます。
学習時、RecurrentWeights は 8*NumHiddenUnits 行 NumHiddenUnits 列の行列です。
データ型: single | double
層のバイアス。数値ベクトルとして指定します。
このバイアス ベクトルは、双方向 LSTM 層にあるコンポーネント (ゲート) の 8 個のバイアス ベクトルの連結です。8 個のベクトルは、以下の順で垂直に連結されています。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
層のバイアスは学習可能なパラメーターです。ニューラル ネットワークに学習させるときに、Bias が空でない場合、trainnet 関数は Bias プロパティを初期値として使用します。Bias が空の場合、ソフトウェアは BiasInitializer によって指定された初期化子を使用します。
学習時、Bias は 8*NumHiddenUnits 行 1 列の数値ベクトルです。
データ型: single | double
学習率および正則化
入力の重みの学習率係数。数値スカラーまたは 1 行 8 列の数値ベクトルとして指定します。
この係数にグローバル学習率が乗算されて、層の入力の重みの学習率係数が決定されます。たとえば、InputWeightsLearnRateFactor が 2 の場合、層の入力の重みの学習率係数は現在のグローバル学習率の 2 倍になります。関数 trainingOptions で指定した設定に基づいて、グローバル学習率が決定されます。
InputWeights に含まれる 4 つの個々の行列について学習率係数の値を制御するには、1 行 8 列のベクトルを割り当てます。ここで、エントリは以下の学習率係数に対応します。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
すべての行列に同じ値を指定するには、非負のスカラーを指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
再帰重みの学習率係数。数値スカラーまたは 1 行 8 列の数値ベクトルとして指定します。
この係数にグローバル学習率が乗算されて、層の再帰重みの学習率が決定されます。たとえば、RecurrentWeightsLearnRateFactor が 2 の場合、層の再帰重みの学習率は現在のグローバル学習率の 2 倍になります。関数 trainingOptions で指定した設定に基づいて、グローバル学習率が決定されます。
RecurrentWeights に含まれる 4 つの個々の行列について学習率の値を制御するには、1 行 8 列のベクトルを割り当てます。ここで、エントリは以下の学習率係数に対応します。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
すべての行列に同じ値を指定するには、非負のスカラーを指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
バイアスの学習率係数。非負のスカラーまたは 1 行 8 列の数値ベクトルとして指定します。
この係数にグローバル学習率が乗算されて、この層のバイアスの学習率が決定されます。たとえば、BiasLearnRateFactor が 2 の場合、層のバイアスの学習率は現在のグローバル学習率の 2 倍になります。関数 trainingOptions で指定した設定に基づいて、グローバル学習率が決定されます。
Bias に含まれる 4 つの個々の行列について学習率係数の値を制御するには、1 行 8 列のベクトルを割り当てます。ここで、エントリは以下の学習率係数に対応します。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
すべての行列に同じ値を指定するには、非負のスカラーを指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
入力の重みの L2 正則化係数。数値スカラーまたは 1 行 8 列の数値ベクトルとして指定します。
この係数にグローバル L2 正則化係数が乗算されて、層の入力の重みの L2 正則化係数が決定されます。たとえば、InputWeightsL2Factor が 2 の場合、層の入力の重みの L2 正則化係数は現在のグローバル L2 正則化係数の 2 倍になります。関数 trainingOptions で指定した設定に基づいて、L2 正則化係数が決定されます。
InputWeights に含まれる 4 つの個々の行列について L2 正則化係数の値を制御するには、1 行 8 列のベクトルを割り当てます。ここで、エントリは以下の L2 正則化係数に対応します。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
すべての行列に同じ値を指定するには、非負のスカラーを指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
再帰重みの L2 正則化係数。数値スカラーまたは 1 行 8 列の数値ベクトルとして指定します。
この係数にグローバル L2 正則化係数が乗算されて、層の再帰重みの L2 正則化係数が決定されます。たとえば、RecurrentWeightsL2Factor が 2 の場合、層の再帰重みの L2 正則化係数は現在のグローバル L2 正則化係数の 2 倍になります。関数 trainingOptions で指定した設定に基づいて、L2 正則化係数が決定されます。
RecurrentWeights に含まれる 4 つの個々の行列について L2 正則化係数の値を制御するには、1 行 8 列のベクトルを割り当てます。ここで、エントリは以下の L2 正則化係数に対応します。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
すべての行列に同じ値を指定するには、非負のスカラーを指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
バイアスの L2 正則化係数。非負のスカラーとして指定します。
この係数にグローバル L2 正則化係数が乗算されて、この層のバイアスの L2 正則化が決定されます。たとえば、BiasL2Factor が 2 の場合、この層のバイアスの L2 正則化はグローバル L2 正則化係数の 2 倍になります。関数 trainingOptions で指定した設定に基づいて、グローバル L2 正則化係数が決定されます。
Bias に含まれる 4 つの個々の行列について L2 正則化係数の値を制御するには、1 行 8 列のベクトルを割り当てます。ここで、エントリは以下の L2 正則化係数に対応します。
入力ゲート (順方向)
忘却ゲート (順方向)
セル候補 (順方向)
出力ゲート (順方向)
入力ゲート (逆方向)
忘却ゲート (逆方向)
セル候補 (逆方向)
出力ゲート (逆方向)
すべての行列に同じ値を指定するには、非負のスカラーを指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
層
この プロパティ は読み取り専用です。
層への入力の数。
HasStateInputs プロパティが 0 (false) の場合、層は、入力データに対応する "in" という名前の 1 つの入力をもちます。この場合、層は HiddenState プロパティと CellState プロパティを使用して層処理を行います。
HasStateInputs プロパティが 1 (true) の場合、層は、それぞれ入力データ、隠れ状態、およびセル状態に対応する "in"、"hidden"、および "cell" という名前の 3 つの入力をもちます。この場合、層はこれらの入力に渡された値を使用して層処理を行います。HasStateInputs が 1 (true) の場合、HiddenState プロパティと CellState プロパティは空でなければなりません。
データ型: double
この プロパティ は読み取り専用です。
層の入力名。
HasStateInputs プロパティが 0 (false) の場合、層は、入力データに対応する "in" という名前の 1 つの入力をもちます。この場合、層は HiddenState プロパティと CellState プロパティを使用して層処理を行います。
HasStateInputs プロパティが 1 (true) の場合、層は、それぞれ入力データ、隠れ状態、およびセル状態に対応する "in"、"hidden"、および "cell" という名前の 3 つの入力をもちます。この場合、層はこれらの入力に渡された値を使用して層処理を行います。HasStateInputs が 1 (true) の場合、HiddenState プロパティと CellState プロパティは空でなければなりません。
BiLSTMLayer オブジェクトは、このプロパティを文字ベクトルの cell 配列として格納します。
この プロパティ は読み取り専用です。
層への出力の数。
HasStateOutputs プロパティが 0 (false) の場合、層は、出力データに対応する "out" という名前の 1 つの出力をもちます。
HasStateOutputs プロパティが 1 (true) の場合、層は、それぞれ出力データ、隠れ状態、およびセル状態に対応する "out"、"hidden"、および "cell" という名前の 3 つの出力をもちます。この場合、層は、計算した状態値も出力します。
データ型: double
この プロパティ は読み取り専用です。
層の出力名。
HasStateOutputs プロパティが 0 (false) の場合、層は、出力データに対応する "out" という名前の 1 つの出力をもちます。
HasStateOutputs プロパティが 1 (true) の場合、層は、それぞれ出力データ、隠れ状態、およびセル状態に対応する "out"、"hidden"、および "cell" という名前の 3 つの出力をもちます。この場合、層は、計算した状態値も出力します。
BiLSTMLayer オブジェクトは、このプロパティを文字ベクトルの cell 配列として格納します。
例
名前が bilstm1 で、隠れユニットが 100 個の双方向 LSTM 層を作成します。
layer = bilstmLayer(100,Name="bilstm1")layer =
BiLSTMLayer with properties:
Name: 'bilstm1'
InputNames: {'in'}
OutputNames: {'out'}
NumInputs: 1
NumOutputs: 1
HasStateInputs: 0
HasStateOutputs: 0
Hyperparameters
InputSize: 'auto'
NumHiddenUnits: 100
OutputMode: 'sequence'
StateActivationFunction: 'tanh'
GateActivationFunction: 'sigmoid'
Learnable Parameters
InputWeights: []
RecurrentWeights: []
Bias: []
State Parameters
HiddenState: []
CellState: []
Show all properties
配列 Layer に双方向 LSTM 層を含めます。
inputSize = 12;
numHiddenUnits = 100;
numClasses = 9;
layers = [ ...
sequenceInputLayer(inputSize)
bilstmLayer(numHiddenUnits)
fullyConnectedLayer(numClasses)
softmaxLayer]layers =
4×1 Layer array with layers:
1 '' Sequence Input Sequence input with 12 dimensions
2 '' BiLSTM BiLSTM with 100 hidden units
3 '' Fully Connected 9 fully connected layer
4 '' Softmax softmax
アルゴリズム
層配列内または層グラフ内の層は、形式を整えた dlarray オブジェクトとして後続の層にデータを渡します。dlarray オブジェクトの形式は文字列で、各文字はデータ内の対応する次元を表します。この形式には次の文字が 1 つ以上含まれています。
"S"— 空間"C"— チャネル"B"— バッチ"T"— 時間"U"— 指定なし
たとえば、4 次元配列として表された 2 次元イメージ データがあり、最初の 2 つの次元がイメージの空間次元に対応し、3 番目の次元がイメージのチャネルに対応し、4 番目の次元がバッチ次元に対応している場合、このイメージ データは "SSCB" (空間、空間、チャネル、バッチ) という形式で記述できます。
functionLayer オブジェクトを使用するか、関数 forward と関数 predict を dlnetwork オブジェクトと共に使用して、カスタム層の開発などの自動微分ワークフローで、これらの dlarray オブジェクトを操作できます。
次の表は、BiLSTMLayer オブジェクトでサポートされている入力形式、および対応する出力形式を示しています。ソフトウェアが nnet.layer.Formattable クラスを継承していないカスタム層、または Formattable プロパティが 0 (false) に設定された FunctionLayer オブジェクトに層の出力を渡す場合、その層は形式を整えていない dlarray オブジェクトを受け取り、この表に示された形式に従って次元が並べられます。ここには一部の形式のみを示します。層では、追加の "S" (空間) 次元または "U" (未指定) 次元をもつ形式など、追加の形式がサポートされている場合があります。
| 入力形式 | OutputMode | 出力形式 |
|---|---|---|
| "sequence" |
|
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
dlnetwork オブジェクトでは、BiLSTMLayer オブジェクトもこれらの入力形式と出力形式の組み合わせをサポートします。
| 入力形式 | OutputMode | 出力形式 |
|---|---|---|
| "sequence" |
|
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" | ||
| "sequence" | |
"last" | ||
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
| |
| "sequence" |
|
"last" |
|
HasStateInputs プロパティが 1 (true) の場合、それぞれ隠れ状態とセル状態に対応する "hidden" および "cell" という名前の 2 つの入力が層に追加されます。これらの追加の入力は、"CB" (channel、batch) という入力形式を想定しています。
HasStateOutputs プロパティが 1 (true) の場合、それぞれ隠れ状態とセル状態に対応する "hidden" および "cell" という名前の 2 つの出力が層に追加されます。これらの追加の出力は、"CB" (channel、batch) という出力形式をもちます。
参照
[1] Glorot, Xavier, and Yoshua Bengio. "Understanding the Difficulty of Training Deep Feedforward Neural Networks." In Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics, 249–356. Sardinia, Italy: AISTATS, 2010. https://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf
[2] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. "Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification." In 2015 IEEE International Conference on Computer Vision (ICCV), 1026–34. Santiago, Chile: IEEE, 2015. https://doi.org/10.1109/ICCV.2015.123
[3] Saxe, Andrew M., James L. McClelland, and Surya Ganguli. "Exact Solutions to the Nonlinear Dynamics of Learning in Deep Linear Neural Networks.” Preprint, submitted February 19, 2014. https://arxiv.org/abs/1312.6120.
拡張機能
使用上の注意および制限:
一般的なコード生成では、
HasStateInputsプロパティとHasStateOutputsプロパティを0(false) に設定しなければなりません。コード生成では、指定なし (U) の次元をもつ
dlarrayオブジェクトをこの層に渡すことはサポートされていません。コード生成では、この層への入力として、チャネル (C) の次元をもつ
dlarrayオブジェクトを渡さなければなりません。たとえば、コード生成では "SSC" や "SSCBT" などのデータ形式がサポートされます。Intel® MKL-DNN または ARM® Compute Library を使用してコードを生成する場合、以下のようになります。
StateActivationFunctionプロパティを'tanh'に設定しなければなりません。GateActivationFunctionプロパティを'sigmoid'に設定しなければなりません。
使用上の注意および制限:
HasStateInputsプロパティとHasStateOutputsプロパティを0(false) に設定しなければなりません。コード生成では、指定なし (U) の次元をもつ
dlarrayオブジェクトをこの層に渡すことはサポートされていません。コード生成では、この層への入力として、チャネル (C) の次元をもつ
dlarrayオブジェクトを渡さなければなりません。たとえば、コード生成では "SSC" や "SSCBT" などのデータ形式がサポートされます。NVIDIA® TensorRT または CUDA 深層ニューラル ネットワーク (cuDNN) ライブラリを使用してコードを生成する場合:
StateActivationFunctionプロパティを"tanh"に設定しなければなりません。GateActivationFunctionプロパティを'sigmoid'に設定しなければなりません。
バージョン履歴
R2018a で導入ReLU 状態活性化関数を指定するには、StateActivationFunction プロパティを "relu" に設定します。
R2019a 以降では、既定で、Glorot 初期化子を使用してこの層の入力の重みが初期化されます。この動作は、学習を安定化させるのに役立ち、通常は深層ニューラル ネットワークの学習時間を短縮します。
以前のリリースでは、既定で、平均 0、分散 0.01 の正規分布からサンプリングを行って、層の入力の重みが初期化されます。この動作を再現するには、層の InputWeightsInitializer オプションを "narrow-normal" に設定します。
R2019a 以降では、既定で、直交行列 Q を使用してこの層の再帰重みが初期化されます。この直交行列は、単位正規分布に従ってサンプリングされた乱数行列 Z に対する QR 分解 Z = QR によって与えられます。この動作は、学習を安定化させるのに役立ち、通常は深層ニューラル ネットワークの学習時間を短縮します。
以前のリリースでは、既定で、平均 0、分散 0.01 の正規分布からサンプリングを行って、層の再帰重みが初期化されます。この動作を再現するには、層の RecurrentWeightsInitializer オプションを "narrow-normal" に設定します。
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)