capítulos anteriores
20 Deslocamento e dispersão: duas fontes principais de erros
observação do tradutor Antes da mudança, este capítulo foi chamado de "sistemático e aleatório: duas fontes principais de erros", ou seja, usei os termos "erros aleatórios" e "erros sistemáticos" para traduzir viés e variância. No entanto, o membro do fórum robot @ Phaker, em um comentário, observou com razão que, no campo do aprendizado de máquina na terminologia russa para esses termos, os conceitos de "deslocamento" e "dispersão" são corrigidos. Eu olhei para o trabalho de K.V. Vorontsov, que merecidamente é uma das autoridades no campo do aprendizado de máquina na Rússia e dos recursos da comunidade profissional, concordou com o comentário robô @ Phaker . Apesar do fato de que, do meu ponto de vista, existe uma profunda analogia significativa entre o “viés” e a “variação” no treinamento de algoritmos e o “erro sistemático” e o “erro aleatório” de um experimento físico, além de serem expressos igualmente matematicamente , no entanto, é correto usar os termos estabelecidos neste campo. Portanto, revisei a tradução deste e dos capítulos subseqüentes, substituindo os "Erros sistemáticos e aleatórios" por "Deslocamento e dispersão" e continuarei com essa abordagem no futuro.
Suponha que suas amostras de treinamento, validação e teste tenham a mesma distribuição. Então você precisa levar mais dados para o treinamento, isso só melhorará a qualidade do algoritmo, isso é verdade?
Embora a obtenção de mais dados não possa prejudicar o trabalho, infelizmente, novos dados nem sempre ajudam tanto quanto você poderia esperar. Em alguns casos, o trabalho de obter dados adicionais pode ser um desperdício de esforço. Como tomar uma decisão - em que casos adicionar dados e quando não se preocupar com isso.
No aprendizado de máquina, existem duas fontes principais de erro: viés e dispersão (variação). Compreender o que eles são ajudará você a decidir se deseja adicionar mais dados, além de ajudá-lo a escolher táticas para melhorar a qualidade do classificador.
Suponha que você esteja esperando criar um identificador felino com 5% de erro. No momento, o erro do classificador na amostra de treinamento é de 15%, e na amostra de validação de 16%. Nesse caso, é improvável que a adição de dados de treinamento aumente significativamente a qualidade. Você deve se concentrar em outras alterações do sistema. De fato, adicionar mais exemplos ao seu conjunto de treinamento tornará mais difícil para o seu algoritmo obter um bom resultado nesse conjunto (por que isso será explicado nos capítulos seguintes).
Se a porcentagem de seus erros na amostra de treinamento for 15% (o que corresponde a uma precisão de 85%), mas seu objetivo for a porcentagem de erros em 5% (precisão de 95%), primeiro você precisará melhorar a qualidade do seu algoritmo na amostra de treinamento. A qualidade do algoritmo nas amostras de validação / teste é geralmente pior que a qualidade do seu trabalho na amostra de treinamento (na amostra de treinamento). Você precisa entender que as abordagens que levaram à precisão não superior a 85% nos exemplos com os quais seu algoritmo está familiarizado não permitirão obter 95% de precisão nos exemplos que esse algoritmo nem sequer viu.
Suponha que, como indicado acima, a taxa de erro do seu algoritmo seja 16% (a precisão é 84%) na amostra de validação. Devemos quebrar o erro de 16% em dois componentes:
- Primeiro, a proporção de erros de algoritmo na amostra de treinamento. Neste exemplo, é de 15%. Chamamos informalmente de viés .
- Segundo, quão pior o algoritmo funciona na amostra de validação (ou teste) do que na amostra de treinamento. No nosso exemplo, é 1% pior na amostra de validação do que na amostra de treinamento. Também consideraremos não oficialmente uma variação do algoritmo.
observação do autor Nas estatísticas, existe uma definição mais precisa de viés e dispersão (erros sistemáticos e aleatórios), mas isso não deve nos incomodar. Grosso modo, assumimos que o viés é um erro no seu algoritmo no seu conjunto de treinamento quando você tem um conjunto de treinamento muito grande. Dispersão - é o quão pior o algoritmo funciona na amostra de teste em comparação com a de treinamento com as mesmas configurações de parâmetro. Se você usar o erro padrão, poderá escrever as fórmulas que definem essas duas quantidades e provar que o erro total é igual à soma da polarização e da dispersão (a soma dos erros aleatórios e sistemáticos). Mas, para nossos propósitos, melhorar os algoritmos nos problemas de aprendizado de máquina é suficiente uma definição informal de preconceito e dispersão.
Algumas mudanças no treinamento do algoritmo afetam o primeiro componente da polarização de erros e melhoram o desempenho do algoritmo na amostra de treinamento. Algumas mudanças afetam o segundo componente - a variação e ajudam a generalizar melhor o algoritmo para validação e amostras de teste. Para selecionar as alterações mais eficazes que precisam ser feitas no sistema, é extremamente útil entender como cada um desses dois componentes de erro afeta o erro geral do sistema.
Observação do autor: Existem também algumas abordagens que reduzem simultaneamente o deslocamento e a dispersão, fazendo alterações significativas na arquitetura do sistema. Mas eles geralmente são mais difíceis de encontrar e implementar.
Para selecionar as alterações mais eficazes que precisam ser feitas no sistema, é extremamente útil entender como cada um desses dois componentes de erro afeta o erro geral do sistema.
O desenvolvimento da intuição para entender como a Contribuição contribui para o erro e qual Dispersão, ajudará você a escolher efetivamente maneiras de melhorar seu algoritmo.
21 Exemplos de classificação de erro
Considere o nosso problema de classificação de gatos. Um classificador ideal (por exemplo, uma pessoa) pode alcançar uma excelente qualidade dessa tarefa.
Suponha que a qualidade do nosso algoritmo seja a seguinte:
- Erro na amostra de treinamento = 1%
- Erro na amostra de validação = 11%
Qual é o problema com este classificador? Aplicando as definições do capítulo anterior, estimamos o viés em 1% e o spread em 10% (= 11% - 1%). Assim, nosso algoritmo tem uma grande dispersão . O classificador possui um erro muito baixo na amostra de treinamento, mas não pode generalizar os resultados do treinamento para uma amostra de validação. Em outras palavras, estamos lidando com super ajuste .
Agora considere esta situação:
- Erro na amostra de treinamento = 15%
- Erro na amostra de validação = 16%
Em seguida, estimamos o viés em 15% e o spread em 1%. Esse classificador foi pouco treinado na amostra de treinamento, enquanto seu erro na amostra de validação é um pouco maior que na amostra de treinamento. Portanto, esse classificador possui um grande viés, mas um pequeno spread. Pode-se concluir que esse algoritmo está sendo insuficiente .
Também consideramos a seguinte distribuição de erros:
- Erro na amostra de treinamento = 15%
- Erro na amostra de validação = 30%
Nesse caso, o viés é de 15% e o spread também é de 15%. Esse classificador possui alto viés e propagação: não funciona bem na amostra de treinamento, possui um alto viés, e sua qualidade na amostra de validação é muito pior do que na amostra de treinamento, ou seja, a dispersão também é grande. Este caso é difícil de descrever em termos de reciclagem / sub-educação; esse classificador é tanto reciclado quanto sub-educado.
Por fim, considere esta situação:
- Erro na amostra de treinamento = 0,5%
- Erro na amostra de validação = 1%
Este é um ótimo classificador, possui baixo viés e dispersão. Parabéns aos engenheiros por alcançar um excelente resultado!
22 Comparação com taxa de erro ideal
No nosso exemplo de reconhecimento de gatos, a proporção ideal de erros é o nível disponível para o classificador “ideal” e esse nível é próximo de 0%. Uma pessoa que visualiza uma imagem quase sempre é capaz de reconhecer se um gato está presente na imagem ou não, e podemos esperar que, mais cedo ou mais tarde, a máquina faça isso da mesma forma.
Mas existem tarefas mais complexas. Por exemplo, imagine que você esteja desenvolvendo um sistema de reconhecimento de fala e descobriu que 14% das gravações de áudio têm tanto ruído de fundo ou fala tão ilegível que nem mesmo uma pessoa consegue entender o que foi dito lá. Nesse caso, mesmo o sistema de reconhecimento de voz mais “ideal” pode ter um erro na região de 14%.
Suponha que em nossa tarefa de reconhecimento de fala, nosso algoritmo tenha alcançado os seguintes resultados:
- Erro na amostra de treinamento = 15%
- Erro na amostra de validação = 30%
A qualidade do classificador na amostra de treinamento já está próxima da ideal, com uma taxa de erro de 14%. Portanto, neste caso, não temos muitas oportunidades para reduzir o viés (melhorar o algoritmo na amostra de treinamento). Entretanto, não é possível generalizar a operação desse algoritmo para uma amostra de validação; portanto, existe um grande campo para atividades de redução de dispersão .
Esse caso é semelhante ao terceiro exemplo do capítulo anterior, no qual o erro na amostra de treinamento também é igual a 15% e o erro na amostra de validação é 30%. Se a taxa de erro ideal for de cerca de 0%, o erro na amostra de treinamento de 15% dará muito espaço para o trabalho para melhorar o algoritmo. Com essa suposição, os esforços para reduzir o viés no algoritmo podem ser muito proveitosos. Mas se a proporção ideal de erros de classificação não puder ser inferior a 14%, uma proporção semelhante de erros de algoritmo na amostra de treinamento (ou seja, na região de 14 a 15%) sugere que as possibilidades de redução do viés estão quase esgotadas.
Para problemas em que a proporção ideal de erros de classificação difere significativamente de zero, uma estrutura de erro mais detalhada pode ser proposta. Continuamos a considerar o exemplo acima com reconhecimento de fala, um erro total de 30% na amostra de validação pode ser decomposto nos seguintes componentes (os erros na amostra de teste podem ser analisados da mesma maneira):
- Viés ideal (viés inevitável): 14%. Imagine, decidimos que mesmo o melhor sistema de reconhecimento de fala possível do mundo terá uma taxa de erro de 14%. Vamos falar sobre isso como a parte "inevitável" do deslocamento do algoritmo de aprendizado.
- Viés evitável : 1%. Este valor é calculado como a diferença entre a proporção de erros na amostra de treinamento e a proporção ideal de erros.
observação do autor: Se esse valor acabou sendo negativo, seu algoritmo na amostra de treinamento mostra um erro menor que o "ideal". Isso significa que você treinou novamente o conjunto de treinamento; seu algoritmo se lembrou dos exemplos (e de suas classes) do conjunto de treinamento. Nesse caso, você deve se concentrar em métodos para reduzir a propagação, em vez de reduzir ainda mais o viés.
- Variação : 15%. A diferença entre erros na amostra de treinamento e na amostra de validação
Relacionando isso às nossas definições anteriores, deslocamento e deslocamento descartável estão relacionados da seguinte forma:
Viés (viés) = Viés ideal ( "viés inevitável" ) + Viés descartável ( "viço evitável" )
Nota do autor : Essas definições são escolhidas para explicar melhor como a qualidade do algoritmo de aprendizado pode ser aprimorada. Essas definições diferem das definições formais de viés e dispersão adotadas nas estatísticas. Tecnicamente, o que eu defino como "Deslocamento" deve ser chamado de "um erro na estrutura de dados (não pode ser identificado e eliminado)" e "Eliminar viés" deve ser definido como "Viés do algoritmo de aprendizado que excede o viés ideal" .
O viés evitável mostra quão pior é a qualidade do seu algoritmo na amostra de treinamento do que a qualidade do "classificador ideal".
A idéia básica de variação permanece a mesma. Em teoria, sempre podemos reduzir a propagação para quase zero treinando em uma amostra de treinamento suficientemente grande. Assim, qualquer propagação é “evitável” quando há uma amostra suficientemente grande, portanto não pode haver uma “propagação inevitável” (variação inevitável).
Considere outro exemplo em que o erro ideal é de 14% e temos:
- Erro na amostra de treinamento = 15%
- Erro na amostra de validação = 16%
No capítulo anterior, classificamos um classificador com indicadores como classificador de alto viés, nas condições atuais, dizemos que “viés evitável” é de 1% e o spread é de cerca de 1%. Assim, o algoritmo já está funcionando muito bem e quase não há reservas para melhorar a qualidade de seu trabalho. A qualidade desse algoritmo está apenas 2% abaixo do ideal.
A partir desses exemplos, fica claro que conhecer a magnitude do erro fatal é útil para decidir outras ações. Nas estatísticas, a taxa de erro ideal também é chamada de taxa de erro de Bayes .
Como descobrir o tamanho da taxa de erro ideal? Para tarefas com as quais uma pessoa lida bem, como reconhecimento de imagem ou decodificação de clipes de áudio, você pode solicitar que os avaliadores marquem os dados e, em seguida, meça a precisão da marcação humana na amostra de treinamento. Isso fornecerá uma estimativa da taxa de erro ideal. Se você estiver trabalhando em um problema difícil de lidar até mesmo com uma pessoa (por exemplo, prever qual filme recomendar ou qual anúncio exibir ao usuário), nesse caso, é bastante difícil avaliar a taxa de erro ideal.
Na seção Comparando com o desempenho em nível humano, capítulos 33 a 35, discutirei mais detalhadamente o processo de comparar a qualidade de um algoritmo de aprendizado com o nível de qualidade que uma pessoa pode alcançar.
Nos últimos capítulos, você aprendeu como avaliar o viés e dispersão removível / irrecuperável analisando a proporção de erros do classificador nas amostras de treinamento e validação. O próximo capítulo examinará como você pode usar as conclusões dessa análise para decidir se deve se concentrar nos métodos que reduzem o viés ou nos métodos que reduzem a propagação. As abordagens para combater o viés são muito diferentes das abordagens para reduzir a dispersão; portanto, as técnicas que você deve aplicar no seu projeto para melhorar a qualidade dependem muito do que é o problema atualmente - viés grande ou dispersão grande.
Continue lendo!
23 Eliminando deslocamentos e dispersão
Aqui está uma fórmula simples para eliminar o viés e a dispersão:
- Se você tem um grande viés evitável, aumente a complexidade do seu modelo (por exemplo, aumente sua rede neural adicionando camadas ou (e) neurônios)
- Se você tem uma ampla variedade, adicione exemplos ao seu conjunto de treinamento.
Se você tiver a oportunidade de aumentar o tamanho da rede neural e adicionar dados ao conjunto de treinamento ilimitado, isso ajudará a obter um bom resultado para um grande número de tarefas de aprendizado de máquina.
Na prática, aumentar o tamanho do modelo acabará por causar dificuldades computacionais, pois o treinamento de modelos muito grandes é lento. Você também pode esgotar o limite de dados disponíveis para treinamento. (Mesmo na Internet, é claro o número de imagens com gatos!)
Diferentes arquiteturas de modelos de algoritmos, por exemplo, diferentes arquiteturas de redes neurais, fornecerão valores diferentes de polarização e dispersão em relação à sua tarefa. Um eixo de pesquisas recentes de aprendizado profundo criou um grande número de arquiteturas inovadoras de modelos de redes neurais. Portanto, se você usa redes neurais, a não ficção pode ser uma grande fonte de inspiração. Também há um grande número de excelentes implementações de algoritmos em fontes abertas, por exemplo no GitHub. No entanto, os resultados das tentativas de usar novas arquiteturas são significativamente menos previsíveis do que a fórmula simples dada acima - aumentam o tamanho do modelo e adicionam dados.
Aumentar o tamanho do modelo geralmente reduz o viés, mas também pode causar um aumento no spread e o risco de reciclagem também aumenta. No entanto, o problema de reciclagem novamente ocorre apenas quando você não está usando a regularização. Se você incluir um método de regularização bem projetado em seu modelo, geralmente conseguirá aumentar com segurança o tamanho do modelo sem permitir a reciclagem.
, , L2 dropout ( : Dropout , , : https://habr.com/company/wunderfund/blog/330814/ ), , . , ; . , - — .
24
« ». , , , . «» .
, — () , , . , , .
( ). , , , .
, , . , , , , .
, , . .
, , .
25
, :
- (, ): , . , , , .
- , , . , ( ). , . ; , , , , .
- (L2 , L1 , Dropout): , , .
- (, ) : ,
:
26
, / .
, , , , , . , , . . .
, - . , , 100 , , . , :
, , . , .
, -, , . , - , , , - . , , .
27
, :
- : , , .
- (L1 , L2 , dropout): , .
- (. . , ): , . , .
- / : , . (, 1000 900) . ( 1000 100 10 ) , , . , , , , , , , . , , .
- () ( / ). ! , , . , . . . , . , , .
, , :
- , , : , , , . . , ; , , .
- (, ) : .