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.
- Uma função contínua em um conjunto compacto pode ser aproximada por uma função constante por partes.
- Uma função constante por partes pode ser representada como uma rede neural da seguinte maneira. Para cada região em que a função é constante, use uma rede neural como uma função indicadora para essa região. Em seguida, construa uma camada final com um único nó, cuja combinação linear de entrada é a soma de todos os indicadores, com um peso igual ao valor constante da região correspondente na função constante por partes original.
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
[ 0 , 1 ][ 0 , 1 ]dO ( d2)RdRO ( d2)
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.)