Online Learning
A aprendizagem online atualiza um modelo um exemplo ou minilote de cada vez, à medida que os dados chegam em fluxo, para que continue a aprender e acompanhe a deriva de conceito sem retreino.
O aprendizado online é um cenário de aprendizado de máquina em que um modelo aprende com dados que chegam em sequência, atualizando-se depois de cada exemplo ou pequeno lote, em vez de ser treinado uma única vez em um conjunto de dados fixo. A cada etapa, o modelo faz uma previsão, recebe o resultado verdadeiro, mede sua perda e ajusta seus parâmetros antes da chegada do próximo exemplo. Essa abordagem é adequada a dados que chegam em fluxo, como cliques, transações ou leituras de sensores; a dados grandes demais para armazenar; e a relações que mudam com o tempo. O aprendizado em lote ou offline é o oposto: o modelo é treinado com todos os seus dados de treinamento de uma só vez e permanece fixo até ser retreinado.
Como funciona a aprendizagem online#
O perceptron de Frank Rosenblatt, de 1958, era um aprendiz online, ajustando seus pesos após cada exemplo classificado incorretamente, e o gradiente descendente estocástico (SGD) aplica a mesma atualização por exemplo ou por lote a quase qualquer modelo diferenciável. Outros algoritmos são criados para fluxos: as árvores de Hoeffding, apresentadas por Pedro Domingos e Geoff Hulten em 2000, constroem uma árvore de decisão a partir de um fluxo, vendo cada exemplo apenas uma vez, e bibliotecas como River implementam versões em fluxo de modelos comuns. No scikit-learn, os estimadores com um método partial_fit aprendem incrementalmente.
Os aprendizes online geralmente são avaliados de forma prequential, termo cunhado pelo estatístico Philip Dawid: cada novo exemplo é usado primeiro para testar o modelo e depois para treiná-lo, de modo que a pontuação acumulada é calculada com dados que o modelo ainda não tinha visto. A teoria mede um aprendiz online pelo arrependimento, a diferença entre sua perda acumulada e a do melhor modelo fixo escolhido retrospectivamente. Martin Zinkevich mostrou em 2003 que o gradiente descendente online mantém o crescimento do arrependimento limitado à raiz quadrada do número de etapas, de modo que a diferença média por etapa tende a zero.
Este exemplo transmite 400 minilotes a uma regressão logística treinada com SGD. Na metade do processo, a regra que atribui os rótulos muda, e uma cópia congelada nesse momento representa um modelo que parou de aprender:
import copy
import numpy as np
from sklearn.linear_model import SGDClassifier
rng = np.random.default_rng(0)
online = SGDClassifier(loss="log_loss", random_state=0)
scores = {"frozen": [], "online": []}
for step in range(400): # 400 mini-batches of 20 examples arrive one at a time
X = rng.normal(size=(20, 2))
w = [1.0, 1.0] if step < 200 else [1.0, -1.0] # the labeling rule changes at step 200
y = (X @ np.array(w) > 0).astype(int)
if step == 200:
frozen = copy.deepcopy(online) # a copy that stops learning when the rule changes
if step >= 200: # test on each new batch before learning from it
scores["frozen"].append(frozen.score(X, y))
scores["online"].append(online.score(X, y))
online.partial_fit(X, y, classes=[0, 1])
for name, acc in scores.items():
print(f"{name}: {np.mean(acc):.2f} accuracy after the change")Após a mudança, o modelo congelado obtém 0,47, não melhor do que um palpite, enquanto o modelo online tem média de 0,98. O modelo online obtém 0,35 no primeiro lote sob a nova regra e 0,80 no segundo, recuperando-se após mais alguns lotes.
Deriva de Conceito e Esquecimento#
O principal motivo para aprender online é a deriva de conceito, uma mudança na relação entre entradas e rótulos, muitas vezes acompanhada de deriva de dados nas próprias entradas. A deriva pode ser repentina, como no exemplo, ou pode se desenvolver gradualmente ou se repetir conforme as estações e os horários do dia. Detectores como o ADWIN, de Albert Bifet e Ricard Gavaldà, monitoram o fluxo de erros e sinalizam quando sua média muda, o que pode acionar atualizações mais rápidas ou uma reinicialização.
A adaptação rápida tem um custo. Uma taxa de aprendizado alta acompanha a deriva rapidamente, mas também acompanha o ruído, e uma rede que só vê dados recentes sobrescreve o que aprendeu antes, uma falha chamada esquecimento catastrófico. Buffers de repetição que misturam exemplos antigos armazenados a cada atualização são uma solução comum.
Aprendizado Online na Prática#
O aprendizado online é comum quando os rótulos chegam em segundos. A previsão de cliques em anúncios é o caso clássico: em 2013, o Google descreveu como seus modelos de taxa de cliques são treinados continuamente com dados em fluxo usando o algoritmo FTRL-Proximal, e sistemas de recomendação e pontuação de fraude costumam ser atualizados da mesma forma. Em vez disso, os modelos de visão implantados geralmente são atualizados em lotes, porque os rótulos chegam com atraso e uma atualização corrompida pode degradar todas as previsões posteriores; por isso, as equipes combinam o monitoramento de modelos com a sintonia fina periódica em dados recentes e reproduzidos, como nos fluxos de trabalho de manutenção de modelos.
Pequenas atualizações online são executadas em sistemas de visão. No modo de rastreamento do Ultralytics YOLO26, ativar a reidentificação com with_reid: True faz o rastreador padrão TrackTrack manter uma incorporação de aparência para cada rastreamento e atualizá-la após cada detecção correspondente como média móvel, atribuindo à nova incorporação um peso de 5% multiplicado pela confiança da detecção; assim, a aparência de cada rastreamento acompanha mudanças graduais de pose e iluminação, enquanto a rede ReID permanece fixa.
O aprendizado contínuo se sobrepõe ao aprendizado online, mas se concentra em reter tarefas anteriores à medida que novas tarefas chegam, enquanto o aprendizado online descreve a frequência das atualizações. O aprendizado ativo escolhe quais exemplos rotular, e o aprendizado por reforço também aprende com um fluxo de interações, mas a partir de recompensas pelas próprias ações, e não de exemplos rotulados.










