Início
Think
Tópicos
Função de perda
Publicado em: 12 de julho de 2024
Colaboradores: Dave Bergmann, Cole Stryker
No aprendizado de máquina (ML), uma função de perda é usada para medir o desempenho do modelo, calculando o desvio das previsões de um modelo em relação às previsões corretas da "verdade absoluta". Otimizar um modelo envolve ajustar parâmetros do modelo para minimizar a saída de alguma função de perda.
Uma função de perda é um tipo de função objetiva que, no contexto da ciência de dados, se refere a qualquer função cuja minimização ou maximização represente o objetivo do treinamento do modelo. O termo "função de perda", que geralmente é sinônimo de função de custo ou função de erro, refere-se especificamente a situações em que a minimização é o objetivo de treinamento de um modelo de aprendizado de máquina.
Em termos simples, uma função de perda rastreia o grau de erro nas saídas de um modelo de inteligência artificial (IA). Ele faz isso quantificando a diferença (“perda”) entre um valor previsto — ou seja, a saída do modelo — para uma determinada entrada e o valor real ou verdade absoluta. Se as previsões de um modelo forem precisas, a perda será pequena. Se suas previsões forem imprecisas, a perda será grande.
O objetivo fundamental do aprendizado de máquina é treinar modelos para produzir boas previsões. As funções de perda nos permitem definir e buscar esse objetivo matematicamente. Durante o treinamento, os modelos "aprendem" a produzir melhores previsões ajustando parâmetros de forma a reduzir a perda. Um modelo de aprendizado de máquina foi suficientemente treinado quando a perda foi minimizada abaixo de um limite predeterminado.
Embora a maioria das organizações tenha clareza sobre os resultados que esperam da IA generativa, escolher o modelo errado pode ter um impacto severo em sua empresa. Neste ebook, explore um framework de seleção de modelos para equilibrar os requisitos de desempenho com custo, risco, necessidades de implementação e requisitos dos stakeholders.
Em uma configuração de treinamento típica, um modelo faz previsões em um lote de pontos de dados de amostra extraídos do conjunto de dados de treinamento, e uma função de perda mede o erro médio para cada exemplo. Essas informações são usadas para otimizar os parâmetros do modelo.
As funções de perda são específicas do aprendizado supervisionado, cujas tarefas de treinamento pressupõem a existência de uma resposta correta: a verdade absoluta. Algoritmos convencionais de aprendizado não supervisionado, como agrupamento ou associação, não envolvem respostas “certas” ou “erradas”, pois buscam exclusivamente descobrir padrões intrínsecos em dados não rotulados.
O aprendizado supervisionado requer conjuntos de dados rotulados, nos quais as anotações manuais fornecem a verdade absoluta para cada amostra de treinamento. Por exemplo, os modelos de segmentação de imagens exigem amostras de treinamento com cada pixel anotado de acordo com sua classe correta. No aprendizado autossupervisionado, que mascara ou transforma partes de amostras de dados não rotuladas e modelos de tarefas com a sua reconstrução, a própria amostra original serve como verdade absoluta.
As funções de perda não são simplesmente métricas de avaliação. Seu propósito explícito não é apenas medir o sucesso do modelo, mas também servir como entrada para um algoritmo que otimiza os parâmetros do modelo para minimizar a perda.
Algoritmos de otimização, como gradiente descendente, normalmente usam o gradiente da função de perda. O gradiente é a derivada de uma função com múltiplas variáveis. Essencialmente, uma derivada descreve a taxa e a quantidade com que a saída de uma função está mudando em qualquer ponto. Portanto, é importante que as funções de perda sejam diferenciáveis: em outras palavras, ter uma derivada em todos os pontos.
Os modelos de aprendizado de máquina aprendem a fazer previsões precisas por meio de ajustes em determinados parâmetros do modelo. Por exemplo, um algoritmo de regressão linear simples modela dados com a função y = wx+b, onde y é a saída do modelo, x é a entrada, w é um peso e b é o viés. O modelo aprende ao atualizar os termos do peso e viés até que a função de perda tenha sido suficientemente minimizada.
Usando o gradiente da função de perda, os algoritmos de otimização determinam a direção em que os parâmetros do modelo devem ser "escalonados" para descer o gradiente e, assim, reduzir a perda.
Modelos de deep learning empregam grandes redes neurais artificiais, compreendendo camadas de neurônios interconectados, cada um com sua própria função de ativação não linear, em vez de depender de uma função singular. Para diferenciar toda a rede, é necessário calcular as derivadas parciais de centenas, milhares ou até milhões de variáveis separadas e funções de ativação em relação umas às outras.
Para isso, as redes neurais usam a retropropagação para encontrar o gradiente da função de perda após uma passagem para a frente, que termina com uma previsão em um ponto de dados do conjunto de dados de treinamento. Abreviação de propagação retroativa de erros, a retropropagação começa com a saída da função de perda. Em uma passagem para trás pela rede da camada de saída para a camada de entrada, a retropropagação usa a regra da cadeia para calcular como cada peso e viés individual na rede contribuiu para a perda geral.
Então, o gradiente resultante de derivadas parciais para toda a rede pode ser usado por algoritmos de gradiente descendente para atualizar iterativamente os pesos da rede até que a perda tenha sido suficientemente minimizada.
Embora os modelos sejam treinados e validados fazendo previsões em um conjunto de dados de treinamento, um bom desempenho em exemplos de treinamento não é o objetivo final. O verdadeiro objetivo do aprendizado de máquina é treinar modelos que generalizem bem para novos exemplos.
Basear-se apenas na minimização de uma função de perda singular é chamado de "minimização empírica de risco". Embora tenha um apelo óbvio e simples, há o risco de um modelo se ajustar demais aos dados de treinamento e, portanto, generalizar mal. Para reduzir esse risco, entre outras finalidades, muitos algoritmos e arquiteturas introduzem termos de regularização, que modificam a função de perda primária.
Por exemplo, o erro absoluto médio (MAE), que neste contexto é chamado de regularização L1, pode ser usado para impor a dispersão penalizando o número de neurônios ativados em uma rede neural ou a magnitude de sua ativação.
Existe uma grande variedade de funções de perda diferentes, cada uma adequada a diferentes objetivos, tipos de dados e prioridades. No nível mais alto, as funções de perda mais comumente usadas são divididas em funções de perda de regressão e funções de perda de classificação.
As funções de perda de regressão medem erros em previsões envolvendo valores contínuos. Embora se apliquem de forma mais intuitiva a modelos que estimam diretamente conceitos quantificáveis, como preço, idade, tamanho ou tempo, a regressão tem uma ampla gama de aplicações. Por exemplo, uma função de regressão pode ser usada para otimizar um modelo de imagem cuja tarefa envolve estimar o valor da cor de pixels individuais.
As funções de perda de classificação medem erros em previsões envolvendo valores discretos, como a categoria à qual um ponto de dados pertence ou se um e-mail é spam ou não. Os tipos de perda de classificação podem ser subdivididos ainda mais em aqueles adequados para classificação binária e aqueles adequados para classificação multiclasses.
A seleção de qualquer função de perda dentro dessas duas categorias amplas deve depender da natureza do caso de uso. Alguns algoritmos de aprendizado de máquina exigem uma função de perda específica adequada à sua estrutura matemática, mas para a maioria das arquiteturas de modelo existem, pelo menos teoricamente, várias opções.
Diferentes funções de perda priorizam diferentes tipos de erro. Por exemplo, alguns podem penalizar severamente os valores discrepantes, enquanto outros controlam as variâncias menores. Alguns fornecem maior precisão, mas à custa de cálculos mais complexos e, portanto, mais tempo e recursos computacionais para calcular.
Em última análise, a escolha de uma função de perda deve refletir a tarefa específica de aprendizado, a natureza dos dados que o modelo analisa, os tipos de imprecisões que serão mais caros e os recursos computacionais disponíveis.
Problemas de regressão, como regressão linear ou regressão polinomial, produzem valores contínuos ao determinar a relação entre uma ou mais variáveis independentes (x) e uma variável dependente (y): considerando-se x, preveja o valor de y. A perda de regressão deve, portanto, ser sensível não apenas para saber se uma saída está incorreta, mas para o grau em que ela diverge da verdade absoluta.
A função de perda de erro quadrático médio, também chamada perda L2 ou perda quadrática, é geralmente o padrão para a maioria dos algoritmos de regressão. Como o próprio nome sugere, o MSE é calculado como a média das diferenças quadráticas entre o valor previsto e o valor real em todos os exemplos de treinamento. A fórmula para calcular o MSE em n pontos de dados é escrita como , em que y é o valor verdadeiro e ŷ é o valor previsto.
Quadrar o erro significa que o valor resultante é sempre positivo: dessa forma, o MSE avalia apenas a magnitude do erro, não sua direção. A quadratura do erro também causa um impacto desproporcionalmente pesado na perda geral, o que pune fortemente os valores discrepantes e incentiva o modelo a reduzi-los. O MSE é, portanto, adequado quando se presume que as saídas-alvo tenham uma distribuição normal (gaussiana).
O MSE é sempre diferenciável, o que o torna prático para otimizar modelos de regressão por meio de gradiente descendente.
Erro logarítmico quadrático médio (MSLE)
Para problemas de regressão em que os resultados-alvo têm uma gama muito ampla de valores potenciais, como aqueles que envolvem crescimento exponencial, a penalização pesada de grandes erros pode ser contraproducente. O erro logarítmico quadrático médio (MSLE) compensa esse problema ao calcular a média dos quadrados do logaritmo natural das diferenças entre os valores previstos e médios. No entanto, vale a pena observar que o MSLE atribui uma penalidade maior às previsões muito baixas do que às previsões muito altas.
A fórmula para o MSLE é escrita como
Raiz do erro quadrático médio (RMSE)
A raiz do erro quadrado médio é a raiz quadrada do MSE, o que a torna intimamente relacionada à fórmula para desvios padrões. Especificamente, o RMSE é calculado como .
O RMSE, portanto, reflete amplamente as qualidades do MSE em termos de sensibilidade a valores discrepantes, mas é mais fácil de interpretar porque expressa perda nas mesmas unidades que o próprio valor de produção. Esse benefício é um pouco moderado pelo fato de que o cálculo do RSME exige outra etapa em comparação com o cálculo do MSE, o que aumenta os custos de computação.
O erro absoluto médio ou perda L1, mede a diferença absoluta média entre o valor previsto e o valor real. Assim como o MSE, o MAE é sempre positivo e não distingue entre estimativas muito altas ou muito baixas. É calculado como a soma do valor absoluto de todos os erros dividida pelo tamanho da amostra:
Como não eleva cada valor de perda ao quadrado, o MAE é mais resistente a valores discrepantes do que o MSE. Portanto, o MAE é ideal quando os dados podem conter alguns valores extremos que não deverim afetar excessivamente o modelo. A perda L1 também penaliza mais os pequenos erros do que a perda L2.
A função de perda de MAE não é diferenciável nos casos em que a saída prevista corresponde à saída real. Portanto, o MAE exige mais etapas de soluções alternativas durante a otimização.
A perda de Huber, também chamada de perda L1 suave, visa equilibrar os pontos fortes do MAE e do MSE. Ela incorpora um hiperparâmetro ajustável, δ, que atua como um ponto de transição: para valores de perda abaixo ou iguais a δ, a perda de Huber é quadrática (como o MSE); para valores de perda maiores que δ, a perda de Huber é linear (como o MAE).
Portanto, a perda de Huber oferece uma função totalmente diferenciável com a robustez do MAE a valores discrepantes e a facilidade de otimização do MSE por meio de descida de gradiente. A transição do comportamento quadrático para linear em δ também resulta em uma otimização menos propensa a problemas como desaparecimento ou explosão de gradientes em comparação com a perda do MSE.
Esses benefícios são moderados pela necessidade de definir cuidadosamente δ, adicionando complexidade ao desenvolvimento do modelo. A perda de Huber é mais apropriada quando nem o MSE nem o MAE conseguem produzir resultados satisfatórios, como quando um modelo deve ser robusto a valores discrepantes, mas ainda penalizar severamente valores extremos que estão além de um limite específico.
Os problemas de classificação e as funções de perda usadas para otimizar os modelos que os resolvem são divididos em classificação binária (por exemplo, "spam" ou "não spam", "aprovar" ou "rejeitar") ou classificação multiclasses .
Problemas de classificação multiclasses podem ser abordados de duas maneiras. Uma abordagem é calcular a probabilidade relativa de um ponto de dados pertencer a cada categoria potencial e, então, selecionar a categoria com a maior probabilidade atribuída. Essa abordagem é normalmente empregada por redes neurais, usando uma função de ativação softmax para neurônios na camada de saída. A abordagem alternativa é dividir o problema em uma série de problemas de classificação binária.
Na maioria dos casos, a perda de classificação é calculada em termos de entropia. Entropia, em linguagem simples, é uma medida de incerteza dentro de um sistema. Para um exemplo intuitivo, compare o lançamento de moeda com o lançamento de dado: o primeiro tem menor entropia, pois há menos resultados potenciais em um lançamento de moeda (2) do que em um lançamento de dado (6).
No aprendizado supervisionado, as previsões do modelo são comparadas com as classificações de verdade absoluta fornecidas pelos rótulos de dados. Esses rótulos de verdade absoluta são certos e, portanto, têm baixa ou nenhuma entropia. Dessa forma, podemos medir a perda em termos da diferença de certeza que teríamos ao usar os rótulos de verdade absoluta em relação à certeza dos rótulos previstos pelo modelo.
A fórmula para a perda de entropia cruzada (CEL) é derivada da fórmula da divergência de Kullback-Leibler (divergência de KL), que mede a diferença entre duas distribuições de probabilidade. Em última análise, minimizar a perda implica minimizar a diferença entre a distribuição da verdade absoluta das probabilidades atribuídas a cada rótulo potencial e as probabilidades relativas para cada rótulo previsto pelo modelo.
Entropia cruzada binária (perda logarítmica)
A perda de entropia cruzada binária, também chamada de perda logarítmica, é usada para classificação binária. Os algoritmos de classificação binária normalmente produzem um valor de probabilidade entre 0 e 1. Por exemplo, em um modelo de detecção de spam por e-mail, as entradas de e-mail que resultam em saídas mais próximas de 1 podem ser rotuladas como “spam”. Entradas que produzem saídas mais próximas de 0 seriam classificadas como “não spam”. Uma saída de 0,5 indicaria incerteza ou entropia máxima.
Embora o algoritmo produza valores entre 0 e 1, os valores da verdade absoluta para as previsões corretas são exatamente “0” ou “1”. Minimizar a perda de entropia cruzada binária, portanto, implica não apenas penalizar as previsões incorretas, mas também penalizar as previsões com baixa certeza. Isso incentiva o modelo a aprender parâmetros que produzem previsões que não são apenas corretas, mas também confiáveis. Além disso, focar nos logaritmos dos valores de verossimilhança previstos faz com que o algoritmo penalize mais fortemente as previsões que estão confiantemente erradas.
Para manter a convenção comum de valores de perda mais baixos significando menos erro, o resultado é multiplicado por -1. A perda logarítmica para um único exemplo i é, portanto, calculada como , onde yi é a probabilidade verdadeira (0 ou 1) e p(yi) é a probabilidade prevista. Então, a perda média em todo um conjunto de n exemplos de treinamento é calculada como .
Perda categórica de entropia cruzada
A perda categórica de entropia cruzada (CCEL) aplica esse mesmo princípio à classificação multiclasses. Um modelo de classificação multiclasses geralmente gera um valor para cada classe potencial, representando a probabilidade de uma entrada pertencer a cada categoria respectiva. Em outras palavras, produz previsões como uma distribuição de probabilidades.
No deep learning, os classificadores de redes neurais normalmente usam uma função de ativação softmax para neurônios na camada de saída. O valor de cada neurônio de saída é mapeado para um número entre 0 e 1, com os valores somando coletivamente 1.
Por exemplo, em um ponto de dados contendo apenas uma categoria potencial, os valores da verdade absoluta para cada previsão compreendem "1" para a classe verdadeira e "0" para cada classe incorreta. Minimizar o CCEL implica aumentar o valor de saída para a classe correta e diminuir os valores de saída para as classes incorretas, aproximando a distribuição de probabilidade da verdade absoluta. Para cada exemplo, a perda logaritmica deve ser calculada para cada classificação potencial prevista pelo modelo.
Perda de articulação é uma função de perda alternativa para problemas de classificação binária e é particularmente adequada para otimizar modelos de máquina de vetores de suporte (SVM) . Especificamente, é uma função de perda eficaz para otimizar um limite de decisão que separa duas classes: depois disso, os pontos podem ser classificados de acordo com o lado do limite de decisão em que se encontram.
Em algoritmos que usam perda de articulação, o valor da verdade absoluta de cada rótulo binário é mapeado para {-1, 1} em vez de {0,1}. A função de perda de articulação ℓ é definida como ℓ(𝑦)=max(0,1−𝑡⋅𝑦), onde t é o rótulo verdadeiro e y é a saída do classificador. O resultado desta equação é sempre não negativo: se 1−𝑡⋅𝑦 é negativo (o que só é possível quando t e y têm o mesmo sinal porque o modelo previu a perda de classe correta), em vez disso, é definido como 0.
Isso proporciona várias possibilidades e incentivos:
Quando as previsões do modelo estão corretas e confiantes, ou seja, quando y é o sinal correto e |y| ≥ 1 (o valor de 1) t⋅y será negativo e, portanto, ℓ = 0.
Quando as previsões do modelo estão corretas, mas não confiantes (ou seja, quando y é o sinal correto, mas |y| < 1), o valor de ℓ será positivo, entre 0 e 1. Isso desencoraja as previsões não confiantes.
Quando as previsões do modelo estão incorretas, ou seja, quando y é o sinal incorreto, o valor de ℓ será maior que 1 e aumentará linearmente com o valor de |y|. Isso desencoraja fortemente as previsões incorretas.
Algumas arquiteturas de modelos, particularmente aquelas usadas em deep learning, empregam ostensivamente funções de perda únicas e especializadas. Embora essas funções objetivas sejam únicas em termos de contexto e lógica, elas são muitas vezes (mas nem sempre) simplesmente a aplicação especializada de uma função de perda comum a um objetivo de treinamento específico.
Por exemplo:
Os autocodificadores são modelos não supervisionados que aprendem a codificar com eficiência uma representação comprimida dos dados de entrada, comprimindo esses dados por meio de um "gargalo" e, em seguida, usando essa representação comprimida para reconstruir a entrada original. Os autocodificadores aprendem minimizando a perda de reconstrução: a diferença entre a entrada original e a reconstruída, normalmente calculada por meio do erro quadrático médio (MSE). Os autocodificadores variacionais incorporam a divergência KL como um termo de regularização.
Os modelos de detecção de objetos minimizam dois tipos de perda: regressão de caixa delimitadora e perda de entropia cruzada. A primeira emprega MSE, MAE ou uma perda especializada, como intersecção sobre união (IoU), para comparar as coordenadas da caixa delimitadora prevista com as da verdade absoluta. Esta última mede a classificação do objeto em si.
O aprendizado contrastante, uma forma de aprendizado autossupervisionado, treina um modelo para produzir incorporações vetoriais semelhantes para pontos de dados semelhantes. O objetivo é reduzir a perda contrastante ou variantes especializadas, como a perda de trigêmeos.
Treine, valide, ajuste e implemente IA generativa, modelos de base e recursos de aprendizado de máquina com facilidade, além de criar aplicativos de IA em uma fração do tempo com uma fração dos dados.
Reinvente sua forma de trabalhar com a IA: nossa equipe global diversificada de mais de 20 mil especialistas em IA pode ajudá-lo a projetar e escalar a IA e a automação de forma rápida e confiável em toda a sua empresa, trabalhando com nossa própria tecnologia IBM watsonx e um ecossistema aberto de parceiros para oferecer qualquer modelo de IA, em qualquer nuvem, guiado ética e confiança.
Acelere os fluxos de trabalho de IA responsáveis, transparentes e explicáveis tanto em modelos de IA generativa quanto de aprendizado de máquina. Avalie e monitore a integridade, precisão, desvio, viés e qualidade da IA generativa do modelo.
Multiplique o poder da IA com nossa plataforma de dados e IA de última geração.
Saiba como as funções de perda são usadas no treinamento e na otimização de redes neurais, a espinha dorsal do deep learning e da IA generativa, por meio da retropropagação.
Aprenda os fundamentos da construção de redes neurais, mesmo sem a ajuda de frameworks, que podem facilitar o uso.
Explore alguns dos principais aspectos da IA e seus subcampos, incluindo uma breve história e conceitos básicos que levam você desde o início dos algoritmos preditivos até os marcos do deep learning moderno.