AlexNetを利用​した転移学習における​特徴抽出につきまして

10 views (last 30 days)
ssk
ssk on 30 May 2019
Commented: ssk on 31 May 2019
機械学習初心者です。特徴抽出の概念でつまづいているところがございましてご質問いたしました。
下記リンクがAlexnetを利用した転移学習のリンクとなります。
本チュートリアルでは、まず、事前に訓練されたAlexnetを入力画像に適用し、次にCNN出力(特徴)をネットワーク層から抽出して、抽出された特徴は新しいパターン分類器を訓練するために使用されるかと思います。
Alexnetのもともとのデータセット(ImageNet)に含まれていない医用画像のデータセット(たとえば細胞や人間の臓器など)で新しいパターン分類器を作りたい場合、この方法を用いてもよろしいでしょうか。
また、仮に医用画像のデータセットが100枚だとすると、既存のImageNet 1,400万枚+100枚 = 1,400万100枚の特徴が抽出されるのでしょうか。それとも、100枚は分類にのみ使われ、特徴として抽出されるのはあくまでImageNetのみでしょうか。
あわせて、本チュートリアルではfine-tuningは行っていないという認識でよろしいでしょうか。
どうぞよろしくお願いいたします。

Accepted Answer

Kenta
Kenta on 31 May 2019
リンクを確認しましたが、これがfine-tuningと呼ばれるものです。英語版を見るとそのフレーズを確認できます。
Alexnetをインポートした結果、ネットワーク構造や、重みなどの条件はAlexnetのものが採用されますが、このように学習を行うと、重みやバイアスは更新されます。そのため、imagenetをベースにしたものをそちらの手元のデータで微調整する形になります。
imagenetに医用画像は含まれていないのですが、ゼロから自前で作るよりはよい精度が見込まれるかと思います。医用画像用に少しアレンジを加えるのが望ましいですが、少し作りこみが必要かもしれません。
  3 Comments
Kenta
Kenta on 31 May 2019
特徴抽出+SVMというのと、このリンクにあるように、ネットワーク構造などをインポートして、そのあとは通常通りCNNの学習を行うものがあります。おそらく、おっしゃっているのは、前者のほうで、またちがうドキュメントにあります。今回の例はAlexnetに、自分のタスク、例えば5つの分類問題用の全結合層などをくっつけて学習を行うものです。こちらは、バックプロパゲーションなどで通常のCNNのような学習を行うので、重みが更新されていきます。よって、この場合分類されているのは医用画像で、imagenetのデータでalexnetを構成した、ということと思います。
layersやそれに相当する変数をクリックしていけば、重みにアクセスできます。学習後に見てみると変わっていることがわかると思います。
ssk
ssk on 31 May 2019
前者と後者を混同しておりました。重みの更新につきましてもご示唆を頂きありがとうございました!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!