utilização de técnicas inteligentes para a detecção de melanoma: uma abordagem baseada em redes...

65
Utiliza¸ ao de T´ ecnicas Inteligentes para a Detec¸ ao de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU Tiago Alves de Oliveira

Upload: tiago-alves-de-oliveira

Post on 29-Jul-2015

38 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Utilizacao de Tecnicas Inteligentes para a

Deteccao de Melanoma: Uma Abordagem

Baseada em Redes Neurais Artificiais e

GPGPU

Tiago Alves de Oliveira

Page 2: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

PROJETO DE CONCLUSAO DE CURSO

Data de Deposito: 03 de dezembro de

2010

Assinatura:

Utilizacao de Tecnicas Inteligentes para a Deteccao de

Melanoma: Uma Abordagem Baseada em Redes Neurais

Artificiais e GPGPU

Tiago Alves de Oliveira

Michel Pires da Silva

Monografia apresentada ao Curso de Ciencia da Computacao do

UNIFOR-MG, como requisito parcial para obtencao do tıtulo de

bacharel em Ciencia da Computacao, sob a orientacao do Prof. Michel

Pires da Silva

Formiga – MG

07 de dezembro de 2010

Page 3: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Dedico este trabalho primei-

ramente a Deus, aos meus

pais Geraldo e Maria e em

especial, a Juliana Apare-

cida Silva.

Page 4: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Agradecimentos

Agradeco primeiramente a Deus, pois sem Ele, nada seria possıvel e nao estaria aqui

desfrutando desse momento que e tao importante para mim.

Aos meus pais Geraldo e Maria; pelo esforco, dedicacao e compreensao, em todos os

momentos desta e de outras caminhadas, mostraram-me o caminho certo e me apoiaram em

tudo.

Em especial, aos meus grandes amigos Christino da Costa Guimaraes, Davi Geraldo

Antonio Lima, Izaquiel Lopes de Bessas, Mauro Heleno de Freitas Jr, Walisson Maicon Silva

e Wander Inacio de Sousa, por sua confianca e credibilidade em minha pessoa, pelo mutuo

aprendizado de vida, durante nossa convivencia, no campo profissional e escolar. Amigos,

gratidao eterna!!!

Aos professores, especialmente ao Professor Msc. Michel Pires da Silva, pela contribui-

cao, dentro de suas areas, para o desenvolvimento dessa monografia, e, principalmente pela

dedicacao e empenho que demonstraram no decorrer de suas atividades para com o grupo.

A todos aqueles que, direta ou indiretamente, colaboraram para que este trabalho consigaatingir aos objetivos propostos.

Page 5: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

”Ignis de lapide surgit mediante labore. ”

Com trabalho tudo se alcanca

Autor Desconhecido

Page 6: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Sumario

Lista de Figuras ii

Lista de Tabelas iv

1 Introducao 1

1.1 Objetivo do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Estrutura da monografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Estado da Arte 4

2.1 Consideracoes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3 Consideracoes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Cancer 6

3.1 Cancer de Pele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Processamento de Imagens 9

4.1 Representacao de Imagens Digitais . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.1.1 Amostragem e Quantizacao . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2 Conceitos Basicos de Pixels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2.1 Vizinhanca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2.2 Conectividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.2.3 Caminho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.2.4 Componente Conexo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.2.5 Relacao Binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.2.6 Medidas de Distancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.3 Etapas do Processamento de Imagens . . . . . . . . . . . . . . . . . . . . . . . . 15

4.4 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

i

Page 7: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

5 Caracterizacao de Imagens 17

5.1 Caracterizacao de Imagens atraves das Cores . . . . . . . . . . . . . . . . . . . . 17

5.1.1 Fundamento de Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.1.2 Sistemas de Representacao de Cores RGB e CMY . . . . . . . . . . . . . 18

5.2 Histograma de Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.3 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

6 Redes Neurais Artificiais 22

6.1 Redes Neurais Biologicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

6.2 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6.2.1 Neuronio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

6.3 Arquitetura das Redes Neurais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.4 Processos de Aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6.4.1 Algoritmos de Aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . 30

6.5 Paradigmas de Aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.5.1 Algoritmo de Aprendizado Supervisionado do Multilayer Perceptron . . . 33

6.6 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

7 CUDA 36

7.1 Arquitetura CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

7.2 Programacao CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.3 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

8 Utilizacao de RNA e GPGPU para reconhecimento de Melanoma 41

8.1 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

9 Resultados 47

9.1 Consideracoes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

10 Conclusoes 51

10.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

ii

Page 8: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Lista de Figuras

3.1 ABCD do Melanoma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4.1 Eixos para representacao de imagens digitais . . . . . . . . . . . . . . . . . . . . 10

4.2 Efeitos da variacao dos parametros: (a)256 x 256 / 256 nıveis; (b)32 x 32 / 256

nıveis; (c)256 x 256 / 64 nıveis; (d)256 x 256 / 2 nıveis. . . . . . . . . . . . . . . 12

4.3 Exemplificacao da Vizinhanca de 4 e Vizinhanca de 8 de um pixel . . . . . . . . 13

4.4 Etapas fundamentais para o processamento de imagens digitais . . . . . . . . . . 15

5.1 Espectro Visıvel das cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.2 Cubo representando o espaco de cores RGB . . . . . . . . . . . . . . . . . . . . 19

5.3 Exemplos de histogramas de cores de uma mesma imagem. . . . . . . . . . . . . 20

5.4 Exemplos de imagem low key e high key . . . . . . . . . . . . . . . . . . . . . . 21

6.1 Modelo de um neuronio biologico . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6.2 Modelo de um neuronio matematico. Fonte (HAYKIN, 2007) . . . . . . . . . . . 25

6.3 Grafico da funcao de limiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.4 Grafico da funcao linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.5 Grafico da funcao sigmoide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.6 Rede com uma unica camada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.7 Rede com uma camada intermediaria . . . . . . . . . . . . . . . . . . . . . . . . 29

6.8 Rede Recorrente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

7.1 Diferenca da especificacao dos processadores na CPU e na GPU . . . . . . . . . 37

7.2 A arquitetura runtime da CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.3 Exemplificacao da thread Batching da CUDA . . . . . . . . . . . . . . . . . . . 40

8.1 Solucao hıbrida para a reducao do tempo de treinamento da RNA com a CUDA 42

9.1 Resultados da leitura de imagens de 1MB utilizando o CPU e o GPU . . . . . . 48

9.2 Resultados da leitura de imagens de 5 MB utilizando o CPU e o GPU . . . . . . 49

iii

Page 9: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

9.3 Resultados da leitura de imagens de 10 MB utilizando o CPU e o GPU . . . . . 50

9.4 Resultados do treinamento utilizando o CPU e o GPU . . . . . . . . . . . . . . 50

iv

Page 10: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Lista de Tabelas

9.1 Execucao do histograma de imagens de tamanho de 1 MB na CPU e GPU. . . . 48

9.2 Execucao do histograma de imagens de tamanho de 5 MB na CPU e GPU. . . . 48

9.3 Execucao do histograma de imagens de tamanho de 10 MB na CPU e GPU. . . 49

9.4 Execucao do treinamento da rede neural na CPU e GPU. . . . . . . . . . . . . . 49

v

Page 11: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Resumo

OLIVEIRA, T. A. Utilizacao de tecnicas inteligentes para a deteccao de melanoma: uma abordagem

baseada em redes neurais artificiais e GPGPU. (Graduacao) — Centro Universitario de Formiga –

UNIFOR-MG – Formiga, 2010.

Sistemas Distribuıdos e computacao paralela vem sendo utilizados para os mais diversos pro-

positos. O atrativo para tanto esta na sua capacidade de prover alto desempenho sobre uma

arquitetura transparente e flexıvel a nıvel de usuario. Areas, tais como, a ciencia da computacao

e a medicina aplicam esses conceitos para a obtencao de resultados em tempo computacional

viavel. Exemplos disso podem ser observados em trabalhos direcionados para o processamento

do genoma humano, tomografia computadorizada, dentre outros. Neste contexto, tem-se como

objetivo deste trabalho o desenvolvimento de uma ferramenta capaz de detectar de forma pre-

coce o cancer de pele melanoma. Para tanto, serao utilizados conceitos de redes neurais ar-

tificiais combinadas ao processamento paralelo de imagens em GPGPU visando alta vazao e

desempenho computacional. Os resultados destes demonstram que a utilizacao de paralelizacao

melhora o treinamento da rede e a leitura das imagens. Conclui-se com isso que a utilizacao de

GPGPU auxilia no processo classificatorio de Melanoma.

Palavras-chave: Tecnicas Inteligentes, Redes Neurais Artificiais, Programacao Paralela, GPGPU,

Processamento de Imagens, Histograma de Cores.

vi

Page 12: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

1Introducao

O uso de tecnicas computacionais esta se tornando, cada vez mais, comum em diversas areas

do conhecimento. Isso ocorre devido ao alto tempo exigido no processo de obtencao de bons

resultados para muitos casos reais. Na computacao, tecnicas como, heurısticas, metaheurısticas,

inteligencia artificial e computacao natural, muitas vezes, sao empregadas visando melhorar esse

desempenho e obter resultados significativos.

A inteligencia artificial e a computacao evolutiva, por exemplo, auxiliam nesse segmento

simulando o comportamento humano para a busca de alternativas viaveis para problemas com-

plexos ao custo de um baixo tempo computacional. Os algoritmos geneticos e as redes neurais

artificiais sao exemplos disso.

Segundo Haykin (2007), as redes neurais artificiais (RNA) apresentam dentre suas caracterıs-

ticas modelos matematicos que se assemelham as estruturas neurais biologicas. Essas estruturas

apresentam a capacidade computacional adquirida por meio de aprendizado e generalizacao de

estruturas chamadas de neuronios. O neuronio, por sua vez, e a unidade de processamento

de informacao que e fundamental para a operacao da rede. Nele, tem-se uma funcao de ati-

vacao, que restringe a amplitude da saıda do neuronio durante o treinamento. Essa funcao e

aplicada junto a mecanismos como o backpropagation para o treinamento da rede. No entanto,

dependendo do problema, sua aplicacao e prejudicada por demandar muito tempo e alto poder

computacional.

A utilizacao de sistemas distribuıdos e computacao paralela pode melhorar o tempo de

treinamento deste mecanismo, assim, torna-se alvo de varias pesquisas da atualidade. A com-

putacao paralela e uma forma de computacao em que varios calculos sao realizados simulta-

neamente, operando sob o princıpio de que grande problemas geralmente podem ser divididos

em problemas menores, que entao sao resolvidos concorrentemente (em paralelo) (KIRK; HWU,

2010). Existem diferentes formas de computacao paralela: em bit, instrucao, de dado ou de

1

Page 13: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

tarefa. Uma maneira de programacao paralela e a baseada em GPGPU. A computacao pa-

ralela baseada em general-purpose computing on graphics processing units (GPGPU), ou , na

traducao livre Computacao Geral em Unidades de Processamento Grafico aproveita do poder

de paralelismo nos processadores graficos para efetuar calculos que gastariam muito tempo em

um processador normal. Ressalva-se que no modelo tradicional, a GPU somente e utilizada

para processar e gerar imagens e que no novo paradigma ela tem a possibilidade de executar

multiplos calculos, os quais, em paralelo, visto que a mesma possui SP (stream processor) sao

realizados ao mesmo tempo. Ela se torna recomendada para calculos pesados, processamento

de imagens, computacao grafica, jogos, entre outros nas mais diversas areas (NVIDIA, 2010).

O processamento de imagens e a forma de processamento de dados cuja a entrada e saıda sao

imagens, tais como, fotografias ou quadros de vıdeo. Dentre suas tecnicas tem-se a resolucao de

imagem, limite dinamico, largura de banda, filtro, operador diferencial, histograma, deteccao de

borda e a reducao de ruıdo. Dentre essas tecnicas, o histograma de cores e uma representacao

grafica da distribuicao de frequencias de uma massa de medicoes, normalmente um grafico de

barras verticais, que neste trabalho foi utilizado para a obtencao dos dados de entrada.

Neste trabalho, para a obtencao dos valores de entrada utiliza-se a tecnica de histograma de

cores para a leitura da imagem utilizando-se de GPGPU. Alem disso, aborda-se os conceitos de

redes neurais artificiais e GPGPU para alcancar resultados expressivos no processo de avaliacao

e deteccao do cancer de pele – melanoma. Objetiva-se com isso, reduzir de forma expressiva o

tempo computacional gasto para a leitura das imagens e o treinamento da rede paralelizando

estas fases.

1.1 Objetivo do trabalho

O objetivo geral deste trabalho e a deteccao de melanoma atraves de imagens para diagnos-

ticos, atraves de tecnicas de processamento de imagens e redes neurais artificiais em paralelo.

A seguir serao descritos os objetivos especıficos:

• Aplicar tecnicas de processamento de imagens digitais para desenvolver uma solucao a

partir do problema descrito;

• Utilizar as redes neurais artificiais para avaliar as imagens de cancer de pele Melanoma;

• Estudar e utilizar paralelismo nas duas tecnicas citadas anteriormente para melhora do

tempo de treinamento da Rede Neural Artificial e sua obtencao de resultados;

• Auxiliar profissionais da saude na deteccao do cancer de pele do tipo Melanoma, maxi-

mizando as chances e a qualidade de vida dos pacientes.

1.2 Estrutura da monografia

Este trabalho e composto por dez capıtulos. No Capıtulo 2 sao apresentados trabalhos

relacionados com o objetivo deste trabalho. O Capıtulo 3 e enfatizado sobre o Cancer de Pele.

2

Page 14: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Ja o Capıtulo 4 denota algumas definicoes de Processamento de Imagens. Continuando, o

capıtulo 5 mostra a Caracterizacao de Imagens. No capıtulo 6 apresenta-se os conceitos sobre

Redes Neurais Artificiais. O capıtulo 7 e mostrado a tecnologia CUDA. No capıtulo 8 descreve-

se o desenvolvimento do projeto em si. No capıtulo 9 apresenta-se testes e os resultados obtidos.

Por fim, o Capıtulo 10 apresenta as conclusoes deste trabalho e os trabalhos futuros.

3

Page 15: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

2Estado da Arte

2.1 Consideracoes iniciais

As redes neurais sao utilizadas para os mais diversos fins. Na literatura, existem trabalhos

que as utilizam para o reconhecimentos de padroes. Os trabalhos de Botelho (2007), Bittencourt

(2009), Nageswaran et al. (2009), Raizer et al. (2009) sao alguns desses. Estes trabalhos serao

relatados na secao a seguir.

2.2 Trabalhos Relacionados

No trabalho de Botelho (2007), foi utilizado o processamento de imagem e uma RNA Per-

ceptron, de treinamento supervisionado, para a deteccao de Melanoma. Apos o treinamento,

os resultados mostraram que a media total de acertos da RNA se estabilizou em uma taxa

de 69%. Observa-se a partir desses que a probabilidade de erro se mantem em cerca de 31%,

gerando uma quantidade de erros muito alta. Isto pode ter sido causado pelo baixo tempo

de treinamento (a rede foi treinada poucas epocas) e/ou pela quantidade de dados de entrada

relativamente pequena. Neste contexto, pode-se concluir, a partir do trabalho apresentado, que

o tempo de treinamento exigido para a obtencao de resultados realmente significativos demanda

de muito esforco e alto poder computacional, utilizando-se redes neurais.

Ja no trabalho de Bittencourt (2009) foi utilizado o processamento de imagem juntamente

com uma RNA do tipo Mutilayer Perceptron (MLP) para obtencao de uma classificacao dos

nıveis de gordura na carcaca bovina. Os testes de avaliacao de desempenho da RNA proposta

apresentaram 86% de acuracia para a tarefa de classificacao do acabamento da carne bovina.

Os resultados apresentados demonstram que, em alguns casos, a utilizacao de um baixo numero

4

Page 16: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

de amostras pode trazer boas avaliacoes para processos classificatorios.

Uma vez que o tempo de treinamento e aprioramento da RNA pode prejudica-la, como visto

nos trabalhos acima apresentados, Nageswaran et al. (2009) gera como contribuicao para o caso

geral a aplicacao da computacao paralela como forma de melhoria na obtencao de resultados. No

trabalho de Nageswaran et al. (2009), e apresentado um conjunto de novas tecnicas relacionadas

a extracao de paralelismo, mapeamento de comunicacao irregular, e representacao de rede

compacta para simulacao eficaz de uma RNA do tipo Spiking Neural Network (SNN) executando

sobre a arquitetura de GPU. A fidelidade dos resultados da simulacao foram comprovados por

meio de execucoes feitas na CPU utilizando taxa de aprendizado, distribuicao do peso sinaptico

e intervalo maximo de analise iguais para ambas as arquiteturas. A implementacao na GPU

apresentou-se vinte e quatro vezes mais rapida que a versao da CPU.

Ja no trabalho de Raizer et al. (2009) foi apresentado uma Feedforward Multi-Layer Percep-

tron (FFMLP) executada sobre GPGPU utilizando-se do ambiente CUDA. Os testes realizados

avaliaram diferentes configuracoes de RNA cujo fator de modificacao se centralizou na com

quantidades de neuronios. Os testes realizados demonstraram que o uso de GPU pode prover

benefıcios quando o numero de neuronios em camadas intermediarias e relativamente grande.

Enfatiza-se que o princıpio das redes neurais e o processamento paralelo e distribuıdo e como o

princıpio da programacao em GPGPU e paralelizar os processamento de dados, a sua utilizacao

e altamente viavel, pois ha um volume elevado e significativo de processamento nas RNA.

2.3 Consideracoes finais

Observando os avancos das pesquisas anteriormente citadas, neste trabalho pretende-se uti-

lizar dos recursos de GPGPU e redes neurais artificiais para a classificacao e identificacao do

cancer melanoma. Objetiva-se com isso obter resultados expressivos a partir da melhoria do

processo de treinamento das RNA’s. No proximo capıtulo e apresentado alguns conceitos fun-

damentais do melanoma, juntamente com definicoes de cancer, para a sua deteccao que sera

abordada logo em seguida.

5

Page 17: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

3Cancer

Cancer e o nome dado a um conjunto de mais de cem doencas que tem em comum o cresci-

mento desordenado (maligno) de celulas que invadem os tecidos e orgaos, podendo espalhar-se

(metastase) para outras regioes do corpo. Tais doencas tendem, em sua maioria, a serem ex-

tremamente agressivas e deixarem sequelas irreversıveis no ser humano. Assim, quanto mais

cedo for feito a sua identificacao, maiores sao as possibilidades de tratamento e cura (Instituto

Nacional do Cancer, 2010).

3.1 Cancer de Pele

O cancer de pele se caracteriza pelo crescimento autonomo e desordenado das celulas que

compoem a pele. Em alguns casos, estas celulas adquirem a capacidade de disseminar-se (metas-

tase) para outros tecidos e orgaos do corpo, dificultando o tratamento. Como a pele e formada

por mais de um tipo de celula, tem-se diferentes tipos de canceres de pele, dentre eles os mais

comuns sao o Carcinoma Basocelular, o Carcinoma Espinocelular e o Melanoma.

O Carcinoma Basocelular e o tumor maligno cutaneo mais frequente, compreendendo cerca

de 75% dos diagnosticos, porem, e de baixa letalidade devido a facilidade de identificacao e,

principalmente, pelo fato de raramente apresentar metastase. Na maioria das vezes, localiza-se

na regiao da cabeca e do pescoco, acomete pessoas com mais de 40 anos de idade, de pele

clara e com historico de exposicao frequente ao sol (MARTINEZ et al., 2006). O Carcinoma

Basocelular origina-se nas celulas da camada basal da epiderme e e caracterizado pela formacao

de lesoes (feridas ou nodulos) de crescimento lento. Apesar de raramente apresentar metastase,

pode ser localmente destrutivo se descoberto tardiamente. O tratamento e realizado atraves de

procedimentos cirurgicos para a retirada do tumor e, se necessario, emprega-se a radioterapia.

Ja o Carcinoma Espinocelular representa 20% dos diagnosticos de neoplasias cutaneas e

6

Page 18: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

origina-se nos queratinocios (celulas produtoras de queratina) da epiderme, podendo tambem

surgir no tecido epitelial que cobre mucosas (MARTINEZ et al., 2006). Causa mais mortes que o

carcinoma basocelular, visto que apresenta maior possibilidade de produzir metastase, fato este

que torna o diagnostico precoce muito importante para a cura. O Carcinoma Espinocelular

caracteriza-se pela formacao de feridas de rapida evolucao, que muitas vezes vem acompanha-

das de secrecao e coceira. Tende a desenvolver-se em areas previamente inflamadas ou com

cicatrizes e a localizar-se em regioes expostas do corpo como, por exemplo, pescoco e cabeca

(principalmente no labio inferior, nariz e orelhas). O tratamento e feito basicamente atraves de

cirurgia, radioterapia e se preciso, quimioterapia.

O Melanoma e a neoplasia cutanea de menor incidencia, porem de maior letalidade devido a

dificuldade de identificacao e a formacao de metastases. Este tumor origina-se nos melanocitos

(celulas produtoras de melanina) e pode surgir em varias regioes do corpo, fato que torna a

exposicao solar excessiva apenas uma de suas causas. Outros fatores de risco sao determinados

pela existencia de lesoes pigmentadas irregulares, presenca de nevos (pintas) transformados,

historico familiar de melanoma e pigmentacao clara da pele (MARTINEZ et al., 2006). Apesar

do melanoma ser o cancer de pele mais letal, se identificado precocemente e removido cirur-

gicamente, a probabilidade de cura tera um aumento significativo. Entretanto, para que isto

aconteca e necessario saber reconhecer as caracterısticas que o identificam.

Existem quatro caracterısticas padroes que sao conhecidas como ABCD do melanoma, cuja

as letras referem-se a:

• Assimetria;

• Bordas Irregulares;

• Coloracao Irregular;

• Diametro superior a 6 mm

Um exemplo de tais caracterısticas pode ser observado na Figura 3.1.

Figura 3.1: ABCD do Melanoma.

7

Page 19: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

3.2 Consideracoes Finais

A deteccao do melanoma e feita essencialmente atraves de exames de avaliacao de imagens,

que sao classificadas atraves do ABCD do melanoma. Para obter imagens de melhor qualidade e

forma o banco de caracterısticas delas, e utilizado o processamento de imagens que basicamente

consiste no tratamento de imagens para poder utiliza-las. No proximo capıtulo e demonstrado

alguns desses conceitos.

8

Page 20: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

4Processamento de Imagens

O processamento de imagens consiste em um conjunto de tecnicas para capturar, representar

e transformar uma figura com o auxılio do computador (PEDRINI; SCHWARTZ, 2007), que podem

ser capturadas por dispositivos imageadores. Esses capturadores podem ser cameras digitais,

scanners, tomografos, sensores infravermelhos, entre outros.

O processamento de imagens digitais evoluiu intensamente e hoje possui diversas aplicacoes,

entre elas encontram-se: interpretacao de raios-X e outras imagens medicas, monitoramento de

plantacoes, queimadas e desmatamentos, restauracao de imagens antigas, reconhecimento de

padroes e outras (GONZALES; WOODS, 2000). Com isso, a medida que os equipamentos graficos

(placas de vıdeo e monitores) e os computadores (CPU) ficam mais poderosos e mais baratos,

a quantidade de aplicacoes aumenta.

A area processamento de imagens divide-se em categorias fundamentais (CONCI; AZEVEDO;

LETA, 2008), que sao:

• Realce de imagens: utilizado para melhorar as propriedades visuais de uma imagem,

tornando-a mais apropriada para uma aplicacao especıfica;

• Restauracao de imagens: tem por objetivo reconstruir ou recuperar uma imagem danifi-

cada;

• Analise de imagens, que busca extrair informacoes ou caracterısticas a partir de uma

imagem

A utilizacao de tecnicas incluıdas em mais de uma categoria para alcancar um resultado

satisfatorio e necessaria muitas vezes. Contudo, antes de executar qualquer processamento

em uma imagem precisa-se digitaliza-la, o que permitira a manipulacao de seus elementos.

Nessa sessao e abordada a representacao de imagens digitais, juntamente com diversos conceitos

9

Page 21: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

fundamentais relacionados com a manipulacao de seus elementos. Alem disso, sera apresentado

uma visao geral sobre os passos fundamentais realizados ao se processar imagens(PEDRINI;

SCHWARTZ, 2007).

4.1 Representacao de Imagens Digitais

A representacao de uma imagem digital pode ser considerada como sendo a discretizacao

de uma funcao bidimensional de intensidade da luz f(x, y), onde x e y sao a sua coordenada no

plano e o valor de f em qualquer ponto (x, y) representa o brilho ou o nıvel de cinza daquele

ponto. A cada ponto da imagem e denominado elemento da imagem ou pixel (abreviatura

para picture elements). O posicionamento dos eixos x e y em uma imagem pode ser visto na

Figura 4.2.

Figura 4.1: Eixos para representacao de imagens digitais

A geracao de uma imagem pode ser afetada por dois fatores: a iluminacao, i(x, y), que e a

quantidade de luz incidindo na cena e a reflectancia, r(x, y), correspondente a quantidade de

luz refletida pelos objetos na cena. O produto de i(x, y) por r(x, y) resulta em f(x, y):

f(x, y) = i(x, y)r(x, y) (4.1)

onde

0 < i(x, y) <∞ (4.2)

10

Page 22: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

e

0 < r(x, y) < 1. (4.3)

A refletancia, representada pela equacao 4.3, possui valores entre 0, que indica absorcao

total da luz e 1, que indica refletancia total. Com isso, a iluminacao i(x, y) e determinada

pela fonte emissora de luz, e r(x, y) e determinada pelas caracterısticas do objeto presente na

cena. Em imagens digitais, para que a funcao f(x, y) seja adequada para o processamento

computacional, ela precisa ser digitalizada tanto espacialmente quanto em amplitude atraves

dos metodos de Amostragem e Quantizacao(PEDRINI; SCHWARTZ, 2007).

4.1.1 Amostragem e Quantizacao

Os processos de Amostragem e Quantizacao sao empregados na digitalizacao de uma ima-

gem, ou seja, modifica-la de forma que ela possa ser armazenada e processada em um computa-

dor. O processo de Amostragem e definido pela digitalizacao das coordenadas espaciais (x, y)

da imagem, enquanto o processo de Quantizacao consiste na digitalizacao dos valores de brilho,

ou amplitude, da imagem (GONZALES; WOODS, 2000).

Como exemplo, pode-se supor que uma imagem contınua f(x, y) e aproximada por amostras

igualmente espacadas, arranjadas na forma de uma matriz MxN como pode ser conferido na

equacao 4.4, em que cada elemento e uma quantidade discreta:

f(x, y) ≈

f(0, 0) f(0, 1) ... f(0,M − 1)

f(1, 0) f(1, 1) ... f(1,M − 1)

.

.

.

f(N − 1, 0) f(N − 1, 1) ... f(N − 1,M − 1)

(4.4)

Considerando uma matriz monocromatica, cada elemento e uma aproximacao do nıvel de

cinza da imagem no ponto amostrado para um valor no conjunto 0, 1, ..., L− 1, onde 0 corres-

ponde ao preto e L − 1 corresponde ao branco. Os pixels entre estes valores terao diferentes

nıveis de cinza, sendo que quanto mais proximo ao valor 0, mais escuro sera.

Uma imagem no formato digital corresponde a uma aproximacao de uma imagem analogica

da qual ela foi obtida. Com isso, a qualidade da imagem (aproximacao) dependera essencial-

mente dos valores de N, M e L usados. Geralmente, quanto maiores estes parametros, melhor a

qualidade da digitalizacao. Consequentemente, maior sera o numero de bits que serao necessario

para a codificacao binaria da imagem, visto que:

b = M x N x l (4.5)

Onde N ×M corresponde a dimensao nos eixos x e y da imagem e l e o menor inteiro tal

que o conjunto de nıveis de cinza L ≤ 2l. A variacao destes valores resulta na modificacao da

qualidade da imagem, como pode ser observado na Figura 4.2. Diversas alteracoes realizadas

11

Page 23: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

em imagens resultam na modificacao de seus pixels e, para alcancar um resultado satisfatorio

atraves das diversas tecnicas existentes torna-se necessario o conhecimento de conceitos basicos

relacionados aos pixels(AZEVEDO; CONCI, 2003).

Figura 4.2: Efeitos da variacao dos parametros: (a)256 x 256 / 256 nıveis; (b)32 x 32 / 256nıveis; (c)256 x 256 / 64 nıveis; (d)256 x 256 / 2 nıveis.

4.2 Conceitos Basicos de Pixels

Sendo os pixels a unidade basica para a formacao de imagens, o conhecimento sobre a re-

lacao entre estes torna-se util para a sua manipulacao, visto que cada ponto (x, y) na imagem

representa um pixel. Ao se realizar um processamento de uma imagem, manipula-se os seus

pixels e, para que esta manipulacao seja adequada ao seu deve-se conhecer os relacionamentos

existentes entre eles. As subsecoes subsequentes apresentam alguns conceitos basicos realiza-

dos aos pixels, os quais sao bastante uteis no processamento de imagens digitais (GONZALES;

WOODS, 2000).

4.2.1 Vizinhanca

Em uma imagem digitalizada, um pixel p nas coordenadas (x, y) possui quatro vizinhos

horizontais e verticais, cujas coordenadas sao definidas por:

(x+ 1, y), (x− 1, y), (x, y + 1), (x, y − 1) (4.6)

A esse conjunto de pixel e chamado de vizinhanca–de–4 de p e pode ser representado por

N4p. Existem tambem os quatro vizinhos diagonais de p possuem como coordenadas:

(x+ 1, y + 1), (x+ 1, y − 1), (x− 1, y + 1), (x− 1, y − 1) (4.7)

12

Page 24: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

e podem ser representados por NDp. A uniao dos vizinhos diagonais com a vizinhanca–de–4

tem-se a chamada vizinhanca-de-8 (N8(p)). A Figura 4.3 denota essas definicoes.

(a) Vizinhanca de 4 do pixel X (b) Vizinhanca de 8 do pixel X

Figura 4.3: Exemplificacao da Vizinhanca de 4 e Vizinhanca de 8 de um pixel

Destaca-se que a vizinhanca pode ser ampliada de acordo com a aplicacao e que em certas

posicoes como, por exemplo, nas bordas de uma imagem, um pixel p nao tera alguns de seus

vizinhos. Com isso, ao ser aplicado alguma tecnica de processamento de imagens, deve-se

efetuar modificacoes ao se trabalhar com as bordas com o objetivo de se obter um resultado

uniforme na imagem, nao deixando que nenhum pixel da borda fique sem a alteracao desejada.

4.2.2 Conectividade

Dois pixels p1 e p2 podem ser chamados de conectados quando satisfazem a dois criterios. O

primeiro diz que os pixels devem ser adjacentes, ou seja, devem ser vizinhos–de–8. O segundo

diz que os pixels devem atender a algum criterio especıfico de classificacao, como por exemplo,

seus nıveis de cinza devem ser iguais (GONZALES; WOODS, 2000).

Para exemplificar o conceito de conectividade, pode-se usar como exemplo uma imagem

binaria (com apenas valores 0 e 1), na qual dois de seus pixels vizinhos–de–4 so serao conec-

tados se seus valores forem iguais. Ressalta-se que o conceito de conectividade e importante

para estabelecer as bordas dos objetos e os componentes de regioes de uma imagem(PEDRINI;

SCHWARTZ, 2007).

4.2.3 Caminho

Um caminho entre os pixels p0, representado por p0 = (x0, y0), e pn, representado por

pn = (xn, yn), e uma sequencia de pixels distintos com coordenadas (x0, y0), (x1, y1), ..., (xn, yn),

onde n corresponde ao comprimento do caminho e, (xi, yi) e (xi − 1, yi − 1), com i = 1, 2, ...n,

sao adjacentes. A definicao de caminho e importante para a determinacao dos componentes

conexos em uma imagem.

13

Page 25: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

4.2.4 Componente Conexo

Dado um subconjunto S de uma imagem e dois pixels p1 e p2 contidos neste subconjunto,

entao, pode-se dizer que p1 estara conectado a p2 em S se existir um caminho entre p1 e p2

consistindo somente de pixels de S. Com isso, o componente conexo sera o conjunto de pixels

em S que estao conectados a p1, para qualquer pixel p1 em S (GONZALES; WOODS, 2000).

Ressalta-se que em um componente conexo, quaisquer dois pixels estao conectados um ao outro

e os componentes conexos distintos sao disjuntos.

4.2.5 Relacao Binaria

Seja uma imagem A ou um componente conexo da imagem. Entao, uma Relacao Binaria R

sobre a imagem A sera um conjunto de pares de elementos contidos em A (CONCI; AZEVEDO;

LETA, 2008). Quando um par (a, b) esta em R, comenta-se que a esta relacionado a b (aRb).

Alem disso, uma relacao binaria R sobre A pode ser do tipo:

• Reflexiva: Para cada a em A, aRa.

• Simetrica: Para cada a e b em A, aRb implica em bRa.

• Transitiva: Para cada a, b e c em A, aRb e bRc implica que aRc.

Quando uma relacao binaria satisfazer estas tres propriedades, ela recebe o nome de Relacao

de Equivalencia. A relacao binaria e utilizada para ilustrar e verificar conceitos de relacoes e

equivalencias entre as imagens e componentes conexos (atraves do relacionamento entre os pixels

das imagens).

4.2.6 Medidas de Distancia

Ao se manipular imagens digitais e muito comum a utilizacao de medidas de distancia.

Considerando os pixels p1, p2 e p3, com coordenadas (x1, y1), (x2, y2) e (x3, y3) respectivamente,

D corresponde a uma funcao de distancia se (GONZALES; WOODS, 2000):

1. D(p1, p2) ≤ 0.

2. D(p1, p2) = D(p2, p1).

3. D(p1, p3) ≥ D(p1, p2) +D(p2, p3).

A partir destas tres condicoes pode-se obter algumas medidas de distancia. Dentre elas, a

mais referenciada e a Distancia Euclidiana, representada pela equacao 4.8. Alem da Distancia

Euclidiana, tem-se a Distancia D4 (ou Distancia City Block) e a Distancia D8 (ou Distancia

Xadrez), representadas, respectivamente, pelas equacoes 4.9 e 4.10.

De(p1, p2) =√

(x1− x2)2 + (y1− y2)2 (4.8)

14

Page 26: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

D4(p1, p2) = |x1− x2|+ |y1− y2| (4.9)

D8(p1, p2) = max(|x1− x2|, |y1− y2|) (4.10)

Essas medidas de distancia sao frequentemente usadas para verificar a similaridade entre

imagens. Quanto menor a distancia entre os pixels das imagens, maior sera a semelhanca entre

elas. Entretanto, calcular a distancia pixel a pixel pode requerer um tempo computacional

elevado e de muito processamento computacional se as imagens forem grandes.

4.3 Etapas do Processamento de Imagens

O processamento de imagens digitais abrange uma ampla escala de hardware, software e

fundamentos matematicos. Com o intuito de se processar uma imagem, esta deve passar por

algumas etapas basicas que vao desde a sua aquisicao ate a sua exibicao. Esses passos podem

ser verificados na Figura 4.4 e englobam um sistema de processamento completo, porem, nem

todas sao utilizadas por todas as aplicacoes.

Figura 4.4: Etapas fundamentais para o processamento de imagens digitais

A primeira tarefa nesse processo e a aquisicao da imagem no formato digital, atraves de

um sensor para imageamento e a capacidade de converter o sinal produzido pelo sensor para

o formato digital. Esse sensor pode ser uma camera de TV que produza uma imagem do

problema.

Apos a aquisicao da imagem no formato digital, a proxima etapa consiste em pre-processar

esta imagem. O pre-processamento consiste na melhoria da qualidade da imagem de forma que

aumente a probabilidade de sucesso dos processos seguintes. Normalmente, ele envolve tecnicas

para o realce de contrates, remocao de ruıdo e isolamento de regioes cuja textura indique a

probabilidade de informacao alfanumerica.

15

Page 27: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Concluıdo o pre-processamento, o proximo estagio trata da segmentacao. A segmentacao

divide uma imagem de entrada em partes ou objetos constituintes. Como exemplo, no caso

de reconhecimento de caracteres, a funcao basica da segmentacao e a extracao de caracteres

individuais e palavras do fundo da imagem. Normalmente, a segmentacao automatica e uma

das tarefas mais difıceis no processamento de imagens.

Como a saıda da etapa de segmentacao e constituıda tipicamente por dados em forma de

pixels (raw pixel data), correspondendo tanto a fronteira de uma regiao como a todos os pontos

dentro da mesma. Nesses dois casos e necessario converter os dados para uma forma adequada

ao processamento computacional, necessitando de decidir se os dados devem ser representados

como fronteiras ou como regioes completas.

A escolha de uma representacao consiste em parte da solucao para a transformacao dos dados

iniciais num forma adequada ao seu processamento. Uma forma de descricao dos dados tambem

deve ser especificada, para que as caracterısticas de interesse sejam destacadas. A esse processo

de descricao, tambem chamado de selecao de caracterısticas, procura extrair caracterısticas que

resultem em alguma informacao util, seja ela quantitativa ou basica, para a discriminacao entre

classes de objetos.

A ultima etapa envolve o reconhecimento e interpretacao. O Reconhecimento consiste no

processo de atribuicao de um rotulo a um objeto, baseado em informacoes fornecidas pelo

seu descrito. Ja a Interpretacao envolve a atribuicao de significado a um conjunto de objetos

reconhecidos.

Alem desses componentes existe o conhecimento sobre o domınio do problema, que esta

codificado em um sistema de processamento de imagens na forma de uma base de conhecimento.

Esse conhecimento pode ser simples quanto o detalhamento de regioes de uma imagem em que

se sabe que a informacao de interesse. A base de conhecimento pode tambem ser complexa, tal

como um lista inter-relacionada de todos os principais defeitos possıveis em uma regiao em um

problema de inspecao de materiais. Alem de guiar a operacao de cada modulo de processamento,

a base de conhecimento tambem controla a interacao entre os modulos. Tambem e importante

ressaltar que a visualizacao de resultados do processamento de imagens pode ocorrer na saıda

de qualquer etapa da Figura 4.4

4.4 Consideracoes Finais

Nem sempre todas as etapas sao necessarias para se obter o que se deseja. Por exemplo,

neste trabalho sera dado enfase a caracterizacao de imagens, ou seja, o processo de descricao de

imagens devido a necessidade de obter informacoes para a aplicacao. No proximo capıtulo sao

apresentados os conceitos de caracterizacao de imagens, que serao utilizados para a classificacao

das imagens.

16

Page 28: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

5Caracterizacao de Imagens

Uma imagem digital corresponde a uma matriz contendo as informacoes dos pixels sem

nenhum significado util. Porem, a partir desses dados existe a possibilidade de obter informacoes

que possam caracterizar essas imagens. Se tratando de imagens digitais, o termo ”caracterıstica”

tem por definicao ser um atributo ou uma propriedade que a diferencie. Existem determinadas

caracterısticas que se apresentacao naturalmente na observacao de uma imagem, enquanto

outras resultam de manipulacoes especıficas de uma imagem. Como exemplo destas, pode-se

citar a iluminacao dos pixels de uma regiao ou a textura e a obtencao do histograma de cores

e do espectro de frequencia.

A caracterizacao de imagens e importante para identificar regioes com propriedades comuns

dentro da imagem e posterior identificacao e classificacao desta regiao. Para se realizar isto,

as caracterısticas necessitam ser extraıdas, de diversas formas. Normalmente, as caracterısticas

sao identificadas como genericas e de domınio especıfico. Entre as genericas encontram-se cor,

a forma e a textura e entre as de domınio especıfico as faces humanas e as impressoes digitais.

Esta subsecao explicara as tres caracterısticas genericas das imagens, que sao: cor, forma e

textura, visto que sao as mais comumente utilizadas, abordando algumas representacoes.

5.1 Caracterizacao de Imagens atraves das Cores

A caracterizacao de imagens digitais atraves das cores e comumente utilizada devido ao fato

de ser relativamente invariante quanto ao tamanho, resolucao e orientacao da imagem. Alem de

que a extracao das cores de uma imagem e computacionalmente facil de se realizar. Atualmente,

o Histograma de Cores e um das tecnicas de caracterizacao por cores mais usada, porem antes

de entender sua concepcao, e necessario conhecer alguns conceitos basicos relacionados as cores

(FOLEY et al., 1990).

17

Page 29: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

5.1.1 Fundamento de Cores

Uma cor percebida pode ser entendida como sendo a percepcao imediata que se tem de

um objeto. Assim, a cor pode ser considerada a propriedade de um objeto ou fonte de luz

relacionado as caracterısticas do sistema visual do observador. A luz corresponde a uma onda

eletromagnetica, sendo que apenas uma pequena banda da frequencia, localizada entre 400 e

700 nm, pode ser observada pelo sistema visual humano. Nesta banda encontram-se as cores

violeta (que possui a frequencia mais baixa), azul, ciano, verde, amarelo, laranja e vermelho

(que possui a maior frequencia), chamadas de cores visıveis, como pode ser observado na Figura

5.1 (CONCI; AZEVEDO; LETA, 2008)

Figura 5.1: Espectro Visıvel das cores

Ha dentro das cores aquelas que sao capazes de formar quase todas as cores presentes na

natureza. Dentre estas, as mais comuns sao as cores primarias RGB, compostas pelas cores

vermelho (Red), verde (Green) e azul (Blue) do espectro visıvel, e as ditas secundarias CMY,

compostas pelas cores ciano (Cyan), magenta (Magenta) e amarelo (Yellow).

5.1.2 Sistemas de Representacao de Cores RGB e CMY

O sistema de representacao RGB baseia-se na sensibilidade do olho humano e utiliza as cores

vermelho (R), verde(G) e azul (B) como cores primarias, sendo que R, G e B correspondem as

coordenadas cartesianas que sao responsaveis pela formacao do cubo unitario que representa o

espaco das cores, como pode ser visto na Figura 5.2. Este modelo tambem e conhecido como

modelo aditivo, pois as diversas cores sao formadas pela da adicao das primarias RGB(FOLEY

et al., 1990).

Matematicamente, uma cor C de um pixel pode ser definida por C = r.R + g.G + b.B,

onde R,G e B correspondem as cores primarias e r,g e b sao os coeficientes correspondentes

as intensidades3 associadas a cada uma das cores (AZEVEDO; CONCI, 2003). A resposta do

olho aos estımulos espectrais nao e linear e algumas cores presentes na natureza nao podem ser

reproduzidas pela sobreposicao das primarias RGB.

Ja o sistema de representacao CMY usa as cores secundarias ciano (C), magenta (M) e

amarelo (Y) para representar o espaco de cores, tambem formado por um cubo unitario. Este

modelo tambem e conhecido como modelo subtrativo, pois a formacao de cada cor se da atraves

da subtracao da luz incidente de uma das componentes RGB pelas cores secundarias e a reflexao

das outras. Por exemplo, o ciano subtrai a luz vermelha e reflete as outras, o magenta subtrai

o verde e o amarelo subtrai o azul. Com isso, a variacao das cores acontece por causa da

diminuicao dos comprimentos de luz que serao absorvidos (FOLEY et al., 1990).

18

Page 30: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 5.2: Cubo representando o espaco de cores RGB

Existem algumas tecnicas usadas para a extracao de cores como, por exemplo, o Histograma

de Cores e os Momentos de Cores. O Histograma de Cores e utilizado nesse trabalho para

representar as caracterısticas de cores das imagens. Ressalta-se que escolheu-se o Histograma

por ser simples, popular e facil de se calcular computacionalmente.

5.2 Histograma de Cores

O histograma e uma ferramenta de analise e representacao de dados quantitativos, agru-

pados em classes de frequencia que permite distinguir a forma, o ponto central e a variacao

da distribuicao, alem de outros dados como amplitude e simetria (GONZALES; WOODS, 2000).

Como exemplo, seja uma imagem digital g de M linhas e N colunas. O histograma da imagem

g, Hg, pode, analiticamente, ser definido por :

Hg(k) =nk

M.N(5.1)

onde nk e o numero de vezes que o nıvel de cinza k aparece na imagem. Com isso, um

vetor representando a imagem e gerado pelo processo do histograma. Exemplos de histogramas

podem ser verificados na Figura 5.3.

Imagens low key previnem que qualquer regiao da imagem tenha brilho suficiente para se

tornar branco puro, independente de quao escuro o resto da imagem possa resultar. Cenas com

high key, por outro lado, normalmente resultam em imagens significativamente sub-expostas.

Mas e mais facil lidar com regioes sub-expostas do que com as super-expostas (apesar disso

19

Page 31: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 5.3: Exemplos de histogramas de cores de uma mesma imagem.

comprometer a qualidade da foto devido ao aumento do ruıdo). Caso isso ocorra, os detalhes

nao podem ser recuperados nas regioes super-expostas a ponto de ser branco puro. Isso e o que

normalmente chamado de imagem estourada ou cortada como pode ser verificado na Figura

5.4.

Existem tres tipos de histogramas que sao o RGB, luminancia e de tons e constrates (FOLEY

et al., 1990). O utilizado mais comumente e o histograma RGB. O histograma RGB e uma

representacao grafica dos valores tonais de cada canal de cor vermelho, verde e azul. Outro

tipo e o histograma de luminosidade que e composto levando-se em conta o histograma RGB

e considerando a sensibilidade do olho humano para cada cor, em outras palavras cada cor

recebe um peso/importancia (verde 51%, vermelho 30% e azul 19%) conforme sensibilidade do

olho humano as cores. O histograma de luminosidade fornece a melhor representacao grafica

do brilho e do contraste de uma imagem. Tambem e possıvel ver o grafico individual de cada

canal de cor.

O histograma RGB e o melhor histograma para ajustar imagens digitais, pois consegue

representar graficamente como estao distribuıdos os pixels ao longo do range tonal (0 ate 255).

Mesmo com imagens a high-key ou low-key normalmente nao e necessario ver todos os pixels

a direita ou a esquerda do grafico. E importante ressaltar que nao havera muitas texturas em

20

Page 32: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 5.4: Exemplos de imagem low key e high key

imagens onde as tres cores estiverem acima dos 250. Da mesma forma nao havera texturas

quando todas as cores estiverem abaixo do 20.

Percebe-se entao, que o histograma apresenta uma descricao global da imagem. Quando e

obtido a partir de imagens monocromaticas fornece uma visao sobre a forma que os pixels estao

distribuıdos, do contraste e da luminancia da imagem, sendo muito importante nas fases de

pre-processamento. Alem disso, e invariante a operacoes como rotacao e translacao. Porem ,

imagens diferentes podem ter o mesmo histograma, o que faz necessario, em algumas aplicacoes,

a utilizacao conjunta de outras caracterısticas da imagem, como forma ou textura.

5.3 Consideracoes Finais

Neste trabalho e utilizado somente o Histograma de Tons de Cinza como tecnica para a

caracterizacao das imagens. No entanto, tecnicas de caracterizacao por forma e textura tambem

poderiam ter sido utilizadas. Apos a escolha do tipo de caracterizacao (cor, forma ou textura)

de imagens mais adequado a aplicacao, e iniciado o processo de classificacao das imagens, ou

seja, a partir das caracterısticas obtidas pode-se inferir rotulos (legendas) as imagens ou a

objetos contidos nas mesmas. Os metodos usados para a classificacao de imagens dividem-se

em metodos de decisao teorica e metodos estruturais. Os metodos de decisao teorica baseiam-

se na representacao dos padroes atraves de vetores, e os metodos estruturais baseiam-se na

representacao dos padroes na forma simbolica (cadeias e arvores). Dentre os metodos de decisao

teorica existem as redes neurais artificiais que sao utilizadas nesse trabalho para classificar as

imagens. O capıtulo a seguir aborda sobre as redes neurais artificiais, que foram utilizadas para

a classificacao das imagens de melanoma.

21

Page 33: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

6Redes Neurais Artificiais

As redes neurais artificiais (RNA) representam uma tecnologia que tem raızes em muitas

disciplinas, tais como: neurociencia, matematica, estatıstica, fısica, ciencia da computacao e

engenharia(HAYKIN, 2007). Suas aplicabilidades sao: modelagem, analise de series temporais,

reconhecimento de padroes, processamento de sinais e controle, entre outros.

Neste capıtulo e apresentado uma visao sobre as principais caracterısticas das Redes Neu-

rais, incluindo sua inspiracao biologica, o desenvolvimento do neuronio artificial e as principais

arquiteturas de rede existentes. Alem disso, demonstra-se os processos de aprendizagem, os

quais sao fundamentais para o desempenho das Redes Neurais.

6.1 Redes Neurais Biologicas

O cerebro humano e considerado um computador altamente complexo, nao-linear e paralelo

que possui a capacidade de organizar seus constituintes estruturais, conhecidos por neuronios,

de forma a realizar processamentos tao rapidos que nenhum computador atual consegue alcan-

car(HAYKIN, 2007). Pelo fato de que o cerebro ser muito complexo e a sua grande capacidade

de aprendizado e adaptacao, estudiosos sempre buscam respostas sobre o seu funcionamento e

suas estruturas. Existem alguns questoes que ainda nao foram solucionadas, mais uma grande

vantagem que ja se conhece as estruturas que compoes o cerebro e tem-se conhecimento sobre

alguns aspectos de seu funcionamento.

Ha dois tipos principais de celulas no cerebro: os neuronios e as glias. As glias sao as

responsaveis pela sustentacao e nutricao dos neuronios, que, por sua vez, sao encarregados

no processo de recepcao, transmissao e processamento de estımulos, permitindo ao organismo

responder as alteracoes do meio(LUDWIG; MONTGOMERY, 2007). Os neuronios sao basicamente

constituıdos de dendritos, corpo celular (ou soma) e axonios. como pode ser visto na Figura

22

Page 34: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

6.1.

Figura 6.1: Modelo de um neuronio biologico

Os dendritos tem a funcao de receber os estımulos (ou sinais de entrada) e conduzi-los

ao corpo celular. Este adiciona os sinais de entrada de alguma forma e produz um sinal de

ativacao ou nao para o neuronio. Alem disso, o corpo celular e o responsavel pela manutencao

e metabolismo do neuronio, assim como por seu crescimento e reparacao. Ja os axonios sao

responsaveis pela transmissao dos impulsos de saıda gerados por um neuronio.

Os axonios de um neuronio se ligam aos dendritos de outro neuronio atraves das sinapses.

As sinapses sao unidades funcionais elementares para a interacao entre os neuronios. Podem ser

divididas em inibitorias ou excitatorias. Uma sinapse excitatoria contribuira positivamente para

a ativacao do neuronio receptivo, enquanto uma sinapse inibitoria influenciara na desativacao do

neuronio (HAYKIN, 2007). O conjunto de neuronios conectados atraves de sinapses formam as

Redes Neurais Biologicas, as quais foram abstraıdas afim de obter as Redes Neurais Artificiais.

6.2 Redes Neurais Artificiais

As Redes Neurais Artificiais, tambem conhecidas como Redes Conexionistas, Neurocom-

putadores ou Processadores Paralelamente Distribuıdos tiveram seu surgimento (inspiracao)

na forma da organizacao e funcionamento do cerebro humano e busca demonstrar o compor-

tamento dos circuitos neuronais (REZENDE, 2003). Tal como o cerebro tem a capacidade de

aprendizado e tomada de decisoes baseadas no aprendizado, a RNA devem ser capazes de fazer

o mesmo. Isso e alcancado devido a um conjunto de exemplos pre-estabelecidos, a partir dos

quais as redes neurais se adaptam e aprendem como realizar determinadas tarefas.

Segundo Haykin (2007), uma rede neural pode ser definida como sendo um ”processador

paralelamente distribuıdo que e composto de unidades de processamento simples, os neuronios,

que possuem a capacidade de armazenamento de conhecimento experimental e torna-lo disponı-

vel para uso”. Normalmente as RNA sao desenvolvidas a fim de resolver problemas complexos,

visto que seu processamento e distribuıdo atraves de suas camadas de neuronios, que possuem

a habilidade de processar as suas entradas de forma paralela e independente, alem de que sua

23

Page 35: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

capacidade de aprendizagem resulta em respostas satisfatorias. A sua aprendizagem e a base

da inteligencia das RNA e decorre de um processo de aprendizagem e armazenamento deste

conhecimento atraves da conexao entre neuronios.

A similaridade das RNAs com o cerebro e caracterizada, justamente, pela sua habilidade de

adquirir conhecimento atraves de um processo de aprendizagem e armazenar este conhecimento

atraves da conexao entre os neuronios (LUDWIG; MONTGOMERY, 2007). Alem dessas caracte-

rısticas, existem outras que tornam as Redes Neurais Artificiais bastante uteis para a resolucao

de problemas, dentre elas as mais importantes sao:

1. Nao Linearidade: Um neuronio pode ser linear ou nao-linear, assim com a RNA igualmente

aos neuronios

2. Mapeamento de Entrada-Saıda: capacidade da rede de aprender ao mapear um conjunto

de entradas em um conjunto de saıdas.

3. Adaptabilidade: uma RNA treinada para atuar em um ambiente pode ser adaptada para

suportar modificacoes no ambiente.

4. Resposta a evidencias: Uma rede neural pode ser projetada para fornecer informacao

nao somente sobre qual padrao particular selecionar, mais tambem sobre a confianca da

decisao tomada

5. Informacao Contextual: O conhecimento e representado pela propria estrutura e estado

de ativacao de uma rede neural

6. Tolerancia a falhas: uma RNA tem a capacidade de fornecer respostas adequadas por um

bom tempo mesmo se algum neuronio ou conexao for danificado.

7. Implementacao em VLSI: A natureza macicamente paralela de uma rede neural a faz ser

potencialmente rapida na computacao de certas tarefas.

8. Uniformidade de Analise e Projeto: Basicamente, as redes neurais desfrutam de univer-

salidade com o processadores de informacao.

9. Analogia Neurobiologica: O projeto de uma rede neural e motivado com o cerebro, que e

uma prova viva de que o processamento paralelo tolerante a falha e nao somente possıvel

fisicamente mas tambem rapido e poderoso.

As RNAs sao comumente utilizadas em tarefas que incluem Classificacao (decidir a qual

grupo pertence uma determinada entrada), Reconhecimento de Padroes (identificar padroes

em entradas), Predicao (predizer algo a partir de certas caracterısticas como, por exemplo,

identificar doencas a partir de sintomas, causas a partir de efeitos), Otimizacao (buscar o melhor

resultado) e Filtragem de Ruıdo (separar partes irrelevantes de um sinal) (BOTELHO, 2007),

mas, para que se tenha respostas satisfatorias ao problema deve-se definir adequadamente os

elementos que irao compor a RNA, dentre eles estao: o neuronio artificial, a arquitetura, o

algoritmo de aprendizagem e o paradigma de aprendizagem.

24

Page 36: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

6.2.1 Neuronio

O neuronio e definido como a unidade de processamento de informacao que e fundamental

para a operacao da rede neural. O diagrama da Figura 6.2 demonstra um modelo de neuronio

artificial. Pode-se identificar nele tres elementos basicos de um modelo neuronal:

Figura 6.2: Modelo de um neuronio matematico. Fonte (HAYKIN, 2007)

1. Um conjunto de sinapses ou elos de conexao, em que cada uma caracterizada por um

peso. Especificando, um sinal de saıda xj na entrada da sinapse j conectada ao neuronio

k e multiplicado pelo peso sinaptico wkj

2. Um somador, para somar os sinais de entrada, ponderandos pela respectivas sinapses do

neuronio.

3. Uma funcao de ativacao para restringir a amplitude da saıda de um neuronio.

Alem disso, o neuronio da Figura 6.2 inclui um bias aplicado externamente, representado

por bk. Esse tem o efeito de aumentar ou diminuir a entrada lıquida da funcao de ativacao,

dependendo se ele e positivo ou negativo, respectivamente.

Em termos matematicos, pode-se descrever um neuronio k escrevendo o seguinte par de

equacoes:

uk =m∑

j=1

wkjxj (6.1)

25

Page 37: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

e

yk = ϕ(uk + bk) (6.2)

onde x1, x2, ..., xm sao os sinais de entrada; wk1, wk2, ..., wkm sao os pesos sinapticos do

neuronio k; uk e a saıda do combinador linear devido aos sinais de entrada; bk e o bias; ϕ(.) e

a funcao de ativacao e yk e o sinal de saıda do neuronio. O uso do valor de bias bk tem o efeito

de aplicar uma transformacao afim a saıda uk do combinador linear no modelo da Figura 6.2,

como mostrado por:

yk = uk + bk (6.3)

Um neuronio artificial pode utilizar diferentes tipos de funcoes de ativacao, dentre elas as

mais comuns sao: Funcao de Limiar, Funcao Linear por Partes e Funcao Sigmoide (HAYKIN,

2007).

A Funcao Limiar, representada pela equacao 6.4, em que a saıda de um neuronio possui

valor 1, se o campo local induzido daquele neuronio e nao-negativo, e 0 caso contrario. Essa

funcao descreve a propriedade tudo-ou-nada do modelo de McCulloch-Pitts1 pode ser verificado

no grafico da Figura 6.3.

f(v) =

1 se x ≥ 0

0 se x < 0(6.4)

Figura 6.3: Grafico da funcao de limiar

A proxima Funcao denominada Funcao Linear por Partes. a saıda do neuronio sera igual ao

valor de ativacao v se este estiver dentro de um certo intervalo, mas, se v for maior ou igual ao

valor maximo do intervalo a saıda sera 1 e se for menor ou igual ao valor mınimo do intervalo

a saıda sera 0. A equacao 6.5 e um exemplo de Funcao Linear por Partes, sendo que a Figura

1Trabalho Pioneiro em redes neurais realizado por McCulloch e Pitts em 1943

26

Page 38: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

6.4 representa o grafico desta equacao.

ϕ(v) =

1, v ≥ +1

2

v,+12> v > −1

2

0, v ≤ −12

(6.5)

Figura 6.4: Grafico da funcao linear

E por ultimo a Funcao Sigmoide, cujo grafico tem a forma de um S, mais comumente

utilizada na construcao de RNA. Ela tem como definicao com sendo uma funcao estritamente

crescente que exibe um balanceamento adequado entre comportamento linear e nao-linear. Um

exemplo desta funcao Logıstica, definida pela equacao 6.6, cujo grafico e apresentado na Figura

6.5, onde a e o parametro de inclinacao da funcao (HAYKIN, 2007).

ϕ(v) =1

1 + exp−(av)(6.6)

Figura 6.5: Grafico da funcao sigmoide

A escolha da Funcao de Ativacao deve ser de acordo com o objetivo da RNA, visto que o

neuronio e a unidade basica do processamento da rede e deve ser modelado para atender aos

requisitos da aplicacao. Alem disso, as Redes Neurais possuem mais de um neuronio, os quais

27

Page 39: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

devem ser conectados de forma a garantir um bom desempenho juntamente a rede. A forma

de conexao entre os neuronios e definida pela arquitetura da rede, que e um dos elementos

principais para a criacao de uma RNA eficiente.

6.3 Arquitetura das Redes Neurais

A arquitetura ou topologia de uma Rede Neural define a maneira pela qual os neuronios

estao organizados. Ela esta associada com o algoritmo de aprendizagem usado para treinar a

rede, com sua aplicacao e com o seu desempenho. Alem da possibilidade de ser diferenciada de

acordo com o numero de camadas e a disposicao das conexoes.

Em geral, uma RNA possui uma camada de entrada, usada para receber os estımulos ex-

ternos, zero ou mais camadas intermediarias e uma camada de saıda responsavel por emitir

uma resposta a partir de uma dada entrada. Os principais exemplos de RNAs sem camada

intermediaria a rede Elemento Linear Adaptativo (Adaline) e a Perceptron de Camada Unica

exemplificada na Figura 6.6.Ja a Multilayer Perceptron (MLP) apresentada na Figura 6.7 e o

principal exemplo de RNA com camada intermediaria (REZENDE, 2003).

Figura 6.6: Rede com uma unica camada

Dependendo da forma das conexoes, as RNAs podem ser denominadas de Completamente

Conectadas, ou seja, quando cada neuronio de uma camada se conecta com todos os neuronios

da camada subsequente ou Parcialmente Conectadas, quando nem todos os neuronios da rede

estao conectados (HAYKIN, 2007). Tambem se pode encontrar em Redes Neurais conexoes em

forma de loops e conexoes entre os neuronios da mesma camada.

De acordo com o tipo de conexao, as RNAs podem ser classificadas em Redes Feedforward

28

Page 40: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 6.7: Rede com uma camada intermediaria

e Redes Feedback. Nas Redes Alimentadas Adiante, cada neuronio de uma camada recebe suas

entradas da camada anterior e envia seus sinais de saıda para os neuronios da camada posterior.

Nas Redes Recorrentes um neuronio pode enviar seus sinais de saıda para outro neuronio que

se encontra na mesma camada ou em uma camada anterior a sua (LUDWIG; MONTGOMERY,

2007), como pode ser observado na Figura 6.8.

A arquitetura de uma rede tambem pode ser classificada de acordo com a sua evolucao

no decorrer de sua utilizacao e do seu aprendizado. Baseado nestes criterios tem-se as Redes

Estaticas e as Redes Dinamicas (HAYKIN, 2007). Nas Redes Estaticas a quantidade de neuronios

e as formas de conexao nao se alteram durante o aprendizado da rede, as unicas mudancas que

ocorrem sao os ajustes dos pesos sinapticos. Ja nas Redes Dinamicas a quantidade de neuronios

e conexoes pode variar no decorrer do aprendizado da rede. Essa variacao pode ser do tipo

generativa (criacao de novas conexoes) ou destrutiva (eliminacao de conexoes).

A topologia escolhida para a implementacao da Rede Neural deve ter como objetivo facilitar

o processo de aprendizagem, visto que este e a base para a obtencao de respostas satisfatorias

ao problema.

6.4 Processos de Aprendizagem

Uma das principais caracterısticas das Redes Neurais e sua capacidade de aprender e melho-

rar seu desempenho gradativamente a partir da aprendizagem. A aprendizagem ocorre durante

o processo de treinamento da rede, no qual os pesos sinapticos e bias sao ajustados a cada

iteracao. Esse ajuste e realizado atraves de um algoritmo de aprendizagem seguindo algum

paradigma de aprendizagem.

Nas proximas subsecoes serao apresentados alguns algoritmos de aprendizagem, os para-

digmas de aprendizagem e por fim, ressalta-se o algoritmo de aprendizado supervisionado do

29

Page 41: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 6.8: Rede Recorrente

Multilayer Perceptron, visto que este sera utilizado para a implementacao do modelo proposto

por este trabalho. Ressalta-se que a escolha deste algoritmo foi baseada na sua aplicabilidade

e utilizacao em outros trabalhos. Alem disso, ele apresentou resultados satisfatorios para a

aplicacao em questao.

6.4.1 Algoritmos de Aprendizagem

Algoritmo de aprendizagem e definido como sendo um conjunto de regras definidas para

resolver algum problema de aprendizagem. Existem diferentes tipos que se distinguem pela

maneira como e realizado o ajuste do peso sinaptico de um neuronio (HAYKIN, 2007). Podem

ser divididos em:

• Aprendizagem por Correcao de Erro: Neste algoritmo o ajuste dos pesos sinapticos sao

efetuados de maneira a obter um erro mınimo. O erro (ek) em uma RNA e calculado

atraves da diferenca entre a saıda obtida (yk) pela rede e a saıda desejada (dk), como

apresentado na Equacao 6.7:

ek(n) = dk(n)− yk(n) (6.7)

No decorrer do aprendizado os erros sao calculados iterativamente ate que a rede alcance

um estado onde os pesos sinapticos estao estabilizados de acordo com um valor pre-

definido. Os pesos sao ajustados visando aproximar o valor de saıda obtido pela rede

30

Page 42: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

ao valor desejado (REZENDE, 2003). Isto e obtido atraves da minimizacao da Funcao de

Custo E(n), definida por:

E(n) =1

2e2k(n) (6.8)

A minimizacao da Funcao de Custo resulta na regra de aprendizagem conhecida como

Regra Delta, a qual determina o ajuste φwkj(n) dos pesos sinapticos. Este ajuste aplicado

a um peso wkj de um neuronio k, excitado por uma entrada xj no tempo n pode ser

descrito por (HAYKIN, 2007):

∆wkj(n) = ηek(n)xj(n) (6.9)

onde η e a taxa de aprendizagem. Apos calcular o ajuste, o novo valor do peso sinaptico

wkj sera:

wkj(n+ 1) = wkj(n) + ∆wkj(n) (6.10)

• Aprendizagem Baseada em Memoria: Neste algoritmo, as experiencias sao armazenadas

em uma memoria de exemplos de entrada-saıda pre-classificada corretamente. Esta me-

moria e representada da seguinte forma: (xi, di)Ni=1, onde xi representa o vetor de entrada

e di representa a resposta desejada (HAYKIN, 2007).

Quando se quer classificar um vetor de entrada novo, chamado de xteste, repassa-o a rede

e o algoritmo ira analisar os dados de treinamento de uma ”vizinhanca local”de xteste

em busca de um padrao semelhante. Ha diversos algoritmos baseados em memoria que

diferem entre si pelo criterio usado para definir a vizinhanca local de um vetor de teste e

pela regra de aprendizagem usada no treinamento dos dados da vizinhanca local (HAYKIN,

2007).

O tipo mais simples de algoritmo baseado em memoria e conhecido como regra do vizinho

mais proximo. Segundo este algoritmo, a vizinhanca local sera os dados de treinamento

que se encontram na vizinhanca proxima do vetor xteste. Com isso, o vetor x′N sera o

vizinho mais proximo de xteste se:

min d(xi, xteste) = d(x′

N , xteste) (6.11)

onde d(xi, xteste) corresponde a distancia euclidiana entre os vetores xi e xteste. Por fim, o

vetor x′N encontrado sera a classificacao para xteste, ou seja, a classe com menor distancia.

• Aprendizagem Hebbiana: Segundo a teoria de Hebb (1949), que descreve um mecanismo

basico da plasticidade sinaptica no qual um aumento na eficiencia sinaptica surge da

estimulacao repetida e persistente da celula pos-sinapticas, que resulta que quando um

neuronio contribui para o disparo de outro, a conexao entre eles e reforcada (REZENDE,

2003). Baseado nesta teoria, o algoritmo de aprendizagem hebbiana apenas permite a

31

Page 43: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

alteracao dos pesos sinapticos da conexao entre dois neuronios quando ambos estiverem

ativos, pois assim a forca da conexao entre eles aumentara. O ajuste ∆wkj(n) dos pesos

sinapticos do neuronio k aplicado ao peso wkj no tempo n e definido como (HAYKIN,

2007):

∆wkj(n) = ηyk(n)xj(n) (6.12)

onde η e a taxa de aprendizagem, xj e o sinal pre-sinaptico do neuronio k e yk e o sinal

pos-sinaptico do neuronio k. Quando os sinais pre-sinapticos e pos-sinapticos possuem

sinais similares o ajuste dos pesos tera o efeito de reforcar a conexao entre os neuronios,

caso contrario, sera anulada.

• Aprendizagem Competitiva: Neste algoritmo os neuronios de saıda da rede competem

entre si para se tornar ativos, visto que apenas um estara ativo em um determinado

momento. O neuronio vencedor sera chamado de neuronio vencedor leva tudo. De acordo

com a regra de aprendizagem competitiva padrao, o ajuste ∆wkj aplicado ao peso wkj e

definido por (HAYKIN, 2007):

∆wkj =

η(xj − wkj), se o neurnio k vencer a competio

∆wkj = 0, se o neurnio k perder a competio(6.13)

onde η e a taxa de aprendizagem. Com esta regra as entradas do neuronio vencedor

liberam um pouco de seu peso, o qual sera distribuıdo uniformemente entre as entradas

inativas com o objetivo de mover o peso sinaptico do neuronio vencedor em direcao ao

padrao de entrada.

• Aprendizagem de Boltzmann: Este e um algoritmo estocastico baseado na mecanica es-

tatıstica. As RNAs que utilizam este algoritmo possuem neuronios que funcionam bina-

riamente, ou seja, eles possuem apenas dois estados: ligados (+1) ou desligados (−1). O

ajuste (∆wkj) dos pesos sinapticos aplicado a um peso wkj do neuronio j para o neuronio

k sera determinado pela equacao seguinte (HAYKIN, 2007):

∆wkj = η(ρ+kj − ρ

−kj), j 6= k (6.14)

onde η e a taxa de aprendizagem, ρ+kj e a correlacao entre os neuronios j e k com a

rede na condicao presa (os neuronios visıveis estao presos a estados especıficos) e ρ−kj e

a correlacao entre os neuronios j e k com a rede na condicao livre (todos os neuronios

operam livremente).

Cada um dos algoritmos apresentados fornece vantagens especıficas que devem ser ava-

liadas de acordo com a aplicacao. Alem disso, a principal caracterıstica da RNA e sua

capacidade de aprender e se adaptar, a qual esta diretamente relacionada com o algoritmo

32

Page 44: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

selecionado, tornando sua escolha crucial para o desempenho da rede. Do mesmo modo,

deve-se considerar a forma como as RNAs interagem com o ambiente e utilizar o algoritmo

de aprendizagem seguindo um paradigma de aprendizagem adequado.

6.5 Paradigmas de Aprendizagem

O Paradigma de Aprendizagem define a forma como a Rede Neural se relaciona com o am-

biente e se divide em tres grupos principais: Aprendizagem Supervisionada, Aprendizagem por

Reforco e Aprendizagem Nao-Supervisionada. Na Aprendizagem Supervisionada, tambem co-

nhecida como Aprendizagem com um Professor, a rede e treinada com um conjunto de exemplos

de entrada-saıda retirados do ambiente. Sendo assim, a rede deve ter a capacidade de medir o

seu comportamento atual e seu comportamento de referencia, realizando os ajustes dos pesos

sinapticos com o intuito de minimizar o erro (MEDEIROS, 1996). O erro e a diferenca entre a

saıda obtida pela rede e a saıda desejada e e calculado passo a passo, interativamente, ate obter

um valor satisfatorio. Com isso, o conhecimento do ambiente vai sendo transferido para a rede,

de forma gradual, atraves do treinamento.

Na Aprendizagem por Reforco existe apenas indicacoes imprecisas sobre o resultado de-

sejado da rede, ou seja, neste tipo de aprendizagem, o mapeamento de entrada-saıda e feito

gradativamente atraves da interacao com o ambiente, dispondo apenas de uma avaliacao quali-

tativa do comportamento do sistema sem, no entanto, poder medir o erro. Ja na Aprendizagem

Nao-Supervisionada, tambem chamada de Aprendizagem sem um Professor, nao se usa exem-

plos de entrada-saıda para treinar a rede. Esta aprende sozinha, sem um supervisor externo

para indicar os erros. Este tipo de rede desenvolve a habilidade de extrair caracterısticas rele-

vantes, a partir das entradas fornecidas, e formar representacoes internas que codifiquem essas

caracterısticas, criando assim, novas classes automaticamente (HAYKIN, 2007).

Apos definir o paradigma de aprendizagem e todos os outros elementos citados anterior-

mente, a Rede Neural esta pronta para ser implementada. Sabe-se que com a introducao das

RNAs, muitas areas da computacao se desenvolveram, visto que problemas que antes eram

considerados computacionalmente difıceis de serem resolvidos, agora podem ser resolvidos com

maior facilidade e melhor desempenho. Em seguida, apresenta-se o algoritmo de aprendizado

supervisionado do Multilayer Perceptron, visto que este sera utilizado para a resolucao do pro-

blema proposto neste trabalho.

6.5.1 Algoritmo de Aprendizado Supervisionado do Multilayer Per-

ceptron

O algoritmo de aprendizado supervisionado do Multilayer Perceptron foi desenvolvido ba-

seado no Perceptron, desenvolvido por Rosenblatt, por volta do final dos anos 1950 e inıcio dos

anos 1960. Os perceptrons de multiplas camadas tem sido aplicados com sucesso para resol-

ver diversos problemas difıceis, atraves do seu algoritmo de treinamento conhecido como error

back-propagation.

33

Page 45: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Basicamente, a aprendizagem por retropropagacao de erro consiste de duas etapas pelas

camadas: sendo um para frente, a propagacao, e um para tras, a retropropagacao. O algoritmo

de retropropagacao pode ser descrito em cinco fases, conforme apresentadas a seguir:

1. Inicializacao: atribui-se valores aleatorios aos pesos sinapticos e nıveis de bias, em uma

distribuicao uniforme.

2. Apresentacao dos exemplos de treinamento: apresenta-se uma epoca de exemplos a rede.

Para cada exemplo, realiza-se a propagacao dos sinais e a retropagacao dos erros com a

correcao dos pesos e nıveis de bias, conforme os dois proximos itens.

3. Propagacao dos sinais: aplica-se a camada de entrada da rede o vetor de sinais de entrada

x(n) e calcula-se o campo local induzido de entrada ate a camada de saıda, onde se obtem

o vetor de sinais funcionais da rede y(n). Em seguida, calcula-se o sinal de erro ej(n)

para cada neuronio da camda de saıda, pela comparacao de y(n) com o vetor de saıdas

desejadas d(n). Daı, calculam-se o erro instantaneo e com este, o erro medio global, para

teste de finalizacao.

4. Retropropagacao de sinais de erro: calculam-se os gradientes locais para todos os neuro-

nios da camada de saıda:

δj(n) = −ej(n)ϕ′

j(j(n)) (6.15)

Em seguida, calculam-se os ajustes para os pesos daquela camada, bem como o de bia, os

quais devem ser somados aos valores atuais:

∆wij = ηej(n)ϕ′

j(vj(n))yi(n) = −ηδj(n)yi(n) (6.16)

∆bj = ηej(n)ϕ′

j(vj(n)) = −ηδj (6.17)

O proximo passo e o calculo do gradiente local para os neuronios da penultima camada

(camada oculta):

δi(n) = ϕ′

i(vi(n))k∑

j=1

(δj(n)wij(n)) (6.18)

Entao, calcula-se o ajuste para todos os pesos desta camada, bem como o dos bias, os

quais devem ser somados aos valores atuais:

∆wki = −ηϕ′

i(vi(n))yk(n)J∑

j=1

(δj(n)wij(n)) = −ηδi(n)yk(n) (6.19)

34

Page 46: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

∆bj = −ηϕ′

i(vi(n))J∑

j=1

(δj(n)wij)) = −ηδi(n) (6.20)

O processo prossegue de forma identica para as demais camadas ocultas, assim como para

a camada de entrada, em que os valores dos ajustes na primeira camada oculta (apos a

entrada da rede) deve ter o valor yk(n) substituıdo pelo valores de xk(n).

5. Iteracao: iteram-se as computacoes apresentando novas epocas de exemplos de treina-

mento para a rede de forma aleatoria de epoca para epoca, ate que seja satisfeito o

criterio de parada, que pode ser o numero maximo de iteracoes ou um valor limite para

o erro global medio da rede.

6.6 Consideracoes Finais

Como pode ser visto nos trabalhos relacionados, a rede neural MLP demanda de muito

tempo computacional para ser treinada, devido a sua arquitetura, mais como ela e paralela, a

utilizacao de tecnicas de paralelismo, mais especificamente a CUDA, sera explicada no capıtulo

a seguir com o intuito de reduzir esse tempo.

35

Page 47: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

7CUDA

CUDA e a arquitetura de computacao paralela da NVIDIA que possibilita aumentos signi-

ficativos na performance de computacao pelo aproveitamento da potencia da GPU (unidade de

processamento grafico) (NVIDIA, 2010). A CUDA e a engine de computacao NVIDIA em uni-

dades de processamento grafico (GPUs) que esta acessıvel para os desenvolvedores de software

atraves de variantes de linguagens de programacao padrao da industria. Os programadores

pode usar o ”C for CUDA” (C com extensoes NVIDIA e algumas restricoes), compilado por um

compilador chamado PathScale Open64 C compiler, para a codificacao dos algoritmos para exe-

cucao na GPU. A arquitetura CUDA compartilha uma gama de interfaces computacionais e e

esta disponıvel para programar tambem em Python , Perl, Fortran, Java, Ruby, Lua, MATLAB

e IDL, e suporte nativo existente no aplicativo Mathematica.

A CUDA fornece aos desenvolvedores o acesso ao conjunto de instrucoes virtuais e memoria

dos elementos da computacao paralela CUDA em GPUs. Usando a CUDA, as GPUs NVIDIA

tornar-se acessıveis para a computacao como CPUs . Ao contrario de CPUs no entanto, as

GPUs tem uma arquitetura de processamento paralelo que enfatiza a executar muitas threads

simultaneas lentamente, ao inves de executar um unico segmento muito rapido. Esta abordagem

de resolucao de problemas de uso geral em GPUs e conhecida como GPGPU. A seguir sera

especificado a sua arquitetura

7.1 Arquitetura CUDA

A arquitetura NVIDIA CUDA se baseia tanto em componentes de hardware como de soft-

ware. A parte que entende-se por software e a executada na CPU, formada por um algoritmo

sequencial escrito comumente na linguagem C ou alguma outra linguagem que e suportada por

CUDA. A parte do hardware e formada pelo codigo compilado por CUDA para torna-se um

36

Page 48: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

kernel. Nesse contexto, sao blocos que especificam parte do algoritmo em que se deseja a para-

lelizacao. Ele tambem pode ser tratado como um codigo que pode ser utilizado pela GPU para

chamar outros kernel nela ou em outra GPU. A GPU contem milhares de threads. A CUDA faz

a formatacao do codigo de uma maneira que threads sejam alocadas paralelamente e o usuario

usufrua dessa caracterıstica, podendo fazer chamadas de kernel que serao independentes entre

si, o que permite a GPU rodar varios algoritmos sem problemas.

A GPU e voltada para computacao intensiva, com alta paralelizacao, que sao caracterısticas

do problema de renderizacao grafica. Alem disso, sua arquitetura e especializada no processa-

mento deste tipo de dados e nao no controle de fluxo. Pode-se verificar essa diferenca observando

a Figura 7.1. A quantidade de transistores utilizados para fazer processamento (ALU) e bem

maior na GPU que na CPU. A arquitetura da CPU ainda esta dividida em enormes blocos

que contem um componente de controle de fluxo e um de memoria cache. No caso da GPU, o

mesmo programa e executado em muitos elementos em paralelo. Dessa maneira, nao possui um

sofisticado componente de controle de fluxo, porem, oferece uma grande intensidade de com-

putacao aritmetica. Alem disso, a cache se torna pequena na GPU diminuindo a latencia para

execucao de cada grande bloco de unidades logicas e matematica (ULA), diferente da CPU que

contem uma cache enorme, obtendo uma latencia alta para acesso.

Figura 7.1: Diferenca da especificacao dos processadores na CPU e na GPU

Possuindo um unidade de controle, um componente de cache e um conjunto enorme de

ALU’s, e possıvel obter a estrutura de varios grupos de cores. Pode-se assim certificar que a

GPU e um manycore, apresentando de trinta e dois ate quinhentos e doze cores dependendo

do modelo. Essa subdivisao de cores na GPU e chamada de Stream Processing (um ponto

importante a ser lembrado e que, para a execucao na GPU, o algoritmo paralelizado nao pode

ter muita dependencia de dados em cada passo de computacao, pois a GPU nao faz paralelizacao

de tarefas e sim de processamento de dados). Caso essa otimizacao nao seja feita no algoritmo,

a GPU tem seu desempenho bastante afetado. Com relacao a hierarquia de compilacao para o

CUDA, a Figura 7.2 ilustra a arquitetura da sua pilha de software. A seguir e especificado a

sua forma de programacao.

37

Page 49: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 7.2: A arquitetura runtime da CUDA

7.2 Programacao CUDA

A CUDA e baseada em programacao paralela, permitindo milhares de threads executando

uma mesma tarefa. Neste caso, a GPU funciona como um co-processador da CPU, a qual

chama-se de ”HOST” e a GPU de ”DEVICE”. A linguagem utilizada para criar essa paraleli-

zacao otimizada esta presente na API que CUDA fornece. Essa API e formada por bibliotecas

importantes, dentre as quais ressalta-se o CUBLAS e o CUFFT que implementam e otimizam

funcoes da algebra linear e transformada de Fourier, respectivamente.

CUDA usa como base a linguagem C, que permite uma curva rapida de aprendizado. Nela

deve-se criar funcoes desejadas que CUDA otimize e paralelize na GPU. Essas funcoes sao

chamadas de kernel. No algoritmo a seguir pode-se observar um exemplo de um codigo simples

7.1.

12 g l o b a l void matAdd( f loat A[N ] [ N] , f loat B[N ] [ N] ,3 f loat C[N ] [ N] )4 {5 int i = threadIdx . x ;6 int j = threadIdx . y ;7 C[ i ] [ j ] = A[ i ] [ j ] + B[ i ] [ j ] ;8 }9

10 int main ( )11 {

38

Page 50: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

12 // Kernel i n v o c a t i o n13 dim3 dimBlock (N, N) ;14 matAdd<<<1, dimBlock>>>(A, B, C) ;15 }

Listing 7.1: Soma de Matrizes em CUDA

Nesse codigo, tem-se uma funcao matAdd que apresenta uma tag global antes da definicao

da funcao. Essa tag define ao compilador que esse bloco sera paralelizado na GPU. A funcao

main faz a invocacao do metodo. Ele se localiza no HOST e o codigo e executado na GPU

(DEVICE). Em uma workstation pode-se encontrar mais que uma GPU, neste caso elas serao

chamadas de DEVICE 0, DEVICE 1, etc.

O kernel e acionado colocando um tag de configuracao antes da declaracao dos parame-

tros, ”<<<>>>”. Ha tres parametros possıveis na configuracao: a configuracao do tama-

nho das grids (a),a configuracao com o tamanho dos blocos (b) e a quantidade de memoria

compartilhada que se deseja utilizar no algoritmo (Ns). Isso gera uma configuracao generica

”<<< a, b,Ns >>>”.

No main, antes da invocacao, declaramos um tipo de variavel definida pelo CUDA chamada,

dim3. A variavel criada dimBlock tera tres dimensoes e cada uma dessas dimensoes representara

a dimensao de um bloco. No exemplo, teremos um bloco com tamanho N para dimensao x,

tamanho N para dimensao y e a dimensao z que foi omitida tem tamanho 1. A posicao onde

se encontra o valor 1 na configuracao da chamada da funcao significa o tamanho da grid. Essa

definicao tambem e usado o tipo dim3. Essa configuracao pode ser conferida no algoritmo 7.2.

1 dim3 dimBlock (16 , 16) ;2 dim3 dimGrid ( (N + dimBlock . x −1) / dimBlock . x ,3 (N + dimBlock . y − 1) / dimBlock . y ) ;4 MatAdd<<<dimGrid , dimBlock>>>(A, B, C) ;

Listing 7.2: Configuracao dos blocos e grids em CUDA

Neste exemplo, o tamanho do grid e dado pelo tamanho da matriz, N , mais o tamanho do

bloco na dimensao x, dimBlock.x, menos um dividido pela dimensao do bloco em x. Essa e

a quantidade de blocos que serao computados pelo grid na dimensao x. Segue a mesma linha

de raciocınio na dimensao y do grid. Ressalta-se novamente que a dimensao z foi omitida e

seu valor e 1. Ha uma restricao no tamanho dos blocos. Deve-se verificar a quantidade de

threads que foi declarada em cada dimensao. A regra dimBlock.x ∗ dimBlock.y ∗ dimBlock.z(multiplicacao das dimensoes) precisa ser menor que o maximo do numero de threads que pode

ser alocada para o bloco. Na chamada da configuracao, <<< a, b,Ns >>>, ha um terceiro

parametro, Ns. Esse e do tipo size t e especifica o numero de bytes na memoria compartilhada

que cada bloco deve alocar dinamicamente. Esse parametro por default e zero e nao precisa ser

especificado.

O HOST cria invocacoes do kernel de acordo com o parametro de configuracao. Cada ker-

nel e executado paralelamente e independentemente entre si na GPU. A arquitetura CUDA e

baseada em array’s escalaveis de multithread SMs, ou thread Batching, que pode ser verificado

39

Page 51: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

na Figura 7.3. Ele e um tbatch de threads que o kernel executa e organiza em grids de threads

block. Uma thread block e um batch de threads que cooperam entre si para compartilhar efici-

entemente as informacoes que serao processadas. Essa eficiencia vai desde o compartilhamento

(copia da DRAM GPU para a memoria compartilhada e vice-versa) dessa informacao atraves

da memoria compartilhada, ate a sincronizacao de execucao para o acesso a essa memoria.

Cada thread e identificada atraves de ID unica, chamada thread ID. Ha um numero limitado

de threads por bloco. Porem, um bloco de mesma dimensao e tamanho pode ser executado por

um mesmo kernel fazendo um grid de blocos, aumentando ainda mais a quantidade de threads

sendo executados em paralelo. Vale salientar que as threads de blocos diferentes nao podem

se comunicar. Alem disso, cada bloco e identificado por um block ID, e tem sua ID unica em

relacao ao grid.

Figura 7.3: Exemplificacao da thread Batching da CUDA

7.3 Consideracoes Finais

Com a apresentacao dos conceitos fundamentais que serao utilizados nesse projeto, no capı-

tulo a seguir sera explicado a utilizacao do CUDA e das tecnicas mostradas anteriormente no

desenvolvimento deste trabalho.

40

Page 52: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

8Utilizacao de RNA e GPGPU para

reconhecimento de Melanoma

A solucao proposta neste trabalho faz o uso de uma RNA MLP junto a tecnicas de progra-

macao paralela e processamento de imagens para uma solucao hıbrida cujo objetivo e a reducao

do tempo de treinamento e a obtencao de resultados na deteccao do melanoma. O modelo de

execucao utilizado e o demonstrado na Figura 8.1 .

Esta solucao consiste em a partir da leitura das imagens com o histograma de cores no GPU

gerar os dados de entrada para a RNA, que com a utilizacao da CUDA gerara os dados os pesos

aleatorios e fara o seu treinamento.

As duas primeiras etapas de execucao da solucao proposta sao a coleta e selecao de infor-

macoes, que constitui na busca de dados de entrada para o treinamento da rede neural. A

partir de uma imagem colorida fornecida, em qualquer formato, e feita a leitura da mesma e

armazenada na estrutura definida na Estrutura 8.1. Para tanto, e utilizado uma ferramenta

chamada ImageMagick que converte a extensao da imagem para o formato (extensao) ppm.

1 typedef unsigned char color component ;2 typedef color component p i x e l [ 3 ] ;3 typedef struct {4 unsigned int width ;5 unsigned int heigh ;6 p i x e l ∗buf ;7 } image t ;8 typedef image t ∗ image ;

Listing 8.1: Estrutura de uma imagem no PPM

O PPM, Portable Pixmap, e um formato simples para imagens coloridas e sao concebidas

41

Page 53: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 8.1: Solucao hıbrida para a reducao do tempo de treinamento da RNA com a CUDA

para ser facilmente serem trocadas entre varias plataformas. Um arquivo de imagem em formato

PPM-RAWBITS, Portable Pixmap RAWBITS, comeca sempre com um cabecalho que apresenta

as seguintes informacoes:

• A sequencia de caracteres ”P6” e um ou mais caracteres brancos,

• A largura l da imagem em pixels e um ou mais caracteres brancos;

• A altura h da imagem em pixels e um ou mais caracteres brancos;

• O valor maximo de cada componente RGB (que e sempre igual a 255) e um caractere

branco;

• Linhas comecadas por ”#” sao comentarios (ignorados ate ao fim da linha)

Um exemplo pode ser o seguinte:

P6

# Imagem ppm com 100x200 pixels

100 200

255

42

Page 54: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

A imagem colorida e entao convertida para tons de cinza, devido ao fato que uma imagem

em tons de cinza gera apenas um histograma e em outros padroes (imagens coloridas) gerarem

normalmente tres histogramas, sendo um para cada cor referente ao sistema de cores. Esse al-

goritmo consiste em verificar a intensidade da cores em cada tom do RGB, utilizado comumente

em imagens e usar a formula

l = 0.2126 ∗ rc+ 0.7152 ∗ gc+ 0.0722 ∗ bc

que consistem em multiplicar os valores das cores vermelha, verde e azul e obter qual a a

variacao que esta representara na imagem em escala de cinza. O Algoritmo 8.2 demonstra os

passos utilizados.

1 grayimage t o g r a y s c a l e ( image img )2 {3 unsigned int x , y ;4 grayimage timg ;5 double rc , gc , bc , l ;6 unsigned int o f s ;78 timg = a l l o c g ray img ( img−>width , img−>he ight ) ;9

10 for ( x=0; x < img−>width ; x++)11 {12 for ( y=0; y < img−>he ight ; y++)13 {14 o f s = ( y ∗ img−>width ) + x ;15 rc = (double ) img−>buf [ o f s ] [ 0 ] ;16 gc = (double ) img−>buf [ o f s ] [ 1 ] ;17 bc = (double ) img−>buf [ o f s ] [ 2 ] ;18 l = 0.2126∗ rc + 0.7152∗ gc + 0.0722∗ bc ;19 timg−>buf [ o f s ] [ 0 ] = ( luminance ) ( l +0.5) ;20 }21 }22 return timg ;23 }

Listing 8.2: Metodo de conversao de imagens para tons de cinza

Logo apos a conversao para os tons de cinza, armazena-se a imagem na Estrutura 8.3 . Com

a imagem convertida em tons de cinza, e iniciado o processo de computacional do histograma.

Com isso, um vetor representando a imagem e gerado pelo processo do histograma, sendo seu

conteudo dado como entrada a cada neuronio da camada inicial da RNA.

1 typedef unsigned char luminance ;2 typedef luminance p i x e l 1 [ 1 ] ;3 typedef struct {4 unsigned int width ;5 unsigned int he ight ;6 p i x e l 1 ∗buf ;

43

Page 55: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

7 } grayimage t ;8 typedef grayimage t ∗grayimage ;

Listing 8.3: Estrutura da imagem em tons de cinza

O processo para a obtencao do histograma pode ser executado na CPU e/ou GPU. Quando

executado na CPU, o vetor que manipula a imagem ainda colorida tem o tamanho das dimensoes

da imagem dada como entrada. Por exemplo, uma imagem de 640x480 pixels seria armazenada

em um vetor de 307200 posicoes (640 x 480). Ja na sua transformacao para os tons de cinza,

esse e reduzido para um vetor de saıda com 256 posicoes, identificando a quantidade de vezes

que cada tom apareceu.

Ja no GPU, o armazenamento e realizado por um vetor multidimensional (h data) cujo

tamanho e definido pela largura e altura da imagem. Nessa arquitetura o processamento e

distribuıdo entre multiplas threads, as quais, geram durante a execucao os chamados subhisto-

gramas.

O subhistograma de um bloco e armazenado na memoria compartilhada em uma matriz

(s Hist[]) word 2D de WARP N linhas por BIN COUNT colunas, onde cada warp (grupo de

threads). O metodo responsavel por executar essa tarefa e obter o histograma de cores pode

ser observado no Algoritmo 8.4.

1 d e v i c e void addData256 ( volat i le unsigned int ∗ s WarpHist ,2 unsigned int data , unsigned int threadTag ) {3 unsigned int count ;4 do{5 count = s WarpHist [ data ] & $0x07FFFFFFU$ ;6 count = threadTag | ( count + 1) ;7 s WarpHist [ data ] = count ;8 }while ( s WarpHist [ data ] != count ) ;9 }

Listing 8.4: Metodo para obtencao do histograma de cores em GPU

A primeira coisa que cada thread faz e a leitura do valor anterior do contador do histograma.

Os bits mais significativos do contador sao mascarados e substituıdos com o valor da thread

atual. Em seguida, cada thread escreve o contador incrementado de volta no subhistograma em

memoria compartilhada. A ultima fase de calculos e a fusao de subhistogramas por warp em

um unico histograma por bloco, que pode ser conferido no Algoritmo 8.5.

1 for ( int pos = threadIdx . x ; pos < BIN COUNT; pos += blockDim . x ) {2 unsigned int sum = 0 ;3 for ( int base = 0 ; base < BLOCK MEMORY; base += BIN COUNT)4 sum += s H i s t [ base + pos ] & 0x07FFFFFFU ;5 #i f ATOMICS6 atomicAdd ( d Result + pos , sum) ;7 #else8 d Result [ b lockIdx . x ∗ BIN COUNT + pos ] = sum ;9 #endif

10 }

44

Page 56: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Listing 8.5: Passos para a juncao dos subhistogramas no GPU

Com as duas primeiras etapas concluıdas, tem-se como passo seguinte a execucao da etapa

de treinamento da RNA. Esse processo consiste no ajuste dos pesos sinapticos representados

por valores de ponto flutuante a fim de gerar a saıda correta para um neuronio.

A rede neural denominada multilayer perceptron (MLP), utilizada nesse projeto, para fazer

o mapeamento dos conjuntos de dados de entrada para um conjunto de saıda apropriada. Foi

utilizado a tecnica chamada de aprendizado supervisionado para treinamento da rede. A rede

implementada consiste em uma camada de entrada, sendo os dados de imagens os histogramas

de cores das imagens, uma cada intermediaria com 256 neuronios e a camada de saıda com 1

neuronio. A funcao de ativacao utilizada e a funcao linear sigmoide demonstrada abaixo:

ϕ(v) =1

1 + e−av(8.1)

Como o treinamento da rede, pode ser paralelizado, pois as RNA’s foram projetadas para

serem executadas em paralelo e distribuıdo, o treinamento da rede foi executado sobre a arqui-

tetura CUDA.

Quando programado atraves da CUDA, o GPU passa a ser visto como um processador capaz

de operar em blocos de ate 256 threads em paralelo. Ele opera como um processador auxiliar ao

CPU, permitindo que porcoes de dados (ou funcoes) paralelizaveis, e que necessitem de grandes

quantidades de recursos computacionais, sejam carregados para ele, aliviando a carga do CPU.

Utilizando-se de que cada bloco pode operar ate 256 threads, as funcoes de forward e

backward sao as que, quando implementadas em uma arquitetura paralela, aproveitam do pa-

ralelismo da GPU. A funcao forward paralelizada funciona da seguinte maneira: a partir do

neuronio fornecido, obtem-se o valor do contador, atraves do calculo dos valores do ındice e

dimensao do bloco com o valor do ındice da thread, para gerar o valor do erro a ser propagado

para a saıda daquele neuronio, que pode ser conferido no Algoritmo 8.6.

1 g l o b a l void redep ( f loat ∗e , f loat ∗ s , Neuronio n) {2 int i = blockIdx . x+ blockDim . x+ threadIdx . x ;3 ∗ s += e [ i ] ∗ n . pesos [ i ] ;45 ∗ s −= n . b ia s ;6 }

Listing 8.6: Funcao redep que implementa a funcao forward

Com a propagacao de todos os erros de uma camada, efetua-se o processo do backward em

paralelo. A partir dos valores da camada oculta fornecida, os pesos dos neuronios da camada de

entrada sao ajustados com os valores dos pesos e as bias do neuronios ocultos. Com esse ajuste,

os valores da entrada sao recalculados a partir da saıda dos neuronios, que e demonstrada na

Figura 8.7

1 g l o b a l void redep2 ( f loat ∗e , CamadaOculta c , Camada camada ) {2 int i = blockIdx . x+ blockDim . x+ threadIdx . x ;

45

Page 57: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

3 int j = blockIdx . y+ blockDim . y+ threadIdx . y ;4 c . neuron ios [ i ] . deltaw [ j ] = eta ∗ e [ j ] ∗ c . e r ro [ i ] +alpha ∗ c . neuron ios [ i ] .

deltaw [ j ] ;5 c . neuron ios [ i ] . b i a s = eta ∗ (−1) ∗ c . e r ro [ i ] + alpha ∗ c . neuron ios [ i ] . b i a s ;6 e = camada . sa ida ;7 }

Listing 8.7: Funcao redep que implementa a funcao backward

Esse processo continua executando ate que o erro seja o desejado ou o numero de epocas de

treinamento seja atendido.

8.1 Consideracoes Finais

A fim de comprovar os resultados obtidos, no proximo capıtulo sao apresentados os resulta-

dos que comprovacao a melhoria do tempo computacional para o treinamento da rede. A seguir

sera apresentado os resultados e a plataforma utilizada.

46

Page 58: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

9Resultados

Os resultados aqui apresentados foram realizados para avaliar o desempenho do algoritmo

proposto para a reducao do tempo de treinamento de uma rede neural MLP. Esses tambem

foram aplicados para a identificacao de quais funcoes a paralelizacao do codigo se aplica. O

objetivo e demostrar que o GPU apresenta melhores resultados em relacao ao CPU. As duas

versoes do algoritmo foram implementadas na linguagem C++, utilizando a IDE XCode da

Apple e o CUDA, tanto para o hardware do CPU, quanto para o GPU. As configuracoes

utilizadas para tanto sao as seguintes:

• Sistema Operacional : MAC OS X

• Processador: Core 2 Duo 3.06 GHZ

• Memoria: 4GB DDR3 1067 MHZ

• Placa de Vıdeo: NVIDIA GEFORCE G320M

Para a leitura de imagens foram avaliados as implementacoes que fazem o algoritmo do

histograma tanto no CPU quanto no GPU. Para a leitura das imagens foi avaliado o tempo de

execucao do histograma de imagens. Ja para a rede neural foi avaliada a fase de treinamento,

sendo que o que foi paralelizado foi o forward e o backward, que sao as operacoes que demandam

de mais processamento. Os parametros para a obtencao do histograma foram a quantidade de

10, 20, 30, 40 e 50 imagens para arquivos respectivamente de 1, 5 e 10 MB. Para a rede neural

foram utilizados 256 pesos na camada de entrada, 256 neuronios na camada oculta e 1 neuronio

na camada de saıda com uma taxa de aprendizado de 5%.

A combinacao dos parametros acima citados foram utilizados para a criacao de quatro

diferentes avaliacoes. Na primeira avaliacao foi utilizado a leitura de imagens de tamanho de

47

Page 59: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

1 MB com a variacao da quantidade de 10 a 50. A Tabela 9.1 mostra os resultados obtidos,

juntamente com o seu speedup e o grafico apresentado pela Figura 9.1, demonstra que o CPU

para a leitura de imagens sempre se mostra inferior ao GPU.

Quantidade de Imagens Tempo (sec) CPU Tempo (sec) GPU Speedup10 0.31 0.13 2.3825 0.75 0.26 2,8850 1.54 0.53 2.92

Tabela 9.1: Execucao do histograma de imagens de tamanho de 1 MB na CPU e GPU.

Figura 9.1: Resultados da leitura de imagens de 1MB utilizando o CPU e o GPU

A segunda avaliacao consiste na leitura de imagens de tamanho de 5 MB com a variacao da

quantidade igual a anterior. A Tabela 9.3 mostra os resultados obtidos, juntamente com o seu

speedup e o grafico apresentado pela Figura 9.2, demonstra que o GPU e mais rapido na leitura

de imagens de maior resolucao e com maior quantidades de imagens

Quantidade de Imagens Tempo (sec) CPU Tempo (sec) GPU Speedup10 1.12 0.26 4.3325 2.59 0.57 4.5550 5.84 1.25 4.67

Tabela 9.2: Execucao do histograma de imagens de tamanho de 5 MB na CPU e GPU.

A terceira avaliacao corresponde a leitura de imagens de tamanho de 10 MB com a variacao

da quantidade de 10 a 50. A Tabela ?? mostra os resultados obtidos, juntamente com o seu

speedup e o grafico apresentado pela Figura ??, comprava que o GPU tem um desempenho

melhor na leitura de imagens de maior resolucao e com maior quantidades de imagens, que

demanda de maior processamento, que o processador.

A ultima avaliacao corresponde ao treinamento da rede neural para quantidades de imagens

diferentes. A Tabela 9.4 mostra os resultados obtidos em relacao ao treinamento por epocas,

48

Page 60: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 9.2: Resultados da leitura de imagens de 5 MB utilizando o CPU e o GPU

Quantidade de Imagens Tempo (sec) CPU Tempo (sec) GPU Speedup10 16.75 0.9 18.625 42.76 2.25 1950 89.26 4.565 19.55

Tabela 9.3: Execucao do histograma de imagens de tamanho de 10 MB na CPU e GPU.

juntamente com o seu speedup e o grafico apresentado pela Figura 9.4, mostra que o GPU, para

a tarefa de treinamento dos metodos de backward e forward apresenta um melhoria, em termos

de tempo computacional, eficaz em relacao ao treinamento sequencial. Isso se da pelo fato

que o GPU aproveitar do paralelismo distribuıdo que a rede neural apresenta na sua estrutura.

Ressalta-se que a GPU foi quase 2 vezes mais rapida que a CPU.

Quantidade de Imagens Tempo (ms) CPU Tempo (ms) GPU Speedup1 25 15 1.674 98 58 1.688 207 111 1.8612 314 175 1.7916 425 245 1.7320 536 306 1.7524 652 378 1.72

Tabela 9.4: Execucao do treinamento da rede neural na CPU e GPU.

9.1 Consideracoes finais

A partir das avaliacoes apresentadas, pode-se concluir que os 2 fatores principais que fizeram

que o GPU fosse mais rapido que o CPU foram o tamanho e a quantidade das imagens. A

variacao da quantidade de imagens se tratando da qualidade (tamanho) mostra que quanto mais

a quantidade de imagens, maior o volume de informacoes a ser processado, e consequentemente,

49

Page 61: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Figura 9.3: Resultados da leitura de imagens de 10 MB utilizando o CPU e o GPU

Figura 9.4: Resultados do treinamento utilizando o CPU e o GPU

a programacao paralela e mais eficiente que a programacao tradicional (sequencial). O mesmo

se sucede para a quantidade de imagens, pois aumentando a quantidade de imagens, aumenta-se

o tamanho das informacoes.

Os resultados obtidos com essa aplicacao auxilia a profissionais da area, pois com a reducao

do tempo de treinamento e leitura das imagens, o diagnostico e mais rapido, auxiliando assim as

pessoas com enfermidades, assim como o Melanoma, que se propaga rapidamente. No proximo

capıtulo, sera apresentadas as conclusoes deste trabalho.

50

Page 62: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Capıtulo

10Conclusoes

A diagnosticacao de varias enfermidades por meio de imagens vem ganhando muita impor-

tancia pelo fato de que os resultados sao significativos, o que prove a profissionais da saude um

auxılio maior e para os pacientes, maiores chances e qualidade de vida. Com isso, os sistemas

capazes de identificar doencas, ultimamente, vem se destacando na computacao.

Nesse trabalho foi elaborado uma pesquisa sobre os tipos de cancer, bem como sua letalidade

e sua forma de diagnostico com o objetivo de se conhecer a forma que se diferencia as imagens.

Com isso, buscou-se informacoes sobre tecnicas que auxiliem na obtencao de caracterısticas

baseadas nas tres principais maneira: cor, formas e textura para entao fazer uma abordagem

sobre a forma de classificacao de imagens e propos-se o uso das Redes Neurais Artificiais, mais

especificamente a MLP.

Por fim, para a reducao do tempo de treinamento da MLP e obtencao das caracterısticas das

imagens buscou-se metodos de otimizacao de algoritmos, e com isso, utilizou-se a abordagem

de GPGPU nas placas de vıdeo NVIDIA, utilizando-se a tecnologia CUDA.

Ao se realizar os experimentos conclui-se que a paralelizacao dos algoritmos de obtencao de

caracterısticas e para o treinamento da rede neural e uma solucao robusta para a aplicacao em

questao. Alem disso, notou-se que, a utilizacao do paralelismo e muito eficiente a medida em

que se aumenta o tamanho do problema (leitura de imagens ou entradas da rede neural).

Como contribuicao, esse trabalho proporcionou a publicacao de um artigo no XXXI CI-

LAMCE, evento ocorrido em Buenos Aires na Argentina do dia 15 a 18 de novembro deste

ano. Para a comunidade, este trabalho colaborou com uma das areas que ainda necessitam de

estudos, que e a area de classificacao de imagens de doencas juntamente com a utilizacao de

computacao paralela.

Entretanto, ressalta-se que ainda e necessario mais estudos a fim de melhorar a acuracia da

rede neural e se a utilizacao de outras formas de caracterizacao de imagens ou agrupamento de

51

Page 63: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

varias melhoram a classificacao das imagens. Alem disso, pretende-se reformular a rede neural

para consolidar os resultados. Enfim, por ser uma aplicacao complexa, ainda existe muitos

pontos a serem explorados em trabalhos futuros.

10.1 Trabalhos futuros

Acredita-se que este trabalho contribuiu satisfatoriamente, tanto no campo teorico quanto

pratico, para a utilizacao de tecnicas de processamento de imagens (mais especificamente de

analise de imagens) em conjunto com as redes neurais artificiais em paralelo para se obter

melhores resultados em termo de tempo computacional para imagem do cancer de pele do tipo

Melanoma. Entretanto, devido ao tempo e a complexidade da aplicacao, alguns pontos nao

foram explorados. Por isso, ressalta-se alguns pontos que podem ser estudados e aprofundados

em trabalhos futuros:

• Reformular a Rede Neural para verificar melhores formas de classificacao;

• Aumentar o banco de imagens de treinamento e o banco de imagens de teste;

• Criar um banco de imagens em convenio com hospitais;

• Implementar um sistema de probabilidades capaz de estimar as chances de uma lesao ser

Melanoma ou nao Melanoma;

• Aumentar a quantidade de classes, ou seja, dividir as imagens em diversos tipos de doencas

de pele (cancerosas ou nao);

• Incluir caracterısticas de forma e textura no modelo proposto.

• Utilizar outras formas de paralelizacao, como placas de vıdeo AMD e processadores CELL,

alem da utilizacao de OPEN CL.

52

Page 64: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

Referencias Bibliograficas

AZEVEDO, E.; CONCI, A. Computacao Grafica: Geracao de Imagens. Rio de Janeiro:

Campus, 2003.

BITTENCOURT, C. D. R. Classificacao Automatica do Acabamento de Gordura em Imagens

Digitais de Carcacas Bovinas. Dissertacao (Mestrado) — Universidade de Brasılia, 2009.

BOTELHO, G. M. Processamento de Imagens no Auxılio a Deteccao de Cancer de Pele

Utilizando Redes Neurais Artificiais. 2007. 54 p. Monografia.

CONCI, A.; AZEVEDO, E.; LETA, F. R. Computacao Grafica: Teoria e Pratica. Rio de

Janeiro: Elservier, 2008.

FOLEY, J. D. et al. Computer Graphics: Principles and Practice. 2.. ed. Reading, MA:

Addison-Wesley, 1990. ISBN 978-0-201-12110-0.

GONZALES, R.; WOODS, R. Processamento de Imagens Digitais. Sao Paulo: Edgard Blucher

Ltda, 2000.

HAYKIN, S. Redes Neurais: Princıpios e Pratica. 2. ed. Sao Paulo: BookMan, 2007.

HEBB, D. O. The organization of behavior. New York: Wiley, 1949.

Instituto Nacional do Cancer. Cancer de pele-melanoma-inca. 2010. Disponıvel em:

<http://www.inca.gov.br/conteudo view.asp?id=335>.

KIRK, D.; HWU, W. mei. Programming Massively Parallel Processors: A Hands-on Approach.

[S.l.]: Morgan Kaufmann, 2010.

LUDWIG, O.; MONTGOMERY, E. Redes Neurais: Fundamentos e Aplicacoes com Programas

em C. Rio de Janeiro: Editora Ciencia Moderna, 2007.

MARTINEZ, M. A. R. et al. Genetica molecular aplicada ao cancer cutaneo nao melanoma.

Anais Brasileiros de Dermatologia, scielo, v. 81, p. 405 – 419, 10 2006. ISSN 0365-0596.

53

Page 65: Utilização de Técnicas Inteligentes para a Detecção de Melanoma: Uma Abordagem Baseada em Redes Neurais Artificiais e GPGPU

MEDEIROS, L. F. de. Redes Neurais em Delphi. Sao Paulo: Visual Books, 1996.

NAGESWARAN, J. M. et al. Efficient simulation of large-scale spiking neural networks

using cuda graphics processors. In: IJCNN’09: Proceedings of the 2009 international joint

conference on Neural Networks. Piscataway, NJ, USA: IEEE Press, 2009. p. 3201–3208. ISBN

978-1-4244-3549-4.

NVIDIA. CUDA ZONE. 2010. Disponıvel em: <http://www.nvidia.com/object/cuda>.

PEDRINI, H.; SCHWARTZ, W. R. Analise de Imagens Digitais:Princıpios, Algoritmos e

Aplicacoes. Sao Paulo: Thomson Learning Edicoes Ltda, 2007.

RAIZER, K. et al. Training and applying a feedforward multilayer neural network in gpu.

CILAMCE, 2009.

REZENDE, S. O. Sistemas Inteligentes: fundamentos e aplicacoes. Barueri: Manole, 2003.

54