O que são Redes Neurais?
As redes neurais tentam simular o cérebro humano, combinando ciência da computação e estatística para resolver problemas comuns da área de IA
Fundo azul e preto
O que são redes neurais?

As redes neurais, também conhecidas como redes neurais artificiais (ANNs) ou redes neurais simuladas (SNNs), são um subconjunto de machine learning  e estão no cerne dos algoritmos de deep learning.  Seu nome e estrutura são inspirados no cérebro humano, imitando a maneira como os neurônios biológicos enviam sinais uns para os outros.

As redes neurais artificiais (ANNs) são compostas por camadas de um nó, contendo uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída. Cada nó, ou neurônio artificial, conecta-se a outro e tem um peso e um limite associados. Se a saída de qualquer nó individual estiver acima do valor do limite especificado, esse nó será ativado, enviando dados para a próxima camada da rede. Caso contrário, nenhum dado será transmitido junto à próxima camada da rede.

As redes neurais contam com dados de treinamento para aprender e melhorar sua precisão ao longo do tempo. No entanto, uma vez que esses algoritmos de aprendizagem são ajustados para aumentar a precisão, eles se tornam ferramentas poderosas de ciência da computação e  inteligência artificial, permitindo-nos classificar e agrupar dados a uma alta velocidade. As tarefas de reconhecimento de fala ou reconhecimento de imagem podem levar minutos em vez horas, quando comparadas com a identificação manual feita por especialistas humanos. Uma das redes neurais mais conhecidas é o algoritmo de procura do Google.

Como funcionam as redes neurais?

Pense em cada nó individual como seu próprio modelo de regressão linear, composto por dados de input, ponderações, viés (ou limite) e um output. A fórmula seria algo como o exemplo abaixo:

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

output = f(x) = 1 if ∑w1x1 + b> = 0; 0 if ∑w1x1 + b < 0

Uma vez que uma camada de input é definida, as ponderações serão atribuídas. Esses pesos ajudam a determinar a importância de qualquer variável fornecida, com os maiores contribuindo de forma mais significativa com a saída em comparação com outras entradas. Todas as entradas são, então, multiplicadas por seus respectivos pesos e, em seguida, somadas. Depois, a saída é transmitida por meio de uma função de ativação, que determina a saída. Se essa saída exceder um determinado nível, ela irá "disparar" (ou ativar) o nó, transmitindo dados para a camada seguinte na rede. Isto resulta na saída de um nó tornando-se a entrada do próximo nó. Este processo de transmissão de dados de uma camada para a camada seguinte define esta rede neural como uma rede feedforward.

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

  1. As ondas são boas? (Sim: 1, Não: 0)
  2. O line-up está vazio? (Sim: 1, Não: 0)
  3. Houve um ataque recente de tubarão? (Sim: 0, Não: 1)

Então, vamos supor o seguinte, baseado nas seguintes entradas:

  • X1 = 1, já que as ondas estão bombando
  • X2 = 0, já que não há multidão
  • X3 = 1, já que não houve um ataque recente de tubarão

Agora, precisamos atribuir algumas ponderações para determinar a importância. Pesos maiores significam que variáveis específicas são mais importantes para a decisão ou o resultado.

  • W1 = 5, já que grandes ondas não aparecem frequentemente
  • W2 = 2, já que você está acostumado com as multidões
  • W3 = 4, já que você tem um medo de tubarões

Finalmente, assumiremos também um valor limite de 3, o que converteria para um valor de viés de -3. Com todas as diversas entradas, podemos começar a encaixar os valores na fórmula para obter o output desejado.

Y-chapéu = (1*5) + (0*2) + (1*4) - 3 = 6

Se utilizarmos a função de ativação no início desta seção, poderemos determinar que a saída deste nó é 1, pois 6 é maior que 0. Neste exemplo, você iria surfar, mas se ajustarmos a ponderação ou o nível, poderemos atingir resultados diferentes do modelo. Quando observamos uma decisão, como no exemplo acima, podemos ver como uma rede neural poderia tomar decisões cada vez mais complexas dependendo da saída de decisões ou camadas anteriores.

No exemplo acima, utilizamos perceptrons para ilustrar alguns cálculos matemáticos em jogo aqui, mas as redes neurais potencializam os neurônios sigmóides, que se distinguem por terem valores entre 0 e 1. Uma vez que as redes neurais se comportam de forma semelhante às árvores de decisão, colocando dados em cascata de um nó para outro, ter x valores entre 0 e 1 reduzirá o impacto de qualquer mudança específica em uma única variável na saída de qualquer nó determinado e, subsequentemente, na saída da rede neural.

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

  • i representa o índice da amostra,
  • y-chapéu é o resultado previsto,
  • y é o valor real e
  • m é o número de amostras.

= =1/2 ∑129_(=1)^▒( ̂^(() )−^(() ) )^2

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

Veja este artigo do IBM Developer para obter uma explicação mais detalhada sobre os conceitos quantitativos envolvidos nas redes neurais.

As redes neurais mais profundas são feedforward, o que significa que elas fluem apenas em uma direção, da entrada para a saída. No entanto, também é possível treinar seu modelo por meio da propagação retroativa, ou seja, mover-se na direção oposta, da saída para a entrada. A propagação retroativa permite calcular e atribuir o erro associado a cada neurônio, permitindo-nos ajustar e adequar os parâmetros dos modelos adequadamente.

Tipos de redes neurais

As redes neurais podem ser classificadas em diferentes tipos, as quais são usadas para diferentes propósitos. Embora esta não seja uma lista abrangente de tipos, abaixo está a representação dos tipos mais comuns de redes neurais que você encontrará para os seus casos de uso comuns:

O perceptron é a rede neural mais antiga, criada por Frank Rosenblatt em 1958.

As redes neurais feedforward, ou perceptrons multicamadas (MLPs), são o nosso foco principal neste artigo. Elas são compostas por uma camada de input, uma camada ou mais camadas ocultas e uma camada de output. Embora essas redes neurais também sejam comumente chamadas de MLPs, é importante ressaltar que elas são na verdade compostas por neurônios sigmóides, não perceptrons, já que a maioria dos problemas do mundo real são não lineares. Os dados geralmente são alimentados nesses modelos para treiná-los e eles são a base para a visão computacional, o processamento de linguagem natural e outras redes neurais.

As redes neurais convolucionais (CNNs) são semelhantes às redes feedforward, mas geralmente são usadas para reconhecimento de imagem, reconhecimento de padrões e/ou visão computacional. Estas redes aproveitam os princípios de álgebra linear, particularmente a multiplicação de matrizes, para identificar padrões dentro de uma imagem.

As redes neurais recorrentes (RNNs) são identificadas por seus loops de feedback. Esses algoritmos de aprendizado são potencializados principalmente ao usar dados de séries temporais para fazer previsões sobre resultados futuros, como previsões de mercado de ações ou previsão de vendas.

 

Redes neurais vs. deep learning

Deep learning e redes neurais tendem a ser usados de forma intercambiável na conversa, o que pode ser confuso. Como resultado, vale ressaltar que o "deep" no deep learning está apenas se referindo à profundidade das camadas em uma rede neural. Uma rede neural que consiste em mais de três camadas, que incluiriam as entradas e a saída, pode ser considerada um algoritmo de deep learning. Uma rede neural que só tem duas ou três camadas é apenas uma rede neural básica.

Para saber mais sobre as diferenças entre redes neurais e outras formas de inteligência artificial,  como machine learning, veja o post do blog "IA vs. machine learning vs. Deep learning vs. Redes neurais: qual é a diferença?"

História das redes neurais

A história das redes neurais é mais longa do que a maioria das pessoas pensa. Embora a ideia de "uma máquina que pensa" possa ser rastreada até o gregos antigos, vamos nos concentrar nos principais eventos que levaram à evolução do pensamento em torno das redes neurais, que teve altos e baixos na popularidade ao longo dos anos:

1943: Warren S. McCulloch e Walter Pitts publicaram "Um cálculo lógico das ideias imanentes na atividade nervosa (PDF, 1 MB) (link externo à IBM)". Esta pesquisa procurou entender como o cérebro humano poderia produzir padrões complexos por meio de células cerebrais conectadas, ou neurônios. Uma das principais ideias que surgiu desse trabalho foi a comparação de neurônios com um limite binário para a lógica booleana (ou seja, 0/1 ou afirmações verdadeiras/falsas).   

1958: Frank Rosenblatt é reconhecido pelo desenvolvimento do perceptron, documentado em sua pesquisa, "O Perceptron: um modelo probabilístico para armazenamento de informações e organização no cérebro" (PDF, 1,6 MB) (link externo à IBM). Ele leva o trabalho de McCulloch e Pitt um passo adiante, introduzindo pesos na equação. Usando um IBM 704, Rosenblatt conseguiu obter um computador para aprender a diferenciar cartas marcadas à esquerda vs. cartas marcadas à direita.

1974: Embora inúmeros pesquisadores tenham contribuído para a ideia de propagação retroativa, Paul Werbos foi a primeira pessoa nos EUA a notar sua aplicação dentro das redes neurais em sua tese de doutorado (PDF, 8,1 MB) (link externo à IBM).

1989: Yann LeCun publicou um artigo (PDF, 5,7 MB) (link externo à IBM) ilustrando como o uso de restrições na propagação retroativa e sua integração na arquitetura de rede neural podem ser usados para treinar algoritmos. Esta pesquisa usou com sucesso uma rede neural para reconhecer os dígitos de CEP escritos à mão fornecidos pelos EUA.

Soluções relacionadas
IBM Watson Studio

Desenvolva e ajuste a escala da IA confiável em qualquer cloud. Automatize o ciclo de vida de IA para ModelOps.

Conheça o IBM Watson Studio
Soluções IBM Cloud

Híbrida. Aberta. Resiliente. Sua plataforma e parceira para a transformação digital.

Conheça as soluções de cloud
Recursos IA corporativa, 2021: descobrindo oportunidades por meio de dados

Registre-se para obter nosso e-book e saiba mais sobre oportunidades, desafios e as lições aprendidas ao implementar a IA nos negócios.

Dê o próximo passo

Há décadas, a IBM é pioneira no desenvolvimento de tecnologias de IA e redes neurais, destacando-se pelo desenvolvimento e evolução do IBM Watson. O Watson agora é uma solução confiável para empresas que buscam aplicar técnicas avançadas de processamento de linguagem natural e deep learning em seus sistemas, usando uma abordagem em camadas comprovada para adoção e implementação de IA.

Saiba mais sobre deep learning com o IBM Watson® Studio