Tivemos que escolher vários hiperparâmetros para definir e treinar o modelo. Confiamos na intuição, nos exemplos e nas práticas recomendadas. No entanto, nossa primeira escolha de valores de hiperparâmetros pode não gerar os melhores resultados. Isso serve apenas como um bom ponto de partida para o treinamento. Cada problema é diferente, e ajustar esses hiperparâmetros ajudará a refinar nosso modelo para representar melhor as particularidades do problema em questão. Vamos dar uma olhada em alguns dos parâmetros que usamos e o que significa ajustá-los:
Número de camadas no modelo: o número de camadas em uma rede neural é um indicador da complexidade dela. Tenha cuidado ao escolher esse valor. Muitas camadas permitem ao modelo aprender muitas informações sobre os dados de treinamento, causando overfitting. Um número insuficiente de camadas pode limitar a capacidade de aprendizado do modelo, causando baixo ajuste. Para conjuntos de dados de classificação de texto, testamos MLPs de uma, duas e três camadas. Modelos com duas camadas têm um bom desempenho e, em alguns casos, melhores do que modelos com três camadas. Da mesma forma, tentamos sepCNNs com quatro e seis camadas, e os modelos de quatro camadas tiveram um bom desempenho.
Número de unidades por camada: as unidades em uma camada precisam conter as informações para a transformação que uma camada realiza. Na primeira camada, isso é baseado no número de atributos. Nas camadas subsequentes, o número de unidades depende da escolha de expandir ou reduzir a representação da camada anterior. Tente minimizar a perda de informações entre as camadas. Testamos valores de unidade no intervalo
[8, 16, 32, 64]
, e as unidades 32/64 funcionaram bem.Taxa de desistência: as camadas de dropout são usadas no modelo para regularização. Eles definem a fração de entradas a serem descartadas como precaução de overfitting. Intervalo recomendado: 0,2 a 0,5.
Taxa de aprendizado: é a taxa em que os pesos da rede neural mudam entre iterações. Uma taxa de aprendizado alta pode causar grandes oscilações nos pesos, e talvez nunca encontremos os valores ideais para eles. Uma taxa de aprendizado baixa é boa, mas o modelo precisa de mais iterações para convergir. É uma boa ideia estar baixo, por exemplo, em 1e-4. Se o treinamento for muito lento, aumente esse valor. Se o modelo não estiver aprendizado, tente diminuir a taxa de aprendizado.
Há outros hiperparâmetros ajustados que são específicos do nosso modelo sepCNN:
Tamanho do kernel: o tamanho da janela de convolução. Valores recomendados: 3 ou 5.
Dimensões de embedding: o número de dimensões que queremos usar para representar embeddings de palavra, ou seja, o tamanho de cada vetor de palavra. Valores recomendados: 50 a 300. Nos nossos experimentos, usamos embeddings do GloVe com 200 dimensões com uma camada de embedding pré-treinada.
Teste esses hiperparâmetros e veja o que funciona melhor. Depois de escolher os hiperparâmetros de melhor desempenho para seu caso de uso, o modelo estará pronto para ser implantado.