画像分類(class​ification)​において主成分分析(​PCA)を導入するに​は

プログラミング初心者です。
以下のディレクトリ構造とリンクに基づき、Alexnetの転移学習を利用した画像識別器を作成し、主成分分析(PCA)を併せて加えたいと考えております。
どうぞよろしくお願いいたします。
ディレクトリ構造:
main
-- a
-- image.dcm(thousands of dicom file)
 -- b
  -- image.dcm(thousands of dicom file)
 -- c
  -- image.dcm(thousands of dicom file)
-- d
  -- image.dcm(thousands of dicom file)
ソースコード:
%path = current directory
currentdirectory = pwd;
categories = {'a', 'b', 'c','d'};
%Create an ImageDatastore to help you manage the data.
imds = imageDatastore(fullfile(currentdirectory, categories),'IncludeSubfolders',true,'FileExtensions','.dcm','LabelSource', 'foldernames','ReadFcn',@dicomread);

2 Commenti

Kenta
Kenta il 12 Mar 2019
alexnetで特徴量抽出をしたあとに、その特徴量をPCAで、ある次元に圧縮したいということでしょうか?できればもっとやりたいことを詳しく書いていただけますか?
ssk
ssk il 12 Mar 2019
私の認識があっているか定かではございませんが、PCAは、データを分析しやすいように再構成し、可能なら次元を下げることで、データの次元が大きすぎると認識精度が悪くなる、次元の呪いという現象を回避するための手法とお伺いしておりますので、alexnetで特徴量抽出の前にデータ全体に主成分分析を行いたいと考えております。

Accedi per commentare.

 Risposta accettata

Kenta
Kenta il 12 Mar 2019

3 voti

コメント拝見しました。確かにPCAにより次元圧縮は可能ですが、alexnet等の事前学習済みネットワークで特徴量抽出をして約4000次元ほどに圧縮するほうがうまくいくような気がします。感覚的にはalexnetで畳み込み演算をしたほうがよい結果が得られそうな気がしますが、それはやってみて、という感じでしょうか。
ここにPCAのやり方があるので、参考にしてください。なお、PCAの出力は画像ではないので、alexnet等と併用することはできないです。alexnetで特徴量抽出したあとにPCAをするのかと質問から推察しましたが、それもうまくいくかはやってみないとわかりません。
alexnet, googlenet等でドキュメント通りにやってはあまり良い結果はでませんでしたか?

5 Commenti

ssk
ssk il 12 Mar 2019
PCAの出力は画像ではないので、alexnet等と併用することはできない旨、ご回答いただきありがとうございます。ドキュメントどおりにやってみてやっと良い結果を出せるようになりましたが、よりよい精度を出すために何か新しい方法を追加できたらと思いましてご質問いたしました。
PCAにこだわらず、様々な方法で高精度を出せるよう試したいと思いますが、何かご示唆はございますでしょうか。
Kenta
Kenta il 12 Mar 2019
ちなみに何種類の分類で精度はいくらくらいでしたか?交差検証もやってみました?
画像のなかでもどんなデータをどんな形で入力していて、どんな学習曲線を描くのかなど、いろいろ知っておかないとあまりアイデアは浮かびません。また機会がありましたら、詳しい状況を教えてください。
ssk
ssk il 12 Mar 2019
4種類のDICOMファイルの分類で、交差検証も10-foldで試してみました。私のPCスペックの関係で少ないイメージ数(各ラベル:10枚)でまずは試しています。ご参考までにトレーニング結果のグラフを添付いたします。
スクリーンショット 2019-03-13 01.57.44.png
スクリーンショット 2019-03-13 01.55.50.png
Kenta
Kenta il 13 Mar 2019
10点交差検証の平均精度はいくらですか?
この図を見る限りうまくいっているような気がします。
次の段階として枚数を増やすことが望ましいですが、計算時間がかなりかかってしまうんですよね?
'ExecutionEnvironment','parallel',
を学習オプションのときに追加して実行してみてください。
やはりそれでも学習の速度はかわらないでしょうか。
ssk
ssk il 13 Mar 2019
枚数が少ないので過学習している可能性もございますが、精度は75%~100%で推移しています。頂いたコマンドも踏まえ試してみます。本当にありがとうございます!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Deep Learning Toolbox in Centro assistenza e File Exchange

Richiesto:

ssk
il 12 Mar 2019

Commentato:

ssk
il 13 Mar 2019

Community Treasure Hunt

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

Start Hunting!