応用生物学基礎実験
2018.6.19

畳み込みニューラルネットワーク(CNN)とその利用

-学生生活写真のパターン解析-

東京大学大学院農学生命科学研究科 大森宏


CNNの1000クラス分類を用いた写真のMDS配置

CNNの画像認識能力

 先週の実験では、 VGG16とInceptionResNetVer.2の2種類のCNNの画像認識能力を学生生活写真を用いて比較した。 その結果、画像認識能力においては、 ほぼすべての学生がInceptionResNetVer.2の方が認識能力が高いとした。これより、VGG16より InceptionResNetVer.2の方が「賢い」と考えられる。

CNNによるMDS配置

 CNNによる1000クラス分類は確信度をたすと1になるので、1000クラスに対する確率分布と みなせる。確率分布間の距離としてマンハッタン距離を用い、写真間の距離行列を求めた。 この距離行列からMDSにより写真の配置を出し、比較した。
 この時、人間の視覚的分類能力を利用して、数十人の学生に 類似写真を分類してもらう作業 をしてもらい、この分類結果を用いて写真間類似度を計測した(写真間類似度は2つの写真 を似ていると感じた人数の割合で測る)データから得られたMDS配置との比較も行った。
 MDSパターンAが、人間による視覚的類似度によるもので、MDSパターンBがVGG16による結果、 MDSパターンCがInceptionResNetVer.2による結果であった。A、B、Cの配置のうちどれが最も 写真の類似関係を表現した配置になっているか尋ねたところ、パターンAが12人、パターンBが15人、 パターンCが1名であり、AとBが拮抗していたがパターンBに軍配が上がった。これは、人間の視覚的 分類能力よりCNNの方が「正しい」ことを示しているのかも知れない。
課題1
InceptionResNetVer.2の方がVGG16より画像認識能力が「高い」のに、画像間の類似度の表現では VGG16の方が「優れていた」理由を考察せよ。また、人間の視覚的分類よりVGG16によるMDS配置の方が「良く」 見える理由を考察せよ。

学生の興味・関心の変化

 現在の学生の興味・関心を調べるため「学生生活写真」を送ってもらった。現在、14名から 47枚の写真が集まった。 ご協力ありがとうございました。まだ提出していない学生も募集中なので、ふるって提出してください。 また、提出済みの学生も新たに提出しても構いません。写真の枚数が多いほど興味・関心を正しく 分析することができます。
 

VGG16、1000クラス分類データダウンロード
InceptionResNetVer.2、1000クラス分類データダウンロード

Rスクリプト

##################################
top5 <- function(obj, j, new=F){
    if(new)	j <- j - 200
    o <- order(obj[j,], decreasing=T)
    obj[j,o[1:5]]
}
####################################
classname <- read.table("classname.csv")	# 1000クラスの名前
# 学生生活写真1000クラス分類結果読み込み
# VGG16
life18_vgg16 <- t(read.table("life18_vgg16.txt", sep=","))	
dim(life18_vgg16) 
# InceptionResNetVer.2
life18_incepresnet <- t(read.table("life18_inceptionresnet.txt", sep=","))

colnames(life18_vgg16) <- colnames(life18_incepresnet) <- classname[,1]
rownames(life18_vgg16) <- rownames(life18_incepresnet) <- 201:247

j=229
top5(life18_vgg16, j, new=T)
top5(life18_incepresnet, j, new=T)

# VGG16による1000クラス分類による写真間の距離
vgg16.Dist <- as.matrix(dist(rbind(life_vgg16,life18_vgg16), method="manhattan", diag=T, upper=T))
# 写真間距離からの多次元尺度法(MDS)
vgg16.cmd <- cmdscale(vgg16.Dist, k=4, eig=T, add=T) 
colnames(vgg16.cmd$points) <- paste("MDS", 1:4, sep="")
# 写真MDS配置
com <- c(1,2)	# MDS1, MDS2 軸で表示
colnames(vgg16.cmd$points) <- paste("MDS", 1:4, sep="")
x <- vgg16.cmd$points
plot(x[,com], type="n")
text(x[1:200,com], rownames(x)[1:200], cex=0.8)
text(x[201:247,com], rownames(x)[201:247], cex=0.8, col="red")
life

MDS配置(クリックするとより詳しいのが出ます。写真動かせます。) 赤枠の写真が今年の学生の写真
課題2
5年前の学生生活写真と今年の写真で類似している点と異なっている点を考察せよ。

Copyright (C) 2009, Hiroshi Omori. 最終更新日:2018年 6月19日