1. Crie uma rede neural totalmente conectada com duas camadas ocultas, cada uma com 128 neurônios, utilizando a biblioteca keras. Utilize a função de ativação ReLU e a função de perda categorical_crossentropy para treinar o modelo no conjunto de dados abaixo:

É necessário baixar o arquivo .csv da base de dados do Kaggle e entenda a base de dados para realizar a tarefa.


  1. Modifique o modelo anterior para incluir uma camada de Dropout após cada camada oculta, utilizando uma taxa de dropout de 0.5. Explique como o Dropout ajuda a prevenir o overfitting no modelo.

  1. Treine e avalie o desempenho do modelo original (sem Dropout) e do modelo com Dropout no conjunto de dados MNIST utilizando valores de 0.2, 0.5, e 0.8 para o Dropout. Compare as curvas de perda e acurácia durante o treinamento e comente sobre os resultados. Avalie também o impacto dessas variações no desempenho do modelo e na capacidade de generalização.

  1. Crie um modelo de rede neural totalmente conectada para classificar imagens do conjunto de dados CIFAR-10. Adicione Dropout, e explique como essas técnicas contribuem para o treinamento de redes neurais.

  1. Substitua a função de ativação ReLU pela Sigmoide e o otimizador Adam por RMSprop. Treine o modelo e analise como essas mudanças afetam o desempenho da rede.

  1. Desenvolva um modelo em que a taxa de Dropout seja adaptativa, alterando durante o treinamento com base na época ou na performance. Compare o desempenho com um modelo que utiliza uma taxa de Dropout fixa.