Angenommen, ich habe ein einzelnes Ausgangssigmoid (tanh), das einen Ausgangsbereich im Bereich von [-1, +1] erzeugt. Ist es richtig, diese Ausgabe als Vertrauensmaß für die Vorhersage der Ausgabe zu betrachten? Der Ausgabewert würde zwischen -1 und +1 liegen, aber obwohl ich eine hohe Genauigkeit habe, sehe ich, dass die Werte ziemlich nahe bei Null liegen.
Daher mache ich mir Sorgen, dass die Anzeige des Ausgabewerts * 100.0 mit so niedrigen Zahlen möglicherweise nicht gut ist. Auf der anderen Seite kann ich einen hohen Rückruf und eine hohe Präzision des Validierungssatzes erzielen.
machine-learning
classification
neural-networks
deep-learning
isotonic
Londoner Typ
quelle
quelle
Antworten:
Es ist vernünftig , den Output-Score als Konfidenzmaß zu betrachten, und dies wird häufig durchgeführt. Dies bedeutet jedoch nicht, dass Sie dies tun müssen , wenn es nicht gut zu funktionieren scheint, oder insbesondere, weil Ihr Netzwerk keine Werte über den gesamten theoretischen Bereich des Netzwerks ausgibt ist nur über alle seine Entscheidungen verwaschen.[ - 1 , 1 ]
Eine Sache, die Sie in Betracht ziehen könnten, wenn Sie mit der Leistung des Modells zufrieden sind und nur angemessene Konfidenzwerte für die Ausgabe wünschen, ist zu versuchen, die Wahrscheinlichkeit zu ermitteln, mit der Ihr Modell bei einem bestimmten Ausgabewert korrekt ist. Sie können dies häufig tun, indem Sie eine Kreuzvalidierung durchführen, um viele Paare (Ausgabewert, echtes Label) zu erhalten, und dann die Platt-Skalierung verwenden oder eine isotonische Regression ausführen , um eine Funktionszuordnung von den Ausgabewerten zur Wahrscheinlichkeit des Positivs zu lernen.
quelle
Im Fall eines neuronalen Netzwerks mit Klassifizierungs-Feed-Forward, vorausgesetzt, Ihre Ausgabeaktivierung ist ein Sigmoid[ 0 , 1 ] dann haben Sie tatsächlich eine Binomialverteilung. Wenn Sie ein einzelnes Ausgangsneuron haben, erhalten Sie eine Bernoulli-Verteilung. Dies ist ein Sonderfall der Binomialverteilung mitn = 1 . ( https://en.wikipedia.org/wiki/Bernoulli_distribution )
Wie Sie im Wiki sehen können, ist die Varianz einer Vorhersage einer Bernoulli-Verteilung gegeben durchv a r = p ( 1 - p ) Daher können Sie sagen, dass Sie umso sicherer sind, je höher die Vorhersage ist, je weniger Varianz Sie haben. Auf diesem Gebiet wird derzeit geforscht, da dies keine gute Schätzung des Vertrauens darstellt.
Bei kontinuierlichen Daten können Sie einen anderen Ansatz verfolgen, der kürzlich im Bereich der Bayes'schen Optimierung eingeführt wurde und zu Ihrem Fall passt ( http://arxiv.org/abs/1502.05700 ). Die Autoren schlagen vor, Ihr Netzwerk anhand des mittleren quadratischen Fehlers einer linearen Ausgabeschicht (nach Ihrer nichtlinearen Aktivierung tanh oder sigmoid) zu trainieren und anschließend ein Bayes'sches lineares Regressionsmodell zu trainieren. Auf diese Weise können Sie geeignete Bayes'sche Konfidenzintervalle festlegen, und es ist empirisch erwiesen, dass sie funktionieren.
Insbesondere wäre die Implementierung in Torch7:
Schließlich passen die Autoren eine Bayes'sche lineare Regression an die vorhergesagten Ausgaben gegen die Zielwerte an und erhalten die Konfidenzintervalle. Ich glaube, dies würde auch sehr gut zu Ihrem Fall passen, wenn Sie nur die Netzwerkarchitektur ändern.
quelle