¿Cómo incorporamos nueva información en una distribución previa de Dirichlet?

8

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?

Bar
fuente
Sé que puedes hacer exactamente eso en Asignación de Dirichlet Latente. Utilizan los datos para actualizar el Dirichlet antes de la probabilidad multinomial. Para obtener más información, consulte los siguientes enlaces: dirichlet.net/pdf/wallach09rethinking.pdf y people.eecs.berkeley.edu/~jordan/papers/hdp.pdf
KenHBS

Respuestas:

6

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í:

ingrese la descripción de la imagen aquí

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=sol(Xen,ϵ)

donde:ϵnorte(0 0,1)

Entonces, nuestra red se convierte en:

ingrese la descripción de la imagen aquí

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)=(norte-1)!λnorte-1k=1norte(αkXk-λ-1yo=1norteαyoXyo-λ)

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:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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.

Hugh Perkins
fuente
1
Gracias, esto es realmente útil, aunque la pregunta todavía tiene un aspecto sin respuesta: ¿Es posible aplicar este tipo de técnica cuando tenemos múltiples predicciones (y cada predicción puede ser un softmax, como arriba) para una sola muestra (de un conjunto de aprendices). Supongo que no, porque las muestras no son iid
Bar
@Bar: Buen punto. Actualizado para múltiples estudiantes
Hugh Perkins,