Respostas:
Quanto menor a perda, melhor o modelo (a menos que o modelo tenha se ajustado demais aos dados de treinamento). A perda é calculada no treinamento e na validação e sua interperação é o desempenho do modelo nesses dois conjuntos. Diferentemente da precisão, a perda não é uma porcentagem. É uma soma dos erros cometidos para cada exemplo em conjuntos de treinamento ou validação.
No caso de redes neurais, a perda é geralmente verossimilhança logarítmica negativa e soma dos quadrados residuais para classificação e regressão, respectivamente. Então, naturalmente, o objetivo principal de um modelo de aprendizado é reduzir (minimizar) o valor da função de perda em relação aos parâmetros do modelo, alterando os valores do vetor de peso por meio de diferentes métodos de otimização, como a retropropagação em redes neurais.
O valor da perda implica em quão bem ou mal um determinado modelo se comporta após cada iteração da otimização. Idealmente, seria de esperar a redução da perda após cada uma ou várias iterações.
A precisão de um modelo é geralmente determinada depois que os parâmetros do modelo são aprendidos e corrigidos e nenhum aprendizado está ocorrendo. Em seguida, as amostras de teste são alimentadas no modelo e o número de erros (perda zero e um) que o modelo faz é registrado, após comparação com os verdadeiros alvos. Em seguida, é calculada a porcentagem de classificação incorreta.
Por exemplo, se o número de amostras de teste for 1000 e o modelo classificar 952 delas corretamente, a precisão do modelo será de 95,2%.
Existem também algumas sutilezas, reduzindo o valor da perda. Por exemplo, você pode encontrar o problema de ajuste excessivo no qual o modelo "memoriza" os exemplos de treinamento e se torna meio ineficaz para o conjunto de testes. O ajuste excessivo também ocorre nos casos em que você não emprega uma regularização , possui um modelo muito complexo (o número de parâmetros livres W
é grande) ou o número de pontos de dados N
é muito baixo.
São duas métricas diferentes para avaliar o desempenho do seu modelo geralmente sendo usado em diferentes fases.
A perda é frequentemente usada no processo de treinamento para encontrar os "melhores" valores de parâmetros para o seu modelo (por exemplo, pesos na rede neural). É o que você tenta otimizar no treinamento, atualizando pesos.
A precisão é mais de uma perspectiva aplicada. Depois de encontrar os parâmetros otimizados acima, você usa essas métricas para avaliar a precisão da comparação da previsão do seu modelo com os dados reais.
Vamos usar um exemplo de classificação de brinquedos. Você deseja prever o sexo a partir do peso e da altura. Você tem 3 dados, eles são os seguintes: (0 significa masculino, 1 significa feminino)
y1 = 0, x1_w = 50kg, x2_h = 160cm;
y2 = 0, x2_w = 60kg, x2_h = 170cm;
y3 = 1, x3_w = 55kg, x3_h = 175cm;
Você usa um modelo de regressão logística simples que é y = 1 / (1 + exp- (b1 * x_w + b2 * x_h))
Como você encontra b1 e b2? você define uma perda primeiro e usa o método de otimização para minimizar a perda de maneira iterativa, atualizando b1 e b2.
Em nosso exemplo, uma perda típica para esse problema de classificação binária pode ser: (um sinal de menos deve ser adicionado na frente do sinal de soma)
Não sabemos o que b1 e b2 devem ser. Vamos adivinhar aleatoriamente digamos b1 = 0,1 e b2 = -0,03. Então, qual é a nossa perda agora?
então a perda é
Então você aprendendo o algoritmo (por exemplo, descida de gradiente) encontrará uma maneira de atualizar b1 e b2 para diminuir a perda.
E se b1 = 0,1 e b2 = -0,03 forem os b1 e b2 finais (saída da descida do gradiente), qual é a precisão agora?
Vamos supor que se y_hat> = 0,5, decidimos que nossa previsão é feminina (1). caso contrário, seria 0. Portanto, nosso algoritmo prevê y1 = 1, y2 = 1 e y3 = 1. Qual é a nossa precisão? Fazemos uma previsão errada em y1 e y2 e a correta em y3. Então agora nossa precisão é 1/3 = 33,33%
PS: Na resposta de Amir , a propagação traseira é considerada um método de otimização no NN. Eu acho que seria tratado como uma maneira de encontrar gradiente para pesos em NN. O método de otimização comum no NN são GradientDescent e Adam.
@Aadnan Apenas para esclarecer os conjuntos de dados de Treinamento / Validação / Teste: O conjunto de treinamento é usado para executar o treinamento inicial do modelo, inicializando os pesos da rede neural.
O conjunto de validação é usado após o treinamento da rede neural. É usado para ajustar os hiperparâmetros da rede e comparar como as alterações neles afetam a precisão preditiva do modelo. Enquanto o conjunto de treinamento pode ser considerado usado para construir os pesos das portas da rede neural, o conjunto de validação permite o ajuste fino dos parâmetros ou da arquitetura do modelo de rede neural. É útil, pois permite a comparação repetível desses diferentes parâmetros / arquiteturas com os mesmos pesos de dados e redes, para observar como as alterações de parâmetros / arquitetura afetam o poder preditivo da rede.
Em seguida, o conjunto de testes é usado apenas para testar a precisão preditiva da rede neural treinada em dados não vistos anteriormente, após o treinamento e a seleção de parâmetros / arquitetura com os conjuntos de dados de treinamento e validação.