Estou trabalhando no aprendizado de máquina teórico - no aprendizado de transferência, para ser específico - para meu doutorado.
Por curiosidade, por que devo fazer um curso sobre otimização convexa?
Que conclusões da otimização convexa posso usar em minha pesquisa sobre aprendizado teórico de máquinas?
machine-learning
optimization
convex
transfer-learning
Upendra Pratap Singh
fonte
fonte
Respostas:
Os algoritmos de aprendizado de máquina usam otimização o tempo todo. Minimizamos a perda, o erro ou maximizamos algum tipo de função de pontuação. A descida de gradiente é o algoritmo de otimização "olá mundo", coberto provavelmente em qualquer curso de aprendizado de máquina. É óbvio no caso de modelos de regressão ou classificação, mas mesmo com tarefas como clustering, estamos procurando uma solução que se encaixe perfeitamente aos nossos dados (por exemplo, k-means minimiza a soma dos quadrados dentro do cluster). Portanto, se você quiser entender como os algoritmos de aprendizado de máquina funcionam, aprender mais sobre otimização ajuda. Além disso, se você precisar fazer coisas como ajuste de hiperparâmetro, também estará usando diretamente a otimização.
Alguém poderia argumentar que a otimização convexa não deve ser tão interessante para o aprendizado de máquina, pois, em vez de lidar com funções convexas , geralmente encontramos superfícies de perda como a abaixo, que estão longe de ser convexas .
(fonte: https://www.cs.umd.edu/~tomg/projects/landscapes/ e arXiv: 1712.09913 )
No entanto, como mencionado em outras respostas, a otimização convexa é mais rápida, mais simples e menos intensiva em termos computacionais; portanto, é mais fácil "convexar" um problema (torne a otimização convexa amigável) e use a otimização não convexa. Por exemplo, algoritmos de descida de gradiente e similares são comumente usados no aprendizado de máquina, especialmente para redes neurais, porque "trabalham", escalam e são amplamente implementados em diferentes softwares; no entanto, eles não são os melhores que podemos obter e ter suas armadilhas. , conforme discutido pela palestra de Ali Rahimi no NIPS 2017 .
Por outro lado, algoritmos de otimização não convexos, como algoritmos evolutivos, parecem estar ganhando cada vez mais reconhecimento na comunidade de ML, por exemplo, o treinamento de redes neurais por neuroevolução parece ser um tópico de pesquisa recente (consulte também arXiv: 1712.07897 ).
fonte
Eu acho que há duas perguntas aqui.
Eu acho que o @Tim tem uma boa resposta sobre o porquê da otimização. Concordo plenamente e recomendaria qualquer pessoa interessada em aprendizado de máquina para dominar a otimização contínua. Porque o processo de otimização / encontrar a melhor solução ao longo do tempo, é o processo de aprendizado para um computador.
Quero falar mais sobre por que estamos interessados em funções convexas. O motivo é simples: otimizações convexas são "mais fáceis de resolver" e temos muito algoritmo confiável para resolver.
Mas o mundo é convexo? Não. Por que obcecado com a convexidade? Verifique esta metáfora
fonte
O ponto mais importante é que o aprendizado de máquina é aplicado a problemas em que não há uma solução ideal disponível. O melhor que você pode fazer é encontrar uma boa aproximação.
Por outro lado, quando você tem um problema de otimização, existe uma solução ideal, mas geralmente ela não pode ser encontrada em tempo razoável ou com poder de processamento razoável.
As ferramentas e algoritmos que você usa são fundamentalmente diferentes. Portanto, embora eu diria que não há benefício imediato em ter uma aula de otimização, é sempre bom saber um pouco sobre os campos relacionados. Se você conseguir reconhecer um problema de otimização, saberá que não deve enfrentá-lo com algoritmos de aprendizado de máquina, mas sim com algoritmos de otimização. Só isso vale muito, eu diria.
fonte
Como disse hxd1011, os problemas convexos são mais fáceis de resolver, tanto teoricamente quanto (normalmente) na prática. Portanto, mesmo para problemas não convexos, muitos algoritmos de otimização começam com a "etapa 1. reduza o problema a um convexo" (possivelmente dentro de um loop while).
O mesmo ocorre com a busca de raiz não linear. Normalmente, a solução (por exemplo, com o método de Newton) vai "passo 1. Reduza para um problema linear, porque sabemos como resolvê-los".
fonte
Se seus interesses estão na otimização (convexa) aplicada ao aprendizado profundo (você menciona o aprendizado de transferência, que é amplamente usado na prática com redes neurais), recomendo fortemente que você considere a leitura do capítulo 8 (otimização para o treinamento de redes neurais profundas) de http : //www.deeplearningbook.org/
Há uma discussão sobre otimização convexa e por que ela ainda não teve tanto sucesso quando aplicada redes neurais profundas. Claro, talvez você possa fazer pesquisas nessa área que mudarão o consenso atual!
fonte
Como ouvi de Jerome H. Friedman, os métodos desenvolvidos no Machine Learning não são, de fato, pertencentes à comunidade do Machine Learning.
Do meu ponto de vista, o Machine Learning é mais como uma coleção de vários métodos de outros campos.
Do ponto de vista do aprendizado estatístico, as três principais questões para regressão e classificação são:
Qual é a família de funções da qual você puxa o aproximador
O que é um critério como você puxa uma função
O que é um método para encontrar a melhor função
Para operar de alguma maneira construtiva em (1) - não é tão óbvio como o uso da otimização matemática pode ajudar
Para operar de alguma maneira construtiva em (2) - é óbvio que objetivo é o objetivo. E a otimização da matemática pode ajudar nisso.
Para operar de alguma maneira construtiva em (3) - você precisa de otimização matemática.
Existem várias partes da otimização matemática:
Também existem maneiras de lidar com a "estocástica" de alguma forma, mesmo "Ninguém sabe como resolver a otimização estocástica convexa"
Otimização não-convexa - geralmente as pessoas com isso significam algo que é objetivo contínuo, mas a curvatura pode variar. As pessoas neste planeta não sabem como resolvê-lo com precisão. E, de fato, todos os métodos me alavancam (1)
Otimização combinatória - é ainda mais selvagem do que (2), agora para parâmetros que você acha que não pode aplicar menos operador. Um exemplo é "regiões" nas Árvores de Decisão. Portanto, existem duas maneiras de lidar com isso: a) Convexifique o problema e use os métodos de (1) b) Faça força bruta. Não funciona para um grande número de parâmetros. c) Faça força bruta, mas com alguns passos gananciosos. É algo que a CART faz.
Então, pelo menos, acho que convido você a:
I) A otimização convexa é essencial para a maioria dos problemas de otimização.
II) "01:15 A otimização é, na verdade, um assunto mais grande que o ML ou AI, mas é um assunto maior, de fato." ( https://www.youtube.com/watch?v=uF3htLwUHn0&t=992s )
fonte