Adadelta アルゴリズムを実装するオプティマイザー。
Adadelta 最適化は、次元ごとの適応学習率に基づく確率的勾配降下法であり、次の 2 つの欠点に対処します。
- トレーニングを通じて学習率が継続的に低下する
- 手動で選択されたグローバル学習率の必要性
Adadelta は、過去のすべての勾配を蓄積するのではなく、勾配更新の移動ウィンドウに基づいて学習率を適応させる、Adagrad のより堅牢な拡張機能です。このようにして、Adadelta は、多くの更新が行われた場合でも学習を続けます。 Adagrad と比較すると、Adadelta のオリジナル バージョンでは、初期学習率を設定する必要はありません。このバージョンでは、他のほとんどのオプティマイザーと同様に、初期学習率を設定できます。
セクション 4.3 (「有効な学習率」) によると、トレーニングの終了近くでステップ サイズは 1 に収束します。これは事実上、発散を引き起こす高い学習率です。これは、勾配とステップ サイズが小さく、学習率を 1 に収束させる過去の勾配とパラメータの更新よりも分子と分母のイプシロン定数が支配的であるため、トレーニングの終わり近くでのみ発生します。
セクション 4.4 (「音声データ」) によると、4 つの隠れ層を持つ大規模なニューラル ネットワークが米国英語データのコーパスでトレーニングされ、ADADELTA が 100 のネットワーク レプリカで使用されました。使用されたイプシロンは 1e-6、rho=0.95 です。次の構造により、ADAGRAD よりも高速に収束します。 new AdaDelta(graph, 1.0f, 0.95f, 1e-6f);
定数
弦 | アキュムレータ | |
弦 | アキュムレータ_アップデート | |
浮く | EPSILON_DEFAULT | |
浮く | 学習_レート_デフォルト | |
浮く | RHO_DEFAULT |
継承された定数
パブリックコンストラクター
パブリックメソッド
弦 | getOptimizerName () オプティマイザーの名前を取得します。 |
弦 | toString () |
継承されたメソッド
定数
public static Final String ACCUMULATOR
パブリック静的最終文字列ACCUMULATOR_UPDATE
パブリック静的最終フロートEPSILON_DEFAULT
パブリック静的最終フロートLEARNING_RATE_DEFAULT
パブリック静的最終フロートRHO_DEFAULT
パブリックコンストラクター
public AdaDelta ( Graphグラフ、float learningRate、float rho、float epsilon)
AdaDelta オプティマイザーを作成します
パラメーター
グラフ | TensorFlow グラフ |
---|---|
学習率 | 学習率 |
ロー | 減衰係数 |
イプシロン | grad アップデートをより適切に調整するために使用される定数イプシロン |
public AdaDelta ( Graphグラフ、文字列名、float learningRate)
AdaDelta オプティマイザーを作成します
パラメーター
グラフ | TensorFlow グラフ |
---|---|
名前 | このオプティマイザーの名前 (デフォルトは「Adadelta」) |
学習率 | 学習率 |
public AdaDelta ( Graphグラフ、文字列名、float learningRate、float rho、float epsilon)
AdaDelta オプティマイザーを作成します
パラメーター
グラフ | TensorFlow グラフ |
---|---|
名前 | このオプティマイザーの名前 (デフォルトは「Adadelta」) |
学習率 | 学習率 |
ロー | 減衰係数 |
イプシロン | grad アップデートをより適切に調整するために使用される定数イプシロン |
パブリックメソッド
public String getOptimizerName ()
オプティマイザーの名前を取得します。
戻り値
- オプティマイザーの名前。