現在、さまざまな画像記述子で画像を分類する作業を行っています。それらには独自のメトリックがあるため、事前に計算されたカーネルを使用しています。したがって、これらの NxN カーネル行列 (合計 N 個の画像) を考えると、SVM をトレーニングしてテストしたいと考えています。ただし、SVM の使用経験はあまりありません。
しかし、私を混乱させるのは、トレーニングの入力方法です。カーネル MxM (M はトレーニング イメージの数) のサブセットを使用して、M 個の特徴を持つ SVM をトレーニングします。ただし、それを正しく理解していれば、これにより、同様の量の機能を持つテストデータを使用することが制限されます。サイズ MxN のサブカーネルを使用しようとすると、トレーニング中に無限ループが発生し、その結果、テスト時により多くの機能を使用すると悪い結果が得られます。
これにより、同じサイズのトレーニングとテストセットを使用して妥当な結果が得られます。しかし、1 つの画像だけを分類したい場合、またはクラスごとに特定の量の画像を使用してトレーニングし、残りの画像をテストしたい場合、これはまったく機能しません。
トレーニング画像の数と機能の間の依存関係を削除して、任意の数の画像でテストできるようにするにはどうすればよいですか?
私は MATLAB に libsvm を使用しています。カーネルは [0,1] の範囲の距離行列です。