Entiendo que el entrenamiento previo se usa para evitar algunos de los problemas con la capacitación convencional. Si uso la retropropagación con, por ejemplo, un codificador automático, sé que voy a encontrar problemas de tiempo porque la retropropagación es lenta, y también que puedo quedar atrapado en los óptimos locales y no aprender ciertas características.
Lo que no entiendo es cómo preentrenamos una red y qué hacemos específicamente para preentrenar. Por ejemplo, si nos dan una pila de máquinas Boltzmann restringidas, ¿cómo podríamos entrenar esta red?
machine-learning
neural-networks
backpropagation
rbm
pre-training
Michael Yousef
fuente
fuente
Respuestas:
Comienza entrenando cada RBM en la pila por separado y luego se combina en un nuevo modelo que se puede ajustar aún más.
Supongamos que tiene 3 RBM, entrena RBM1 con sus datos (por ejemplo, un montón de imágenes). RBM2 está entrenado con la salida de RBM1. RBM3 está entrenado con la salida de RBM2. La idea es que cada modelo RBM tenga características representativas de las imágenes y los pesos que aprenden al hacerlo son útiles en otras tareas discriminatorias como la clasificación.
fuente
El entrenamiento previo de un RBM apilado es minimizar con avidez la energía definida, es decir, maximizar la probabilidad. G. Hinton propuso el algoritmo CD-k, que puede verse como una única iteración del muestreo de Gibbs.
fuente