Introdução a Redes Neurais Artificiais

Redes Neurais Artificiais
Este post faz parte da série Inteligência Artificial. Leia também os outros posts da série:

Dando continuação ao artigo anterior sobre Inteligência Artificial, falaremos mais sobre as Redes Neurais Artificiais ou RNA's. De uma maneira simplificada uma RNA é um modelo computacional/matemático inspirado no sistema nervoso de seres vivos, e que adquire conhecimento através da experiência. É formada basicamente por um conjunto de unidades de processamento (neurônios artificiais) que são interligados por um enorme número de interconexões (sinapses artificiais) representadas por vetores/matrizes de peso sináptico. O sistema nervoso é formado por um conjunto extremamente complexo de células chamadas de neurônios, responsáveis pelo funcionamento e comportamento do corpo humano e do raciocínio. Os neurônios são formados pelos dendritos (terminais de entrada), pelo corpo central e pelos axônios (terminais de saída) vistos na figura 1.

 

Redes Neurais Artificiais: célula neural
Figura 1: Célula Neural.

 

Os neurônios se conectam e comunicam uns aos outros através das sinapses, termo que se refere à região entre dois neurônios onde os impulsos nervosos são transmitidos e recebidos. Esses estímulos são constituídos por diferentes concentrações de Na+ (Sódio) e K+ (Potássio). Esse estímulo viaja pelos dendritos provocando uma reação no corpo central de outro neurônio onde serão processados. Ao atingir um dado limiar de ação, o estímulo produzirá nova substância neurotransmissora inibindo ou excitando a geração de pulsos de descarga através do controle do nível de polaridade da membrana pós-sináptica, que poderá ou não estar ligada a outro neurônio. Como já mencionado essa comunicação dependerá da existência de um canal de comunicação constituído por um dendrito e um axônio. Estima-se que o cérebro humano possua aproximadamente 10 bilhões de neurônios. A tabela 1 apresenta as principais diferenças entre um neurônio natural e outro artificial. Observe que embora um neurônio artificial possua uma velocidade de processamento superior ao neurônio biológico, o processamento cerebral é muito mais rápido que uma RNA pelo simples fato de trabalhar em paralelo enquanto a RNA está limitada ao computador que é uma máquina sequencial.

 

Tabela 1: Características entre Cérebro e Computador.

 

Característica

Cérebro

Computador

Velocidade

ms

ns

Processamento

Paralelo

Sequencial

Armazenamento

Adaptativo

Estático

Controle de Processos

Distribuído

Centralizado

Ligações entre elementos processados

10.000

<10

Eficiência energética

10-16 J

10-6 J

 

Entre as principais características da rede RNA podemos citar:

  • Adaptação por experiência;
  • Capacidade de aprendizado;
  • Habilidade de generalização;
  • Organização de dados;
  • Armazenamento distribuído;
  • Facilidade de implementação;
  • Tolerância a falhas.

 

A origem das RNA's remonta a três artigos científicos. Seu primeiro modelamento matemático com McCulloch e Pitts (1943), seu primeiro método de treinamento com Hebb (1949), e o primeiro neurocomputador denominado MARK I - Perceptron com Rosemblatt (1958). Já em 1960 Widrow & Hoff desenvolveram a rede conhecida por Adaline (Adaptive Linear Element) originando posteriormente o Madaline (Multiple Adaline), uma rede com aprendizado na regra Delta, também chamada de algorítmo de aprendizado LMS (Leas Mean Square). Em 1969 Minsky & Papert demonstraram a limitação das RNA's constituídas de uma única camada em aprender o relacionamento entre entradas e saídas de funções lógicas simples, como o XOR (Ou-Exclusivo), ou seja, a impossibilidade da rede RNA em classificar corretamente padrões de classes não linearmente separáveis. Isto criou um revés nas futuras pesquisas usando RNA's.

 

Somente a partir dos trabalhos de Werbos (1974) com a derivação de algoritmos de predição utilizando gradiente reverso, Grossberg (1980) com a implementação da rede ART (Adaptive Resonance Theory), Kohonen (1982) com a formulação de mapas auto-organizáveis e Hopfield (1982) com redes recorrentes baseadas em funções de energia, que fizeram com que o interesse por redes RNA's fosse retomado. Em 1986 Rumerlhar, Hinton e Williams publicaram o livro Parallel Distributed Processing apresentando um algoritmo de ajuste de pesos para redes com mais de uma camada, o que solucionava também o problema apresentado por Minsky & Papert. Este algorítmo foi batizado de backpropagation.

 

A figura 2 apresenta o neurônio artificial projetado por McCulloch. Repare que sua saída será função da entrada (threshold) da soma do valor de suas diversas entradas. A figura 3 apresenta a estrutura do método de backpropagation com três camadas: a camada de entrada, onde os padrões são apresentados à rede; a(s) camada(s) intermediária(s) ou escondida(s), onde grande parte do processamento é feito; e a camada de saída, onde o resultado é apresentado.

 

Redes Neurais Artificiais: Neurônio artificial projetado por McCulloch.
Figura 2: Neurônio artificial projetado por McCulloch.

 

Redes Neurais Artificiais: Estrutura do método Backpropagation.
Figura 3: Estrutura do método Backpropagation.

 

A RNA, como pode ser observado, possui um funcionamento bastante simples. Existe um estímulo ou sinal de entrada (função de ativação) que será multiplicado por um peso indicando sua influência na saída da célula. Todas as entradas serão somadas ponderadamente produzindo um nível de atividade que, ao ultrapassar um limite, acionará uma determinada resposta de saída. Isto possibilita que a RNA possa aprender com seu ambiente através do ajuste dos pesos, processo conhecido por treinamento. O aprendizado basicamente é o melhor ajuste de pesos e, consequente, melhor desempenho para uma classe de problemas apresentados através de exemplos. Estes exemplos permitirão a criação da sistemática ou extração de regras básicas que poderão ser aplicadas em outras classes de problemas.

 

O algoritmo de aprendizado é um conjunto de regras bem definidas para a solução de um problema de aprendizado. Existem vários tipos de algoritmos de aprendizado, diferindo apenas no modelo da rede neural a ser aplicado, pelo modo como os pesos são modificados e na forma como a rede se relaciona com seu ambiente. Desta maneira o aprendizado poderá ser do tipo: 

  • Supervisionado: com um agente externo indicando a resposta desejada ao padrão de entrada;
  • Não Supervisionado: existe uma auto-organização dos pesos;
  • Reforço: quando um crítico externo avalia a resposta fornecida pela rede.

 

As funções de ativação (valores para acionamento da saída do neurônio) podem ser de dois tipos:

  • totalmente diferenciáveis (função logística, tangente hiperbólica, gaussiana, linear) ou;
  • parcialmente diferenciáveis (função degrau, sinal, rampa simétrica).

 

 

Função Degrau

 

RNA-função-degrau

 

Função Degrau Bipolar

 

RNA-função-degrau-bipolar

 

Função Rampa Simétrica

 RNA-função-rampa-simetrica

 

Função Logística

 

RNA-função-logistica

Função Tangente Hiperbólica

 RNA-função-logistica

 

Função Gaussiana

 

RNA-função-Gaussiana

 

No próximo artigo iremos falar sobre as arquiteturas das RNA'a e os métodos de treinamento.

 

 

Referências

 

Redes Neurais

Tutorial sobre Redes Neurais

- Silva, Ivan N.; Spatti, Danilo H.; Flauzino, Rogério A; Redes Neurais Artificiais para engenharia e ciências aplicadas, Artliber, 2010.

Outros artigos da série

<< Inteligência Artificial: IntroduçãoArquiteturas e Topologias de Redes Neurais Artificiais >>
Este post faz da série Inteligência Artificial. Leia também os outros posts da série:

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Sérgio Eduardo Palmiere
Engenheiro elétrico formado pela UMC, pos graduado em Automação Industrial pelo Senai Armando Arruda Pereira e Engenharia de Segurança do Trabalho pela UNINOVE. Mestre em Energia pela UFABC e atualmente Doutorando pela UFABC. Trabalhei durante anos na indústria automobilística e mais recentemente como professor/instrutor para cursos de NR10 básica e complementar, eletrônica digital e analógica, microcontroladores (PIC) e eletricidade. Minhas áreas de pesquisa são Eficiência Energética, Green Buildings, Sistemas Embarcados, Segurança contra Incêndios, Robótica e Energia Livre.Atualmente procurando recolocação profissional.

2
Deixe um comentário

avatar
 
2 Comment threads
0 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
CharlesLuis Sadeck Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Charles
Visitante
Charles

Sérgio Eduardo Palmiere você tem algum arquivo para baixar com redes neurais usadas em Microcontroladores? pois eu estou querendo utilizar nos Microcontroladores uma rede com treinamento supervisionado, existe estudos em payton, linguagem C, mais a plataforma E a IDE não tem para Microcontroladores, bem pelo menos eu não até agora eu não achei! Se o amigo poder me ajudar a engatinhar nesse mundo, concerteza qualquer projeto que eu realizar eu ficaria muito Grato, contente em divulgar o nome do amigo, ótimo blog precisamos de profissionais assim iguais a você para fazer diferença no no mundo! Parabéns!

Luis Sadeck
Visitante
Luis Sadeck

O próximo artigo poderia ser sobre aprendizagem de máquina supervisionado, não-supervisionado e por reforço. To um tempo para escrever sobre isso no meu blog mas ta difícil achar tempo.

Um abraço e parabéns pela matéria.