As redes neurais são a base do aprendizado de máquina moderno e da IA. Eles são o componente mais essencial para compreender o que é IA e como funciona. Neste artigo, você aprenderá o básico das redes neurais e, em seguida, nos aprofundaremos em algumas das variantes mais comuns, como as redes feedforward e recorrentes, que orientam tudo, desde grandes modelos de linguagem como ChatGPT e Bard até a geração de imagens com difusão estável.

O perceptron

Todas as redes neurais compartilham uma característica básica: são grupos de nós inter-relacionados. Mais tecnicamente, são gráficos. Os atributos dos nós e as formas como as arestas são conectadas variam amplamente. A estrutura de nó mais simples é, obviamente, um único nó.

O perceptron é a visão mais antiga de um modelo matemático inspirado nas células cerebrais humanas – embora seja importante notar que a associação entre os dois é muito vaga. O cérebro humano é radicalmente mais sofisticado, sutil e epistemologicamente arriscado do que uma rede neural. No caso do cérebro humano, aquilo a ser compreendido também faz parte do aparelho de compreensão. Esse não é o caso dos neurônios de software.

Geralmente, a ideia de “neurônio” significa um nó que aceita uma ou mais entradas, toma uma decisão sobre qual saída produzir e, em seguida, envia essa saída para o próximo nó (ou para uma saída final).

A Figura 1 mostra um perceptron simples com duas entradas e uma única saída.

Figura 1. Um modelo perceptron de saída única.

Cada entrada é multiplicada por um peso. Isso permite ajustar a influência das entradas, que são então somadas e adicionadas a um viés. A tendência permite ajustar o impacto geral do nó. (Para um diagrama mais matemático, consulte o modelo perceptron de camada única aqui.)

O valor resultante é então dado ao função de ativação. Esta função pode ser muitas coisas, mas em um perceptron é uma função de limite, geralmente a função degrau de Heaviside, que essencialmente gera 1 se o valor for alto o suficiente ou 0 caso contrário. Resumindo, esta função é uma porta. A simples saída liga/desliga é uma característica definidora dos perceptrons.

No nível interno do nó, esse layout básico é bastante universal para redes neurais. O número de entradas e saídas pode variar. A informação alimentada em um neurônio é muitas vezes chamada de características.

Para ajudar a evitar confusão, observe que muitas vezes os perceptrons são usados ​​isoladamente; isto é, como redes de nó único. Às vezes, o termo perceptron denota uma rede neural de nó único. Vários perceptrons podem ser combinados em uma única camada. Se mais camadas forem usadas, é considerada uma rede feedforward, que discutirei mais adiante.

Funções de perda e aprendizado de máquina

Em geral, os perceptrons e as redes neurais precisam de uma forma de ajustar seus pesos e tendências para melhorar o desempenho. O desempenho é medido por um função de perda. Esta função informa à rede como foi o cálculo e essa informação é então usada para ajustar o(s) nó(s).

redes neurais fig2

Figura 2. Aprendizado de máquina de alto nível.

A modificação de pesos e vieses nos neurônios é a essência do aprendizado de máquina de redes neurais.

Observe que estou evitando intencionalmente os detalhes das funções de perda e como os pesos e vieses são ajustados. Em geral, a descida gradiente é o algoritmo comum usado para essa finalidade. O gradiente descendente considera a rede como uma função de cálculo e ajusta os valores para minimizar a função de perda.

A seguir, veremos uma variedade de estilos de redes neurais que aprendem e também vão além do modelo perceptron.

Redes feedforward

As redes feedforward são talvez a rede neural mais arquetípica. Eles oferecem um grau de flexibilidade muito maior do que os perceptrons, mas ainda assim são bastante simples. A maior diferença em uma rede feedforward é que ela utiliza funções de ativação mais sofisticadas, que geralmente incorporam mais de uma camada. A função de ativação em um feedforward não é apenas 0/1 ou liga/desliga: os nós geram uma variável dinâmica.

A forma de descida gradiente usada em feedforwards é mais envolvente; mais tipicamente, é a retropropagação, que vê a rede como uma grande equação de cálculo multivariada e usa diferenciação parcial para ajuste.

redes neurais fig3

Figura 3. Aprendizagem feedforward.

Na Figura 3, temos um protótipo de rede feedforward. Existe uma camada de entrada (às vezes considerada como a camada ou camada 1) e depois duas camadas de neurônios. Pode haver uma grande variedade na forma como os nós e as camadas são conectados. Nesse caso, temos camadas “totalmente conectadas” ou “densas” porque a saída de cada nó é enviada para cada nó da próxima camada. As camadas internas de uma rede neural também são chamadas camadas ocultas.

A chave nas redes feedforward é que elas sempre empurram a entrada/saída para frente, nunca para trás, como ocorre em uma rede neural recorrente, discutida a seguir.

Rede neural recorrente (RNN)

Redes neurais recorrentes, ou RNNs, são um estilo de rede neural que envolve dados retrocedendo entre camadas. Este estilo de rede neural também é conhecido como gráfico cíclico. O movimento para trás abre uma variedade de técnicas de aprendizagem mais sofisticadas e também torna as RNNs mais complexas do que algumas outras redes neurais. Podemos dizer que as RNNs incorporam alguma forma de feedback. A Figura 4 mostra o padrão cíclico de movimentação de dados em uma RNN.

redes neurais fig4

Figura 4. Movimento cíclico de dados em uma rede neural recorrente.

Outro truque empregado pela RNN é estado oculto. Isso significa que os nós podem armazenar alguns dados internamente durante a execução, essencialmente uma forma de memória da máquina. Como as camadas são capazes de executar repetidamente em uma RNN (a saída de uma camada downstream se torna a entrada para a upstream), o estado oculto permite que a rede aprenda sobre os efeitos de longo prazo dos dados.

As variantes RNN estão entre as mais proeminentes em uso atualmente. Há uma grande variedade na forma como eles são implementados. A mais comum é a rede de memória de longo e curto prazo (LSTM). LSTMs usam nós bastante complexos com uma série de portas e estados internos para determinar o que é valioso (“forget gate”) e o que entrar/saída (“portas de entrada e saída”).

RNNs são mais adequados e aplicados a dados sequenciais, como séries temporais, onde a capacidade de lembrar influências passadas em sequências é fundamental.

Rede neural convolucional (CNN)

Redes neurais convolucionais, ou CNNs, são projetadas para processar grades de dados. Em particular, isso significa imagens. Eles são usados ​​como um componente na fase de aprendizagem e perda de modelos generativos de IA, como difusão estável, e para muitas tarefas de classificação de imagens.

As CNNs usam filtros de matriz que atuam como uma janela que se move através dos dados de origem bidimensionais, extraindo informações em sua visualização e relacionando-as. É isso que os torna tão adequados para o tratamento de imagens. À medida que a janela se move pela visualização, ela cria uma imagem detalhada e interconectada dos dados. Dessa forma, uma CNN funciona bem em um plano espacial bidimensional, assim como uma RNN funciona bem em dados sequenciados no tempo em uma série.

A maioria das CNNs opera em um processo de duas fases: a filtragem é seguida por um achatamento, que é alimentado em uma rede feedforward. A fase de filtragem geralmente prossegue usando uma grade de dados, em vez de um gráfico de nó no estilo de rede neural e, portanto, embora use um algoritmo de descida gradiente para aprender com base em uma função de perda, o processo geral é diferente de uma rede neural.

Outra operação importante em uma CNN é agrupar, que pega os dados produzidos pela fase de filtragem e os compacta para maior eficiência. O pooling foi projetado para manter os aspectos relevantes da saída e, ao mesmo tempo, reduzir a dimensionalidade dos dados.

A Figura 5 tem uma visão generalizada de um fluxo típico de CNN.

redes neurais fig5

Figura 5. Um fluxo genérico de rede neural convolucional.

O termo convolução refere-se ao procedimento matemático bem conhecido. Para uma excelente visualização animada do processo de convolução, consulte este guia para redes neurais convolucionais.

Transformadores e atenção

Os transformadores são um tema quente atualmente porque são a arquitetura de LLMs como ChatGPT e Bard. Eles usam uma estrutura codificador-decodificador e permitem uma mecanismo de atenção. (Você pode encontrar o artigo que apresentou as redes de transformadores aqui.)

A atenção é um avanço no processamento da linguagem porque permite que o modelo se concentre em partes das frases e no que é significativo. Os transformadores usam uma estrutura codificadora/decodificadora e codificação posicional de tokens de palavras. Este vídeo é uma boa análise da arquitetura em inglês simples.

Os transformadores são muito poderosos e também muito complexos. Eles usam uma rede feedforward densa como uma rede subneural dentro dos componentes do codificador e do decodificador. Eles também exigem um poder computacional considerável.

Redes adversárias

Uma das ideias mais recentes e interessantes é a rede adversária, que coloca dois modelos um contra o outro. Um modelo tenta produzir previsões e o outro tenta encontrar as falsificações. Em alto nível, isto atua como um sofisticado mecanismo de perda, onde o adversário atua como a função de perda.

Conclusão

As redes neurais são uma forma poderosa de pensar sobre problemas e aplicar algoritmos de aprendizado de máquina baseados na redução de perdas. Existem algumas variantes envolvidas e complexas, e uma enorme quantidade de dinheiro e reflexão está sendo investida neste espaço.

Compreender os fundamentos das redes neurais também nos ajuda a abordar questões mais profundas sobre a natureza da consciência e o que a inteligência artificial (na sua encarnação atual) significa para ela.

Felizmente, as ideias fundamentais das redes neurais não são difíceis de compreender. Compreender as variações das redes neurais e como elas funcionam é um conhecimento útil e cada vez mais essencial para desenvolvedores de software. Esta é uma área de inovação que continuará a impactar a grande indústria e o mundo nas próximas décadas.