質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

1回答

1359閲覧

Deep Learningのパラメータをクロスバリデーションで決める

nouken

総合スコア369

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

2クリップ

投稿2019/10/23 10:52

編集2019/10/24 00:11

発生している問題・エラーメッセージ

現在、データ数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の予測性能への影響が大きい中でそれを外すのは果たして良いのかと考えています。

このような状況での対応についてご意見を伺いたいです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Q71

2019/10/23 23:56

モデルのハイパーパラメータ探索と、モデルの学習が混ざっている様に思うのですが、大丈夫ですか?
nouken

2019/10/24 00:13

CVによるパラメータ探索後、得られたパラメータでtrain, valを合わせて学習していますが、CVでEarly stoppingを用いているので、再学習時のエポックの決め方がわからない、という趣旨の質問です。説明が不十分だったので修正しました。
guest

回答1

0

5-foldの平均の評価指標がもっともよくなるパラメータセットを選んだ後、early stoppingをかけながら、学習データ全てを用いて再学習させます。これで、early stoppingが固定されるはずです。

投稿2019/10/25 05:24

yamato_user

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nouken

2019/10/25 05:40

固定はできますがそれでは結局一つのvalidationデータでearly stoppingをかけるのでデータが小さい場合過学習みたいな事態に陥る可能性はあるような気がします。ただ、現状できることの中では、おっしゃる通り、CVでパラメータを決めて、一つのvalidationデータでearly stoppingをかけるのが最善策のような気もします。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問