Dataset Bias
O viés do conjunto de dados é uma incompatibilidade entre os dados de treinamento e o mundo em que um modelo é usado, causando diferenças de precisão. Veja os principais tipos, exemplos e como identificá-lo e corrigi-lo.
O viés do conjunto de dados é uma incompatibilidade sistemática entre os dados usados para treinar um modelo de aprendizado de máquina e as pessoas, os lugares ou as condições atendidos pelo modelo. Os modelos aprendem todas as regularidades presentes em seus dados de treinamento, inclusive os efeitos acidentais da forma como foram coletados. Por isso, um conjunto de dados enviesado produz um modelo que funciona bem nas situações que encontrou com frequência e mal nas demais. Como os dados de teste geralmente vêm da mesma coleta, o problema costuma permanecer oculto até a implantação. Antonio Torralba e Alexei Efros demonstraram essa ideia em 2011 com um jogo chamado "Name That Dataset": um classificador simples conseguia identificar de qual dos 12 conjuntos de dados de imagens populares vinha uma imagem, com desempenho muito acima do acaso, pois cada conjunto tinha um estilo reconhecível próprio.
Tipos de viés em conjuntos de dados#
- Viés de seleção: Os dados vêm de fontes convenientes, e não da população-alvo. Fotos da Web tendem a mostrar ambientes ocidentais e de alta renda, e serviços comerciais de reconhecimento de objetos tiveram uma precisão cerca de 10% menor em itens domésticos de lares com renda mensal inferior a US$ 50 do que em lares com renda superior a US$ 3.500. Também houve uma diferença de 15 a 20 pontos entre itens fotografados nos Estados Unidos e na Somália ou em Burkina Faso.
- Viés de representação: Alguns grupos ou classes aparecem com pouca frequência para que o modelo consiga aprendê-los. A auditoria Gender Shades descobriu que classificadores comerciais de gênero classificavam incorretamente mulheres de pele mais escura em até 34,7% dos casos e homens de pele mais clara em, no máximo, 0,8% dos casos. Na detecção de objetos, uma longa cauda de classes raras representa o mesmo problema no nível das classes.
- Viés de medição e captura: Câmeras, sensores, locais e iluminação diferem entre os dados e o ambiente de implantação. Modelos de aprendizado profundo para detectar pneumonia em radiografias torácicas também conseguiam identificar de qual hospital vinha uma imagem. Como as taxas de pneumonia diferiam entre hospitais, esse sinal inflava a precisão e tinha baixa generalização para novos locais, uma forma de aprendizado por atalhos.
- Viés de rótulo: A rotulagem de dados herda os julgamentos dos anotadores, diretrizes inconsistentes ou decisões históricas, e o modelo trata esses padrões como verdade fundamental.
- Viés temporal: Os dados coletados em um período deixam de corresponder à realidade conforme mudam as modas, os produtos e os veículos.
Como o viés do conjunto de dados se manifesta#
Um modelo de percepção para condução autônoma treinado principalmente em climas ensolarados e secos detecta pedestres com menos confiabilidade na neve, na chuva e no escuro. As equipes que desenvolvem veículos autônomos para a IA automotiva coletam dados noturnos e de condições climáticas adversas para reduzir essa diferença. Na análise de imagens médicas, modelos de dermatologia treinados com coleções dominadas por tons de pele mais claros têm desempenho inferior em tons de pele mais escuros, e os sistemas de reconhecimento facial apresentam as diferenças demográficas medidas pelo Gender Shades. Em todos os casos, a precisão geral parece alta porque a maioria domina a média.
O trecho abaixo demonstra o mecanismo na prática com scikit-learn. O grupo B segue um padrão diferente do grupo A, e a mesma floresta aleatória é treinada duas vezes com 1.000 amostras: primeiro com o grupo B representando 2% dos dados e depois com os grupos equilibrados:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
rng = np.random.default_rng(0)
def sample(n, group):
"""Draw n points from group A (label set by feature 0) or group B (label set by feature 1)."""
center = 0.0 if group == "A" else 3.0
X = rng.normal(center, 1.0, size=(n, 2))
return X, X[:, 0 if group == "A" else 1] > center
for n_a, n_b in [(980, 20), (500, 500)]: # skewed, then balanced training sets of the same size
Xa, ya = sample(n_a, "A")
Xb, yb = sample(n_b, "B")
model = RandomForestClassifier(random_state=0).fit(np.vstack([Xa, Xb]), np.concatenate([ya, yb]))
acc = {g: model.score(*sample(2000, g)) for g in "AB"} # held-out accuracy per group
print(f"train A:B = {n_a}:{n_b} -> accuracy on A {acc['A']:.3f}, on B {acc['B']:.3f}")Treinado com o conjunto enviesado, o modelo acerta perfeitamente o grupo A (1.000), mas acerta apenas 76,8% das vezes no grupo B. Equilibrar as mesmas 1.000 amostras eleva o resultado do grupo B para 98,3%, enquanto o do grupo A cai ligeiramente, para 97,2%. Em um conjunto de teste com a mesma proporção de 98:2 dos dados de treinamento enviesados, o primeiro modelo teria uma pontuação geral de aproximadamente 99,5%, ocultando completamente a diferença.
Viés de conjunto de dados vs. conceitos relacionados#
- Viés algorítmico: Distorção introduzida pelo projeto, objetivo ou implantação de um modelo, como uma função de perda que favorece as classes majoritárias. O viés do conjunto de dados é uma das principais causas do viés algorítmico, e os dois frequentemente se acumulam.
- Viés em IA: Termo abrangente para a injustiça sistemática em sistemas de IA, o oposto de equidade em IA. O padrão do NIST para identificar e gerenciar viés em IA classifica suas fontes como sistêmicas, humanas e estatísticas ou computacionais. Conjuntos de dados não representativos se enquadram na última categoria.
- Deriva de dados: Uma mudança na distribuição das entradas após a implantação. O viés do conjunto de dados existe desde a coleta, enquanto a deriva cria uma diferença posteriormente, mesmo quando os dados originais eram representativos.
Como encontrar e reduzir o viés do conjunto de dados#
Detectar viés em conjuntos de dados de visão começa pela documentação e pela avaliação desagregada. O Datasheets for Datasets propõe registrar quem coletou os dados, como e com que finalidade, para que os usuários possam avaliar a quem eles representam. A avaliação deve informar métricas por grupo, local, câmera ou condição, além de uma matriz de confusão por recorte, em vez de uma única média. Analisar os próprios dados também ajuda: na Ultralytics Platform, a guia Classes de cada conjunto de dados exibe a contagem de anotações por classe e oferece uma opção de escala logarítmica para dados desbalanceados, enquanto o painel Clustering plota as incorporações das imagens, coloridas por classe ou divisão, para revelar lacunas de cobertura antes do treinamento.
As correções dependem da causa. Coletar dados direcionados para os recortes com desempenho fraco trata a causa diretamente, e o aprendizado ativo ajuda a escolher quais imagens novas rotular. O aumento de dados varia a iluminação, a orientação e a escala, enquanto os dados sintéticos podem preencher condições raras, como cenas noturnas ou defeitos incomuns. Reponderar ou superamostrar exemplos sub-representados, ou otimizar para o grupo com pior desempenho usando a otimização robusta à distribuição, altera aquilo que o treinamento recompensa. Após a implantação, o monitoramento de modelos dividido por recorte detecta lacunas que surgem com a mudança das condições.










