Evitar overfitting

Uma armadilha comum ao treinar um modelo do BigQuery ML é o overfitting (em inglês). O overfitting ocorre quando o modelo é muito parecido com os dados de treinamento, fazendo com que ele tenha um desempenho ruim em novos dados. O BigQuery ML é compatível com dois métodos para evitar o overfitting: parada antecipada e regularização (páginas em inglês).

Para saber como modificar as opções descritas abaixo, consulte a instrução CREATE MODEL.

Parada antecipada

A parada antecipada é a opção padrão para evitar o overfitting no BigQuery ML. Quando a parada antecipada é ativada, a perda nos dados não incluídos (páginas em inglês) é monitorada durante o treinamento, que é interrompido quando a melhoria da perda na iteração mais recente fica abaixo de um limite. Como os dados não incluídos não são usados durante o treinamento, é uma boa estimativa da perda do modelo em novos dados. As opções early_stop, min_rel_progress, data_split_method e data_split_eval_fraction controlam o comportamento da parada antecipada.

Regularização

A regularização impede que os pesos de modelo (em inglês) aumentem muito, impedindo que o modelo corresponda aos dados de treinamento com muita precisão. O BigQuery ML é compatível com dois métodos para controlar o tamanho dos pesos de modelo: regularização L1 e regularização L2 (páginas em inglês).

Por padrão, os valores de l1_reg e l2_reg são zero, o que desativa a regularização. Em alguns conjuntos de dados, definir valores positivos para l1_reg e l2_reg melhora o desempenho do modelo treinado, em novos dados. Os melhores valores para os parâmetros de regularização geralmente são encontrados por meio de tentativa e erro. É comum testar valores em várias ordens de magnitude (como 0,01; 0,1; 1; 10; e 100).

Veja alguns conselhos sobre como usar a regularização:

  • Se você estiver testando os parâmetros de regularização, tente desativar a parada antecipada para que o efeito da regularização seja claro.

  • Se o número de recursos for grande em comparação com o tamanho do conjunto de treinamento, tente valores grandes para os parâmetros de regularização. O risco de overfitting é maior quando há apenas algumas observações por recurso.

  • Se você estiver preocupado com a possibilidade de muitos recursos serem irrelevantes para prever o rótulo, tente definir l1_reg como maior que l2_reg e vice-versa. Há provas teóricas (em inglês) de que a regularização L1 funciona melhor quando muitos recursos são irrelevantes.

Outro benefício da regularização L1 é que ela tende a definir muitos pesos de modelo como exatamente zero, o que é útil para identificar os recursos mais relevantes e treinar um modelo compacto.

A seguir