私は、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つの評価の間に大きな違いはないはずです。
トレーニング中の評価とテスト時の評価との間に大きな相違があるのはなぜですか?