• Nenhum resultado encontrado

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.

Documentos relacionados