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.
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:
Então, vamos supor o seguinte, baseado nas seguintes entradas:
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.
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,
= =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.
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.
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?"
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.
Desenvolva e ajuste a escala da IA confiável em qualquer cloud. Automatize o ciclo de vida de IA para ModelOps.
Híbrida. Aberta. Resiliente. Sua plataforma e parceira para a transformação digital.