Los modelos de aprendizaje profundo se clasifican ampliamente en modelos supervisados y no supervisados.
Modelos DL supervisados:
- Redes Neuronales Artificiales (RNA)
- Redes neuronales recurrentes (RNN)
- Redes neuronales convolucionales (CNN)
Modelos DL no supervisados:
- Mapas autoorganizados (SOM)
- Máquinas Boltzmann
- Codificadores automáticos
Aprendamos qué son exactamente las máquinas de Boltzmann, cómo funcionan y también implementemos un sistema de recomendación que recomiende si al usuario le gusta una película o no en función de las películas vistas anteriormente.
Boltzmann Machines es un modelo DL no supervisado en el que cada Node está conectado a todos los demás Nodes. Es decir, a diferencia de las ANN, CNN, RNN y SOM, las máquinas de Boltzmann no están dirigidas (o las conexiones son bidireccionales). Boltzmann Machine no es un modelo DL determinista sino un modelo DL estocástico o generativo . Es más bien una representación de un determinado sistema. Hay dos tipos de Nodes en la máquina de Boltzmann: Nodes visibles , aquellos Nodes que podemos y medimos, y los Nodes ocultos .– aquellos Nodes que no podemos o no podemos medir. Aunque los tipos de Nodes son diferentes, la máquina de Boltzmann los considera iguales y todo funciona como un solo sistema. Los datos de entrenamiento se introducen en la máquina Boltzmann y los pesos del sistema se ajustan en consecuencia. Las máquinas de Boltzmann nos ayudan a comprender las anomalías al aprender sobre el funcionamiento del sistema en condiciones normales.
Modelos basados en energía:
Boltzmann Distribution se utiliza en la distribución de muestras de la Boltzmann Machine. La distribución de Boltzmann se rige por la ecuación:
Pi = e(-∈i/kT)/ ∑e(-∈j/kT) Pi - probability of system being in state i ∈i - Energy of system in state i T - Temperature of the system k - Boltzmann constant ∑e(-∈j/kT) - Sum of values for all possible states of the system
La distribución de Boltzmann describe diferentes estados del sistema y, por lo tanto, las máquinas de Boltzmann crean diferentes estados de la máquina utilizando esta distribución. De la ecuación anterior, a medida que aumenta la energía del sistema, disminuye la probabilidad de que el sistema esté en el estado ‘i’. Por lo tanto, el sistema es más estable en su estado de energía más bajo (un gas es más estable cuando se propaga). Aquí, en las máquinas de Boltzmann, la energía del sistema se define en términos de los pesos de las sinapsis . Una vez que se entrena el sistema y se establecen los pesos, el sistema siempre trata de encontrar el estado de energía más bajo por sí mismo ajustando los pesos.
Tipos de máquinas Boltzmann:
- Máquinas de Boltzmann restringidas (RBM)
- Redes de creencias profundas (DBN)
- Máquinas profundas de Boltzmann (DBM)
Máquinas de Boltzmann restringidas (RBM):
En una máquina de Boltzmann completa, cada Node está conectado a todos los demás Nodes y, por lo tanto, las conexiones crecen exponencialmente . Esta es la razón por la que usamos RBM. Las restricciones en las conexiones de Nodes en RBM son las siguientes:
- Los Nodes ocultos no se pueden conectar entre sí.
- Nodes visibles conectados entre sí.
Ejemplo de función de energía para máquina de Boltzmann restringida:
E(v, h) = -∑ aivi - ∑ bjhj - ∑∑ viwi,jhj a, v - biases in the system - constants vi, hj - visible node, hidden node P(v, h) = Probability of being in a certain state P(v, h) = e(-E(v, h))/Z Z - sum if values for all possible states
Supongamos que estamos utilizando nuestro RBM para crear un sistema de recomendación que funcione en seis (6) películas. RBM aprende a asignar los Nodes ocultos a ciertas funciones. Mediante el proceso de Divergencia Contrastiva , hacemos que la RBM se acerque a nuestro set de películas que es nuestro caso o escenario. RBM identifica qué características son importantes para el proceso de capacitación. Los datos de entrenamiento son 0 o 1 o datos faltantes en función de si a un usuario le gustó esa película (1), no le gustó esa película (0) o no vio la película (datos faltantes). RBM identifica automáticamente características importantes.
divergencia contrastiva:
RBM ajusta sus pesos por este método. Usando algunos pesos iniciales asignados aleatoriamente, RBM calcula los Nodes ocultos, que a su vez usan los mismos pesos para reconstruir los Nodes de entrada. Cada Node oculto se construye a partir de todos los Nodes visibles y cada Node visible se reconstruye a partir de todos los Nodes ocultos y, por lo tanto, la entrada es diferente de la entrada reconstruida, aunque los pesos son los mismos. El proceso continúa hasta que la entrada reconstruida coincide con la entrada anterior. Se dice que el proceso converge en esta etapa. Todo este procedimiento se conoce como Gibbs Sampling .
La fórmula del gradiente da el gradiente del logaritmo de probabilidad del cierto estado del sistema con respecto a los pesos del sistema. Se da de la siguiente manera:
d/dwij(log(P(v0))) = <vi0 * hj0> - <vi∞ * hj∞> v - visible state, h- hidden state <vi0 * hj0> - initial state of the system <vi∞ * hj∞> - final state of the system P(v0) - probability that the system is in state v0 wij - weights of the system
Las ecuaciones anteriores nos dicen cómo el cambio en los pesos del sistema cambiará la probabilidad logarítmica del sistema para ser un estado particular. El sistema trata de terminar en el estado de energía más bajo posible (más estable). En lugar de continuar con el proceso de ajuste de pesos hasta que la entrada actual coincida con la anterior, también podemos considerar solo las primeras pausas. Es suficiente entender cómo ajustar nuestra curva para obtener el estado de energía más bajo. Por lo tanto, ajustamos los pesos, rediseñamos el sistema y la curva de energía de modo que obtengamos la energía más baja para la posición actual. Esto se conoce como el atajo de Hinton .
Funcionamiento de RBM – Ejemplo ilustrativo –
Considere: Mary mira cuatro películas de las seis películas disponibles y califica cuatro de ellas. Digamos que vio m 1 , m 3 , m 4 y m 5 y le gusta m 3 , m 5 (puntuación 1) y no le gustan las otras dos, es decir m 1 , m 4 (puntuación 0) mientras que las otras dos películas – m2 , m6 no están clasificados. Ahora, usando nuestra RBM, le recomendaremos una de estas películas para que la vea a continuación. Decir –
- m 3 , m 5 son del género ‘Drama’.
- m 1 , m 4 son del género ‘Acción’.
- ‘Dicaprio’ jugó un papel en m 5 .
- m 3 , m 5 han ganado ‘Oscar’.
- ‘Tarantino’ dirigió m 4 .
- m 2 es del género ‘Acción’.
- m 6 es de los géneros ‘Acción’ y ‘Drama’, en él actuó ‘Dicaprio’ y ha ganado un ‘Oscar’.
Tenemos las siguientes observaciones:
- A Mary le gustan m 3 , m 5 y son del género ‘Drama’, probablemente le gusten las películas de ‘Drama’ .
- A Mary no le gusta m 1 , m 4 y son del género de acción, probablemente no le gusten las películas de ‘Acción’ .
- A Mary le gusta m 3 , m 5 y han ganado un ‘Oscar’, probablemente le guste una película de ‘Oscar’ .
- Ya que ‘Dicaprio’ actuó en m 5 y a Mary le gusta, probablemente le gustará una película en la que actuó ‘Dicaprio’ .
- A Mary no le gusta m 4 que está dirigida por Tarantino, probablemente no le gusta ninguna película dirigida por ‘Tarantino’ .
Por lo tanto, con base en las observaciones y los detalles de m 2 , m 6 ; nuestra RBM recomienda m6 a Mary (‘Drama’, ‘Dicaprio’ y ‘Oscar’ coinciden tanto con los intereses de Mary como con m 6 ). Así es como funciona un RBM y, por lo tanto, se utiliza en los sistemas de recomendación.
Por lo tanto, los RBM se utilizan para construir sistemas de recomendación.
Redes de creencias profundas (DBN):
Supongamos que apilamos varios RBM uno encima del otro para que las primeras salidas RBM sean la entrada del segundo RBM y así sucesivamente. Estas redes se conocen como redes de creencias profundas. Las conexiones dentro de cada capa no están dirigidas (ya que cada capa es un RBM). Al mismo tiempo, los que están entre las capas están dirigidos (excepto las dos capas superiores, la conexión entre las dos capas superiores no está dirigida). Hay dos formas de entrenar a los DBN:
- Algoritmo de entrenamiento codicioso por capas: los RBM se entrenan capa por capa. Una vez que se entrenan los RBM individuales (es decir, se establecen los parámetros: pesos, sesgos), se establece la dirección entre las capas de DBN.
- Algoritmo Wake-Sleep: el DBN se entrena completamente hacia arriba (conexiones que suben – despertar) y luego hacia abajo de la red (conexiones que bajan – dormir).
Por lo tanto, apilamos los RBM, los entrenamos y, una vez que tenemos los parámetros entrenados, nos aseguramos de que las conexiones entre las capas solo funcionen hacia abajo (excepto las dos capas superiores).
Máquinas profundas de Boltzmann (DBM):
Los DBM son similares a los DBN, excepto que, aparte de las conexiones dentro de las capas, las conexiones entre las capas tampoco están dirigidas (a diferencia de las DBN, en las que las conexiones entre capas están dirigidas). Los DBM pueden extraer funciones más complejas o sofisticadas y, por lo tanto, pueden usarse para tareas más complejas.
Publicación traducida automáticamente
Artículo escrito por eshwitha_reddy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA