3

笑顔検出システムを設計しました。このシステムは深層学習に基づいており、MatConvnet によって実装されています。最後のレイヤーはシステムの出力で、人の笑顔の量に応じて 10 個の出力があります。これらの 10 個の出力を回帰層で 1 から 10 の範囲の数値出力に変換したいと考えています。MatConvNet でこれを行うにはどうすればよいですか。ありがとう

4

1 に答える 1

0

回帰層の場合、CNNの最終層 (通常はsoftmaxまたは) を回帰用の独自の層に置き換える必要があります。softmaxloss

MatConvNet で独自のレイヤーを定義するには、次のものが必要です。

  1. 損失関数
  2. この損失関数の勾配

回帰損失関数の一般的な選択肢は二乗誤差損失です。softmaxlossがMatConvNet でどのように実装されているか、および でどのように呼び出されているかを確認する必要がありますexamples/cnn_train.m。詳細については、MatConvNet のドキュメントと、二乗損失のバックプロパゲーションに関する短いチュートリアル (こちら) を参照してください。

提案: これはあなたの質問への回答ではありません。ただし、問題がある場合は、回帰のために CNN 全体をトレーニングするよりも、10 個の出力分類をスコアに変換する方が簡単です。

10 クラスの笑顔に 1 から 10 までの数字を割り当てます。CNN は、入力画像のこれらすべてのクラスの事後確率 P(1...10) を提供します。クラス ラベル ( 1*P(1) + 2*P(2) + ....) の加重和を取るだけで、笑顔の量の実数値を取得できます。

于 2015-04-30T20:38:50.470 に答える