Post

Conversation

AI画像処理を用いた欠陥検出で、欠陥の分類の仕方が下手過ぎる人が多いな。 皆やたらと、見た目が違う欠陥を分類したがるけど、「その分類って意味ありますか?」ってのが多い。 代表的なのが ・色が違う ・形状が違う ・明るさが違う という理由で欠陥を分類しちゃう。 勿論、 ・工程起因が違う ・対策が違う ・統計管理で分ける必要がある 場合は分けた方がいい。 大事なのは、「工程として意味のある分類になっているか」なんよ。「人の見た目の違いによる分類」には何の意味もないんよ。 ここを間違えると、AIモデルの精度は落ちてしまう。 このことをちょい学術寄りに説明する。 1️⃣ 決定境界が増える AIモデルの分類器は「決定境界」を学習する。 ・二値分類 → 境界は基本1つ ・三値分類 → 複数境界 ・多クラス → 高次元空間の複雑分割 てな具合に、クラスが増えるほど境界は複雑になる。 そして境界が複雑になるほど必要なデータ量は急増する。 まぁ統計学の基本だな。 2️⃣ データ分断(Data Fragmentation) 例えば欠陥画像を600枚集めたとする。 欠陥を1クラスで分類すると600枚のデータを学習に使えるが、欠陥の色が違うからといって白欠陥、黒欠陥てな具合に分けると、 ・白欠陥:300枚 ・黒欠陥:300枚 と分けて学習することになる。 統計的には推定の安定性は√n に比例して安定するので、 ・1欠陥に分類 → 分散小 ・2欠陥に分類 → 分散大 になる。 つまりクラスを分けるだけで推定誤差が増える。 3️⃣ モデル複雑性と汎化誤差 理論的には、 汎化誤差 ≈ モデル複雑性 / サンプル数 クラスが増えると ・出力層パラメータ増加 ・決定境界複雑化 ・実質VC次元増加 になる。 同じデータ量なら汎化誤差は悪化する。 4️⃣ 不要な境界を学習してしまう これ、意外と気にしてない人が多い。 例えば、 ・背景 ・白欠陥 ・黒欠陥 の3クラスにすると、モデルは ・背景 vs 白欠陥 ・背景 vs 黒欠陥 ・白穴 vs 黒欠陥 の3方向の境界を学習する必要がある。 しかし目的が「欠陥は全てNG」であるなら、「白欠陥 vs 黒欠陥の境界」は不要。学習容量を消費するだけだ。 5️⃣ バイアス・バリアンストレードオフ クラスをまとめると ・自由度 ↓ ・分散 ↓(安定) になるが、クラスを分けると ・自由度 ↑ ・分散 ↑(不安定) となる。自由度と安定性はトレードオフの関係。 そして、特に製造業での検査は通常 ・小〜中規模のデータ量 ・不均衡データ なので、高バリアンス化は危険。 ----- 整理すると、 ■欠陥種別を分けるべき条件 ✔ 工程原因が違う ✔ 対策が違う ✔ 統計管理で区別する ✔ 十分なデータがある ■分けない方が良い条件 ✔ 形状違い、色違いがあっても、欠陥は全て「NG」 ✔ データ数が限られている ■重要な誤解 「特徴が違う=クラスを分けるべき」 これは誤り。 分類問題の目的は、「意味のある区別をすること」であって、数学的に分離可能なものを全部分けることではない。