Qu'est-ce que maxout dans un réseau de neurones?


42

Quelqu'un peut-il expliquer ce que font les unités maxout d'un réseau de neurones? Comment fonctionnent-ils et en quoi diffèrent-ils des unités conventionnelles?

J'ai essayé de lire le document "Maxout Network" de Goodfellow et al. (du groupe du professeur Yoshua Bengio), mais je ne comprends pas très bien.

Réponses:


26

Une couche maxout est simplement une couche où la fonction d'activation est le maximum des entrées. Comme indiqué dans le document, même un MLP avec 2 unités maxout peut se rapprocher de n'importe quelle fonction. Ils donnent deux raisons pour lesquelles maxout peut-être bien performé, mais la raison principale est la suivante:

Le décrochage peut être considéré comme une forme de modélisation de modèle dans laquelle un sous-réseau aléatoire est formé à chaque itération et, à la fin, la pondération des différents réseaux aléatoires est calculée. Comme on ne peut pas faire la moyenne explicite des poids, une approximation est utilisée. Cette approximation est exacte pour un réseau linéaire
Dans maxout, ils ne suppriment pas les entrées dans la couche maxout. Ainsi, l'identité de l'entrée fournissant la valeur maximale pour un point de données reste inchangée. Ainsi, l’abandon ne se produit que dans la partie linéaire du MLP, mais on peut toujours approcher n’importe quelle fonction à cause de la couche maxout.
Comme l'abandon se produit uniquement dans la partie linéaire, ils supposent que cela conduit à une moyenne plus efficace du modèle car l'approximation de la moyenne est exacte pour les réseaux linéaires.

Leur code est disponible ici .


1
Merci! Je comprends comment faire maxout maintenant. J'ai quelques questions. (1) Donc, vous ne faites pas de décrochage avant maxout out selon ce que vous avez écrit "Dans maxout, ils ne lâchent pas les entrées du calque maxout."? (2) Qu'est-ce que cela signifie par la partie linéaire de MLP? "Ainsi, le décrochage ne se produit que dans la partie linéaire du MLP mais on peut toujours se rapprocher de n'importe quelle fonction à cause de la couche maxout." (3) Pourquoi une meilleure moyenne? "Etant donné que le décrochage ne se produit que dans la partie linéaire, ils supposent que cela conduit à une moyenne du modèle plus efficace car l'approximation de la moyenne est exacte pour les réseaux linéaires."
RockTheStar

2
(1) Donc, d'après ce que j'ai compris, un nœud de couche maxout est et . Ainsi, les nœuds d’entrée de la couche maxout sont eux-mêmes des combinaisons linéaires de nœuds dans des couches plus profondes. La suppression n'est pas effectuée pour le calque maxout ni pour le calque z mais elle l'est pour les calques plus profonds que cela. (2) Par partie linéaire, cela signifie les couches cachées qui n'ont que des fonctions d'activation linéaires. En général, les NN ne sont pas linéaires mais avec maxout, ils tirent le meilleur parti des NN linéaires et n'abandonnent que la partie linéaire. max(zi)zi=kxk
Opt

Merci! Pour (3) qu'est-ce que cela signifie par "exact", et pourquoi NN devient linéaire avec maxout? Merci beaucoup pour votre aide.
RockTheStar

1
Nah maxout est une architecture de réseau. Le décrochage est une technique de régularisation
Opt

1
-1 Ceci n'est pas une définition correcte de la fonction d'activation maxout de Goodfellow. La réponse de toussaint-louverture va dans le bon sens. stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen

15

Une unité maxout peut apprendre une fonction convexe linéaire par morceaux avec un maximum de k pièces. 1

Ainsi, lorsque k vaut 2, vous pouvez implémenter ReLU, ReLU absolu, ReLU qui fuit, etc., ou apprendre à implémenter une nouvelle fonction. Si k vaut 10, vous pouvez même apprendre approximativement la fonction convexe.

Quand k est 2:

le neurone Maxout calcule la fonction . ReLU et Leaky ReLU sont des cas particuliers de ce formulaire (par exemple, pour ReLU, nous avons ). Le neurone Maxout bénéficie donc de tous les avantages d’une unité ReLU (régime de fonctionnement linéaire, pas de saturation) et ne présente pas d’inconvénients (régénération ReLU).max(w1Tx+b1,w2Tx+b2)w1,b1=0

Cependant, contrairement aux neurones ReLU, il double le nombre de paramètres pour chaque neurone, conduisant à un nombre total élevé de paramètres. 2

Vous pouvez lire les détails ici:
1. DL book
2. http://cs231n.github.io/neural-networks-1


Il ne double que le nombre de paramètres de biais, pas tous les poids.
hans
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.