Redes neurais

menu icon

Redes neurais

As redes neurais refletem o comportamento do cérebro humano, permitindo que programas de computador reconheçam padrões e resolvam problemas comuns nos campos de IA, machine learning e deep learning.

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 aprendizado de máquina e estão no núcleo 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 para a próxima camada da rede.

Diagrama visual de uma camada de entrada, camadas ocultas e uma camada de saída de uma rede neural feedforward

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 afinados para precisão, eles são ferramentas potentes na ciência da computação e na inteligência artificial, permitindo-nos classificar e agrupar dados a uma alta velocidade. As tarefas em 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 entrada, pesos, um viés (ou limite) e uma saída. A fórmula seria algo semelhante a este:

Fórmula matemática usada para determinar a somatória

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

Fórmula matemática usada para determinar a saída

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

Uma vez que uma camada de entrada é determinada, os pesos são atribuídos. 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-hat. 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, fornecendo-nos as 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 alguns pesos para determinar a importância. Pesos maiores significam que variáveis específicas são de maior importância para a decisão ou o resultado.

  • W1 = 5, já que grandes swells 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

Por fim, 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 a saída desejada.

Y-hat = (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 os pesos 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 algumas das matemáticas 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, iremos potencializar 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-hat é o resultado previsto,
  • y é o valor real e
  • m é o número de amostras.
Fórmula matemática usada para determinar a função de custo

Função de custo = 𝑀𝑆𝐸 =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.

Gráfico de linhas ilustrando o ponto de convergência

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 apropriadamente.

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. Ele tem um único neurônio e é a forma mais simples de uma rede neural:

Diagrama simples de um perceptron usando linhas e um círculo azul

As redes neurais feedforward, ou perceptrons multicamadas (MLPs), são o nosso foco principal neste artigo. Elas são compostas por uma camada de entrada, uma camada ou camadas ocultas e uma camada de saída. 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 utilizadas 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 versus deep learning

Deep learning e redes neurais tendem a ser usadas 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 "AI vs. Machine Learning vs. Deep Learning vs. Neural Networks: What’s the Difference?"

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 "A logical calculus of the ideas immanent in nervous activity (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, "The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain" (PDF, 1,6 MB) (link externo à IBM).Ele leva o trabalho de McCulloch e Pitt um passo adiante, introduzindo pesos na equação. Utilizando um IBM 704, Rosenblatt conseguiu obter um computador para aprender a distinguir 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 alavancou com sucesso uma rede neural para reconhecer os dígitos de CEP escritos à mão fornecidos pelos EUA. Serviço postal.

Redes neurais e IBM Cloud

Há décadas, a IBM tem sido pioneira no desenvolvimento de tecnologias de IA e de redes neurais, com destaque para o desenvolvimento e a evolução do IBM Watson. Hoje, o Watson é uma solução confiável para empresas que buscam aplicar técnicas avançadas de processamento de linguagem natural e deep learning aos seus sistemas, usando uma abordagem de camadas comprovada para adoção e implementação de IA.

O Watson usa a estrutura da Apache Unstructured Information Management Architecture (UIMA) e o software DeepQA da IBM para disponibilizar poderosos recursos de deep learning para aplicativos. Utilizando ferramentas como o IBM Watson Studio, sua empresa pode trazer facilmente projetos de IA de software livre para a produção enquanto implementa e executa modelos em qualquer cloud.

Para obter informações adicionais sobre como começar a usar a tecnologia deep learning, conheça o IBM Watson Studio e o Serviço de deep learning.

Inscreva-se para obter um IBMid e crie sua conta IBM Cloud.