¿Las redes RBM (máquina de Boltzman restringida) suelen tener el mismo número de nodos por capa?

No, no hay ninguna razón por la cual debe haber la misma cantidad de nodos en la capa oculta que en la capa visible (oculta -> latente -> variables no observadas; visible -> variables observadas). El único profesional, si lo desea, de tener menos variables ocultas es que tiene menos parámetros (es decir, la gran matriz de visible a oculto, si ignoramos los sesgos por un minuto) para aprender y, por lo tanto, el entrenamiento será más rápido (bueno por iteración, esto no tiene en cuenta cuánto tiempo puede llevar el proceso de capacitación general y cómo se mezcla su cadena MCMC).

Al igual que cualquier arquitectura neuronal, como el autoencoder / autoasociador (un primo cercano), que es un MLP que está capacitado para predecir su entrada (en el sentido más simple), la respuesta a cuántas unidades tener en la capa oculta es “Depende” (la respuesta infame a la mayoría, si no a todos, de la informática).

Yo mismo (cuando propuse los modelos híbridos profundos como el SBEN en 2015) jugué con el tamaño de las capas ocultas, y a menudo puede obtener un mejor rendimiento (probabilidad de registro de wrt o algún objetivo discriminativo) con capas ocultas que son más grandes que la entrada (“representación sobrecompleta” como en autoencoders), capas ocultas que son más pequeñas que la entrada (“representación sobrecompleta” como en autoencoders -> bueno para la reducción de dimensionalidad no lineal) y capas ocultas que son iguales tamaño (“representación completa” como en autoencoders). Decidir el tamaño de la capa oculta es empírico, así que rastrea tu objetivo (u “objetivo del hombre pobre” como la entropía cruzada si no puedes realizar un muestreo de importancia recocido) y ajusta el número de unidades ocultas como lo harías en cualquier otra arquitectura neuronal . Es posible que vea que los investigadores son “flojos” como simplemente dejando el número de escondites igual al número de visibles; en el mejor de los casos, es una heurística rápida y sucia si no desea hacer una selección de modelo adecuada (pero podría estar haciendo trampa usted mismo de mejor rendimiento ya que el modelo aún es paramétrico → aquí no hay magia no paramétrica).

Si desea que la teoría justifique los tamaños de capa ocultos, bueno … realmente no hay ninguno. Al igual que encontrará que no hay una teoría que le diga cuántas capas de profundidad para hacer su MLP (entre muchas otras cosas). Tan feliz afinación y buena suerte 😉

Las máquinas de Boltzmann (restringidas y no restringidas) son bastante geniales, pero a muchos les resulta difícil entrenar bien (especialmente porque la receta de divergencia contrastante no está realmente optimizando ningún objetivo que conozcamos / cuidemos, como la probabilidad de registro). [Nota: es posible que desee ver también codificadores automáticos variados, allí puede jugar con su anterior y posterior directamente … si desea algo un poco más basado en principios.]