Eu estava pensando e tentando entender se existe alguma razão matemática por trás da superioridade das RNNs sobre as redes Feed-forward ao lidar com dados sequenciais. Por exemplo, ao modelar séries temporais, HMMs, etc. Suponha que o comprimento da sequência seja fixo, mas muito grande.
Intuitivamente, está claro que os RNNs são capazes de lembrar as informações relevantes até o instante atual de tempo na variável de estado e usá-lo para atualizar seu estado para base na entrada atual . Por exemplo, se queremos modelar usando uma rede Feed-forward, devemos ter um nó de entrada para cada e somar para obtê-lo enquanto que com a RNN apenas precisa de um único nó de entrada para e o estado se lembra da soma .
Embora o exemplo acima seja bastante elementar, ele destaca que a complexidade do RNN (número de nós, profundidade) é muito menos comparada à de um feed-forward.
Alguém pode fornecer um exemplo de famílias de funções que não podem ser capturadas pelo Feed-forward, mas podem ser bem aproximadas pelas RNNs? Qualquer referência direcionada para o mesmo também é apreciada.
fonte
Respostas:
Não acho que essa seja uma resposta muito satisfatória, porque é uma prova por definição, mas acredito que seja correta mesmo assim (embora não muito matemática ).
Não. Pelo menos não se aceitarmos essa definição de função;
Se imaginarmos alguma função hipotética que opere em algum vetor de entradas e ainda não possa ser expressa por nenhuma rede neural de feed forward, poderíamos simplesmente usar como uma função de transferência e, voila , podemos agora construa um perceptron simples que executa um superconjunto da funcionalidade de ;ψ(x) x ψ(x) ψ(x)
Vou deixar como um exercício para o leitor descobrir quais valores precisamos para o vetor de viés, peso, , a fim de fazer com que nossa saída de perceptron imite a de nossa função misteriosa !b w f(x) ψ(x)
A única coisa que uma RNN pode fazer que uma rede de encaminhamento de feed não pode é reter o estado. Em virtude do requisito de que uma entrada mapeie apenas uma única saída, as funções não podem reter o estado. Portanto, pelo exemplo acima distorcido, podemos ver que uma rede de feed forward pode fazer qualquer coisa (mas não mais) do que qualquer função (contínua ou não).
Nota : acho que respondi à sua pergunta, mas acho que vale a pena destacar uma pequena ressalva; embora não exista uma função que não possa ser mapeada por uma rede de feed-forward, certamente existem funções que são mais adequadas para RNNs do que redes de feed-forward. Qualquer função organizada de tal maneira que os conjuntos de recursos dentro da função sejam prontamente expressos como transformações de resultados anteriores pode ser mais adequada a uma RNN.
Um exemplo disto pode ser encontrar o N ° número da sequência de Fibonacci, sse as entradas são apresentados sequencialmente;
Um RNN pode aproximar essa sequência efetivamente usando apenas um conjunto de funções de transformação linear, enquanto uma função sem estado, ou rede neural de avanço, precisaria aproximar a solução funcional da sequência de Fibonacci:
onde é a proporção áurea e .ϕ ψ≈1.618
Como você pode imaginar, a primeira variante é muito mais fácil de aproximar-se, dada a matriz usual de funções de transferência disponíveis para o projetista de uma rede neural.
fonte