Ist es richtig, die Ausgabe des neuronalen Netzwerks als sein Vertrauen in die Vorhersage der Ausgabe zu betrachten?

8

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.

Londoner Typ
quelle
Mit welcher Verlustfunktion trainieren Sie das Netzwerk?
Dougal
Ich benutze eine mittlere Fehlerquadratverlustfunktion
Londoner Typ

Antworten:

8

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.

Dougal
quelle
Könnten Sie bitte ein Papier zitieren, in dem Vorhersagen oder Vorhersagewahrscheinlichkeiten als Konfidenzwert für NN verwendet werden?
Yamini Goel
1
@yaminigoel Es gibt viele. Ein Artikel, der nach dieser Antwort veröffentlicht wurde und sich sehr auf dieses Problem bezieht, ist arxiv.org/abs/1706.04599 .
Dougal
Ich bin mir nicht sicher, ob dieses Papier mein Anliegen anspricht. Es wäre wirklich hilfreich, wenn Sie meine Frage hier beantworten könnten - datascience.stackexchange.com/questions/66817/…
yamini goel
3

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 durch veinr=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:

-- DNGO network
model = nn.Sequential()
model:add(nn.Linear(ninputs,nhidden))
model:add(nn.Tanh())
model:add(nn.Linear(nhidden,nhidden))
model:add(nn.Tanh())
model:add(nn.Linear(nhidden,nhidden))
model:add(nn.Tanh())
model:add(nn.Linear(nhidden,noutputs))

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.

Yannis Assael
quelle
Dies ist eine Möglichkeit, die Ausgabe des Netzwerks zu interpretieren. Beachten Sie jedoch, dass das OP tatsächlich tanh-Aktivierungen spezifiziert hat, die sich in befinden [0,1]]. Das bedeutet nicht, dass das Zuweisen einer Bernoulli-Distribution das "Richtige" oder sogar eine nützliche Art ist, sie zu interpretieren.
Dougal
Tanh- und Sigmoid-Aktivierungsfunktionen haben [- -1,1]] und [0,1]]Ausgaberäume jeweils. Wenn Sie ein Sigmoid verwenden, haben Sie daher Wahrscheinlichkeiten als Ausgaben.
Yannis Assael
2
Wenn Sie eine S - förmige Aktivierung verwenden zu können, kann die Ausgabe als Wahrscheinlichkeit interpretieren. Die Behauptung, dass es sich daher um eine Wahrscheinlichkeit handelt und als solche analysiert werden muss , ist jedoch irgendwie lächerlich. Wenn Sie ein neuronales Netzwerk mit MSE-Verlust trainieren, gibt es nichts, was die Zahl dazu drängt, sich in irgendeiner Weise wie eine Wahrscheinlichkeit zu verhalten. Daher ist es nicht besonders nützlich, darüber zu diskutieren, als wäre es eine Wahrscheinlichkeit.
Dougal
Wenn Sie eine Klassifizierung durchführen, würden Sie gegen ein Kreuzentropiekriterium trainieren, bei dem die Wahrscheinlichkeit sinnvoll wäre.
Yannis Assael
2
Einverstanden im Fall von Cross-Entropy-Zielen, obwohl dies hier nicht verwendet wird.
Dougal