Eu queria saber quanto do aprendizado de máquina requer otimização. Pelo que ouvi, estatísticas é um tópico matemático importante para pessoas que trabalham com aprendizado de máquina. Da mesma forma, qual é a importância de alguém que trabalha com aprendizado de máquina para aprender sobre otimização convexa ou não convexa?
machine-learning
optimization
Ronald Grayson
fonte
fonte
Respostas:
A maneira como vejo isso é que estatística / aprendizado de máquina informa o que você deve otimizar, e otimização é como você realmente o faz.
Por exemplo, considere regressão linear com onde E ( ε ) = 0 e V um r ( ε ) = σ 2 I . Estatísticas diz-nos que este é (geralmente) um modelo bom, mas encontramos a nossa estimativa real β através da resolução de um problema de otimizaçãoY=Xβ+ε E( ε ) = 0 Va r ( ε ) = σ2Eu β^
As propriedades de β são conhecidos por nós através de estatísticas por isso sabemos que este é um bom problema de otimização para resolver. Nesse caso, é uma otimização fácil, mas isso ainda mostra o princípio geral.β^
De modo mais geral, muito do aprendizado de máquina pode ser visto como a solução f = argmin f ∈ F 1 onde estou escrevendo isso sem regularização, mas que pode ser facilmente adicionado.
Uma enorme quantidade de pesquisas em teoria estatística da aprendizagem (SLT) estudou as propriedades desses argminima, sejam eles assintoticamente ótimos, como eles se relacionam com a complexidade de e muitas outras coisas. Mas quando você realmente deseja obter fF f^ , muitas vezes você acaba com uma otimização difícil e é todo um conjunto separado de pessoas que estudam esse problema. Eu acho que a história do SVM é um bom exemplo aqui. Temos pessoas do SLT como Vapnik e Cortes (e muitos outros) que mostraram como o SVM é um bom problema de otimização para resolver. Mas depois foram outros, como John Platt e os autores da LIBSVM, que tornaram isso possível na prática.
Para responder sua pergunta exata, conhecer alguma otimização é certamente útil, mas geralmente ninguém é especialista em todas essas áreas, para que você aprenda o máximo que puder, mas alguns aspectos sempre serão uma caixa preta para você. Talvez você não tenha estudado adequadamente os resultados do SLT por trás do algoritmo ML favorito ou talvez não conheça o funcionamento interno do otimizador que está usando. É uma jornada ao longo da vida.
fonte
Na prática, muitos pacotes cuidam da otimização e da maioria dos detalhes matemáticos para você. Por exemplo, o TensorFlow pode fazer descida gradiente backprop + estocástico para treinar redes neurais automaticamente (você só precisa especificar a taxa de aprendizado). As ferramentas de ML do scikit-learn geralmente não exigem que você saiba realmente como a otimização realmente ocorre, mas talvez apenas defina alguns parâmetros de ajuste e cuide do resto (por exemplo, número de iterações pelas quais o otimizador executa). Por exemplo, você pode treinar um SVM sem conhecer matemática no scikit-learn - basta alimentar os dados, o tipo de kernel e seguir em frente.
Dito isso, conhecer a otimização básica (por exemplo, no nível da programação não-linear Convex Optimization / Bertsekas de Boyd e Vandenberghe) pode ser útil no design e análise de algoritmos / problemas, especialmente se você estiver trabalhando em assuntos teóricos. Ou, implementando os algoritmos de otimização você mesmo.
Observe que os métodos de otimização de livros didáticos geralmente precisam de ajustes para realmente funcionar na prática em ambientes modernos; por exemplo, você não pode usar a descida estocástica clássica de Robbins-Munroe, mas uma variante acelerada mais rápida. No entanto, você pode obter algumas idéias ao trabalhar com os problemas de otimização.
fonte