Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
”良い”データセット構築を考える
Search
Yoshioka Lab (Keio CSG)
December 17, 2023
4
810
”良い”データセット構築を考える
良いデータセット構築について汎化性能の概念から実データセット例まで見ながら考える
Yoshioka Lab (Keio CSG)
December 17, 2023
Tweet
Share
More Decks by Yoshioka Lab (Keio CSG)
See All by Yoshioka Lab (Keio CSG)
LLM時代の半導体・集積回路
kentaroy47
1
560
高精度、高効率アナログCompute-in-Memory回路に向けて
kentaroy47
2
300
LiDARセキュリティ最前線
kentaroy47
0
460
論文を読むコツ/Paper reading
kentaroy47
0
220
アナログが世界を救う? アナログコンピューティングの応用と課題
kentaroy47
0
730
A 0.7V 12b 160MS/s 12.8fJ/conv-step Pipelined-SAR ADC in 28nm CMOS with Digital Amplifier Technique
kentaroy47
0
53
吉岡研究室紹介(2022年度)
kentaroy47
0
2.7k
信頼されるLiDARに向けて
kentaroy47
0
1k
A 20ch TDC/ADC Hybrid SoC for 240x96-pixel 10%-Reflection <0.125%-Precision 200m-Range-Imaging LiDAR with Smart Accumulation Technique
kentaroy47
0
390
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
RailsConf 2023
tenderlove
29
940
Practical Orchestrator
shlominoach
186
10k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Transcript
1 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか
◦ 機械学習における最も重要な指標 • 過学習とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
2 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか
◦ 機械学習における最も重要な指標 • 過学習とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル 学習データ 未知データ 次郎 次郎 ラーメン ラーメン ラーメン 次郎 ??
3 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか
◦ 機械学習における最も重要な指標 • 過学習(Overfitting)とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
4 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか
◦ 機械学習における最も重要な指標 • 過学習(Overfitting)とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
5 © 2019 Kentaro Yoshioka 汎化性能と過学習とは • 汎化性能とは: ◦ モデルが未知のデータも上手く予測できるか
◦ 機械学習における最も重要な指標 • 過学習(Overfitting)とは: ◦ 学習データに過度に適応してしまい汎化性能を失ったモデル
6 © 2019 Kentaro Yoshioka データセット構築方法 • どうやって評価するの? • →交差検証法(cross-validation)
◦ データを学習に使用するデータ(train)と検証に使用するデータ(validation)に 分割 ◦ 大体4:1くらい?(肌感覚) ◦ →検証データはモデルにとっては未知。未知データに対する性能を評価可能 検証データ
7 © 2019 Kentaro Yoshioka データセット構築方法 • どうやって評価するの? • →交差検証(cross-validation)
◦ データを学習に使用するデータ(train)と検証に使用するデータ(validation)に 分割
8 © 2019 Kentaro Yoshioka データセット構築方法 • どうやって評価するの? • →交差検証(cross-validation)
◦ データを学習に使用するデータ(train)と検証に使用するデータ(validation)に 分割 Validationデータセットに過学習してるんじゃないの?
9 © 2019 Kentaro Yoshioka データセット構築方法 • Train-Validation-Testデータセット分割 ◦ 事業で使えるか判定するならばこれくらい必要..
• 検証データでモデル性能をチューニング • 最終性能は更に未知データであるテストデータで評価 学習データ 検証データ テストデータ
10 © 2019 Kentaro Yoshioka データセット構築方法 • Train-Validation-Testデータセット分割 ◦ 事業で使えるか判定するならばこれくらい必要..
• 検証データでモデル性能をチューニング • 最終性能は更に未知データであるテストデータで評価 学習データ 検証データ テストデータ Test精度
11 © 2019 Kentaro Yoshioka データセット構築方法 • データセットはどう分割する? ◦ ランダム?
◦ データ収集場所に応じて? 学習データ 検証データ テストデータ
12 © 2019 Kentaro Yoshioka データセット構築方法 • 例えば工場A,B,C,Dでデータを取得し、将来的に全工場で動かすモデルを 作成したい場合 ◦
Train: 工場A,B ◦ Validation: 工場C ◦ Test:工場D データ取得サイト毎に分割するのが良い →サイトに依らない汎用的な特徴を学習できている
13 © 2019 Kentaro Yoshioka データセット構築方法 • センサから5/1-7/31まで機器データを取得した。 • 品質を推論できるモデルを学習する
14 © 2019 Kentaro Yoshioka “良い”データセット構築例 • 日付でSplitするのが良い 5/1 7/31
Train Val Test →日付に依らない汎用的な特徴を学習できている
15 © 2019 Kentaro Yoshioka “良くない”データセット構築例 • ランダム分割 ◦ 未来のTrainデータも学習してしまうため、本質的には
TestやValデータが未知でなくなってしまう ◦ →リークとも呼ばれる 5/1 7/31 Train Val Test →未来の特徴が利用でき、不必要に高い精度が出てしまう Train Train Val
16 © 2019 Kentaro Yoshioka データセット構築事例 • 悪い例 ◦ よく見る“ディープラーニングで日経平均を予測してみた”
◦ → 精度80%達成 ◦ ほんと?(本当なら大金持ち)
17 © 2019 Kentaro Yoshioka データセット構築事例 • 悪い例 ◦ よく見る“ディープラーニングで日経平均を予測してみた”
◦ → 精度80%達成 ◦ ほんと?(本当なら大金持ち) 問題点: X+10日間のデータを使い、X+11日目の結果を予測する タスクで精度を導出している。 単に移動平均を出力するだけでそれっぽい結果が 得られてしまう。 本来ならば90日間を学習、次の90日を予測と データセットを分けないといけない。
18 © 2019 Kentaro Yoshioka データセット構築事例 • 産総研 “深層学習による赤外線画像のカラー化技術を開発” ◦
プレスリリース https://www.aist.go.jp/aist_j/press_release/pr2020/pr20200206/pr20200206.html 赤外モノクロ画像からカラー化可能なモデルを開発! 精度高い。 →赤外光は輝度情報しかないため原理的にはカラー化 できないはずだが。。?
19 © 2019 Kentaro Yoshioka データセット構築事例 • 産総研 “深層学習による赤外線画像のカラー化技術を開発” ◦
プレスリリース (https://www.aist.go.jp/aist_j/press_release/pr2020/pr20200206/pr20200206.html ) 疑問点: 学習、評価において可視光カラー画像と 赤外画像の対象物が同一 →つまり学習/評価データは同一 学習対象物をたまたまきれいにマッピングできる表現を モデルが学習してしまった? 対象物が未知であるとカラー化精度は悪化する? →このような評価が必要
20 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Airbus Ship
Detection Challenge” ◦ 航空写真から船を検出するチャレンジ 問題点: 評価データは学習データをシフトしたデータであることが判明 →つまり学習/評価データは同一 シフト量を推定すれば満点取得可能。 評価データ作成をケチると正当なモデル評価ができなくなる一例
21 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Bengali Handwritten
Grapheme Classification” ◦ https://www.kaggle.com/c/bengaliai-cv19 ベンガル語の手書き文字判別コンテスト ベンガル語は三種類の部首の組み合わせ 合計組み合わせは13000通りあるが、全部をデータ セット化するのは困難。 チャレンジ: 未知の組み合わせに対応できるモデルを構築でき るか?
22 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Bengali Handwritten
Grapheme Classification” ◦ https://www.kaggle.com/c/bengaliai-cv19 ベンガル語の手書き文字判別コンテスト 学習データ:全ての部首を含むが、組み合わせは数 千通りのみ。 評価データ:未知なる組み合わせのもので評価 優勝者: 文字データから手書き風データをGANで生成し、学 習データを拡充しモデルを学習。 →GANのデータ水増しは有効!
23 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Global Wheat
Detection” ◦ https://www.kaggle.com/c/global-wheat-detection 小麦(wheat head)検出。 学習データ ヨーロッパ、アメリカのデータ 評価データ アジア(中国、日本、オーストラリア)のデータ チャレンジ: 未知の地域の小麦も検出できるモデルを作成できるか?
24 © 2019 Kentaro Yoshioka Take home message • “正しい“データセット整備に必要な知識を駆け足で説明
◦ 汎化性能と過学習 ◦ データセットの分割 ◦ 交差検証、テストセット ◦実施例を見て考察した