Métricas#

Acurácia (CalculateAccuracy)#

float CalculateAccuracy(const Eigen::MatrixXf &predictions, const Eigen::MatrixXf &targets)#

Calcula a métrica de acurácia de classificação do modelo.

  • Esta função avalia a taxa de acerto global das previsões em relação aos rótulos reais. Ela é projetada para problemas de classificação (como o reconhecimento de dígitos MNIST), onde a classe prevista é aquela com a maior probabilidade (ou logit) na camada de saída.

  • Matematicamente, a acurácia para um lote de \( N \) amostras é calculada extraindo-se o argumento máximo ( \( \text{argmax} \)) de cada linha e utilizando a Função Indicadora \( \mathbb{I} \):

    \[ \hat{c}_i = \arg\max_j (\hat{Y}_{i,j}) \]
    \[ c_i = \arg\max_j (Y_{i,j}) \]
    \[ \text{Accuracy} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{I}(\hat{c}_i = c_i) \]
    Onde \( \mathbb{I} \) retorna 1 se a classe prevista for igual à classe real, e 0 caso contrário.

Note

Na biblioteca Eigen, a operação vetorial equivalente ao \( \text{argmax} \) é obtida através do método maxCoeff(), passando o endereço de um Eigen::Index para capturar a posição do maior valor.

Parameters:
  • predictions – Matriz constante \( \hat{Y} \) contendo as saídas do modelo (ex: probabilidades pós-Softmax).

  • targets – Matriz constante \( Y \) contendo os rótulos reais (geralmente codificados em One-Hot Encoding).

Returns:

Um valor escalar do tipo float no intervalo \( [0, 1] \) representando a proporção de acertos do lote.