2017-02-18 15 views
0

私が線形回帰モデルを作成するたびに、それは常にばらばらになりました。私は本当にそれのための解決策を見つけることができませんでした。しかし、私が学習率を0.0000252に変更したとき、それはうまくいった!しかし、別の問題は、モデルが10分以上学習するのを待たなければならないほどゆっくりと学習することです。線形回帰の学習率を変えずに学習を固定する方法

学習率を変更せずに学習を固定するにはどうすればよいですか?

答えて

2

最初の質問は、SGDを使用する理由(ここでは私が前提とする)です。線形回帰のためのより専門的な学習手順がありますが、そのような部分的なハイパーパラメータチューニングは部分的には必要ありません。たぶんあなたはSGDが有効なアプローチである場合、非常に大規模な環境にあるかもしれません。 SGDベースの学習を想定し

が移動するための方法である:

  • あなたは、学習スケジュールのいくつかの種類
    • を使用する必要があります学習率を低下させる少なくとも学習率の減衰を追加例えば、各エポックの後に、0.9(はい、もう1つのハイパーパラメータ)のような要素が入ります。
    • 何らかの勢いを使用してみてください。勢いのこの種は、非凸設定
    • ほとんどディープラーニングのlibsには、この外のを提供しなければならないにしても人気のある凸最適化のために開発された(あなたのケースが凸)と強力な保証
      • を保持したネステロフ、勢い-the-ボックス
  • あなたのような適応学習レートベースのアルゴリズム試すことができます。
    • アダム、AdaDelta、AdaGradを、...
    • それでも、可能な限り迅速 もちろん
      • として収束しようとしているときに
      • これらは、それらのLR-ハイパーを選択からの負担を削除しようとする彼らは、ヒューリスティック(厳密に話さ)ですが、彼らはけれども(ほとんどの人々のために働くように見えます最適化されたSGDは
      • ほとんどディープラーニングのLIBSは、アウトオブボックス
  • liblinear
  • のような線形モデルのための特殊なソフトウェアを使用し、これを提供しなければならない)最高のほとんどの時間です

もう一つのことは、この単純な問題について相違を観察するのは簡単だと驚いたからです。入力を正規化してください!

関連する問題