なぜハイパーパラメータを学習しないのですか?


11

私はかなり人気のある論文「説明と悪用の例の説明」を実装していました。この論文では、それは敵対的な目的関数をトレーニングします

J ''(θ)=αJ(θ)+(1 −α)J '(θ)

αをハイパーパラメータとして扱います。αは0.1、0.2、0.3などにすることができます。

この特定の論文に関係なく、疑問に思っているのですが、パラメーターにαを含めて、最良のαを学習しませんか?

そうすることの欠点は何ですか?オーバーフィットのせいですか?もしそうなら、なぜもう1つのパラメータを学習するだけで多くの過剰適合が生じるのですか?


まあ、ハイパーパラメーターがコスト関数のパラメーターである場合(DGPデータ生成プロセスのパラメーターではない場合)、データ自体にそれに関する情報が含まれていることは明らかではありません。
kjetil b halvorsen 2018

1
α

回答:


8

「ハイパーパラメータだけを学ばないのはなぜですか?」

いい質問ですね!より一般的な答えを出そうと思います。TL; DRの答えは、あなたは間違いなくだけでなく、同じデータから、ハイパーを学ぶことができるということです。もう少し詳細な返信を読んでください。


ハイパーは、典型的には、学習アルゴリズムの設定ではなく、そのパラメータの1つに対応します。たとえば、ディープラーニングのコンテキストでは、これは特定のレイヤーのニューロン(ハイパーパラメーター)と特定のエッジの重み(通常の学習可能なパラメーター)の違いなどによって例示されます。

そもそもなぜ違いがあるのですか?パラメータをハイパーパラメータにする一般的なケースは、トレーニングセットからそのパラメータを学習することが適切でない場合です。たとえば、ニューロンを追加することでトレーニングエラーを下げる方が常に簡単であるため、レイヤー内のニューロンの数を通常のパラメーターにすると、常に非常に大規模なネットワークが奨励されます。過適合)。

あなたの質問には、ハイパーパラメータをまったく学ばないということではありません。1分間の計算の課題は別として、ハイパーパラメーターの適切な値を学習することは非常に可能であり、これが良好なパフォーマンスのために不可欠である場合さえあります。最初の段落のすべての議論は、定義により、このタスクに同じデータを使用できないことを示唆しています

データの別の分割を使用して(したがって、3つのばらばらな部分(トレーニングセット、検証セット、およびテストセット)を作成する場合、理論的には、次のネストされた最適化手順を実行できます。外側のループで、検証損失を最小化するハイパーパラメータの値、および内部ループで、トレーニング損失を最小化する通常のパラメータの値を見つけようとします。

これは理論的には可能ですが、計算的には非常にコストがかかります。外側のループのすべてのステップで、内側のループを解決する必要があります(完了するまで、またはそれに近いところまで)。さらに複雑なのは、外側の問題が簡単ではないことです。1つには、検索スペースが非常に大きいということです。

上記の設定(グリッド検索、ランダム検索、またはモデルベースのハイパーパラメーター最適化)を簡略化することでこれを克服する多くのアプローチがありますが、これらの説明は質問の範囲をはるかに超えています。あなたが参照した記事でも示されているように、これが費用のかかる手順であるという事実は、多くの場合、研究者がそれを完全にスキップするか、非常に少数の設定を手動で試行し、最終的に(検証セットによると)最適な設定に着手することを意味します。元の質問ですが、私は-非常に単純で不自然なものですが-これはまだ「学習」の一形態であると主張します。


こんにちは、回答ありがとうございます。同じデータを使用するとどうなりますか?
Aerin

7

その論文のようなハイパーパラメータは、損失関数の複数の項のバランスを取るためによく使用されます。それらを学習可能にした場合、最適化プロセスは、最適化がより困難な用語を犠牲にして最適化がより簡単な用語にすべての重みを割り当てることを単に学習し、用語のバランスをとるポイントを打ち消します。

別の見方をすると、損失関数は、「出力画像の生成は現実的に見えるはず」または「敵対的な例に抵抗する必要がある」など、定義または最適化が難しい実際の目的の代用であるということです。その場合、真の目標は「サロゲートの損失を最小限に抑えるためにハイパーパラメータを見つける」ことではなく、「サロゲートを最適化するために残りのパラメータでSGDを実行するときに、サロゲートを最適化することで、真のパフォーマンスを向上させるハイパーパラメータを見つけることです」目的"。


4

「論文に関係なく」と尋ねたので、簡単な例として、ペナルティ付き線形回帰(Ridge / Lasso)を取り上げます。

J~

αα

  1. ハイパーパラメータを最適化するための目的関数は、汎化誤差の代用となる式です。この式は、区別できる単純な分析関数として書き出すことは困難ですが、基礎となる最適化問題を解くことによって、ある時点で簡単に評価できます。

  2. 関数(F2)を評価するには、コストがかかる可能性のある最適化問題を解決する必要があります。したがって、F2の勾配を近似して勾配降下を行うことができるとしても、それは高価で遅くなります。このような場合、グリッド検索を実行することで「十分」な場合がよくあります。

λ

投げ縄モデルのパフォーマンス

(この投稿から取得した画像:https : //stats.stackexchange.com/a/26607/54725

いくつかの参照:


具体的には、論文J(θ、x + esign(∇xJ(θ、x、y))の第2項をF2として参照していますか?
Aerin

JJ~ααα

それでは、この論文ではF1とF2を何と呼んでいますか?
Aerin 2018

J~

1

αθ

αJ(θ)=ααJ(θ)+α(1α)J(θ)=J(θ)J(θ)=0
J(θ)=J(θ)

このハイパーパラメータが最適化されると、JとJ 'の両方が同じ関数、つまり重みが等しくなります。あなたは簡単な解決策になるでしょう。

yL=XLβL
aL=σ(yL)
XL+1=aL
βLβ 目的関数の中で、行列、ヘッセ行列、外積などの明らかでない方法で結果を入力するデータポイントを取得します。

ただし、ハイパーパラメーターで1次条件を推定しようとすると、この効果は得られません。ハイパーパラメーターの導関数は、パラメーターの導関数のようにパーツをシャッフルすることなく、モデルのチャンク全体を操作することがよくあります。そのため、ハイパーパラメータを最適化すると、特定の論文で紹介したような簡単な解決策が得られることがよくあります。ハイパーパラメータを最適化してもデータセットに負担がかかることはなく、興味深いものを作成するのに十分なほど不快になることもありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.