Transfer Learning é o processo de se utilizar uma rede neural pré-treinada em um outro contexto semelhante. Nesse processo, substituem-se as camadas finais da rede neural pré-treinada por camadas adaptadas ao problema atual.
Foi o que fizemos nesse experimento: utilizamos como base uma rede
neural convolucional VGG16 proposta por K. Simonyan and A. Zisserman da Universidade of Oxford no artigo “Very Deep Convolutional Networks for Large-Scale Image Recognition” e que alcançou 92.7% de acurácia na base de dados de imagens ImageNet, composto por 14 milhões de imagens classificadas em 1000 classes. Utilizando o framework
Tensorflow, removemos as camadas de saída da VGG16 e as substituimos por uma
combinação de camadas fully connected (FC) softmax e
relu, pooling, e flatten. Essas camadas foram
treinadas na base de dados de imagens CT.
No treinamento,
utilizamos a validação cruzada (cross validation) disponível
no framework Scikit-Learn, que consiste em gerar diferentes
distribuições das imagens entre os conjuntos de treinamento e de teste.
A base de dados
utilizada para treinamento não é muito grande, consistindo de
aproximadamente 700 imagens CT do tórax, positivas e negativas para COVID19,
extraidas de artigos científicos e publicações na internet. Aplicou-se um processo de data
augmentation sobre as imagens, que consiste em realizar transformações
nas mesmas de forma a aumentar a variabilidade no conjunto de treinamento.
No processo de
validação, sobre uma base de testes de 150 imagens, obtiveram-se os seguintes
resultados após a validação cruzada:
Acurácia ((true
positives + true negatives)/total de imagensl) : 78%
Precisão (true
positives/(true positives + false positives)): 77%
Recall (true
positives/(true positives + false negatives)): 83%
Ressalte-se o bom
resultado obtido para o Recall, que reflete um número menor de falsos
negativos.
O
modelo continua em melhoramento por meio de testes de novas combinações de
camadas e otimizadores, bem como pelo acréscimo de mais imagens nas bases de
treinamento e teste.