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 v 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:
-- 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.