我有一個非常簡單的人工神經網絡,使用Tensorflow和AdamOptimizer進行迴歸問題,現在我正在調整所有超參數。我們應該以什麼順序調整神經網絡中的超參數?
現在,我看到了,我必須調整很多不同的超參數:
- 學習率:初始學習速率,學習速率衰減
- 的AdamOptimizer需要4個參數(學習率,β1,β2 ,ε),所以我們需要對其進行調整 - 至少小量
- 批量大小
- 迭代NB
- LAMBDA L2-調整參數
- 數目的神經元,層數
- 什麼隱藏層激活函數的種類,輸出層
- 輟學參數
我有2個問題:
1)你看到我可能已經忘記的任何其他超參數? 2)現在,我的調整是相當「手動」,我不知道我沒有以正確的方式做所有事情。 是否有特殊的順序來調整參數?先學習率,然後批量大小,然後... 我不確定所有這些參數是獨立的 - 事實上,我很確定其中有些參數是不相關的。哪些顯然是獨立的,哪些顯然不獨立?我們應該一起調整它們嗎? 是否有任何文章或文章談論正確調整特定順序的所有參數?
編輯: 下面是我得到不同初始學習率,批量大小和正則化參數的圖表。紫色的曲線對我來說是完全不可思議的......因爲成本以其他方式慢慢下降,但是它陷入了較低的準確率。模型是否可能陷入局部最小值?
對於學習率,我用的衰減: LR(T)= LRI /開方(時代)
感謝您的幫助! Paul
嗨保羅,我想知道你爲什麼使用'LRI/sqrt(epoch)'作爲學習率衰減?我使用'LRI/max(epoch_0,epoch)',在那裏我設置了'epoch_0'到我想要開始衰減的時期,但是如果你把分母的平方根作爲你做。你是否有任何關於這種學習速率衰減的參考,或者你是否自己提出了或多或少的想法? – HelloGoodbye
嗨@HelloGoodbye! 在介紹Adam Optimizer的文章(https://arxiv.org/pdf/1412.6980.pdf)中,他們使用平方根衰減來學習速率來證明定理4.1的收斂性。 –