You are on page 1of 8

Uma (Breve) Introdução às Redes Neurais Artificiais∗

Marcelo Veiga Neves


1
Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS)
Caixa Postal 15.064 – 91.501-970 – Porto Alegre – RS – Brasil
mvneves@inf.ufrgs.br

1. Introdução
A maior parte dos computadores disponı́veis hoje segue o modelo de arquitetura de von
Neumann. Estes computadores apresentam um bom desempenho para tarefas comuns
como processamento de números, transações, etc. No entanto, existe uma gama de
aplicações que não são facilmente modeladas para os computadores convencionais. Estas
aplicações geralmente são aquelas facilmente resolvidas por seres humanos como, por
exemplo, reconhecimento de faces, classificação de dados, filtragem de informações, etc.
Neste contexto, as redes neurais artificiais surgem como uma alternativa às ar-
quiteturas tradicionais. A idéia básica das redes neurais é imitar o funcionamento
do cérebro humano e construir sistemas computacionais capazes de aprender, fazer
generalizações e descobertas. As primeiras pesquisas sobre redes neurais datam da década
de 40 com a descoberta do neurônio. Desde então, esta área já passou por perı́odos
de latência e evidência sendo que, no últimos anos, consolidou-se com o surgimento de
aplicações reais que empregam redes neurais.
Este trabalho apresenta um introdução ao estudo de redes neurais através da
exposição dos principais conceitos e da análise de uma rede neural implementada em
hardware. O texto está organizado da seguinte maneira: primeiramente, discute-se
o funcionamento do neurônio biológico (seção 2); na seqüencia, apresenta-se como
são modelados os neurônios artificiais e a formação das redes neurais; na seção 4,
apresenta-se uma classificação das arquiteturas de redes neurais existentes; as seção
5 e 6 descrevem o processo de treinamento das redes neurais e algumas possı́veis
aplicações, respectivamente; na seção 7, analisa-se a implementação de rede neural do
IBM ZISC036 [Lindblad et al., 1996]; por fim, são traçadas algumas conclusões sobre as
redes neurais.

2. O Neurônio Biológico
O sistema nervoso humano é formado por células nervosas extremamente especializadas:
os neurônios. Os neurônios possuem, além das estruturas comuns nas demais células
do corpo, extensões filamentares que se desenvolvem a partir do corpo celular. Estas
extensões são conhecidas como dendritos e axônios. Os dendritos são responsáveis por
receber os impulsos nervosos e os conduzir até o corpo celular, enquanto os axônios são
responsáveis por transmitir o sinal para os dendritos de neurônios adjacentes. A figura 1
ilustra um neurônio tı́pico e suas estruturas principais.
As terminações do axônios são conectadas com os dendritos de outros neurônios
através de sinápses. Desta forma, axônios e dendritos não chegam a entrar em con-

Trabalho desenvolvido na disciplina de Arquiteturas Especiais de Computadores/PPGC/UFRGS
Figura 1: O neurônio biológico.

tato direto. Existe uma substância quı́mica neurotransmissora que, em quantidade su-
ficiente, permite que o impulso nervoso atravesse a separação. As conexões sinapticas
tem papel fundamental na memorização da informação no cérebro humano. Acredita-
se que, em cada sinápse, a quantidade de neurotransmissores que podem ser libera-
dos para uma mesma freqüência de pulsos representa a informação armazenada pela
sinápse [Barreto, 2002].

3. Redes Neurais Artificiais


O primeiro modelo de neurônio artificial foi proposto por Warren McCulloch e Walter
Pitts em 1943 [McCulloch and Pitts, 1943]. O modelo de McCulloch-Pitts interpreta o
funcionamento do neurônio como sendo um circuito binário simples que combina várias
entradas e gera um sinal de saı́da. A figura 2 apresenta a lógica de um neurônio artificial
de McCulloch-Pitts.

Figura 2: Modelo de McCulloch-Pitts. Fonte: [Karrer et al., 2005].

As entradas do neurônio correspondem a um vetor X = [x1, x2, ..., xn] de di-


mensão n. Para cada entrada xi, há um peso correspondente wi que simula a concentração
de neurotransmissores da conexão sináptica. A soma ponderada das entradas xi por seus
respectivos pesos wi é chamada de saı́da linear u. Está saı́da deve ser submetida a uma
função de ativação f para obter-se a saı́da de ativação y do neurônio, isto é, y = f (u).
A função de ativação pode assumir várias formas, geralmente não-lineares. A figura 3
contém algumas funções de ativação comumente utilizadas.
A figura 4 apresenta uma generalização do modelo de McCulloch-Pitts. Neste
modelo geral, os pares de entradas xiwi são combinadas usando uma função Φ (geral-
mente, mas não necessariamente, utiliza-se soma ou produto) para produzir um estado
de ativação do neurônio que, através da função ϕ, produzirá a saı́da de ativação do
Figura 3: Exemplos de Funções de Ativação. Fonte: [Kovacs, 1996].

neurônio. A saı́da de um neurônio artificial corresponde à freqüência de descarga do


neurônio biológico [Barreto, 2002]. Ainda na figura 4, nota-se um valor limiar θ que é
geralmente utilizado para representar um polarização, valor abaixo do qual a saı́da é nula.

Figura 4: Representação de um Neurônio Artificial.

Uma rede neural é, portanto, formada por neurônios artificiais que atuam como el-
ementos processadores simples. Cada elemento processador executa uma função simples,
mas uma rede neural como um todo tem capacidade computacional para resolução de
problemas complexos [Braga et al., 2000]. Os elementos processadores são geralmente
organizados em camadas e interligados através das conexões sinápticas. Alguns neurônios
recebem excitação do mundo exterior e são chamados neurônios de entrada. Outros têm
suas respostas usadas para alterar, alguma forma, o mundo exterior e são chamados de
neurônios de saı́da. Os neurônios que não são nem de entrada e nem de saı́da ficam situ-
ados nas camadas internas da rede neural e são conhecidos como neurônios ocultos ou
escondidos [Barreto, 2002].
4. Arquiteturas de Redes Neurais

A forma como os neurônios são organizados em uma rede neural está intrinsecamente
ligada ao tipo de problema que será solucionado e é fator importante para a definição
dos algoritmos de aprendizado utilizados. As arquiteturas de redes neurais existentes
podem ser classificadas em três categorias básicas: feed-forward, feed-back e auto-
organizáveis [Karayiannis and Venetsanopoulos, 1992].

4.1. Redes Neurais Feed-forward

Uma rede neural feed-forward consiste de uma ou mais camadas de unidades de proces-
samento não-lineares. As conexões entre unidades de camadas adjacentes são definidas
por um conjunto de pesos sinápticos. No entanto, para ser considerada feed-forward, uma
rede neural precisa que suas saı́das se conectem-se somente com as unidades da próxima
camada. As primeiras redes de feed-forward a aparecerem na literatura foram Percep-
tron [Rosenblatt, 1962] e Adaline [Widrow, 1987]. No entanto, o potencial das redes
feed-forward só foi revelado com o surgimento das redes neurais multicamadas. A figura
5 contém um exemplo de rede neural feed-forward multicamada.

Figura 5: Exemplo de rede neural feed-forward. Fonte: [Dawson et al., 2000]

4.2. Redes Neurais Feed-back

Em redes feed-back, a saı́da de uma unidade de processamento pode conectar-se a uma de


suas próprias entradas ou a uma entrada de outra unidade da mesma camada, ao contrário
das redes feed-back que não permite esse tipo de conexão. Nessa classe de arquiteturas,
encontram-se as redes neurais recorrentes. Um exemplo de rede neural feed-back bastante
simples e também muito utilizada é o modelo de Hopfield [Hopfield, 1982]. A figura 6
contém um exemplo de rede feed-back.

4.3. Redes Neurais Auto-organizáveis

O ser humano tem a capacidade única de usar suas experiências passadas para adaptar-se
às mudanças imprevisı́veis de seu ambiente. No contexto das redes neurais artificiais,
tal adaptação é chamada de auto-organização [Karayiannis and Venetsanopoulos, 1992].
Existem redes neurais que não podem ser classificadas com feed-forward ou feed-back
e sim como auto-organizáveis. Um exemplo deste tipo de rede neural são os mapas de
Kohonen [Kohonen, 1990], como mostra a figura 7.
Figura 6: Exemplo de rede neural feed-back. Fonte: [Stergiou and Siganos, 1996]

Figura 7: Exemplo de rede neural auto-organizável.

5. Aprendizado
A caracterização de um sistema como rede neural geralmente implica na capacidade de
aprender. Aprendizado é o processo pelo o qual uma rede neural adquire a habilidade de
responder corretamente a estı́mulos, através do ajuste de parâmetros internos de acordo
com algum esquema de aprendizado. O aprendizado ocorre quando a rede neural atinge
uma solução generalizada para uma classe de problemas.
Em redes neurais artificiais o aprendizado não procura obter regras como na abor-
dagem simbólica de Inteligencia Artificial, mas determinar a intensidade de conexões
(pesos) entre os neurônios [Barreto, 2002]. Como mencionado anteriormente, o conheci-
mento fica armazenado nas conexões, logo o uso de redes neurais está intimamente rela-
cionado ao que se chama de conexionismo.
O aprendizado em redes neurais pode ser classificado, de acordo com presença
ou ausência de realimentação explı́cita do mundo exterior, em supervisionado e não-
supervisionado [Barreto, 2002]. Os dois métodos são descritos a seguir:
• aprendizado supervisionado: a rede neural é treinada através da apresentação de
pares de entradas e saı́das, para cada entrada a rede produz uma resposta na saı́da,
que é comparada com a resposta desejada. Através da análise de erros, realiza-se o
ajuste dos pesos sinápticos. Isto é normalmente utilizado para redes feed-forward.
• aprendizado não-supervisionado, não existe saı́da desejada. A rede é treinada
através de excitações ou padrões de entrada para, arbitrariamente, organizar os
padrões em categorias. Para uma entrada aplicada à rede, será fornecida uma
resposta indicando a classe a qual a entrada pertence. Se o padrão de entrada não
corresponde às classes existentes, uma nova classe é gerada. Isto é normalmente
utilizado para redes auto-organizáveis.
Expressões matemáticas, chamadas de regras de aprendizado, descrevem o pro-
cesso de treinamento das redes neurais. Entre as regras de aprendizado mais conhecidas,
pode-se citar a regra de Hebb [Hebb, 1949] e a regra delta [Barreto, 2002], também con-
hecida como Least Mean Square (LMS), que minimiza o erro médio quadrático.

6. Aplicações
As aplicações de redes neurais artificiais se concentram na área de inteligência artificial.
Reconhecimento de padrões é talvez uma das primeiras aplicações de redes neurais. O
Percptron de Rosenblatt [Rosenblatt, 1962], por exemplo, foi concebido principalmente
como instrumento capaz de reconhecer caracteres. Outro exemplo de utilização, bas-
tante citado na literatura, é na filtragem de dados experimentos da fı́sica de alta ener-
gia (HEP). Estes experimentos envolvem colisões de partı́culas sub-atômicas em acel-
eradores de partı́culas. Somente uma pequena parcela de colisões gera algum resultado
interessante. Desta forma, utiliza-se redes neurais para extrair somente os dados úteis aos
pesquisadores.
A seguir são citados mais alguns exemplos de aplicações de redes neurais, para
muitas delas existem softwares comerciais já difundidos:
• reconhecimento de faces, sons, caracteres, etc.;
• mineração de dados (Data Mining);
• análise de mercado e previsão de vendas;
• detecção de fraudes tributárias, bancárias, etc.;
• e diversas outras.

7. Caso de estudo: IBM ZISC036


Nesta seção é apresentado um implementação de rede neural em hardware. Como estudo
de caso, escolheu-se o IBM ZISC projetado pela IBM em 1994. ZISC (Zero Instruction
Set Computer) tinha o objetivo de ser um computador baseado puramente no casamento
de padrões e sem a necessidade de (micro)instruções do modelo tradicional. O acrônimo
ZISC é uma alusão as arquiteturas RISC (Reduced Instruction Set Computer).
A primeira geração de ZISCs foi chamada de ZISC036 e continha 64 entradas de
8-bits e 36 neurônios. O ZISC036 foi construı́do com um co-processador. Desta forma,
ele precisa ser controlado por um micro-controlador ou uma máquina de estados aces-
sando seus registradores. Para atender aplicações que necessitam de uma rede neural
grande (mais que 100 neurônios, por exemplo), ZISC pode ser facilmente escalado dev-
ido sua estrutura extensı́vel que permite a conexão direta de vários chips e formando as
chamadas ”ZISC-towers” [Lindblad et al., 1996].
O ZISC036 tem um barramento de dados de 16-bit que permite o carregamento
das entradas para cada neurônio. Existem ainda linhas adicionais de endereçamento e
controle para comunicação completa de entrada e saı́da, como ilustra a figura 8. Usando
esta técnica de acesso ao barramento, dados podem ser escritos para os registradores
de entrada do chip, tornando-se disponı́vel para todas as entradas dos 36 neurônios (ou
somente para um grupo, se for de interesse).
Uma vez que o ultimo valor de entrada é obtida, o chip calcula as saı́das para
cada neurônio rapidamente. Com um clock de 20MHz, o resultado é disponibilizado
Figura 8: Diagrama de blocos do IBM ZISC036. Fonte: [LeBouthillier, 2000]

em 0.5 microsegundos. Isto permite realizar cerca de 250000 avaliações por segundo,
o que corresponde a uma arquitetura von Neumann de 2000 MIPS. O mecanismo de
aprendizado da rede é implementado no próprio chip através de um vetor de treinamento.
O processamento de um vetor de treinamento em torno de 2 a 4 microsegundos.

8. Conclusão
Redes neurais é fundamentamente um novo e diferente paradigma para processamento
de informações e talvez seja a primeira alternativa real à programação algorı́tmica e ao
modelo de von Neumann. Este trabalho apresentou uma breve introdução às redes neurais
artificiais. No decorrer do texto, foram apresentados conceitos, aplicações e um exemplo
a implementação em hardware: o IBM ZISC036.
Observou-se que as redes neurais possuem um vasto campo de aplicação e seu
conceito já está bastante difundido, tanto na pesquisa quanto nas empresas. Existem
diversos softwares comerciais que empregam redes neurais para resolver problemas. No
entanto, percebeu-se que pouco esforço é dedicado à implementação de redes neurais em
hardware. Finalmente, analisando as caracterı́sticas de redes neurais, acredita-se que esta
area da computação tenha um futuro promissor.

Referências
Barreto, J. M. (2002). Introducao as Redes Neurais Artificiais. Disponivel em
http://www.inf.ufsc.br/b̃arreto/tutoriais/Survey.pdf. Acessado em Novembro de 2006.
Braga, A. P., Carvalho, A. C. P. L. F., and Ludemir, T. B. (2000). Redes Neurais Artificiais:
Teoria e Aplicacoes. Rio de Janeiro: LTC.
Dawson, C. W., Wilby, R. L., Harpham, C., Brown, M. R., Cranston, E., and Darby, E. J.
(2000). Modelling Ranunculus Presence in the Rivers Test and Itchen Using Artificial
Neural Networks. GeoComputation’2000.
Hebb, D. (1949). Organization of Behavior. New York: John Wiley & Sons.
Hopfield, J. J. (1982). Neural networks and physical systems with emergent collective
computational abilities. Proc. Natl. Acad. Sci., 79:2554–2558.
Karayiannis, N. B. and Venetsanopoulos, A. N. (1992). Artificial Neural Networks:
Learning Algorithms, Performance Evaluation, and Applications. Kluwer Academic
Publishers, Norwell, MA, USA.
Karrer, D., Cameira, R., Vasques, A., and Benzecry, M. (2005). Redes Neurais Artificiais:
Conceitos e Aplicacoes. IX Profundao - Encontro de Engenharia de Producao da
UFRJ.
Kohonen, T. (1990). The self-organizing map. Proceedings of the IEEE, 78(9):1464–
1480.
Kovacs, L. Z. (1996). Redes Neurais Artificiais. Segunda edicao, Editora Collegium
Cognitio.
LeBouthillier, A. E. (2000). IBM’s Zero Instruction Set Computer. Disponivel
em http://ww.cs.utoronto.ca/ tamer/papers/Robot Builder Feb00.pdf. Acessado em
Novembro de 2006.
Lindblad, C. S., Lindsey, M., MinerskJold, G., Sekhniaidze, G., and Szekely, G.
(1996). The IBM ZISC036 Zero Instruction Set Computer. Disponivel em
http://www.ia.hiof.no/prosjekter/hoit/html/nr1 96/zisc036.html. Acessado em Novem-
bro de 2006.
McCulloch, W. and Pitts, W. (1943). A Logical Calculus of the Ideas Immanent in Ner-
vous Activity. Bull. Math. Biophysics, 5:115–133.
Rosenblatt, F. (1962). Principles of Neurodynamics. Spartan Books, Washington, DC.
Stergiou, C. and Siganos, D. (1996). Neural Networks. Disponivel em
http://www.doc.ic.ac.uk/ nd/surprise 96/journal/vol4/cs11/report.html. Acessado em
Novembro de 2006.
Widrow, B. (1987). The original adaptive neural net broom-balancer. In Proceedings of
the IEEE International Symposium on Circuits and Systems, pages 351–357, Philadel-
phia, PA.

You might also like