Los RBM son una bestia interesante. Para responder a su pregunta y refrescar mi memoria sobre ellos, derivaré RBM y hablaré sobre la derivación. Usted mencionó que está confundido sobre la probabilidad, por lo que mi derivación será desde la perspectiva de tratar de maximizar la probabilidad. Vamos a empezar.
Las RBM contienen dos conjuntos diferentes de neuronas, visibles y ocultas, las denominaré y h respectivamente. Dada una configuración específica de v y h , le asignamos el espacio de probabilidad.vhvh
p(v,h)=e−E(v,h)Z
Hay un par de cosas más para definir. La función sustituta que usamos para mapear desde una configuración específica al espacio de probabilidad se llama función de energía . La constante Z es un factor de normalización para garantizar que realmente asignemos al espacio de probabilidad. Ahora vamos a lo que realmente estamos buscando; la probabilidad de un conjunto de neuronas visibles, en otras palabras, la probabilidad de nuestros datos.
Z = ∑ v ∈ V ∑ h ∈ H e - E ( v , h ) p ( v )E(v,h)Z
Z=∑v∈V∑h∈He−E(v,h)
p(v)=∑h∈Hp(v,h)=∑h∈He−E(v,h)∑v∈V∑h∈He−E(v,h)
Aunque hay muchos términos en esta ecuación, simplemente se reduce a escribir las ecuaciones de probabilidad correctas. Con suerte, hasta ahora, esto ha ayudado a darse cuenta por qué necesitamos función de energía para calcular la probabilidad, o lo que se hace por lo general más la probabilidad no normalizada . La probabilidad no normalizada se usa porque la función de partición Z es muy costosa de calcular.p(v)∗ZZ
Ahora pasemos a la fase de aprendizaje real de los RBM. Para maximizar la probabilidad, para cada punto de datos, tenemos que dar un paso de gradiente para hacer que . Para obtener las expresiones de degradado, se necesitan algunas acrobacias matemáticas. Lo primero que hacemos es tomar el registro de p ( v ) . Estaremos operando en el espacio de probabilidad de registro a partir de ahora para que las matemáticas sean factibles.p(v)=1p(v)
Tomemos el gradiente con respecto a los parámetros en p ( v )
log(p(v))=log[∑h∈He−E(v,h)]−log[∑v∈V∑h∈He−E(v,h)]
p(v)
∂Iniciar sesión( p ( v ) )∂θ=- 1∑h′∈ Hmi- E( v , h′)∑h′∈ Hmi- E( v , h′)∂mi( v , h′)∂θ+ 1∑v′∈ V∑h′∈ Hmi- E( v′, h′)∑v′∈ V∑h′∈ Hmi- E( v′, h′)∂mi( v , h )∂θ
Ahora hice esto en papel y escribí la ecuación semifinal para no desperdiciar mucho espacio en este sitio. Le recomiendo que obtenga estas ecuaciones usted mismo. Ahora escribiré algunas ecuaciones que ayudarán a continuar nuestra derivación. Tenga en cuenta que: ,p(v)=∑ h ∈ H p(v,h)y quep(h|v)=Zp ( v , h ) = e-E( v , h′)p ( v ) = ∑h ∈ Hp ( v , h )p ( h | v ) = p ( v , h )p ( h )
∂l o g( p ( v ) )∂θ∂l o g( p ( v ) )∂θ= - 1p ( v )∑h′∈ Hp ( v , h′) ∂mi( v , h′)∂θ+ ∑v′∈ V∑h′∈ Hp ( v′, h′) ∂mi( v′, h′)∂θ= - ∑h′∈ Hp(h′|v)∂E(v,h′)∂θ+∑v′∈V∑h′∈Hp(v′,h′)∂E(v′,h′)∂θ
Y ahí vamos, derivamos la estimación de máxima verosimilitud para RBM, si lo desea puede escribir los dos últimos términos a la espera de sus respectivos términos (condicional y probabilidad conjunta).
Notas sobre la función energética y la estocasticidad de las neuronas.
Como puede ver arriba en mi derivación, dejé la definición de la función de energía bastante vaga. Y la razón para hacerlo es que muchas versiones diferentes de RBM implementan varias funciones de energía. La que Hinton describe en la conferencia vinculada anteriormente, y mostrada por @ Laurens-Meeus es:
E(v,h)=−aTv−bTh−vTWh.
Puede ser más fácil razonar sobre los términos de gradiente anteriores a través del formulario de expectativa.
∂log(p(v))∂θ=−Ep(h′|v)∂E(v,h′)∂θ+Ep(v′,h′)∂E(v′,h′)∂θ
La expectativa del primer término es realmente fácil de calcular, y ese fue el genio detrás de las RBM. Al restringir la conexión, la expectativa condicional simplemente se convierte en una propagación directa del RBM con las unidades visibles fijadas. Esta es la llamada fase de estela en las máquinas de Boltzmann. Ahora calcular el segundo término es mucho más difícil y generalmente se utilizan los métodos de Monte Carlo para hacerlo. Escribir el gradiente a través del promedio de carreras de Monte Carlo:
∂log(p(v))∂θ≈−⟨∂E(v,h′)∂θ⟩p(h′|v)+⟨∂E(v′,h′)∂θ⟩p(v′,h′)
Calculating the first term is not hard, as stated above, therefore Monte-Carlo is done over the second term. Monte Carlo methods use random successive sampling of the distribution, to calculate the expectation (sum or integral). Now this random sampling in classical RBM's is defined as setting a unit to be either 0 or 1 based on its probability stochasticly, in other words, get a random uniform number, if it is less than the neurons probability set it to 1, if it is greater than set it to 0.