Trabalho Redes Neurais

Trabalho Redes Neurais

(Parte 2 de 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.

    1. TOPOLOGIAS

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

      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.

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

      1. 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

• 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

      1. 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.

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

      1. 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.

        1. COMPORTAMENTOS REFLEXIVOS

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.

        1. 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.

  1. 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 é 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 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:

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.

(Parte 2 de 3)

Comentários