Rede Neural Artificial - Conceitos Básicos
Redes neurais são dispositivos de computação paralela, que são basicamente uma tentativa de fazer um modelo de computador do cérebro. O objetivo principal é desenvolver um sistema que execute várias tarefas computacionais mais rapidamente que os sistemas tradicionais. Essas tarefas incluem reconhecimento e classificação de padrões, aproximação, otimização e armazenamento em cluster de dados.
O que é Rede Neural Artificial?
A Rede Neural Artificial (RNA) é um sistema de computação eficiente cujo tema central é emprestado da analogia das redes neurais biológicas. As RNAs também são chamadas de "sistemas neurais artificiais" ou "sistemas de processamento paralelo distribuído" ou "sistemas conexionistas". A RNA adquire uma grande coleção de unidades que são interconectadas em algum padrão para permitir a comunicação entre as unidades. Essas unidades, também conhecidas como nós ou neurônios, são processadores simples que operam em paralelo.
Cada neurônio está conectado a outro neurônio por meio de um link de conexão. Cada link de conexão está associado a um peso que contém informações sobre o sinal de entrada. Esta é a informação mais útil para os neurônios resolverem um problema específico, porque o peso geralmente excita ou inibe o sinal que está sendo comunicado. Cada neurônio tem um estado interno, que é chamado de sinal de ativação. Os sinais de saída, que são produzidos após combinar os sinais de entrada e a regra de ativação, podem ser enviados para outras unidades.
Uma breve história da ANN
A história da RNA pode ser dividida nas seguintes três eras -
ANN durante os anos 1940 a 1960
Alguns desenvolvimentos importantes desta era são os seguintes -
1943 - Supõe-se que o conceito de rede neural começou com o trabalho do fisiologista Warren McCulloch e do matemático Walter Pitts, quando em 1943 eles modelaram uma rede neural simples usando circuitos elétricos para descrever como os neurônios do cérebro poderiam funcionar .
1949- O livro de Donald Hebb, The Organization of Behavior , apresenta o fato de que a ativação repetida de um neurônio por outro aumenta sua força cada vez que são usados.
1956 - Uma rede de memória associativa foi introduzida por Taylor.
1958 - Um método de aprendizagem para o modelo de neurônio McCulloch e Pitts chamado Perceptron foi inventado por Rosenblatt.
1960 - Bernard Widrow e Marcian Hoff desenvolveram modelos chamados "ADALINE" e “MADALINE”.
ANN durante os anos 1960 a 1980
Alguns desenvolvimentos importantes desta era são os seguintes -
1961 - Rosenblatt fez uma tentativa sem sucesso, mas propôs o esquema de “retropropagação” para redes multicamadas.
1964 - Taylor construiu um circuito vencedor leva tudo com inibições entre as unidades de saída.
1969 - O perceptron multicamadas (MLP) foi inventado por Minsky e Papert.
1971 - Kohonen desenvolveu memórias associativas.
1976 - Stephen Grossberg e Gail Carpenter desenvolveram a teoria da ressonância adaptativa.
ANN de 1980 até o presente
Alguns desenvolvimentos importantes desta era são os seguintes -
1982 - O principal desenvolvimento foi a abordagem de energia de Hopfield.
1985 - A máquina Boltzmann foi desenvolvida por Ackley, Hinton e Sejnowski.
1986 - Rumelhart, Hinton e Williams introduziram a Regra Delta Generalizada.
1988 - Kosko desenvolveu a Memória Associativa Binária (BAM) e também deu o conceito de Lógica Fuzzy em RNA.
A revisão histórica mostra que um progresso significativo foi feito neste campo. Chips baseados em redes neurais estão surgindo e aplicativos para problemas complexos estão sendo desenvolvidos. Certamente, hoje é um período de transição para a tecnologia de redes neurais.
Neurônio biológico
Uma célula nervosa (neurônio) é uma célula biológica especial que processa informações. De acordo com uma estimativa, existe um grande número de neurônios, aproximadamente 10 11 com inúmeras interconexões, aproximadamente 10 15 .
Diagrama esquemático
Trabalho de um neurônio biológico
Conforme mostrado no diagrama acima, um neurônio típico consiste nas seguintes quatro partes com a ajuda das quais podemos explicar seu funcionamento -
Dendrites- São ramos em forma de árvore, responsáveis por receber as informações de outros neurônios aos quais está conectado. Em outro sentido, podemos dizer que são como ouvidos de neurônios.
Soma - É o corpo celular do neurônio e é responsável pelo processamento das informações, que eles recebem dos dendritos.
Axon - É como um cabo pelo qual os neurônios enviam as informações.
Synapses - É a conexão entre o axônio e outros dendritos neuronais.
ANN versus BNN
Antes de dar uma olhada nas diferenças entre Rede Neural Artificial (RNA) e Rede Neural Biológica (BNN), vamos dar uma olhada nas semelhanças baseadas na terminologia entre as duas.
Rede Neural Biológica (BNN) | Rede Neural Artificial (ANN) |
---|---|
Soma | Nó |
Dendrites | Entrada |
Sinapse | Pesos ou interconexões |
Axônio | Resultado |
A tabela a seguir mostra a comparação entre ANN e BNN com base em alguns critérios mencionados.
Critério | BNN | ANN |
---|---|---|
Processing | Massivamente paralelo, lento, mas superior a ANN | Massivamente paralelo, rápido, mas inferior do que BNN |
Size | 10 11 neurônios e 10 15 interconexões | 10 2 a 10 4 nós (depende principalmente do tipo de aplicativo e designer de rede) |
Learning | Eles podem tolerar ambigüidade | Dados muito precisos, estruturados e formatados são necessários para tolerar a ambigüidade |
Fault tolerance | O desempenho é degradado, mesmo com danos parciais | É capaz de desempenho robusto, portanto, tem o potencial de ser tolerante a falhas |
Storage capacity | Armazena as informações na sinapse | Armazena as informações em locais de memória contínua |
Modelo de Rede Neural Artificial
O diagrama a seguir representa o modelo geral de RNA seguido por seu processamento.
Para o modelo geral de rede neural artificial acima, a entrada líquida pode ser calculada da seguinte forma -
$$ y_ {in} \: = \: x_ {1} .w_ {1} \: + \: x_ {2} .w_ {2} \: + \: x_ {3} .w_ {3} \: \ dotso \: x_ {m} .w_ {m} $$
ou seja, entrada líquida $ y_ {in} \: = \: \ sum_i ^ m \: x_ {i} .w_ {i} $
A saída pode ser calculada aplicando a função de ativação sobre a entrada líquida.
$$ Y \: = \: F (y_ {in}) $$
Saída = função (entrada líquida calculada)