Redes neurais: exercícios interativos

Nos exercícios interativos abaixo, você explorará ainda mais o funcionamento interno de redes neurais artificiais. Primeiro, você vai conferir como os parâmetros e os hiperparâmetros mudam afetam as previsões da rede. Depois, você vai usar o que aprendeu para treinar para ajustar dados não lineares.

Exercício 1

O widget abaixo define uma rede neural com a seguinte configuração:

  • Camada de entrada com três neurônios contendo os valores 0.00, 0.00 e 0.00
  • Camada escondida com 4 neurônios
  • Camada final com 1 neurônio
  • Função de ativação ReLU aplicada a todos os nós da camada escondida e o nó de saída

Analise a configuração inicial da rede. Observação: não clique no botão ▶️ ou >|) e conclua as tarefas abaixo do widget.

Tarefa 1

Os valores dos três atributos de entrada do modelo de rede neural são todos 0.00: Clique em cada um dos nós na rede para ver todos os nós inicializados valores. Antes de pressionar o botão Reproduzir (▶️), responda a esta pergunta:

Que tipo de valor de saída você que será produzido: positivo, negativo ou 0?
Valor de saída positivo
Valor de saída negativo
Valor de saída 0

Clique no botão Reproduzir (▶️) acima da rede e assista todo o conteúdo da camada escondida e os valores do nó de saída serão preenchidos. Sua resposta acima estava correta?

Clique aqui para ver uma explicação

O valor de saída exato varia com base em como o peso e os parâmetros de viés são inicializados aleatoriamente. No entanto, como cada neurônio na camada de entrada tiver um valor de 0, os pesos usados para calcular a todos os valores de nó da camada escondida serão zerados. Por exemplo, o primeiro o cálculo do nó da camada escondida será:

y = ReLU(w11* 0,00 + w21* 0,00 + w31* 0,00 + b)

y = ReLU(b)

Assim, o valor de cada nó de camada oculta será igual ao valor ReLU da (b), que será 0 se b for negativo e a própria b se b for 0 ou positiva.

O valor do nó de saída será calculado da seguinte forma:

y = ReLU(w11* x11 + w21* x21 + w31* x31 + w41* x41 + b)

Tarefa 2

Antes de modificar a rede neural, responda à seguinte pergunta:

Se você adicionar outra camada escondida à rede neural após a primeira camada escondida e dar a essa nova camada três nós, mantendo todos os parâmetros de entrada e peso/polarização são iguais, e os outros cálculos serão afetadas?
Todos os nós na rede, com exceção dos nós de entrada
Apenas os nós na primeira camada escondida
Apenas o nó de saída

Agora modifique a rede neural para adicionar uma nova camada escondida com três nós da seguinte maneira:

  1. Clique no botão + à esquerda do texto 1 camada escondida para adicionar uma nova camada. camada escondida antes da camada final.
  2. Clique no botão + acima da nova camada escondida duas vezes para adicionar mais dois nós para a camada.

Sua resposta acima estava correta?

Clique aqui para ver uma explicação

Somente o nó de saída muda. Como a inferência para essa rede neural é "feed-forward" (progresso dos cálculos do início ao fim), a adição de uma nova camada na rede só afetará os nós após a nova camada, não as que a precedem.

Tarefa 3

Clique no segundo nó (de cima para baixo) na primeira camada escondida da rede gráfico. Antes de fazer qualquer alteração na configuração da rede, responda à seguinte pergunta:

Se você alterar o valor do atributo peso w12 (exibido abaixo do primeiro nó de entrada, x1), de quais outros nós cálculos podem ser afetados por alguma entrada valores?
Nenhum
O segundo nó a primeira camada escondida, todos os nós da segunda camada escondida e os nó de saída.
Todos os nós na primeira camada escondida, a segunda e a camada final.

Agora, clique no campo de texto da ponderação w12 (exibido abaixo do primeiro nó de entrada, x1), altere o valor dele para 5.00 e pressione Enter. Observe as atualizações no gráfico.

Sua resposta estava correta? Tenha cuidado ao verificar sua resposta: se um nó o valor não muda, isso significa que o cálculo subjacente não mudou?

Clique aqui para ver uma explicação

O único nó afetado na primeira camada escondida é o segundo (o aquele em que você clicou). Os cálculos de valor para os outros nós no primeiro camada escondida não contêm w12 como parâmetro, portanto, não contêm afetadas. Todos os nós da segunda camada escondida são afetados, já que dependem do valor do segundo nó camada escondida. Da mesma forma, o valor do nó de saída é afetado dependem dos valores dos nós na segunda camada escondida.

Você achou que a resposta era "nenhuma" porque nenhum dos valores de nó quando você alterou o valor do peso? Um objeto subjacente o cálculo de um nó pode mudar sem mudar o valor dele (por exemplo, ReLU(0) e ReLU(–5) produzem uma saída de 0. Não presuma como a rede foi afetada apenas pela analisando os valores dos nós. não deixe de revisar os cálculos também.

Exercício 2

Nos exercícios de cruzamento de atributos no módulo de dados categóricos, você construiu manualmente cruzamentos de atributos para ajustar dados não lineares. Agora, você descobrirá se consegue criar uma rede neural capaz de aprender automaticamente ajustar dados não lineares durante o treinamento.

Sua tarefa: configure uma rede neural que possa separar os pontos laranjas dos os pontos azuis no diagrama abaixo, obtendo uma perda inferior a 0,2 em ambos os dados de treinamento e teste.

Instructions:

No widget interativo abaixo:

  1. Modificar os hiperparâmetros da rede neural testando alguns das seguintes configurações:
    • Adicione ou remova camadas ocultas clicando nos botões + e - no à esquerda do título HIDDEN LAYERS no diagrama de rede.
    • Adicione ou remova neurônios de uma camada escondida clicando em + e -. acima de uma coluna de camada oculta.
    • Altere a taxa de aprendizado escolhendo um novo valor em Taxa de aprendizado acima do diagrama.
    • Altere a função de ativação escolhendo um novo valor no Menu suspenso Ativação acima do diagrama.
  2. Clique no botão Reproduzir (▶️) acima do diagrama para treinar a rede neural usando os parâmetros especificados.
  3. Observar a visualização do modelo ajustando os dados como treinamento avança, assim como Perda de teste e Valores de perda de treinamento em a seção Saída.
  4. Se o modelo não atingir perda abaixo de 0,2 nos dados de teste e treinamento, Clique em "reset" e repita as etapas de 1 a 3 com um conjunto diferente de configurações. configurações. Repita esse processo até obter os resultados desejados.

Clique aqui para conferir nossa solução

Conseguimos atingir perdas de teste e treinamento abaixo de 0,2 ao:

  • Adição de uma camada escondida contendo três neurônios.
  • Escolher uma taxa de aprendizado de 0,01.
  • Escolher uma função de ativação da ReLU.