Recentemente, houve uma pergunta semelhante ao ML na troca de pilha de teoria, e eu postei uma resposta recomendando o método de Powell, descida de gradiente, algoritmos genéticos ou outros "algoritmos de aproximação". Em um comentário, alguém me disse que esses métodos eram "heurísticos" e não "algoritmos de aproximação" e frequentemente não chegavam perto do ideal teórico (porque "freqüentemente ficam presos nos mínimos locais").
Outros concordam com isso? Além disso, parece-me que existe uma sensação de que os algoritmos heurísticos podem se aproximar dos ótimos teóricos se forem configurados para explorar grande parte do espaço de pesquisa (por exemplo, definir parâmetros / tamanhos de etapas pequenos), embora eu ainda já vi isso em um jornal. Alguém sabe se isso foi demonstrado ou comprovado em um artigo? (se não for para uma classe grande de algoritmos, talvez para uma classe pequena digamos NNs etc.)
Respostas:
Eu acho que você está misturando vários conceitos importantes. Deixe-me tentar esclarecer algumas coisas:
Existem métodos metaheurísticos, que são métodos que tentam iterativamente melhorar uma solução candidata. Exemplos disso são pesquisa tabu, recozimento simulado, algoritmos genéticos etc. Observe que, embora possa haver muitos casos em que esses métodos funcionam bem, não há um entendimento profundo de quando esses métodos funcionam e quando não funcionam. E o mais importante, quando eles não chegam à solução, podemos estar arbitrariamente longe dela. Os problemas resolvidos pelos métodos metaheurísticos tendem a ser discretos por natureza, porque existem ferramentas muito melhores para lidar com problemas contínuos. Mas de vez em quando você vê metaheurísticas para problemas contínuos também.
Existem métodos de otimização numérica, as pessoas nesta comunidade examinam cuidadosamente a natureza da função que deve ser otimizada e as restrições da solução (em grupos como otimização convexa, programação quadrática, programação linear etc.) e aplicam algoritmos que foram mostrados trabalhar para esse tipo de função e esse tipo de restrição. Quando as pessoas nesta área dizem "mostrado para trabalhar", elas significam uma prova. A situação é que esses tipos de métodos funcionam em problemas contínuos. Mas quando seu problema se enquadra nessa categoria, essa é definitivamente a ferramenta a ser usada.
Existem métodos discretos de otimização, que tendem a ser coisas que, por natureza, estão conectadas a algoritmos para problemas discretos bem estudados: como caminhos mais curtos, fluxo máximo, etc. As pessoas nessa área também se preocupam com o fato de seus algoritmos realmente funcionarem (provas). Há um subconjunto de pessoas neste grupo que estuda problemas realmente difíceis para os quais não se espera que exista um algoritmo rápido. Eles estudam algoritmos de aproximação, que são algoritmos rápidos, para os quais são capazes de mostrar que sua solução está dentro de um fator constante do verdadeiro ideal. Isso é chamado de "algoritmos de aproximação". Essas pessoas também mostram seus resultados como provas.
Então ... para responder sua pergunta, não acho que as metaheurísticas sejam algoritmos de aproximação. Não me parece algo ligado à opinião, é apenas fato.
fonte
O aprendizado de máquina geralmente lida com a otimização de uma função que possui muitos mínimos locais. Redes neurais feedforward com unidades ocultas são um bom exemplo. Sejam essas funções discretas ou contínuas, não há método que atinja um mínimo global e pare. É fácil provar que não há algoritmo geral para encontrar um mínimo global de uma função contínua, mesmo que seja unidimensional e suave (com infinitas derivadas). Na prática, todos os algoritmos para o aprendizado de redes neurais ficaram no mínimo local. É fácil verificar isso: crie uma rede neural aleatória, faça um grande conjunto de respostas a entradas aleatórias e tente aprender outra rede neural com a mesma arquitetura para copiar as respostas. Embora a solução perfeita exista, nem a retropropagação, nem qualquer outro algoritmo de aprendizado poderá descobri-la,
Alguns métodos de aprendizado, como recozimento simulado ou algoritmos genéticos, exploram muitos mínimos locais. Para funções contínuas, existem métodos como a descida em gradiente, que encontram o mínimo local mais próximo. Eles são muito mais rápidos, por isso são amplamente utilizados na prática. Mas, com tempo suficiente, o primeiro grupo de métodos supera o posterior em termos de erro no conjunto de treinamento. Mas, com restrições de tempo razoáveis, para problemas do mundo real, o último grupo geralmente é melhor.
Para alguns modelos, como regressão logística, há um mínimo local, a função é convexa, a minimização converge para o mínimo, mas os modelos são simplistas.
Essa é a verdade amarga.
Observe também que a prova de convergência e a prova de convergência para a melhor solução são duas coisas diferentes. O algoritmo K-means é um exemplo disso.
Finalmente, para alguns modelos, não sabemos como aprender. Por exemplo, se a saída é uma função computável arbitrária das entradas, não conhecemos bons algoritmos que, em tempo razoável, encontram uma máquina de Turing ou equivalente implementando essa função. Por exemplo, se f (1) = 2, f (2) = 3, f (3) = 5, f (4) = 7, ..., f (10) = 29 (dez primeiros primos), não fazemos conhece algum algoritmo de aprendizagem capaz de prever, em tempo razoável, que f (11) = 31, a menos que já conheça o conceito de números primos.
fonte