Aprendizagem de máquina online

método de aprendizagem de máquina

Na ciência da computação, o aprendizado de máquina online é um método de aprendizado de máquina no qual os dados ficam disponíveis em uma ordem sequencial e são usados para atualizar o melhor preditor para dados futuros em cada etapa, em oposição às técnicas de aprendizado em lote que geram o melhor preditor através do aprendizado com todo o conjunto de dados de treinamento de uma só vez. O aprendizado online é uma técnica comum usada em áreas de aprendizado de máquina onde é computacionalmente inviável treinar sobre todo o conjunto de dados, exigindo a necessidade de algoritmos fora do núcleo. Também é usado em situações em que é necessário que o algoritmo se adapte dinamicamente a novos padrões nos dados ou quando os próprios dados são gerados em função do tempo, por exemplo, previsão de preços de ações. Algoritmos de aprendizado online podem ser propensos a interferências catastróficas, um problema que pode ser resolvido por abordagens de aprendizado incremental.

Introdução editar

No contexto da aprendizagem supervisionada, deve-se aprender uma função  , em que   é pensado como um espaço de entradas e   como um espaço de saídas, que prevê bem as instâncias extraídas de uma distribuição de probabilidade conjunta   sobre  . Na prática, o aprendiz nunca sabe a verdadeira distribuição   sobre as instâncias. Em vez disso, o aprendiz geralmente tem acesso a um conjunto de exemplos de treinamento  . Nesta configuração, a função de perda é dada como  , de tal modo que   mede a diferença entre o valor previsto   e o valor verdadeiro  . O objetivo ideal é selecionar uma função  , Onde   é um espaço de funções chamado espaço de hipóteses, de modo que alguma noção de perda total seja minimizada. Dependendo do tipo de modelo (estatístico ou adversário), pode-se conceber diferentes noções de perda, que levam a diferentes algoritmos de aprendizado.

Visão estatística do aprendizado online editar

Em modelos de aprendizado estatístico, assume-se que as amostras de treinamento   foram extraídas da verdadeira distribuição   e o objetivo é minimizar o "risco" esperado

 

Um paradigma comum nesta situação é estimar uma função   através da minimização do risco empírico ou minimização do risco empírico regularizado (geralmente regularização de Tikhonov). Aqui a escolha da função de perda dá origem a vários algoritmos de aprendizado bem conhecidos, tais como mínimos quadrados regularizados e máquinas de vetores de suporte. Um modelo puramente online nesta categoria aprenderia com base apenas na nova entrada  , o melhor preditor atual   e algumas informações extras armazenadas (que geralmente devem ter requisitos de armazenamento independentes do tamanho dos dados de treinamento). Para muitas formulações, tais como métodos de kernel não lineares, um aprendizado verdadeiramente online não é possível, embora possa ser usada uma forma híbrida de aprendizado online com algoritmos recursivos, em que se permite que   dependa de   e de todos os pontos de dados anteriores  . Nesse caso, não é mais garantido que os requisitos de espaço sejam constantes, pois é necessário o armazenamento de todos os pontos de dados anteriores, mas a solução pode levar menos tempo para ser calculada com a adição de um novo ponto de dados, em comparação com as técnicas de aprendizado em lote.

Uma estratégia comum para superar os problemas acima é aprender utilizando mini-lotes, que processam um pequeno lote de   pontos de dados por vez, isso pode ser considerado como um aprendizagem pseudo-online para   muito menor que o número total de pontos de treinamento. Técnicas de mini-lote são usadas com passagem repetida sobre os dados de treinamento para obter versões otimizadas fora do núcleo de algoritmos de aprendizado de máquina, por exemplo, gradiente descendente estocástico. Quando combinado com retropropagação, este é atualmente o método de treinamento de fato para treinar redes neurais artificiais.

Exemplo: mínimos quadrados lineares editar

O exemplo simples de mínimos quadrados lineares é usado para explicar uma variedade de ideias em aprendizado online. As ideias são gerais o suficiente para serem aplicadas a outras configurações, por exemplo, com outras funções de perda convexas.

Aprendizagem em lote editar

Considere o cenário de aprendizado supervisionado em que   é uma função linear a ser aprendida:

 

em que   é um vetor de entradas (pontos de dados) e   é um vetor de filtro linear. O objetivo é calcular o vetor de filtro   . Para isso, uma função de perda quadrática

 

é usada para calcular o vetor   que minimiza a perda empírica

 

em que

  .

Seja   a matriz de dados de ordem   e   o vetor coluna de valores alvo após a chegada dos primeiros   pontos de dados. Assumindo que a matriz de covariância   seja invertível (caso contrário, é preferível proceder de forma semelhante à regularização de Tikhonov), a melhor solução   para o problema dos mínimos quadrados lineares é dada por

  .

Agora, o cálculo da matriz de covariância   leva tempo  , a inversão de uma matriz   leva tempo  , enquanto o restante da multiplicação leva tempo  , o que resulta em um tempo total de  . Quando há um total de   pontos no conjunto de dados, o recálculo da solução após a chegada de cada ponto de dados   pela abordagem ingênua terá uma complexidade total  . Note que ao armazenar a matriz   para então atualizá-la em cada etapa é preciso apenas adicionar  , que leva tempo  , reduzindo o tempo total para  , mas com um espaço de armazenamento adicional de   para armazenar  .[1]

Aprendizagem online: mínimos quadrados recursivos editar

O algoritmo recursivo dos mínimos quadrados (RLS) considera uma abordagem online para o problema dos mínimos quadrados. Pode-se mostrar que inicializando   e  , a solução do problema de mínimos quadrados lineares dada na seção anterior pode ser obtida por meio da seguinte iteração:

 
 

O algoritmo de iteração acima pode ser provado usando indução em  .[2] A prova também mostra que  . Pode-se olhar para RLS também no contexto de filtros adaptativos (ver RLS).

A complexidade para   passos deste algoritmo é  , que é uma ordem de magnitude mais rápida do que a complexidade do aprendizado em lote correspondente. Aqui, os requisitos de armazenamento em cada etapa   consistem em armazenar a matriz  , que é constante em  . Para o caso quando   não é invertível, considere a versão regularizada da função de perda do problema   . Então, mostra-se que o mesmo algoritmo funciona com  , e as iterações fornecem  .[1]

Gradiente descendente estocástico editar

Quando a expressão

 

é substituída por

 

ou   por  , tem-se o algoritmo de gradiente descendente estocástico. Neste caso, a complexidade para   passos deste algoritmo se reduz a  . Os requisitos de armazenamento em cada etapa   são constantes em  .

No entanto, o tamanho do passo   precisa ser escolhido com cuidado para resolver o problema de minimização do risco esperado, conforme detalhado acima. Escolhendo um tamanho de passo cada vez menor   pode-se provar a convergência do iterado médio  . Essa configuração é um caso especial de otimização estocástica, um problema bem conhecido em otimização.[1]

Gradiente descendente estocástico incremental editar

Na prática, pode-se realizar múltiplas passagens do gradiente estocástico (também chamadas de ciclos ou épocas) sobre os dados. O algoritmo assim obtido chama-se método do gradiente incremental e corresponde a uma iteração dada por

 

A principal diferença com o método de gradiente estocástico é que aqui uma sequência   é escolhida para decidir qual ponto de treinamento é visitado na  -ésima etapa. Tal sequência pode ser estocástica ou determinística. O número de iterações é então desacoplado do número de pontos (cada ponto pode ser considerado mais de uma vez). Pode-se mostrar que o método de gradiente incremental fornece um minimizador para o risco empírico.[3] Técnicas incrementais podem ser vantajosas ao considerar funções objetivo compostas de uma soma de muitos termos, por exemplo, um erro empírico correspondente a um conjunto de dados muito grande.[1]

Métodos de núcleo editar

Núcleos podem ser usados para estender os algoritmos acima para modelos não paramétricos (ou modelos em que os parâmetros formam um espaço dimensional infinito). O procedimento correspondente não será mais verdadeiramente online e, em vez disso, envolverá o armazenamento de todos os pontos de dados, mas ainda é mais rápido que o método de força bruta. Essa discussão se restringe ao caso da função de perda quadrática, mas pode ser estendida para qualquer perda convexa. Pode ser mostrado por indução[1] que se   é a matriz de dados e   é a saída depois   passos do algoritmo SGD, então,

 

onde   e a sequência   satisfaz a recursão:

 
  e
 

Observe que aqui   é apenas o núcleo padrão em  , e o preditor tem a forma

  .

Agora, se um núcleo geral   é introduzido em vez disso e se considera o preditor

 

então a mesma demonstração também mostrará que o preditor que minimiza a perda de mínimos quadrados é obtido ao modificar a recursão acima para

 

A expressão acima requer o armazenamento de todos os dados para atualização de  . A complexidade de tempo total para a recursão ao avaliar para o  -ésimo ponto de dados é  , em que   é o custo de avaliar o núcleo em um único par de pontos.[1] Assim, o uso do núcleo permitiu o movimento de um espaço de parâmetros de dimensão finita   a um feature de dimensão possivelmente infinita representado por um núcleo  , executando a recursão no espaço de parâmetros  , cuja dimensão é igual ao tamanho do conjunto de dados de treinamento. Em geral, isso é uma consequência do teorema do representante.[1]

Otimização convexa on-line editar

Otimização convexa online (OCO)[4] é uma estrutura geral para tomada de decisão que faz uso de otimização convexa para permitir algoritmos eficientes. A estrutura é a de um jogo de repetição com a seguinte forma:

Para  

  • O aprendiz recebe informações  
  • O aprendiz retorna   de um conjunto convexo fixo  
  • A natureza envia de volta uma função de perda convexa  .
  • O aprendiz incorre uma perda   e atualiza seu modelo

O objetivo é minimizar o arrependimento, ou seja, a diferença entre a perda cumulativa e a perda do melhor ponto fixo   em retrospectiva. Como exemplo, considere o caso da regressão linear de mínimos quadrados online. Aqui, os vetores de peso vêm do conjunto convexo  , e a natureza envia de volta a função de perda convexa  . Observe que   é implicitamente enviado com  .

Alguns problemas de predição online, no entanto, não podem se encaixar na estrutura do OCO. Por exemplo, na classificação online, o domínio de previsão e as funções de perda não são convexos. Em tais cenários, duas técnicas simples de convexificação são usadas: randomização e funções de perda substitutas.

Alguns algoritmos simples de otimização convexa online são:

Siga o líder (FTL) editar

A regra de aprendizado mais simples é tentar selecionar (na etapa atual) a hipótese que tem a menor perda em todas as rodadas anteriores. Esse algoritmo é chamado de siga o líder e é simplesmente dado na rodada   por:

 

Este método pode ser visto como um algoritmo guloso. Para o caso de otimização quadrática online (onde a função de perda é  ), pode-se obter um limite de arrependimento que cresce como  . No entanto, limites semelhantes não podem ser obtidos para o algoritmo FTL para outras famílias importantes de modelos, como otimização linear online. Para fazer isso, modifica-se o FTL adicionando regularização.

Siga o líder regularizado (FTRL) editar

Esta é uma modificação natural do FTL que é usada para estabilizar as soluções FTL e obter melhores limites de arrependimento. Uma função de regularização   é escolhida e o aprendizado realizado na rodada t da seguinte forma:

 

Como um exemplo especial, considere o caso de otimização linear online, isto é, aquele em que a natureza envia de volta funções de perda da forma  . Além disso, seja  . Suponha que a função de regularização   é escolhida para algum número positivo  . Então, pode-se mostrar que a iteração de minimização de arrependimento se torna

 

Note que isso pode ser reescrito na forma  , que se parece exatamente com a descida de gradiente online.

Se S é algum subespaço convexo de  , seria preciso projetar sobre S, levando à regra de atualização modificada

 

Este algoritmo é conhecido como projeção preguiçosa, pois o vetor   acumula os gradientes. Também é conhecido como algoritmo de média dupla de Nesterov. Neste cenário em que as funções de perda são lineares e a regularização é quadrática, o arrependimento é limitado por  , e assim o arrependimento médio vai para 0 conforme desejado.

Subgradiente descendente online (OSD) editar

O exposto acima demonstrou um limite para o arrependimento para funções de perda lineares  . Para generalizar o algoritmo para qualquer função de perda convexa, o subgradiente   de   é usado como uma aproximação linear para   próximo de  , levando ao algoritmo de descida do subgradiente online:

Inicializar os parâmetros  

Para  

  • Prever usando  , receber   da natureza.
  • Escolher  
  • Se  , atualizar como  
  • Se  , projetar gradientes cumulativos sobre  , ou seja,  

Pode-se usar o algoritmo OSD para derivar limites de arrependimento   para a versão online dos SVM's para classificação, que usam a perda de articulação  .

Outros algoritmos editar

Algoritmos FTRL regularizados quadraticamente levam a algoritmos de gradiente projetados preguiçosos, conforme descrito acima. Para usar as ideias precedentes para funções convexas arbitrárias e regularizadores, pode-se usar a descida do espelho online. A regularização ótima em retrospectiva pode ser derivada para funções de perda linear, o que leva ao algoritmo AdaGrad. Para a regularização euclidiana, pode-se mostrar um limite de arrependimento de  , que pode ser melhorado ainda mais para   para funções de perda fortemente convexas e exp-côncavas.

Aprendizagem contínua editar

Aprendizado contínuo significa melhorar constantemente o modelo aprendido processando fluxos contínuos de informações.[5] As capacidades de aprendizado contínuo são essenciais para sistemas de software e agentes autônomos que interagem em um mundo real em constante mudança. No entanto, o aprendizado contínuo é um desafio para modelos de aprendizado de máquina e redes neurais, pois a aquisição contínua de informações disponíveis de forma incremental a partir de distribuições de dados não estacionários geralmente leva a um esquecimento catastrófico.

Interpretações do aprendizado online editar

O paradigma da aprendizagem online tem diferentes interpretações dependendo da escolha do modelo de aprendizagem, cada uma das quais tem implicações distintas sobre a qualidade preditiva da sequência de funções   . O algoritmo prototípico do gradiente descendente estocástico é usado para esta discussão. Como observado acima, sua recursão é dada por

 

A primeira interpretação considera o método do gradiente descendente estocástico aplicado ao problema de minimização do risco esperado   definido acima.[6] De fato, no caso de um fluxo infinito de dados, uma vez que os exemplos   são assumidos como sendo retirados iid da distribuição  , a sequência de gradientes de   na iteração acima são uma amostra iid de estimativas estocásticas do gradiente do risco esperado   e, portanto, pode-se aplicar resultados de complexidade ao método do gradiente descendente estocástico para limitar o desvio  , em que   é o minimizador de  .[7] Esta interpretação também é válida no caso de um conjunto de treinamento finito; embora com passagens múltiplas pelos dados os gradientes não sejam mais independentes, resultados ainda complexos podem ser obtidos em casos especiais.

A segunda interpretação se aplica quando o conjunto de treinamento é finito e considera o algoritmo SGD como uma instância do método gradiente descendente incremental.[3] Neste caso, em vez disso, olha-se para o risco empírico:

 

Como os gradientes de   nas iterações do gradiente descendente incremental também são estimativas estocásticas do gradiente de  , essa interpretação também está relacionada ao método do gradiente descendente estocástico, mas aplicado a minimização do risco empírico em oposição ao risco esperado. Como essa interpretação diz respeito ao risco empírico e não ao risco esperado, várias passagens pelos dados são prontamente permitidas e, na verdade, levam a limites mais rígidos nos desvios  , onde   é o minimizador de   .

Implementações editar

  • Vowpal Wabbit: sistema de código aberto de aprendizado on-line rápido e fora do núcleo, notável por oferecer suporte a várias reduções de aprendizado de máquina, ponderação de importância e uma seleção de diferentes funções de perda e algoritmos de otimização. Ele usa o truque de hash para limitar o tamanho do conjunto de características independentemente da quantidade de dados de treinamento.
  • scikit-learn: fornece implementações fora do núcleo de algoritmos para

Ver também editar

Paradigmas de aprendizagem

Algoritmos gerais

Modelos de aprendizagem

Referências editar

  1. a b c d e f g L. Rosasco, T. Poggio, Machine Learning: a Regularization Approach, MIT-9.520 Lectures Notes, Manuscript, Dec. 2015. Chapter 7 - Online Learning
  2. Yin, Harold J. Kushner, G. George (2003). Stochastic approximation and recursive algorithms and applications Second ed. New York: Springer. pp. 8–12. ISBN 978-0-387-21769-7 
  3. a b Bertsekas, D. P. (2011). Incremental gradient, subgradient, and proximal methods for convex optimization: a survey. Optimization for Machine Learning, 85.
  4. Hazan, Elad (2015). Introduction to Online Convex Optimization (PDF). [S.l.]: Foundations and Trends in Optimization 
  5. Parisi, German I.; Kemker, Ronald; Part, Jose L.; Kanan, Christopher; Wermter, Stefan (2019). «Continual lifelong learning with neural networks: A review». Neural Networks. 113: 54–71. ISSN 0893-6080. arXiv:1802.07569 . doi:10.1016/j.neunet.2019.01.012 
  6. Bottou, Léon (1998). «Online Algorithms and Stochastic Approximations». Online Learning and Neural Networks. [S.l.]: Cambridge University Press. ISBN 978-0-521-65263-6 
  7. Stochastic Approximation Algorithms and Applications, Harold J. Kushner and G. George Yin, New York: Springer-Verlag, 1997. ISBN 0-387-94916-X; 2nd ed., titled Stochastic Approximation and Recursive Algorithms and Applications, 2003, ISBN 0-387-00894-2.

Ligações externas editar