Redes neurais: estrutura

Como você se lembra da unidade de cruzamentos de atributos, o problema de classificação a seguir não é linear:

Gráfico cartesiano. O eixo X tradicional é chamado de 'x1'. O eixo Y tradicional é identificado como 'x2'. Os pontos azuis ocupam os quadrantes noroeste e sudeste, enquanto os pontos amarelos ocupam os quadrantes sudoeste e nordeste.

Figura 1. problema de classificação não linear.

"Não linear" significa que não é possível prever # com precisão um rótulo com um modelo do formulário \(b + w_1x_1 + w_2x_2\) Em outras palavras, a "superfície de decisão" não é uma linha. Anteriormente, observamos os cruzamentos de atributos como uma possível abordagem para modelar problemas não lineares.

Agora considere o seguinte conjunto de dados:

O conjunto de dados contém muitos pontos laranjas e azuis. É difícil determinar um padrão coerente, mas os pontos laranja formam uma espiral vagamente, e os pontos azuis podem formar uma espiral diferente.

Figura 2. um problema de classificação não linear mais difícil.

O conjunto de dados mostrado na Figura 2 não pode ser resolvido com um modelo linear.

Para ver como as redes neurais podem ajudar com problemas não lineares, vamos começar representando um modelo linear como um gráfico:

Três círculos azuis seguidos por setas até um círculo verde acima deles

Figura 3. Modelo linear como gráfico.

Cada círculo azul representa um atributo de entrada, e o círculo verde representa a soma ponderada das entradas.

Como alterar esse modelo para melhorar a capacidade dele de lidar com problemas não lineares?

Camadas escondidas

No modelo representado pelo gráfico a seguir, adicionamos uma camada escondida de valores intermediários. Cada nó amarelo na camada oculta é uma soma ponderada dos valores de nó de entrada azul. A saída é uma soma ponderada dos nós amarelos.

Três círculos azuis seguidos

Figura 4. Gráfico do modelo de duas camadas.

Este modelo é linear? Sim, a saída ainda é uma combinação linear das entradas dela.

No modelo representado pelo gráfico a seguir, adicionamos uma segunda camada escondida de somas ponderadas.

Três círculos azuis seguidos

Figura 5. Gráfico do modelo de três camadas.

Este modelo ainda é linear? Sim. Ao expressar a saída como uma função da entrada e simplificar, você recebe apenas outra soma ponderada das entradas. Essa soma não modela o problema não linear na Figura 2.

Funções de ativação

Para modelar um problema não linear, podemos introduzir uma não linearidade diretamente. Podemos encadear cada nó de camada escondida por meio de uma função não linear.

No modelo representado pelo gráfico a seguir, o valor de cada nó na camada escondida 1 é transformado por uma função não linear antes de ser transmitido para as somas ponderadas da próxima camada. Ela é chamada de função de ativação.

Como na figura anterior, com a exceção de que uma linha de círculos cor-de-rosa denominada 'Camada de transformação não linear' foi adicionada entre as duas camadas ocultas.

Figura 6. Gráfico do modelo de três camadas com função de ativação.

Agora que adicionamos uma função de ativação, a adição de camadas tem mais impacto. O empilhamento de não linearidades em não linearidades nos permite modelar relações muito complicadas entre as entradas e as saídas previstas. Em resumo, cada camada está aprendendo de maneira eficaz uma função mais complexa e de alto nível sobre as entradas brutas. Para saber mais sobre como isso funciona, consulte a excelente postagem do blog Chris Olah' (em inglês).

Funções de ativação comuns

A função de ativação sigmoid a seguir converte a soma ponderada em um valor entre 0 e 1.

$$F(x)=\frac{1} {1+e^{-x}}$$

Veja um gráfico:

Função sigmoide

Figura 7. Função de ativação sigmoide.

A função de ativação de unidade linear retificada a seguir (ou ReLU, na sigla em inglês) geralmente funciona um pouco melhor do que uma função suave, como o sigmoide, além de ser significativamente mais fácil de calcular.

$$F(x)=max(0,x)$$

A superioridade da ReLU é baseada em descobertas empíricas, provavelmente impulsionada pela ReLU, tendo um intervalo de capacidade de resposta mais útil. A capacidade de resposta de um sigmoide fica relativamente rápida em ambos os lados.

Função de ativação ReLU

Figura 8. função de ativação ReLU.

Na verdade, qualquer função matemática pode servir como uma função de ativação. Suponha que \(\sigma\) represente nossa função de ativação (Relu, Sigmoid ou o que for). Consequentemente, o valor de um nó na rede é fornecido pela seguinte fórmula:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

O TensorFlow oferece suporte predefinido para várias funções de ativação. Você encontra essas funções de ativação na lista de wrappers de operações primitivas de rede neural do TensorFlow. Mesmo assim, recomendamos começar com a ReLU.

Resumo

Agora, nosso modelo tem todos os componentes padrão do que as pessoas costumam significar quando dizem "rede neural":

  • Um conjunto de nós, análogo a neurônios, organizados em camadas.
  • Um conjunto de pesos que representam as conexões entre cada camada de rede neural e a camada abaixo dela. A camada abaixo pode ser outra camada de rede neural ou algum outro tipo de camada.
  • Um conjunto de vieses, um para cada nó.
  • Uma função de ativação que transforma a saída de cada nó em uma camada. As camadas podem ter funções de ativação diferentes.

Advertência: as redes neurais nem sempre são melhores do que os cruzamentos de atributos, mas as redes neurais oferecem uma alternativa flexível que funciona bem em muitos casos.