Filter löschen
Filter löschen

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

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

Akzeptierte Antwort

Kazuya
Kazuya am 2 Okt. 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 Kommentare
Tamu
Tamu am 3 Okt. 2019
教えて頂いた方法で確認できました。
ご丁寧に教えていただきありがとうございます!
Kazuya
Kazuya am 3 Okt. 2019
よかったです!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu イメージを使用した深層学習 finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!