笑顔検出システムを設計しました。このシステムは深層学習に基づいており、MatConvnet によって実装されています。最後のレイヤーはシステムの出力で、人の笑顔の量に応じて 10 個の出力があります。これらの 10 個の出力を回帰層で 1 から 10 の範囲の数値出力に変換したいと考えています。MatConvNet でこれを行うにはどうすればよいですか。ありがとう
1862 次
1 に答える
0
回帰層の場合、CNNの最終層 (通常はsoftmax
または) を回帰用の独自の層に置き換える必要があります。softmaxloss
MatConvNet で独自のレイヤーを定義するには、次のものが必要です。
- 損失関数
- この損失関数の勾配
回帰損失関数の一般的な選択肢は二乗誤差損失です。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 に答える