ARCS6 AR6-REV.24062600
読み取り中…
検索中…
一致する文字列を見つけられません
ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD > クラステンプレート

再帰ニューラルレイヤクラス [詳解]

#include <ARCS6/lib/RecurrentNeuralLayer.hh>

ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD > 連携図

公開メンバ関数

 RecurrentNeuralLayer ()
 コンストラクタ
 
 RecurrentNeuralLayer (RecurrentNeuralLayer &&r)
 ムーブコンストラクタ
 
 ~RecurrentNeuralLayer ()
 デストラクタ
 
void PropagateForward (const std::array< Matrix< 1, N >, W+2 > &zprev, const size_t t)
 順伝播計算(ベクトル入出力版)
 
void PropagateBackward (const std::array< Matrix< 1, P >, W+2 > &dLdznext, const size_t t)
 逆伝播計算(入力層と内部層用,ベクトル入出力版)
 
void PropagateBackward (const Matrix< 1, P > &dLdenext, const size_t t)
 逆伝播計算(-)
 
void PropagateForwardForOutput (const std::array< Matrix< 1, N >, W+2 > &zprev)
 順伝播計算(出力層用,ベクトル入出力版)
 
void PropagateBackwardForOutput (const Matrix< 1, P > &r)
 出力の重み誤差ベクトル計算(出力層用,ベクトル入出力訓練版)
 
void UpdateWeightAndBias (const std::array< Matrix< 1, N >, W+2 > &zprev)
 重み行列とバイアスベクトルの更新
 
void UpdateWeightAndBiasForOutput (const std::array< Matrix< 1, N >, W+2 > &zprev)
 重み行列とバイアスベクトルの更新(出力層用)
 
void ClearStateVars (void)
 
void InitWeight (const size_t Nprev)
 重み行列の初期化
 
void DispWeightAndBias (void)
 重み行列とバイアスベクトルの表示
 
void DispError (void)
 
void GenerateDropMask (void)
 ドロップアウトマスクの生成
 

公開変数類

std::array< Matrix< 1, P >, W+2 > z
 活性化関数通過後の状態ベクトルの時系列配列(範囲 t = 1 … T, t = 0 と T + 1 の分も確保)
 
std::array< Matrix< 1, N >, W+2 > dLdz
 勾配ベクトルの時系列配列(範囲 t = 1 … T, t = 0 と T + 1 の分も確保)
 
Matrix< 1, N > dLde
 勾配ベクトルの時系列配列(出力層用)
 

詳解

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
class ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >

再帰ニューラルレイヤクラス

テンプレート引数
N入力チャネル数
Pパーセプトロン数
T時系列方向のデータ数
W入力ウィンドウ幅
Mミニバッチ数
AF活性化関数の種類
IT初期化のタイプ
GD勾配降下法のタイプ
DDドロップアウト動作フラグ

構築子と解体子

◆ RecurrentNeuralLayer()

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::RecurrentNeuralLayer ( RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD > && r)
inline

ムーブコンストラクタ

引数
[in]r右辺値

関数詳解

◆ InitWeight()

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
void ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::InitWeight ( const size_t Nprev)
inline

重み行列の初期化

引数
[in]Nprev前層のユニット数

◆ PropagateBackward() [1/2]

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
void ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::PropagateBackward ( const Matrix< 1, P > & dLdenext,
const size_t t )
inline

逆伝播計算(-)

引数
[in]dLdznext後ろの層からの勾配ベクトル
[in]t時刻インデックス

◆ PropagateBackward() [2/2]

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
void ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::PropagateBackward ( const std::array< Matrix< 1, P >, W+2 > & dLdznext,
const size_t t )
inline

逆伝播計算(入力層と内部層用,ベクトル入出力版)

引数
[in]dLdznext後ろの層からの勾配ベクトル
[in]t時刻インデックス

◆ PropagateBackwardForOutput()

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
void ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::PropagateBackwardForOutput ( const Matrix< 1, P > & r)
inline

出力の重み誤差ベクトル計算(出力層用,ベクトル入出力訓練版)

引数
[in]r目標値ベクトル
[in]t時刻インデックス

◆ PropagateForward()

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
void ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::PropagateForward ( const std::array< Matrix< 1, N >, W+2 > & zprev,
const size_t t )
inline

順伝播計算(ベクトル入出力版)

引数
[in]zprev前の層からの入力ベクトル
[in]t時刻インデックス

◆ UpdateWeightAndBias()

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
void ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::UpdateWeightAndBias ( const std::array< Matrix< 1, N >, W+2 > & zprev)
inline

重み行列とバイアスベクトルの更新

引数
[in]zprev前の層からの入力ベクトル

◆ UpdateWeightAndBiasForOutput()

template<size_t N, size_t P, size_t T, size_t W, size_t M, ActvFunc AF, NnInitTypes IT = NnInitTypes::XAVIER, NnDescentTypes GD = NnDescentTypes::MOMENTUM, NnDropout DD = NnDropout::DISABLE>
void ARCS::RecurrentNeuralLayer< N, P, T, W, M, AF, IT, GD, DD >::UpdateWeightAndBiasForOutput ( const std::array< Matrix< 1, N >, W+2 > & zprev)
inline

重み行列とバイアスベクトルの更新(出力層用)

引数
[in]zprev前の層からの入力ベクトル

このクラス詳解は次のファイルから抽出されました: