Le reti neurali bayesiane (BNNs) si riferiscono all'estensione delle reti standard con l'inferenza posteriore per controllare l'overfitting. Da una prospettiva più ampia, l'approccio bayesiano utilizza la metodologia statistica in modo che tutto abbia una distribuzione di probabilità associata, compresi i parametri del modello (pesi e bias nelle reti neurali). Nei linguaggi di programmazione, le variabili che possono assumere un valore specifico produrranno lo stesso risultato ogni volta che si accede a quella variabile specifica. Iniziamo con la revisione di un semplice modello lineare, che prevederà l'output tramite la somma ponderata di una serie di caratteristiche di input.
In confronto, nel mondo bayesiano possiamo avere enti simili, noti come variabili casuali, che a ogni accesso restituiranno un valore diverso. In termini bayesiani, i dati storici rappresentano le nostre conoscenze precedenti di quel comportamento nel suo complesso, e ogni variabile ha proprietà statistiche peculiari che variano nel tempo. Supponiamo che X sia una variabile casuale che rappresenta la distribuzione normale; ogni volta che si accede a X, il risultato restituito avrà valori diversi. Questo processo che permette di ottenere un nuovo valore da una variabile casuale è chiamato campionamento. Il valore restituito dipende dalla distribuzione di probabilità associata alla variabile casuale. Ciò significa che, nello spazio dei parametri, è possibile dedurre la natura e la forma dei parametri appresi dalla rete neurale. Recentemente c'è stato grande fermento in questo settore grazie all'avvento di numerose librerie di programmazione probabilistica come PyMC3, Edward, Stan e altre. I metodi bayesiani sono utilizzati in molti campi: dallo sviluppo di giochi alla ricerca sui farmaci.
Invece di tener conto di una singola risposta a una domanda, i metodi bayesiani consentono di considerare un'intera distribuzione di risposte. Questo approccio è intrinsecamente adatto ad affrontare questioni quali:
