Quais são os benefícios de usar ReLU em relação ao softplus como funções de ativação?


Melhor resposta

ReLU é definido como f (x) = max (0, x). O softplus é seu substituto diferencial e é definido como f (x) = ln (1 + e ^ x).

Ambos ReLU e Softplus são muito semelhantes, exceto perto de 0, onde o softplus é sedutoramente suave e diferenciável. É muito mais fácil e eficiente calcular ReLU e sua derivada do que para a função softplus que tem log (.) E exp (.) Em sua formulação. Curiosamente, a derivada da função softplus é a função logística: f “(x) = \ frac {1} {1 + e ^ {- x}}.

No aprendizado profundo, computando a função de ativação e sua derivada é tão frequente quanto adição e subtração em aritmética. Ao alternar para ReLU, os passes para frente e para trás são muito mais rápidos, mantendo a natureza não linear da função de ativação necessária para que as redes neurais profundas sejam úteis.

Resposta

O objetivo principal de uma função de ativação deve ser não linear.

Deixe-me explique o porquê. Se você tiver uma rede de múltiplas camadas (chamada de “profunda” em relação a uma rede “superficial”), seu modelo poderá aprender a detectar ou lidar com exemplos muito mais sofisticados. Ao operar, sua rede utilizará mais interconexões entre pesos (e provavelmente mais pesos). Ao fazer os cálculos, muito disso significa na verdade multiplicar e somar números, como:

y = f (W x + b).

sendo f (\ cdot) alguma função de ativação.

Quando você “coloca em cascata” as camadas, a saída de cada camada se torna uma entrada para a próxima. Para 2 camadas, por exemplo:

y = x\_2 = f (W\_2 x\_1 + b\_2) = f (W\_2 f (W\_1 x\_0 + b\_1) + b\_2).

No entanto, se f (\ cdot) era uma função linear f (x) = \ alpha x + \ beta então toda a rede “colapsaria” em apenas uma rede de camada, simplesmente porque qualquer combinação linear de funções lineares é uma função linear em si.

A equação acima renderizaria:

x\_2 = \ alpha (W\_2 (\ alpha (W\_1 x\_0 + b\_1) + \ beta) + b\_2) + \ beta = \ alpha ^ 2 W\_1 W\_2 x\_0 + \ alpha ^ 2 W\_1 W\_2 b\_1 + \ alpha ^ 2 W\_2 \ beta + \ alpha W\_2 b\_1 + \ beta = \ alpha “x\_0 + \ beta “.

Isso é como se você tivesse uma rede de camada única com pesos ligeiramente diferentes.

Agora, ReLU introduz a não linearidade, o que significa que a afirmação acima não é mais válida, então o otimizador tem que “se esforçar mais” para realmente treinar as pesagens e fazer tudo funcionar. É claro que existem outras funções não lineares também (por exemplo, sigmóide, tanh, etc.), mas o ponto principal é que elas devem ser não lineares.

Finalmente, o exemplo que acabamos de escrever é baseado em uma rede simples e densamente conectada, mas acho que se estende a outros casos também.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *