info.info-db info.info-ai
Débora Pina 
email: dbpina@cos.ufrj.br
  
Liliane Kunstmann 
  
Daniel De Oliveira 
email: danielcmo@ic.uff.br
  
Patrick Valduriez 
email: patrick.valduriez@inria.fr
  
Marta Mattoso 
  
  
  
  
Uma abordagem para coleta e análise de dados de configurac ¸ões em redes neurais profundas *

Resumo. O tempo de durac ¸ão do ciclo de vida no aprendizado por meio de redes neurais profundas depende do acerto em decisões de configurac ¸ão de dados que levem ao sucesso na obtenc ¸ão de modelos. A análise de hiperparâmetros e dados da evoluc ¸ão da rede permite adaptac ¸ões que diminuem o tempo de durac ¸ão do

Introduc ¸ão

Nos últimos anos, a comunidade científica tem presenciado um aumento na popularidade de aplicac ¸ões em técnicas de aprendizado profundo (i.e., Deep Learning ou AP) [START_REF] Gharibi | Modelkb: towards automated management of the modeling lifecycle in deep learning[END_REF][START_REF] Miao | Towards unified data and lifecycle management for deep learning[END_REF], incluindo as PINNs, redes neurais profundas guiadas pelas leis da Física na soluc ¸ão de problemas em ciência computacional [START_REF] Raissi | Physics informed deep learning (part i): Data-driven solutions of nonlinear partial differential equations[END_REF].

AP é o termo usado para denotar o problema de treinar redes neurais profundas e permitir inferências, como a rede neural convolucional (CNN) [START_REF] Badan | Optimizing convolutional neural networks for embedded systems by means of neuroevolution[END_REF]. O treinamento das CNNs busca pela configurac ¸ão de uma série de hiperparâmetros (p. ex., taxa de aprendizado, batch size, número de épocas, momentum e dropout) que levem à validac ¸ão dos resultados. As CNNs são particularmente sensíveis à definic ¸ão de hiperparâmetros. Essas definic ¸ões dependem da evoluc ¸ão do comportamento dos dados, só conhecido durante ou ao término da execuc ¸ão do treinamento. Adaptac ¸ões a essas decisões são realizadas em um processo de tentativa e erro até se atingir a validac ¸ão dos resultados [START_REF] Zaharia | Accelerating the machine learning lifecycle with mlflow[END_REF]. A etapa de treinamento torna o ciclo de vida da CNN computacionalmente custoso, cansativo e propenso a erros. Apesar de soluc ¸ões de otimizac ¸ão automática de hiperparâmetros, como o Cloud Auto ML1 , e [START_REF] Badan | Optimizing convolutional neural networks for embedded systems by means of neuroevolution[END_REF], a análise de dados junto à configurac ¸ão é necessária. O uso de dados de proveniência [START_REF] Moreau | Provenance: an introduction to prov[END_REF] vem sendo proposto para contribuir para a flexibilidade da representac ¸ão e análise de dados quando especializados para AP [START_REF] Breck | Data validation for machine learning[END_REF][START_REF] Caveness | Tensorflow data validation: Data analysis and validation in continuous ml pipelines[END_REF]. Uma vantagem no uso de dados de proveniência é a padronizac ¸ão na representac ¸ão de metadados e a derivac ¸ão dos dados ao longo do treinamento da CNN por meio do PROV-DM do W3C [START_REF] Moreau | Provenance: an introduction to prov[END_REF].

A avaliac ¸ão das diversas configurac ¸ões de hiperparâmetros exige que seja feita a relac ¸ão entre vários tipos de dados e metadados, p. ex., métricas como acurácia, dados do ambiente computacional utilizado para o treinamento da CNN [START_REF] Zaharia | Accelerating the machine learning lifecycle with mlflow[END_REF]]. Soluc ¸ões de coleta automática de dados para análise tendem a ser pouco flexíveis quanto à escolha do que será coletado e principalmente sobre como esses dados são analisados. Soluc ¸ões com flexibilidade na coleta e análise de dados de proveniência como em [START_REF] Pina | Análise de hiperparâmetros em aplicac ¸ões de aprendizado profundo por meio de dados de proveniência[END_REF]] exigem uma etapa de modelagem que pode ser uma barreira para a adoc ¸ão de ferramentas de proveniência.

Este artigo apresenta uma abordagem centrada em dados de proveniência, propondo um mecanismo de coleta automática, porém com flexibilidade na escolha de dados a serem coletados e analisados. A abordagem foi baseada na CNNProv [START_REF] Pina | Análise de hiperparâmetros em aplicac ¸ões de aprendizado profundo por meio de dados de proveniência[END_REF]] e implementada por meio do Keras-Prov, uma extensão do Keras2 , que é uma API que executa sobre a plataforma de AP TensorFlow3 . O objetivo do Keras-Prov é reduzir as ac ¸ões que o usuário deve realizar para a análise de dados, em especial hiperparâmetros, durante o treinamento de CNNs. Ao adotar o padrão W3C PROV-DM, o Keras-Prov provê uma representac ¸ão de dados pública, extensível e adotada em diversos domínios de aplicac ¸ão, o que facilita a interoperabilidade. O Keras-Prov é capaz de rastrear as transformac ¸ões de dados e conjuntos de dados relacionados aos hiperparâmetros e métricas do treinamento da CNN de modo automático. O armazenamento dos dados de proveniência e adaptac ¸ões dos usuários em configurac ¸ões em SGBDs permite que os dados ao longo do treinamento sejam analisados globalmente. Por ser possível estender o esquema da base de dados de proveniência, dados do domínio da aplicac ¸ão podem ser modelados e acrescentados à base de proveniência ao serem coletados ao longo do treinamento. Experimentos realizados com a DenseED, uma aplicac ¸ão real de CNN densa guiada por leis da Física, mostram a adequac ¸ão do Keras-Prov para a análise de hiperparâmetros de CNNs e o baixo impacto no desempenho da API no Keras. Além desta introduc ¸ão, este artigo contém outras quatro sec ¸ões. A Sec ¸ão 2 discute os trabalhos relacionados, a Sec ¸ão 3 apresenta a abordagem Keras-Prov, a Sec ¸ão 4 os experimentos e, finalmente, a Sec ¸ão 5 conclui este artigo.

Trabalhos Relacionados

Há um crescente uso de dados de proveniência em aprendizado de máquina (AM) [START_REF] Schelter | Automatically tracking metadata and provenance of machine learning experiments[END_REF][START_REF] Tsay | Runway: machine learning model experiment management tool[END_REF][START_REF] Miao | Towards unified data and lifecycle management for deep learning[END_REF]. No entanto, não foram encontradas abordagens que oferec ¸am funcionalidades do Keras-Prov (i.e., utilizac ¸ão de dados de proveniência especificamente na fase de treinamento de CNNs, possibilidade de realizar a análise online, flexibilidade quanto à escolha do que vai ser coletado e a extensão para coleta de outros dados, independência de portal, e com baixa sobrecarga). O ModelHub [START_REF] Miao | Towards unified data and lifecycle management for deep learning[END_REF] é um sistema para gerência do ciclo de vida de redes neurais profundas cujo objetivo é armazenar pesos de modelos em diferentes versões, com foco no AP. O ModelHub possui um modelo proprietário para representac ¸ão dos metadados do treinamento da rede neural, o que dificulta a interoperabilidade. A ferramenta Runway [START_REF] Tsay | Runway: machine learning model experiment management tool[END_REF]] tem como objetivo a gerência de artefatos de AM e AP, como modelos, dados ou experimentos. A soluc ¸ão permite rastrear o modelo e os dados desde o uso no treinamento até a implementac ¸ão, facilitando a reprodutibilidade. No entanto, além de ser uma soluc ¸ão proprietária, é restrita à linguagem de programac ¸ão Python. [START_REF] Schelter | Automatically tracking metadata and provenance of machine learning experiments[END_REF] propõem uma ferramenta automatizada para extrair os metadados do modelo e apresentá-los com uma visualizac ¸ão interativa para auxiliar na comparac ¸ão de experimentos. Dessa forma, essa soluc ¸ão concentra-se no rastreamento de metadados e na proveniência dos dados de experimentac ¸ão de AM. Porém, a abordagem proposta não utiliza padrões de representac ¸ão, como o W3C PROV, afetando a interoperabilidade. Essas soluc ¸ões preveem o uso de AM para aplicac ¸ões de negócios. Keras-Prov herda os benefícios da DfAnalyzer [START_REF] Silva | Dfanalyzer: runtime dataflow analysis of scientific applications using provenance[END_REF]] para acomodar dados científicos junto à proveniência e execuc ¸ão em ambientes de processamento de alto desempenho, facilitando seu uso em PINNs.

Abordagem centrada em dados: Keras-Prov

O objetivo principal do Keras-Prov é reduzir o esforc ¸o de adaptac ¸ão do código para captura de dados de proveniência (uma vez que o Keras não captura tais dados de forma nativa) durante o treinamento da CNN. O Keras foi escolhido por ser uma API de rede neural de código aberto muito utilizada e com documentac ¸ão disponível. A arquitetura do Keras-Prov é apresentada na Figura 1, e é composta de três camadas: (i) Treinamento, (ii) Dados e (iii) Análise. A camada de Treinamento é onde o Keras é executado e interage com bibliotecas de AP como o TensorFlow e o Theano. É importante ressaltar que o Keras teve seu código modificado para capturar os hiperparâmetros mais comuns e enviar seus valores para o Extrator de Proveniência. O Keras-Prov identifica automaticamente as transformac ¸ões de dados no código do usuário, os hiperparâmetros e seus valores utilizados em cada treinamento, assim como as métricas coletadas. O Extrator recebe os dados assincronamente e os grava na camada de Dados. O banco de dados de proveniência segue o esquema da Figura 3, que estende o Prov-Df [START_REF] Silva | Raw data queries during data-intensive parallel workflow execution[END_REF]. A Figura 3 representa em termos dos conceitos Agente (Agent), Atividade (Activity) e Entidade (Entity) do W3C PROV as transformac ¸ões de dados do processo de treinamento das CNNs e os hiperparâmetros. Além dos dados de proveniência, o modelo treinado também é armazenado na camada de dados. O Visualizador de proveniência gera uma representac ¸ão visual do grafo de proveniência, de forma a facilitar a análise por parte do usuário. Tais componentes são extensíveis, de forma que diferentes bibliotecas de treinamento de CNNs podem ser acopladas para capturar e armazenar hiperparâmetros e outros dados de treinamento.

Para utilizar o Keras-Prov é necessário que o usuário defina no código quais os hiperparâmetros devem ser capturados e armazenados, com base na lista disponibilizada, definindo com o valor True ou False. O trecho de código na Figura 2 define dados de configurac ¸ão da DenseED. 

Avaliac ¸ão Experimental

Utilizamos a DenseED [START_REF] Freitas | An encoder-decoder deep surrogate for reverse time migration in seismic imaging under uncertainty[END_REF]] como estudo de caso do Keras-Prov. A Den-seED é uma PINN que usa uma CNN densa, como um modelo substitutivo para viabilizar a quantificac ¸ão de incertezas [START_REF] Zhu | Bayesian deep convolutional encoder-decoder networks for surrogate modeling and uncertainty quantification[END_REF]. A DenseED tem como objetivo substituir o cálculo da migrac ¸ão reversa no tempo (MRT) por um modelo treinado. Desta forma o cálculo da MRT que teria que ser realizado para cada distribuic ¸ão de probabilidade pode ser reduzido.

A instrumentac ¸ão desta CNN utiliza as transformac ¸ões Treinamento, Adaptac ¸ão e Teste. Treinamento consome (used) o nome do otimizador, os hiperparâmetros taxa de aprendizado, número de épocas e número de camadas da rede, e produz (wasGeneratedBy) um conjunto de métricas que auxiliam na avaliac ¸ão dos resultados obtidos durante o treinamento, p. ex., a acurácia, o valor da func ¸ão de perda, o tempo decorrido e a data e hora do fim da execuc ¸ão de cada época. Adaptac ¸ão consome (used) o conjunto produzido pela transformac ¸ão anterior (Treinamento), um conjunto de dados com informac ¸ões para a adaptac ¸ão ocorrida e o conjunto de dados de saída contém a nova taxa de aprendizado, o valor da época e a data e hora em que a adaptac ¸ão ocorreu, além de uma identificac ¸ão para a adaptac ¸ão. Teste provê dados sobre a avaliac ¸ão do modelo de acordo com o conjunto de dados de treinamento e tem como saída os valores de acurácia e da func ¸ão de perda. Porém, nesse caso, foram acrescentadas transformac ¸ões para captura de informac ¸ões acerca das camadas encoder, decoder e dense block.

O Keras-Prov foi avaliado sob duas perspectivas: (i) sobrecarga introduzida com a captura de proveniência e (ii) capacidade de consulta aos dados de proveniência. Com o código da DenseED adaptado para a utilizac ¸ão do Keras-Prov, foi realizado o treinamento variando-se o número de épocas, taxa de aprendizado, momentum, decay e o otimizador escolhido. As execuc ¸ões foram feitas com 20, 50 e 100 épocas, a taxa de aprendizado foi variada com os valores 0,0005, 0,001 e 0,002, o decay foi variado com os valores 0,0001 e 0,000001 e o momentum foi variado com os valores 0,5 e 0,9. Cada configurac ¸ão de hiperparâmetros foi executada cinco vezes e a média do tempo de execuc ¸ão foi considerada. O tempo de execuc ¸ão foi medido a partir do início da aplicac ¸ão até sua finalizac ¸ão, o Keras-Prov já estava inicializado antes da execuc ¸ão da aplicac ¸ão e o MonetDB já estava com o schema definido (conforme Figura 3). O desvio padrão das cinco medic ¸ões para as diferentes configurac ¸ões de hiperparâmetros ficou entre 0,009 e 0,265. A medic ¸ão da sobrecarga adicionada pelo Keras-Prov corresponde a um aumento de menos de 2,5% (no pior caso) sobre o tempo total de treinamento da CNN. 

Conclusão

Este artigo tem como objetivo apoiar a fase de treinamento e otimizac ¸ão das CNNs ao registrar informac ¸ões relevantes à análise de combinac ¸ões de hiperparâmetros para reconfigurac ¸ões. O Keras-Prov é uma extensão à API Keras, que é utilizada por muitas bibliotecas de AP (p. ex., TensorFlow e Theano). Por meio do Keras-Prov, o usuário não necessita de um grande esforc ¸o de adaptac ¸ão de seu código para capturar dados de proveniência, ao mesmo tempo que possui flexibilidade para incluir novos dados a serem analisados e armazenados. O Keras-Prov foi avaliado com a CNN DenseED, um exemplo de uso de CNN por pesquisadores que não são da área de ciência da computac ¸ão, uma situac ¸ão que tende a aumentar e necessitar ainda mais de auxílio na análise e configurac ¸ão de hiperparâmetros. Experimentos evidenciam a adequac ¸ão do uso de proveniência nas atividades de análise ao longo do treinamento de CNNs, incluindo extensões para redes densas, contribuindo para um padrão de esquema que permite ao usuário consultar de forma integrada os dados de proveniência associados aos dados usados no treinamento. Como trabalhos futuros, pretende-se estender o uso do Keras-Prov no apoio às redes neurais guiadas pelas leis da Física e quantificac ¸ão de incertezas, que assim como em AP, requerem um processo analítico na criac ¸ão de novos modelos.

Figura 1 :

 1 Figura 1: Arquitetura do Keras-Prov

Figura

  Figura 2: C ódigo no Keras-Prov

O

  potencial analítico do Keras-Prov resulta do processamento de consultas na base de proveniência. Foram executadas consultas para avaliar configurac ¸ões de hiperparâmetros junto aos dados de métricas sobre o treinamento das CNNs para o usuário poder realizar os ajustes com mais seguranc ¸a e confianc ¸a. Para as consultas da Figura 4 utilizamos a DenseED com o otimizador Adam, 20 épocas e taxa de aprendizado 0,001. A consulta (a) mostra "Qual o valor de perda para a DenseED com K=24 e L=4 no momento atual (época 200)?" e a consulta (b) mostra "Qual o valor da func ¸ão de perda (loss function) de cada época para as quatro primeiras épocas da CNN DenseED?". À medida que o treinamento progride, o usuário continua realizando consultas à base. Por exemplo, ao se chegar em 200 épocas, o usuário decide finalizar a execuc ¸ão, pois esses valores não estão satisfazendo seus critérios. Nesse caso, o usuário altera o número de camadas no bloco denso para 8 e o treinamento segue com os novos dados que são armazenados na base de dados.

Figura 4 :

 4 Figura 4: Consultas sobre o bloco denso = 4 junto às camadas encoder/decoder.

https://cloud.google.com/automl

https://keras.io/

www.tensorflow.org/