-
Deep Learning é muito
guloso por dados, ou seja,
-
ele exige uma base de dados grande
para poder treinar os modelos.
-
Agora, nem sempre nós temos
muitos dados a disposição
-
para treinar o modelo
de classificação, por exemplo.
-
Claro que no caso
de uma rede geral
-
que verifica se uma imagem
tem um gato, um cachorro,
-
um passarinho ou um piano,
é muito simples
-
é fácil você conseguir
dados de internet
-
para compor uma base
grande desse tipo de dado.
-
Agora, em aplicações
mais específicas,
-
como imagens médicas,
-
nem sempre podemos garantir
a existência desses dados.
-
Quando nós não
temos disponíveis,
-
a primeira alternativa é
tentar buscar novos dados,
-
por exemplo, coletando
novas imagens.
-
Novamente, em um caso geral,
a coleta de dados é mais fácil,
-
no entanto, em casos específicos
e domínios muito particulares,
-
você conquistar uma nova imagem,
um novo caso daquele exemplo
-
pode ser mais difícil.
-
Portanto, podemos lançar mão
de três estratégias principais.
-
A primeira estratégia é
o data augmentation
-
ou seja, o aumento
artificial desses dados.
-
Cada linha representa uma imagem
de lesão de pele original, ou seja,
-
é uma lesão real, coletada
de um caso verídico.
-
Cada coluna possui
essa mesma imagem
-
com alguma perturbação artificial
feita por processamento de imagem.
-
Podemos ter maior
zoom, menos zoom,
-
aumentar o brilho,
diminuir o brilho,
-
aumentar o contraste,
fazer uma rotação,
-
remover partes
da imagem também,
-
combinar essas características
e assim sucessivamente.
-
Podemos ter essas mesmas operações
para cada uma das imagens.
-
Então, em cada um desses
exemplos de entrada,
-
podemos fazer n
pertubações diferentes.
-
A principal vantagem
do data augmentation
-
é que, a partir de uma única
imagem de entrada,
-
nós conseguimos produzir
n cópias diferentes,
-
é um dado diferente, não
é bem a mesma imagem,
-
mas são cópias que representam
aquele mesmo conceito.
-
Ou seja, eu posso fazer pertubações
leves na imagem de um gato
-
e aquela imagem resultante
também continua sendo um gato.
-
Outra mutação interessante
é utilizar uma GAN
-
para gerar dados artificiais
-
que representam aquele
mesmo dado de entrada.
-
Por exemplo, eu posso pegar
imagens reais de lesão de pele
-
e ensinar uma GAN a reproduzir
essa imagem artificialmente,
-
gerando imagens falsas,
que não são reais,
-
mas que representam
com grande precisão
-
as características
de uma lesão de pele real,
-
por exemplo, as que foram
geradas na próxima imagem.
-
Todas essas imagens parecem
imagens reais de lesão de pele,
-
parecem, de fato, um caso
de um ser humano
-
que foi documentado
por um dermatologista.
-
Mas, na verdade, essas
imagens são imagens falsas.
-
A rede neural artificial
profunda do tipo GAN
-
aprendeu a imitar as características
desse tipo de imagem
-
e gerou essas imagens artificiais
para imitar uma imagem real.
-
Note o grau de precisão
em trazer pelos
-
ou essa reguinha que mede
o tamanho da lesão na vida real.
-
Essa geração
de dados é tão boa
-
que pode até confundir
um ser humano
-
para distinguir se a imagem
é real ou falsa.
-
Essa é uma forma
artificial de aumentar
-
a quantidade de dados disponível
para treinar as suas redes.
-
E a terceira estratégia é trabalhar
com transfer learning e fine-tuning.
-
Isso aqui é uma técnica
bem interessante
-
no trabalho com qualquer
tipo de rede neural,
-
porque isso permite fazer
a transferência de conhecimento
-
ou, então, o ajuste fino
desse aprendizado.
-
Como ele funciona?
-
Nós partimos de uma rede neural
artificial profunda treinada do zero
-
e um conjunto de dados
muito grande,
-
e pode ser, até mesmo,
uma imagem generalista,
-
distinguir se uma imagem
é um passarinho, uma flor,
-
uma árvore, um instrumento
musical e outras coisas.
-
Nós utilizamos
milhões de imagens
-
para treinar, do zero,
uma rede neural profunda
-
que classifica qual tipo de objeto
está presente nessa imagem.
-
Quando
a rede está treinada, você chega ao fim.
-
Todos os pesos de cada camada
já estão no lugar.
-
Nós podemos fazer uma transferência
de conhecimento, ou seja,
-
o transfer learning.
-
Copiamos essa arquitetura
-
para uma outra rede, ou seja,
copiamos arquitetura.
-
A quantidade de camadas,
como elas são encadeadas
-
e também os pesos
já treinados para essa efígies
-
e utilizamos uma leve alteração
na última camada que é a decisão.
-
Aqui no caso,
estou partindo de uma crítica geral
-
de uma base de dados geral bem grande
-
para aprender a distinguir
uma lesão de pele e câncer de pele.
-
Ou não é melanoma ou é, ou seja,
a minha rede neural artificial.
-
Ela não está aprendendo
a extrair fatores desses dados.
-
Eu uso a rede já treinada
como extrator de filtros padrão
-
para distinguir
features relevantes dessas imagens.
-
Aí eu vou aprender na camada de decisão
-
como seus filhos são relacionadas
com câncer de pele ou lesão benigna.
-
Transfer lane Essencialmente como nós
-
aprendemos uma coisa nova,
nós nunca aprendemos algo do zero.
-
Sempre.
-
O nosso cérebro está tentando fazer
associação com algo que nós já conhecemos,
-
que é parecido ou diferente de algo
que estamos vendo pela primeira vez.
-
Ou seja,
estamos aprendendo por uma transferência
-
de conhecimento
de um domínio para o outro.
-
o transfer lane que por si só é justamente
essa transferência de conhecimento,
-
de transferir os pesos aprendidos,
-
uma rede em um domínio,
em um novo domínio.
-
Nós podemos refinar um pouquinho
mais aprendizado com o fair Tune,
-
que é o ajuste fino.
-
Ou seja, além de deixar o dado e os pesos
copiados de uma tarefa para outra,
-
podemos permitir que
-
em tempo de treinamento,
esses pesos sejam levemente alterados,
-
levemente ajustados à tarefa de destino.
-
Isso melhora
ainda mais a precisão da classificação.