• Nenhum resultado encontrado

O ALGORITMO BACKPROPAGATION

2.4 REDES NEURAIS ARTIFICIAIS

2.4.1 REDE PERCEPTRON MULTICAMADA

2.4.1.2 O ALGORITMO BACKPROPAGATION

O algoritmo conhecido como BackPropagation é, atualmente, o mais difundido algoritmo para o treinamento de redes de múltiplas camadas. Este algoritmo baseia- se no aprendizado supervisionado por correção de erros (BACKPROPAGATION, 2011), que consiste em um aprendizado onde as saídas desejadas são fornecidas e, progressivamente, a rede tende a diminuir, através de ajustes de seus pesos, a diferença ou erro entre o valor obtido e a saída desejada fornecida no treinamento.

O BackPropagation tem seu funcionamento baseado em duas fases, sendo estas a propagação e a retropropagação.

Na primeira fase do algoritmo, tem-se a submissão da rede a uma entrada e a propagação das saídas dos neurônios para as camadas subseqüentes, até que se chegue à camada de saída, onde a resposta da rede referente àquela entrada é obtida. Pode-se, então, calcular o erro desta resposta em comparação ao valor fornecido no treinamento (BACKPROPAGATION, 2011). Na Figura 26, a fase de propagação do BackPropagation pode ser visualizada, com destaque para a propagação das saídas de cada neurônio para as camadas subsequentes.

Figura 26 – Fase de propagação do BackPropagation.

Fonte: Backpropagation (2011).

Na segunda fase do algoritmo, a retropropagação, é feito um ajuste dos pesos de forma a reduzir o erro relativo à comparação entre a saída desejada e a obtida com a rede. Este ajuste é feito partindo da camada de saída em direção à camada de entrada da rede e leva em consideração, se a camada em questão for uma

camada intermediária, o erro proveniente das camadas seguintes, ponderadas pelos pesos das conexões entre elas (ITO; SERRA, 1998).

Na Figura 27, a seguir, a fase de retropropagação do BackPropagation pode ser vista.

Figura 27 – Fase de retropropagação do BackPropagation.

Fonte: Backpropagation (2011).

O algoritmo do BackPropagation, por se basear na diferença entre a saída desejada e a obtida e tentar minimizar este erro existente entre elas, garante que a rede caminhe na direção de minimizar este erro. Apesar dos reveses do mesmo em relação ao tempo gasto no aprendizado, para aplicações de tamanho e simplicidade medianas, como a do atual problema, o uso deste algoritmo mostra-se adequado.

3 MATERIAIS E MÉTODOS

Foi adotada uma metodologia baseada, primeiramente, na realização de pesquisas e levantamento de materiais a respeito das principais técnicas de processamento de imagens digitais envolvidas no desenvolvimento, além das

técnicas de segmentação e de inteligência artificial empregadas, para que, posteriormente, fosse dada uma maior ênfase no desenvolvimento das rotinas de interesse para o trabalho.

A estruturação do projeto, embora não claramente delimitada, pode ser dividida em quatro grandes etapas, as quais englobam atividades que vão desde o levantamento bibliográfico, até a discussão dos resultados obtidos, conforme mostrado na Tabela 1.

Tabela 1 – Estruturação do trabalho em etapas.

Etapa 01 – Levantamento Bibliográfico

• Pesquisa Bibliográfica

• Identificação e estudo de projetos simila- res

• Identificação e compreensão a respeito de técnicas importantes ao desenvolvi- mento.

Etapa 02 – Estruturação do Ambiente de Desenvolvimento

• Identificação das tecnologias existentes para auxílio no desenvolvimento

• Identificação e escolha da linguagem de desenvolvimento

• Estudo e compreensão das tecnologias selecionadas para o desenvolvimento Etapa 03 – Desenvolvimento do Trabalho

• Levantamento dos requisitos e limitação do escopo do trabalho

• Implementação das rotinas da aplicação Etapa 04 – Avaliação dos resultados Validação e discussão dos resultados

obtidos Fonte: Próprio Autor

Como visto na Tabela 1, o desenvolvimento deste trabalho teve, inicialmente, uma maior ênfase no levantamento bibliográfico a respeito de projetos similares desenvolvidos e técnicas de interesse para o alcance dos objetivos.

Já na Etapa 02, foram buscadas tecnologias e técnicas existentes e utilizadas para o processamento de imagens digitais. Após o estudo e compreensão destas técnicas, fez-se, ainda nesta etapa, a seleção de quais seriam utilizadas no desenvolvimento, além da configuração do ambiente de trabalho, com a seleção da linguagem de desenvolvimento (Java), de bibliotecas para auxílio no processamento

de imagens (Java Advanced Imaging - JAI), na captura e trabalho com webcams (Java Media Framework - JMF) e, na montagem e treinamento de redes neurais (Neuroph). Por fim, foi selecionado o ambiente de desenvolvimento para a construção do software (Netbeans IDE 7.0).

A escolha, nesta etapa, da linguagem Java, se deu devido ao poder de construção desta linguagem, associado à sua simplicidade e com o prévio conhecimento desta durante o curso. O mesmo ocorreu com as bibliotecas JMF, Neuroph e JAI, que também possuem recursos que atendem às necessidades do trabalho proposto. A biblioteca JAI, tida como referência no processamento de imagens digitais em linguagem Java, contém inúmeras técnicas úteis, neste âmbito, as quais podem ser facilmente acessadas e utilizadas através de suas rotinas. Já a biblioteca JMF, de maneira análoga, é utilizada para auxílio com dispositivos como câmeras e microfones, sendo de grande valor no tocante à aquisição e manipulação de arquivos de som e vídeo em linguagem Java. Já quanto a biblioteca Neuroph, foi estudada a sua documentação e pôde ser percebido que esta contém as rotinas essenciais para o desenvolvimento da arquitetura de rede selecionada, assim como o seu treinamento. Por fim, a escolha do ambiente Netbeans seguiu o mesmo princípio de familiaridade, adicionando o fato de este possuir recursos voltados ao desenvolvimento de interfaces gráficas, úteis para o desenvolvimento da proposta aplicação.

A Etapa 03 representou o desenvolvimento, de fato, da aplicação. Esta etapa foi iniciada com o levantamento dos requisitos do trabalho, os quais foram modelados como rotinas do software desenvolvido. Estas variam desde as funções de aquisição das imagens provenientes da webcam, até as mais variadas rotinas de processamento e segmentação de imagem. É válido salientar que, ainda nesta etapa, foram desenvolvidas e treinadas as redes neurais para a identificação de gestos por parte do usuário, juntamente com as respostas dadas a cada um deles.

Por fim, a Etapa 04 consistiu na validação e discussão dos resultados obtidos com o desenvolvimento do presente projeto. Como estratégia de validação, optou-se pela análise através de um estudo de caso composto por um cenário: integração das rotinas implementadas ao projeto Lousa Digital Interativa, desenvolvido por estudantes da instituição Universidade Estadual de Feira de Santana para a disciplina Projeto Anual. Este projeto possui caráter similar ao desenvolvido neste trabalho, propondo, de igual forma, o desenvolvimento de um software de lousa

digital de baixo custo, porém, diferindo do mesmo no tocante ao escopo e técnicas empregadas. Em seguida, pôde ser feita a análise e discussão dos resultados obtidos, além do levantamento de possíveis trabalhos futuros.

Documentos relacionados