Revisione di macchine Boltzmann limitate
Una macchina Boltzmann con restrizioni (RBM) è un modello generativo , che apprende una distribuzione di probabilità sull'input. Ciò significa che, dopo essere stato addestrato, l'RBM può generare nuovi campioni dalla distribuzione di probabilità appresa. La distribuzione di probabilità sulle unità visibili è data da
dove
e è la funzione , è la funzione polarizzazione per il nodo visibile e è il peso da a p ( v ∣ h ) = V ∏ i = 0 p ( v i ∣ h ) ,v
p(v∣h)=∏i=0Vp(vi∣h),
σ a i i w j i h j v i p ( v ∣ hp(vi∣h)=σ(ai+∑j=0Hwjihj)
σaiiwjihjvi. Da queste due equazioni, ne consegue che dipende solo dagli stati nascosti . Ciò significa che le informazioni su come viene generato un campione visibile , devono essere memorizzate nelle unità nascoste, nei pesi e nei pregiudizi.
h vp(v∣h)hv
Utilizzo degli RBM per la classificazione
Quando si utilizzano gli RBM per le attività di classificazione, si utilizza la seguente idea: poiché le informazioni su come sono stati generati i dati di allenamento o test vengono salvate nelle unità nascoste , è possibile estrarre questi fattori sottostanti inserendo un campione di allenamento nel unità visibili dell'RBM, propagatele in avanti verso le unità nascoste e utilizzate questo vettore di unità nascoste come vettore di feature. Non devi più passare indietro alle unità visibili.h
Questo vettore nascosto è solo una versione trasformata dei dati di input - questo non può classificare nulla da solo. Per fare una classificazione, dovresti formare qualsiasi classificatore (classificatore lineare, SVM, una rete neurale feedforward o qualsiasi altra cosa) con il vettore nascosto invece dei dati di allenamento "grezzi" come input.
Se stai costruendo una rete di credenze profonde (DBN) - che è stata utilizzata per pre-addestrare reti neurali di feed-forward profonde in modo non supervisionato - prenderesti questo vettore nascosto e lo utilizzeresti come input per un nuovo RBM, che impili sopra. In questo modo, è possibile addestrare la rete strato per strato fino a raggiungere la dimensione desiderata, senza la necessità di dati etichettati. Infine, aggiungi ad esempio un livello di softmax in alto e addestra tutta la rete con backpropagation sul tuo compito di classificazione.