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 ).
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?
Não. Pelo menos não se aceitarmos essa definição de função;
... uma relação entre um conjunto de entradas e um conjunto de saídas permitidas com a propriedade em que cada entrada está relacionada exatamente a uma saída. [ Wikipedia ]
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)
f(x)=ψ(b+wx)
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 !bwf(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;
F(x)=F(x−1)+F(x−2)
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:
F(x)=ϕn−ψn5√
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.