Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

11 © 2019 Kentaro Yoshioka データセット構築方法 • データセットはどう分割する? ◦ ランダム? ◦ データ収集場所に応じて? 学習データ 検証データ テストデータ

Slide 12

Slide 12 text

12 © 2019 Kentaro Yoshioka データセット構築方法 • 例えば工場A,B,C,Dでデータを取得し、将来的に全工場で動かすモデルを 作成したい場合 ◦ Train: 工場A,B ◦ Validation: 工場C ◦ Test:工場D データ取得サイト毎に分割するのが良い →サイトに依らない汎用的な特徴を学習できている

Slide 13

Slide 13 text

13 © 2019 Kentaro Yoshioka データセット構築方法 • センサから5/1-7/31まで機器データを取得した。 • 品質を推論できるモデルを学習する

Slide 14

Slide 14 text

14 © 2019 Kentaro Yoshioka “良い”データセット構築例 • 日付でSplitするのが良い 5/1 7/31 Train Val Test →日付に依らない汎用的な特徴を学習できている

Slide 15

Slide 15 text

15 © 2019 Kentaro Yoshioka “良くない”データセット構築例 • ランダム分割 ◦ 未来のTrainデータも学習してしまうため、本質的には TestやValデータが未知でなくなってしまう ◦ →リークとも呼ばれる 5/1 7/31 Train Val Test →未来の特徴が利用でき、不必要に高い精度が出てしまう Train Train Val

Slide 16

Slide 16 text

16 © 2019 Kentaro Yoshioka データセット構築事例 • 悪い例 ◦ よく見る“ディープラーニングで日経平均を予測してみた” ◦ → 精度80%達成 ◦ ほんと?(本当なら大金持ち)

Slide 17

Slide 17 text

17 © 2019 Kentaro Yoshioka データセット構築事例 • 悪い例 ◦ よく見る“ディープラーニングで日経平均を予測してみた” ◦ → 精度80%達成 ◦ ほんと?(本当なら大金持ち) 問題点: X+10日間のデータを使い、X+11日目の結果を予測する タスクで精度を導出している。 単に移動平均を出力するだけでそれっぽい結果が 得られてしまう。 本来ならば90日間を学習、次の90日を予測と データセットを分けないといけない。

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

23 © 2019 Kentaro Yoshioka データセット構築事例 • Kaggle “Global Wheat Detection” ◦ https://www.kaggle.com/c/global-wheat-detection 小麦(wheat head)検出。 学習データ ヨーロッパ、アメリカのデータ 評価データ アジア(中国、日本、オーストラリア)のデータ チャレンジ: 未知の地域の小麦も検出できるモデルを作成できるか?

Slide 24

Slide 24 text

24 © 2019 Kentaro Yoshioka Take home message • “正しい“データセット整備に必要な知識を駆け足で説明 ◦ 汎化性能と過学習 ◦ データセットの分割 ◦ 交差検証、テストセット ◦実施例を見て考察した