ディープラーニングによる光学検査の自動化
第 4 章
故障検出のための転移学習
六角ナットの分類には、MobileNet-v2 ネットワークが適しています。他のネットワークよりも高速で、フットプリント (必要とするメモリ) を抑えながら、より高い精度が得られるためです。特徴量抽出層を再利用し、分類層を置き換えます。
ディープ ネットワーク デザイナー アプリを使用することで、以下のプロセスをすべて完了できます。
- ドラッグ アンド ドロップで新しい層を追加し、新しい接続を作成する。
- 層プロパティを表示して編集する。
- ネットワークを解析して、その構造が正しく定義されていることを確認する。
- 画像データをインポートし、拡張オプションを選択する。
- 学習の進捗状況を可視化してモニタリングする。
- ネットワークの精度を評価するためのプロットを生成する。
ネットワーク パフォーマンスの評価
このモデルによって画像の正誤分類が行われた後に、その正確性を調べる方法のひとつとして、混同行列を生成する方法があります。
混同行列は、クラスごとのモデルの結果をまとめたもので、クラス間の混同の有無を示すことができます。
ここでは、40 個のテストサンプル (正 20 個、誤 20 個) のすべてについて、真のクラスが予測されたクラスと一致していることが分かります。誤分類がある場合や、クラスが 2 つ以上ある場合に、混同行列を使用すると多くの洞察が得られることがよくあります。
混同行列によって、ネットワークの性能に関する問題の一部は解消されますが、すべての問題が解決されるわけではありません。モデルで実際に正しい特徴量が分類されていることはどのように確認できるでしょうか。また、このネットワークはどのような仕組みになっているのでしょうか。
ディープニューラルネットワークは、かつては「ブラックボックス」であると考えられていて、なぜそのように予測したのかに関する洞察はほとんど得られませんでした。
説明可能な AI 技術 ((CAM(クラス活性化マッピング) やGrad-CAM(勾配を用いたクラス活性化マッピング) など) では、CNN の予測を視覚的に得ることができます。
CAM (クラス活性化マッピング)
CAM では、ネットワークが分類に使用した入力画像の部分を強調表示するヒートマップが生成されます。その結果から、正しい予測を強化したり、ネットワークが「混同した」理由を確認したりできます。
例として、CAM による可視化を 2 通りご紹介します。
マウスは、マウスとして明確に識別されています。
ネットワークは、時計があることで、コーヒーのマグカップをバックルと誤分類しています。
左の図では、マウスがあることで、モデルはこれがキーボードの画像であると判断しやすくなります。これが、この分類を行う上で有効な方法かどうかは不明です。
右の図では、ネットワークがコーヒーカップの画像をバックルとして分類しています。ここで、ネットワークは、コーヒーカップではなく、時計のリストバンドを検出し、焦点を合わせています。モデルとグラウンド トゥルースはどちらが正しいのでしょうか。
実際には正常に機能しているのに、間違った特徴量に基づいて予測していると、そのモデルが適切ではないと感じるかもしれません。学習セットにおけるバイアスを修正するためは、重視させたいシナリオに寄与するデータを収集します。
六角ナットモデルには CAM を使用します。左がキャプチャ画像、右が分類結果および CAM の結果です。
ナットが不良品と分類されると、ネットワークは顕著な部位をハイライトします。その結果、画像が適切に分類されていることが分かるだけでなく、モデルがそう判断した理由も知ることができます。