3. A planta em que se deseja buscar o valor, ou seja, onde os sensores estão instalados. 4. O tipo de grandeza que mede o sensor.
Cada um desses itens foram gerados aleatoriamente, sendo que os itens opcionais possuem uma certa probabilidade de não serem gerados. Além disso, foram gerados exemplos de frases contendo estas informações em diferentes ordens, de modo ao modelo não ter sua capacidade de generalização comprometida.
Após o processo de geração, 1100 exemplos foram gerados, sendo 700 para o conjunto de treinamento e 400 para o conjunto de validação, ou seja, os que não serão utilizados no treinamento, apenas para medir o desempenho do modelo para exemplos não vistos. Alguns deles podem ser vistos na Tabela 4.1.
4.2
Treinamento
Uma vez com o modelo definido, os próximos passos são a implementação e treina- mento do modelo. Inicialmente todas as etapas de pré-processamento, predição do mo- delo e pós-processamento serão implementadas. Após isso, deverá ser realizado o ajuste dos hiper-parâmetros e, por fim, o treinamento do modelo.
4.2.1
Detalhes da Implementação
Todo o sistema de tradução, incluindo as etapas de pré-processamento, redes neurais e pós-processamento, foram implementadas utilizando a linguagem Python, em conjunto com algumas bibliotecas. As principais bibliotecas Python utilizadas foram:
• PyTorch, que é um framework para implementação de modelos de Machine Le- arningpor meio de diferenciação automática, com capacidade de manipulação em tensores com aceleração via hardware por meio de GPUs. Foi utilizada para imple- mentar a arquitetura encoder-decoder em conjunto com o mecanismo de atenção. • NumPy, para a manipulação de tensores de forma vetorial e organização dos con-
juntos de dados.
• Pandas, para manipulação e análise de dados, que foi utilizada no conjunto de treinamento e de validação.
• Spacy, para algumas operações de processamento de linguagem natural, como re- moção de stopwords.
• Torchtext, para tokenização e criação do vocabulário.
Sendo a proposta deste trabalho uma implementação moderna, porém com um custo reduzido de treinamento, foi possível treinar o modelo em serviços na nuvem. Neste caso, o Google Colaboratory, que disponibiliza uma unidade de processamento gráfico (GPU, do inglês Graphics Processing Unit) do tipo NVIDIA TeslaR K80, que possibilitou aR paralelização do código e, portanto, foi possível diminuir consideravelmente o tempo de treinamento.
50 CAPÍTULO 4. EXPERIMENTOS E RESULTADOS
Sentença Consulta
minimum rpm at 17 hours and 25 minutes on pump
SELECT MIN(registers) FROM registers WHERE plant_pump sensor_rpm t_single
all time on pump what is minimum pressure
SELECT MIN(registers) FROM registers WHERE plant_pump sensor_pressure
return me the average pressure between jun 22th 9:20 and feb 2 0:35pm
SELECT AVG(registers) FROM registers WHERE sensor_pressure dt_range
from feb/14 at 16 hours to 3-11 at 17:45 average pressure
SELECT AVG(registers) FROM registers WHERE sensor_pressure dt_range
return me the average temperature on boiler
SELECT AVG(registers) FROM registers WHERE plant_boiler sensor_temperature
between apr/28 and october/30 what is average pressure on boiler
SELECT AVG(registers) FROM registers WHERE plant_boiler sensor_pressure d_range give the minimum temperature from
12 hours to 6 hours
SELECT MIN(registers) FROM
registers WHERE sensor_temperature t_range
between 6 hours and 1 hours give the maximum pressure
SELECT MAX(registers) FROM registers WHERE sensor_pressure t_range
in dec 11th in motor mean of the temperature
SELECT AVG(registers) FROM registers WHERE plant_motor sensor_temperature d_single what is mean of the current in
3-23 in motor
SELECT AVG(registers) FROM registers WHERE plant_motor sensor_current d_single
4.2. TREINAMENTO 51
4.2.2
Detalhes do Treinamento
Inicialmente é definido os algoritmos de otimização e função de custo. Um dos al- goritmos mais utilizados em Deep Learning é o Adam, por sua capacidade adaptativa a cada parâmetro do modelo no decorrer do treinamento que permite uma convergência mais rádpida. Além disto, levando em consideração a natureza classificatória da saída do decoder, em que se pretende selecionar um token do vocabulário de saída de acordo com as probabilidades previstas, foi utilizado como função de custo a entropia cruzada.
Para a realização do treinamento, é necessário definir o valor de alguns hiper-parâmetros. Tais variáveis definem um espaço de configurações, em que é necessário encontrar um ponto suficientemente bom para o processo de treinamento. Os hiper-parâmetros utiliza- dos foram os tamanhos dos vetores de embeddings e de estado do encoder e do decoder, o tamanho do lote, a taxa de aprendizagem e o número de épocas. Sendo que por tentativa e erro foram encontrados os valores de 16 para o tamanho do lote e de 0.0001 para a taxa de aprendizagem.
Foi realizado uma série de testes com o propósito de encontrar a melhor configuração para as dimensões dos vetores de embeddings e de estado para o encoder e para o deco- der. A estratégia utilizada neste processo foi o Grid Search, que consiste em testar todas as combinações até encontrar a que possua o melhor desempenho. Desta forma, foram testados os valores de 8, 16, 32 e 64 para cada vetor, o que totalizou 16 combinações, uma vez que os tamanhos dos vetores de embeddings e de estado são mantidos iguais para o encodere para o decoder. As Figuras 4.2, 4.4 e 4.5 mostram as diferentes curvas de trei- namento alterando-se as dimensões dos vetores de estado, enquanto mantém-se ocultos as dimensões de embeddings em 8, 16, 32 e 64 respectivamente.
52 CAPÍTULO 4. EXPERIMENTOS E RESULTADOS
Figura 4.2: Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes dimen- sões de vetores de estado, mantendo-se a dimensão dos vetores de embedding 8.
Figura 4.3: Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes dimen- sões de vetores de estado, mantendo-se a dimensão dos vetores de embedding 16.
4.2. TREINAMENTO 53
Figura 4.4: Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes dimen- sões de vetores de estado, mantendo-se a dimensão dos vetores de embedding 32.
Figura 4.5: Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes dimen- sões de vetores de estado, mantendo-se a dimensão dos vetores de embedding 64.
54 CAPÍTULO 4. EXPERIMENTOS E RESULTADOS
Desta forma, é possível perceber que o caso em que haja tanto menores valores de treino e validação quanto um menor overfit, é quando o tamanhos dos vetores de embed- dingse de estados são iguais a 64.