発生している問題・エラーメッセージ
現在、データ数1000ほどのデータセットを用いてグラフ畳み込みニューラルネットの学習をしています。
通常、深層学習のパラメータ(層数、ノード数など)を調整する際にはデータをtrainとvalidationとtestに分けて、trainで学習、validationデータでの評価指標(例えばクロスエントロピーロスなど)の値でEarly stoppingをかけ、validationでの評価指標がもっとも良い状態のモデルを用いてtestデータでの予測を行い、汎化性能の評価を行うことが多いかと思います。
今回の例ではデータがあまり多くないので、単にvalidationデータでの評価のみでパラメータを選ぶと、validationへの過学習のようなものが起こりうるため、5-fold cross validationにてパラメータ探索をしています。
パラメータ最適化ライブラリoptunaを用いて探索を行い、各パラメータセットに対して、各foldでearly stoppingをかけながら、5-foldの平均の評価指標がもっともよくなるパラメータセットを選びます。
ここまでは問題ないのですが、選ばれたパラメータを用いて、testでの予測を行う際に、問題が生じます。というのは、パラメータ探索の際の各foldでearly stoppingをかけていたので、各foldでエポック数が異なります。そのため、現在は各foldのエポックの平均をとって、再びtrainとvalidationを合わせたデータで学習し、testでの予測を行なっています。ただ、これでは最適な状態のモデルでは必ずしもないので、testでの性能が大きく下がってしまいます。
試したこと
考えられる対応策としては、early stoppingなしでepoch数を固定した上で、パラメータ探索をすることが考えられます。ただearly stoppingの予測性能への影響が大きい中でそれを外すのは果たして良いのかと考えています。
このような状況での対応についてご意見を伺いたいです。
よろしくお願いいたします。