You are on page 1of 28

MAYCON CESAR CHAVES CORDEIRO PORTILHO

DANIEL MAZARIN CASTRO

UMA VISAO GERAL SOBRE REDES NEURAIS ARTIFICIAIS

FOZ DO IGUAÇU
DEZEMBRO 2006
MAYCON CESAR CHAVES CORDEIRO PORTILHO
DANIEL MAZARIN CASTRO

UMA VISAO GERAL SOBRE REDES NEURAIS ARTIFICIAIS

Trabalho de Graduação apresentado ao


Curso de Engenharia Mecânica, Setor
de Ciências Exatas, Universidade
Estadual do Oeste do Paraná.
Orientador: Prof. Dr. Carlos Henrique.

FOZ DO IGUAÇU

2
DEZEMBRO 2006

ÍNDICE

LISTA DE FIGURAS

FIGURA1: ESTRUTURA BIOLÓGICA DO NEURÔNIO..........................................6

FIGURA 2: MODELO BÁSICO DE NEURÔNIO ARTIFICIAL.................................7

FIGURA3: MODELO DE NEURÔNIO MATEMÁTICO...........................................10

FIGURA 4: MODELOS DE REDES NEURAIS.......................................................12

FIGURA 5: ESTRUTURA DE UMA REDE NEURAL EM 3 DIMENSÕES.............12

FIGURA 6: REDE NEURAL DIRETA.....................................................................13

FIGURA 7: REDE NEURAL COM CICLO..............................................................13

FIGURA 8: REDE NEURAL SIMÉTRICA...............................................................14

FIGURA 9: MODELOS DE REDES NEURAIS.......................................................15

FIGURA 10: NÃO LINEARIDADES USADAS EM REDES NEURAIS..................15

FIGURA 11: MODELO REDE NEURAL E SEUS ELEMENTOS...........................17

FIGURA 12: ESQUEMA DE CONTROLE DE PADRÃO INDUSTRIAL................18

FIGURA 13: ESTRUTURA TÍPICA DE REDE NEURAL BACKPROPAGATION. 21

FIGURA 14: ROBÔ CORREDOR...........................................................................24

FIGURA 15: ROBÔ HUMANÓIDE..........................................................................25

3
1. INTRODUÇÃO

As redes neurais têm sido utilizadas para solucionar diversos problemas de


engenharia como, por exemplo, em processamento digital de imagens, robótica e
processamento digital de sinais.

Redes neurais artificiais são técnicas computacionais que utilizam como modelo o
funcionamento do cérebro humano, onde os neurônios são treinados de forma a responder
somente aos padrões de entrada, podendo ser utilizadas no reconhecimento de padrões sem
a necessidade de um treinamento prévio.

As principais características que tornam desejáveis o estudo e o uso das redes


neurais artificiais são: a capacidade das mesmas de aprender através da experiência, a
capacidade de se adaptar a situações adversas e a sua tolerância a ruídos.

4
2. CONCEITOS BÁSICOS

O cérebro apresenta uma notável habilidade de aprender, sendo considerado o


mais fascinante processador existente. O processo de aprendizagem está intimamente
ligado às mudanças nas conexões entre diferentes neurônios chamadas de conexões
sinápticas ou simplesmente sinapses.
Um neurônio biológico, ilustrado na figura 1, é composto de: dendritos, que
recebem os estímulos transmitidos pelos outros neurônios; corpo de neurônio, ou soma, que
recebe e organiza as informações vindas de outros neurônios; e os axônios, responsáveis
por transmitir os estímulos para as outras células.

5
Figura1: Estrutura biológica do neurônio

Tais mudanças ocorrem ao longo da vida provocadas por estímulos de diversas


naturezas. Não se sabe ao certo quantos neurônios existem no cérebro. Algumas estimativas
que se baseiam na densidade de neurônios medida em pequenas regiões apontam limites
inferiores da ordem de 3x1010 mas este número pode até chegar a 1011 .
Cada um destes neurônios se conecta com aproximadamente 10 4 neurônios. Isso
implica que no cérebro existe algo em torno de 1013 a 1015 conexões sinápticas. Esses
números são extraordinariamente grandes e de certa forma evidenciam a ocorrência do
aprendizado, pois de outra forma todas essas informações deveriam estar armazenadas na
molécula de DNA.
Junte se a isso uma grande massa de evidências experimentais confirmando o fato
que as conexões sinápticas são ajustadas ao longo da vida à medida que se aprende. A
tabela 1 abaixo faz uma comparação entre a estrutura do cérebro humano e a estrutura do
computador.

Tabela 1: Comparação entre o computador e o cérebro humano

6
Uma rede neural pode ser ensinada. Este é um ponto crucial para uma RNA pois
nele se fundamenta seu aprendizado. Isto é muito atraente do ponto de vista tecnológico
pois dessa forma é possível eliminar a necessidade da programação explícita e detalhada.
Todos esses aspectos favorecem o estudo das redes neurais artificiais. No entanto
durante muitos anos houve pouco interesse e poucos avanços ocorreram. Uma das causas
desta estagnação foi a dificuldade de formalização destes modelos. Porém a neurociência
vem trabalhando juntamente com profissionais da área da ciência da computação,
engenharia elétrica, matemática, física, psicologia e até os lingüistas.

Figura 2: Modelo básico de neurônio artificial

O modelo mais geral para um neurônio artificial é este apresentado na figura 2


logo acima, cujos atributos são melhor explicados adiante.
– Entradas: as entradas de um neurônio podem ser as saídas de diversos outros
neurônios. São as entradas que irão determinar a saída do neurônio.
– Pesos: cada entrada possui um certo peso, ou seja, possui uma certa força de
conexão sináptica (inibitória ou excitatória).
– Net: o somatório de todas as entradas multiplicadas por seus respectivos pesos
nos fornece o chamado net de um neurônio.
No decorrer do trabalho explicitaremos de forma mais sucinta os atributos de uma
rede neural para melhor entendimento.

2.1. POR QUE UTILIZAR REDES NEURAIS?

7
Desde o início da evolução das máquinas o homem busca construir uma máquina
que seja independente do controle humano, cujo comportamento seja desenvolvido de
acordo com seu próprio aprendizado, e que possa ser chamada de autônoma, cognitiva ou
inteligente.
Os computadores funcionam de modo seqüencial, proporcionando maior
eficiência na resolução de tarefas nas quais devem ser seguidas etapas. Já o cérebro humano
funciona de modo paralelo, sendo extremamente conectado. Devido a esta alta interconexão
o cérebro é mais eficiente que os computadores na resolução de tarefas que exigem várias
variáveis.
Se o computador reproduzisse com qualidade estas características, tais máquinas
poderiam vir a ser utilizadas em locais onde a interação humana é perigosa, tediosa ou
impossível, como em reatores nucleares, combate ao fogo, operações militares.
Elas são particularmente úteis para lidar com dados ligados a valores reais em que
se deseja obter uma saída dotada de valor real. Desta maneira as redes neurais irão realizar
uma classificação por graus, e serão capazes de expressar valores equivalentes a "não
conhecido com certeza".

2.2. CARACTERISTICAS DAS REDES NEURAIS ARTIFICIAIS


Através de diversas estruturas neurais e algoritmos de aprendizagem propostos
por vários pesquisadores, as redes neurais artificiais conseguem simular estas
características presentes nos sistemas biológicos. Dentre as características dos neurônios
biológicos que são interessantes à computação podemos citar: reconhecimento de padrões;
tolerância à falhas, aprendizado, processamento paralelo e distribuído, capacidade de
treinamento, robustez, não-linearidade e uniformidade.
Tais características não são suportadas pelos métodos computacionais
tradicionais, fazendo com que tal tecnologia seja empregada para ajudar a solucionar
problemas que antes eram resolvidos de forma menos eficaz.
A redundância na representação de informações em uma rede neural, ao contrário
de outros sistemas, transforma-se em uma vantagem, que torna o sistema tolerante a falhas.

8
Os atributos de uma rede neural, tais como aprender através de exemplos,
generalizações redundantes, e tolerância à falhas, proporcionam fortes incentivos para a
escolha de redes neurais como uma escolha apropriada para aproximação de funções e para
a modelagem de sistemas biológicos.
A característica mais significante de redes neurais está em sua habilidade de
aproximar qualquer função contínua não linear a um grau de correção desejado. Esta
habilidade das redes neurais as tem tornado útil para modelar sistemas não lineares.
Com o avanço em tecnologias de hardware, existe componentes com funções
voltadas às redes neurais, o que traz uma velocidade adicional à computação neural.

3. O NEURONIO ARTIFICIAL

Para que possamos explanar o neurônio artificial primeiramente devemos nos


atentar a alguns conceitos básicos para um bom entendimento.
O grafo, que é um conjunto de pontos (vértices) conectados por linhas (arestas).
Um grafo direcionado consiste de um conjunto de pontos ao longo de um conjunto de
segmentos de linhas direcionadas entre eles. Uma rede neural é uma estrutura de

9
processamento de informação distribuída paralelamente na forma de um grafo direcionado,
com algumas restrições e definições próprias
Os nós de um grafo são as unidades de processamento e suas arestas são as
conexões, por onde as informações são conduzidas instantaneamente de uma unidade de
processamento para outra. Tais estruturas podem possuir qualquer número de conexões de
entrada e uma conexão de saída, que pode ser repetida para quantas saídas forem
necessárias, mas o valor será o mesmo em todas elas.
Uma rede neural é composta por várias destas unidades de processamento, que
podem ser resumidas no modelo matemático de McCulloch e Pitts ilustrado na figura 3,
onde:
• x1..xp: vetor de valores de entrada;
• w1..wp: vetor de pesos das entradas;

• : função de entrada, multiplicando o valor das entradas pelos


respectivos pesos;
• f(a): função de ativação, que dirá se o valor de entrada foi suficiente ou não para
gerar algum dado na saída;
• y: função de saída, que irá conter o resultado das operações efetuadas no
neurônio.

Figura3: Modelo de neurônio matemático

De forma geral, a operação de uma unidade da rede se resume em:


• Sinais são inseridos na entrada;
• Cada sinal é multiplicado por um peso que indica sua influência na saída da
unidade;

10
• É feita a soma ponderada dos sinais que produz um nível de atividade;
• Se este nível excede um limiar de ativação (threshold) a unidade produz uma
saída.

3.1. A REDE NEURAL ARTIFICIAL


Uma rede neural artificial é, geralmente, um sistema de neurônios artificiais, tais
como o descrito anteriormente, ligados por conexões sinápticas e dividido em 3 camadas:
camada de entrada, que são os neurônios que recebem estímulos do meio externo; camadas
internas ou hidden (ocultos); e neurônios de saída, que são os que se comunicam com o
exterior.
Tais redes podem ser também encontradas em modelos de apenas 1 camada, mas
nestes casos as redes realizam apenas cálculos muito simples, que podem ser efetuados
mais facilmente através de métodos tradicionais.
Modelos de redes neurais como o Perceptron (ROSENBLATT, 1959) e a rede de
Kohonen (WIDROW; HOFF, 1960), apresentam estruturas renciadas a esta definida acima.

3.2. TOPOLOGIAS
As topologias de redes neurais podem ser classificadas quanto a: disposição dos
neurônios e quanto aos ciclos.

3.2.1. DISPOSIÇÃO DOS NEURÔNIOS


Segundo Rumelhart (RUMELHART; HINTON; WILLIAMS, 1986), a rede
neural deve ter ao menos duas camadas para apresentar um resultado significativo no
desempenho de suas funções: entrada e saída de dados.
Como uma rede deste tipo possui o processamento muito limitado é necessária a
adição de uma camada intermediária, fazendo com que uma rede neural tenha pelo menos
três camadas.

11
A rede neural de Hopfield (HOPFIELD, 1982) apresenta fluxo de dados
multidirecional e comportamento dinâmico, devido ao fato de que todos os neurônios são
interconectados, desaparecendo a idéia de camadas. Como seu funcionamento é mais
complexo são encontrados maiores problemas tanto na fase de aprendizado quanto na fase
de testes.
Sua utilização é maior na área de problemas de otimização e desempenho. As
duas redes neurais citadas podem ser observadas na figura 4.

Figura 4: Modelos de redes neurais

Figura 5: Estrutura de uma rede neural em 3 dimensões

12
3.2.2. CICLOS
Quanto aos ciclos, as redes neurais podem ser classificadas em:
• Diretas: redes neurais que não tem ciclos e podem ser representadas em camadas
assim como é mostrado na figura 6;

Figura 6: Rede neural direta

• Com ciclos: redes em que o grafo de conectividade possui pelo menos um ciclo
(também chamadas redes com realimentação ou feedback), podem ser compostas de uma
ou mais camadas, sendo que cada neurônio fornece o sinal de entrada como input para cada
um dos outros neurônios, podemos ver um exemplo desta rede na figura 7;

Figura 7: Rede neural com ciclo

13
• Simétricas: redes cuja matriz (do grafo de conectividade) é simétrica, sendo um
caso particular das redes com ciclos como na figura 8 .

Figura 8: Rede neural simétrica

3.2.3. MODELOS DE REDES NEURAIS


A partir dos algoritmos são construídas as redes neurais que irão interagir com as
entradas, as quais irão processar e fornecer as respostas.
Dentre estas redes, podemos classificá-las de acordo com seus ciclos e processos,
os quais geram uma vasta gama de redes neurais já construídas ao longo do tempo como é
mostrado na figura 9 abaixo.

14
Figura 9: Modelos de redes neurais

Esses ciclos desenvolvem as respostas que em geral, são funções tangentes


hiperbólicas não-lineares e em degraus, como mostrado na figura 10 abaixo.

Figura 10: Não linearidades usadas em redes neurais


3.2.4. CLASSES DE COMPORTAMENTOS
O comportamento de uma rede neural designa a forma como o algoritmo que a
compõe interage com os dados recebidos pela entrada, fornecendo uma resposta. Esses
comportamentos são classificados em reflexivos e reativos, os quais serão detalhados.

3.2.4.1. COMPORTAMENTOS REFLEXIVOS

15
Uma característica marcante aos comportamentos reflexivos de uma rede neural é
a intensidade e a duração das respostas de um estímulo (entrada), os quais são uma função
direta da intensidade e duração deste estimulo que disparou seu comportamento.
Também é importante notar que tempo decorrido entre a ocorrência do estimulo e
a aparecimento da resposta (saída) é mínimo.

3.2.4.2. COMPORTAMENTOS REATIVOS


É uma classe intermediária entre os comportamentos puramente reflexivos e os
comportamentos instintivos. É formada por uma série de comportamentos estereotipados
como resposta a um estimulo dado. A entrada que dispara esse comportamento é
geralmente mais complexa e especifica que o necessário para disparar o comportamento
reflexivo.
A resposta envolve um seqüencial temporal de ações que se desenrolam até o
final, mesmo que o estimulo disparador não esteja mais presente.

4. O PROCESSO DE APRENDIZAGEM

Uma das características mais importantes de uma rede neural artificial é a


capacidade de aprender com o meio ambiente, adaptando-se as condições do meio. Isto é
feito através de um processo iterativo de ajuste de seus pesos, chamado de aprendizado.
Quando a rede aprende uma solução para uma classe generalizada de problemas
dizemos que ela aprendeu a tratar destes. Para que uma rede neural possa fazer isto é

16
necessário fornecer a ela um conjunto de valores possíveis de entradas e, no caso de redes
com aprendizado supervisionado, as saídas corretas para as soluções propostas.
Aplica-se então um algoritmo que irá ajustar os pesos das arestas internas da rede,
para generalizar aquela classe de problema. Estes algoritmos diferenciam-se entre si
principalmente pelo modo como os pesos são ajustados, na figura 11 ilustramos nosso
modelo.

Figura 11: Modelo rede neural e seus elementos

Todo o conhecimento de uma rede está nas sinapses, ou seja, nos pesos das
arestas. Para que a rede não seja configurada de maneira errada o processo de aprendizado
deve ser feito de forma rigorosa. Existem vários paradigmas de aprendizado, dentre os
quais destacam-se:
• Independência de quem aprende: rede aprende por memorização, contato,
exemplos, por analogia, por exploração e também por descoberta;
• Por retroação do mundo: diz respeito à presença ou ausência de realimentação
explícita de fora da rede.
• Por Finalidade do Aprendizado:
– Auto-associador: é apresentada à rede uma coleção de exemplos para que ela
memorize. Quando se apresenta um dos elementos da coleção de exemplos mas de modo
errôneo, a rede deve mostrar o exemplo original, funcionando assim como um filtro;
– Hetero-associador: é uma variação do auto-associador, mas que se memoriza
um conjunto de pares. O sistema aprende a reproduzir o segundo elemento do par, mesmo

17
que o primeiro esteja pouco modificado, funcionando desta maneira como um reconhecedor
de padrões.
Dentre os principais procedimentos para aprendizado, podemos citar:
1. Aprendizado supervisionado: aquele no qual um ”professor” provê valores de
saída para cada padrão de entrada da rede.
Podemos citar como um exemplo o reconhecimento de padrões, os quais devem ser
fornecidos por um operador (professor). Os parâmetros de entrada serão: cor, tamanho e
textura, e as saídas previstas podem ser somente: peixe bom ou peixe estragado. Podemos
visualizar o exemplo pela figura 12 abaixo.

Figura 12: Esquema de controle de padrão industrial

2. Aprendizado semi-supervisionado: aquele no qual um professor meramente


indica quando a resposta da rede a um padrão de treinamento é ”bom” ou ”ruim”;
3. Aprendizado não-supervisionado: no qual não há um ”professor”, e a rede
deve encontrar regularidades nos dados de treinamento por si mesma.
Algo entre 50 e 90% das respostas devem ser fornecidas no processo de
aprendizado, afim de que a rede aprenda a resolver o problema e não apenas decore
soluções prontas.
Podemos denominar ainda ciclo como sendo uma apresentação de todos os N (N
Є N, e N > 0) pares (entrada e saída) do conjunto de treinamento no processo de
aprendizado.
A correção dos pesos num ciclo pode ser executado de dois modos:

18
1. Modo Padrão: A correção dos pesos acontece a cada apresentação à rede de
um exemplo do conjunto de treinamento. Cada correção de pesos baseia-se somente no erro
do exemplo apresentado naquela iteração. Assim, em cada ciclo ocorrem N (N Є N, e N >
0) correções.
2. Modo Batch: Apenas uma correção é feita por ciclo. Todos os exemplos do
conjunto de treinamento são apresentados à rede, seu erro médio é calculado e a partir deste
erro fazem-se as correções dos pesos.
Redes neurais artificiais são geralmente utilizadas para fazer reconhecimento
estático de padrões, ou seja, para estaticamente mapear entradas complexas em saídas mais
simples, como classificação N-ária de padrões de valores.
O modo usual de se treinar uma rede neural para a tarefa a ser executada é através
de um procedimento chamado de backpropagation (RUMELHART;
HINTON;WILLIAMS, 1986), onde os pesos da rede são modificados em proporção de sua
contribuição ao erro observado nas unidades de saída da rede.

4.1. O ALGORITMO BACKPROPAGATION

Modelos de redes neurais como o Perceptron (ROSENBLATT, 1959) são capazes


de tratar problemas linearmente independentes ou separáveis. Para problemas não lineares,
como computar a porta XOR ou a operação lógica de implicação, é necessário que a rede
tenha uma representação intermediária apropriada para padrões de entrada. Isto é feito
através da inserção de camadas de neurônios intermediários não-lineares.
A rede neural com backpropagation utiliza a regra delta (uma restrição) para o
processo de aprendizado. O termo backpropagation é uma abreviação para propagação do
erro para trás.
Com a regra delta, como através de outros tipos de backpropagation, o
aprendizado é um processo supervisionado que ocorre a cada ciclo, isto é, cada vez que
dados são apresentados na entrada da rede, através de um fluxo de ativação posterior das
saídas e da propagação dos erros anteriores do ajuste de pesos.

19
Simplificando, toda vez que uma rede neural recebe um padrão ela “adivinha”
aleatoriamente o que a entrada deve ser. Verifica-se então a diferença entre a resposta
encontrada está resposta e faz os ajustes nos pesos das conexões.
A rede é inicializada aleatoriamente para que julgamentos acerca da aplicação não
sejam feitos antes desta ser apresentada ao algoritmo backpropagation.
Os padrões de treinamento apresentados à rede podem ser vistos como um
conjunto de pares ordenados {(x1, y1), (x2, y2), ..., (xp, yp)}, onde xi representa um padrão
de entrada, yi representa um vetor de padrão de saída associado ao vetor de entrada xi e oi
representa a saída real obtida na rede.
O processo de treinamento da rede é então feito de acordo com o seguinte
algoritmo, o qual é derivado de um resultado natural da busca pelo gradiente da superfície
de erro (no espaço de pesos) da saída atual produzida pela rede em relação a um resultado
desejado.
1. Selecione o primeiro par de vetor de treinamento dos pares de vetores de
treinamento. Chame este vetor de par (x, y).
2. Use o vetor de entrada x como a saída da camada de entrada dos elementos de
processamento.
3. Calcule a ativação para cada unidade na camada subseqüente.
4. Aplique as funções de ativação apropriadas, as quais serão denotadas como
f(net) para as camadas intermediárias e como f(net0) para a camada de saída, para cada
unidade na camada subseqüente.
5. Repita os passos 3 e 4 para cada camada da rede.
6. Calcule o erro para este padrão p em todo a camada de saída K utilizando a
fórmula: pk = (yk − ok)f0(netok).
7. Calcule o erro para todas camadas intermediárias j utilizando a fórmula
recursiva.
8. Atualize os valores dos pesos das conexões das camadas intermediárias

utilizando a equação: . Onde n é um pequeno valor


utilizado para limitar a quantidade de mudança permitida para cada conexão durante um
ciclo de treinamento.

20
9. Atualize os valores dos pesos das conexões da camada de saída através da

fórmula: .
10. Repita os passos de 2 a 9 para todos os vetores pares no conjunto de
treinamento. Chame esta de época de treinamento.
Os passos 1 a 10 devem ser repetidos quantas vezes for necessária para reduzir a
soma dos erros a um valor mínimo de acordo com a fórmula:

A figura 13 mostra uma rede típica na qual pode ser utilizado o algoritmo
backpropagation. Tal rede é constituída de L camadas feedforward (os nós de entrada não
são computados como uma camada) consistindo de uma camada de entrada, (L-1) camadas
intermediárias e uma camada de saída com nós conectados sucessivamente de forma para
frente sem neurônios conectados que se encontrem na mesma camada.
Não é ilustrado aqui o funcionamento do algoritmo devido ao grande número de
iterações que geralmente são necessárias para se chegar a um resultado significativo.

Figura 13: Estrutura típica de rede neural backpropagation


5. APLICAÇÃO DAS REDES NEURAIS ARTIFICIAIS

5.1. RECONHECIMENTO DE VOZ


O reconhecimento de voz é um campo que têm mostrado grande parte da
capacidade das redes neurais. Pesquisadores facilmente obtiveram excelentes resultados em

21
tarefas básicas como diferenciação de fala humana e fala sintetizada e reconhecimento de
fonemas e de dígitos através de fala.
Há ainda o reconhecimento da voz humana, campo no qual têm-se encontrado
muitos avanços nos últimos anos, com a presença de softwares de reconhecimento de voz
tal qual o ViaVoicer da IBM.

5.2. RECONHECIMENTO DE TEXTO


O reconhecimento de caracteres é utilizado atualmente no processo de
transferências de dados (principalmente livros) para o meio digital. O processo de OCR
(Optical Character Recognition - reconhecimento ótico de caracteres) utilizando redes
neurais é utilizado para leitura dos códigos postais em envelopes de carta nos Estados
Unidos. O sistema apresenta precisão de até 99,5%.

5.2.1. EXEMPLOS
5.2.1.1. ADIOS
Pesquisadores das Universidades Cornell, Estados Unidos, e Tel Aviv, Israel,
desenvolveram um método que permite a um computador escanear um texto, escrito em
qualquer idioma, incluindo inglês e chinês, e, autonomamente e sem qualquer informação
prévia, inferir as regras gramaticais por detrás da construção daquele texto.
Entendendo as regras, o computador pode então utilizá-las, construindo sentenças
novas - diferentes daquelas que ele "leu" - e que têm sentido. O método também funciona
para pautas musicais e até mesmo para seqüências de proteínas.
O novo método terá implicações significativas em aplicações como o
reconhecimento de voz e em quaisquer outras aplicações que envolvam o processamento
computadorizado da linguagem natural, assim como para campos de estudo como a
genética ou a linguística.
Ao contrário das tentativas anteriores para o desenvolvimento de algoritmos de
computador voltados para o aprendizado da linguagem, o novo método, batizado de
"Automatic Distillation of Structure - ADIOS", ou destilação automática de estrutura,

22
consegue identificar padrões complexos em textos comuns. O algoritmo descobre os
padrões alinhando repetidamente as sentenças e procurando por partes que se sobreponham.
"O ADIOS se fundamenta em um método estatístico para a extração de padrões e
em uma generalização estruturada - dois processos ligados à aquisição da linguagem.
Nossas experiências mostram que ele consegue capturar estruturas intricadas de dados
simples, incluindo transcrições de falas dos pais com crianças de dois ou três anos de
idade,", conta o Dr. Edelman.
Além da fala com crianças, o algoritmo foi testado no texto completo da Bíblia,
em diversos idiomas, e na notação musical. Ele também pode ser aplicado a dados
biológicos, como pares de nucleotídeos e seqüências de aminoácidos. Analisando proteínas,
por exemplo, o algoritmo foi capaz de extrair padrões de seqüências de aminoácidos que
eram altamente correlacionados com as propriedades funcionais das proteínas.

5.3. ROBÓTICA
Uma área importante das redes neurais é no campo da robótica. Geralmente, estas
redes são desenvolvidas para direcionar um manipulador, a parte mais importante do robô
industrial, para segurar objetos, baseados em dados vindos de sensores.
Geralmente as redes neurais são utilizadas na robótica para permitir aproximação
de movimentos. Por exemplo, se um robô precisa seguir um caminho de A até B por C,
pode ser que em algum momento sua trajetória se desvie do plano traçado.
Através do uso de redes neurais, quando isto acontecer, é possível fazer uma
reavaliação e verificar se o caminho ainda é possível de ser traçado ou se o robô deve
retornar a origem. Outras aplicações incluem direcionamento de robôs autônomos.

5.3.1. EXEMPLOS
5.3.1.1. ROBÔ BÍPEDE

O "RunBot" (robô corredor) mostrado na figura 14 abaixo conseguiu quebrar o


recorde robótico em velocidade, capaz de andar à velocidade de 3,5 pernas por segundo.

23
Pernas por segundo ainda não é uma unidade que faça parte do sistema internacional de
medidas.

Figura 14: Robô corredor


Mas foi a forma encontrada pelos cientistas para comparar os diferentes robôs, já
que cada um tem um tamanho diferente. É uma medida de velocidade relativa, sendo
calculada dividindo-se a velocidade (metros por segundo) pelo comprimento das pernas do
robô.
O RunBot é incrivelmente simples, inclusive no seu controle. O programa que faz
o pequeno pernalta de 30 centímetros de altura ser tão rápido é inspirado na forma como os
neurônios - as células cerebrais - controlam o movimento nos humanos e nos animais.
O controlador neuronal aprende enquanto anda, o que dispensa a multiplicidade
de sensores existentes nos outros robôs andarilhos. Na verdade, ele possui apenas dois
sensores, um para detectar quando o pé sai do chão e outro para detectar quando o pé toca o
chão.
Recebendo os sinais dos sensores, o controlador neuronal responde da mesma
forma que o reflexo de um animal, fazendo com que as pernas se ajustem ao estágio do
movimento no qual elas se encontram naquele momento.

5.3.1.2. MOVIMENTO DE ROBÔES HUMANOIDES

24
A empresa japonesa Fujitsu anunciou o desenvolvimento de um sistema de
aprendizado para robôs humanóides como o da figura 15 logo abaixo, que utiliza uma rede
neural reconfigurável. As redes neurais representam um passo importante no
desenvolvimento de robôs humanóides, simplificando o processo de geração de movimento
do robô, normalmente feito com a demorada configuração individual de inúmeros
controles.

Figura 15: Robô humanóide

A geração de movimento e seu controle envolvem complexos cálculos de


dinâmica, exigindo considerável capacidade de computação. Mas mais poder de
computação ainda será requerido para que o robô responda instantaneamente a alterações
no ambiente.
Um método de resolver este problema é através da utilização de redes neurais
baseadas em sistemas de controle, as quais imitam a maneira como os seres vivos
aprendem. Mas este tipo de rede tem um funcionamento excessivamente demorado,
levando dias ou até mesmo meses para gerar movimentos de maneira eficiente.
A tecnologia da Fujitsu é baseada em redes CPG ("Central Pattern Generator"),
que simulam matematicamente o oscilador neural existente nos vertebrados. A ferramenta
combina um método de perburbação numérica (NP), que quantifica o estado da
configuração e dos pesos da rede. Esta combinação, conhecida como CPG/NP, foi
otimizada para se chegar à nova tecnologia. A empresa também desenvolveu um software,
chamado de Humanoid Movement-Generation System, que permite aos robôs humanóides
aprenderem uma ampla gama de movimentos.

25
Em termos mais simples, um gerador cria oscilações nas diversas juntas do robô.
Estas oscilações são avaliadas por um software que determina se o movimento está correto
ou incorreto. Se estiver incorreto, o programa altera os pesos atribuídos às diversas
variáveis e tenta novamente. A rede neural se reconfigura dinamicamente e seleciona o
movimento mais apropriado. Os pesquisadores enfatizam que o cerne da tecnologia está
nessa reconfiguração dinâmica e não simplesmente na alteração dos pesos. Esta
reconfiguração permite o aprendizado de uma enorme gama de movimentos complexos.
O enfoque adotado resultou em uma significativa redução do tamanho do
programa destinado a controlar os movimentos do robô, tendo apenas dez por cento do
código de um programa convencional. O tempo de aprendizado também caiu para algo em
torno de 10 a 30 por cento do tempo anteriormente exigido, considerando-se um robô com
20 juntas móveis. Isto torna o robô capaz de se adaptar e reagir instantaneamente às
situações mutáveis de um ambiente real.
Para facilitar o desenvolvimento de movimentos específicos, a empresa
desenvolveu também uma linguagem de computador para a programação de redes neurais.
A linguagem estará embutida no robô, podendo ser utilizada por usuários não
especializados em dinâmica e redes neurais para gerar os movimentos desejados.

6. CONCLUSÕES

Neste trabalho apresentamos uma sub-área da Inteligência Artificial: Redes


Neurais Artificiais.
Procuramos por meio de idéias e conceitos básicos explanar o desenvolvimento e o
aprendizado de uma rede neural. Sabedores de que em processos normais de

26
desenvolvimento destes tipos de rede, a modelagem da arquitetura é um processo custoso
por demandar de especialistas que nem sempre estão disponíveis.
A principal vantagem é que esse tipo de algoritmo passa a ser gerado com pouca
ou quase nenhuma intervenção humana, criando sistemas autônomos que possam tomar
suas próprias decisões baseados em experiências anteriores.

7. REFERENCIAS BIBLIOGRÁFICAS

SANTOS, Davi Trindade. 2004. Sistemas Inteligentes Híbridos: Como Combinar


Redes Neurais Artificiais, Lógica Nebulosa e Algoritmos Genéticos.

SILVA, Flavio de Almeida. Redes Neurais Hierárquicas para Implementação de


Comportamento de Agentes Autônomos.

27
BARRETO, Jorge M. Introdução às Redes Neurais Artificiais.

DESCHAMPS, Fernado. Redes Neurais Artificias – Fundamentos

www.inovacaotecnologica.com.br (sitio da internet)

28

You might also like