¿Qué es maxout en la red neuronal?

42

¿Alguien puede explicar qué hacen las unidades maxout en una red neuronal? ¿Cómo funcionan y en qué se diferencian de las unidades convencionales?

Traté de leer el artículo de 2013 "Maxout Network" de Goodfellow et al. (del grupo del profesor Yoshua Bengio), pero no lo entiendo del todo.

RockTheStar
fuente

Respuestas:

26

Una capa maxout es simplemente una capa donde la función de activación es el máximo de las entradas. Como se indica en el documento, incluso un MLP con 2 unidades de máximo puede aproximarse a cualquier función. Proporcionan un par de razones sobre por qué maxout puede estar funcionando bien, pero la razón principal que dan es la siguiente:

La deserción puede considerarse como una forma de promedio de modelo en el que se entrena una subred aleatoria en cada iteración y al final se promedian los pesos de las diferentes redes aleatorias. Como no se puede promediar los pesos explícitamente, se usa una aproximación. Esta aproximación es exacta para una red lineal
En maxout, no dejan caer las entradas a la capa maxout. Por lo tanto, la identidad de la entrada que emite el valor máximo para un punto de datos permanece sin cambios. Por lo tanto, el abandono solo ocurre en la parte lineal del MLP, pero aún se puede aproximar cualquier función debido a la capa de maxout.
Como el abandono ocurre solo en la parte lineal, conjeturan que esto conduce a un promedio de modelo más eficiente ya que la aproximación promedio es exacta para redes lineales.

Su código está disponible aquí .

Optar
fuente
1
¡Gracias! Entiendo cómo hacer maxout ahora. Tengo algunas preguntas. (1) ¿Así que no abandonas antes de maximizar según lo que escribiste "En maxout, no eliminan las entradas a la capa maxout"? (2) ¿Qué significa la parte lineal de MLP? "Por lo tanto, el abandono solo ocurre en la parte lineal del MLP, pero aún se puede aproximar cualquier función debido a la capa de máximo rendimiento". (3) ¿Por qué promediar mejor? "Como el abandono ocurre solo en la parte lineal, conjeturan que esto conduce a un promedio de modelo más eficiente ya que la aproximación promedio es exacta para redes lineales".
RockTheStar
2
(1) Entonces, por lo que entiendo, un nodo de capa maxout es y . Por lo tanto, los nodos de entrada a la capa maxout son combinaciones lineales de nodos en capas más profundas. El abandono no se realiza para la capa maxout o para la capa z, pero se realiza para las capas más profundas que eso. (2) Por parte lineal, significa capas ocultas que solo tienen funciones de activación lineal (3) mejor promedio en cuanto a redes lineales, el esquema de promedio utilizado por abandono es exacto. En general, NN no son lineales, pero con maxout, hacen que la mayoría de NN sean lineales y solo abandonan la parte lineal. max(zi)zi=kxk
Opt
¡Gracias! Para (3), ¿qué significa "exacto" y por qué NN se vuelve lineal con maxout? Muchas gracias por su ayuda.
RockTheStar
1
Nah maxout es una arquitectura de red. La deserción es una técnica de regularización
Opt
1
-1 Esta no es una definición correcta de la función de activación máxima de Goodfellow. La respuesta de @ toussaint-louverture es correcta. stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen
15

Una unidad maxout puede aprender una función convexa lineal por partes con hasta k piezas. 1

Entonces, cuando k es 2, puede implementar ReLU, ReLU absoluta, ReLU con fugas, etc., o puede aprender a implementar una nueva función. Si k es digamos 10, incluso puede aprender aproximadamente la función convexa.

Cuando k es 2:

la neurona Maxout calcula la función . Tanto ReLU como Leaky ReLU son un caso especial de este formulario (por ejemplo, para ReLU tenemos ). Por lo tanto, la neurona Maxout disfruta de todos los beneficios de una unidad ReLU (régimen lineal de operación, sin saturación) y no tiene sus inconvenientes (ReLU moribundo).max(w1Tx+b1,w2Tx+b2)w1,b1=0

Sin embargo, a diferencia de las neuronas ReLU, duplica el número de parámetros para cada neurona, lo que lleva a un alto número total de parámetros. 2

Puede leer los detalles aquí:
1. Libro DL
2. http://cs231n.github.io/neural-networks-1

Aaron
fuente
Duplica solo el número de parámetros de sesgo, no todos los pesos.
Hans