Bayesianische neuronale Netzwerke (BNNs) sind eine Erweiterung von Standardnetzwerken durch posteriore Inferenz, um Überanpassung zu kontrollieren. Aus einer übergeordneten Perspektive verwendet der bayessche Ansatz eine statistische Methodik, bei der allen Größen – einschließlich der Modellparameter (Gewichte und Bias in neuronalen Netzwerken) – Wahrscheinlichkeitsverteilungen zugeordnet werden. In Programmiersprachen liefern Variablen, die auf einen bestimmten Wert gesetzt wurden, jedes Mal das gleiche Ergebnis, wenn auf sie zugegriffen wird. Beginnen wir mit der Überarbeitung eines einfachen linearen Modells, das die Ausgabe als gewichtete Summe einer Reihe von Eingabemerkmalen vorhersagt.
Im Vergleich dazu können Sie in der Bayes'schen Welt ähnliche Einheiten haben, die auch als Zufallsvariablen bezeichnet werden. Diese geben jedes Mal, wenn Sie auf sie zugreifen, einen anderen Wert zurück. Die historischen Daten stellen nach der Bayes'schen Methode unser Vorwissen über das Gesamtverhalten dar, wobei jede Variable ihre eigenen statistischen Eigenschaften hat, die im Zeitverlauf variieren. Nehmen wir an, dass X eine Zufallsvariable ist, die die Normalverteilung repräsentiert. Jedes Mal, wenn auf X zugegriffen wird, weist das ausgegebene Ergebnis einen anderen Wert auf. Dieser Prozess, einen neuen Wert aus einer Zufallsvariablen zu erhalten, wird als Stichprobe („Sampling“) bezeichnet. Der resultierende Wert ist abhängig von der zugehörigen Wahrscheinlichkeitsverteilung der Zufallsvariablen. Dies bedeutet, dass man im Parameterraum die Art und Form der gelernten Parameter des neuronalen Netzes ableiten kann. In letzter Zeit hat sich mit dem Aufkommen zahlreicher probabilistische Programmierbibliotheken wie PyMC3, Edward, Stan usw. viel in diesem Bereich getan. Die Bayes'schen Methoden werden in vielen Bereichen eingesetzt: von der Spieleentwicklung bis zur Arzneimittelforschung.
Anstatt eine einzige Antwort auf eine Frage zu berücksichtigen, können Sie mit Bayes'schen Methoden eine ganze Verteilung von Antworten in Betracht ziehen. Mit diesem Ansatz können Sie gut folgende Probleme angehen:
