Eu postei isso anteriormente no MSE, mas foi sugerido que aqui pode ser um lugar melhor para perguntar.
O teorema da aproximação universal afirma que "a rede de alimentação padrão de múltiplas camadas com uma única camada oculta, que contém um número finito de neurônios ocultos, é um aproximador universal entre funções contínuas em subconjuntos compactos de Rn, sob suposições suaves sobre a função de ativação".
Entendo o que isso significa, mas os documentos relevantes estão muito além do meu nível de compreensão matemática para entender por que é verdade ou como uma camada oculta aproxima funções não lineares.
Assim, em termos um pouco mais avançados que o cálculo básico e a álgebra linear, como uma rede feed-forward com uma camada oculta aproxima funções não lineares? A resposta não precisa necessariamente ser totalmente concreta.
Respostas:
O resultado de Cybenko é bastante intuitivo, como espero transmitir abaixo; o que torna as coisas mais complicadas é que ele estava buscando tanto a generalidade quanto um número mínimo de camadas ocultas. O resultado de Kolmogorov (mencionado por vzn) na verdade alcança uma garantia mais forte, mas é um pouco menos relevante para o aprendizado de máquina (em particular, ele não constrói uma rede neural padrão, pois os nós são heterogêneos); esse resultado, por sua vez, é assustador, pois na superfície são apenas 3 páginas, registrando alguns limites e funções contínuas, mas, na realidade, está construindo um conjunto de fractais. Embora o resultado de Cybenko seja incomum e muito interessante devido às técnicas exatas que ele usa, os resultados desse sabor são amplamente utilizados no aprendizado de máquina (e posso apontar para outras pessoas).
Aqui está um resumo de alto nível de por que o resultado de Cybenko deve se manter.
Em relação ao primeiro ponto acima, isso pode ser tomado como a afirmação "uma função contínua sobre um conjunto compacto é uniformemente contínua". O que isto significa para nós é que você pode levar a sua função contínua sobre , e alguns de erro alvo ε > 0 , então você pode grade [ 0 , 1 ] d em escala τ > 0 (terminando com cerca de ( 1 / τ ) d subcubos) para que uma função constante sobre cada subcubo esteja dentro de ϵ da função de destino.[0,1]d ϵ>0 [0,1]d τ>0 (1/τ)d ϵ
Agora, uma rede neural não pode representar com precisão um indicador, mas você pode chegar muito perto. Suponha que a "função de transferência" seja um sigmóide. (Função de transferência é a função contínua que você aplica a uma combinação linear de entradas para obter o valor do nó da rede neural.) Então, ao aumentar os pesos, você gera algo próximo a 0 ou próximo a 1 para mais entradas. Isso é consistente com o desenvolvimento de Cybenko: observe que ele precisa que as funções envolvidas sejam iguais a 0 ou 1 no limite: por definição de limite, você entende exatamente o que estou dizendo, o que significa que você aproxima as coisas arbitrariamente de 0 ou 1.
(Eu ignorei a função de transferência na camada final; se estiver lá e for contínua, então podemos ajustar qualquer mapeamento para substituindo os pesos constantes pelo algo na imagem inversa dessa constante de acordo com a transferência função.)[0,1]
Observe que o exposto acima pode levar algumas camadas: digamos, 2 para construir os indicadores em cubos e, em seguida, uma camada final de saída. Cybenko estava tentando dois pontos de generalidade: número mínimo de camadas ocultas e flexibilidade na escolha da função de transferência. Eu já descrevi como ele trabalha com flexibilidade na função de transferência.
Para obter o número mínimo de camadas, ele evita a construção acima e usa a análise funcional para desenvolver uma contradição. Aqui está um esboço do argumento.
O nó final calcula uma combinação linear dos elementos da camada abaixo e aplica uma função de transferência a ele. Essa combinação linear é uma combinação linear de funções e, como tal, é ela própria uma função, uma função dentro de algum subespaço de funções, estendida pelos possíveis nós na camada oculta.
Um subespaço de funções é como um subespaço de dimensão finita comum, com a principal diferença de que não é potencialmente um conjunto fechado; é por isso que todos os argumentos de cybenko fecham esse subespaço. Estamos tentando provar que esse fechamento contém todas as funções contínuas; isso significa que estamos arbitrariamente próximos de todas as funções contínuas.
Se o espaço funcional fosse simples (um espaço de Hilbert), poderíamos argumentar da seguinte maneira. Escolha alguma função contínua de destino que, contraditoriamente, não esteja no subespaço e projete-a no complemento ortogonal do subespaço. Este resíduo deve ser diferente de zero. Porém, como nosso subespaço pode representar coisas como aqueles pequenos cubos acima, podemos encontrar alguma região desse resíduo, encaixar um pequeno cubo nele (como acima) e, assim, nos aproximarmos da nossa função de destino. Isso é uma contradição, pois as projeções escolhem elementos mínimos. (Note, estou deixando algo de fora aqui: o argumento de Cybenko não constrói pequenos cubos, ele lida com isso de maneira geral também; é aqui que ele usa uma forma do teorema da representação de Riesz e propriedades das funções de transferência (se bem me lembro) corretamente, há um lema separado para esta etapa,
Não estamos no espaço de Hilbert, mas podemos usar o teorema de Hahn-Banach para substituir a etapa de projeção acima (observe que provar que Hahn-Banach usa o axioma da escolha).
Agora, gostaria de dizer algumas coisas sobre o resultado de Kolmogorov. Embora esse resultado aparentemente não precise do tipo de histórico de Cybenko, eu pessoalmente acho que é muito mais intimidador.
Aqui está o porquê. O resultado de Cybenko é uma garantia de aproximação : não diz que podemos representar exatamente qualquer coisa. Por outro lado, o resultado de Kolmogorov é uma igualdade . Mais ridiculamente, ele diz o tamanho da rede: você precisa apenas de nós. Para alcançar esse fortalecimento, é claro que há um problema, o que mencionei acima: a rede é heteregênea, com o que quero dizer que todas as funções de transferência não são as mesmas.O ( d2)
Ok, então, com tudo isso, como isso pode funcionar?
Vamos voltar aos nossos cubos acima. Observe que tivemos que assar com um nível de precisão: para cada , precisamos voltar e escolher um τ > 0 mais refinado . Como estamos trabalhando com combinações lineares (finitas) de indicadores, nunca estamos representando exatamente nada. (as coisas só pioram se você incluir os efeitos aproximados dos sigmóides.)ε > 0 τ> 0
Observe que o resultado de Cybenko, devido ao uso de apenas um tipo de função de transferência, é mais relevante para o aprendizado de máquina. Teoremas desse tipo são muito comuns no aprendizado de máquina (vzn sugeriu isso em sua resposta, no entanto, ele se referiu ao resultado de Kolmogorov, que é menos aplicável devido às funções de transferência personalizadas; isso é enfraquecido em algumas versões mais sofisticadas do resultado de Kolmogorov (produzido por outros autores), mas ainda envolvem fractais e pelo menos duas funções de transferência).
Eu tenho alguns slides sobre esses tópicos, que eu poderia postar se você estiver interessado (espero que seja menos grosseiro que o anterior, e tenha algumas fotos; eu as escrevi antes de ser adepto de Hahn-Banach, no entanto). Eu acho que as duas provas são muito, muito legais. (Além disso, tenho outra resposta aqui sobre esses tópicos, mas escrevi antes de ter grochado o resultado de Kolmogorov.)
fonte
Há um resultado avançado, chave para o aprendizado de máquina, conhecido como teorema de Kolmogorov [1]; Eu nunca vi um esboço intuitivo do porquê funciona. Isso pode ter a ver com as diferentes culturas que a abordam. A turma de aprendizado aplicado considera o teorema de Kolmogorov como um teorema da existência que apenas indica que os NNs podem existir; portanto, pelo menos a estrutura não é excessivamente limitadora, mas o teorema não garante que esses NNs possam ser encontrados. Os matemáticos não estão tão preocupados com aplicações de baixo nível do teorema.
O teorema também foi historicamente usado para invocar / defender a sofisticação inerente das NNs multicamadas para combater uma crítica de Perceptrons (Minsky / Papert) de que havia funções básicas (isto é, não lineares) que eles não podiam aprender.
Os cientistas teóricos da computação preferem não considerar os RNs como "aproximações" , pois esse termo tem um significado especial / diferente. Provavelmente, existe uma analogia grosseira com a interpolação linear por partes, mas, novamente, eu não a vi apresentada.
[1] Kolmogorov, AN (1957). Na representação de funções contínuas de muitas variáveis por superposição de funções contínuas de uma variável e adição. Doklady Akademii Nauk SSSR, 144, 679-681; Tradução da Sociedade Americana de Matemática, 28, 55-59 [1963]
[2] 2.3 Recursos de aproximação de redes neurais feedforward para funções contínuas
[3] Teorema de Kolmogorov e redes neurais multicamadas Kurkova
fonte