Uma Introdução as Redes Neurais - TATIBANA, Cassia

Uma Introdução as Redes Neurais - TATIBANA, Cassia

(Parte 4 de 6)

2.2 Aprendizado Não Supervisionado (auto-organização): não utiliza um agente externo indicando a resposta desejada para os padrões de entrada, utiliza-se entretanto, exemplos de coisas semelhantes para que a rede responda de maneira semelhante.

3. Por Finalidade do Aprendizado

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

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

É necessário também que exista um Detector de Regularidades, que nada mais é que um reconhecedor de padrões em que o sistema deve se auto-organizar e criar padrões possíveis.

Podemos denominar ainda ciclo como sendo uma apresentação de todos os N 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 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.

Hebbian Learning

Descreveremos aqui uma sugestão simples de uma teoria que responde à pergunta:

Como nós aprendemos? A base desta teoria data do ano de 1949 do livro "Organization of Behavior", escrito por Hebb. A idéia central estava na seguinte afirmação:

"Quando um axônio de uma célula A está próxima o suficiente de excitar uma célula B e

Página 19 de 31Uma Introdução às Redes Neurais repetidamente ou persistentemente toma parte em ativá-la, algum processo crescente ou mudança metabolica se apossa de uma ou ambas as células de forma que a eficiência de A, assim como a de uma das células B excitadas, são aumentadas".

Assim como o modelo de McCulloch-Pitts, esta lei de aprendizagem não explica tudo sobre este tema, porém, de uma forma ou de outra, ela está presente em muitos modelos de redes neurais que conhecemos hoje. Utilizaremos como exemplo, o condicionamento clássico, o experimento de Pavlov, para ilustrar a idéia anteriormente exposta.

Pelo fato das conexões através de neurônios ocorrerem através de sinapses, é realmente razoável imaginar que qualquer mudança que ocorra durante o aprendizado ocorra nestas. Hebb teorizou que a área da junção sináptica aumenta. Teorias mais recentes afirmam que o responsável por isto é um aumento na taxa de liberação neurotransmissora efetuada pela célula pré-sináptica. Em qualquer evento, mudanças certamente ocorrem na sinapse. Se nem a célula pré, nem a pós sináptica são alteradas como um todo, outras respostas, que não são relacionadas ao experimento podem ser reforçadas.

Desenvolvimento de Aplicações

Esta página procura ilustrar os passos necessários para o desenvolvimento de aplicações utilizando redes neurais artificiais.

1 e 2. Coleta de dados e separação em conjuntos

Os dois primeiros passos do processo de desenvolvimento de redes neurais artificiais são a coleta de dados relativos ao problema e a sua separação em um conjunto de treinamento e um conjunto de testes. Esta tarefa requer uma análise cuidadosa sobre o problema para minimizar ambiguidades e erros nos dados. Além disso, os dados coletados devem ser significativos e cobrir amplamente o domínio do problema; não devem cobrir apenas as operações normais ou rotineiras, mas também as exceções e as condições nos limites do domínio do problema.

Normalmente, os dados coletados são separados em duas categorias: dados de treinamento, que serão utilizados para o treinamento da rede e dados de teste, que serão

Página 20 de 31Uma Introdução às Redes Neurais utilizados para verificar sua performance sob condições reais de utilização. Além dessa divisão, pode-se usar também uma subdivisão do conjunto de treinamento, criando um conjunto de validação, utilizado para verificar a eficiência da rede quanto a sua capacidade de generalização durante o treinamento, e podendo ser empregado como critério de parada do treinamento.

Depois de determinados estes conjuntos, eles são geralmente colocados em ordem aleatória para prevenção de tendências associadas à ordem de apresentação dos dados. Além disso, pode ser necessário pré-processar estes dados, através de normalizações, escalonamentos e conversões de formato para torná-los mais apropriados à sua utilização na rede.

3. Configuração da rede

O terceiro passo é a definição da configuração da rede, que pode ser dividido em três etapas:

3.1 Seleção do paradigma neural apropriado à aplicação.

3.2 Determinação da topologia da rede a ser utilizada - o número de camadas, o número de unidades em cada camada, etc.

3.3 Determinação de parâmetros do algoritmo de treinamento e funções de ativação. Este passo tem um grande impacto na performance do sistema resultante.

Existem metodologias, "dicas" e "truques" na condução destas tarefas. Normalmente estas escolhas são feitas de forma empírica. A definição da configuração de redes neurais é ainda considerada uma arte, que requer grande experiência dos projetistas.

4. Treinamento

O quarto passo é o treinamento da rede. Nesta fase, seguindo o algoritmo de treinamento escolhido, serão ajustados os pesos das conexões. É importante considerar, nesta fase, alguns aspectos tais como a inicialização da rede, o modo de treinamento e o tempo de treinamento.

Uma boa escolha dos valores iniciais dos pesos da rede pode diminuir o tempo necessário para o treinamento. Normalmente, os valores iniciais dos pesos da rede são números aleatórios uniformemente distribuídos, em um intervalo definido. A escolha errada destes pesos pode levar a uma saturação prematura. Nguyen e Widrow encontraram uma função que pode ser utilizada para determinar valores iniciais melhores que valores puramente aleatórios.

Quanto ao modo de treinamento, na prática é mais utilizado o modo padrão devido ao menor armazenamento de dados, além de ser menos suscetível ao problema de

Página 21 de 31Uma Introdução às Redes Neurais mínimos locais, devido à pesquisa de natureza estocástica que realiza. Por outro lado, no modo batch se tem uma melhor estimativa do vetor gradiente, o que torna o treinamento mais estável. A eficiência relativa dos dois modos de treinamento depende do problema que está sendo tratado.

Quanto ao tempo de treinamento, vários fatores podem influenciar a sua duração, porém sempre será necessário utilizar algum critério de parada. O critério de parada do algoritmo backpropagation não é bem definido, e geralmente é utilizado um número máximo de ciclos. Mas, devem ser considerados a taxa de erro médio por ciclo, e a capacidade de generalização da rede. Pode ocorrer que em um determinado instante do treinamento a generalização comece a degenerar, causando o problema de over-training, ou seja a rede se especializa no conjunto de dados do treinamento e perde a capacidade de generalização.

O treinamento deve ser interrompido quando a rede apresentar uma boa capacidade de generalização e quando a taxa de erro for suficientemente pequena, ou seja menor que um erro admissível. Assim, deve-se encontrar um ponto ótimo de parada com erro mínimo e capacidade de generalização máxima.

5. Teste

O quinto passo é o teste da rede. Durante esta fase o conjunto de teste é utilizado para determinar a performance da rede com dados que não foram previamente utilizados. A performance da rede, medida nesta fase, é uma boa indicação de sua performance real.

Devem ser considerados ainda outros testes como análise do comportamento da rede utilizando entradas especiais e análise dos pesos atuais da rede, pois se existirem valores muito pequenos, as conexões associadas podem ser consideradas insignificantes e assim serem eliminadas (prunning). De modo inverso, valores substantivamente maiores que os outros poderiam indicar que houve over-training da rede.

6. Integração

Finalmente, com a rede treinada e avaliada, ela pode ser integrada em um sistema do ambiente operacional da aplicação. Para maior eficiência da solução, este sistema deverá conter facilidades de utilização como interface conveniente e facilidades de aquisição de dados através de planilhas eletrônicas, interfaces com unidades de processamento de sinais, ou arquivos padronizados. Uma boa documentação do sistema e o treinamento de usuários são necessários para o sucesso do mesmo.

Além disso, o sistema deve periodicamente monitorar sua performance e fazer a manutenção da rede quando for necessário ou indicar aos projetistas a necessidade de retreinamento. Outras melhorias poderão ainda ser sugeridas quando os usuários forem se tornando mais familiares com o sistema, estas sugestões poderão ser muito úteis em novas versões ou em novos produtos.

Página 2 de 31Uma Introdução às Redes Neurais

7. Exemplo de Implementação

Para exemplificar o desenvolvimento de uma rede neural, tomemos o cálculo da função y é a raiz quadrada de x. Temos, então dois neurônios para a camada de entrada de dados, um de "bias" e outro de entrada efetiva; um neurônio para a saída e, de acordo com HECHT - KOLMOGOROV, três neurônios na camada oculta.

fig12-Representação para cálculo da função y

Seja os dados números entre 1 a 100 com suas respectivas raízes quadradas. Serão escolhidos aleatóriamente 10 números para a fase de testes e os restantes para a fase de treinamento.

O aprendizado começa com a aplicação de 5000 iterações à rede neural e em seguida é realizado testes, onde se compara os resultados obtidos com os valores reais. A diferença encontrada nesta comparação define o grau de ajuste que os dados obtidos pela rede neural deve sofrer, em relação aos dados reais.

Outras 5000 iterações são realizadas, dando segmento a fase de aprendizado, seguido de novos testes. Se a diferença entre os dados obtidos e os reais diminuiu, significa que o nível de aprendizado melhorou e que novas 5000 iterações serão aplicadas a fim de se refinar a rede. Caso contrário, a rede foi treinada em excesso, fazendo com que ela memorize os dados e não produza uma relação entre eles.

Comparando com uma criança na escola, digamos que a rede neural "decorou" a lição, os exercícios e não realmente "entendeu", "assimilou", cometendo erros em "exercícios" semelhantes aos que lhe foram apresentados, mas de valores alterados.

Após 30000 iterações de aprendizado, a rede neural informou o valor 5,942 para a

Página 23 de 31Uma Introdução às Redes Neurais raiz quadrada de 36, ou seja, um erro de aproximadamente 1%. Obviamente, para este caso, a rede neural não se mostrou mais eficiente que uma função sqrt de qualquer linguagem estruturada, mas pode-se perceber o poder de aprendizado e de exatidão de uma rede neural, se devidamente treinada.

(Parte 4 de 6)

Comentários