AIプログラミング

猫の動画を対象にディープラーニングの特徴量を可視化してみる

投稿日:

猫の動画を対象にディープラーニングの特徴量を可視化してみる

畳み込みニューラルネットワーク(CNN)を使用すると、「猫」や「犬」などの画像認識が非常に簡単にできてしまいます。しかしながらその中身がブラックボックスとなっているため、どのように「猫」や「犬」などの種別を切り分けているか不思議に思う人が多いのではないでしょうか?そこで今回は実際の動画を使用して、AIがどのように区別しているかを可視化してみます。以前の記事ではVGG16モデルを使用して各レイヤの特徴を可視化してみました。今回はその動画版です。

VGG16ネットワークの各レイヤの特徴を可視化する

この記事では「ライオン」、「ダチョウ」、「ペンギン」の3枚の写真を用意し、VGG16ネットワークのCNNでの各レイヤにおいて、どの部分に強く反応しているかヒートマップに適用させることで、人間の目にも分かるように可視化しようと試みた記事でした。

output

この結果として「ライオン」の場合は大部分が顔、「ダチョウ」の場合は首と足、「ペンギン」についてはお腹の部分が重要視されていました。そこで、今回は別々の写真を用いるのではなく、1つの動画をそのまま可視化させてみようかと思います。

対象の動画

変換対象の動画は次のような動画です。最近買い始めたシャム猫です。

 

可視化する手法として今回もGrad-CAMの手法を用いています。Grad-CAMの手法を用いることで、画像のどの部分に反応しているかが視覚的に分かるようになります。

 

Grad-CAM

Grad-CAMの詳細は論文や他サイトで詳しく説明しているものがあるので、そちらを参照してください。

変換対象モデル

可視化対象のレイヤはVGG16モデルのblock5_conv3の部分です。VGG16モデルは名前通り16層から成り立っており最後のレイヤの畳み込み層(Conv2D)に対して可視化を行っています。

可視化した動画

では実際に可視化した動画です。

ファイルサイズの関係上、途中からになってしまいましたが、先ほどの動画を可視化しています。横向きの場合は鼻や口の部分について強く反応しており、前向きの場合は目より上の部分(おでこ)の部分に強く反応しているように見ます。しかし、よく見ると顔の模様に強く反応しているケースが多いです。

おそらく、VGG16のモデルでは「猫」というクラスだけではなく、「猫の種類」まで分類しているためかと思われます。しかし、一つの動画だけではなんとも言えないので、他の動画についても順次試していきたいと思います。

それにしても、ヒートマップで可視化させた動画は不思議な動画ですね。芸術分野でも何か応用が出来そうな。そんな感じがしてきます。

 

 

-AIプログラミング
-, , , , , , ,

Copyright© AI人工知能テクノロジー , 2019 All Rights Reserved.