何やら事前学習ありなしでの結果をまとめているとのことで、こちら論文を読んでみた。
”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では、チューニングを行った結果大きく正解率が上昇した)
引用.
+α
・論文中にoptimizerの学習率を大小変えて行ったが大きく変わらなかったとのこと。
論文引用
Brady Kieffer, Morteza Babaie Shivam Kalra , and H.R.Tizhoosh https://arxiv.org/pdf/1710.05726.pdf