Upgrade to Pro — share decks privately, control downloads, hide ads and more …

”良い”データセット構築を考える

Yoshioka Lab (Keio CSG)
December 17, 2023
790

 ”良い”データセット構築を考える

良いデータセット構築について汎化性能の概念から実データセット例まで見ながら考える

Yoshioka Lab (Keio CSG)

December 17, 2023
Tweet

More Decks by Yoshioka Lab (Keio CSG)

Transcript

  1. 1 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか

    ◦ 機械学習における最も重要な指標 • 過学習とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
  2. 2 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか

    ◦ 機械学習における最も重要な指標 • 過学習とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル 学習データ 未知データ 次郎 次郎 ラーメン ラーメン ラーメン 次郎 ??
  3. 3 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか

    ◦ 機械学習における最も重要な指標 • 過学習(Overfitting)とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
  4. 4 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか

    ◦ 機械学習における最も重要な指標 • 過学習(Overfitting)とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
  5. 5 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか

    ◦ 機械学習における最も重要な指標 • 過学習(Overfitting)とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
  6. 6 © 2019 Kentaro Yoshioka データセット構築方法 • どうやって評価するの? • →交差検証法(cross-validation)

    ◦ データを学習に使用するデータ(train)と検証に使用するデータ(validation)に 分割 ◦ 大体4:1くらい?(肌感覚) ◦ →検証データはモデルにとっては未知。未知データに対する性能を評価可能 検証データ
  7. 7 © 2019 Kentaro Yoshioka データセット構築方法 • どうやって評価するの? • →交差検証(cross-validation)

    ◦ データを学習に使用するデータ(train)と検証に使用するデータ(validation)に 分割
  8. 8 © 2019 Kentaro Yoshioka データセット構築方法 • どうやって評価するの? • →交差検証(cross-validation)

    ◦ データを学習に使用するデータ(train)と検証に使用するデータ(validation)に 分割 Validationデータセットに過学習してるんじゃないの?
  9. 9 © 2019 Kentaro Yoshioka データセット構築方法 • Train-Validation-Testデータセット分割 ◦ 事業で使えるか判定するならばこれくらい必要..

    • 検証データでモデル性能をチューニング • 最終性能は更に未知データであるテストデータで評価 学習データ 検証データ テストデータ
  10. 10 © 2019 Kentaro Yoshioka データセット構築方法 • Train-Validation-Testデータセット分割 ◦ 事業で使えるか判定するならばこれくらい必要..

    • 検証データでモデル性能をチューニング • 最終性能は更に未知データであるテストデータで評価 学習データ 検証データ テストデータ Test精度
  11. 11 © 2019 Kentaro Yoshioka データセット構築方法 • データセットはどう分割する? ◦ ランダム?

    ◦ データ収集場所に応じて? 学習データ 検証データ テストデータ
  12. 12 © 2019 Kentaro Yoshioka データセット構築方法 • 例えば工場A,B,C,Dでデータを取得し、将来的に全工場で動かすモデルを 作成したい場合 ◦

    Train: 工場A,B ◦ Validation: 工場C ◦ Test:工場D データ取得サイト毎に分割するのが良い →サイトに依らない汎用的な特徴を学習できている
  13. 14 © 2019 Kentaro Yoshioka “良い”データセット構築例 • 日付でSplitするのが良い 5/1 7/31

    Train Val Test →日付に依らない汎用的な特徴を学習できている
  14. 15 © 2019 Kentaro Yoshioka “良くない”データセット構築例 • ランダム分割 ◦ 未来のTrainデータも学習してしまうため、本質的には

    TestやValデータが未知でなくなってしまう ◦ →リークとも呼ばれる 5/1 7/31 Train Val Test →未来の特徴が利用でき、不必要に高い精度が出てしまう Train Train Val
  15. 17 © 2019 Kentaro Yoshioka データセット構築事例 • 悪い例 ◦ よく見る“ディープラーニングで日経平均を予測してみた”

    ◦ → 精度80%達成 ◦ ほんと?(本当なら大金持ち) 問題点: X+10日間のデータを使い、X+11日目の結果を予測する タスクで精度を導出している。 単に移動平均を出力するだけでそれっぽい結果が 得られてしまう。 本来ならば90日間を学習、次の90日を予測と データセットを分けないといけない。
  16. 18 © 2019 Kentaro Yoshioka データセット構築事例 • 産総研 “深層学習による赤外線画像のカラー化技術を開発” ◦

    プレスリリース https://www.aist.go.jp/aist_j/press_release/pr2020/pr20200206/pr20200206.html 赤外モノクロ画像からカラー化可能なモデルを開発! 精度高い。 →赤外光は輝度情報しかないため原理的にはカラー化 できないはずだが。。?
  17. 19 © 2019 Kentaro Yoshioka データセット構築事例 • 産総研 “深層学習による赤外線画像のカラー化技術を開発” ◦

    プレスリリース (https://www.aist.go.jp/aist_j/press_release/pr2020/pr20200206/pr20200206.html ) 疑問点: 学習、評価において可視光カラー画像と 赤外画像の対象物が同一 →つまり学習/評価データは同一 学習対象物をたまたまきれいにマッピングできる表現を モデルが学習してしまった? 対象物が未知であるとカラー化精度は悪化する? →このような評価が必要
  18. 20 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Airbus Ship

    Detection Challenge” ◦ 航空写真から船を検出するチャレンジ 問題点: 評価データは学習データをシフトしたデータであることが判明 →つまり学習/評価データは同一 シフト量を推定すれば満点取得可能。 評価データ作成をケチると正当なモデル評価ができなくなる一例
  19. 21 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Bengali Handwritten

    Grapheme Classification” ◦ https://www.kaggle.com/c/bengaliai-cv19 ベンガル語の手書き文字判別コンテスト ベンガル語は三種類の部首の組み合わせ 合計組み合わせは13000通りあるが、全部をデータ セット化するのは困難。 チャレンジ: 未知の組み合わせに対応できるモデルを構築でき るか?
  20. 22 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Bengali Handwritten

    Grapheme Classification” ◦ https://www.kaggle.com/c/bengaliai-cv19 ベンガル語の手書き文字判別コンテスト 学習データ:全ての部首を含むが、組み合わせは数 千通りのみ。 評価データ:未知なる組み合わせのもので評価 優勝者: 文字データから手書き風データをGANで生成し、学 習データを拡充しモデルを学習。 →GANのデータ水増しは有効!
  21. 23 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Global Wheat

    Detection” ◦ https://www.kaggle.com/c/global-wheat-detection 小麦(wheat head)検出。 学習データ ヨーロッパ、アメリカのデータ 評価データ アジア(中国、日本、オーストラリア)のデータ チャレンジ: 未知の地域の小麦も検出できるモデルを作成できるか?
  22. 24 © 2019 Kentaro Yoshioka Take home message • “正しい“データセット整備に必要な知識を駆け足で説明

    ◦ 汎化性能と過学習 ◦ データセットの分割 ◦ 交差検証、テストセット ◦実施例を見て考察した