見出し画像

画像認識モデルの可視化

1、前書き

IT分野の開発者は、一番最初に「Hello World」を表示するソースコードから学ぶでしょう。そこに物事の始まりとの意味合いが含まれています。

同様に、AI分野の研究者は、最初に数字画像認識モデルを学ぶでしょう。
0~9の数字画像(MNISTデータセット)を使い、深層学習モデルの作成を練習します。

2、行ったこと

0~9の数字画像(MNISTデータセット)を教師データとして、Kerasで深層学習モデルを作成しました。

MNISTサンプル画像(wikipediaから引用)

できたモデルが内部の高次元空間で持つ画像情報を2次元空間に写像し、可視化の画像を作成しました。

※1、Kerasとは
   pythonの深層学習ライブラリである。
   手軽に利用できることが有名。
   https://keras.io/ja/
※2、MNISTとは
   MNISTは0~9の数字画像のデータセットである。
   28×28の小さい画像で、合計7万枚。
   http://yann.lecun.com/exdb/mnist/

3、モデルの概要

28×28の画像のピクセル数は784であるため、モデルの入力データは784次元です。

下記の構成でモデルを実装し、20回学習を行い、最終精度は99.3%に達しました。高い精度とは言えないが、可視化には十分であるでしょう。

最後、学習に使っていないテスト用の1万枚画像をモデルに入力し、出力層の入力データ(128次元)を可視化します。
128次元のデータはそのまま表示できないため、PCAで次元圧縮し、2次元にします。その結果、1枚の画像は1つの点になります。数字は点の色で分けます。
ご覧の通り、同じ数字の画像は概ね集まっていて、異なる数字の画像は大体離れています。99.3%という精度が実感できているかと思います。

4、最後

数字画像認識は比較的にシンプルな問題であるため、可視化の結果は非常に分かりやすいと思います。
でも、実際のデータなかなかこうはなりません。

本記事は以前AIを勉強していた際にに作ったものを簡単に紹介しました。
可視化の結果に重点を置き、詳しい実装内容を省きました。

今後、AIを含む最新最先端の技術内容を紹介していきたいと思います。
どうもよろしくお願いします!

この記事が気に入ったらサポートをしてみませんか?