• Nenhum resultado encontrado

5 METODOLOGIA

5.4 MODELOS DE CLASSIFICAÇÃO

5.4.4 Treinamento dos modelos

Neste trabalhou avaliou-se o desempenho dos modelos de aprendizado produzidos pelos algoritmos SVM, KNN, RNA, CNN e um comitê de máquinas. Todos os algoritmos foram implementados por meio de funções disponibilizadas pelo MATLAB R2018a.

Para todos os algoritmos, os hiperparâmetros foram obtidos por meio de otimização Bayeseana, disponível no MATLAB pela função bayesopt. A otimização foi realizada para o conjunto de dados de PFFs e para o conjunto de dados LBP. A execução do processo de otimização em conjunto com a validação cruzada fez com que um tempo expressivamente elevado fosse necessário para a avaliação de cada um dos algoritmos. De forma a possibilitar a comparação do tempo necessário por cada um dos algoritmos para efetivamente realizar o treinamento do modelo, após a identificação dos melhores parâmetros para o conjunto de dados de treinamento, uma nova execução do algoritmo foi realizada, fixando, neste momento, os parâmetros encontrados.

Nos próximos itens são apresentados os parâmetros e adaptações realizadas em cada um dos algoritmos trabalhados.

5.4.4.1 Máquinas de Vetores de Suporte

Para o treinamento das SVMs foram empregadas as funções templateSVM, para definição dos parâmetros do algoritmo, e fitcecoc, para treinamento do modelo.

A otimização para a SVM avaliou os parâmetros Coding, BoxConstraint, KernelScale, KernelFunction, PolynomialOrder e Standardize, levando em torno de 3200 segundos para execução. O parâmetro de configuração mais relevantes para a

SVM é a função de kernel (KernelFunction), que modifica a forma como o mapeamento das funções de separação dos dados é realizada. O MATLAB fornece quatro opções de funções kernel implementadas, Gaussiana, Radial-Basis Function (RBF), Linear e Polinomial. A função gaussiana apresentou maior nível de precisão nos testes realizados com o conjunto de dados de treinamento, sendo então a escolhida para implementação.

FIGURA 5.20 – Hiperplano de otimização dos parâmetros KernScale e BoxConstaint da SVM.

FONTE: O autor (2019).

A FIGURA 5.20 apresenta um dos hiperplanos da função objetivo da SVM otimizados pela função Bayeseana entre os parâmetros KernelScale e BoxConstraint.

Os demais parâmetros modificados do padrão são apresentados na TABELA 5.5.

TABELA 5.5 – Parâmetros de treinamento modificados para a SVM.

Parâmetro PFF LBP

BoxConstraint 76,31 135,31

Coding onevsall onevsall

Iteration_Limit 106 106

KernelFunction Gaussian Gaussian

KernelScale 981,84 1394,34

PolynomialOrder Ǧ -

Standardize false false

FONTE: O autor (2019) .

5.4.4.2 K-Vizinhos Mais Próximos

O algoritmo KNN foi treinado por meio da função fitcknn. Os testes com conjunto de dados de treinamento foram realizados com o parâmetro OptimizeHyperparameters definido para a opção ‘all’. Esta opção permite que o próprio MATLAB realize a otimização de todos os parâmetros de treinamento e identifique os que apresentam melhor desempenho, como visto na FIGURA 5.21. O tempo de otimização médio foi de 126 segundos. Os parâmetros utilizados são apresentados na TABELA 5.6.

TABELA 5.6 – Parâmetros de treinamento modificados para o KNN.

Parâmetro PFF LBP

Distance cosine seuclidian

Coding onevsall onevsall

DistanceWeight inverse inverse

Standardize false false

NumNeighbors 13 18

FONTE: O autor (2018).

FIGURA 5.21 – Resultado da otimização dos parâmetros do KNN para LBP.

FONTE: O autor (2018).

5.4.4.3 Redes Neurais Artificiais

Duas abordagens distintas de RNAs, do tipo feedforwardnet, foram avaliadas.

A primeira é uma rede ligeiramente complexa, com duas camadas ocultas, cada uma com 256 neurônios (NN1). A segunda é uma rede minimizada, com apenas uma camada oculta de 10 neurônios (NN2).

• Duas abordagens de RNA avaliadas:

NN1 – 1 camada oculta com 10 neurônios:

NN2 – 2 camadas ocultas com 256 neurônios cada;

Para ambas as estruturas, os mesmos parâmetros de treinamento foram modificadas do padrão, apresentados na TABELA 5.7.

TABELA 5.7 – Parâmetros de treinamento modificados para as RNAs.

Parâmetro PFF / LBP

Como a CNN AlexNet foi previamente treinada com objetivos diferentes do reconhecimento de expressões faciais, foi necessário realizar adaptações na estrutura de classificação. A camada final do tipo softmax foi alterada para produzir como saída apenas 7 classes ao invés das 1000 usadas originalmente. Para possibilitar a entrada da camada de profundidade das imagens, no caso tridimensional, uma nova camada de entrada de mesmo tamanho (227x227 pixels) foi adicionada à rede.

Além disso, pelo fato da base de dados utilizada ser menor do que a ImageNet, empregada originalmente, foram realizados ajustes nos hiperparâmetros que controlam a taxa de aprendizado, a fim de obter uma taxa mais rápida no início do treinamento, que decai conforme as épocas de treinamento são executadas, permitindo a convergência da rede. O tamanho do batch de treinamento foi reduzido devido a limitações de memória na placa gráfica disponível. Os parâmetros modificados são apresentados na TABELA 5.8.

Devido ao extenso tempo de treinamento da rede, neste caso não foi utilizada a validação cruzada. No entanto, optou-se pela ativação do parâmetro Shuffle, que

mistura novamente os dados de treinamento e teste a cada nova época de treinamento da rede.

Para a implementação da CNN de forma a ser capaz de trabalhar com os dados de profundidade, as camadas convolucionais da rede foram substituídas por camadas que realizam a convolução em três dimensões. Como o MATLAB R2018a não possui suporte a camadas convolucionais 3D, utilizou-se a toolbox mdCNN, disponibilizada por Garty (2019) Por meio desta, foi realizada a reimplementação da rede AlexNet, mantendo os mesmos parâmetros de cada uma das camadas.

TABELA 5.8 – Parâmetros de treinamento modificados para a AlexNet.

Parâmetro Valor

InitialLearningRate 0,0005

LearnRateDropFactor 0,8

LearnRateDropPeriod 15

MaxEpochs 100

MiniBatchSize 5

ValidationPatience 100

Shuffle every-epoch

ValidationPatience 500

ValidationFrequency 20

FONTE: O autor (2018).

5.4.4.5 Comitê de Máquinas

O modelo de comitê de máquinas utilizado é baseado na metodologia de stacking, onde grupos classificadores fracos do tipo SVM e KNN são adotados para gerar um grupo de “votos” para cada classe, os quais são ponderados por uma RNA que é capaz de gerar a classe de saída, como representado na FIGURA 5.22. Os parâmetros de treinamento para os classificadores específicos permaneceram os mesmos apresentados anteriormente, para os 15 classificadores de cada tipo.

FIGURA 5.22 – Estrutura de Stacking proposta.

FONTE: O autor (2018).

Documentos relacionados