A rede neural profunda pode aproximar a função de multiplicação sem normalização?

27

Digamos que queremos fazer a regressão de forma simples f = x * yusando uma rede neural profunda padrão.

Lembro-me de que existem novas pesquisas que indicam que NN com uma camada hiden pode aproximar qualquer função, mas tentei e sem normalização o NN não conseguiu aproximar nem mesmo essa multiplicação simples. Somente a normalização de log de dados ajudou. m = x*y => ln(m) = ln(x) + ln(y). Mas isso parece uma trapaça. O NN pode fazer isso sem a normalização do log? A resposta é obviamente (quanto a mim) - sim, então a questão é mais o que deve ser o tipo / configuração / layout desse NN?

Brans Ds
fonte

Respostas:

13

Um grande gradiente de função de multiplicação força a rede provavelmente quase imediatamente em algum estado horrível, onde todos os nós ocultos têm um gradiente zero (devido aos detalhes e limitações da implementação da rede neural). Podemos usar duas abordagens:

  1. Divida por uma constante. Estamos apenas dividindo tudo antes do aprendizado e depois multiplicando.
  2. Use normalização de log. Faz multiplicação em adição:

    m=xyem(m)=em(x)+em(y)

Brans Ds
fonte
5

Uma pergunta semelhante me ocorreu hoje mais cedo e fiquei surpreso por não encontrar uma resposta rápida. Minha pergunta era que, dado que as NNs apenas possuem funções de soma, como elas podem modelar funções multiplicativas.

Este tipo de resposta, embora fosse uma explicação longa. Meu resumo seria que o NN modela a superfície da função em vez da própria função. O que é óbvio, em retrospecto…

Miss Palmer
fonte
5

NN com função de ativação relu pode aproximar a multiplicação quando a faixa de entradas é limitada. Lembre-se disso relu(x) = max(x, 0).

É suficiente se NN se aproxima de uma função quadrada g(z) = z^2, porque x*y = ((x-y)^2 - x^2 - y^2)/(-2). O lado direito tem apenas combinações lineares e quadrados.

NN pode se aproximar z^2com uma função linear por partes. Por exemplo, no intervalo, [0, 2]uma combinação de xe relu(2(x-1))não é tão ruim assim. A figura abaixo visualiza isso. Não faço ideia se isso é útil além da teoria :-) insira a descrição da imagem aqui

Jussi Kujala
fonte
0

"uma camada oculta" não limita o número de neurônios e tipos de função de ativação usados, ainda possui um grande espaço de representação. Um método simples para validar a existência desse problema: treine esse problema de regressão com uma rede real de neurônios, registre cada peso e desvio, use esses parâmetros para traçar a curva de previsão, contrastando-a com a curva da função de destino. Este ensaio pode ajudar.

chongkai Lu
fonte
0

Não consigo comentar por ser um usuário recém-ativo no StackExchange. Mas acho que essa é uma pergunta importante, porque é muito simples de entender, mas difícil de explicar. Com respeito, não acho que a resposta aceita seja suficiente. Se você pensar nas operações principais de um NN de feed-forward padrão, com ativações do formulário s(W*x+b)para alguma função de ativação não linear s, na verdade não é óbvio como "obter" a multiplicação disso, mesmo em uma rede composta (multicamada). Escalar (o primeiro marcador na resposta aceita) não parece abordar a questão de maneira alguma ... escalar com o quê? As entradas xe ysão presumivelmente diferentes para cada amostra. E tomar o log é bom, desde que você saibaé isso que você precisa fazer e cuidar da questão do sinal no pré-processamento (já que obviamente o log não está definido para entradas negativas). Mas isso fundamentalmente não combina com a noção de que as redes neurais podem apenas "aprender" (parece uma trapaça, como dizia o OP). Não acho que a pergunta deva ser considerada respondida até que seja realmente, por alguém mais esperto que eu!

Dave B.
fonte