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

18 views (last 30 days)
ssk
ssk on 12 Mar 2019
Commented: ssk on 13 Mar 2019
プログラミング初心者です。
以下のディレクトリ構造とリンクに基づき、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 Comments
Kenta
Kenta on 12 Mar 2019
alexnetで特徴量抽出をしたあとに、その特徴量をPCAで、ある次元に圧縮したいということでしょうか?できればもっとやりたいことを詳しく書いていただけますか?
ssk
ssk on 12 Mar 2019
私の認識があっているか定かではございませんが、PCAは、データを分析しやすいように再構成し、可能なら次元を下げることで、データの次元が大きすぎると認識精度が悪くなる、次元の呪いという現象を回避するための手法とお伺いしておりますので、alexnetで特徴量抽出の前にデータ全体に主成分分析を行いたいと考えております。

Sign in to comment.

Accepted Answer

Kenta
Kenta on 12 Mar 2019
コメント拝見しました。確かにPCAにより次元圧縮は可能ですが、alexnet等の事前学習済みネットワークで特徴量抽出をして約4000次元ほどに圧縮するほうがうまくいくような気がします。感覚的にはalexnetで畳み込み演算をしたほうがよい結果が得られそうな気がしますが、それはやってみて、という感じでしょうか。
ここにPCAのやり方があるので、参考にしてください。なお、PCAの出力は画像ではないので、alexnet等と併用することはできないです。alexnetで特徴量抽出したあとにPCAをするのかと質問から推察しましたが、それもうまくいくかはやってみないとわかりません。
alexnet, googlenet等でドキュメント通りにやってはあまり良い結果はでませんでしたか?
  5 Comments
Kenta
Kenta on 13 Mar 2019
10点交差検証の平均精度はいくらですか?
この図を見る限りうまくいっているような気がします。
次の段階として枚数を増やすことが望ましいですが、計算時間がかなりかかってしまうんですよね?
'ExecutionEnvironment','parallel',
を学習オプションのときに追加して実行してみてください。
やはりそれでも学習の速度はかわらないでしょうか。
ssk
ssk on 13 Mar 2019
枚数が少ないので過学習している可能性もございますが、精度は75%~100%で推移しています。頂いたコマンドも踏まえ試してみます。本当にありがとうございます!

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!