Professional Documents
Culture Documents
FOZ DO IGUAÇU
DEZEMBRO 2006
MAYCON CESAR CHAVES CORDEIRO PORTILHO
DANIEL MAZARIN CASTRO
FOZ DO IGUAÇU
2
DEZEMBRO 2006
ÍNDICE
LISTA DE FIGURAS
3
1. INTRODUÇÃO
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.
4
2. CONCEITOS BÁSICOS
5
Figura1: Estrutura biológica do neurônio
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.
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".
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
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;
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.2. TOPOLOGIAS
As topologias de redes neurais podem ser classificadas quanto a: disposição dos
neurônios e quanto aos ciclos.
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.
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;
• 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;
13
• Simétricas: redes cuja matriz (do grafo de conectividade) é simétrica, sendo um
caso particular das redes com ciclos como na figura 8 .
14
Figura 9: Modelos de redes neurais
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.
4. O PROCESSO DE APRENDIZAGEM
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.
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.
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.
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
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.
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.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
23
Pernas por segundo ainda não é uma unidade que faça parte do sistema internacional de
medidas.
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.
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
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
27
BARRETO, Jorge M. Introdução às Redes Neurais Artificiais.
28