ラベルなし負例は「見た目」以外で正例と分離できなければ、同じ見た目の正例まで丸ごと消す
テスト設計
機械学習
物体検出
知識
判断
原則
物体検出の学習データに、正例と同じ素材から作った領域をラベルなしで置くと、モデルはそれを負例として学ぶ。このとき負例と正例が見た目で区別できないと、モデルは残った手がかり(多くはサイズや位置)で分けようとし、その手がかりの値域にある正例まで検出できなくなる。
観測した失敗
1クラス検出器の合成データで、対象の一部を切り出した断片を画面の任意位置にラベルなしで貼っていた。断片の大きさはモデル入力換算で特定の帯に集中し、シーンの3割に混入していた。結果、その帯に入る大きさの対象が、背景・位置を問わずスコアほぼ0になった。断片と対象全体は見た目が同じなので、モデルはサイズでしか分けられず、その帯の正例ごと打ち消していた。
断片の配置を「フレーム端をまたぐ位置」だけに限定したところ(実際の見切れは必ず画面の縁で起きる)、穴は消えた。負例が正例と置き方で分離可能になったため。
判断基準
- ラベルなし負例を足す前に「これは正例と何で区別できるか」を一文で言えること。言えないなら、モデルも区別できない
- 区別の根拠は見た目より幾何的な不変式(画面のどこに現れうるか、境界に接するか)のほうが安全。見た目が同じものを見た目で分けさせない
- 負例の分布が正例の分布と重なる軸(サイズ・アスペクト・輝度)を持つなら、その軸上で正例が消えていないか必ず確認する
確認方法
重なりうる軸に沿って連続的に掃引し、値ごとの検出可否を見る。特定の帯だけ落ちるなら、その帯を占める負例が混入していないか教師データ側を疑う。個別の代表ケースをいくつか通すだけでは、帯状の穴は見つからない。
一般化
検出器に限らず、分類・フィルタ・バリデータでも同じ。「これは違う」と教える例が、正しい例と決定的に分離できる特徴を持たないなら、その学習・ルールは正しい例まで巻き込む。