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:
- $a^i_j=\max\limits_k (a^{i-1}_k)$ , también conocido como "max-pooling".
- $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.
- $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.
- 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?