O que é uma Rede Neural?

Uma rede neural é um programa de aprendizado de máquina, ou modelo, que toma decisões de forma semelhante ao cérebro humano, utilizando processos que imitam a maneira como os neurônios biológicos trabalham juntos para identificar fenômenos, pesar opções e chegar a conclusões.

Cada rede neural é composta por camadas de nós, ou neurônios artificiais — uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída. Cada nó se conecta a outros e tem seu próprio peso e limite associados. Se a saída de qualquer nó individual estiver acima do valor limite especificado, esse nó é ativado, enviando dados para a próxima camada da rede. Caso contrário, nenhum dado é passado para a camada seguinte da rede.

As redes neurais dependem de dados de treinamento para aprender e melhorar sua precisão ao longo do tempo. Quando ajustadas para precisão, tornam-se ferramentas poderosas na ciência da computação e inteligência artificial, permitindo-nos classificar e agrupar dados em alta velocidade. Tarefas como reconhecimento de fala ou imagem podem levar minutos ao invés de horas, comparado à identificação manual por especialistas humanos. Um dos exemplos mais conhecidos de rede neural é o algoritmo de busca do Google.

As redes neurais às vezes são chamadas de redes neurais artificiais (ANNs) ou redes neurais simuladas (SNNs). Elas são um subconjunto do aprendizado de máquina e estão no cerne dos modelos de aprendizado profundo.

Como funcionam as redes neurais?

Pense em cada nó individual como um modelo de regressão linear, composto por dados de entrada, pesos, um viés (ou limite) e uma saída. A fórmula é algo assim:

∑wixi + viés = w1x1 + w2x2 + w3x3 + viés

saída = f(x) = 1 se ∑w1x1 + b>= 0; 0 se ∑w1x1 + b < 0

Uma vez determinada a camada de entrada, os pesos são atribuídos. Esses pesos ajudam a determinar a importância de qualquer variável, sendo que os maiores contribuem mais significativamente para a saída em comparação com outras entradas. Todas as entradas são então multiplicadas por seus respectivos pesos e somadas. Em seguida, a saída é passada por uma função de ativação, que determina a saída. Se essa saída exceder um determinado limite, o nó “dispara” (ou é ativado), passando dados para a próxima camada na rede. Isso resulta na saída de um nó se tornando a entrada do próximo nó. Esse processo de passagem de dados de uma camada para a próxima define esta rede neural como uma rede de alimentação direta.

Vamos detalhar como seria um único nó usando valores binários. Podemos aplicar este conceito a um exemplo mais tangível, como se você deve ou não surfar (Sim: 1, Não: 0). A decisão de ir ou não ir é nosso resultado previsto, ou y-hat. Vamos supor que há três fatores influenciando sua tomada de decisão:

  • As ondas estão boas? (Sim: 1, Não: 0)
  • A fila está vazia? (Sim: 1, Não: 0)
  • Houve um ataque de tubarão recentemente? (Sim: 0, Não: 1)

Então, vamos supor o seguinte, fornecendo-nos as seguintes entradas:

X1 = 1, já que as ondas estão ótimas

X2 = 0, pois a praia está cheia

X3 = 1, pois não houve ataque de tubarão recentemente

Agora, precisamos atribuir alguns pesos para determinar a importância. Pesos maiores indicam que variáveis particulares são de maior importância para a decisão ou resultado.

W1 = 5, pois grandes ondas são raras

W2 = 2, pois você está acostumado com a multidão

W3 = 4, pois você tem medo de tubarões

Finalmente, também assumiremos um valor limite de 3, que se traduziria em um valor de viés de –3. Com todas as várias entradas, podemos começar a inserir valores na fórmula para obter a saída desejada.

Y-hat = (1*5) + (0*2) + (1*4) – 3 = 6

Se usarmos a função de ativação do início desta seção, podemos determinar que a saída deste nó seria 1, já que 6 é maior que 0. Neste caso, você iria surfar; mas se ajustarmos os pesos ou o limite, podemos obter diferentes resultados do modelo. Quando observamos uma decisão, como no exemplo acima, podemos ver como uma rede neural pode tomar decisões cada vez mais complexas dependendo da saída de decisões ou camadas anteriores.

No exemplo acima, usamos perceptrons para ilustrar algumas das matemáticas envolvidas, mas redes neurais utilizam neurônios sigmoidais, que se distinguem por terem valores entre 0 e 1. Como as redes neurais se comportam de forma semelhante às árvores de decisão, transferindo dados de um nó para outro, ter valores x entre 0 e 1 reduz o impacto de qualquer mudança de uma variável individual na saída de qualquer nó, e, subsequentemente, na saída da rede neural.

À medida que começamos a pensar em casos de uso mais práticos para redes neurais, como reconhecimento de imagem ou classificação, utilizaremos aprendizado supervisionado, ou conjuntos de dados rotulados, para treinar o algoritmo. Conforme treinamos o modelo, desejamos avaliar sua precisão usando uma função de custo (ou perda). Isso também é comumente referido como erro quadrático médio (MSE). Na equação abaixo,

i representa o índice da amostra,

y-hat é o resultado previsto,

y é o valor real, e

m é o número de amostras.

𝐹𝑢𝑛𝑐̧𝑎̃𝑜 𝑑𝑒 𝐶𝑢𝑠𝑡𝑂= 𝑀𝑆𝐸=1/2𝑚 ∑129_(𝑖=1)^𝑚▒(𝑦 ̂^((𝑖) )−𝑦^((𝑖) ) )^2

Em última análise, o objetivo é minimizar nossa função de custo para garantir a correção do ajuste para qualquer observação. À medida que o modelo ajusta seus pesos e viés, ele usa a função de custo e o aprendizado por reforço para alcançar o ponto de convergência, ou o mínimo local. O processo pelo qual o algoritmo ajusta seus pesos é através da descida do gradiente, permitindo que o modelo determine a direção a seguir para reduzir os erros (ou minimizar a função de custo). Com cada exemplo de treinamento, os parâmetros do modelo ajustam-se para gradualmente convergir no mínimo.