• Nenhum resultado encontrado

Visando facilitar a utilização de CNNs em predição de TEs por biólogos e demais pesquisadores que possam ter interesse em desenvolver uma abordagem utilizando CNNs e não possuem conhecimento necessário para desenvolver a mesma, foi criado um framework de fácil utilização.

O framework foi desenvolvido para que possa ser possível criar uma arquitetura de CNN por linha de comando e aplicá-la na classificação de sequências desejadas. O usuário é capaz de definir, sem digitar nenhuma linha de código python, os seguintes parâmetros em linha de comando:

• Pasta raiz que contenha o data set a ser classificado (opção -r ou –root); • Quantidade de camadas que a arquitetura possui (opção -l ou –layers); • Tipo e ordem das camadas da arquitetura (opção -a ou –architecture);

• Tipo de função de ativação e ou função aplicada no pooling de cada camada (opção -f ou –functions);

• Largura da máscara de convolução e pooling (opção -w ou –widths);

• Quantidade de filtros de cada camada de convolução (opção -fm ou –feature-maps); • Otimizador a ser utilizado na otimização dos pesos (opção -o ou –optimizer);

• Taxa de aprendizado (opção -lr ou –learning-rate);

• Tamanho do batch do conjunto de treinamento (opção -trb ou –train-batch); • Tamanho do batch do conjunto de teste (opção -tsb ou –test-batch);

• Quantidade de épocas (opção -e ou –epochs); • Probabilidade de dropout (opção -d ou –dropout);

• Opção de armazenamento dos gráficos da matriz de confusão e curva de aprendizado gerados em disco (opção -sg ou –save-graphs);

• Título do gráfico da matriz de confusão (opção -cmt ou –confusion-matrix-title); • Título do gráfico da curva de aprendizado (opção -lct ou –learning-curve-title); • Prefixo dos nomes dos gráficos e arquivos de relatório gerados (opção -p ou –prefix); • Opção de armazenamento do modelo treinado com os valores dos pesos obtidos em

treinamento (opção -sm ou –save-model);

• Diretório de saída em que o modelo da CNN será salvo (opção -md ou –model-export- dir);

• Opção de armazenamento dos relatórios com as métricas por época e as métricas finais com médias e por classe (opção -sr ou –save-report);

• Opção de executar o treinamento em modo silencioso (opção -nv ou –no-verbose).

O usuário apenas precisa se certificar de que os arquivos no diretório da opção –root estejam de acordo com a organização recomendada. A organização recomendada consiste em organizar os arquivos em pastas de treino e teste e em cada uma destas pastas as classes devem estar em arquivos FASTA separados.

Uma coleção de algoritmos para pré-processamento e criação de data sets também são disponibilizados com o framework. Estes algoritmos permitem:

• Checar se há repetições entre as sequências de diversas bases;

• Remover possíveis repetições entre as sequências de diversas bases de forma balanceada; • Criar data sets combinando sequências de diversas bases com classes específicas; • Adicionar sequências ruídos a um conjunto;

• Adicionar o complemento reverso das sequências de um conjunto; • Renomear o cabeçalho das sequências de um conjunto;

• Substituir símbolos ambíguos da International Union of Pure and Applied Chemistry (IUPAC) pelo símbolo N;

• Entre outras funcionalidades.

Os parâmetros relacionados à arquitetura devem ser passados na ordem correta. Por exemplo, se um usuário deseja criar uma rede com duas camadas de convolução, uma camada de pooling, uma camada de convolução, uma camada de pooling e três camadas totalmente conectadas, deve passar os seguintes valores na opção –architecture: conv conv pool conv pool fc fc fc.

Em seguida o usuário precisa definir as funções de ativação e as funções de pooling, que para o exemplo acima podem ter os seguintes valores: relu relu avg relu max relu relu relu.

O usuário também precisa informar a largura das máscaras de convolução e pooling, que para o exemplo podem ser: 10 15 20 10 20 1500 100 500. Sendo a largura das máscaras das duas primeiras camadas de convolução 10 e 15, a largura da máscara da primeira camada de pooling 20, e assim por diante.

A largura de passo (stride) também precisa ser definida para a arquitetura do exemplo, que pode possuir os seguintes valores: 1 1 20 1 20. Sendo os strides para as duas primeiras camadas de convolução 1, 20 para a primeira camada de pooling e assim por diante.

O último parâmetro necessário para definir uma arquitetura é a quantidade de filtros das camadas de convolução. Para o exemplo acima os valores podem ser: 16 32 64. Sendo 16 e 32 a quantidade de filtros para a primeira e segunda camada de convolução respectivamente e 64 filtros para a terceira camada de convolução.

Todos os parâmetros mencionados acima devem ser informados ao definir uma arqui- tetura nova. Os demais parâmetros do framework são opcionais.

O framework possui os hiper parâmetros da arquitetura 5 (otimizada, ver Seção3.1.2.2) como valores pré-definidos. Isto facilita a avaliação do desempenho da melhor arquitetura de CNN encontrada neste trabalho em outros data sets.

O TERL está disponível em https://github.com/muriloHoracio/TERL1.

4 Experimentos e Resultados

Este Capítulo apresenta experimentos de classificação de TEs a nível de classe, ordem e superfamília realizados para verificar o desempenho da abordagem proposta utilizando arquiteturas empiricamente definidas de CNNs, arquitetura otimizada e arquiteturas recentes. Neste Capítulo também são apresentadas as análises dos resultados obtidos e as comparações com os desempenhos obtidos pelos métodos da literatura.

Com o intuito de verificar o desempenho da abordagem proposta (TERL) com diferentes arquiteturas na classificação de TEs, bem como em relação a outros métodos da literatura, 21 experimentos foram executados. Os experimentos 1 a 6 verificam o desempenho do TERL na classificação do data set 1, apresentado na Tabela 4. Os experimentos 7 a 10 verificam o desempenho do mesmo na classificação do data set 2, apresentado na Tabela13, e os experimentos 11 e 12 verificam o desempenho considerando o data set 3, apresentado na Tabela 18.

Após a realização do experimento 11, as sequências repetidas encontradas no reposi- tório apresentado na Tabela 1da Seção 3.2do Capítulo 3foram removidas e os data sets 4 a 8 foram criados utilizando a distribuição de sequências sem repetições apresentada na Tabela

2da mesma seção e capítulo.

O experimento 12 utiliza as sequências do data set 4, apresentado na Tabela 21. O experimento 13 utiliza as sequências do data set 5, apresentado na Tabela 23, para verificar o desempenho dos métodos na classificação a nível de ordem. O experimento 14 utiliza as sequências do data set 6, apresentado na Tabela 25, para verificar o desempenho da arquitetura otimizada da CNN na classificação a nível de superfamília com sequências de diversas bases. O experimento 15 utiliza as sequências do data set 7, apresentado na Tabela

27, para verificar o desempenho dos métodos na classificação de sequências de diversas bases a nível de ordem. O experimento 16 utiliza as sequências do data set 8, apresentado na Tabela

29, para verificar o desempenho dos métodos na classificação de sequências a nível de ordem com amostras de treinamento e teste extraídas de bases distintas.

4.1

Experimento 1: Classificação a nível de superfamília do data set