DEZEMBRO 2006 ÍNDICE
LISTA DE FIGURAS FIGURA1: ESTRUTURA BIOLÓGICA DO NEURÔNIO................ NEURÔNIO..........................................6 ..........................6 FIGURA 2: MODELO BÁSICO DE NEURÔNIO ARTIFICIAL.................................7 ARTIFICIAL.................................7 FIGURA3: MODELO DE NEURÔNIO MATEMÁTICO....................... MATEMÁTICO...........................................10 ....................10 FIGURA 4: MODELOS DE REDES NEURAIS................. NEURAIS......................... ................. .................. .....................12 ............12 FIGURA 5: ESTRUTURA DE UMA REDE NEURAL EM 3 DIMENSÕES.............12 FIGURA 6: REDE NEURAL DIRETA................. DIRETA.......................... .................. ...........................................13 ..................................13 FIGURA 7: REDE NEURAL COM CICLO................. CICLO.......................... ................. .................................. ............................13 ..13 FIGURA 8: REDE NEURAL SIMÉTRICA............... SIMÉTRICA........................ .................. .................. ..............................14 .....................14 FIGURA 9: MODELOS DE REDES NEURAIS................. NEURAIS......................... ................. .................. .....................15 ............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................ CORREDOR......................... ................. ................. .................. .................................24 ........................24 FIGURA 15: ROBÔ HUMANÓIDE..........................................................................25
3
1.
INTRODUÇÃO
As redes redes neu neurai raiss têm sido sido utiliz utilizada adass para para solucio solucionar nar diverso diversoss problem problemas as de engen eng enha hari riaa como como,, por por exem exempl plo, o, em proce processa ssame ment ntoo digi digita tall de image imagens, ns, robót robótic icaa 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Á BÁSICOS
O cérebro apresenta uma notável habilidade de aprender, sendo considerado o mais mais fascina fascinante nte processa processador dor existe existente nte.. O processo processo de aprendi aprendizag zagem em está está intima intimamen mente te ligado ligado às mudança mudançass nas con conexõe exõess entre entre difere diferente ntess neurôni neurônios os chamad chamadas as de conexõe conexõess 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 104 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 fundamenta seu aprendizado. aprendizado. Isto é muito atraente atraente do ponto de vista tecnológic tecnológicoo pois dessa forma é possível eliminar a necessidade neces sidade 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 trab trabal alhan hando do junt juntam ament entee com com profi profissi ssion onai aiss da área área da ciênc ciência ia da comput computaç ação ã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. 2.1. POR POR QUE QUE UTIL UTILIZ IZAR AR RED REDES ES NEUR NEURAI AIS? S?
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 comp comput utado adore ress funci funcion onam am de modo modo seqüe seqüenci ncial al,, propo proporci rciona onand ndoo maio maior r 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 computador reproduzisse com qualidade qualidade estas característi características, cas, tais máquinas 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. 2.2. CARACT CARACTER ERIS ISTI TICAS CAS DAS DAS RED REDES ES NEU NEURAI RAIS S ARTI ARTIFI FICI CIAIS AIS 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 s ão interessantes interess antes à computação co mputação podemos citar: reconhecimento r econhecimento de padrões; p adrões; tolerân tolerância cia à falhas, falhas, aprendi aprendizado zado,, processa processamen mento to paralel paraleloo e distri distribuí buído, do, capaci capacidad dadee de treinamento, robustez, não-linearidade e uniformidade. Tais Tais cara caract cter erís ísti tica cass não não são são supo suport rtad adas as pelo peloss méto método doss comp comput utac acio iona nais is 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 atri atribu buto toss de uma uma rede rede neura neural, l, tais tais como como apren aprender der atrav através és de exem exempl plos, os, 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 NE NEURONIO AR 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 segme segment ntos os de linha linhass direc direcio iona nada dass entre entre eles. eles. Uma Uma rede rede neu neura rall é uma uma estrut estrutura ura 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 es truturas podem possuir qualquer número de conexões de entrad entradaa e uma uma con conex exão ão de saíd saída, a, que que pod podee ser repet repetid idaa para para qua quant ntas as saída saídass forem 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..x p: vetor de valores de entrada; • w1..w p: vetor de pesos das entradas; •
: função função de entrada entrada,, multi multipli plican cando do o valor valor das entrad entradas as pelos 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. 3.1. A RE REDE NEUR NEURAL AL ARTI ARTIFI FICI CIAL AL 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, 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 Modelos de redes neurais como o Perceptron (ROSENBLATT, (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. 3.2.1. DISPOSIÇÃO DISPOSIÇÃO DOS NEURÔNIOS NEURÔNIOS Segundo Segundo Rumelh Rumelhart art (RUMEL (RUMELHAR HART; T; HINTON HINTON;; WILLIA WILLIAMS, MS, 1986 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 rede neura neurall de Ho Hopfi pfiel eldd (HOP (HOPFIE FIELD LD,, 19 1982) 82) apres apresen enta ta fluxo fluxo de dad dados os 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 complexo são encontrados encontrados maiores problemas problemas tanto na fase de aprendizado 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. 3.2.2. CICLOS 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. 3.2.3. MODELOS MODELOS DE REDES NEURAIS 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 construídas ao longo do tempo como é mostrado na figura 9 abaixo.
14
Figura 9: Modelos de redes neurais
Esses Esses cicl ciclos os desen desenvo volv lvem em as respo respost stas as qu quee em geral geral,, são funçõ funções es tang tangent entes es 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. 3.2.4. CLASSES DE COMPORTAME COMPORTAMENTOS NTOS 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. 3.2.4. 4.1. 1. COMPOR COMPORTA TAME MENTO NTOS S REFLE REFLEXI XIVOS VOS
15
Uma característica marcante aos comportamentos reflexivos de uma rede neural é a intensidade intensidade e a duração das respostas respostas de um estímulo 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 entre a ocorrência do estimulo estimulo e a aparecimento da resposta (saída) é mínimo.
3.2. 3.2.4. 4.2. 2. COMPOR COMPORTA TAME MENTO NTOS S REA REATI TIVOS VOS É uma classe intermediária entre os comportamentos puramente reflexivos e os comportamentos instintivos. É formada por uma série de comportamentos estereotipados como como respo respost staa a um esti estimu mulo lo dado dado.. A entr entrad adaa qu quee dispa dispara ra esse esse compor comporta tame ment ntoo é 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 PR PROCESS CESSO O DE DE AP APREND RENDIIZAGEM GEM
Uma Uma das das cara caract cter erís ísti ticas cas mais mais impor importa tant ntes es de uma uma rede rede neura neurall arti artifi fici cial al é 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 aprendizado deve ser feito de forma rigorosa. Existem vários paradigmas de aprendizado, dentre os quais destacam-se: • Independ Independênc ência ia de que quem m aprende: aprende: rede aprende aprende por memori memorizaçã zação, o, contato 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 sistema aprende a reproduzir reproduzir o segundo elemento 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 Aprendizado não-supervisi não-supervisionado onado: no qual não há um ”professor”, e a rede deve encontrar regularidades nos dados de treinamento por si mesma. Algo Algo entr entree 50 e 90% 90% das das resp respos osta tass deve devem m ser ser forn fornec ecid idas as no proc proces esso so 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,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. 4.1. O ALGO ALGORI RITM TMO O BACK BACKPR PROP OPAG AGAT ATIO ION N 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 Co m a regr regraa delt delta, a, como como atra atravé véss de ou outr tros os tipo tiposs de back backpr prop opag agat atio ion, n, 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 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, algoritmo, o qual é derivado de um resultado natural natural da busca pelo gradiente gradiente da superfície 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. Atual Atualiz izee os valo valore ress dos dos pesos pesos das conex conexõe õess das das cama camadas das inte interm rmed ediá iári rias as utiliz utilizand andoo a equ equação ação::
. Ond Ondee n é um peq pequeno ueno valor 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.
APLI APLICA CAÇÃ ÇÃO O DAS DAS REDE REDES S NEUR NEURAI AIS S ARTI ARTIFI FICI CIAI AIS S
5.1. 5.1. RECO RECONH NHEC ECIM IMEN ENT TO DE VO VOZ Z 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. 5.2. RECO RECONH NHEC ECIM IMEN ENT TO DE DE TEX TEXT TO O reco reconh nhec ecim imen ento to de cara caract cter eres es é util utiliz izad adoo atua atualm lmen ente te no proc proces esso so 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. 5.2.1. EXEMPL EXEMPLOS OS 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 g ramaticais 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 s eqüências de proteínas. O novo novo méto método do terá terá impl implic icaç açõe õess sign signif ific icat ativ ivas as em apli aplica caçõ ções es como como o reconhecimento de voz e em quaisquer outras aplicações que envolvam o processamento comput computado adoriz rizado ado da lingua linguagem gem natural natural,, assim assim como como para campos de estudo estudo como como a genética ou a linguística. Ao contrário das tentativas anteriores para o desenvolvimento de algoritmos de comput computado adorr voltad voltados os para para o aprendi aprendizado zado da linguag linguagem, em, o nov novoo método método,, batiza batizado do de "Automatic Distillation of Structure - ADIOS", ou destilação automática de estrutura, 22
consegue consegue identi identific ficar ar padrões padrões comple complexos xos em textos textos comuns. comuns. O algori algoritmo tmo descobre descobre os padrões alinhando repetidamente as sentenças sen tenças e procurando por partes que se sobreponham. "O ADIOS se fundamenta em um método estatístic estatísticoo 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 d e 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 desenvolvidas para direcionar um manipulador, manipulador, a parte mais importante 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 des vie 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. 5.3.1. EXEMPL EXEMPLOS OS 5.3 5.3.1. .1.1. RO ROB BÔ BÍPE BÍPEDE DE 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 encontrada pelos cientistas cientistas para comparar os diferentes 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. 5.3.1. 1.2. 2. MOVIM MOVIMEN ENTO TO DE ROB ROBÔE ÔES S HUMAN HUMANOI OIDE DES S
24
A empresa empresa japonesa japonesa Fujits Fujitsuu anu anunci nciou ou o desenvol desenvolvim viment entoo de um sistema sistema de aprendizado para robôs humanóides como o da figura 15 logo abaixo, que utiliza uma rede neur neural al reco reconf nfig igur uráv ável el.. As rede redess neur neurai aiss repr repres esen enta tam m um pass passoo impo import rtan ante te no desenvolvimento de robôs humanóides, simplificando o processo de geração de movimento do robô, robô, norm normal alme ment ntee feit feitoo com com a demora demorada da confi configur guraç ação ão indi indivi vidu dual al de inúm inúmer eros os controles.
Figura 15: Robô humanóide
A geraç geração ão de movi movime ment ntoo e seu seu con contr trol olee envol envolve vem m comp comple lexos xos cálc cálcul ulos os de dinâ dinâmi mica ca,, exig exigin indo do consi consider deráv ável el capac capacid idade ade de comp comput utaç ação. ão. Mas Mas mais mais po poder der 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 aprendem.. Mas este este tipo tipo de rede tem um funcion funcioname amento nto excessi excessivam vament entee demora demorado, do, 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 comb combin inaa um méto método do de perb perbur urba baçã çãoo numé numéri rica ca (NP) (NP),, qu quee qu quan anti tifi fica ca o esta estado do da confi con figu guraç ração ão e dos dos pesos pesos da rede. rede. Esta Esta comb combin inaç ação, ão, conhe conheci cida da como como CPG/ CPG/NP NP,, foi 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 incorre incorreto. to. Se estive estiverr incorre incorreto, to, o program programaa altera altera os pesos pesos atribu atribuído ídoss às diversa diversass 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 nessa recon reconfi figur guraç ação ão dinâ dinâmi mica ca e não simp simple lesm smen ente te na alte alteraç ração ão do doss pesos pesos.. Esta Esta reconfiguração permite o aprendizado de uma enorme gama de movimentos complexos. O enfoq enfoque ue adot adotad adoo resul resulto touu em uma uma sign signif ific icat ativ ivaa reduç redução ão do tama tamanho nho 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 anteriormente exigido, considerando-se 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 Para faci facili lita tarr o desen desenvol volvi vime ment ntoo de movi movime ment ntos os espec específ ífic icos, os, a empr empresa esa desenvolveu também uma linguagem de computador para a programação de redes neurais. A ling lingua uage gem m esta estará rá embu embuti tida da no robô robô,, pode podend ndoo ser ser util utiliz izad adaa po porr usuá usuári rios os não 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 apre aprend ndiizado zado de uma uma rede rede neur neural al.. Sabe Sabedo dore ress de qu quee em proc proces esso soss no norm rmai aiss 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.
REFE REFERE RENC NCIA IAS S BIBL BIBLIO IOGR GRÁF ÁFIC ICAS AS
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 www.inovacaotecnologica.com.br (sitio da internet)
28