8 votos

Definición exacta de Maxout

He estado intentando averiguar qué significa exactamente la función de activación "Maxout" en las redes neuronales. Hay este pregunta, este y hasta en el libro Deep Learning de Bengio et al. , excepto con un poco de información y un gran TODO al lado.

Utilizaré la notación descrita aquí para mayor claridad. No quiero volver a escribirlo y causar una sobrecarga de preguntas. Brevemente, $a^i_j=\sigma(z^i_j)=\sigma(\sum\limits_k a^{i-1}_kw^i_{jk}+b^i_j)$ En otras palabras, una neurona tiene un único sesgo, un único peso para cada entrada, y luego suma las entradas por los pesos, luego suma el sesgo y aplica la función de activación para obtener el valor de salida (también conocido como activación).

Hasta ahora sé que Maxout es una función de activación que "produce el máximo de sus entradas". ¿Qué significa eso? Aquí hay algunas ideas que podría interpretar de eso:

  1. $a^i_j=\max\limits_k (a^{i-1}_k)$ , también conocido como "max-pooling".
  2. $a^i_j=\max\limits_k (a^{i-1}_kw^i_{jk})+b^i_j$ , simplemente sustituyendo la suma que se hace normalmente por un máximo.
  3. $a^i_j=\max\limits_k (a^{i-1}_kw^i_{jk}+b^i_{jk})$ donde cada neurona tiene ahora un valor de sesgo para cada entrada, en lugar de un único valor de sesgo aplicado después de sumar todas las entradas. Esto haría que la retropropagación fuera diferente, pero todavía posible.
  4. Cada $z^i_j$ se calcula de forma normal, y cada neurona tiene un único sesgo y un peso para cada entrada. Sin embargo, de forma similar a softmax ( $a^i_j = \frac{\exp(z^i_j)}{\sum\limits_k \exp(z^i_k)}$ ), esto toma el máximo de todos los $z$ 's en su capa actual . Formalmente, $a^i_j=\max\limits_k z^i_k$ .

¿Alguno de ellos es correcto? ¿O es algo diferente?

10voto

Bauna Puntos 176

Nada de eso; las redes de maxout no siguen la arquitectura que usted supuso.

Desde el principio de la sección "descripción de maxout" en el documento que enlazaste , que definió el maxout:

Dada una entrada $x \in \mathbb{R}^d$ ( $x$ puede ser $v$ o puede ser el estado de una capa oculta), una capa oculta máxima implementa la función

$$h_i = \max_{j \in [1, k]} z_{ij}$$

donde $z_{ij} = x^T W_{ij} + b_{ij}$ y $W \in \mathbb{R}^{d \times m \times k}$ y $b R^{m \times k}$ son parámetros aprendidos.

Así, cada unidad del $m$ unidades tiene $k$ diferentes combinaciones afines de la capa anterior, y emite el máximo de esas $k$ funciones afines. Imagina que cada capa está conectada a la capa anterior con $k$ conexiones de diferentes colores, y tomando el máximo de los colores.

Alternativamente, se puede pensar que una unidad de maxout es en realidad dos capas: cada una de las unidades de la capa anterior está conectada a cada una de $k$ unidades con la función de activación de identidad, y luego una sola unidad conecta esas $k$ unidades lineales con una activación de la agrupación máxima.

Esto significa que la unidad, vista como una función de $\mathbb R^d$ a $\mathbb R$ es el máximo de las funciones afines a trozos. En la figura 1 del artículo se dan algunos ejemplos de las diferentes funciones que puede parecer:

enter image description here

Cada una de las líneas discontinuas representa un $W^T x + b$ . Se puede representar cualquier función convexa de esta manera, lo cual es bastante agradable.

0 votos

Así que desde $z_{i j} \in \mathbb{R}^{m \times k}$ Eso significa que $z_{i 1},z_{i 2}, ... \in \mathbb{R}^m$ . ¿Cómo se toma el máximo de esto? ¿Es la magnitud de los vectores?

0 votos

@DanielleEnsign La indexación es un poco no estándar aquí, pero cada $W_{ij} \in \mathbb R ^d$ , $x \in \mathbb R ^d$ , $b_{ij} \in \mathbb R$ así que $z_{ij} \in \mathbb R $ . Es un máximo normal y escalar.

3 votos

Ah, ahora por fin lo entiendo, gracias. Básicamente, cada neurona se compone de un montón de "subneuronas" que reciben la entrada de esa neurona, tienen sus propios pesos y sesgos, y la salida a través de la función de activación de identidad. Entonces la salida de esa neurona es el máximo de las salidas de todas sus sub-neuronas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X