2.8 データの分け方と分布シフト
訓練時と本番の「ずれ」
この回で分かること
- 評価を甘くする データの漏れ の原因と、まとまりごとにデータを分ける防ぎ方を説明できる
- 分布シフト の3つの型(入力の分布・対象の割合・入力と答えの関係が変わる)を、例を挙げて説明できる
- 場面ごとの性能と場面の割合から全体の性能を計算し、ODD や運用後の監視との関係を説明できる
直感で理解する
2.6 では、学習に使っていないテストデータで性能を測ることを学びました。ところが、テストで高い成績だったモデルが、実際の道路では思ったほど働かないことがあります。原因は大きく2つです。1つは、テストデータの分け方が甘く、テストが本当の意味での「初見」になっていないこと。もう1つは、テストデータと実際の走行環境とで、データの性質がずれていること。これを 分布シフト と呼びます。
たとえば、ある歩行者検出器の再現率(2.7)は、昼・晴れでは96%ですが、夜・雨では62%でした。テストデータの7割が昼・晴れなら、全体の再現率は92%です。ところが夜や雨の多い地域で走らせると、場面ごとの性能はまったく同じなのに、全体の再現率は86%に下がります。
数式で確かめる
① 全体の性能は「場面ごとの性能 × 場面の割合」の和
場面 k の割合を \(w_k\)、その場面での再現率を \(R_k\) とすると、全体の再現率は次の式で決まります。
試験データの割合なら 0.70 × 0.96 + 0.15 × 0.90 + 0.12 × 0.80 + 0.03 × 0.62 ≈ 0.92、実際に走る地域の割合なら 0.40 × 0.96 + 0.25 × 0.90 + 0.20 × 0.80 + 0.15 × 0.62 ≈ 0.86 です。モデルは何も変わっていません。変わったのは、場面の割合だけです。
さらに、苦手な場面ほどデータが少ないという問題もあります。試験データが1,000枚でも、夜・雨は3%の30枚だけです。30枚で測った再現率62%には、95%信頼区間でおよそ ±18ポイントの幅があります(1.6)。
② データの分け方と「データの漏れ」
画像を1枚ずつランダムに訓練データとテストデータに分けると、同じ走行・同じ日・同じ場所で撮った、ほとんど同じ画像が両方に入ります。するとテストは「見たことのある問題」になり、成績が実力より高く出ます。これが データの漏れ です。
| 分け方 | ねらい | 例 |
|---|---|---|
| まとまりごとに分ける | 似たデータが両方に入るのを防ぐ | 走行ごと・日ごと・地域ごと・車両ごとに、まとめて訓練かテストに入れる |
| 時間で分ける | 「将来のデータ」での性能を見る | 古い期間のデータで学び、新しい期間のデータでテストする |
| 場面の割合をそろえる | 珍しい場面がテストから抜けるのを防ぐ | 夜間・雨・子どもなどが、どの分け方にも一定数入るようにする |
③ 分布シフトの3つの型
| 型 | 何が変わるか | 自動運転での例 | 起きること |
|---|---|---|---|
| 入力の分布が変わる (共変量シフト) | 見る景色やセンサの状態 | 雪国、夜間の多い地域、新しいカメラへの交換、フロントガラスの汚れ | 苦手な場面が増える。見たことのない入力が来る |
| 対象の割合が変わる (事前確率シフト) | 答えの割合 | 歩行者の多い繁華街と、少ない郊外 | 適合率などが変わる(2.7) |
| 入力と答えの関係が変わる (コンセプトシフト) | 正解の決まり方そのもの | 電動キックボードのような新しい乗り物、交通ルールの変更 | 学んだ規則そのものが古くなる |
④ ずれに気づく
- 入力の統計を見張る:明るさ、写る物の大きさ、天候などの分布を運用中に集め、学習データと比べる
- 見慣れない入力を見つける:モデルの確信度の変化や、学習データから遠い入力を検出する方法(分布外検出)を使う
- 範囲の外に出たら安全側に:決めた範囲(ODD)の外に出たと分かったら、機能を制限したり、運転を引き継いだりする
自動運転との接点
- ODD は「データの範囲」の約束:学習データや試験データでカバーした天候・道路・時間帯の範囲が、機能を使ってよい範囲(ODD)の根拠になります。ODD の外に出たことに気づき、安全側に振る舞うしくみが必要です。→ 4.1 自動運転レベルとODD
- 試験データの割合を「実際に走る場所」に合わせる:全体の数字は、場面の割合で変わります。想定する地域や季節の割合で重みを付け直して評価し、場面ごとの性能も必ず示します。→ 5.5 受入れ基準と妥当性確認目標
- ずれは SOTIF の手がかり:性能が落ちる場面(夜間・雨・逆光など)は、SOTIF でいうトリガー条件の候補です。データの偏りや抜けを探すことが、未知の危険を減らすことにつながります。→ 5.3 機能不十分とトリガー条件、5.8 未知の危険を探す
- 出したあとも見張る:走る環境は時間とともに変わります(新しい車種、道路工事、季節)。運用中のデータを監視し、ずれを見つけたら学習し直して、もう一度評価します。→ 5.11 市場投入後の監視
まとめ
- テストが本当に「初見」になるよう、データは走行・日・場所などのまとまりごとに分ける(データの漏れを防ぐ)。珍しい場面は、どの分け方にも入るようにする
- 分布シフトには、入力の分布・対象の割合・入力と答えの関係が変わる3つの型がある。全体の性能は「場面ごとの性能 × 場面の割合」の和で決まる
- ODD でデータの範囲をはっきりさせ、場面ごとに性能を評価し、運用が始まってからもずれを見張る
確認クイズ
Q1. 場面Aでの再現率は95%、場面Bでは80%です。試験データは A と B が 9 : 1、実際の運用では 1 : 1 でした。それぞれの全体の再現率は?
試験データでは 0.9 × 0.95 + 0.1 × 0.80 = 0.935(93.5%)、実際の運用では 0.5 × 0.95 + 0.5 × 0.80 = 0.875(87.5%)です。
Q2. 同じ日に同じ道で撮った画像を、1枚ずつランダムに訓練データとテストデータに分けました。何が起きやすい?
ほとんど同じ画像が両方に入り、テストの成績が実力より高く出ます(データの漏れ)。走行や日ごとにまとめて分けます。
Q3. 電動キックボードが急に増え、それが歩行者か自転車かの判定がばらつくようになりました。主にどの型の分布シフト?
主に「入力と答えの関係が変わる」型(コンセプトシフト)です。新しい種類の乗り物で、どう分類すべきかという正解の決まり方そのものが、学習したときにはありませんでした。見たことのない入力が来るという意味では、入力の分布の変化でもあります。
Q4. 試験データ1,000枚のうち、夜・雨は30枚で、その再現率は62%でした。この数字をどう扱う?
30枚では、95%信頼区間でおよそ ±18ポイントの幅があり、本当の再現率は44%〜80%のどこかにあってもおかしくありません。夜・雨のデータを増やして測り直し、それまでは区間の下側で判断します。
もっと知りたい人へ
- 次の回:3.1 ニューラルネットワーク
- 関連:1.6 推定と信頼区間、2.6 過学習と正則化、2.7 評価指標、4.1 自動運転レベルとODD、5.11 市場投入後の監視
- 用語集:分布シフト、共変量シフト・事前確率シフト・コンセプトシフト、データの漏れ、分布外検出、ODD
- 解説動画:YouTube(約5分)(静止画のスライドと音声で要点を説明。英語版の記事には英語の動画があります)