Respostas:
A perda de log tem a propriedade agradável de ser uma função diferenciável. A precisão pode ser mais importante e é definitivamente mais interpretável, mas não é diretamente utilizável no treinamento da rede devido ao algoritmo de retropropagação que exige que a função de perda seja diferenciável. Quando sua perda preferida não é diretamente otimizável (como a precisão), você usa uma função de perda que se comporta de maneira semelhante ao proxy da métrica verdadeira. No caso de classificação binária, você usaria um sigmóide no final e uma perda de log para aproximar a precisão. Eles são altamente correlacionados.
A perda é mais geral que a precisão. Na classificação, você pode ter 100% de precisão, onde todos os rótulos são previstos corretamente. Mas e quanto à regressão ou previsão? Não há definição de 0% e 100%
A perda pode ser otimizada com vários métodos. Na classe Métodos Numéricos, você aprendeu a resolver uma função otimizando-a (o que está minimizando ) com vários métodos, como o método de Newton, o método de bissecção, etc.
Sim, ambos medem a exatidão de y e y_hat e sim, geralmente são correlacionados. Às vezes, a função de perda pode não ser precisa, mas você ainda está interessado em medir a precisão, mesmo que não a esteja otimizando diretamente. O exemplo MNIST do TensorFlow do Google minimiza / otimiza a perda de entropia cruzada, mas exibe precisão ao usuário ao relatar resultados, e isso é perfeitamente aceitável.
Às vezes, você não deseja otimizar a precisão diretamente. Por exemplo, se você tiver um sério desequilíbrio de classe, seu modelo maximizará a precisão simplesmente escolhendo sempre a classe mais comum, mas esse não seria um modelo útil. Nesse caso, entropia / perda de log seria uma função de perda melhor para otimizar.
show_accuracy
parâmetro estiver definido como True (como no ajuste ou na avaliação). Isso está correto?
def your_own_metric(y_true, y_pred)
função e passá-lo paramodel.compile(..., metrics=[your_own_metric])