Intuição matemática para o uso de Re-Lu no Machine Learning


10

Portanto, atualmente as funções de ativação mais usadas são as Re-Lus. Então eu respondi a esta pergunta Qual é o objetivo de uma função de ativação nas redes neurais? e enquanto escrevia a resposta, como exatamente a função não linear aproximada de Re-Lu pode?

Por pura definição matemática, com certeza, é uma função não linear devido à curva acentuada, mas se nos limitarmos à parte positiva ou negativa do eixo x, então será linear nessas regiões. Digamos que tomemos todo o eixo x também, então também é meio linear (não no sentido matemático estrito) no sentido de que ele não pode aproximar satisfatoriamente funções curvilíneas como onda senoidal ( 0 --> 90) com uma camada oculta de um único nó possível por um sigmóide função de ativação.

Então, qual é a intuição por trás do fato de que Re-Lu's são usados ​​em NNs, fornecendo desempenho satisfatório (não estou perguntando o objetivo dos Re-lu), mesmo sendo lineares? Ou funções não lineares como sigmóide e tanh são lançadas no meio da rede algumas vezes?

EDIT: Conforme comentário de @ Eka, Re-Lu deriva sua capacidade de descontinuidade atuando nas camadas profundas da Rede Neural. Isso significa que os Re-Lu são bons, desde que sejam usados ​​em Deep NN's e não em NN raso?


2
Não sou especialista, mas encontrei este link quora.com/…
Eka

11
@Eka ligação agradável .... mas eles estão afirmando fatos sem dar uma boa intuição
DuttaA

3
Isso é um palpite; A capacidade do relu de aproximar funções não lineares pode ser resultado de sua propriedade de descontinuidade, ou seja, max(0,x)atuando em camadas profundas da rede neural. Há uma pesquisa openai em que calculado funções não-lineares usando um profundo redes lineares aqui está o link blog.openai.com/nonlinear-computation-in-linear-networks
Eka

Respostas:


2

As saídas de uma rede ReLU são sempre "lineares" e descontínuas. Eles podem aproximar curvas, mas pode levar muitas unidades ReLU. No entanto, ao mesmo tempo, suas saídas serão interpretadas como uma saída contínua e curva.

Imagine que você treinou uma rede neural que recebe x 3 e produz | x 3 | (que é semelhante a uma parábola). É fácil para a função ReLU funcionar perfeitamente. Nesse caso, a saída é curvada.

Mas na verdade não é curvado. As entradas aqui estão 'linearmente' relacionadas às saídas. Tudo o que a rede neural faz é pegar a entrada e retornar o valor absoluto da entrada. Ele executa uma função 'linear', não curva. Você só pode ver que a saída não é linear quando a representa com relação aos valores x originais (x em x 3 ).

Portanto, quando plotamos a saída em um gráfico e ela parece curvada, geralmente é porque associamos valores x diferentes à entrada e, em seguida, plotamos a saída como a coordenada y em relação a esses valores x.

Ok, então você quer saber como modelaria suavemente sin (x) usando ReLU. O truque é que você não deseja colocar x como entrada. Em vez disso, coloque algo curvado em relação a x como entrada, como x 3 . Portanto, a entrada é x 3 e a saída é sin (x). A razão pela qual isso funcionaria é que não está computando o seno da entrada - está computando o seno da raiz do cubo da entrada. Nunca poderia calcular sem problemas o seno da própria entrada. Para representar graficamente a saída sin (x), coloque o x original como a coordenada x (não coloque a entrada) e coloque a saída como a coordenada y.


A abordagem que você está dando exigiria muitos relus é o meu palpite ... Você está discretizando a curva ... Então, para curvas mais refinadas, precisamos de mais relus ... Correto?
DuttaA

Não é bem assim, IMO. Se você escolher várias combinações lineares diferentes da entrada na primeira camada, você terá muitos tipos diferentes de curvas disponíveis para juntar na próxima camada, novamente com combinações mais lineares. Isso pode resultar em uma saída sem falhas. Imagine, por exemplo, se você recortar e colar as curvas apenas nos extremos locais. Então as curvas resultantes seriam quase perfeitamente contínuas. Também depende exatamente de quão bem você deseja que a saída seja. É verdade, porém, que existem funções de ativação melhores do que a ReLU devido à sua linearidade excessiva (por exemplo, ELU)
foto padrão

Eu não conseguia entender como nós vamos ter muitas curvas diferentes disponíveis por um simples Re-lu..it será apenas uma combinação de 2 linhas retas
DuttaA

@DuttaA As linhas retas são apenas a função de mapeamento. Você pode mapear uma curva para uma curva usando um mapeamento Relu. Tudo que você precisa é ter uma curva como dados de entrada.
Imagem padrão

@DuttaA A linha do número de entrada é uma linha reta e a linha do número de saída é uma linha reta, mas isso não diz nada sobre a forma dos dados na linha do número. O plano xy é um espaço euclidiano retangular, mas você pode ter curvas dentro do espaço retangular.
Imagem padrão
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.