Mi problema es este: tengo un conjunto de predictores que cada uno produce una distribución en un conjunto de clases.
Lo que me gustaría hacer es tener primero una información previa no informativa sobre cómo se ve esta distribución de etiquetas y luego actualizarla antes con la predicción de cada miembro del conjunto.
Entonces pensé en usar un Dirichlet no informativo antes, que luego actualizo con cada distribución de muestra que viene como una predicción.
Mi pregunta es: ¿es válido este enfoque y, en caso afirmativo, cómo actualizaría mi anterior para que se vuelva más definido a medida que se acumulen más muestras?
Respuestas:
Dirichlet prior es un prior apropiado y es el conjugado previo a una distribución multinomial. Sin embargo, parece un poco complicado aplicar esto a la salida de una regresión logística multinomial, ya que dicha regresión tiene un softmax como salida, no una distribución multinomial. Sin embargo, lo que podemos hacer es tomar muestras de un multinomio, cuyas probabilidades están dadas por el softmax.
Si dibujamos esto como un modelo de red neuronal, se verá así:
Podemos tomar muestras fácilmente de esto, en la dirección hacia adelante. ¿Cómo manejar hacia atrás? Podemos usar el truco de reparametrización, del artículo de Kingma 'Bayes variacional de codificación automática', https://arxiv.org/abs/1312.6114 , en otras palabras, modelamos el dibujo multinomial como un mapeo determinista, dada la distribución de probabilidad de entrada, y un sorteo de una variable aleatoria gaussiana estándar:
donde:ϵ ∼ N( 0 , 1 )
Entonces, nuestra red se convierte en:
Por lo tanto, podemos reenviar mini lotes de ejemplos de datos, extraer de la distribución normal estándar y volver a propagar a través de la red. Esto es bastante estándar y ampliamente utilizado, por ejemplo, el documento Kingma VAE anterior.
Un ligero matiz es que estamos dibujando valores discretos de una distribución multinomial, pero el documento VAE solo maneja el caso de salidas reales continuas. Sin embargo, hay un artículo reciente, el truco de Gumbel, https://casmls.github.io/general/2017/02/01/GumbelSoftmax.html , es decir , https://arxiv.org/pdf/1611.01144v1.pdf , y https://arxiv.org/abs/1611.00712 , que permite sorteos de documentos discretos multinomiales.
Las fórmulas de truco de Gumbel ofrecen la siguiente distribución de salida:
Las aquí son probabilidades previas para las diversas categorías, que puede ajustar, para impulsar su distribución inicial hacia cómo cree que la distribución podría distribuirse inicialmente.αk
Así tenemos un modelo que:
Editar:
Entonces, la pregunta es:
"¿Es posible aplicar este tipo de técnica cuando tenemos múltiples predicciones (y cada predicción puede ser un softmax, como el anterior) para una sola muestra (de un conjunto de estudiantes)". (ver comentarios a continuación)
Entonces sí :). Está. Usar algo como el aprendizaje de tareas múltiples, por ejemplo, http://www.cs.cornell.edu/~caruana/mlj97.pdf y https://en.wikipedia.org/wiki/Multi-task_learning . Excepto que el aprendizaje multitarea tiene una sola red y múltiples cabezas. Tendremos múltiples redes y una sola cabeza.
La 'cabeza' comprende una capa de extracto, que maneja la 'mezcla' entre las redes. Tenga en cuenta que necesitará una no linealidad entre sus "alumnos" y la capa de "mezcla", por ejemplo, ReLU o tanh.
Usted insinúa en dar a cada 'aprendizaje' su propio dibujo multinomial, o al menos, softmax. En general, creo que será más estándar tener primero la capa de mezcla, seguida de un único softmax y un dibujo multinomial. Esto dará la menor variación, ya que menos sorteos. (por ejemplo, puede consultar el documento de 'abandono de variación', https://arxiv.org/abs/1506.02557 , que fusiona explícitamente múltiples sorteos aleatorios, para reducir la varianza, una técnica que llaman 'reparameterización local')
Tal red se verá algo así como:
Esto tiene las siguientes características:
Tenga en cuenta de paso que esta no es la única forma de combinar a los alumnos. También podríamos combinarlos en una forma más de "autopista", algo así como impulsar, algo así como:
En esta última red, cada alumno aprende a solucionar cualquier problema causado por la red hasta ahora, en lugar de crear su propia predicción relativamente independiente. Tal enfoque puede funcionar bastante bien, es decir, impulsar, etc.
fuente