Você está na página 1de 65

Utiliza cao de Tecnicas Inteligentes para a

Detec cao de Melanoma: Uma Abordagem


Baseada em Redes Neurais Articiais e
GPGPU
Tiago Alves de Oliveira
PROJETO DE CONCLUS

AO 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
Articiais e GPGPU
Tiago Alves de Oliveira
Michel Pires da Silva
Monograa apresentada ao Curso de Ciencia da Computacao do
UNIFOR-MG, como requisito parcial para obtencao do ttulo de
bacharel em Ciencia da Computa cao, sob a orientacao do Prof. Michel
Pires da Silva
Formiga MG
07 de dezembro de 2010
Dedico este trabalho primei-
ramente a Deus, aos meus
pais Geraldo e Maria e em
especial, a Juliana Apare-
cida Silva.
Agradecimentos
Agradeco primeiramente a Deus, pois sem Ele, nada seria possvel e nao estaria aqui
desfrutando desse momento que e t ao importante para mim.
Aos meus pais Geraldo e Maria; pelo esforco, dedicac ao e compreens ao, 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 conanca e credibilidade em minha pessoa, pelo m utuo
aprendizado de vida, durante nossa convivencia, no campo prossional e escolar. Amigos,
gratidao eterna!!!
Aos professores, especialmente ao Professor Msc. Michel Pires da Silva, pela contribui-
c ao, dentro de suas areas, para o desenvolvimento dessa monograa, e, principalmente pela
dedicac ao 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 consiga
atingir aos objetivos propostos.
Ignis de lapide surgit mediante labore.
Com trabalho tudo se alcanca
Autor Desconhecido
Sumario
Lista de Figuras ii
Lista de Tabelas iv
1 Introducao 1
1.1 Objetivo do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Estrutura da monograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Estado da Arte 4
2.1 Consideracoes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Consideracoes nais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Quantizac ao . . . . . . . . . . . . . . . . . . . . . . . . . 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 Rela cao Bin aria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.6 Medidas de Dist ancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 Etapas do Processamento de Imagens . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
i
5 Caracterizacao de Imagens 17
5.1 Caracterizac ao de Imagens atraves das Cores . . . . . . . . . . . . . . . . . . . . 17
5.1.1 Fundamento de Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.2 Sistemas de Representac ao de Cores RGB e CMY . . . . . . . . . . . . . 18
5.2 Histograma de Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 Redes Neurais Articiais 22
6.1 Redes Neurais Biologicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2 Redes Neurais Articiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2.1 Neur onio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Programac ao 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 nais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10 Conclusoes 51
10.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
ii
Lista de Figuras
3.1 ABCD do Melanoma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1 Eixos para representacao de imagens digitais . . . . . . . . . . . . . . . . . . . . 10
4.2 Efeitos da variac ao dos par ametros: (a)256 x 256 / 256 nveis; (b)32 x 32 / 256
nveis; (c)256 x 256 / 64 nveis; (d)256 x 256 / 2 nveis. . . . . . . . . . . . . . . 12
4.3 Exemplicac ao 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 Visvel das cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2 Cubo representando o espa co 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 neur onio biologico . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2 Modelo de um neur onio matematico. Fonte (HAYKIN, 2007) . . . . . . . . . . . 25
6.3 Graco da fun cao de limiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.4 Graco da fun cao linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.5 Graco da fun cao sigmoide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.6 Rede com uma unica camada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.7 Rede com uma camada intermedi aria . . . . . . . . . . . . . . . . . . . . . . . . 29
6.8 Rede Recorrente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.1 Diferenca da especicac ao dos processadores na CPU e na GPU . . . . . . . . . 37
7.2 A arquitetura runtime da CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.3 Exemplicac ao da thread Batching da CUDA . . . . . . . . . . . . . . . . . . . 40
8.1 Solucao hbrida para a reduc ao 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
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
Lista de Tabelas
9.1 Execuc ao do histograma de imagens de tamanho de 1 MB na CPU e GPU. . . . 48
9.2 Execuc ao do histograma de imagens de tamanho de 5 MB na CPU e GPU. . . . 48
9.3 Execuc ao do histograma de imagens de tamanho de 10 MB na CPU e GPU. . . 49
9.4 Execuc ao do treinamento da rede neural na CPU e GPU. . . . . . . . . . . . . . 49
v
Resumo
OLIVEIRA, T. A. Utilizacao de tecnicas inteligentes para a deteccao de melanoma: uma abordagem
baseada em redes neurais articiais e GPGPU. (Gradua cao) Centro Universitario de Formiga
UNIFOR-MG Formiga, 2010.
Sistemas Distribudos e computac ao paralela vem sendo utilizados para os mais diversos pro-
p ositos. O atrativo para tanto esta na sua capacidade de prover alto desempenho sobre uma
arquitetura transparente e exvel a nvel de usuario.

Areas, tais como, a ciencia da computacao
e a medicina aplicam esses conceitos para a obten cao de resultados em tempo computacional
viavel. Exemplos disso podem ser observados em trabalhos direcionados para o processamento
do genoma humano, tomograa 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, ser ao utilizados conceitos de redes neurais ar-
ticiais combinadas ao processamento paralelo de imagens em GPGPU visando alta vaz ao e
desempenho computacional. Os resultados destes demonstram que a utilizac ao de paralelizac ao
melhora o treinamento da rede e a leitura das imagens. Conclui-se com isso que a utilizac ao de
GPGPU auxilia no processo classicat orio de Melanoma.
Palavras-chave: Tecnicas Inteligentes, Redes Neurais Articiais, Programa cao Paralela, GPGPU,
Processamento de Imagens, Histograma de Cores.
vi
Captulo
1
Introdu cao
O uso de tecnicas computacionais est a se tornando, cada vez mais, comum em diversas areas
do conhecimento. Isso ocorre devido ao alto tempo exigido no processo de obtenc ao de bons
resultados para muitos casos reais. Na computac ao, tecnicas como, heursticas, metaheursticas,
inteligencia articial e computacao natural, muitas vezes, sao empregadas visando melhorar esse
desempenho e obter resultados signicativos.
A inteligencia articial e a computacao evolutiva, por exemplo, auxiliam nesse segmento
simulando o comportamento humano para a busca de alternativas vi aveis para problemas com-
plexos ao custo de um baixo tempo computacional. Os algoritmos geneticos e as redes neurais
articiais s ao exemplos disso.
Segundo Haykin (2007), as redes neurais articiais (RNA) apresentam dentre suas caracters-
ticas modelos matem aticos que se assemelham `as estruturas neurais biol ogicas. Essas estruturas
apresentam a capacidade computacional adquirida por meio de aprendizado e generalizac ao de
estruturas chamadas de neuronios. O neur onio, por sua vez, e a unidade de processamento
de informacao que e fundamental para a opera cao da rede. Nele, tem-se uma func ao de ati-
va cao, que restringe a amplitude da sada do neur onio durante o treinamento. Essa funcao e
aplicada junto a mecanismos como o backpropagation para o treinamento da rede. No entanto,
dependendo do problema, sua aplicac ao e prejudicada por demandar muito tempo e alto poder
computacional.
A utilizac ao de sistemas distribudos e computacao paralela pode melhorar o tempo de
treinamento deste mecanismo, assim, torna-se alvo de v arias pesquisas da atualidade. A com-
puta cao paralela e uma forma de computac ao em que v arios c alculos sao realizados simulta-
neamente, operando sob o princpio de que grande problemas geralmente podem ser divididos
em problemas menores, que ent ao sao resolvidos concorrentemente (em paralelo) (KIRK; HWU,
2010). Existem diferentes formas de computa cao paralela: em bit, instrucao, de dado ou de
1
tarefa. Uma maneira de programa cao paralela e a baseada em GPGPU. A computa cao pa-
ralela baseada em general-purpose computing on graphics processing units (GPGPU), ou , na
traducao livre Computac ao Geral em Unidades de Processamento Gr aco aproveita do poder
de paralelismo nos processadores gr acos 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
m ultiplos c alculos, os quais, em paralelo, visto que a mesma possui SP (stream processor) sao
realizados ao mesmo tempo. Ela se torna recomendada para c alculos pesados, processamento
de imagens, computacao graca, jogos, entre outros nas mais diversas areas (NVIDIA, 2010).
O processamento de imagens e a forma de processamento de dados cuja a entrada e sada s ao
imagens, tais como, fotograas ou quadros de vdeo. Dentre suas tecnicas tem-se a resolu cao de
imagem, limite dinamico, largura de banda, ltro, operador diferencial, histograma, deteccao de
borda e a reduc ao de rudo. Dentre essas tecnicas, o histograma de cores e uma representa cao
gr aca da distribuic ao de frequencias de uma massa de medic oes, normalmente um gr aco de
barras verticais, que neste trabalho foi utilizado para a obtenc ao dos dados de entrada.
Neste trabalho, para a obtenc ao 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 articiais e GPGPU para alcancar resultados expressivos no processo de avalia cao
e detecc ao do c ancer 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 detec cao de melanoma atraves de imagens para diagn os-
ticos, atraves de tecnicas de processamento de imagens e redes neurais articiais em paralelo.
A seguir ser ao descritos os objetivos especcos:
Aplicar tecnicas de processamento de imagens digitais para desenvolver uma solucao a
partir do problema descrito;
Utilizar as redes neurais articiais para avaliar as imagens de c ancer de pele Melanoma;
Estudar e utilizar paralelismo nas duas tecnicas citadas anteriormente para melhora do
tempo de treinamento da Rede Neural Articial e sua obtencao de resultados;
Auxiliar prossionais da sa ude na detecc ao do c ancer de pele do tipo Melanoma, maxi-
mizando as chances e a qualidade de vida dos pacientes.
1.2 Estrutura da monograa
Este trabalho e composto por dez captulos. No Captulo 2 s ao apresentados trabalhos
relacionados com o objetivo deste trabalho. O Captulo 3 e enfatizado sobre o C ancer de Pele.
2
J a o Captulo 4 denota algumas denic oes de Processamento de Imagens. Continuando, o
captulo 5 mostra a Caracterizacao de Imagens. No captulo 6 apresenta-se os conceitos sobre
Redes Neurais Articiais. O captulo 7 e mostrado a tecnologia CUDA. No captulo 8 descreve-
se o desenvolvimento do projeto em si. No captulo 9 apresenta-se testes e os resultados obtidos.
Por m, o Captulo 10 apresenta as conclusoes deste trabalho e os trabalhos futuros.
3
Captulo
2
Estado da Arte
2.1 Consideracoes iniciais
As redes neurais sao utilizadas para os mais diversos ns. Na literatura, existem trabalhos
que as utilizam para o reconhecimentos de padr oes. Os trabalhos de Botelho (2007), Bittencourt
(2009), Nageswaran et al. (2009), Raizer et al. (2009) s ao alguns desses. Estes trabalhos ser ao
relatados na sec ao 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 detecc ao de Melanoma. Ap os 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 obtenc ao de resultados realmente signicativos demanda
de muito esforco e alto poder computacional, utilizando-se redes neurais.
J a no trabalho de Bittencourt (2009) foi utilizado o processamento de imagem juntamente
com uma RNA do tipo Mutilayer Perceptron (MLP) para obten cao de uma classicac ao dos
nveis de gordura na carcaca bovina. Os testes de avaliac ao de desempenho da RNA proposta
apresentaram 86% de acuracia para a tarefa de classicac ao do acabamento da carne bovina.
Os resultados apresentados demonstram que, em alguns casos, a utilizacao de um baixo n umero
4
de amostras pode trazer boas avalia coes para processos classicat orios.
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 contribuic ao para o caso
geral a aplica cao da computa cao paralela como forma de melhoria na obten cao de resultados. No
trabalho de Nageswaran et al. (2009), e apresentado um conjunto de novas tecnicas relacionadas
` a extracao de paralelismo, mapeamento de comunicac ao irregular, e representac ao de rede
compacta para simulac ao ecaz de uma RNA do tipo Spiking Neural Network (SNN) executando
sobre a arquitetura de GPU. A delidade dos resultados da simula cao foram comprovados por
meio de execucoes feitas na CPU utilizando taxa de aprendizado, distribuic ao do peso sin aptico
e intervalo m aximo de analise iguais para ambas as arquiteturas. A implementac ao na GPU
apresentou-se vinte e quatro vezes mais r apida que a versao da CPU.
J a 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 congurac oes de RNA cujo fator de modicacao se centralizou na com
quantidades de neuronios. Os testes realizados demonstraram que o uso de GPU pode prover
benefcios quando o n umero de neur onios em camadas intermedi arias e relativamente grande.
Enfatiza-se que o princpio das redes neurais e o processamento paralelo e distribudo e como o
princpio da programacao em GPGPU e paralelizar os processamento de dados, a sua utilizac ao
e altamente viavel, pois h a um volume elevado e signicativo de processamento nas RNA.
2.3 Consideracoes nais
Observando os avancos das pesquisas anteriormente citadas, neste trabalho pretende-se uti-
lizar dos recursos de GPGPU e redes neurais articiais para a classica cao e identicacao do
c ancer melanoma. Objetiva-se com isso obter resultados expressivos a partir da melhoria do
processo de treinamento das RNAs. No proximo captulo e apresentado alguns conceitos fun-
damentais do melanoma, juntamente com denicoes de c ancer, para a sua detec cao que sera
abordada logo em seguida.
5
Captulo
3
Cancer
C ancer 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 regi oes do corpo. Tais doencas tendem, em sua maioria, a serem ex-
tremamente agressivas e deixarem sequelas irreversveis no ser humano. Assim, quanto mais
cedo for feito a sua identicac ao, maiores s ao as possibilidades de tratamento e cura (Instituto
Nacional do Cancer, 2010).
3.1 Cancer de Pele
O c ancer de pele se caracteriza pelo crescimento aut onomo 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, dicultando o tratamento. Como a pele e formada
por mais de um tipo de celula, tem-se diferentes tipos de c anceres de pele, dentre eles os mais
comuns s ao o Carcinoma Basocelular, o Carcinoma Espinocelular e o Melanoma.
O Carcinoma Basocelular e o tumor maligno cut aneo mais frequente, compreendendo cerca
de 75% dos diagn osticos, porem, e de baixa letalidade devido `a facilidade de identica cao e,
principalmente, pelo fato de raramente apresentar metastase. Na maioria das vezes, localiza-se
na regi ao da cabe ca e do pescoco, acomete pessoas com mais de 40 anos de idade, de pele
clara e com historico de exposi cao 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 les oes (feridas ou n odulos) de crescimento lento. Apesar de raramente apresentar metastase,
pode ser localmente destrutivo se descoberto tardiamente. O tratamento e realizado atraves de
procedimentos cir urgicos para a retirada do tumor e, se necessario, emprega-se a radioterapia.
J a o Carcinoma Espinocelular representa 20% dos diagn osticos de neoplasias cut aneas e
6
origina-se nos queratin ocios (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 met astase, fato este
que torna o diagn ostico precoce muito importante para a cura. O Carcinoma Espinocelular
caracteriza-se pela formac ao de feridas de r apida evolu cao, que muitas vezes vem acompanha-
das de secrecao e coceira. Tende a desenvolver-se em areas previamente inamadas ou com
cicatrizes e a localizar-se em regioes expostas do corpo como, por exemplo, pescoco e cabe ca
(principalmente no l abio inferior, nariz e orelhas). O tratamento e feito basicamente atraves de
cirurgia, radioterapia e se preciso, quimioterapia.
O Melanoma e a neoplasia cut anea de menor incidencia, porem de maior letalidade devido ` a
diculdade de identicac ao e ` a formac ao de met astases. Este tumor origina-se nos melan ocitos
(celulas produtoras de melanina) e pode surgir em varias regi oes do corpo, fato que torna a
exposic ao solar excessiva apenas uma de suas causas. Outros fatores de risco s ao determinados
pela existencia de lesoes pigmentadas irregulares, presenca de nevos (pintas) transformados,
hist orico familiar de melanoma e pigmentacao clara da pele (MARTINEZ et al., 2006). Apesar
do melanoma ser o cancer de pele mais letal, se identicado precocemente e removido cirur-
gicamente, a probabilidade de cura ter a um aumento signicativo. Entretanto, para que isto
aconte ca e necess ario saber reconhecer as caractersticas que o identicam.
Existem quatro caractersticas padr oes que sao conhecidas como ABCD do melanoma, cuja
as letras referem-se a:
Assimetria;
Bordas Irregulares;
Colorac ao Irregular;
Diametro superior a 6 mm
Um exemplo de tais caractersticas pode ser observado na Figura 3.1.
Figura 3.1: ABCD do Melanoma.
7
3.2 Consideracoes Finais
A detecc ao do melanoma e feita essencialmente atraves de exames de avaliac ao de imagens,
que s ao classicadas atraves do ABCD do melanoma. Para obter imagens de melhor qualidade e
forma o banco de caractersticas delas, e utilizado o processamento de imagens que basicamente
consiste no tratamento de imagens para poder utiliz a-las. No pr oximo captulo e demonstrado
alguns desses conceitos.
8
Captulo
4
Processamento de Imagens
O processamento de imagens consiste em um conjunto de tecnicas para capturar, representar
e transformar uma gura com o auxlio do computador (PEDRINI; SCHWARTZ, 2007), que podem
ser capturadas por dispositivos imageadores. Esses capturadores podem ser c ameras digitais,
scanners, tomografos, sensores infravermelhos, entre outros.
O processamento de imagens digitais evoluiu intensamente e hoje possui diversas aplicac oes,
entre elas encontram-se: interpretac ao de raios-X e outras imagens medicas, monitoramento de
plantac oes, queimadas e desmatamentos, restaurac ao de imagens antigas, reconhecimento de
padr oes e outras (GONZALES; WOODS, 2000). Com isso, a medida que os equipamentos gr acos
(placas de vdeo e monitores) e os computadores (CPU) cam mais poderosos e mais baratos,
a quantidade de aplica coes aumenta.
A area processamento de imagens divide-se em categorias fundamentais (CONCI; AZEVEDO;
LETA, 2008), que s ao:
Realce de imagens: utilizado para melhorar as propriedades visuais de uma imagem,
tornando-a mais apropriada para uma aplica cao especca;
Restaurac ao de imagens: tem por objetivo reconstruir ou recuperar uma imagem dani-
cada;
An alise de imagens, que busca extrair informac oes ou caractersticas a partir de uma
imagem
A utilizac ao de tecnicas includas em mais de uma categoria para alcancar um resultado
satisfat orio e necessaria muitas vezes. Contudo, antes de executar qualquer processamento
em uma imagem precisa-se digitaliz a-la, o que permitira a manipula cao de seus elementos.
Nessa sessao e abordada a representac ao de imagens digitais, juntamente com diversos conceitos
9
fundamentais relacionados com a manipula cao de seus elementos. Alem disso, ser a apresentado
uma vis ao 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 fun cao bidimensional de intensidade da luz f(x, y), onde x e y s ao a sua coordenada no
plano e o valor de f em qualquer ponto (x, y) representa o brilho ou o nvel 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 representac ao de imagens digitais
A geracao de uma imagem pode ser afetada por dois fatores: a ilumina cao, i(x, y), que e a
quantidade de luz incidindo na cena e a reectancia, r(x, y), correspondente a quantidade de
luz reetida 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
e
0 < r(x, y) < 1. (4.3)
A reet ancia, representada pela equac ao 4.3, possui valores entre 0, que indica absorc ao
total da luz e 1, que indica reetancia total. Com isso, a iluminac ao i(x, y) e determinada
pela fonte emissora de luz, e r(x, y) e determinada pelas caractersticas do objeto presente na
cena. Em imagens digitais, para que a func ao f(x, y) seja adequada para o processamento
computacional, ela precisa ser digitalizada tanto espacialmente quanto em amplitude atraves
dos metodos de Amostragem e Quantizac ao(PEDRINI; SCHWARTZ, 2007).
4.1.1 Amostragem e Quantizacao
Os processos de Amostragem e Quantizac ao s ao empregados na digitalizac ao de uma ima-
gem, ou seja, modic a-la de forma que ela possa ser armazenada e processada em um computa-
dor. O processo de Amostragem e denido pela digitalizac ao 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 contnua f(x, y) e aproximada por amostras
igualmente espacadas, arranjadas na forma de uma matriz MxN como pode ser conferido na
equac ao 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 nvel 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
nveis de cinza, sendo que quanto mais proximo ao valor 0, mais escuro ser a.
Uma imagem no formato digital corresponde a uma aproximac ao de uma imagem analogica
da qual ela foi obtida. Com isso, a qualidade da imagem (aproximac ao) depender a essencial-
mente dos valores de N, M e L usados. Geralmente, quanto maiores estes par ametros, melhor a
qualidade da digitalizac ao. Consequentemente, maior ser a o n umero de bits que serao necessario
para a codicacao bin aria da imagem, visto que:
b = M x N x l (4.5)
Onde N M corresponde ` a dimens ao nos eixos x e y da imagem e l e o menor inteiro tal
que o conjunto de nveis de cinza L 2
l
. A varia cao destes valores resulta na modicacao da
qualidade da imagem, como pode ser observado na Figura 4.2. Diversas alterac oes realizadas
11
em imagens resultam na modicacao de seus pixels e, para alcan car um resultado satisfat orio
atraves das diversas tecnicas existentes torna-se necess ario o conhecimento de conceitos b asicos
relacionados aos pixels(AZEVEDO; CONCI, 2003).
Figura 4.2: Efeitos da variacao dos par ametros: (a)256 x 256 / 256 nveis; (b)32 x 32 / 256
nveis; (c)256 x 256 / 64 nveis; (d)256 x 256 / 2 nveis.
4.2 Conceitos Basicos de Pixels
Sendo os pixels a unidade basica para a formac ao de imagens, o conhecimento sobre a re-
lac ao entre estes torna-se util para a sua manipulac ao, 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 manipulac ao seja adequada ao seu deve-se conhecer os relacionamentos
existentes entre eles. As subsecoes subsequentes apresentam alguns conceitos b asicos realiza-
dos aos pixels, os quais s ao 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 s ao denidas por:
(x + 1, y), (x 1, y), (x, y + 1), (x, y 1) (4.6)
A esse conjunto de pixel e chamado de vizinhancade4 de p e pode ser representado por
N
4
p. 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
e podem ser representados por N
D
p. A uni ao dos vizinhos diagonais com a vizinhan cade4
tem-se a chamada vizinhanca-de-8 (N
8
(p)). A Figura 4.3 denota essas denic oes.
(a) Vizinhanca de 4 do pixel X (b) Vizinhan ca de 8 do pixel X
Figura 4.3: Exemplica cao da Vizinhanca de 4 e Vizinhanca de 8 de um pixel
Destaca-se que a vizinhanca pode ser ampliada de acordo com a aplica cao e que em certas
posic oes como, por exemplo, nas bordas de uma imagem, um pixel p n ao ter a alguns de seus
vizinhos. Com isso, ao ser aplicado alguma tecnica de processamento de imagens, deve-se
efetuar modicac oes ao se trabalhar com as bordas com o objetivo de se obter um resultado
uniforme na imagem, n ao deixando que nenhum pixel da borda que sem a alteracao desejada.
4.2.2 Conectividade
Dois pixels p
1
e p
2
podem ser chamados de conectados quando satisfazem a dois criterios. O
primeiro diz que os pixels devem ser adjacentes, ou seja, devem ser vizinhosde8. O segundo
diz que os pixels devem atender a algum criterio especco de classicac ao, como por exemplo,
seus nveis de cinza devem ser iguais (GONZALES; WOODS, 2000).
Para exemplicar o conceito de conectividade, pode-se usar como exemplo uma imagem
bin aria (com apenas valores 0 e 1), na qual dois de seus pixels vizinhosde4 s o ser ao 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 regi oes de uma imagem(PEDRINI;
SCHWARTZ, 2007).
4.2.3 Caminho
Um caminho entre os pixels p
0
, representado por p
0
= (x
0
, y
0
), e p
n
, representado por
p
n
= (x
n
, y
n
), e uma sequencia de pixels distintos com coordenadas (x
0
, y
0
), (x
1
, y
1
), ..., (x
n
, y
n
),
onde n corresponde ao comprimento do caminho e, (x
i
, y
i
) e (x
i
1, y
i
1), com i = 1, 2, ...n,
s ao adjacentes. A denicao de caminho e importante para a determinac ao dos componentes
conexos em uma imagem.
13
4.2.4 Componente Conexo
Dado um subconjunto S de uma imagem e dois pixels p
1
e p
2
contidos neste subconjunto,
ent ao, pode-se dizer que p
1
estara conectado a p
2
em S se existir um caminho entre p
1
e p
2
consistindo somente de pixels de S. Com isso, o componente conexo ser a o conjunto de pixels
em S que est ao conectados a p
1
, para qualquer pixel p
1
em S (GONZALES; WOODS, 2000).
Ressalta-se que em um componente conexo, quaisquer dois pixels est ao conectados um ao outro
e os componentes conexos distintos s ao disjuntos.
4.2.5 Relacao Binaria
Seja uma imagem A ou um componente conexo da imagem. Ent ao, uma Rela cao Binaria R
sobre a imagem A ser a 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 est a relacionado a b (aRb).
Alem disso, uma relacao bin aria R sobre A pode ser do tipo:
Reexiva: 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 Relac ao
de Equivalencia. A relac ao binaria e utilizada para ilustrar e vericar 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 utilizac ao de medidas de dist ancia.
Considerando os pixels p
1
, p
2
e p
3
, com coordenadas (x
1
, y
1
), (x
2
, y
2
) e (x
3
, y
3
) respectivamente,
D corresponde a uma funcao de distancia se (GONZALES; WOODS, 2000):
1. D(p
1
, p
2
) 0.
2. D(p
1
, p
2
) = D(p
2
, p
1
).
3. D(p
1
, p
3
) D(p
1
, p
2
) + D(p
2
, p
3
).
A partir destas tres condic oes pode-se obter algumas medidas de distancia. Dentre elas, a
mais referenciada e a Dist ancia Euclidiana, representada pela equacao 4.8. Alem da Distancia
Euclidiana, tem-se a Dist ancia D4 (ou Dist ancia City Block) e a Dist ancia D8 (ou Dist ancia
Xadrez), representadas, respectivamente, pelas equac oes 4.9 e 4.10.
D
e
(p
1
, p
2
) =
_
(x1 x2)
2
+ (y1 y2)
2
(4.8)
14
D
4
(p
1
, p
2
) = |x1 x2| +|y1 y2| (4.9)
D
8
(p
1
, p
2
) = max(|x1 x2|, |y1 y2|) (4.10)
Essas medidas de dist ancia sao frequentemente usadas para vericar a similaridade entre
imagens. Quanto menor a distancia entre os pixels das imagens, maior ser a 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, est a deve passar por
algumas etapas b asicas que vao desde a sua aquisi cao ate a sua exibi cao. Esses passos podem
ser vericados na Figura 4.4 e englobam um sistema de processamento completo, porem, nem
todas s ao utilizadas por todas as aplicac oes.
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 c amera de TV que produza uma imagem do
problema.
Ap os a aquisicao da imagem no formato digital, a pr oxima 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, remoc ao de rudo e isolamento de regi oes cuja textura indique a
probabilidade de informa cao alfanumerica.
15
Concludo o pre-processamento, o pr oximo 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 func ao b asica da segmenta cao e a extracao de caracteres
individuais e palavras do fundo da imagem. Normalmente, a segmentac ao automatica e uma
das tarefas mais difceis no processamento de imagens.
Como a sada da etapa de segmentac ao e constituda 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 regi oes completas.
A escolha de uma representac ao consiste em parte da solu cao para a transformac ao dos dados
iniciais num forma adequada ao seu processamento. Uma forma de descri cao dos dados tambem
deve ser especicada, para que as caractersticas de interesse sejam destacadas. A esse processo
de descricao, tambem chamado de selecao de caractersticas, procura extrair caractersticas que
resultem em alguma informac ao util, seja ela quantitativa ou b asica, para a discriminacao entre
classes de objetos.
A ultima etapa envolve o reconhecimento e interpretacao. O Reconhecimento consiste no
processo de atribui cao de um r otulo a um objeto, baseado em informa coes fornecidas pelo
seu descrito. Ja a Interpretacao envolve a atribuicao de signicado a um conjunto de objetos
reconhecidos.
Alem desses componentes existe o conhecimento sobre o domnio do problema, que est a
codicado 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 informac ao de interesse. A base de conhecimento pode tambem ser complexa, tal
como um lista inter-relacionada de todos os principais defeitos possveis em uma regi ao em um
problema de inspec ao de materiais. Alem de guiar a opera cao de cada m odulo de processamento,
a base de conhecimento tambem controla a interacao entre os m odulos. Tambem e importante
ressaltar que a visualizacao de resultados do processamento de imagens pode ocorrer na sada
de qualquer etapa da Figura 4.4
4.4 Consideracoes Finais
Nem sempre todas as etapas sao necess arias para se obter o que se deseja. Por exemplo,
neste trabalho ser a dado enfase a caracterizac ao de imagens, ou seja, o processo de descric ao de
imagens devido ` a necessidade de obter informac oes para a aplicacao. No pr oximo captulo s ao
apresentados os conceitos de caracterizac ao de imagens, que ser ao utilizados para a classicac ao
das imagens.
16
Captulo
5
Caracteriza cao de Imagens
Uma imagem digital corresponde a uma matriz contendo as informa coes dos pixels sem
nenhum signicado util. Porem, a partir desses dados existe a possibilidade de obter informac oes
que possam caracterizar essas imagens. Se tratando de imagens digitais, o termo caracterstica
tem por denic ao ser um atributo ou uma propriedade que a diferencie. Existem determinadas
caractersticas que se apresenta cao naturalmente na observac ao de uma imagem, enquanto
outras resultam de manipula coes especcas de uma imagem. Como exemplo destas, pode-se
citar a iluminacao dos pixels de uma regi ao ou a textura e a obten cao do histograma de cores
e do espectro de frequencia.
A caracteriza cao de imagens e importante para identicar regioes com propriedades comuns
dentro da imagem e posterior identica cao e classicacao desta regi ao. Para se realizar isto,
as caractersticas necessitam ser extradas, de diversas formas. Normalmente, as caractersticas
s ao identicadas como genericas e de domnio especco. Entre as genericas encontram-se cor,
a forma e a textura e entre as de domnio especco as faces humanas e as impressoes digitais.
Esta subsec ao explicara as tres caractersticas genericas das imagens, que s ao: cor, forma e
textura, visto que sao as mais comumente utilizadas, abordando algumas representac oes.
5.1 Caracterizacao de Imagens atraves das Cores
A caracterizac ao de imagens digitais atraves das cores e comumente utilizada devido ao fato
de ser relativamente invariante quanto ao tamanho, resoluc ao e orientac ao da imagem. Alem de
que a extra cao 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 necess ario conhecer alguns conceitos basicos relacionados ` as cores
(FOLEY et al., 1990).
17
5.1.1 Fundamento de Cores
Uma cor percebida pode ser entendida como sendo a percep cao imediata que se tem de
um objeto. Assim, a cor pode ser considerada a propriedade de um objeto ou fonte de luz
relacionado ` as caractersticas 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 visveis, como pode ser observado na Figura
5.1 (CONCI; AZEVEDO; LETA, 2008)
Figura 5.1: Espectro Visvel das cores
H a dentro das cores aquelas que s ao capazes de formar quase todas as cores presentes na
natureza. Dentre estas, as mais comuns sao as cores prim arias RGB, compostas pelas cores
vermelho (Red), verde (Green) e azul (Blue) do espectro visvel, e as ditas secund arias 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 representac ao RGB baseia-se na sensibilidade do olho humano e utiliza as cores
vermelho (R), verde(G) e azul (B) como cores prim arias, sendo que R, G e B correspondem as
coordenadas cartesianas que s ao respons aveis pela formac ao do cubo unit ario 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 s ao formadas pela da adi cao das prim arias RGB(FOLEY
et al., 1990).
Matematicamente, uma cor C de um pixel pode ser denida por C = r.R + g.G + b.B,
onde R,G e B correspondem as cores prim arias e r,g e b s ao os coecientes correspondentes
` as intensidades3 associadas a cada uma das cores (AZEVEDO; CONCI, 2003). A resposta do
olho aos estmulos espectrais n ao e linear e algumas cores presentes na natureza n ao podem ser
reproduzidas pela sobreposic ao das primarias RGB.
J a o sistema de representac ao CMY usa as cores secund arias ciano (C), magenta (M) e
amarelo (Y) para representar o espaco de cores, tambem formado por um cubo unit ario. Este
modelo tambem e conhecido como modelo subtrativo, pois a formacao de cada cor se d a atraves
da subtrac ao da luz incidente de uma das componentes RGB pelas cores secundarias e a reex ao
das outras. Por exemplo, o ciano subtrai a luz vermelha e reete as outras, o magenta subtrai
o verde e o amarelo subtrai o azul. Com isso, a variac ao das cores acontece por causa da
diminuic ao dos comprimentos de luz que ser ao absorvidos (FOLEY et al., 1990).
18
Figura 5.2: Cubo representando o espaco de cores RGB
Existem algumas tecnicas usadas para a extra cao 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 caractersticas 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 an alise e representacao de dados quantitativos, agru-
pados em classes de frequencia que permite distinguir a forma, o ponto central e a variac ao
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, H
g
, pode, analiticamente, ser denido por :
H
g
(k) =
nk
M.N
(5.1)
onde nk e o n umero de vezes que o nvel de cinza k aparece na imagem. Com isso, um
vetor representando a imagem e gerado pelo processo do histograma. Exemplos de histogramas
podem ser vericados na Figura 5.3.
Imagens low key previnem que qualquer regi ao da imagem tenha brilho suciente para se
tornar branco puro, independente de qu ao escuro o resto da imagem possa resultar. Cenas com
high key, por outro lado, normalmente resultam em imagens signicativamente sub-expostas.
Mas e mais facil lidar com regioes sub-expostas do que com as super-expostas (apesar disso
19
Figura 5.3: Exemplos de histogramas de cores de uma mesma imagem.
comprometer a qualidade da foto devido ao aumento do rudo). Caso isso ocorra, os detalhes
n ao 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 vericado na Figura
5.4.
Existem tres tipos de histogramas que sao o RGB, lumin ancia e de tons e constrates (FOLEY
et al., 1990). O utilizado mais comumente e o histograma RGB. O histograma RGB e uma
representac ao graca 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 representa cao graca
do brilho e do contraste de uma imagem. Tambem e possvel ver o gr aco individual de cada
canal de cor.
O histograma RGB e o melhor histograma para ajustar imagens digitais, pois consegue
representar gracamente como estao distribudos os pixels ao longo do range tonal (0 ate 255).
Mesmo com imagens a high-key ou low-key normalmente n ao e necessario ver todos os pixels
a direita ou a esquerda do gr aco.

E importante ressaltar que n ao haver a muitas texturas em
20
Figura 5.4: Exemplos de imagem low key e high key
imagens onde as tres cores estiverem acima dos 250. Da mesma forma n ao haver a texturas
quando todas as cores estiverem abaixo do 20.
Percebe-se entao, que o histograma apresenta uma descric ao global da imagem. Quando e
obtido a partir de imagens monocromaticas fornece uma visao sobre a forma que os pixels est ao
distribudos, do contraste e da luminancia da imagem, sendo muito importante nas fases de
pre-processamento. Alem disso, e invariante a operac oes como rotacao e translac ao. Porem ,
imagens diferentes podem ter o mesmo histograma, o que faz necessario, em algumas aplica coes,
a utilizacao conjunta de outras caractersticas 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
caracterizac ao das imagens. No entanto, tecnicas de caracterizac ao por forma e textura tambem
poderiam ter sido utilizadas. Apos a escolha do tipo de caracterizac ao (cor, forma ou textura)
de imagens mais adequado `a aplica cao, e iniciado o processo de classicacao das imagens, ou
seja, a partir das caractersticas obtidas pode-se inferir r otulos (legendas) as imagens ou a
objetos contidos nas mesmas. Os metodos usados para a classicacao de imagens dividem-se
em metodos de decis ao teorica e metodos estruturais. Os metodos de decisao teorica baseiam-
se na representac ao dos padr oes atraves de vetores, e os metodos estruturais baseiam-se na
representac ao dos padr oes na forma simbolica (cadeias e arvores). Dentre os metodos de decis ao
te orica existem as redes neurais articiais que sao utilizadas nesse trabalho para classicar as
imagens. O captulo a seguir aborda sobre as redes neurais articiais, que foram utilizadas para
a classicac ao das imagens de melanoma.
21
Captulo
6
Redes Neurais Articiais
As redes neurais articiais (RNA) representam uma tecnologia que tem razes em muitas
disciplinas, tais como: neurociencia, matem atica, estatstica, fsica, ciencia da computac ao e
engenharia(HAYKIN, 2007). Suas aplicabilidades s ao: modelagem, an alise de series temporais,
reconhecimento de padr oes, processamento de sinais e controle, entre outros.
Neste captulo e apresentado uma visao sobre as principais caractersticas das Redes Neu-
rais, incluindo sua inspiracao biol ogica, o desenvolvimento do neur onio articial 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 Biol ogicas
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 t ao r apidos 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 quest oes que ainda n ao foram solucionadas, mais uma grande
vantagem que j a se conhece as estruturas que comp oes o cerebro e tem-se conhecimento sobre
alguns aspectos de seu funcionamento.
H a dois tipos principais de celulas no cerebro: os neuronios e as glias. As glias s ao as
respons aveis pela sustentac ao e nutric ao dos neur onios, que, por sua vez, s ao encarregados
no processo de recepcao, transmissao e processamento de estmulos, permitindo ao organismo
responder `as alterac oes do meio(LUDWIG; MONTGOMERY, 2007). Os neuronios sao basicamente
constitudos de dendritos, corpo celular (ou soma) e axonios. como pode ser visto na Figura
22
6.1.
Figura 6.1: Modelo de um neur onio biologico
Os dendritos tem a func ao de receber os estmulos (ou sinais de entrada) e conduzi-los
ao corpo celular. Este adiciona os sinais de entrada de alguma forma e produz um sinal de
ativac ao ou n ao para o neur onio. Alem disso, o corpo celular e o respons avel pela manutencao
e metabolismo do neur onio, assim como por seu crescimento e reparac ao. J a os ax onios s ao
respons aveis pela transmiss ao dos impulsos de sada gerados por um neuronio.
Os ax onios de um neur onio se ligam aos dendritos de outro neur onio atraves das sinapses.
As sinapses s ao unidades funcionais elementares para a interac ao entre os neur onios. Podem ser
divididas em inibitorias ou excitat orias. Uma sinapse excitat oria contribuir a positivamente para
a ativac ao do neur onio receptivo, enquanto uma sinapse inibitoria inuenciar a na desativacao do
neur onio (HAYKIN, 2007). O conjunto de neuronios conectados atraves de sinapses formam as
Redes Neurais Biol ogicas, as quais foram abstradas am de obter as Redes Neurais Articiais.
6.2 Redes Neurais Articiais
As Redes Neurais Articiais, tambem conhecidas como Redes Conexionistas, Neurocom-
putadores ou Processadores Paralelamente Distribudos tiveram seu surgimento (inspirac ao)
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 decis oes baseadas no aprendizado, a RNA devem ser capazes de fazer
o mesmo. Isso e alcan cado 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 denida como sendo um processador
paralelamente distribudo que e composto de unidades de processamento simples, os neur onios,
que possuem a capacidade de armazenamento de conhecimento experimental e torn a-lo dispon-
vel para uso. Normalmente as RNA s ao desenvolvidas a m de resolver problemas complexos,
visto que seu processamento e distribudo 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
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 conex ao 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-
rsticas, existem outras que tornam as Redes Neurais Articiais bastante uteis para a resolucao
de problemas, dentre elas as mais importantes sao:
1. N ao Linearidade: Um neuronio pode ser linear ou n ao-linear, assim com a RNA igualmente
aos neur onios
2. Mapeamento de Entrada-Sada: capacidade da rede de aprender ao mapear um conjunto
de entradas em um conjunto de sadas.
3. Adaptabilidade: uma RNA treinada para atuar em um ambiente pode ser adaptada para
suportar modicacoes no ambiente.
4. Resposta a evidencias: Uma rede neural pode ser projetada para fornecer informac ao
n ao somente sobre qual padrao particular selecionar, mais tambem sobre a conanca da
decisao tomada
5. Informa cao Contextual: O conhecimento e representado pela propria estrutura e estado
de ativac ao de uma rede neural
6. Tolerancia a falhas: uma RNA tem a capacidade de fornecer respostas adequadas por um
bom tempo mesmo se algum neur onio ou conex ao for danicado.
7. Implementac ao em VLSI: A natureza macicamente paralela de uma rede neural a faz ser
potencialmente r apida 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 Neurobiol ogica: 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 possvel
sicamente mas tambem r apido e poderoso.
As RNAs s ao comumente utilizadas em tarefas que incluem Classicacao (decidir a qual
grupo pertence uma determinada entrada), Reconhecimento de Padr oes (identicar padroes
em entradas), Predic ao (predizer algo a partir de certas caractersticas como, por exemplo,
identicar doencas a partir de sintomas, causas a partir de efeitos), Otimizacao (buscar o melhor
resultado) e Filtragem de Rudo (separar partes irrelevantes de um sinal) (BOTELHO, 2007),
mas, para que se tenha respostas satisfat orias ao problema deve-se denir adequadamente os
elementos que irao compor a RNA, dentre eles est ao: o neur onio articial, a arquitetura, o
algoritmo de aprendizagem e o paradigma de aprendizagem.
24
6.2.1 Neuronio
O neur onio e denido como a unidade de processamento de informac ao que e fundamental
para a opera cao da rede neural. O diagrama da Figura 6.2 demonstra um modelo de neuronio
articial. Pode-se identicar nele tres elementos basicos de um modelo neuronal:
Figura 6.2: Modelo de um neur onio matematico. Fonte (HAYKIN, 2007)
1. Um conjunto de sinapses ou elos de conexao, em que cada uma caracterizada por um
peso. Especicando, um sinal de sada x
j
na entrada da sinapse j conectada ao neur onio
k e multiplicado pelo peso sin aptico w
kj
2. Um somador, para somar os sinais de entrada, ponderandos pela respectivas sinapses do
neur onio.
3. Uma func ao de ativacao para restringir a amplitude da sada de um neuronio.
Alem disso, o neur onio da Figura 6.2 inclui um bias aplicado externamente, representado
por b
k
. Esse tem o efeito de aumentar ou diminuir a entrada lquida da func ao de ativac ao,
dependendo se ele e positivo ou negativo, respectivamente.
Em termos matematicos, pode-se descrever um neuronio k escrevendo o seguinte par de
equac oes:
u
k
=
m

j=1
w
kj
x
j
(6.1)
25
e
y
k
= (u
k
+ b
k
) (6.2)
onde x
1
, x
2
, ..., x
m
s ao os sinais de entrada; w
k1
, w
k2
, ..., w
km
s ao os pesos sin apticos do
neur onio k; u
k
e a sada do combinador linear devido aos sinais de entrada; b
k
e o bias; (.) e
a func ao de ativac ao e y
k
e o sinal de sada do neur onio. O uso do valor de bias b
k
tem o efeito
de aplicar uma transformac ao am ` a sada u
k
do combinador linear no modelo da Figura 6.2,
como mostrado por:
y
k
= u
k
+ b
k
(6.3)
Um neur onio articial pode utilizar diferentes tipos de func oes de ativac ao, dentre elas as
mais comuns sao: Func ao de Limiar, Func ao Linear por Partes e Func ao Sigmoide (HAYKIN,
2007).
A Fun cao Limiar, representada pela equac ao 6.4, em que a sada de um neur onio possui
valor 1, se o campo local induzido daquele neur onio e nao-negativo, e 0 caso contr ario. Essa
funcao descreve a propriedade tudo-ou-nada do modelo de McCulloch-Pitts
1
pode ser vericado
no gr aco da Figura 6.3.
f(v) =
_
_
_
1 se x 0
0 se x < 0
(6.4)
Figura 6.3: Gr aco da funcao de limiar
A proxima Fun cao denominada Fun cao Linear por Partes. a sada do neuronio ser a igual ao
valor de ativa cao v se este estiver dentro de um certo intervalo, mas, se v for maior ou igual ao
valor m aximo do intervalo a sada sera 1 e se for menor ou igual ao valor mnimo do intervalo
a sada ser a 0. A equacao 6.5 e um exemplo de Func ao Linear por Partes, sendo que a Figura
1
Trabalho Pioneiro em redes neurais realizado por McCulloch e Pitts em 1943
26
6.4 representa o gr aco desta equac ao.
(v) =
_

_
1, v +
1
2
v, +
1
2
> v >
1
2
0, v
1
2
(6.5)
Figura 6.4: Gr aco da funcao linear
E por ultimo a Func ao Sigm oide, cujo gr aco tem a forma de um S, mais comumente
utilizada na construc ao de RNA. Ela tem como denic ao com sendo uma func ao estritamente
crescente que exibe um balanceamento adequado entre comportamento linear e n ao-linear. Um
exemplo desta fun cao Logstica, denida pela equa c ao 6.6, cujo gr aco e apresentado na Figura
6.5, onde a e o parametro de inclinacao da func ao (HAYKIN, 2007).
(v) =
1
1 + exp
(av)
(6.6)
Figura 6.5: Gr aco da funcao sigm oide
A escolha da Func ao de Ativacao deve ser de acordo com o objetivo da RNA, visto que o
neur onio e a unidade basica do processamento da rede e deve ser modelado para atender aos
requisitos da aplica cao. Alem disso, as Redes Neurais possuem mais de um neur onio, os quais
27
devem ser conectados de forma a garantir um bom desempenho juntamente a rede. A forma
de conexao entre os neuronios e denida pela arquitetura da rede, que e um dos elementos
principais para a criacao de uma RNA eciente.
6.3 Arquitetura das Redes Neurais
A arquitetura ou topologia de uma Rede Neural dene a maneira pela qual os neur onios
est ao organizados. Ela est a associada com o algoritmo de aprendizagem usado para treinar a
rede, com sua aplica cao e com o seu desempenho. Alem da possibilidade de ser diferenciada de
acordo com o n umero de camadas e a disposic ao das conexoes.
Em geral, uma RNA possui uma camada de entrada, usada para receber os estmulos ex-
ternos, zero ou mais camadas intermedi arias e uma camada de sada responsavel por emitir
uma resposta a partir de uma dada entrada. Os principais exemplos de RNAs sem camada
intermedi aria a rede Elemento Linear Adaptativo (Adaline) e a Perceptron de Camada

Unica
exemplicada na Figura 6.6.Ja a Multilayer Perceptron (MLP) apresentada na Figura 6.7 e o
principal exemplo de RNA com camada intermedi aria (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 neur onio de uma camada se conecta com todos os neur onios
da camada subsequente ou Parcialmente Conectadas, quando nem todos os neur onios da rede
est ao conectados (HAYKIN, 2007). Tambem se pode encontrar em Redes Neurais conex oes em
forma de loops e conex oes entre os neuronios da mesma camada.
De acordo com o tipo de conex ao, as RNAs podem ser classicadas em Redes Feedforward
28
Figura 6.7: Rede com uma camada intermediaria
e Redes Feedback. Nas Redes Alimentadas Adiante, cada neur onio de uma camada recebe suas
entradas da camada anterior e envia seus sinais de sada para os neur onios da camada posterior.
Nas Redes Recorrentes um neur onio pode enviar seus sinais de sada para outro neur onio 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 classicada de acordo com a sua evoluc ao
no decorrer de sua utilizac ao e do seu aprendizado. Baseado nestes criterios tem-se as Redes
Est aticas e as Redes Din amicas (HAYKIN, 2007). Nas Redes Est aticas a quantidade de neur onios
e as formas de conex ao nao se alteram durante o aprendizado da rede, as unicas mudancas que
ocorrem sao os ajustes dos pesos sin apticos. J a nas Redes Dinamicas a quantidade de neur onios
e conex oes pode variar no decorrer do aprendizado da rede. Essa variac ao pode ser do tipo
generativa (criac ao de novas conexoes) ou destrutiva (eliminac ao de conexoes).
A topologia escolhida para a implementa cao 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 caractersticas 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 s ao ajustados a cada
itera cao. Esse ajuste e realizado atraves de um algoritmo de aprendizagem seguindo algum
paradigma de aprendizagem.
Nas pr oximas subsec oes ser ao apresentados alguns algoritmos de aprendizagem, os para-
digmas de aprendizagem e por m, ressalta-se o algoritmo de aprendizado supervisionado do
29
Figura 6.8: Rede Recorrente
Multilayer Perceptron, visto que este sera utilizado para a implementac ao do modelo proposto
por este trabalho. Ressalta-se que a escolha deste algoritmo foi baseada na sua aplicabilidade
e utilizac ao em outros trabalhos. Alem disso, ele apresentou resultados satisfat orios para a
aplica cao em quest ao.
6.4.1 Algoritmos de Aprendizagem
Algoritmo de aprendizagem e denido como sendo um conjunto de regras denidas para
resolver algum problema de aprendizagem. Existem diferentes tipos que se distinguem pela
maneira como e realizado o ajuste do peso sin aptico de um neur onio (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 mnimo. O erro (e
k
) em uma RNA e calculado
atraves da diferenca entre a sada obtida (y
k
) pela rede e a sada desejada (d
k
), como
apresentado na Equa cao 6.7:
e
k
(n) = d
k
(n) y
k
(n) (6.7)
No decorrer do aprendizado os erros s ao calculados iterativamente ate que a rede alcance
um estado onde os pesos sin apticos estao estabilizados de acordo com um valor pre-
denido. Os pesos sao ajustados visando aproximar o valor de sada obtido pela rede
30
ao valor desejado (REZENDE, 2003). Isto e obtido atraves da minimizac ao da Func ao de
Custo E(n), denida por:
E(n) =
1
2
e
2
k
(n) (6.8)
A minimizac ao da Func ao de Custo resulta na regra de aprendizagem conhecida como
Regra Delta, a qual determina o ajuste w
kj
(n) dos pesos sin apticos. Este ajuste aplicado
a um peso w
kj
de um neur onio k, excitado por uma entrada x
j
no tempo n pode ser
descrito por (HAYKIN, 2007):
w
kj
(n) = e
k
(n)x
j
(n) (6.9)
onde e a taxa de aprendizagem. Apos calcular o ajuste, o novo valor do peso sin aptico
w
kj
ser a:
w
kj
(n + 1) = w
kj
(n) + w
kj
(n) (6.10)
Aprendizagem Baseada em Memoria: Neste algoritmo, as experiencias s ao armazenadas
em uma memoria de exemplos de entrada-sada pre-classicada corretamente. Esta me-
m oria e representada da seguinte forma: (x
i
, d
i
)
N
i=1
, onde x
i
representa o vetor de entrada
e di representa a resposta desejada (HAYKIN, 2007).
Quando se quer classicar um vetor de entrada novo, chamado de x
teste
, repassa-o ` a rede
e o algoritmo ir a analisar os dados de treinamento de uma vizinhanca localde x
teste
em busca de um padrao semelhante. H a diversos algoritmos baseados em mem oria que
diferem entre si pelo criterio usado para denir 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 pr oximo. Segundo este algoritmo, a vizinhanca local ser a os dados de treinamento
que se encontram na vizinhanca proxima do vetor x
teste
. Com isso, o vetor x

N
ser a o
vizinho mais pr oximo de x
teste
se:
min d(x
i
, x
teste
) = d(x

N
, x
teste
) (6.11)
onde d(x
i
, x
teste
) corresponde a dist ancia euclidiana entre os vetores x
i
e x
teste
. Por m, o
vetor x

N
encontrado ser a a classicac ao para x
teste
, ou seja, a classe com menor distancia.
Aprendizagem Hebbiana: Segundo a teoria de Hebb (1949), que descreve um mecanismo
b asico da plasticidade sinaptica no qual um aumento na eciencia sin aptica surge da
estimulac ao repetida e persistente da celula pos-sin apticas, que resulta que quando um
neur onio 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
alterac ao dos pesos sin apticos da conex ao entre dois neur onios quando ambos estiverem
ativos, pois assim a forca da conexao entre eles aumentar a. O ajuste w
kj
(n) dos pesos
sin apticos do neur onio k aplicado ao peso w
kj
no tempo n e denido como (HAYKIN,
2007):
w
kj
(n) = y
k
(n)x
j
(n) (6.12)
onde e a taxa de aprendizagem, x
j
e o sinal pre-sin aptico do neur onio k e y
k
e o sinal
p os-sin aptico do neuronio k. Quando os sinais pre-sinapticos e p os-sin apticos possuem
sinais similares o ajuste dos pesos ter a o efeito de reforcar a conexao entre os neuronios,
caso contr ario, sera anulada.
Aprendizagem Competitiva: Neste algoritmo os neur onios de sada da rede competem
entre si para se tornar ativos, visto que apenas um estar a ativo em um determinado
momento. O neur onio vencedor ser a chamado de neuronio vencedor leva tudo. De acordo
com a regra de aprendizagem competitiva padrao, o ajuste w
kj
aplicado ao peso w
kj
e
denido por (HAYKIN, 2007):
w
kj
=
_
_
_
(x
j
wkj), se o neurnio k vencer a competio
w
kj
= 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 ser a distribudo uniformemente entre as entradas
inativas com o objetivo de mover o peso sinaptico do neuronio vencedor em direc ao ao
padr ao de entrada.
Aprendizagem de Boltzmann: Este e um algoritmo estoc astico baseado na mecanica es-
tatstica. As RNAs que utilizam este algoritmo possuem neur onios que funcionam bina-
riamente, ou seja, eles possuem apenas dois estados: ligados (+1) ou desligados (1). O
ajuste (w
kj
) dos pesos sinapticos aplicado a um peso w
kj
do neur onio j para o neuronio
k ser a determinado pela equacao seguinte (HAYKIN, 2007):
w
kj
= (
+
kj

kj
), j = k (6.14)
onde e a taxa de aprendizagem,
+
kj
e a correlac ao entre os neur onios j e k com a
rede na condi cao presa (os neuronios visveis estao presos a estados especcos) e

kj
e
a correlac ao entre os neuronios j e k com a rede na condic ao livre (todos os neuronios
operam livremente).
Cada um dos algoritmos apresentados fornece vantagens especcas que devem ser ava-
liadas de acordo com a aplicacao. Alem disso, a principal caracterstica da RNA e sua
capacidade de aprender e se adaptar, a qual esta diretamente relacionada com o algoritmo
32
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 dene a forma como a Rede Neural se relaciona com o am-
biente e se divide em tres grupos principais: Aprendizagem Supervisionada, Aprendizagem por
Refor co e Aprendizagem N ao-Supervisionada. Na Aprendizagem Supervisionada, tambem co-
nhecida como Aprendizagem com um Professor, a rede e treinada com um conjunto de exemplos
de entrada-sada 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
sin apticos com o intuito de minimizar o erro (MEDEIROS, 1996). O erro e a diferenca entre a
sada obtida pela rede e a sada desejada e e calculado passo a passo, interativamente, ate obter
um valor satisfat orio. 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-sada e feito
gradativamente atraves da intera cao com o ambiente, dispondo apenas de uma avaliac ao quali-
tativa do comportamento do sistema sem, no entanto, poder medir o erro. Ja na Aprendizagem
N ao-Supervisionada, tambem chamada de Aprendizagem sem um Professor, nao se usa exem-
plos de entrada-sada para treinar a rede. Esta aprende sozinha, sem um supervisor externo
para indicar os erros. Este tipo de rede desenvolve a habilidade de extrair caractersticas rele-
vantes, a partir das entradas fornecidas, e formar representac oes internas que codiquem essas
caractersticas, criando assim, novas classes automaticamente (HAYKIN, 2007).
Ap os denir 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 introduc ao das
RNAs, muitas areas da computacao se desenvolveram, visto que problemas que antes eram
considerados computacionalmente difceis 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 ser a utilizado para a resoluc ao 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 nal dos anos 1950 e incio dos
anos 1960. Os perceptrons de m ultiplas camadas tem sido aplicados com sucesso para resol-
ver diversos problemas difceis, atraves do seu algoritmo de treinamento conhecido como error
back-propagation.
33
Basicamente, a aprendizagem por retropropagacao de erro consiste de duas etapas pelas
camadas: sendo um para frente, a propagacao, e um para tr as, a retropropagac ao. O algoritmo
de retropropagac ao pode ser descrito em cinco fases, conforme apresentadas a seguir:
1. Inicializac ao: atribui-se valores aleat orios aos pesos sin apticos e nveis de bias, em uma
distribuic ao uniforme.
2. Apresentac ao dos exemplos de treinamento: apresenta-se uma epoca de exemplos ` a rede.
Para cada exemplo, realiza-se a propagac ao dos sinais e a retropagac ao dos erros com a
correc ao dos pesos e nveis de bias, conforme os dois pr oximos itens.
3. Propaga cao 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 sada, onde se obtem
o vetor de sinais funcionais da rede y(n). Em seguida, calcula-se o sinal de erro e
j
(n)
para cada neuronio da camda de sada, pela comparac ao de y(n) com o vetor de sadas
desejadas d(n). Da, calculam-se o erro instant aneo e com este, o erro medio global, para
teste de nalizac ao.
4. Retropropaga cao de sinais de erro: calculam-se os gradientes locais para todos os neur o-
nios da camada de sada:

j
(n) = e
j
(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:
w
ij
= e
j
(n)

j
(v
j
(n))y
i
(n) =
j
(n)y
i
(n) (6.16)
b
j
= e
j
(n)

j
(v
j
(n)) =
j
(6.17)
O pr oximo passo e o calculo do gradiente local para os neur onios da pen ultima camada
(camada oculta):

i
(n) =

i
(v
i
(n))
k

j=1
(
j
(n)w
ij
(n)) (6.18)
Ent ao, calcula-se o ajuste para todos os pesos desta camada, bem como o dos bias, os
quais devem ser somados aos valores atuais:
w
ki
=

i
(v
i
(n))y
k
(n)
J

j=1
(
j
(n)w
ij
(n)) =
i
(n)y
k
(n) (6.19)
34
b
j
=

i
(v
i
(n))
J

j=1
(
j
(n)w
ij
)) =
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 (ap os a
entrada da rede) deve ter o valor y
k
(n) substitudo pelo valores de x
k
(n).
5. Iterac ao: iteram-se as computacoes apresentando novas epocas de exemplos de treina-
mento para a rede de forma aleat oria de epoca para epoca, ate que seja satisfeito o
criterio de parada, que pode ser o n umero m aximo de iterac oes 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
utilizac ao de tecnicas de paralelismo, mais especicamente a CUDA, sera explicada no captulo
a seguir com o intuito de reduzir esse tempo.
35
Captulo
7
CUDA
CUDA e a arquitetura de computac ao paralela da NVIDIA que possibilita aumentos signi-
cativos na performance de computa c ao pelo aproveitamento da potencia da GPU (unidade de
processamento gr aco) (NVIDIA, 2010). A CUDA e a engine de computac ao NVIDIA em uni-
dades de processamento gr aco (GPUs) que est a acessvel para os desenvolvedores de software
atraves de variantes de linguagens de programac ao padrao da ind ustria. Os programadores
pode usar o C for CUDA (C com extensoes NVIDIA e algumas restric oes), compilado por um
compilador chamado PathScale Open64 C compiler, para a codicac ao dos algoritmos para exe-
cucao na GPU. A arquitetura CUDA compartilha uma gama de interfaces computacionais e e
est a disponvel 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 instruc oes virtuais e mem oria
dos elementos da computac ao paralela CUDA em GPUs. Usando a CUDA, as GPUs NVIDIA
tornar-se acessveis para a computac ao como CPUs . Ao contr ario de CPUs no entanto, as
GPUs tem uma arquitetura de processamento paralelo que enfatiza a executar muitas threads
simult aneas lentamente, ao inves de executar um unico segmento muito r apido. Esta abordagem
de resolu cao de problemas de uso geral em GPUs e conhecida como GPGPU. A seguir ser a
especicado 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 c odigo compilado por CUDA para torna-se um
36
kernel. Nesse contexto, sao blocos que especicam parte do algoritmo em que se deseja a para-
lelizac ao. Ele tambem pode ser tratado como um c odigo 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 formata cao do codigo de uma maneira que threads sejam alocadas paralelamente e o usuario
usufrua dessa caracterstica, 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 computa cao intensiva, com alta paralelizac ao, que sao caractersticas
do problema de renderizac ao gr aca. Alem disso, sua arquitetura e especializada no processa-
mento deste tipo de dados e n ao no controle de uxo. Pode-se vericar 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 est a dividida em enormes blocos
que contem um componente de controle de uxo e um de memoria cache. No caso da GPU, o
mesmo programa e executado em muitos elementos em paralelo. Dessa maneira, nao possui um
sosticado componente de controle de uxo, porem, oferece uma grande intensidade de com-
puta cao aritmetica. Alem disso, a cache se torna pequena na GPU diminuindo a latencia para
execu cao de cada grande bloco de unidades l ogicas e matem atica (ULA), diferente da CPU que
contem uma cache enorme, obtendo uma latencia alta para acesso.
Figura 7.1: Diferenca da especicac ao dos processadores na CPU e na GPU
Possuindo um unidade de controle, um componente de cache e um conjunto enorme de
ALUs, e possvel obter a estrutura de varios grupos de cores. Pode-se assim certicar que a
GPU e um manycore, apresentando de trinta e dois ate quinhentos e doze cores dependendo
do modelo. Essa subdivis ao de cores na GPU e chamada de Stream Processing (um ponto
importante a ser lembrado e que, para a execuc ao na GPU, o algoritmo paralelizado n ao pode
ter muita dependencia de dados em cada passo de computacao, pois a GPU nao faz paraleliza cao
de tarefas e sim de processamento de dados). Caso essa otimizac ao n ao seja feita no algoritmo,
a GPU tem seu desempenho bastante afetado. Com relac ao ` a hierarquia de compilacao para o
CUDA, a Figura 7.2 ilustra a arquitetura da sua pilha de software. A seguir e especicado a
sua forma de programa cao.
37
Figura 7.2: A arquitetura runtime da CUDA
7.2 Programacao CUDA
A CUDA e baseada em programac ao 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-
zac ao otimizada est a 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 func oes desejadas que CUDA otimize e paralelize na GPU. Essas func oes s ao
chamadas de kernel. No algoritmo a seguir pode-se observar um exemplo de um codigo simples
7.1.
1
2 g l o ba l void matAdd( f l oat A[ N] [ N] , f l oat B[ N] [ N] ,
3 f l oat C[ N] [ N] )
4 {
5 i nt i = threadI dx . x ;
6 i nt j = threadI dx . y ;
7 C[ i ] [ j ] = A[ i ] [ j ] + B[ i ] [ j ] ;
8 }
9
10 i nt main ( )
11 {
38
12 // Kernel i nvocat i on
13 dim3 dimBlock (N, N) ;
14 matAdd<<<1, dimBlock>>>(A, B, C) ;
15 }
Listing 7.1: Soma de Matrizes em CUDA
Nesse c odigo, tem-se uma func ao matAdd que apresenta uma tag global antes da denic ao
da func ao. Essa tag dene ao compilador que esse bloco sera paralelizado na GPU. A func ao
main faz a invocac ao 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 ser ao
chamadas de DEVICE 0, DEVICE 1, etc.
O kernel e acionado colocando um tag de conguracao antes da declarac ao dos parame-
tros, <<<>>>. H a tres par ametros possveis na conguracao: a congura cao do tama-
nho das grids (a),a congurac ao com o tamanho dos blocos (b) e a quantidade de memoria
compartilhada que se deseja utilizar no algoritmo (Ns). Isso gera uma congurac ao generica
<<< a, b, Ns >>>.
No main, antes da invoca cao, declaramos um tipo de variavel denida pelo CUDA chamada,
dim3. A variavel criada dimBlock tera tres dimens oes e cada uma dessas dimens oes representara
a dimens ao de um bloco. No exemplo, teremos um bloco com tamanho N para dimens ao x,
tamanho N para dimens ao y e a dimens ao z que foi omitida tem tamanho 1. A posic ao onde
se encontra o valor 1 na congurac ao da chamada da func ao signica o tamanho da grid. Essa
denicao tambem e usado o tipo dim3. Essa conguracao 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: Congurac ao 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 dimens ao x, dimBlock.x, menos um dividido pela dimensao do bloco em x. Essa e
a quantidade de blocos que ser ao computados pelo grid na dimensao x. Segue a mesma linha
de raciocnio na dimens ao y do grid. Ressalta-se novamente que a dimensao z foi omitida e
seu valor e 1. H a uma restricao no tamanho dos blocos. Deve-se vericar a quantidade de
threads que foi declarada em cada dimensao. A regra dimBlock.x dimBlock.y dimBlock.z
(multiplica cao das dimensoes) precisa ser menor que o maximo do n umero de threads que pode
ser alocada para o bloco. Na chamada da congurac ao, <<< a, b, Ns >>>, ha um terceiro
par ametro, Ns. Esse e do tipo size t e especica o n umero de bytes na mem oria compartilhada
que cada bloco deve alocar dinamicamente. Esse par ametro por default e zero e nao precisa ser
especicado.
O HOST cria invocac oes do kernel de acordo com o par ametro de congurac ao. Cada ker-
nel e executado paralelamente e independentemente entre si na GPU. A arquitetura CUDA e
baseada em arrays escal aveis de multithread SMs, ou thread Batching, que pode ser vericado
39
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 eci-
entemente as informac oes que serao processadas. Essa eciencia vai desde o compartilhamento
(c opia da DRAM GPU para a memoria compartilhada e vice-versa) dessa informacao atraves
da mem oria compartilhada, ate a sincronizac ao de execucao para o acesso a essa memoria.
Cada thread e identicada atraves de ID unica, chamada thread ID. Ha um n umero limitado
de threads por bloco. Porem, um bloco de mesma dimens ao 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 n ao podem
se comunicar. Alem disso, cada bloco e identicado por um block ID, e tem sua ID unica em
relac ao ao grid.
Figura 7.3: Exemplica cao da thread Batching da CUDA
7.3 Consideracoes Finais
Com a apresentac ao dos conceitos fundamentais que ser ao utilizados nesse projeto, no cap-
tulo a seguir sera explicado a utilizac ao do CUDA e das tecnicas mostradas anteriormente no
desenvolvimento deste trabalho.
40
Captulo
8
Utiliza cao 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-
mac ao paralela e processamento de imagens para uma soluc ao hbrida cujo objetivo e a reducao
do tempo de treinamento e a obten cao de resultados na detecc ao do melanoma. O modelo de
execu cao utilizado e o demonstrado na Figura 8.1 .
Esta soluc ao 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 utilizac ao da CUDA gerara os dados os pesos
aleat orios e fara o seu treinamento.
As duas primeiras etapas de execuc ao da solu cao proposta s ao a coleta e selec ao de infor-
mac oes, 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 denida 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 col or component ;
2 typedef col or component pi xe l [ 3 ] ;
3 typedef struct {
4 unsigned i nt wi dth ;
5 unsigned i nt hei gh ;
6 pi xe l buf ;
7 } i mage t ;
8 typedef i mage 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
Figura 8.1: Soluc ao hbrida para a reduc ao do tempo de treinamento da RNA com a CUDA
para ser facilmente serem trocadas entre v arias plataformas. Um arquivo de imagem em formato
PPM-RAWBITS, Portable Pixmap RAWBITS, come ca sempre com um cabe calho que apresenta
as seguintes informa coes:
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 # s ao coment arios (ignorados ate ao m da linha)
Um exemplo pode ser o seguinte:
P6
# Imagem ppm com 100x200 pixels
100 200
255
42
A imagem colorida e ent ao convertida para tons de cinza, devido ao fato que uma imagem
em tons de cinza gera apenas um histograma e em outros padr oes (imagens coloridas) gerarem
normalmente tres histogramas, sendo um para cada cor referente ao sistema de cores. Esse al-
goritmo consiste em vericar 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
variac ao que esta representar a na imagem em escala de cinza. O Algoritmo 8.2 demonstra os
passos utilizados.
1 grayi mage t ogr ays c al e ( image img )
2 {
3 unsigned i nt x , y ;
4 grayi mage timg ;
5 double rc , gc , bc , l ;
6 unsigned i nt o f s ;
7
8 timg = al l oc gr ayi mg ( img>width , img>hei ght ) ;
9
10 for ( x=0; x < img>wi dth ; x++)
11 {
12 for ( y=0; y < img>hei ght ; y++)
13 {
14 o f s = ( y img>wi dth ) + x ;
15 r c = ( 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 r c + 0. 7152 gc + 0. 0722 bc ;
19 timg>buf [ o f s ] [ 0 ] = ( l umi nance ) ( l +0. 5) ;
20 }
21 }
22 return timg ;
23 }
Listing 8.2: Metodo de conversao de imagens para tons de cinza
Logo ap os a convers ao 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
conte udo dado como entrada a cada neuronio da camada inicial da RNA.
1 typedef unsigned char l umi nance ;
2 typedef l umi nance pi xe l 1 [ 1 ] ;
3 typedef struct {
4 unsigned i nt wi dth ;
5 unsigned i nt hei ght ;
6 pi xe l 1 buf ;
43
7 } grayi mage t ;
8 typedef grayi mage t grayi mage ;
Listing 8.3: Estrutura da imagem em tons de cinza
O processo para a obten cao 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 posic oes (640 x 480). Ja na sua transformac ao para os tons de cinza,
esse e reduzido para um vetor de sada com 256 posi coes, identicando a quantidade de vezes
que cada tom apareceu.
J a no GPU, o armazenamento e realizado por um vetor multidimensional (h data) cujo
tamanho e denido pela largura e altura da imagem. Nessa arquitetura o processamento e
distribudo entre m ultiplas threads, as quais, geram durante a execuc ao 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 respons avel por executar essa tarefa e obter o histograma de cores pode
ser observado no Algoritmo 8.4.
1 de vi c e void addData256 ( vol ati l e unsigned i nt s WarpHist ,
2 unsigned i nt data , unsigned i nt threadTag ) {
3 unsigned i nt count ;
4 do{
5 count = s WarpHi st [ data ] & $0x07FFFFFFU$ ;
6 count = threadTag | ( count + 1) ;
7 s WarpHi st [ data ] = count ;
8 }while ( s WarpHi st [ data ] != count ) ;
9 }
Listing 8.4: Metodo para obten cao 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 signicativos do contador sao mascarados e substitudos com o valor da thread
atual. Em seguida, cada thread escreve o contador incrementado de volta no subhistograma em
mem oria compartilhada. A ultima fase de calculos e a fus ao de subhistogramas por warp em
um unico histograma por bloco, que pode ser conferido no Algoritmo 8.5.
1 for ( i nt pos = threadI dx . x ; pos < BIN COUNT; pos += blockDim . x) {
2 unsigned i nt sum = 0;
3 for ( i nt base = 0; base < BLOCKMEMORY; base += BIN COUNT)
4 sum += s Hi s t [ base + pos ] & 0x07FFFFFFU;
5 #i f ATOMICS
6 atomicAdd ( d Resul t + pos , sum) ;
7 #el se
8 d Resul t [ bl ockI dx . x BIN COUNT + pos ] = sum;
9 #endif
10 }
44
Listing 8.5: Passos para a junc ao dos subhistogramas no GPU
Com as duas primeiras etapas concludas, tem-se como passo seguinte a execucao da etapa
de treinamento da RNA. Esse processo consiste no ajuste dos pesos sin apticos representados
por valores de ponto utuante a m de gerar a sada correta para um neur onio.
A rede neural denominada multilayer perceptron (MLP), utilizada nesse projeto, para fazer
o mapeamento dos conjuntos de dados de entrada para um conjunto de sada 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 neur onios e a camada de sada com 1
neur onio. A func ao de ativa cao utilizada e a fun cao linear sigm oide demonstrada abaixo:
(v) =
1
1 + e
av
(8.1)
Como o treinamento da rede, pode ser paralelizado, pois as RNAs foram projetadas para
serem executadas em paralelo e distribudo, 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 porc oes de dados (ou fun coes) paraleliz aveis, 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 func oes de forward e
backward s ao as que, quando implementadas em uma arquitetura paralela, aproveitam do pa-
ralelismo da GPU. A fun cao forward paralelizada funciona da seguinte maneira: a partir do
neur onio fornecido, obtem-se o valor do contador, atraves do calculo dos valores do ndice e
dimens ao do bloco com o valor do ndice da thread, para gerar o valor do erro a ser propagado
para a sada daquele neuronio, que pode ser conferido no Algoritmo 8.6.
1 g l o ba l void redep ( f l oat e , f l oat s , Neuroni o n) {
2 i nt i = bl ockI dx . x+ blockDim . x+ threadI dx . x ;
3 s += e [ i ] n . pes os [ i ] ;
4
5 s = n . bi as ;
6 }
Listing 8.6: Func ao redep que implementa a func ao forward
Com a propagac ao 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 neur onios da camada de
entrada sao ajustados com os valores dos pesos e as bias do neur onios ocultos. Com esse ajuste,
os valores da entrada s ao recalculados a partir da sada dos neur onios, que e demonstrada na
Figura 8.7
1 g l o ba l void redep2 ( f l oat e , CamadaOculta c , Camada camada) {
2 i nt i = bl ockI dx . x+ blockDim . x+ threadI dx . x ;
45
3 i nt j = bl ockI dx . y+ blockDim . y+ threadI dx . y ;
4 c . neur oni os [ i ] . del taw [ j ] = et a e [ j ] c . e r r o [ i ] +al pha c . neur oni os [ i ] .
del taw [ j ] ;
5 c . neur oni os [ i ] . bi as = et a (1) c . e r r o [ i ] + al pha c . neur oni os [ i ] . bi as ;
6 e = camada . s ai da ;
7 }
Listing 8.7: Func ao redep que implementa a func ao backward
Esse processo continua executando ate que o erro seja o desejado ou o n umero de epocas de
treinamento seja atendido.
8.1 Consideracoes Finais
A m de comprovar os resultados obtidos, no pr oximo captulo s ao apresentados os resulta-
dos que comprovac ao a melhoria do tempo computacional para o treinamento da rede. A seguir
ser a apresentado os resultados e a plataforma utilizada.
46
Captulo
9
Resultados
Os resultados aqui apresentados foram realizados para avaliar o desempenho do algoritmo
proposto para a reduc ao do tempo de treinamento de uma rede neural MLP. Esses tambem
foram aplicados para a identicacao de quais func oes a paralelizac ao do codigo se aplica. O
objetivo e demostrar que o GPU apresenta melhores resultados em relacao ao CPU. As duas
vers oes 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 congurac oes
utilizadas para tanto sao as seguintes:
Sistema Operacional : MAC OS X
Processador: Core 2 Duo 3.06 GHZ
Mem oria: 4GB DDR3 1067 MHZ
Placa de Vdeo: NVIDIA GEFORCE G320M
Para a leitura de imagens foram avaliados as implementac oes que fazem o algoritmo do
histograma tanto no CPU quanto no GPU. Para a leitura das imagens foi avaliado o tempo de
execu cao 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 s ao as opera coes que demandam
de mais processamento. Os par ametros para a obtenc ao 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 sada com uma taxa de aprendizado de 5%.
A combinac ao dos par ametros acima citados foram utilizados para a criac ao de quatro
diferentes avaliac oes. Na primeira avaliacao foi utilizado a leitura de imagens de tamanho de
47
1 MB com a varia cao da quantidade de 10 a 50. A Tabela 9.1 mostra os resultados obtidos,
juntamente com o seu speedup e o gr aco 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 Speedup
10 0.31 0.13 2.38
25 0.75 0.26 2,88
50 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 avaliac ao consiste na leitura de imagens de tamanho de 5 MB com a variac ao da
quantidade igual a anterior. A Tabela 9.3 mostra os resultados obtidos, juntamente com o seu
speedup e o graco apresentado pela Figura 9.2, demonstra que o GPU e mais rapido na leitura
de imagens de maior resoluc ao e com maior quantidades de imagens
Quantidade de Imagens Tempo (sec) CPU Tempo (sec) GPU Speedup
10 1.12 0.26 4.33
25 2.59 0.57 4.55
50 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 variac ao
da quantidade de 10 a 50. A Tabela ?? mostra os resultados obtidos, juntamente com o seu
speedup e o gr aco apresentado pela Figura ??, comprava que o GPU tem um desempenho
melhor na leitura de imagens de maior resoluc ao e com maior quantidades de imagens, que
demanda de maior processamento, que o processador.
A ultima avalia cao corresponde ao treinamento da rede neural para quantidades de imagens
diferentes. A Tabela 9.4 mostra os resultados obtidos em relac ao ao treinamento por epocas,
48
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 Speedup
10 16.75 0.9 18.6
25 42.76 2.25 19
50 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 gr aco 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, ecaz em relacao ao treinamento sequencial. Isso se da pelo fato
que o GPU aproveitar do paralelismo distribudo 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 Speedup
1 25 15 1.67
4 98 58 1.68
8 207 111 1.86
12 314 175 1.79
16 425 245 1.73
20 536 306 1.75
24 652 378 1.72
Tabela 9.4: Execucao do treinamento da rede neural na CPU e GPU.
9.1 Consideracoes nais
A partir das avaliacoes apresentadas, pode-se concluir que os 2 fatores principais que zeram
que o GPU fosse mais rapido que o CPU foram o tamanho e a quantidade das imagens. A
variac ao da quantidade de imagens se tratando da qualidade (tamanho) mostra que quanto mais
a quantidade de imagens, maior o volume de informa coes a ser processado, e consequentemente,
49
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 programac ao paralela e mais eciente que a programac ao tradicional (sequencial). O mesmo
se sucede para a quantidade de imagens, pois aumentando a quantidade de imagens, aumenta-se
o tamanho das informa coes.
Os resultados obtidos com essa aplicacao auxilia a prossionais 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
captulo, ser a apresentadas as conclusoes deste trabalho.
50
Captulo
10
Conclusoes
A diagnosticac ao de varias enfermidades por meio de imagens vem ganhando muita impor-
tancia pelo fato de que os resultados s ao signicativos, o que prove a prossionais da sa ude um
auxlio maior e para os pacientes, maiores chances e qualidade de vida. Com isso, os sistemas
capazes de identicar doencas, ultimamente, vem se destacando na computacao.
Nesse trabalho foi elaborado uma pesquisa sobre os tipos de c ancer, bem como sua letalidade
e sua forma de diagn ostico com o objetivo de se conhecer a forma que se diferencia as imagens.
Com isso, buscou-se informac oes sobre tecnicas que auxiliem na obtenc ao de caractersticas
baseadas nas tres principais maneira: cor, formas e textura para entao fazer uma abordagem
sobre a forma de classicacao de imagens e prop os-se o uso das Redes Neurais Articiais, mais
especicamente a MLP.
Por m, para a redu cao do tempo de treinamento da MLP e obten cao das caractersticas das
imagens buscou-se metodos de otimizac ao de algoritmos, e com isso, utilizou-se a abordagem
de GPGPU nas placas de vdeo NVIDIA, utilizando-se a tecnologia CUDA.
Ao se realizar os experimentos conclui-se que a paralelizacao dos algoritmos de obtencao de
caractersticas e para o treinamento da rede neural e uma soluc ao robusta para a aplicacao em
quest ao. Alem disso, notou-se que, a utiliza cao do paralelismo e muito eciente a medida em
que se aumenta o tamanho do problema (leitura de imagens ou entradas da rede neural).
Como contribuic ao, esse trabalho proporcionou a publicac ao 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 classicac ao de imagens de doen cas juntamente com a utilizac ao de
computacao paralela.
Entretanto, ressalta-se que ainda e necess ario mais estudos a m de melhorar a acur acia da
rede neural e se a utilizacao de outras formas de caracterizac ao de imagens ou agrupamento de
51
varias melhoram a classicac ao das imagens. Alem disso, pretende-se reformular a rede neural
para consolidar os resultados. Enm, por ser uma aplicac ao 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 especicamente de
analise de imagens) em conjunto com as redes neurais articiais 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 aplicac ao, alguns pontos n ao
foram explorados. Por isso, ressalta-se alguns pontos que podem ser estudados e aprofundados
em trabalhos futuros:
Reformular a Rede Neural para vericar melhores formas de classica cao;
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 les ao 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 caractersticas de forma e textura no modelo proposto.
Utilizar outras formas de paralelizacao, como placas de vdeo AMD e processadores CELL,
alem da utilizac ao de OPEN CL.
52
Referencias Bibliogracas
AZEVEDO, E.; CONCI, A. Computa cao Graca: Geracao de Imagens. Rio de Janeiro:
Campus, 2003.
BITTENCOURT, C. D. R. Classicacao Automatica do Acabamento de Gordura em Imagens
Digitais de Carcacas Bovinas. Dissertac ao (Mestrado) Universidade de Braslia, 2009.
BOTELHO, G. M. Processamento de Imagens no Auxlio `a Deteccao de Cancer de Pele
Utilizando Redes Neurais Articiais. 2007. 54 p. Monograa.
CONCI, A.; AZEVEDO, E.; LETA, F. R. Computacao Graca: 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 Bl ucher
Ltda, 2000.
HAYKIN, S. Redes Neurais: Princpios 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. Disponvel 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 c ancer cut aneo n ao melanoma.
Anais Brasileiros de Dermatologia, scielo, v. 81, p. 405 419, 10 2006. ISSN 0365-0596.
53
MEDEIROS, L. F. de. Redes Neurais em Delphi. S ao Paulo: Visual Books, 1996.
NAGESWARAN, J. M. et al. Ecient simulation of large-scale spiking neural networks
using cuda graphics processors. In: IJCNN09: Proceedings of the 2009 international joint
conference on Neural Networks. Piscataway, NJ, USA: IEEE Press, 2009. p. 32013208. ISBN
978-1-4244-3549-4.
NVIDIA. CUDA ZONE. 2010. Disponvel em: <http://www.nvidia.com/object/cuda>.
PEDRINI, H.; SCHWARTZ, W. R. Analise de Imagens Digitais:Princpios, Algoritmos e
Aplicacoes. S ao 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

Você também pode gostar