2016-03-21 11 views
0

私は、Chen and Manning(2014)のニューラルネットワークパーサーのStanford CoreNLP実装で新しいモデルを訓練しようとしています。トレーニング中は、-devFileオプションを使用して、100回の反復ごとに開発セットのUAS評価を行います。数千回の反復の後、私はかなり良いUAS(約86%)を得ます。しかし、トレーニングが完了し、同じ開発セットでテストしようとすると、約15%のUASが得られます。私はEnglish Universal Dependenciesツリーバンクを使用しています。CoreNLPニューラルネットワーク依存性パーサー - トレーニングとテストの評価の差

訓練のための

コマンドラインオプション:テストのための

java edu.stanford.nlp.parser.nndep.DependencyParser -trainFile ~/Datasets/universal-dependencies-1.2/UD_English/en-ud-train.conllu -devFile ~/Datasets/universal-dependencies-1.2/UD_English/en-ud-dev.conllu -embedFile path/to/wordvecs -embeddingSize 100 -model nndep.model.txt.gz -trainingThreads 2 

コマンドラインオプション:

java edu.stanford.nlp.parser.nndep.DependencyParser -model nndep.model.txt.gz -testFile ~/Datasets/universal-dependencies-1.2/UD_English/en-ud-dev.conllu 

私が英語のために提供UDモデルを使用すると、すべてが正常に動作し、私の周りのUASを取得開発セットの80%これは、私の訓練されたモデルが劣っていると信じて、私はいくつかの必要なステップやオプションを逃した可能性があります。しかし、トレーニング中の評価はかなり良い結果を与えるので、私は少し混乱しています。私の理解から、これら2つの評価の間に大きな違いはないはずです。

トレーニング中の評価とテスト時の評価との間に大きな相違があるのはなぜですか?

答えて

0

私自身の質問に答える。 another threadにこの問題の答えが見つかりましたが、問題は少し異なります。

デフォルト値50とは異なる埋め込みサイズを使用する場合は、解析時に-embeddingSizeフラグも渡す必要があります。上記のリンクされたスレッドで指摘したように、これは隠しサイズのパラメータにも適用されます。

これを行うと、問題が解決され、トレーニング中のものと同等のUASが得られます。

したがって、デフォルト値とは異なる単語埋め込みまたは隠しレイヤーサイズを使用する場合は、モデルで解析するときにこれらのパラメータを渡す必要があります。

0

私はそれをコピー&ペーストのためだった場合、私は知らない、あなたがエラーを持っていると思うが、中:

「テストのためのコマンドラインオプション:」

java edu.stanford.nlp.parser.nndep.DependencyParser -model nndep.model.txt.gz -testFile ~/Datasets/universal-dependencies-1.2/UD_English/en-ud-**dev**.conllu 

私はそれが必要だと思いますbe:

java edu.stanford.nlp.parser.nndep.DependencyParser -model nndep.model.txt.gz -testFile ~/Datasets/universal-dependencies-1.2/UD_English/en-ud-**test**.conllu 
関連する問題