ディープラーニング

ディープラーニングによるMNISTの認識をGrad-CAMで可視化してみた

投稿日:

スポンサードリンク

はじめに

ディープラーニングをはじめとしたAI技術が流行していますが、中身がブラックボックスのためAIの判定結果に対してその理由を知るのが難しく、いまいち信頼性に欠けるという問題があるようです。

「AIの説明責任」って何だろう? | 日経xTECH

ディープラーニング自体は重みとバイアスのパラメータで構成されていてそれらの数値は確認できますが、それを見たところで何が起きているのか知るのはとても難しいと思います。しかし、いくつか説明できそうな手法があるため今回そのうちの一つのGrad-CAMと呼ばれる手法を使ってMNISTの手書き数字画像認識の際はどこに着目しているのか可視化した結果を紹介します。

流れは以下の通りです。

VGG16でMNISTを学習

学習済みモデル(.h5)作成

Grad-CAMによるヒートマップ作成

また、環境は以下の通りです

OS:Windows10
GPU:Geforce GTX 1080Ti
Pythonライブラリ:keras

今回いくつかネット上の記事も参考にさせていただきましたが、「PythonとKerasによるディープラーニング」にVGG16のファインチューニングやGrad-CAMについてのサンプルコードと解説を読んで勉強しながら作成しました。

PythonとKerasによるディープラーニング
Francois Chollet
マイナビ出版 (2018-05-28)
売り上げランキング: 25,520

VGG16のファインチューニングでMNISTを学習

まずはMNISTの0~9の数字画像データをVGG16のファインチューニングで学習させました。本当はMNISTの小さい画像サイズに合わせて逆伝播できるようにGrad-CAMに手を加える必要がある(と思う)のですが、ちゃんとカスタマイズするやり方がわからなかったため今回は入力画像サイズが224ピクセル×224ピクセルのVGG16で実施しました。その関係でメモリが足らなくなったため、それぞれの数字画像は元の数万枚よりは少ない枚数で実施しましたが、精度は90%以上の高い正解率が出たのでその学習済みモデルを使ってGrad-CAMをすることにしました。


正解率のグラフ


損失率のグラフ

MNISTは0~9の手書き数字画像の機械学習用画像データセットで、各数字は28ピクセル×28ピクセルの画像が数万枚入っています。これらを使って手書き数字が0~9のどれなのか当てる認識器を作成することができます。MNISTはディープラーニングのライブラリにダウンロードする関数が用意されているくらいメジャーなデータセットです。

機械学習で便利な画像データセット「MNIST」を丁寧に解説!

Grad-CAMによるヒートマップ作成

Grad-CAMと呼ばれるAIのヒートマップによる可視化手法を使用しました。このロジックではVGG16の認識において認識結果を逆伝播したときの最終層のCNNの出力をもとにヒートマップを作成するようです。詳細は色々解説してくださっているサイトや先ほどの書籍をご参照ください。

kerasでvgg16とGrad-CAMの実装による異常検出および異常箇所の可視化

深層学習は画像のどこを見ている!? CNNで「お好み焼き」と「ピザ」の違いを検証

MNISTのヒートマップ結果

VGG16での各数字画像認識時のヒートマップは以下のようになりました。

これらはそれぞれの数字が正しく認識されたときのヒートマップを表しています。各数字の結果には多少ばらつきがあるもののおおむねこのような傾向が見られました。「0」、「3」、「6」、「7」、「8」は数字の形状に着目し、「2」、「4」、「5」は終端やコーナーなどの数字の特徴的な個所に着目、「1」、「9」はなぜか数字の周りに着目していると考えらえる結果となりました。

これを踏まえると、例えば「2」であれば書き始めの個所と底辺の横線が結構大事なんだなということがわかります。

ただし、一部の結果では最初に示した結果と反転したようなものも出てきていました。

これらの数字では強弱を反転させて両方の観点から確認しているのではないかというような気がしますが、はっきりとしたことはこれ以上わかりませんでした。

まとめ

Grad-CAMを使ってMNISTの数字データをVGG16のファインチューニング結果の可視化を試しました。おおむね認識方法の傾向はつかめましたが、もう少し色々な観点で見ていかないとはっきりとわからないのではないかと思いました。

スポンサードリンク

-ディープラーニング

Copyright© めめんと , 2020 All Rights Reserved Powered by AFFINGER5.