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:
Xfuera= g(Xen, ϵ )
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:
pagsα , λ( x ) = ( n - 1 ) !λn - 1∏k = 1norte(αkX- λ - 1k∑nortei = 1αyoX- λyo)
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:
- contiene una regresión logística multinomial (la capa lineal seguida por el softmax)
- agrega un paso de muestreo multinomial al final
- que incluye una distribución previa sobre las probabilidades
- puede ser entrenado, usando el Descenso de Gradiente Estocástico, o similar
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:
- puede incluir uno o más alumnos independientes, cada uno con sus propios parámetros
- puede incluir un previo sobre la distribución de las clases de salida
- aprenderá a mezclarse con los diferentes alumnos
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.