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

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

サインインしてコメントする。

採用された回答

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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDeep Learning Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!