Escolar Documentos
Profissional Documentos
Cultura Documentos
JUNDIAÍ
2023
VINÍCIUS DE OLIVEIRA TRIGO MORAES- N536667
MATHEUS MARCELO PEREIRA DA COSTA - N431EJ1
JUNDIAÍ
2023
VINÍCIUS DE OLIVEIRA TRIGO MORAES- N536667
MATHEUS MARCELO PEREIRA DA COSTA - N431EJ1
BANCA EXAMINADORA
_________________________________
Prof. Gerson Oliveira
Universidade Paulista - UNIP
_________________________________
Prof. Marcos Paulo Ferreira Rebello
Universidade Paulista - UNIP
_________________________________
Prof. Clayton Valdo
Universidade Paulista - UNIP
RESUMO
1 INTRODUÇÃO ............................................................................................................................11
3. PROJETO ....................................................................................................................................31
4. RESULTADOS ...........................................................................................................................49
5. CONCLUSÃO.............................................................................................................................56
1 INTRODUÇÃO
2 FUNDAMENTAÇÃO TEÓRICA
2.1.1 História
carga computacional exigida por essa tarefa complexa. Para lidar com representações
detalhadas de imagens em alta dimensão, pesquisar grandes bancos de dados de
imagens e ampliar o reconhecimento para milhares de categorias, é crucial o
desenvolvimento de algoritmos altamente eficientes (GRAUMAN; LEIBE, 2011).
Essa demanda por eficiência computacional reflete a necessidade de processar
e analisar um grande volume de dados visuais de maneira rápida e precisa. A evolução
contínua dos algoritmos de reconhecimento de imagens é essencial para enfrentar
esses desafios e possibilitar avanços significativos na capacidade de compreensão e
interpretação visual das máquinas.
• Funções de Ativação
As funções de ativação desempenham um papel fundamental na arquitetura
das redes neurais convolucionais. Na essência, elas são responsáveis por transformar
a soma ponderada das entradas de um neurônio em um formato adequado para saída.
Através da introdução de não-linearidades, as funções de ativação permitem que as
redes neurais aprendam padrões complexos e características dos dados. Entre as
funções de ativação mais comuns estão a Sigmoid e a Rectified Linear Unit (ReLU),
24
• Camada de Agrupamento
A camada de agrupamento, ou "pooling", tem a finalidade de reduzir a
dimensão espacial do volume de entrada. Esse processo diminui o custo
computacional da rede ao selecionar valores dentro de uma região específica do mapa
de atributos e substituí-los por uma métrica nessa região.
Uma operação comum usada para realizar essa substituição é o "max pooling".
Essa técnica tem como objetivo acelerar os cálculos necessários para as camadas
subsequentes ao eliminar valores mais baixos e, assim, reduzir a dimensão da
representação dos dados. De forma resumida, o max pooling extrai segmentos dos
mapas de recursos de entrada, gera o valor máximo em cada segmento e descarta
todos os outros valores (ARAÚJO et al., 2017).
Um exemplo de max pooling pode ser visto quando se ativa o valor máximo de
uma unidade de pooling em uma região de 2 × 2, o que resulta em redimensionar o
mapa de características pela metade. A operação de pooling facilita a tarefa de
classificação ao focar apenas nas ativações mais importantes. Entretanto, a
informação espacial que está armazenada no campo receptivo é perdida, o que pode
resultar em uma predição imprecisa do objeto a ser segmentado, como ilustrado na
imagem abaixo (NOH; HONG; HAN, 2015). A figura a seguir mostra uma
representação do método max pooling.
27
Figura 10 - Representação do método max pooling, em uma imagem 4x4 utilizando um filtro 2x2
et al., 2017).
A função Softmax, representada abaixo, é capaz de transformar um vetor de
números reais em um vetor de valores probabilísticos, facilitando a decisão final de
classificação da rede.
2.3 U-NET
A arquitetura U-Net é uma poderosa abordagem para a segmentação de
imagens biomédicas, sendo notável por sua eficiência, precisão e capacidade de lidar
com pequenos conjuntos de dados. Isso a torna amplamente aplicável em várias
tarefas de segmentação de imagem.
A U-Net propõe uma abordagem que evita a perda de informações, permitindo
29
Figura 13 - Arquitetura U-net (exemplo para 32x32 pixels na resolução mais baixa).
3. PROJETO
Utilizando Deep Learning, criamos uma rede neural capaz de segmentar lesão
de pele. Decidimos fazer sobre lesão de pele, pois no Brasil, país tropical com alta
incidência solar durante todo o ano, é ainda mais frequente que tenha muitos casos
sobre câncer de pele. Histórico familiar, características da pele (pele clara é mais
propensa a desenvolver o câncer) e excesso de exposição solar são fatores de risco
para a doença.
Além disso, foi um tipo de imagem médica que possui bancos de dados mais
acessíveis e com a quantidade de dados mais vasta para pesquisas e experimentos.
Nosso objetivo é, usando essa técnica, criar uma inteligência que segmente as lesões
com a melhor previsão possível.
A seguir será demonstrado os principais detalhes da implementação, criação
da rede neural para a realização da segmentação de imagem, também iremos
apresentar as bibliotecas usadas, métricas, banco de imagens utilizadas, o preparo
da rede neural e o que foi utilizado, também será explicado um pouco mais afundo
sobre a U-net e como foi implementada no projeto.
Os dados que foram utilizados para a construção da rede neural são da ISIC
Archive 2018. Das 2.594 imagens disponibilizadas, foram utilizadas 60% para
treinamento (1.556 imagens), 20% para testes (518 imagens) e 20% para validação
(518 imagens). Além da coleta das imagens, foram coletadas suas respectivas
máscaras (Ground Truth).
Vale destacar que posteriormente será realizado o Aumento de Dados, a fim de
ter mais variedade e quantidade de dados para o treinamento.
O site ISIC Challenge foi utilizado para obter o banco de dados de imagens
para testar e treinar a IA criada. Como mostra a imagem abaixo.
34
3.3.3 Normalização
Figura 17 - Aumento de dados (Inversão Horizontal) realizado com dado retirado do ISIC Archive
2018
Figura 18 - Aumento de dados (Inversão Vertical) realizado com dado retirado do ISIC Archive 2018.
Figura 19 - Aumento de dados (Rotação) realizado com dado retirado do ISIC Archive 2018.
Figura 20 - Aumento de dados (Ruído Gaussiano) realizado com dado retirado do ISIC Archive 2018
3.4 Arquitetura
A arquitetura proposta utiliza o modelo Unet. O modelo foi selecionado por ser
uma rede convolucional que foi desenvolvida para segmentação de imagens
biomédicas, e arquitetado para trabalhar com menos imagens de treinamento e gerar
segmentações mais precisas.
39
7 batch_normalization_11 ['conv2d_11[0][0]']
(BatchNormalization)
8 activation_11(Activation) Relu ['batch_normalization_11[0][0]']
• Camada de Concatenação
Camada que recebe como entrada uma lista de tensores, e retorna um único
41
• Otimização
O parâmetro otimizador controlará a taxa de aprendizado do treinamento. O
otimizador utilizado para o nosso cenário é o ‘Adam’, pelo fato de ser muito utilizado
e adequado para muitos dados.
Esse otimizador se baseia na estimativa adaptativa de momentos de primeira
e segunda ordem, ajustando a taxa de aprendizado ao longo do treinamento. Quanto
maior a taxa de aprendizado, menor a precisão dos pesos e o tempo de aprendizado.
• Perda
O parâmetro utilizado foi o Loss, ele controlará a distância entre o valor de
saída/previsto de uma função de aprendizado que se desvia/difere da verdade/valor
real. É utilizado para julgar o desempenho e otimização. Uma pontuação mais baixa
de perda indica que o modelo está tendo um desempenho melhor.
A função de perda utilizada foi a Binary Crossentropy, que é uma classificação
binária que calcula a perda de entropia cruzada (diferença entre duas distribuições de
probabilidade p e q sobre o mesmo conjunto de eventos) entre rótulos verdadeiros e
rótulos previstos, ela compara cada uma das probabilidades previstas com a saída da
classe real, que pode ser 0 ou 1. Em seguida, calcula a pontuação que penaliza as
probabilidades com base na distância do valor esperado, significando quão perto ou
longe do valor real.
A função de perda de entropia cruzada binária calcula a perda de um exemplo
calculando a seguinte média:
𝑜𝑢𝑡𝑜𝑢_
𝑠𝑒𝑧𝑒
1
𝐿𝑜𝑠𝑠 = 𝑜𝑢𝑡𝑜𝑢 ∑ 𝑌𝑒𝑛 . 𝑙𝑜𝑔𝒴̂ 𝑒𝑛 + (1 − 𝒴̂ en) . log (1 − 𝒴̂ 𝑒𝑛)
_
𝑠𝑒𝑧𝑒 𝑒𝑢=1
Fonte: PELTARION, (2019).
Onde 𝑌𝑒𝑛 é o 𝑒𝑢 -th valor escalar na saída do modelo, 𝒴en,é o valor de destino
correspondente e output size é o número de valores escalares na saída do modelo.
Isso é equivalente ao resultado médio da função de perda de entropia cruzada
categórica aplicada a muitos problemas de classificação independentes, cada
problema tendo apenas duas classes possíveis com probabilidades. (PELTARION,
2019)
46
• Métricas
Uma Métrica de avaliação, também conhecida como " Critério " é um método
de avaliação/comparação do desempenho de uma função de aprendizagem. É como
um quantificador com o qual você pode julgar se uma função de aprendizado para um
determinado problema de aprendizado (ou classe de hipóteses) é boa ou ruim, com
base em padrões. A seguir os tipos de métricas que foram implementadas na rede do
projeto para avaliar a performasse:
• Precision
É a métrica que calcula a razão entre o número de
amostras Positivas corretamente classificadas e o número total de amostras
classificadas como positivas (correta ou incorretamente). É uma métrica da própria
biblioteca Tensorflow e foi utilizada pois reflete a confiabilidade do modelo,
desconsiderando falsos positivos.
A precisão tende a ser alta quando o modelo faz muitas classificações
Positivas corretas e menos classificações Positivas incorretas. Dando como um
exemplo um modelo de 5 amostras, que classificou 4 corretamente como positivas, e
classificou 1 incorretamente negativa como positiva. A precisão desse modelo é 4/(4+1)
= 0.8 = 80%.
• Recall
A métrica Recall é uma métrica do próprio Tensorflow e mede a capacidade do
modelo de detectar amostras Positivas. Quanto maior a Recall, mais amostras
positivas detectadas. Sua fórmula é a seguinte.
𝑇𝑟𝑢𝑒𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒
𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑇𝑟𝑢𝑒𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝐹𝑎𝑙𝑠𝑒𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒
Métrica Recall
• Coeficiente de dados
Contamos os pixels semelhantes (tomando interseção, presentes em ambas
as imagens) nas duas imagens que estamos comparando e multiplicamos por 2. E
48
3.4.3 Callback
Um callback é uma função que é chamada repetidamente durante um
processo (por exemplo, o treinamento de uma rede neural) e que geralmente serve
para validar ou corrigir determinados comportamentos.
No aprendizado de máquina, podemos usar retornos de chamada para definir
o que acontece antes, durante ou no final de uma época de treinamento. Isso é
especialmente útil para registrar o desempenho ou interromper o treinamento se
nossa métrica de desempenho atingir um determinado limite. Esse mecanismo é
chamado de parada antecipada (Andrew, 2022).
As funções que foram aplicadas nos estágios de treinamento da rede tiveram
as seguintes regras.
Haverá a redução de taxa de aprendizado quando o aprendizado fica
estagnado, isto é, não gera mais resultados. A partir da quinta época de treinamento
é aplicada essa regra no fator de taxa de redução de 0.1.
O treinamento encerrará quando uma métrica monitorada para de gerar
resultados. Essa regra é válida a partir da segunda época de treinamento em que a
taxa de perda não possui melhoria.
O modelo será salvo em cada intervalo(época), a fim de evitar perdas de
treinamento.
49
4. RESULTADOS
Por fim, a relação entre as épocas e a IoU utilizada que é uma métrica que
quantifica o grau de sobreposição entre duas regiões delimitadas, é possível perceber
o aumento no conjunto de treinamento e validação, sendo respectivamente de 0.5710
(primeira época) a 0.6993 (quinta época) e 0.5710 (primeira época) a 0.6042 (quinta
época).
Estatísticas de Desempenho após 1 época:
• Considerações de desempenho
A implementação da estratégia de Parada Antecipada (EarlyStopping) na fase
de pré-processamento se mostrou eficaz, resultando em economia substancial de
recursos computacionais. Definimos originalmente um total de 10 épocas nos
hiperparâmetros, no entanto, o processo de treinamento parou automaticamente após
a 5ª época. Essa parada ocorreu porque a partir desse ponto, não houve melhora
significativa nos resultados, indicando que o modelo atingiu um estado de equilíbrio e
não necessitou de mais épocas para aprimorar sua precisão.
Essa estratégia foi crucial para prevenir o ajuste excessivo, ou overfitting, ao
conjunto de treinamento, e resultou em um modelo que generaliza eficientemente a
novos dados. Esta eficácia foi comprovada pelo desempenho do modelo na
segmentação de um conjunto de teste de 518 imagens. As previsões geradas pelo
modelo demonstraram uma forte coerência com as respectivas máscaras do Ground
Truth, confirmando a acurácia e a eficiência da nossa abordagem.
56
5. CONCLUSÃO
REFERÊNCIAS BIBLIOGRÁFICAS
AREL, I.; ROSE, D.; KARNOWSKI, T. Deep machine learning - uma nova fronteira
na pesquisa de inteligência artificial [research frontier]. Revista de Inteligência
Computacional, IEEE, v. 5, n. 4, p. 13–18, 2010. ISSN 1556-603X.
BEM-VINDO ao Desafio ISIC. In: ISIC. Welcome to the ISIC Challenge. [S. l.],
2016. Disponível em: <https://challenge.isic-archive.com/>. Acesso em: 12 set. 2022.
ipfs.com/ipfs/bafykbzacea5lxruxzjmbpz46wv6zf76kosrdzwgd4f2pcn6gghvsijiynrfm2?f
ilename=Balaji%20Venkateswaran_%20Francesco%20Ciabuschi%20-%20Neural%2
0networks%20with%20R%20_%20smart%20models%20using%20CNN%2C%20RN
N%2C%20deep%20learning%2C%20and%20artificial%20intelligence%20principles
%20%282017%29.pdf>. Acesso em: 30 maio 2022.
CONTROLE o treinamento de sua rede neural no Tensorflow com callbacks. [S. l.], 3
maio 2022. Disponível em: <https://towardsdatascience.com/control-the-training-of-
your-neural-network-in-tensorflow-with-callbacks-
ba2cc0c2fbe8#:~:text=A%20callback%20is%20a%20function,end%20of%20a%20tra
ining%20epoch>. Acesso em: 25 ago. 2022.
Folha de dicas de redes neurais recorrentes. [S. l.], 2018. Disponível em:
<https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-
networks>. Acesso em: 29 maio 2022.
HOCHREITER, Sepp. LONGA MEMÓRIA DE CURTO PRAZO. Em: ImageNet. [S. l.],
2009. Disponível em: <https://image-net.org/>. Acesso em: 29 maio 2022.
IBM (EUA). Redes Neurais Recorrentes. In: Redes Neurais Recorrentes. [S. l.], 14
set. 2020. Disponível em: <https://www.ibm.com/cloud/learn/recurrent-neural-
networks>. Acesso em: 29 maio 2022.
KELLEY, Henry J. Gradient Teoria das Trajetórias de Voo Ótimas. Gradient Theory,
[S. l.], p. 947-954, 10 out. 1960.
SHARMA, Sagar. Funções de ativação em redes neurais. [S. l.], 2017. Disponível
em: <https://towardsdatascience.com/activation-functions-neural-networks-
1cbd9f8d91d6>. Acesso em: 3 ago. 2022.
SHARMA, Sagar. Uma introdução suave à unidade linear retificada (ReLU). [S. l.], 9
jan. 2019. Disponível em: <https://machinelearningmastery.com/rectified-linear-
activation-function-for-deep-learning-neural-networks/>. Acesso em: 3 ago. 2022.
TOGASHI, Kaori; GIAN DO, Richard; NISHIO, Mizuho; YAMASHITA, Rikiya. Redes
neurais convolucionais: uma visão geral e aplicação em radiologia: Camada de
convolução. Redes neurais convolucionais baseadas em árvore: princípios e
aplicações, [s. l.], 2018.
Um guia para iniciantes para entender as redes neurais convolucionais. [S. l.], 2016.
Disponível em: <https://adeshpande3.github.io/A-Beginner's-Guide-To-
Understanding-Convolutional-Neural-Networks/>. Acesso em: 19 maio 2022.
Uma introdução às redes neurais recorrentes e à matemática que as alimenta. [S. l.],
24 set. 2021. Disponível em: <https://machinelearningmastery.com/an-introduction-
to-recurrent-neural-networks-and-the-math-that-powers-them/>. Acesso em: 29 maio
2022.