BPを学習ではなくXAI目的で利用する方法:概念埋め込み型XAIモデル「Concept XAI」の仕組み
はじめに
ディープラーニングは高い認識精度を誇る一方で、「Where?(どこを見たか)は分かっても、What?(何を見たのか)が分からない」というブラックボックス問題を抱えています。Grad-CAMなどで注目領域の可視化はできても、その中身がどのような意味を持つ形状なのかを直接デコードする手段はありませんでした。
本記事では、誤差逆伝播法(BP: Backpropagation)を「モデルの重みを学習するため」ではなく、「推論時の判断根拠を可視化・監査するXAI(説明可能なAI)のツール」として利用するアプローチとして、自作したプロトタイプ 「Concept XAI」 の仕組みと、実際に検証して見えてきた考察について紹介します。
※ リポジトリのソースコードや詳細な実行手順は GitHubリポジトリ concept-xai をご参照ください。
🏗️ 仕組み:Concept XAI のアーキテクチャ
従来のディープラーニングは、第1層から任意の自由な特徴をブラックボックスに学習します。これに対し、「Concept XAI」では第1層に「幾何学特徴抽出レイヤー(概念埋め込み層)」を配置し、重みを事前学習後に固定します。
[入力画像: 28x28]
│
▼ (動的パッチ切り出し: unfold)
[第1層: 幾何学特徴抽出レイヤー (事前学習済み・重み固定)]
│ (16〜32次元の空間概念マップ)
▼
[第2層: 空間概念処理ブロック (Spatial Concept Network)]
│
▼
[出力: クラス分類 & XAI自動監査 (Why / Because)]
1. 第1層:幾何学フィルターと概念辞書(事前学習・固定ベース)
あらかじめ定義された10種類の幾何学・トポロジカル概念を抽出するフィルター群を使用します。
- 直線系(4個): 縦線、横線、斜め右上がり、斜め右下がり
- 交差・特殊系(2個): 十字(+)、バツ印(×)
- L字系(4個): L字(左上 / 右上 / 右下 / 左下開き)
🔍 類似手法「CBM(概念ボトルネックモデル)」との違い
本手法と概念的に近い既存の枠組みとして、CBM(Concept Bottleneck Model:概念ボトルネックモデル) が挙げられます。CBMは、入力画像からまず人間が理解できる「概念(例:鳥の羽の色やくちばしの形状など)」の有無を予測するボトルネック層を挟み、その概念の予測値から最終的なクラス分類を行うアプローチです。
本プロトタイプ(Concept XAI)はCBMの思想を継承しつつ、以下の点で独自の工夫を入れています。
- 空間構造(レイアウト)の保持: 一般的なCBMは概念の有無(頻度ベース=バッグ・オブ・コンセプト)を重視しがちですが、本モデルでは 空間概念マップ $(H_{\text{grid}}, W_{\text{grid}})$ として2次元の広がりやストロークのトポロジーをそのまま保持 し、第2層以降でレイアウト学習を行っています。
- BPによる直接的なXAI監査: 概念層を通すだけでなく、推論時の逆伝播勾配を活用して「どの概念が、どのピクセル・位置でどれくらい寄与したか」を自動でマッピング・JSON出力する仕組みを統合しています。
🔍 類似手法「CBM(概念ボトルネックモデル)」との違い本手法と概念的に近い既存の枠組みとして、CBM(Concept Bottleneck Model:概念ボトルネックモデル) が挙げられます。CBMは、入力画像からまず人間が理解できる「概念(例:鳥の羽の色やくちばしの形状など)」の有無を予測するボトルネック層を挟み、その概念の予測値から最終的なクラス分類を行うアプローチです。本プロトタイプ(Concept XAI)はCBMの思想を継承しつつ、以下の点で独自の工夫を入れています。空間構造(レイアウト)の保持: 一般的なCBMは概念の有無(頻度ベース=バッグ・オブ・コンセプト)を重視しがちですが、本モデルでは 空間概念マップ $(H_{\text{grid}}, W_{\text{grid}})$ として2次元の広がりやストロークのトポロジーをそのまま保持 し、第2層以降でレイアウト学習を行っています。BPによる直接的なXAI監査: 概念層を通すだけでなく、推論時の逆伝播勾配を活用して「どの概念が、どのピクセル・位置でどれくらい寄与したか」を自動でマッピング・JSON出力する仕組みを統合しています。
💡 考察:人間が概念を教えるアプローチの意義と限界
本モデルの検証を通じて、「概念を埋め込むことで人間と同等の構造的認知・説明可能性を持たせることは可能か」という点について、以下の重要な示唆が得られました。
1. CNNの「見方」における変化
今回の検証から、元画像をそのまま(概念化せずに)CNNに入力した場合と、あらかじめ幾何学概念に変換してからCNNに入力した場合では、AIの画像の見方(特徴の捉え方)に明らかな変化が出ることが分かりました。概念化を挟むことで、AIは人間と同様のパーツ(直線や角など)を意識した構造的な認識を行うようになります。
この「概念化の有無によるAIの視点の変化」についての詳細な比較や実験結果については、別の記事で改めて詳しくご紹介したいと思います。
2. AIが「局所的パーツの組み合わせ」で文字を認識していることの確認
本手法により可視化を行ったところ、AIは画像をぼんやりと全体で捉えるのではなく、例えば数字の「1」を判定する際に「複数の縦棒ストロークの構成」といった局所的な幾何学パーツの組み合わせを根拠にしていることが確認できました。これは、AIが人間により近い思考プロセスに近い形で判断を下していることを示しています。
3. 古典的手法との優位性の比較(ディープラーニングである必要性)
一方で、幾何学的プリミティブ(直線やL字など)を検出するだけであれば、ディープラーニングの枠組みを使윗ずとも、あらかじめ設計された古典的な画像処理・特徴量抽出手法(ハフ変換やテンプレートマッチングなど)を用いた方が、より高い精度と安定性を実現できるという事実もあります。
4. スケーラビリティの壁(最大の課題)
人間が明示的に「概念(ルールや辞書)」を定義し、AIに教え込んでいくアプローチは、説明可能性を高める上では非常に有効です。しかし、対象とするドメインが医療画像や複雑な実世界データへと多様化・複雑化した際に、人間がすべての概念を定義し続けることはスケーラブルではない(スケール化が極めて難しい)という本質的な限界があります。
まとめ
本プロトタイプでは、BPをXAIの可視化エンジンとして活用し、事前定義した幾何学概念によって「なぜその判断を下したのか」を解釈可能な形で出力することに成功しました。
しかし、人間が手動で概念を教え込むモデルにはスケール上の限界があるため、今後の発展形としては、「AI自身が自律的に有用な概念を獲得・定義しつつ、かつその概念自体が人間にとって解釈可能であるような、より自律的かつ拡張性の高いアプローチ」への昇華が求められます。
実装コードや具体的な手順(CLIメニューの操作方法など)の詳細は、以下のGitHubをご参考ください。
👉 [GitHub Repository Link] https://github.com/mr-eight-8shi/concept-xai/tree/main
