Valoração de algoritmos de aprendizagem

Muitas vezes, podemos ter alguns problemas durante o teste das funções de treino. Para isso, é possível realizar alguns levantamentos a respeito do problema realizando as seguintes atividades:

  • Aumentar o número de exemplos de treino;

  • Diminuir o número de parâmetros;

  • Adicionar parâmetros;

  • Tentar parâmetros polinomiais;

  • Aumentar ou diminuir o valor de \( \lambda \).

Existem outros métodos que podem ser utilizados para valorar a função hipótese, ou seja, verificar a acurácia dos conjuntos de treino e teste. Assim, para cada um dos conjuntos teremos duas funções custo; uma para o conjunto de treino: \( J _{treino}(\theta) \); e outra para o conjunto de teste \( J _{test}(\theta) \).

Com isso, para regressão linear e para algoritmos de classificação, temos as seguintes equações para computar o erro de cada um dos dois métodos.

  1. Para regressão linear:

\[ \large{} J _{test}(\theta) = \frac{1}{2m _{test}} \sum _{i=1} ^{m _{test}} (h _{\Theta}(x _{test} ^{(i)}) - y _{test} ^{(i)}) ^2 \]

  1. Para classificação:

\[ \large{} err(h _{\theta}(x), y) = \Bigg\{ _{0 \ \ caso \ contrário} ^{1 \ \ se \ h _{\theta}(x) \geq 0.5 \ e \ y=1 \ ou \ h _{\theta}(x) < 0.5 \ e \ y=1} \]

Calculamos a média do erro do conjunto de teste:

\[ \large{} TesteErro = \frac{1}{m _{test}} \sum _{i=1} ^{m _{test}} err(h _{\theta}(x _{test} ^{(i)}) - y _{test} ^{(i)}) \]

Cada uma dessas formas nos retorna a proporção que os nossos dados foram erroneamente classificados.

Usualmente, dividimos o dataset em três diferentes conjuntos:

  • Conjunto de treino (60%);

  • Conjunto de cross-validation (20%);

  • Conjunto de teste (20%).

O conjunto de treino é utilizado efetivamente para treinar o nosso modelo de rede neural. O conjunto de cross-validation é utilizado para testar o nosso modelo enquanto realizamos o treino, para que possamos ajustar os hiperparâmetros e controlar os casos de overfitting e underfitting que podem, eventualmente vir a ocorrer. O conjunto de teste, serve, essencialmente para testarmos o modelo e verificarmos o quão bem ele está generalizando dados que não foram previamente vistos.

Podemos calcular os os erros para cada um desses três conjuntos, resultando em três diferentes valores: \( J _{train}(\theta), J _{cv}(\theta), J _{test}(\theta) \). Com isso, usamos os valores dos erros de \( J _{cv}(\theta) \) para ajustarmos o grau do polinômio a fim de que possamos atingir o menor erro possível para \( J _{test}(\theta) \).