El autoencoder
paquete es solo una implementación del autoencoder descrito en las notas de clase de Andrew Ng , lo que podría ser un buen punto de partida para futuras lecturas. Ahora, para abordar sus preguntas.
Las personas a veces distinguen entre
parámetros , que el algoritmo de aprendizaje calcula por sí mismo, e
hiperparámetros , que controlan ese proceso de aprendizaje y deben proporcionarse al algoritmo de aprendizaje.
Es importante darse cuenta de que NO HAY VALORES MÁGICOS para los hiperparámetros. El valor óptimo variará, dependiendo de los datos que esté modelando: deberá probarlos en sus datos.
a) Lambda (λ) controla cómo se actualizan los pesos durante la retropropagación. En lugar de simplemente actualizar los pesos basados en la diferencia entre la salida del modelo y la verdad básica, la función de costo incluye un término que penaliza los pesos grandes (en realidad, el valor al cuadrado de todos los pesos). Lambda controla la importancia relativa de este término de penalización, que tiende a arrastrar los pesos hacia cero y ayuda a evitar el sobreajuste.
b) Rho (ρ ) y beta ( β) controlar la escasez. Rho es la activación esperada de una unidad oculta (promediada en todo el conjunto de entrenamiento). La representación se volverá más y más escasa a medida que se haga más pequeña. Esta escasez se impone ajustando el término de sesgo, y beta controla el tamaño de sus actualizaciones. (Parece queβ en realidad solo reescala la tasa de aprendizaje general α.)
c) Epsilon (ϵ ) controla los valores de peso iniciales, que se extraen al azar de norte( 0 ,ϵ2).
Sus valores rho no parecen irrazonables, ya que ambos están cerca del final del rango de la función de activación (0 a 1 para logística, -1 a 1 para tanh). Sin embargo, esto obviamente depende de la cantidad de escasez que desee y del número de unidades ocultas que use también.
La principal preocupación de LeCunn con los pequeños pesos es que la superficie de error se vuelve muy plana cerca del origen si está utilizando un sigmoide simétrico. En otra parte de ese documento, recomienda inicializar con pesos extraídos aleatoriamente de una distribución normal con media cero ymetro- 1 / 2 desviación estándar, donde metro es la cantidad de conexiones que recibe cada unidad.
Hay muchas "reglas generales" para elegir el número de unidades ocultas. Su conjetura inicial (entrada 2x) parece estar en línea con la mayoría de ellos. Dicho esto, estas estimaciones son mucho más conjeturas que estimaciones. Suponiendo que tenga la potencia de procesamiento, me equivocaría al lado de más unidades ocultas, luego impondría la escasez con un valor rho bajo.
Un uso obvio de los codificadores automáticos es generar representaciones de características más compactas para otros algoritmos de aprendizaje. Una imagen en bruto puede tener millones de píxeles, pero un autoencoder (escaso) puede representarla en un espacio mucho más pequeño.
Geoff Hinton (y otros) han demostrado que generan características útiles para la clasificación posterior. Algunos de los trabajos de aprendizaje profundo utilizan autoencoders o similares para entrenar la red.
Vincent y col. use autoencoders directamente para realizar la clasificación.
La capacidad de generar representaciones de características sucintas también se puede utilizar en otros contextos. Aquí hay un pequeño proyecto ordenado donde los estados producidos por autoencoder se utilizan para guiar un algoritmo de aprendizaje de refuerzo a través de los juegos de Atari .
Finalmente, también se pueden usar codificadores automáticos para reconstruir entradas ruidosas o degradadas, por ejemplo , lo que puede ser un fin útil en sí mismo.
beta = 6
en elautoencoder
código de ejemplo?Una parte de la respuesta de Matt Krause no me parece correcta (Lambda y Beta), tampoco se menciona épsilon. En realidad, esta publicación debería ser un comentario, pero estoy respondiendo la pregunta debido a la restricción de 50 reputación. Siéntase libre de comentar si ve algún error.
De http://web.stanford.edu/class/archive/cs/cs294a/cs294a.1104/sparseAutoencoder.pdf Lambda es un término de coeficiente de pérdida de peso que desalienta a los pesos a alcanzar grandes valores ya que puede sobreajustar. El término de disminución de peso (o término de regularización de peso) es parte de la función de costo, como el término de dispersión que se explica a continuación.
rho es la restricción de dispersión que controla el número promedio de activación en la capa oculta. Se incluye para hacer que el codificador automático funcione incluso con un número relativamente grande de unidades ocultas con respecto a las unidades de entrada. Por ejemplo, si el tamaño de entrada es 100 y el tamaño oculto es 100 o mayor (incluso más pequeño pero cercano a 100), la salida puede construirse sin pérdida alguna, ya que las unidades ocultas pueden aprender la función de identidad. Beta es coeficiente de término de dispersión que es parte de la función de costo. Controla la importancia relativa del término de dispersión. Lambda y Beta especifican la importancia relativa de sus términos en la función de costos.
Epsilon (si han usado la misma notación con Andrew Ng) es un parámetro de regularización para el proceso de blanqueamiento que tiene un efecto de filtro de paso bajo en la entrada. Eso tiene algunos efectos importantes en los métodos de reconstrucción. Verifique el enlace para eso en los modelos basados en reconstrucción. Creo que han usado la activación lineal para la capa de salida y han usado algún tipo de blanqueamiento (características univariantes).
La tasa de actualización de parámetros (pesos y sesgos) se denomina tasa de aprendizaje y denota eta en general. Sin embargo, Andrew Ng lo ha utilizado como alfa. Mira el primer enlace.
fuente