ソフトマックス層で2​番目に大きな確率を取​るラベルを確認する方​法はありますか?

5 vues (au cours des 30 derniers jours)
Tamu
Tamu le 2 Oct 2019
Commenté : Kazuya le 3 Oct 2019
分類用の畳み込みニューラルネットワークに関する質問になります。
入力データに対してソフトマックス層では最も大きな確率をとるラベルを出力するようになっていると思うのですが、
2番目に大きな確率をとるラベルを確認する方法はありますでしょうか。
(例)数字8のイメージデータに対して、ソフトマックス層でラベル「8」を出力した時に2番目に大きな確率をとるラベル「9」を確認する。
ご教示ください。
よろしくお願いいたします。

Réponse acceptée

Kazuya
Kazuya le 2 Oct 2019
ラベルの「確認」がどんな処理か分かりませんが、泥臭い方法でよければ思いつきます。
まず提示いただいた例題ですと
最後の
YPred = classify(net,imdsValidation);
の代わりに
scores = activations(net,imdsValidation,'softmax','OutputAs','columns');
と実行すれば各ラベル毎の確率にあたるモノを出力できます。
ここから例えば
[sortedScore,I] = sort(scores,'descend');
とソートします。
第二出力 I を追うことで、2番目に数値が高かったラベルを認識できます。
例えば
labels = net.Layers(15).Classes;
firstPred = labels(I(1,:)); % 1番目ラベル
secondPred = labels(I(2,:)); % 2番目のラベル
といった具合です。
isequal(firstPred,YPred)
とすれば
YPred = classify(net,imdsValidation);
で計算された YPred と firstPred が同値であることが確認できます。
  2 commentaires
Tamu
Tamu le 3 Oct 2019
教えて頂いた方法で確認できました。
ご丁寧に教えていただきありがとうございます!
Kazuya
Kazuya le 3 Oct 2019
よかったです!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur イメージを使用した深層学習 dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!