Propagação posterior: nos métodos de segunda ordem, a derivada ReLU seria 0? e qual o seu efeito no treinamento?

7

ReLU é uma função de ativação definida como h=max(0,a)onde .a=Wx+b

Normalmente, treinamos redes neurais com métodos de primeira ordem, como SGD, Adam, RMSprop, Adadelta ou Adagrad. A retropropagação em métodos de primeira ordem requer derivada de primeira ordem. Portanto é derivado de .x1

Mas se usarmos métodos de segunda ordem, a derivada de ReLU seria ? Porque é derivado de e é derivado novamente para . Seria um erro? Por exemplo, com o método de Newton, você dividirá por . (Ainda não entendo realmente a otimização sem Hessian. IIRC, é uma questão de usar um Hessian aproximado em vez do real).0x100

Qual é o efeito deste ? Ainda podemos treinar a rede neural com ReLU com métodos de segunda ordem? Ou seria não treinável / erro (nan / infinito)?h=0


Para maior clareza, é ReLU como f(x) :

f(x)=

0forx<0xforx0

f(x)=

0forx<01forx0

f(x)=0

rilut
fonte

Respostas:

5

Sim, a derivada de segunda ordem da ReLU é 0. Tecnicamente, nem nem são definidos em , mas ignoramos isso - na prática, um exato é raro e não é especialmente significativo, portanto, isso não é um problema. O método de Newton não funciona na função de transferência ReLU porque não possui pontos estacionários. Porém, ele também não funciona significativamente na maioria das outras funções comuns de transferência - elas não podem ser minimizadas ou maximizadas para entradas finitas.dydxd2ydx2x=0x=0

Quando você combina várias funções ReLU com camadas de multiplicações de matrizes em uma estrutura como uma rede neural e deseja minimizar uma função objetiva, a imagem é mais complicada. Essa combinação tem pontos estacionários. Mesmo um único neurônio ReLU e um objetivo de erro quadrado médio terão um comportamento suficientemente diferente, de modo que a derivada de segunda ordem do peso único varia e não é garantida que seja 0.

Não linearidades quando várias camadas se combinam é o que cria uma superfície de otimização mais interessante. Isso também significa que é mais difícil calcular derivadas parciais de segunda ordem úteis (ou matriz de Hessian ), não se trata apenas de derivar derivadas de segunda ordem das funções de transferência.

O fato de que para a função de transferência fará com que alguns termos sejam zero na matriz (para o efeito de segunda ordem da mesma ativação do neurônio), mas a maioria dos termos no Hessian é da forma onde E é o objetivo e , são parâmetros diferentes da rede neural. Uma matriz Hessiana totalmente realizada terá termos em que é o número de parâmetros - com grandes redes neurais com mais de 1 milhão de parâmetros, mesmo com um processo de cálculo simples e muitos termos sendo 0 (por exemplo, 2 pesos na mesma camada) pode não ser possível calcular.d2ydx2=02ExixjxixjN2N

Existem técnicas para estimar os efeitos de derivadas de segunda ordem usadas em alguns otimizadores de redes neurais. O RMSProp pode ser visto como uma estimativa aproximada de efeitos de segunda ordem, por exemplo. Os otimizadores "livres de Hessian" calculam mais explicitamente o impacto dessa matriz.

Neil Slater
fonte
Então vai ficar tudo bem? Não está errado (nan / infinito)?
Rilut
Ouvi falar sobre otimização sem Hessian, pensei que era apenas usar um Hessian aproximado em vez do real?
Rilut
11
Sim, acho que a maioria das técnicas estima o Hessian em vez de tentar calculá-lo com robustez. Eu não sei por que, mas presumo que é difícil ou impossível construir a retropropagação, pois os efeitos de segunda ordem envolvem termos, por exemplo, que xey são parâmetros de diferentes camadas. 2xy
Neil Slater
11
@rilut: atualizei a resposta, pois acho que sua confusão decorre do fato de o método de Newton não funcionar na função de transferência ReLU. Você está correto sobre isso. Mas uma vez combinada a ReLU com uma função objetiva (mesmo algo tão simples quanto um único neurônio e uma objetiva com erro quadrado médio), ela começará a funcionar.
Neil Slater
Impressionante. Simplesmente fantástico.
Rilut