Treine uma rede neural auto-normalizadora
Historicamente, redes neurais totalmente conectadas com múltiplas camadas têm sido extremamente difíceis de treinar. Todas as redes profundas usavam uma distribuição de peso (como camadas de convolução ou recorrentes). Além disso, as redes neurais tiveram dificuldade em competir com os métodos tradicionais de aprendizado de máquina (Random Forest etc.) em tarefas de não percepção. As redes neurais auto-normalizantes (SNN) lançadas em 2017 são a primeira arquitetura de rede neural que permite que redes profundas totalmente conectadas sejam treinadas e também a primeira arquitetura que compete com métodos tradicionais em dados estruturados (geralmente séries de classes e números). Este exemplo mostra como criar e treinar essa rede.
SNNs são uma classe muito simples de redes; eles usam apenas camadas lineares, não-linearidade elementar e uma versão modificada de "Dropout" para regularização. Construa um classificador SNN de sete camadas lineares.
O elemento chave nessa rede é sua não linearidade "SELU" (Unidade Linear Exponencial em Escala). A não-linearidade "SELU" tem a particularidade de manter os dados padronizados e evita que os gradientes fiquem muito pequenos ou grandes demais.
Treine esta rede com a tarefa de classificação da UCI Letter.
Redes auto-normalizantes assumem que os dados de entrada têm uma média de 0 e variância de 1. Padronize os dados de treinamento e teste.
Treine a rede por 150 vezes, deixando 5% dos dados para validação.
Use a rede em um novo exemplo.
Obtenha a precisão da rede treinada no conjunto de testes padronizado.
A precisão da rede auto-normalizante (cerca de 96,4%) é boa em comparação com os métodos clássicos de aprendizado de máquina.