回帰問題のためにTensorflowとAdamOptimizerを使った非常に簡単なANNがあります。今はすべてのハイパーパラメータをチューニングする時点です。ニューラルネットワークのハイパーパラメータをどのように調整する必要がありますか?
- 学習率:
は今のところ、私は私が調整する必要があり、多くの異なるハイパー見た初期学習率、レート崩壊学習をAdamOptimizerは4つの引数が必要
- (学習レート、ベータ1、ベータ2 、イプシロン)ので、我々は調子にそれらを必要とする - の反復
- ラムダL2-正則化パラメータ の少なくともイプシロン
- バッチサイズ
- NBニューロンの
- 数、層数 出力層のための隠れ層のための活性化関数の種類、
- ドロップアウトパラメータ
私は2つの質問があります。
1)あなたがいます私が忘れてしまったかもしれない他のハイパーパラメータを見ますか?
2)今のところ、私のチューニングはかなり「マニュアル」であり、私はすべてを適切な方法でやっていないとは確信していません。 パラメータを調整する特別な命令はありますか?たとえば、学習率を最初に、次にバッチサイズを、次に... これらのパラメータがすべて独立しているかどうかは確かではありません。実際には、一部のパラメータが独立しているとは確信しています。どちらが明確に独立しており、どちらが明らかに独立していないのですか?それらを一緒に調整すべきか? すべてのパラメータを特別な順序で適切にチューニングすることについて話し合っている論文や記事はありますか?
EDIT: ここでは、さまざまな初期学習率、バッチサイズ、および正則化パラメータについて得られたグラフを示します。紫色のカーブは私のために完全に奇妙です...コストはゆっくりと他のものと比べて下がりますが、精度は低くなります。モデルが極小に詰まっている可能性はありますか? LR(t)はLRI/SQRT(エポック)あなたの助けを
感謝を=:学習率については
Costは、私は崩壊を使用しました! ポール
こんにちはPaul、なぜLRI/sqrt(epoch)を学習率減衰として使うのだろうか?私は 'epoch_0'を' 'LRI/max(epoch_0、epoch)''を使用しています。私は' 'epoch_0''を崩壊を開始したい時代に設定していますが、分母の2乗根をとると、あなたがやる。あなたはその学習率の衰退のための参照を持っていますか、それとも多かれ少なかれ自分自身を思い付いたのですか? – HelloGoodbye
こんにちは@HelloGoodbye! アダムオプティマイザ(https://arxiv.org/pdf/1412.6980.pdf)の記事では、定理4.1の収束を証明するために、ラーニングレートに平方根減衰を使用しています。 –