CNNと画像を用いた分類

何やら事前学習ありなしでの結果をまとめているとのことで、こちら論文を読んでみた。

”Convolutional Neural Networks for Histopathology for Histopathology Image Classification: Training vs. Using Pre-Trained Networks”

概要

 医療の画像データセットを基にして、事前学習したCNNと学習していないCNNにおいて特徴量を抽出した。用いた画像セットは”Kimia Path24”という27,005枚、24クラスの組織病理学分野のパッチを用意した。テストでは、1,325枚のデータで評価を行った。

 その結果はスクラッチ(VGG16モデル)よりも事前学習している方が断然学習率が高いことが判明した。(ちなみに"Fine-tuning"で用いたモデルは”VGG16”、"Inception"<keras, Python使用>)

 

(Ⅰ)イントロダクション

 ・時代背景、主に急速に技術が発展したことでスキャナーが顕微鏡に取って代わった。

ディープラーニングは認識、分類分野において大きな可能性を持っている。

・この論文ではスクラッチ(VGG16モデル)、特徴抽出器、"fine-tuning"の三つの方法をデータセットで研究を行った。

 

(Ⅱ)方法

A(Fine-tuning protocols)

 VGG16モデルでは最後の畳み込み層(block5)を残して、他の層をフリーズさせた

InceptionV3では畳み込み層の最下層二層を残して、フリーズさせ再学習させた

 最適化は再学習した内容を破壊する可能性があるので、学習率の低いものを選んだ。

kerasのデータ拡張APIを使用して、データを余分に増やしたうえで、バッチサイズは32に設定。エポック200以降はグラフの変動が観測できなかったとのこと。

 

B(特徴抽出機として事前学習させた場合のCNN)

 省略

C(分類器としてチューニングされたCNN)

 Kimiaのデータセットでファインチューニングされたネットワークである。畳み込み層と全結合層を分離させて、新しい全結合層を付け直した。(例えば、VGG16の全結合層をそのまま使うと、ImageNetの1000クラスしか分類しないため、それ以外のものを分別できない。新たに全結合層を加えることで1000クラス以外の分類が可能となる)

VGG16での使用と構造

Dense256 ReLu layer

softmax classification layer

 

 

Inceptionでの使用

Dense1024 Relu layer

softmax classification layer

 

(Ⅲ)結果

・スクラッチと特徴抽出機として用いたCNNの精度がほぼ同じ結果

・全結合層だけ付け加えたCが一番良い結果

・VGG16よりもInceptionV3のほうが好成績であること。

 

(Ⅳ)議論

結果よりわかったこと

・医学的でない画像で訓練されたネットワークはスクラッチによるネットワーク学習率に匹敵する(ImageNetの学習データ量が影響して、学習率が低下しなかったのか?…すいません、このところまだ理解できていません💦)

 

・ファインチューニングしたVGG16は事前学習ありなしで精度向上は見受けられなかったが、(モデル比較対象のInceptonでは、チューニングを行った結果大きく正解率が上昇した)

f:id:JedenTag:20171106191344p:plain

引用.

https://arxiv.org/pdf/1710.05726.pdf

 +α

 ・論文中にoptimizerの学習率を大小変えて行ったが大きく変わらなかったとのこと。

論文引用

Brady Kieffer, Morteza Babaie  Shivam Kalra  ,  and H.R.Tizhoosh  https://arxiv.org/pdf/1710.05726.pdf