Pesquisa de site

O que são redes neurais?


As redes neurais nos permitem construir modelos de aprendizado de máquina (ML) que imitam o comportamento do cérebro humano. Essas redes tomam decisões simulando como os neurônios biológicos trabalham juntos para processar informações, avaliar opções e chegar a conclusões.

Essa capacidade de tomada de decisão permite que as redes neurais se adaptem a entradas novas e em constante mudança, uma característica crítica para modelos de IA de ponta, como ChatGPT e DALL-E.

Este artigo mostra tudo o que você precisa saber sobre redes neurais. Aprenda como essas redes funcionam e veja se sua organização se beneficiaria com a configuração e o treinamento de uma rede neural interna.

Confira nossa introdução ao aprendizado profundo se você for novo no conceito de treinamento de redes neurais.

O que é uma rede neural?

Uma rede neural é um modelo computacional no qual nós interconectados (chamados neurônios ou unidades) colaboram para analisar dados e fazer previsões. Outro nome comum para uma rede neural é rede neural artificial (RNA).

Cada RNA consiste em nós organizados em três tipos de camadas:

  • Camada de entrada. Os dados brutos entram em uma rede neural através da camada de entrada. Os nós desta camada analisam os dados de entrada e os passam para a próxima camada.
  • Camadas ocultas. Essas camadas analisam a saída da camada anterior, processam-na e passam-na para a próxima camada. A maioria das redes neurais possui mais de uma camada oculta.
  • Camada de saída. Esta camada opera no final de uma RNA. As camadas de saída recebem entradas da última camada oculta e produzem a previsão final da rede.

Independentemente da camada em que operam, cada nó de uma RNA processa as entradas recebidas dos nós da camada anterior. Cada nó possui uma fórmula que aplica aos dados recebidos, após a qual o nó verifica a saída da fórmula em relação a um limite que muda dinamicamente. O nó então faz uma de duas coisas:

  • Se a saída exceder o limite atual, o nó passará os dados para a próxima camada.
  • Se a saída cair abaixo do limite atual, o nó não passa os dados para a próxima camada.

Este processo acrescenta não-linearidade ao processo de tomada de decisão da rede. A não linearidade torna as RNAs altamente eficazes em visão computacional, reconhecimento de imagem e fala, processamento de linguagem natural (PNL) e robótica avançada.

Tipos de redes neurais

Existem duas grandes categorias de RNAs com base no número de camadas ocultas: redes neurais superficiais e redes neurais profundas. As RNAs superficiais possuem apenas uma camada oculta, enquanto as redes neurais profundas (DNNs ou redes profundas) possuem duas ou mais camadas ocultas.

Existem também diferentes tipos de arquiteturas de redes neurais. Aqui estão os mais comuns:

  • Redes neurais feedforward (FNNs). As FNNs direcionam os dados apenas em uma direção, dos nós de entrada, passando pelas camadas ocultas, até os nós de saída. Não há ciclos ou loops. FNNs são ideais para tarefas de classificação binária e regressão que não envolvem dados sequenciais e possuem relações de entrada-saída relativamente simples.
  • Redes neurais recorrentes (RNNs). As RNNs permitem que os dados retrocedam através das camadas para obter melhores resultados. RNNs são adequados para tarefas de processamento de dados sequenciais, como previsão de séries temporais, PNL ou reconhecimento de fala.
  • Redes de função de base radial (RBFNs). A camada oculta em um RBFN aplica uma função de base radial à entrada. Essas funções calculam sua saída com base na distância entre os dados de entrada e os centros específicos associados a cada função. RBFNs são frequentemente usados para tarefas de aproximação, classificação e agrupamento de funções.
  • Redes neurais de estado líquido (máquinas de estado líquido). Os nós em uma máquina de estado líquido são conectados aleatoriamente uns aos outros. Essas redes são excelentes no processamento em tempo real de dados espaço-temporais, como dados sensoriais de robôs.
  • Redes neurais residuais. Esse tipo de arquitetura de rede neural permite que os dados pulem camadas por meio de um processo chamado mapeamento de identidade. O design residual é benéfico para redes muito profundas com muitas camadas ocultas.
  • Redes neurais modulares. Esta arquitetura combina duas ou mais redes neurais que não interferem nas atividades uma da outra. As RNAs modulares são adequadas para tarefas onde o problema pode ser decomposto em subproblemas menores e mais gerenciáveis.

Redes profundas com mais de 100 camadas ocultas apresentam benefícios significativos, mas essas RNAs não são fáceis de configurar e treinar. Nosso guia para redes neurais profundas fornece uma visão aprofundada de como funcionam as DNNs.

Como funcionam as redes neurais?

Os nós de uma rede neural estão totalmente conectados, portanto, cada nó da camada N está conectado a todos os nós da camada N-1 e da camada N+1. Os nós dentro da mesma camada não estão conectados entre si na maioria dos projetos.

Cada nó de uma rede neural opera em sua própria esfera de conhecimento e conhece apenas os seguintes fatores:

  • Dados de entrada recebidos de nós vizinhos.
  • Pesos, que são valores numéricos que determinam quanta influência os insumos têm sobre os resultados.
  • Um limite, que é um parâmetro adicionado à soma ponderada das entradas.

Vejamos um exemplo simples de nó que decide se você deve fazer caminhadas (≥1 para Sim, ≤0 para Não). Nosso nó é responsável por três entradas:

  • O tempo está bom? (Sim: 1, Não: 0)
  • As trilhas estão lotadas? (Sim: 0, Não: 1)
  • Existe o risco de encontrar animais selvagens? (Baixo: 1, Alto: 0)

Com base nas condições atuais, os nós da camada anterior fornecem as seguintes entradas:

  • X1=1 (dia ensolarado)
  • X2=0 (trilhas lotadas)
  • X3=1 (baixa atividade da vida selvagem)

Os pesos determinam a significância de cada X. Pesos maiores significam uma variável de maior importância para o resultado. Aqui estão os pesos para o nosso exemplo:

  • W1=5 (você adora caminhar ao sol)
  • W2=3 (você prefere a solidão nas trilhas)
  • W3=4 (você está preocupado em encontrar animais)

A última coisa que precisamos é de um limite. Para nosso exemplo, assumimos um valor limite de 4. Nosso nó então usa uma fórmula simples ((X1*W1) + (X2*W2) + (X3*W3) - valor limite) para calcular sua saída:

  • (1*5) + (0*3) + (1*4) - 4=5

Nesse cenário, a saída é 5, que é maior que 1, então a saída do nosso nó indica uma forte inclinação para fazer uma caminhada.

Os administradores de rede não definem arbitrariamente os valores de pesos e limites. Em vez disso, uma rede neural aprende com os dados durante o treinamento e o uso. Ele ajusta constantemente pesos e limites para produzir melhores resultados.

Benefícios das Redes Neurais

Os principais benefícios do uso de redes neurais decorrem de sua capacidade de aprender padrões complexos, adaptar-se a novos dados e generalizar bem em diferentes tarefas. Aqui estão os principais benefícios das redes neurais:

  • Flexibilidade. As redes neurais podem executar uma ampla variedade de tarefas, incluindo classificação, regressão, agrupamento, reconhecimento de padrões, previsão de séries temporais, detecção de anomalias e muito mais.
  • Adaptabilidade. As redes neurais aprendem com os dados e adaptam sua estrutura interna para capturar padrões e relacionamentos complexos nas entradas. Com o tempo, eles se tornam melhores em qualquer tarefa que você lhes atribua.
  • Não linearidade. As redes neurais podem modelar relacionamentos não lineares em dados, o que lhes permite lidar com dados complexos e altamente dimensionais de maneira eficaz.
  • Generalização. As redes neurais generalizam extremamente bem para dados invisíveis. As técnicas de regularização, abandono e aumento de dados ajudam as redes neurais a lidar com conjuntos de dados nunca antes vistos.
  • Automação. Depois de adequadamente treinadas, as redes neurais automatizam de forma confiável os processos de tomada de decisão, eliminando a necessidade de intervenção humana durante tarefas repetitivas, demoradas e de baixa latência.
  • Processamento paralelo. Uma rede neural executa cálculos em paralelo em vários nós e camadas. Dessa forma, a rede garante processamento eficiente de grandes volumes de dados e tempos de treinamento mais rápidos.
  • Aprendizado de recursos. As redes neurais extraem recursos relevantes de dados brutos, reduzindo a necessidade de engenharia manual de recursos.
  • Resistência ao ruído. Quando adequadamente treinadas, as redes neurais tornam-se altamente resistentes a dados ruidosos e à variabilidade de entrada, tornando-as adequadas para casos de uso com dados imperfeitos ou incompletos.
  • Alta tolerância a falhas. A corrupção ou falha de um ou mais nós em uma rede não impede a geração de resultados. Em vez disso, a RNA redireciona automaticamente os dados para nós íntegros e garante a disponibilidade.
  • Escalabilidade. As redes neurais podem ser facilmente dimensionadas para lidar com conjuntos de dados maiores e problemas mais complexos. Uma rede é dimensionada verticalmente adicionando mais camadas ou nós, mas você também pode dimensionar horizontalmente se quiser experimentar RNAs modulares.

Nossa comparação de escalabilidade horizontal e vertical descreve as diferenças entre as duas estratégias e ajuda a escolher um modelo de escalabilidade ideal para seu caso de uso.

Desvantagens das Redes Neurais

Embora as redes neurais ofereçam inúmeras vantagens, elas apresentam algumas desvantagens obrigatórias. Aqui estão os desafios mais notáveis que você provavelmente enfrentará ao treinar e usar uma rede neural:

  • Dependência de dados. O desempenho de uma rede neural depende muito da qualidade e quantidade dos dados de treinamento. A obtenção de dados adequados é muitas vezes dispendiosa e demorada, especialmente para domínios com dados escassos.
  • Overfitting durante o treinamento. As redes neurais são propensas ao overfitting. Esse problema ocorre quando o modelo aprende a memorizar os dados de treinamento em vez de generalizar para dados invisíveis.
  • Ajuste de hiperparâmetros. Os administradores devem definir vários hiperparâmetros durante o treinamento da RNA, incluindo taxa de aprendizado, tamanho do lote, força de regularização, taxas de abandono e funções de ativação. Encontrar o conjunto correto de parâmetros é demorado e muitas vezes requer testes extensivos.
  • Interpretabilidade. Compreender como uma rede neural chega a uma previsão ou decisão específica costuma ser difícil. Esta falta de interpretabilidade é uma desvantagem significativa em casos de utilização que exigem transparência e responsabilização.
  • Depuração. Redes neurais, especialmente redes profundas com muitas camadas, são altamente complexas e difíceis de entender e interpretar. As equipes muitas vezes têm dificuldade para diagnosticar e depurar problemas.
  • Ataques adversários. As redes neurais são suscetíveis a ataques adversários. Esses ataques ocorrem quando um ator mal-intencionado faz pequenas alterações nos dados de entrada para fazer com que o modelo faça previsões incorretas.
  • Requisitos de recursos. O treinamento de uma rede neural é computacionalmente intensivo e requer recursos substanciais. A maioria dos adotantes deve investir em aceleradores GPU ou TPU caros. As redes neurais também exigem recursos significativos de memória e armazenamento para lidar com grandes conjuntos de dados.
>

Resolva o problema das demandas computacionais da rede neural com servidores de computação de alto desempenho (HPC). O alto paralelismo e os aceleradores de hardware especializados tornam os servidores HPC uma infraestrutura ideal para treinar uma rede neural.

Para que servem as redes neurais?

Os principais casos de uso de uma rede neural envolvem processos que operam de acordo com padrões rígidos e lidam com grandes quantidades de dados. Se o conjunto de dados for muito grande para ser compreendido por um ser humano em um período de tempo razoável, o processo é provavelmente um excelente candidato para adoção de RNA.

Aqui estão alguns casos de uso comuns para uma rede neural:

  • Classificação de imagens. Identificar objetos em imagens é um caso de uso popular para uma rede neural. Os exemplos incluem a classificação de imagens para detectar anomalias e identificar ameaças físicas em imagens de câmeras ao vivo.
  • Chatbots. Os modelos de processamento de linguagem natural permitem que os chatbots participem de conversas realistas e forneçam assistência em vários domínios.
  • Veículos autônomos. Os carros autônomos usam redes neurais para detectar pedestres, reconhecer sinais e sinais de trânsito e navegar em ambientes rodoviários complexos.
  • Reconhecimento de fala. Os sistemas de reconhecimento de fala usam RNAs para converter a linguagem falada em texto. Esse recurso permite que os usuários forneçam comandos de voz para smartphones, assistentes virtuais e controles de viva-voz.
  • Sistemas de recomendação. Muitas organizações usam uma rede neural para potencializar mecanismos de recomendação que analisam as preferências do usuário para sugerir conteúdo ou serviços personalizados.
  • Detecção de fraudes. Muitos sistemas de detecção de fraudes usam RNAs para identificar padrões suspeitos ou anomalias em transações financeiras. Esses sistemas detectam com segurança sinais de fraude de cartão de crédito, roubo de identidade e lavagem de dinheiro.
  • Reconhecimento de gestos. As redes neurais são excelentes para reconhecer e interpretar gestos manuais capturados por câmeras ou sensores. Esse recurso permite que os usuários interajam com dispositivos e interfaces por meio de movimentos manuais.
  • Diagnóstico médico. Os prestadores de cuidados de saúde utilizam frequentemente redes neurais para analisar imagens médicas (ressonância magnética, raios X, lâminas histopatológicas, etc.) e auxiliar no diagnóstico de doenças e no planeamento do tratamento.
  • Manutenção preditiva. As redes neurais podem analisar dados de sensores de máquinas e equipamentos industriais para prever possíveis falhas ou necessidades de manutenção. Uma RNA permite estratégias de manutenção proativas que minimizam o tempo de inatividade e otimizam a eficiência operacional.

Saiba mais sobre o papel da inteligência artificial nos negócios.

Como treinar uma rede neural

A primeira etapa no treinamento de uma rede neural é coletar dados de treinamento relevantes. Por exemplo, para criar uma RNA que identifique os rostos dos atores, o conjunto de dados inicial incluiria dezenas de milhares de imagens de atores, não-atores, máscaras e estátuas.

Os conjuntos de dados geralmente requerem algum pré-processamento, que envolve tarefas como:

  • Dimensionamento de dados numéricos para um intervalo padrão, normalmente entre 0 e 1 ou -1 e 1.
  • Redimensionando imagens.
  • Dividir o texto em unidades menores e mais gerenciáveis (os chamados tokens).

A seguir, os adotantes dividem os dados preparados em três conjuntos que desempenham um papel diferente durante o treinamento:

  • Conjuntos de treinamento para treinar o modelo.
  • Conjuntos de validação para monitorar o desempenho da RNA durante o treinamento.
  • Conjuntos de testes para avaliar o desempenho pós-treinamento do modelo.

Assim que todos os três conjuntos de dados estiverem prontos, o processo de treinamento pode começar. O conjunto de dados de treinamento entra no modelo iterativamente e a rede atualiza continuamente seus pesos e limites para obter melhores resultados. Os administradores devem monitorar o desempenho do modelo no conjunto de validação durante o treinamento para evitar overfitting.

A maioria dos adotantes experimenta diferentes parâmetros durante o treinamento. Ajustar a taxa de aprendizado, o tamanho do lote e a arquitetura do nó são as principais maneiras de melhorar o desempenho no conjunto de validação. Os administradores também costumam testar diferentes:

  • Métodos de regularização (por exemplo, regularização L1 e L2, abandono).
  • Algoritmos de otimização (por exemplo, Adam, RMSprop, SGD).
  • Técnicas para lidar com dados desequilibrados (por exemplo, sobreamostragem, subamostragem, SMOTE).

Após a conclusão do treinamento, os administradores avaliam o desempenho do modelo no conjunto de testes para avaliar sua capacidade de generalização e garantir que ele tenha um bom desempenho em dados invisíveis. Se o modelo treinado passar nesses testes, a RNA estará pronta para implantação no ambiente de produção, após o que a rede continuará a se treinar à medida que interage com entradas da vida real e novos dados.

Está pensando em configurar uma rede neural interna? Use uma dessas estruturas de aprendizado profundo para acelerar o treinamento de sua nova RNA.

Um investimento básico (para o caso de uso correto)

Apesar de exigirem investimentos consideráveis em dados de treinamento e hardware, as RNAs estão revolucionando a forma como as empresas lidam com tarefas demoradas e duplicadas. Se o seu caso de uso envolve padrões repetitivos e grandes quantidades de dados, investir em uma rede neural é uma escolha óbvia.

Artigos relacionados