小さいデータセットでのLSTMの過剰適合の防止


13

80次元のword2vecのような表現を使用して、128の隠れユニットを持つ単一レイヤーLSTMを使用して、感情予測のために15000のツイートをモデリングしています。1エポック後に降下精度(ランダム= 20%で38%)を取得します。トレーニングを増やすと、トレーニングの精度が上昇し始めると検証の精度が低下し始めます。これは、過剰適合の明確な兆候です。

したがって、正則化を行う方法を考えています。隠れユニットの数を減らしたくない(128はもう少し低いようだ)。現在、50%の確率でドロップアウトを使用していますが、これはおそらく増加する可能性があります。オプティマイザーは、Kerasのデフォルトパラメーター(http://keras.io/optimizers/#adam)を持つAdamです。

データセットでこのモデルの過剰適合を減らす効果的な方法は何ですか?


私はまったく同じ問題を抱えています。最終的にどのようにしてLSTMを正規化しましたか?私のLSTMの検証精度は41%です。私の入力形状は(200、)で、64ユニットのLSTMレイヤーが1つあり、その後にドロップアウトが0.4の2つの密なレイヤーがあります。
ニルヴァンアンジルバッグ

回答:


7

あなたが試すことができます:

  • 隠れユニットの数を減らしてください。すでに低いように見えますが、入力レイヤーに80個のフィーチャしかないことを考えると、実際には128個が多すぎる可能性があります。経験則では、非表示のユニットの数は、入力ユニットの数(80)と出力クラス(5)の中間になります。
  • または、入力表現スペースの次元を80以上に増やすこともできます(ただし、表現が特定の単語に対して既に狭すぎる場合は、これもオーバーフィットする可能性があります)。

ネットワークを適合させるための良い方法は、ネットワークの過剰適合から始めて、過剰に適合しなくなるまで容量(隠しユニットと埋め込みスペース)を減らすことです。


1
l1とl2の正則化を試しましたか?実際に機能しますか?この答えは、一般的にこれを行うべきではないことを示唆している
ヤクブBartczuk

私はRNNのこの特性を知らなかったので、答えのポイントを削除します
ミゲル

こんにちは、「入力ユニットの数と出力クラスの数の間に隠れユニットの数を入れる」という大まかなルールをどのようにして得たのかと思っていました。参照できる論文はありますか?
コング

それは経験則に関することです。どこから入手したのかわかりません
ミゲル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.