O que é maxout na rede neural?

42

Alguém pode explicar o que as unidades maxout em uma rede neural fazem? Como eles funcionam e como eles diferem das unidades convencionais?

Tentei ler o artigo "Maxout Network" de 2013 de Goodfellow et al. (do grupo do professor Yoshua Bengio), mas não entendi direito.

RockTheStar
fonte

Respostas:

26

Uma camada de maxout é simplesmente uma camada em que a função de ativação é o máximo das entradas. Conforme declarado no documento, mesmo um MLP com 2 unidades de maxout pode aproximar qualquer função. Eles explicam por que o maxout pode ter um bom desempenho, mas o principal motivo é o seguinte:

A desistência pode ser vista como uma forma de média do modelo na qual uma sub-rede aleatória é treinada a cada iteração e, no final, os pesos das diferentes redes aleatórias são calculados. Como não se pode calcular a média dos pesos explicitamente, é utilizada uma aproximação. Essa aproximação é exata para uma rede linear.
No maxout, eles não descartam as entradas na camada maxout. Assim, a identidade da entrada que gera o valor máximo para um ponto de dados permanece inalterada. Assim, o abandono ocorre apenas na parte linear do MLP, mas ainda é possível aproximar qualquer função por causa da camada maxout.
Como a interrupção ocorre apenas na parte linear, eles conjeturam que isso leva a uma média mais eficiente do modelo, pois a aproximação da média é exata para redes lineares.

O código deles está disponível aqui .

Optar
fonte
1
Obrigado! Eu entendo como fazer maxout agora. Eu tenho algumas questões. (1) Portanto, você não faz desistências antes da saída máxima, de acordo com o que você escreveu "Na saída máxima, elas não descartam as entradas na camada de saída máxima". (2) O que significa a parte linear do MLP? "Portanto, o abandono ocorre apenas na parte linear do MLP, mas ainda é possível aproximar qualquer função por causa da camada de maxout". (3) Por que uma melhor média? "Como a desistência ocorre apenas na parte linear, eles conjeturam que isso leva a uma média mais eficiente do modelo, pois a aproximação da média é exata para redes lineares".
RockTheStar
2
(1) Então, pelo que entendi, um nó da camada maxout é e . Portanto, os nós de entrada para a camada maxout são combinações lineares de nós em camadas mais profundas. A eliminação não é feita para a camada maxout ou para a camada z, mas para as camadas mais profundas que isso. (2) Por parte linear, significa camadas ocultas que possuem apenas funções de ativação lineares. Em geral, o NN não é linear, mas com o maxout, eles tornam a maioria do NN linear e apenas eliminam a parte linear. max(zi)zi=kxk
Opte
Obrigado! Para (3) o que significa "exato" e por que NN se torna linear com maxout? Muito obrigado pela sua ajuda.
RockTheStar
1
Nah maxout é uma arquitetura de rede. O abandono é uma técnica de regularização
Opte
1
-1 Esta não é uma definição correta da função de ativação máxima da Goodfellow. A resposta de @ toussaint-louverture acerta. stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen
15

Uma unidade maxout pode aprender uma função convexa linear, por partes, com até k peças. 1

Portanto, quando k é 2, é possível implementar a ReLU, ReLU absoluta, ReLU com vazamento etc., ou pode aprender a implementar uma nova função. Se k for digamos 10, você pode aprender aproximadamente a função convexa.

Quando k é 2:

o neurônio Maxout calcula a função . ReLU e Leaky ReLU são um caso especial desse formulário (por exemplo, para ReLU, temos ). Portanto, o neurônio Maxout desfruta de todos os benefícios de uma unidade ReLU (regime linear de operação, sem saturação) e não possui suas desvantagens (ReLU moribundo).max(w1Tx+b1,w2Tx+b2)w1,b1=0

No entanto, diferentemente dos neurônios da ReLU, ele duplica o número de parâmetros para cada neurônio, levando a um número total alto de parâmetros. 2

Você pode ler os detalhes aqui:
1. livro DL
2. http://cs231n.github.io/neural-networks-1

Aaron
fonte
Dobra apenas o número de parâmetros de polarização, nem todos os pesos.
hans