Isso é tratado extensivamente na literatura estatística, sob o tópico de regressão. Duas referências padrão aqui são o livro de Wasserman "todas as estatísticas não paramétricas" e "introdução à estimativa não paramétrica" de Tsybakov. Vou falar brevemente sobre algumas das coisas padrão e tentar fornecer indicadores fora das estatísticas (este é um tópico comum e diferentes campos têm culturas diferentes: provar tipos diferentes de teoremas, fazer suposições diferentes).
(Regressores de kernel, às vezes chamados de Nadaraya-Watson Estimator.) Aqui você escreve a função a qualquer momento como uma combinação ponderada de valores próximos. Mais concretamente, como isso está na literatura estatística, você normalmente supõe que tenha alguns exemplos extraídos de alguma distribuição e conserte algum kernel K (pode pensar nisso como um Gaussian, mas média zero é o que mais importa), e escrever
f ( x ) : = Σ i f ( x i( ( xEu, f( xEu) )) )ni = 1K
ondecn→∞(que são mais sensíveis a pequenas distâncias comonaumenta). A garantia é que, comon→∞, um critério probilístico de distorção (expectativa de sup-norma, alta probabilidade, seja qual for) seja zero. (Dificilmente importa comoK separece - importa mais como você escolhecn.)
f^( x ) : = ∑Euf( xEu) ( K( cn( x - xEu) ))∑jK( cn( x - xj) ))) ,
cn→ ∞nn → ∞Kcn
(Métodos de base.) Uma coisa semelhante é escolher uma família de "funções básicas", como Wavelets ou funções lineares por partes, mas realmente qualquer coisa que forme uma base (possivelmente incompleta) para o espaço vetorial e determine um valor linear linear ponderado. combinação de elementos dimensionados e traduzidos. As técnicas aqui diferem drasticamente de (1.); em vez de descartar as funções básicas centralizadas nos pontos de dados, você calcula cuidadosamente o peso e a localização de cada uma para minimizar algum critério de distorção. (Normalmente, sua quantidade é fixada a priori.) Uma abordagem está "perseguição", onde avidamente adicionar novas funções ao tentar minimizar alguns erro de aproximação entre f e feu2f^f. Para entender a diversidade de abordagens aqui, um artigo interessante é a "aproximação uniforme de funções com bases aleatórias", de Rahimi & Recht. Talvez eu deva dizer que o avô de todos esses é a expansão de Fourier; há muito material bom nisso no livro de Mallat sobre Wavelets.
(Métodos de árvore.) Outra maneira é olhar para uma função como uma árvore; em cada nível, você está trabalhando com alguma partição do domínio e retorna, por exemplo, o ponto médio. (Cada remoção da árvore também fornece uma partição.) No limite, a finura dessa partição não discretiza mais a função, e você a reconstruiu exatamente. A melhor forma de escolher esta partição é um problema difícil. (Você pode pesquisar no Google em "árvore de regressão".)
(Métodos polinomiais; veja também splines e outras técnicas de interpolação.) Pelo teorema de Taylor, você sabe que pode aproximar-se arbitrariamente de funções bem comportadas. Isso pode parecer uma abordagem muito básica (ou seja, basta usar o polinômio de interpolação de Lagrange), mas onde as coisas ficam interessantes é decidir qualpontos para interpolar. Isso foi investigado extensivamente no contexto da integração numérica; você pode encontrar algumas matemáticas incríveis nos tópicos de "quadratura de clenshaw-curtis" e "quadratura gaussiana". Estou jogando isso aqui porque os tipos de suposições e garantias aqui são tão drasticamente diferentes do que aparece acima. Eu gosto desse campo, mas esses métodos sofrem muito com a maldição da dimensão, pelo menos acho que é por isso que eles são menos discutidos do que costumavam ser (se você faz integração numérica com o mathematica, acho que faz quadratura para domínios univariados, técnicas de amostragem para domínios multivariados).
Considerando várias restrições à sua classe de função, você pode instanciar o acima para obter todos os tipos de outros cenários amplamente usados. Por exemplo, com funções com valor booleano, o limiar (1) será muito parecido com um estimador de vizinho mais próximo ou um SVM com algum kernel local (gaussiano). Muitas das coisas acima sofrem com a maldição da dimensão (os limites exibem dependência exponencial da dimensão). No aprendizado de máquina, você contorna isso restringindo explicitamente sua classe a alguma família (por exemplo, "métodos paramétricos) ou por uma restrição implícita, geralmente algo que relaciona a qualidade dos aproximadores à complexidade da função de destino (ou seja, um análogo do fraco pressuposto de aprendizagem ao impulsionar).
f: Rd→ R
f( x ) = ∑j = 02 dhj( ∑i = 1dgj , i( xEu) ) ,
gj , i: R → R e
hj: R → Ré (univariado) contínuo. Observe que, diferentemente das redes neurais, o
g'areia
htodos podem diferir. Mas mesmo assim, dado que existem apenas
Θ ( d2) funções flutuando, acho isso totalmente incrível.
(Você só perguntou sobre classes de função, mas achei que você também estaria interessado em métodos. Se não .. oops)