• Nenhum resultado encontrado

Análise de Tradução Homem-Máquina utilizando Mecanismos de Atenção para Sistemas Baseados em SQL para Indústria 4.0

N/A
N/A
Protected

Academic year: 2021

Share "Análise de Tradução Homem-Máquina utilizando Mecanismos de Atenção para Sistemas Baseados em SQL para Indústria 4.0"

Copied!
85
0
0

Texto

(1)

UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE

UNIVERSIDADEFEDERAL DORIOGRANDE DO NORTE

CENTRO DETECNOLOGIA

PROGRAMA DEPÓS-GRADUAÇÃO EMENGENHARIAELÉTRICA E DECOMPUTAÇÃO

Análise de Tradução Homem-Máquina

utilizando Mecanismos de Atenção para

Sistemas Baseados em SQL para Indústria 4.0

Silvan Ferreira da Silva Júnior

Orientador: Prof. Dr. Allan de Medeiros Martins Co-orientador: Prof. Dr. Ivanovitch Medeiros Dantas da Silva

Dissertação de Mestrado apresentada ao Programa de Pós-Graduação em Engenharia Elétrica e de Computação da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Mestre em Ciências.

Número de Ordem do PPgEEC: 616

Natal, RN, Dezembro de 2020

(2)

Universidade Federal do Rio Grande do Norte - UFRN Sistema de Bibliotecas - SISBI

Catalogação de Publicação na Fonte. UFRN - Biblioteca Central Zila Mamede

Silva Júnior, Silvan Ferreira da.

Análise de tradução homem-máquina utilizando mecanismos de atenção para sistemas baseados em SQL para indústria 4.0 / Silvan Ferreira da Silva Júnior. -2021.

67f.: il.

Dissertação (Mestrado) - Universidade Federal do Rio Grande do Norte, Cen-tro de Tecnologia, Programa de Pós Graduação em Engenharia Elétrica e de Computação, Natal, 2021.

Dr. Allan de Medeiros Martins.

Dr. Ivanovitch Medeiros Dantas da Silva.

1. NLP - Dissertação. 2. Indústria - Dissertação. 3. IoT - Dissertação. 4. SQL - Dissertação. 5. Deep Learning - Dissertação. I. Martins, Allan de Medeiros. II. Silva, Ivanovitch Medeiros Dantas da. III. Título.

RN/UF/BCZM CDU 004:621.3

(3)

À minha mãe e à minha tia, Ceição e

Judith Miranda.

(4)
(5)

Agradecimentos

Ao meu orientador e ao meu co-orientador, professores Allan Martins e Ivanovitch Silva, pela orientação neste trabalho e apoio em diversos momentos da minha vida.

Aos amigos Brito Filho, Gustavo Leitão e Francisco Irochima por todos os ensinamentos e pelo apoio durante este período.

Aos professores Adrião Duarte e Samuel Xavier, por todos os conhecimentos passados a mim.

Aos colegas Jusciaane, Victor e Antônio, pelo companheirismo durante esta jornada. À Coordenação do PPgEEC pelo excelente trabalho realizado.

À minha mãe por todo o esforço e apoio durante esta jornada.

Aos tios Judith, Terceiro, Siqueira e Vera e às primas Juliana e Julinha por me receberem em suas casas durante a realização deste trabalho.

À minha filha, Júlia, pela inspiração e à Poliana pela compreensão e paciência durante este período.

Aos amigos pelos momentos de diversão e apoio. À CAPES, pelo apoio financeiro.

(6)
(7)

Resumo

O uso de bancos de dados relacionais está cada vez mais presente na indústria. Aplica-ções em medicina, IoT e Indústria 4.0 são exemplos disso. Apesar da grande capacidade e eficiência no armazenamento e recuperação de dados, esse tipo de banco de dados re-quer conhecimentos técnicos em linguagens de consulta específicas para o acesso a essas informações, o que afasta esses tipos de aplicativos do público não especializado. Neste trabalho, propomos uma aplicação de modelos recentes de Deep Learning em processa-mento de linguagem natural que utiliza mecanismos de atenção para tradução da lingua-gem natural em inglês para SQL aplicada a um banco de dados que armazena dados de sensores, com foco no conceito de Indústria 4.0. Exemplos pareados de frases de lin-guagem natural foram gerados com sua consulta SQL correspondente para serem usados para treinamento e validação. O modelo foi agnóstico em relação ao esquema de banco de dados, de forma que só lida com as sequências de entrada e saída independentemente da estrutura do banco de dados. Os dados vêm de historiadores de processo típico usado nos cenários industriais. Ao treinar a rede neural profunda, foi obtido um modelo de linguagem com uma precisão de aproximadamente 92% no conjunto de validação.

(8)
(9)

Abstract

The use of relational databases is increasingly present in the industry. Applications in medical, IoT and Industry 4.0 are examples of this. Despite the large capacity and effi-ciency in storing and retrieving data, this type of database requires technical knowledge in specific query languages to access this information, which distances these types of ap-plication from the non-expert public. In this work, we propose an apap-plication of recent Deep Learning models in natural language processing that uses attention mechanisms for translation from natural language in English to SQL applied to a database which stores data from sensors, focused on the concept of Industry 4.0. Paired examples of natural lan-guage phrases were generated with their corresponding SQL query to be used for training and validation. The model was database scheme agnostic, in a way that it only handles the input and output sequences regardless of the database structure. Data come from a typical process historians used in industrial scenarios. By training the deep neural network, it was obtained a language model with an accuracy of approximately 92% in the validation set.

(10)
(11)

Sumário

Sumário i

Lista de Figuras iii

Lista de Tabelas v

Lista de Símbolos e Abreviaturas vii

1 Introdução 1 1.1 Contextualização . . . 1 1.2 Motivação . . . 2 1.3 Objetivos . . . 3 1.4 Trabalhos Relacionados . . . 4 1.5 Contribuições Acadêmicas . . . 5 1.6 Organização do Texto . . . 5 2 Fundamentação Teórica 7 2.1 Aprendizagem de Máquina . . . 7 2.1.1 A Tarefa, T . . . 8 2.1.2 A Medida de Desempenho, P . . . 10 2.1.3 A Experiência, E . . . 12 2.2 Redes Neurais . . . 14 2.2.1 O Neurônio Artificial . . . 15

2.2.2 Redes Neurais de Múltiplas Camadas . . . 16

2.2.3 Gradiente Descendente . . . 18

2.2.4 Funções de Custo . . . 20

2.2.5 Retropropagação . . . 20

2.3 Redes Neurais Recorrentes . . . 21

2.3.1 Modelos de Elman e Jordan . . . 21

2.3.2 Long Short-Term Memory (LSTM) . . . 24

2.3.3 Gated Recurrent Unit (GRU) . . . 25

2.3.4 Arquitetura Encoder-Decoder . . . 27

2.3.5 Mecanismos de Atenção . . . 28

2.4 Tradução Automática Neural . . . 29

2.4.1 Representando Sentenças . . . 30

2.4.2 Camadas de Embedding . . . 31 i

(12)

3 Modelo Proposto 33

3.1 Arquitetura do Sistema . . . 33

3.1.1 Interface com o Usuário . . . 33

3.1.2 Interface de Tradução de Texto para SQL . . . 34

3.1.3 Historiador Industrial . . . 34

3.2 Arquitetura do Modelo de Tradução . . . 35

3.2.1 Pré-Processamento . . . 35 3.2.2 Predição do Modelo . . . 39 3.2.3 Encoder . . . 40 3.2.4 Decoder . . . 41 3.2.5 Pós-Processamento . . . 41 4 Experimentos e Resultados 47 4.1 Conjunto de Dados . . . 47

4.1.1 Esquema do Banco de Dados . . . 47

4.1.2 Geração de Exemplos de Treinamento . . . 48

4.2 Treinamento . . . 49

4.2.1 Detalhes da Implementação . . . 49

4.2.2 Detalhes do Treinamento . . . 51

4.3 Validação . . . 54

4.4 Análise de Casos Extremos . . . 54

4.4.1 Sequências de Entrada Fora de Ordem . . . 54

4.4.2 Tokens Não Pertencentes ao Conjunto de Treinamento . . . 54

4.4.3 Gramática e Concordância . . . 58

4.5 Visualizando o Mecanismo de Atenção . . . 59

5 Conclusão 61 5.1 Trabalhos Futuros . . . 61

5.2 Publicações . . . 62

(13)

Lista de Figuras

2.1 Aprendizagem Supervisionada. . . 13

2.2 Aprendizagem Não-Supervisionada. . . 13

2.3 Aprendizagem por Reforço. . . 14

2.4 Neurônio Artificial. . . 16

2.5 Rede Neural de Múltiplas Camadas. . . 17

2.6 Gradiente Descendente. . . 19

2.7 Rede neural recorrente representada em múltiplos passos. . . 22

2.8 Modelo Recorrente de Elman. . . 22

2.9 Modelo Recorrente de Jordan. . . 23

2.10 Arquitetura da Memória Longa de Curto Prazo. . . 25

2.11 Arquitetura da Unidade Recorrente Bloqueada. . . 26

2.12 Arquitetura encoder-decoder. . . 27

2.13 Mecanismo de Atenção em arquitetura encoder-decoder. . . 28

2.14 Exemplo de vocabulário com 5 tokens. . . 30

2.15 Exemplo de codificação one-hot. . . 31

2.16 Camada de embedding. . . 32

2.17 Exemplo de espaço de vetores de embeddings. . . 32

3.1 Relação entre os blocos do sistema que compõem a arquitetura geral. . . . 34

3.2 Processo de tokenização, em que uma string é separada em tokens. . . 36

3.3 Processo de rotulação de entidades nomeadas, em que alguns tokens são substituídos por rótulos. . . 36

3.4 Processo de remoção de stopwords, onde palavras que não alteram o con-texto da sentença são removidas. . . 37

3.5 Processo de lematização, em que palavras inflexionadas são reduzidas à seus lemas. . . 38

3.6 Processo de vetorização, onde uma sequência de tokens é convertida em um vetor. . . 39

3.7 Tradução realizada pelo modelo. . . 39

3.8 Modelo encoder-decoder. . . 40

3.9 Conversão de sequência de vetores para sequência de tokens. . . 42

3.10 Substituição de placeholders por suas partes de consulta equivalentes. . . 44

3.11 Substituição de entidades rotuladas por seus valores originais. . . 44

3.12 Montagem da consulta final. . . 45

4.1 Esquema de banco de dados utilizado na geração do conjunto de treina-mento. . . 48

(14)

4.2 Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes dimensões de vetores de estado, mantendo-se a dimensão dos vetores de embedding8. . . 52 4.3 Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes

dimensões de vetores de estado, mantendo-se a dimensão dos vetores de embedding16. . . 52 4.4 Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes

dimensões de vetores de estado, mantendo-se a dimensão dos vetores de embedding32. . . 53 4.5 Curvas de treino (sólidas) e de validação (pontilhadas) para diferentes

dimensões de vetores de estado, mantendo-se a dimensão dos vetores de embedding64. . . 53 4.6 Relações entre tokens de entrada e tokens de saída através de um

(15)

Lista de Tabelas

2.1 Matriz de confusão para classificador binário. . . 10

3.1 Placeholders utilizados no pós-processamento para reduzir a quantidade de tokens no vocabulário do decoder. . . 43

4.1 Exemplos de dados do conjunto de treinamento. . . 50

4.2 Exemplos de predições pelo modelo. . . 55

4.3 Exemplo de testes realizados em sentenças fora de ordem. . . 56

4.4 Exemplo de testes realizados em sentenças contendo tokens não perten-centes ao conjunto de treinamento. . . 57

4.5 Exemplo de testes realizados em sentenças contendo erros de ortografia. . 58

(16)
(17)

Lista de Símbolos e Abreviaturas

API Appication Programming Interface GPU Graphics Processing Unit

GRU Gated Recurrent Unit HMI Human-Machine Interaction IA Inteligência Artificial

IoT Internet of Things

LSTM Long Short-Term Memory ML Machine Learning

NLIDB Natural Language Interface for Databases NLP Natural Language Processing

NMT Neural Machine Translation RNN Recurrent Neural Network SQL Structure Query Language

(18)
(19)

Capítulo 1

Introdução

Neste primeiro capítulo, é apresentado o conceito de Indústria 4.0, assim como as principais tecnologias que a compõe, bem como os impactos e desafios na vida dos ope-radores. Também será explorado o uso de dados e informação como elementos centrais na quarta revolução industrial, assim como as formas em que estes dados são gerados, armazenados e recuperados. Estes processos ficam, naturalmente, mais complexos a me-dida que a indústria se torna cada vez mais conectada, trazendo mais desafios ao operador. Ao final deste capítulo, serão apresentados a motivação, objetivos e contribuições deste trabalho, assim como a organização dos capítulos seguintes.

1.1

Contextualização

No decorrer da história da humanidade, o domínio de novas técnicas e tecnologias permitiu um maior aproveitamento de recursos encontrados na natureza para a realização de trabalho, até então, humano. A aplicação dessas tecnologias proporcionou um grande impacto em diversas áreas, como por exemplo, a produção e manufatura. Houveram quatro revoluções industriais (Schwab 2017), cada uma caracterizada pelas tecnologias que as alimentavam.

A Primeira Revolução Industrial teve início na Europa do final do seculo XVIII até o início do seculo XIX. Este período ficou marcado pela transição do trabalho manual e métodos artesanais para a utilização de máquinas e ferramentas, normalmente movidas a vapor e a água. Este processo teve um grande impacto em praticamente todos os aspectos da vida da população, principalmente, nos econômicos e sociais. Houve um crescimento acelerado das cidades, o campo passou por um processo de mecanização, ferrovias foram estruturadas para manter a circulação de mercadorias e pessoas e as linhas de produção permitiram uma produção em massa e a baixo custo (Ashton & others 1997).

Nas décadas seguintes, com o aprimoramento de novas técnicas como o domínio da eletricidade, petróleo e do aço, foi dado espaço para a automação do trabalho e o sur-gimento de novas indústrias, como a elétrica e a química. Este período ficou conhecido como Segunda Revolução Industrial e, assim como a primeira, trouxe mudanças na organização do trabalho e na forma de produção (Mokyr 1998).

A medida que o avanço científico continuou, no período após a Segunda Guerra Mun-dial, em meados do século XX, teve início a Terceira Revolução Industrial. Desta vez,

(20)

2 CAPÍTULO 1. INTRODUÇÃO

esta baseava-se fortemente nos recentes avanços científicos que possibilitaram automati-zar ainda mais a produção. Tecnologias como robótica, informática, telecomunicações e eletrônica passaram a fazer parte da indústria. Além da incorporação de novas técnicas, métodos antigos também foram aprimorados, o que deixou as máquinas cada vez mais eficientes com maior capacidade de produção (Greenwood 1997).

Desta forma, num cenário em que a indústria se posiciona como um dos principais pilares do crescimento econômico, o surgimento e o desenvolvimento de novas tecno-logias que permitem a melhoria da qualidade e eficiência da produção nestes ambientes têm um impacto significativo nos aspectos econômico e social(Schwab 2017, Schwab & Davis 2019). De acordo com Schwab (2017), estamos no limiar de uma Quarta Revolução Industrial, ou Indústria 4.0. Essa revolução é baseada no uso de tecnolo-gias emergentes, como Internet das Coisas (IoT, do inglês Internet of Things) (Ben-Daya et al. 2019, Xu et al. 2018, Matthyssens 2019), robótica (Shin 2019, Bahrin et al. 2016), inteligência artificial (Diez-Olivan et al. 2019, Ustundag & Cevikcan 2017), impres-são 3D (Bettiol et al. 2020, Schwab & Davis 2019), computação em nuvem (Aceto et al. 2020, Schwab & Davis 2019), entre outros. Como afirmado por Nardo et al. (2020), todas essas tecnologias convergem em direção à Quarta Revolução Industrial, como sendo uma automação cognitiva baseada em dados.

Os desafios da Indústria 4.0 surgem porque os dados brutos produzidos no ambiente industrial são tipicamente estruturados (registros de dispositivos, sensores, etc.) e também requerem análise em tempo real (Russom & others 2011, Wang et al. 2016) para uma ampla gama de especialistas. Portanto, um dos desafios da Indústria 4.0 é converter esses dados brutos em informações úteis, além de fornecer um acesso mais intuitivo para uma ampla gama de tomadores de decisão.

1.2

Motivação

Em um ambiente de Indústria 4.0, uma grande quantidade de dados provenientes de diversos dispositivos, como sensores, são gerados a cada segundo. Estes dados possuem informações importantes que podem ser extraídas para a tomada de decisão, planejamento e gestão de diversos processos da indústria, incluindo prevenção de acidentes, aumento da eficiência de produção, detecção de problemas, entre outros.

Os dados industriais são tipicamente armazenados em historiadores de processos, pos-suindo um banco de dados específico que pode permitir o acesso através de interfaces de alto nível como é o caso da Linguagem de Consultas Estruturada (SQL, do inglês Struc-ture Query Language). Porém, apesar de ser uma interface de alto nível, ainda requer conhecimentos técnicos específicos que distanciam o usuário não técnico das informa-ções contidas no banco de dados. Este cenário é bastante comum em historiadores de processos industriais, onde bancos de dados relacionais (Rautmare & Bhalerao 2016) são adotados como soluções de facto como o caso em PI Systems c (Soft n.d.).

Portanto, se faz necessário, no cenário atual da indústria moderna, o surgimento de no-vas interfaces humano-máquina que permitam ao usuário operá-las de forma mais natural deixando, assim, as informações cada vez mais disponíveis em todo o ambiente industrial.

(21)

1.3. OBJETIVOS 3

Define-se por Interação Humano-Máquina (HMI, do inglês Human-Machine Interac-tion) o estudo e desenvolvimento de ferramentas que possibilitem a criação de interfaces para permitir e facilitar o manuseio de computadores e máquinas (Cannan & Hu 2011, Go-recky et al. 2014, Cannan & Hu 2011). Estas interações podem se dar por diversas for-mas, como interfaces visuais (Bissoli et al. 2019), por meio de linguagem natural ou voz (Minker & Bennacef 2004) e até mesmo por formas mais modernas, como a utilização de ondas cerebrais (Vallabhaneni et al. 2005) ou contrações musculares (Ferreira et al. 2008). Um forma bastante natural de interface humano-máquina é através de linguagem natu-ral. Este método já foi utilizado diversas vezes no início dos estudos em HMI (Chowdhury 2003), porém, utilizar algoritmos convencionais para extrair informações a partir de guagem natural tem uma difícil escalabilidade, pois esta possui bastantes variações lin-guísticas, como inflexões de número, grau, gênero, etc. Além de gírias e variações re-gionais; diferentes formas de estruturar a sintaxe de frases com o mesmo sentido ou se-mântica e erros gramaticais e ortográficos. Levar em conta todas estas possíveis variações eventualmente se tornaria um trabalho bastante complexo e isso fez com que os estudos em processamento de linguagem natural se congelassem por um tempo (Manaris 1998).

Diferente dos algoritmos tradicionais, uma área da inteligência artificial chamada de aprendizagem de máquina (ML, do inglês Machine Learning), busca resolver estes pro-blemas de uma forma mais semelhante às capacidades cognitivas humanas, pois se trata de um conjunto de algoritmos que não são explicitamente programados, e sim, possuem parâmetros otimizáveis que se ajustam em um processo chamado treinamento a partir de exemplos provenientes de um conjunto de dados. A aprendizagem de máquina ga-nhou bastante espaço nos últimos anos devido a máquinas cada vez com mais poder de processamento e mais dados disponíveis, o que permite o treinamento de modelos que realizem tarefas cada vez mais complexas, semelhante a capacidades cognitivas humanas (Indurkhya & Damerau 2010).

Um dos campos de atuação de algoritmos de ML é em Processamento de Linguagem Natural (NLP, do inglês Natural Language Processing). A utilização de ML em NLP vem se mostrando promissora, pois não se faz mais necessário a configuração prévia de quaisquer variações de linguagem. Ao invés disto, apenas é necessário uma grande quantidade de exemplos (Indurkhya & Damerau 2010).

Pelo grande número de aplicações possíveis e capacidade destes tipos de modelo apli-cados em linguagem natural, em conjunto com as circunstâncias de manuseio de dados em um ambiente industrial, se torna válido explorar as possibilidades destes modelos neste tipo de ambiente.

1.3

Objetivos

Tomando em consideração os problemas de interação humano-máquina mencionados anteriormente, este trabalho tem como objetivo geral propor uma nova categoria de ferra-mentas para HMI que possibilitem o desenvolvimento de interfaces de linguagem natural utilizando Deep Learning para aplicações em ambientes de Indústria 4.0.

Os processos que vão desde a análise do problema ate a validação de uma ferramenta de testes podem ser subdivididos nos seguintes objetivos específicos:

(22)

4 CAPÍTULO 1. INTRODUÇÃO

1. Levantamento bibliográfico dos trabalhos relacionados 2. Geração dos conjuntos de treinamento e teste

3. Implementação do modelo 4. Otimização de hiper-parâmetros 5. Treinamento do modelo

6. Validação com o conjunto de teste

1.4

Trabalhos Relacionados

Desde a década de 1970, tem havido tentativas de construir interfaces computacio-nais a partir da linguagem natural. Uma das primeiras aplicações nesta área foi o LU-NAR (W.A. Woods 1972), que era um sistema que tratava de questões sobre rochas trazidas da lua e usava Redes de Transição Aumentada. LIFER/LADDER (Hendrix et al. 1978) também foi um pioneiro e foi usado em questões sobre os navios da Marinha dos EUA por meio de gramática e semântica pré-estabelecidas. Já em 1980, o CHAT-80 (Androutsopoulos et al. 1995) era considerado o melhor sistema de Interface de Lingua-gem Natural para Bancos de Dados, (NLIDB, do inglês Natural Language Interface for Databases), da época, convertendo o inglês para expressões em Prolog, e seu código foi lançado e usado como base para diversos experimentos. Posteriormente, surgiram outros sistemas semelhantes, como ASK (Androutsopoulos et al. 1995), EUFID (Templeton & Burger 1983) e (Hafner 1984)..

Os modelos gramaticais e semânticos têm limitações e, eventualmente, não levam em consideração a variabilidade linguística. Atualmente, a pesquisa em sistemas NLIDB é impulsionada por avanços recentes em NLP usando redes neurais, que têm a vantagem de não ter que pré-configurar todas as estruturas de entrada possíveis.

Alguns modelos atuais incluem o Seq2SQL (Zhong et al. 2017), que consiste no uso de aprendizado por reforço baseado em políticas para gerar condições de consulta. Eles propuseram uma rede neural profunda que traduz as consultas SQL correspondentes. Neste artigo, eles também criaram o WikiSQL, um conjunto de dados usado para trei-nar modelos que traduzem consultas de linguagem natural em consultas SQL. A rede foi treinada usando a perda de entropia cruzada e recompensa em um algoritmo de aprendi-zagem por reforço durante consultas de banco de dados. Eles obtiveram uma precisão de execução de 59.4%.

SQLNet (Xu et al. 2017) executa a tradução de vários modelos, cada um dos quais é responsável por uma parte da consulta. Tem como objetivo resolver problemas de pedido usando o modelo de sequência em consultas SQL quando a ordem não importa. Eles previram um conjunto não ordenado de restrições e também capturaram o relacionamento de dependência. Comparando com a rede Seq2SQL que utiliza aprendizagem por reforço, eles obtiveram um resultado melhor ao utilizar os dados do WikiSQL, proposto por Zhong et al. (2017). Eles obtiveram uma precisão de execução de 70.3%.

(Finegan-Dollak et al. 2018) usa uma rede neural que é treinada para selecionar o modelo de consulta apropriado de uma sequência de entrada. Eles usaram vários con-juntos de dados em seus testes. Eles mostraram que as perguntas feitas por humanos são mais difíceis do que as perguntas geradas automaticamente em consultas de aplicativos.

(23)

1.5. CONTRIBUIÇÕES ACADÊMICAS 5

E eles propuseram uma maneira de dividir os conjuntos de dados de treinamento e teste, identificando um problema nesta área. Eles incluíram em sua análise a anonimização de variáveis que substitui nomes de entidades por tipo.

Neste trabalho, propomos um sistema que depende fortemente de etapas de pré e pós-processamento e usa um único modelo de mecanismo de atenção. Isso foi possível porque em um ambiente industrial todas as sentenças de entrada são limitadas a apenas recuperar informações de uma única e limitada fonte de dados, portanto, muitas partes da entrada podem ser pré-processadas sem o uso de aprendizado profundo, como extração de datas ou encontrar números e também o vocabulário de saída pode ser minimizado, uma vez que muitas partes de consultas ocorrem juntas, como as várias instruções usadas para selecionar relações entre tabelas. Essas características nos permitem usar um mecanismo de atenção puro para traduzir diretamente a entrada pré-processada.

1.5

Contribuições Acadêmicas

Tendo em vista a criação de ferramentas inteligentes para a Indústria 4.0, este trabalho buscou otimizar a HMI para acesso aos registros de dados de sensores industriais. Para isso, é proposto um modelo baseado em dados para a tradução de linguagem natural, em inglês, para SQL por meio de mecanismos de atenção em conjunto com as etapas de pré-processamento e pós-processamento adequadas.

O modelo será inserido em um ambiente de Industria 4.0 de forma que os usuários possam ter diferentes métodos de entrada, como voz ou texto, que serão pré-processados e enviados para o terminal do historiador de processo, que também está armazenando dados de sensores em seu banco de dados. Assim, os usuários terão a capacidade de interagir com os dados do sensor utilizando apenas uma linguagem natural, disponibilizando-os ao leigo.

As principais contribuições deste trabalho são:

1. Propor um modelo de Deep Learning desde a escolha da arquitetura até o ajuste dos hiperparâmetros, para uma performance adequada para o uso em ambientes industriais e um baixo custo computacional para o treinamento ajuste fino.

2. Disponibilizar o pipeline de pré-processamento e pós-processamento que melhores se adéquem a esta tarefa.

3. Disponibilizar um conjunto de treinamento, produzido através de coleta de dados ou de forma sintética, para este tipo de problema.

1.6

Organização do Texto

Incluindo este capítulo introdutório, este trabalho está organizado em cinco capítulos. No Capítulo 2 será mostrada toda fundamentação teórica necessária para o entendimento e implementação deste trabalho. O Capítulo 3 apresenta a arquitetura do sistema pro-posto neste trabalho, em que a forma com que foi implementado, testado e validado, será apresentado no Capítulo 4. Por fim, no Capítulo 5 são listadas as conclusões e possíveis trabalhos futuros.

(24)
(25)

Capítulo 2

Fundamentação Teórica

Neste capítulo serão abordados os conhecimentos essenciais a respeito de Aprendiza-gem de Máquina e Processamento de LinguaAprendiza-gem Natural, bem como a relação entre estas técnicas, para o entendimento deste trabalho. Primeiramente, é importante entender como conceitos de Inteligência Artificial permitem a realização de tarefas complexas, como a tradução por máquina neural, que será o método utilizado neste trabalho.

2.1

Aprendizagem de Máquina

Em computação, Inteligência Artificial (IA) é um campo abrangente e com bastantes aplicações práticas e tópicos de pesquisa bastante ativos. Dentre suas aplicações estão as relacionadas a automação, entendimento de imagens e fala, auxílio no diagnóstico de doenças, dentre outros (Goodfellow et al. 2016). O estudo de IA se dá por meio de agentes inteligentes que interagem com o ambiente, de acordo com seus objetivos, para realizar uma determinada tarefa, de formas semelhantes às capacidades cognitivas humanas (Poole et al. 1998).

Inicialmente, o estudo em IA tinha como foco em resolver problemas difíceis para humanos a partir de uma sequência de regras matemáticas pré-estabelecidas. Porém, mostrou-se que o verdadeiro desafio da IA seria realizar tarefas que, embora fáceis para humanos, são difíceis de descrevê-las formalmente (Goodfellow et al. 2016).

Portanto, uma forma natural de desenvolver máquinas inteligentes que consigam re-alizar este tipo de tarefa é através de algoritmos que consigam, de forma semelhante ao aprendizado humano, aprender através de experiência. Em outras palavras, agentes ca-pazes de melhorar sua performance em alguma tarefa a partir de observações sobre o ambiente (Poole et al. 1998).

Este conjunto de algoritmos e modelos matemáticos que fazem parte de IA, em que para se alcançar a capacidade de realizar determinada atividade não é necessário pré-estabelecer um conjunto formal de regras, e sim através de experiência, é chamado de Machine Learning, ou Aprendizagem de Máquina.

Neste processo de aprendizado, dados deverão ser previamente coletados e mostrados ao agente junto com uma métrica que o permita estimar sua performance em realizar determinada tarefa, para que eventualmente se atinja uma performance aceitável.

(26)

8 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

O conceito de Aprendizado de Máquina pode ser entendido a partir da definição de Mitchell (1997):

Diz-se que um programa de computador aprende com a experiência E com respeito a alguns classe de tarefas T e medida de desempenho P, se seu de-sempenho nas tarefas em T , como medido por P, melhora com a experiência E

Em outras palavras, no processo de treinamento o modelo irá melhorar cada vez mais sua performance medida por P a realizar determinada tarefa T a medida que mais expe-riência E, normalmente na forma de dados, seja mostrada a ele. Caso os dados sejam apropriados e o modelo esteja bem dimensionado, ocasionando eventualmente em uma convergência. A seguir será explorado cada uma desses componentes.

2.1.1

A Tarefa, T

A tarefa se refere a como o algoritmo de aprendizagem de máquina deve processar um conjunto de entradas, previamente medidas de forma quantitativa. Em outras palavras, é a forma com que o modelo processa um exemplo. Cada modelo irá selecionar uma função f em um espaço de funções, que maximize a performance do modelo para realizar a tarefa a que foi atribuído, de acordo com o treinamento. Existem vários tipos de tarefas. Dentre elas, destacam-se:

Classificação

Neste tipo de tarefa, é atribuída a uma entrada x uma das k representações numéri-cas de uma categoria, através de uma função f : Rn→ {1, ..., k} produzida pelo modelo. Normalmente, a saída será um vetor de probabilidades para cada classe correspondente. O formato das entradas normalmente é uma representação numérica de características do exemplo a ser classificado, como valores numéricos de pixeis, no caso da classificação de imagens ou one-hot encodings de uma sequência de tokens, no caso de classificação de textos. Como exemplos de aplicações é possível citar reconhecimento facial a partir de imagens de rostos (Koch et al. 2015), análise de sentimentos a partir de textos (Bakshi et al. 2016) ou classificação de movimentos a partir de vídeos (Wu et al. 2015).

Regressão

Neste tipo de tarefa, o modelo terá a capacidade de estimar o próximo valor numérico de uma determinada função, através de outra função f : Rn→ R que será produzida pelo modelo. Na regressão, o modelo de Machine Learning aprenderá possíveis relações en-tre variáveis dependentes da entrada com as variáveis independentes da saída. Assim, é comum ver a imagem de f como todo o conjunto dos números reais. Como exemplo de regressão estão os estimadores de preços de produtos a partir de características de entrada (Law et al. 2019).

(27)

2.1. APRENDIZAGEM DE MÁQUINA 9

Clusterização

Análise de clusters refere-se ao agrupamento de objetos com características semelhan-tes. De forma similar a classificação, o modelo seleciona, a partir de um espaço de fun-ções, uma função f : Rn→ {1, ..., k} em que é estimado a qual dos k grupos um exemplo, descrito numericamente por n características, pertence. A diferença para a classificação está em que, desta vez, não se sabe previamente a qual classe cada exemplo do conjunto de treinamento pertence, fazendo necessário que o modelo consiga detectar os padrões existentes nos dados de entrada que segregue cada exemplo (Xu & Wunsch 2008). Redução de Dimensionalidade

É comum em ciência de dados lidar com conjuntos constituídos de vetores de n di-mensões. Quando n é relativamente grande, os exemplos se tornam difíceis de serem visualizados ou usados como entrada de modelos menores. Uma forma de reduzir este problema é utilizando modelos que reduzem a dimensionalidade destes exemplos, mo-delando uma função f : Rn→ Rmcom m < n que reduza a dimensionalidade dos dados, porém, mantendo informações importantes como noções de proximidade ou similaridade. Como exemplo de aplicações estão os algoritmos que permitem uma visualização em 2D ou 3D de dados com um número maior de dimensões (Maaten & Hinton 2008).

Detecção de Anomalias

Por vezes se faz necessário detectar exemplos raros e que fogem do padrão do conjunto de treinamento. De certa forma, se dá pela detecção de outliers porém, não o conceito tradicional em estatística, e sim, referindo-se a um modelo treinado que detecte clusters formados por estes padrões. Isto se faz útil para a detecção de fraudes bancárias, defeitos estruturais e monitoramento de sistemas de saúde (Chandola et al. 2009).

Geração

Neste tipo de tarefa, do contrário dos modelos tradicionais em que observações são en-viadas ao modelo como entrada e, como saída, é obtido informações a respeito de classe, clusterou um valor estimado, nos modelos de geração a saída são obtidos novos exem-plos com base no conjunto de treinamento. Normalmente, a entrada deste tipo de modelo são valores aleatórios, de forma a sintetizar exemplos aleatórios, porém, da mesma distri-buição (Goodfellow et al. 2014). Esta tarefa pode ser útil em data augmentation onde o conjunto de treinamento é melhorado (da Silva Júnior et al. 2019), na geração de imagens fotorealistas (Ledig et al. 2017), dentre outros.

Tradução

A conversão de um conjunto de símbolos de uma codificação para outra também pode ser realizada por Aprendizagem de Máquina. Neste caso, o modelo estima a probabili-dade de cada símbolo da sequência de saída a partir da sequência de símbolos da entrada (Bahdanau et al. 2014).

(28)

10 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

2.1.2

A Medida de Desempenho, P

Para que o modelo possa obter um melhor desempenho em determinada tarefa, é ne-cessário antes definir quantitativamente o que é tal desempenho. Portanto, se faz neces-sário uma métrica para que seja possível a avaliação do modelo tanto pelo algoritmo de treinamento, para atualizar corretamente os parâmetros internos, quanto para humanos conseguirem classificar de forma simples o desempenho (Goodfellow et al. 2016).

Além disso, é importante avaliar esta medida em um conjunto de exemplos que não foram utilizados durante o treinamento. Este conjunto é chamado de conjunto de testes e possui grande importância na verificação da capacidade de generalização do modelo.

Existem diversas formas de medir o desempenho do modelo, inclusive métricas desen-volvidas exclusivas para o problema em questão. A escolha desta medida está diretamente relacionada com a tarefa a ser modelada e é de grande importância para se atingir o com-portamento esperado do sistema. Deverá ser levado em conta aspectos como formato de dados na saída e em que ocasiões o modelo deverá ser mais penalizado (Haykin & Network 2004).

Algumas medidas de desempenho que se relacionam com este trabalho são:

Matriz de Confusão

Uma forma de ter uma representação mais geral da performance do modelo é construir uma matriz quadrada, onde os valores das linhas representam as predições de cada exem-plo enquanto as colunas referem-se aos valores reais de cada exemexem-plo (Dangeti 2017).

Matrizes de confusão podem ser definidas para modelos com n classes. Uma im-portante instância da matriz de confusão é para o classificador binário, onde n = 2. Neste caso, a matriz será de tamanho 2x2 e cada célula representará uma métrica de performance específica, como mostrado na Tabela 2.1.

Reais Positivo Negativo Predição Positivo Verdadeiro Positivo (TP) Falso Positivo (FP) Negativo Falso Negativo

(FN)

Verdadeiro Negativo (TN)

Tabela 2.1: Matriz de confusão para classificador binário.

Na primeira linha da matriz, estão os valores T P e FP que representam, respectiva-mente, a quantidade de verdadeiros positivos, ou seja, valores positivos que o modelo previu corretamente e a quantidade de falsos positivos, que representam os exemplos que o modelo incorretamente classificou-os como positivos. Já a segunda linha se refere às vezes em que o modelo previu os exemplos como negativos. Onde FN representa as predições erradas e T N as predições corretas (Dangeti 2017).

(29)

2.1. APRENDIZAGEM DE MÁQUINA 11

Acurácia

Esta medida representa a porcentagem total de acertos do modelo. Ou seja, é a razão entre a quantidade de verdadeiros positivos, T P, mais os verdadeiros negativos, T N, e a quantidade total de positivos e negativos. Como mostrado na Equação 2.1.

Acurácia = T P+ T N

T P+ T N + FP + FN (2.1)

A acurácia é frequentemente utilizada em classificação, onde se é clara e objetiva a noção de acerto ou erro. Porém, em casos como regressão ou geração, espera-se um erro contínuo e não discreto. Ou seja, não há um limite definido entre acerto e erro, e sim, todo um espectro (Pedregosa et al. 2011).

É importante perceber que existem situações em que o modelo possui um alto valor de acurácia, porém, não possui uma boa performance na execução da tarefa. Isso se dá, na maioria dos casos, pelo desbalanceamento de classes no conjunto de treinamento e pelo mesmo valor de penalidade para todas as classes. Desta forma, o modelo encontrará uma forma mais simples de reduzir o erro através de fixar apenas a classe de maior ocorrência na saída, independente do exemplo de entrada (Goodfellow et al. 2016).

Precisão

A precisão representa a porcentagem de predições positivas corretas em relação ao total de predições positivas. Em outras palavras, representa o quanto é provável para um valor classificado como positivo ser, de fato, positivo (Pedregosa et al. 2011). É calculado a partir da Equação 2.2.

Precisão = T P

T P+ FP (2.2)

A precisão é utilizada em situações onde o número de falso positivos são considerados mais prejudiciais ao sistema, como por exemplo modelos para diagnóstico de doenças, onde é necessário reduzir ao máximo o número de casos onde o paciente é erroneamente identificado como positivo para determinada doença (Goutte & Gaussier 2005).

Revocação

A revocação, ou também chamada de sensibilidade, é semelhante a precisão, porém, representa a porcentagem de predições positivas corretas em relação ao total de exemplos de fato positivos (Goutte & Gaussier 2005). Ou seja, é o quão provável o modelo clas-sificará o exemplo como positivo, dado que ele seja positivo. É calculado pela Equação 2.3.

Revocação = T P

T P+ FN (2.3)

Esta métrica é utilizada normalmente quando se tem uma maior preocupação em falsos negativos, como em casos de identificação de atividades potencialmente terroristas, onde

(30)

12 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

deseja-se penalizar mais o modelo que erroneamente classifique ações suspeitas como negativas.

F1-Score

Por vezes é conveniente utilizar ambos a precisão e a revocação. No entanto, é possível uni-los em um único valor chamado F1-Score, calculado pela Equação 2.4.

F1-Score = 2 ∗ precisão ∗ revocação

precisão + revocação (2.4) Esta medida é usualmente utilizada em situações onde há desbalanceamento de ses no conjunto de treinamento. Difere da acurácia por possuir mais sensibilidade a clas-ses com menos exemplos, fazendo um equilíbrio entre precisão e revocação (Goutte & Gaussier 2005).

2.1.3

A Experiência, E

Modelos de Aprendizagem de Máquina podem ainda ser classificados de acordo com o tipo de experiência que utilizam para melhorar sua performance. Esta experiência acon-tece normalmente na forma de dados ou interações com o ambiente.

A disponibilidade e o formato dos dados determinam a experiência e, consequente-mente, a forma com que o algoritmo de aprendizado irá atualizar os parâmetros do modelo para melhorar o desempenho. Dentre as formas de aprendizado mais conhecidas, estão: Aprendizagem Supervisionada

Neste tipo de aprendizagem, os dados estão organizados em um conjunto de dados com uma correspondência entre entrada e saída bem definida para cada item do conjunto. Normalmente, cada exemplo i do conjunto de treinamento está na forma de um vetor de entrada xxxi, correspondente a um conjunto de características numéricas do exemplo, juntamente com um vetor de saída yyyi, que será a classe ou alvo. Portanto, o conhecimento a respeito do ambiente será fornecido ao modelo através de um professor, ou supervisor, que mostrará ao modelo o que fazer. Os parâmetros do modelo serão então ajustados de acordo com um sinal de erro, que é definido como a diferença entre a saída esperada e a saída calculada pelo modelo. Esse ajuste é feito iterativamente com o objetivo de fazer o modelo, eventualmente, emular o professor (Haykin & Network 2004). Desta forma, o conhecimento do ambiente é passado ao modelo através do professor até que uma condição seja atingida e o professor possa ser dispensado, fazendo com que seja possível o modelo funcionar por si mesmo (Goodfellow et al. 2016). A Figura 2.1 ilustra o papel do supervisor.

Este tipo de aprendizagem é utilizado em classificação, regressão, dentre outros tipos de tarefa. Como exemplo, existem os classificadores de imagens, em que no treinamento a entrada do modelo seria uma matriz com os valores numéricos de cada pixel da imagem e a saída será um vetor correspondente a classe do exemplo (Krizhevsky et al. 2017); em classificadores de texto, em que as entradas são sequência de tokens e a saída a classe

(31)

2.1. APRENDIZAGEM DE MÁQUINA 13

Figura 2.1: Aprendizagem Supervisionada.

correspondente (Zhang et al. 2015) e em modelos de tradução (Bahdanau et al. 2014), onde a entrada do modelo será uma sequência de tokens e a saída outra sequência de tokensem outra codificação.

Aprendizagem Não-Supervisionada

Na aprendizagem não-supervisionada não existe a figura do professor. Ou seja, não é uma correspondência entre entrada e saída que gere um sinal de erro que será utilizado para atualizar os parâmetros do modelo. Ao invés disso, o objetivo do modelo é apren-der de forma implícita ou explícita a distribuição de probabilidades em que o conjunto de treinamento foi gerado (Goodfellow et al. 2016), como mostra a Figura 2.2. Uma vez que o modelo tenha sido ajustado às regularidades estatísticas dos dados de entrada, será desenvolvida a habilidade de criar representações internas onde serão codificadas carac-terísticas das entradas (Becker 1991).

(32)

14 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

Aprendizagem Semi-Supervisionada

Por vezes, apenas uma pequena parte do conjunto de treinamento é rotulada, ou seja, possui os valores de saída bem definidos, enquanto outra parte não é. Esta cate-goria de aprendizagem está entre a aprendizagem supervisionada e a aprendizagem não-supervisionada e possui como estratégia básica utilizar os dados rotulados disponíveis para fazer inferências estatísticas sobre os dados não rotulados, por meio de detecção de padrões. Isso causa um considerável aumento de desempenho e é útil em casos em que mesmo com uma grande quantidade de dados, não seja viável rotular todos os exemplos (Zhu & Goldberg 2009).

Aprendizagem por Reforço

Este tipo de aprendizagem também não possui um supervisor. O modelo mapeia as relações entre entrada e saída através de interações com o ambiente, por meio de ações realizadas por um agente (Kaelbling et al. 1996). O modelo busca, portanto, aprender qual sequência de ações executar de acordo com o estado do ambiente e de si próprio, de modo que seja mais recompensado cumulativamente por suas ações futuras. O processo de aprendizagem por reforço pode ser visto na Figura 2.3.

Figura 2.3: Aprendizagem por Reforço.

Aprendizagem por reforço é utilizada em aplicações como carros autônomos e robó-tica, em que do contrário de outros tipos de aprendizagem, possui sua experiência atri-buída necessariamente à interações com o ambiente.

2.2

Redes Neurais

Dentre os algoritmos de Machine Learning, destaca-se uma categoria de algoritmos chamada de Redes Neurais Artificiais, normalmente chamada apenas de Redes Neurais. Sua estrutura básica é inspirada no cérebro dos mamíferos, especificamente, na forma com que os neurônios processam os sinais elétricos e se agrupam em camadas. Este tipo de algoritmo, devido a sua grande capacidade de abstração de problemas mais complexos

(33)

2.2. REDES NEURAIS 15

e escalabilidade, foi um dos responsáveis pelo aumento da quantidade de pesquisas e aplicações em Inteligência Artificial nos últimos anos. A forma com que as Redes Neurais são estruturadas e organizadas, compõe as áreas mais recentes de pesquisa em Machine Learning, como por exemplo, o Deep Learning (LeCun et al. 2015).

2.2.1

O Neurônio Artificial

As redes neurais são modelos matemáticos bioinspirados que tomam como base o cérebro humano. Assim como o nosso cérebro, as redes neurais possuem unidades funda-mentais chamadas neurônios artificiais, que são funções matemáticas que recebem uma ou mais entradas xi, e, a partir delas, produz uma saída ˆy, através de uma função f : Rn→ R onde n é a quantidade de entradas do neurônio artificial (Haykin & Network 2004).

Um neurônio artificial poderá ter uma ou mais entradas numéricas xi, onde cada en-trada será um valor numérico associado a determinada característica de cada exemplo dos dados. É conveniente escrever estas n entradas em notação vetorial, como mostrado na Equação 2.5. x =      x1 x2 .. . xn      (2.5)

Da mesma forma que as terminações de um neurônio natural podem ser excitatórias ou inibitórias, ou seja, alguns sinais possuem mais capacidade de continuar se propagando, são associados pesos wipara cada entrada xido neurônio artificial, de forma que o produto do peso pela sua respectiva entrada reflita a importância deste sinal no cálculo da saída. Estes pesos também podem ser escritos na forma vetorial, como mostra a Equação 2.6.

w =      w1 w2 .. . wn      (2.6)

Após feito o produto de todas as entradas por seus respectivos pesos, estes valores serão somados. Assim, é possível representar a soma dos produtos por meio do produto interno xT · w. Sendo esta a equação de um hiperplano, é útil adicionar um termo inde-pendente b como parâmetro otimizável, chamado de bias, para que o hiperplano represen-tado pelo neurônio artificial possa se deslocar sem necessariamente passar pela origem. Fazendo com que o modelo tenha mais liberdade para se ajustar melhor aos dados.

Este resultado é atribuído ao vetor z, como z = xT·w+b ainda passará por uma função chamada função de ativação, que representará a saída do neurônio. Esta função φ(x) irá mapear o resultado do produto interno junto com o bias para uma faixa de valores e forma de curva conveniente à aplicação. Assim, utilizando a notação vetorial para representar o produto interno das entradas com os pesos, somando com o bias e passando pela função de ativação, é obtida a equação que representa o neurônio, como mostrado na Equação

(34)

16 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

2.7.

f(x) = ˆy= φ(xT · w + b) (2.7) Onde a função de ativação φ é responsável por deixar o modelo não-linear e o possibi-litando de modelar problemas que não são necessariamente linearmente separáveis. Uma representação de um neurônio artificial com n entradas e função de ativação φ pode ser vista na Figura 2.4.

Figura 2.4: Neurônio Artificial.

2.2.2

Redes Neurais de Múltiplas Camadas

Apenas um neurônio artificial com uma quantidade limitada de entradas não possui capacidade de resolver problemas mais complexos. Para superar estas limitações, neurô-nios são agrupados em redes constituídas de múltiplas camadas, sendo que cada neurônio de uma determinada camada possui conexões com todos os outros neurônios da camada anterior. Estas modificações na estrutura permitem uma maior capacidade de resolver problemas e tem como pontos principais (Haykin & Network 2004):

• O modelo de cada neurônio possui uma função de ativação não-linear que é dife-renciável.

• A rede contém uma ou mais camadas que são ocultas dos nós de entrada e saída. • A rede possui um alto grau de conectividade, que é determinada pelos pesos

sináp-ticos da rede neural.

A cada camada adicionada na rede, o modelo obtém uma maior capacidade de criar representações abstratas para suas entradas, permitindo resolver problemas mais comple-xos. No entanto, mais parâmetros serão adicionados ao modelo, o que dificulta a análise do aprendizado através das representações internas do modelo e a busca por uma configu-ração ótima terá que ser feita em um espaço maior de possibilidades. Uma Rede Neural de Múltiplas Camadas, ou Perceptron de Múltiplas Camadas, pode ser vista na Figura 2.5.

(35)

2.2. REDES NEURAIS 17

Figura 2.5: Rede Neural de Múltiplas Camadas.

Ao se tratar de redes de múltiplas camadas, é natural que a complexidade em analisar o comportamento de cada neurônio da rede aumente. De forma que se faz necessário estabelecer uma notação mais conveniente. Portanto, decidiu-se utilizar neste trabalho a convenção de que uma rede possui L camadas, sendo que existem nlneurônios na camada l, em que n0é a quantidade de neurônios na camada de entrada e nL, na camada de saída. Sendo que agora cada camada terá como saída um vetor de ativações que será a entrada próxima camada, é conveniente que os pesos sinápticos da camada l sejam na forma de uma matriz Wl de tamanho n × n − 1 para que o seu produto pelo vetor de tamanho n − 1 resulte em um vetor de tamanho n, que será o tamanho da entrada da próxima camada junto com o vetor de bias b[l], como mostrado na Equação 2.6.

z[l]= W[l]a[l−1]+ b[l] (2.8)

Onde o vetor de ativações da camada l é calculado pela função de ativação em cada elemento do vetor de saídas:

a[l]= φ(z[l]) =       φ(z[l]1 ) φ(z[l]2 ) .. . φ(z[l]nl)       =       a[l]1 a[l]2 .. . a[l]nl       (2.9)

(36)

18 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

Por convenção, o vetor de entrada de um exemplo x será igual a ativação da camada de entrada. Ou seja, a[0]= x.

Aprendizagem Profunda

O agrupamento de neurônios em camadas permitiu às redes neurais uma maior dade de representação abstrata das entradas e, portanto, proporcionou uma maior capaci-dade em resolver problemas. Porém, o aumento de número de parâmetros faz necessário um maior poder computacional e uma maior quantidade de dados em comparação aos modelos clássicos. Isso fez com que esta área se beneficiasse com o aumento da capa-cidade computacional e disponibilidade de dados nos últimos anos. A este conjunto de técnicas que permitem o uso de redes profundas em problemas complexos, dá-se o nome de Deep Learning, ou Aprendizagem Profunda (LeCun et al. 2015).

Processo de Aprendizado

Uma rede neural é uma função f (x; θ) em que os parâmetros θ definem um espaço de possibilidades. O propósito do treinamento é encontrar um ponto nesse espaço que caracterize uma configuração ótima, ou pelo menos boa o suficiente, para o modelo a partir dos dados de treinamento (Goodfellow et al. 2016).

O processo de aprendizagem se dá normalmente por métodos que envolvem os gradi-entes do erro em relação aos pesos da rede. Isto permite que o modelo consiga otimizar os pesos de forma iterativa em direção a uma solução com um erro mínimo. Este erro é definido por meio de uma função de custo que dependerá das saídas previstas pela rede e pelos valores reais dos dados de treinamento.

Neste trabalho foi utilizado o método do gradiente descendente para otimização dos pesos, uma função de custo para servir de feedback ao algoritmo de aprendizado, back-propagation para encontrar os gradientes e grafos computacionais para implementação do algoritmo. Cada um destes elementos será mostrado nas Seções seguintes.

2.2.3

Gradiente Descendente

O processo de aprendizado em uma rede neural de múltiplas camadas pode ser uma tarefa computacionalmente custosa, pois a medida que se aumenta a quantidade de parâ-metros, aumenta-se também o espaço de configurações. Busca-se um ponto deste espaço em que o custo seja mínimo. Assim, normalmente utiliza-se algoritmos que busquem de forma iterativa por um mínimo local da função de custo J(θ) que dependerá dos parâme-tros do modelo. Dentre os algoritmos de otimização, um bastante utilizado e que também será utilizado neste trabalho é o Gradiente Descendente.

Primeiramente, escolhe-se um ponto aleatoriamente no espaço de configurações. Ou seja, valores aleatórios para cada parâmetro do modelo. Em seguida, calcula-se os gra-dientes da função de custo em relação a cada um dos parâmetros. Tendo em vista que o gradiente indica a direção de maior variação, este valor é subtraído do valor atual dos parâmetros, de forma que o novo ponto siga em direção a um mínimo local, como visto na Equação 2.10.

(37)

2.2. REDES NEURAIS 19

θn= θn−1− γ∇J(θ) (2.10)

Onde γ é um hiper-parâmetro chamado constante de aprendizagem e determina o tamanho do passo em direção ao mínimo que será dado a cada iteração. A escolha deste hiper-parâmetro é importante para a velocidade de treinamento e convergência. Uma vez que caso seja muito grande, o algoritmo pode não atingir um mínimo local e caso seja muito pequena, o treinamento seja muito demorado. Adicionalmente, ainda existem algoritmos de aprendizagem em que este parâmetro é adaptável. Ou seja, durante o treina-mento, a constante de aprendizagem é adaptável a cada parâmetro do modelo, de modo a conseguir uma convergência mais rápida, como é o caso do AdaGrad, RMSProp e Adam. O processo de otimização por gradiente descendente pode ser visto na Figura 2.6.

Figura 2.6: Gradiente Descendente.

O algoritmo do gradiente descendente, em sua implementação tradicional, calcula o custo a partir de todos os dados do conjunto de treinamento e, só então, atualiza os parâ-metros. Este processo é repetido por múltiplas iterações. No entanto, existe uma variação deste algoritmo quanto a como os parâmetros são atualizados a partir dos dados de trei-namento, chamado Gradiente Descendente Estocástico. Em que ao invés de computar o custo para todo o conjunto de treinamento, o algoritmo atualiza os parâmetros usando um exemplo ou um subconjunto de exemplos, também chamado de minibatch. Isso faz com que o treinamento seja mais rápido e possui vantagens computacionais, uma vez que não é necessário ter todo conjunto de treinamento na memória, apenas batches, de cada vez.

(38)

20 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

Em cada iteração, a função de custo é calculada utilizando a diferença entre as pre-dições feitas pelo modelo com a configuração atual de parâmetros e os valores reais do conjunto de treinamento. Mais detalhes sobre esta função será mostrado na Seção 2.2.4. A forma com que os gradientes são calculados, é mostrada na Seção 2.2.5

2.2.4

Funções de Custo

Para que o algoritmo de otimização consiga atualizar os parâmetros, é necessário saber a direção em que eles precisam ser atualizados. Esta direção é informada pela direção oposta do gradiente da função de custo J(θ) em relação aos parâmetros do modelo, como foi mostrado na Equação 2.10. Desta forma, a escolha da função de custo desempenha um papel importante para o treinamento do modelo, uma vez que será através dela que o algoritmo de otimização saberá o quanto do valor previsto diverge do valor esperado a cada época e, assim, buscará atualizar os parâmetros do modelo para minimizar o custo.

Como exemplos para estas funções, é possível citar o erro absoluto, em que calcula-se apenas a diferença absoluta entre o valor real e o previsto ou então o erro quadrático médio, que se refere ao quadrado das diferenças entre o valor real e o previsto pelo mo-delo.

No entanto, as saídas de uma rede neural podem ser interpretadas como uma distri-buição de probabilidades p(y|x; θ), em que uma determinada entrada x de um modelo com parâmetros θ produz uma saída y. Desta forma, também é possível utilizar métodos de máxima verossimilhança para estimar os parâmetros θ, como no caso em que tenta-se modelar a distribuição de dados através de uma verossimilhança logarítmica. Assim, o algoritmo de aprendizado tentará minimizar o inverso desta função, também chamada de verossimilhança logarítmica inversa, dada pela Equação 2.11. Esta função é por vezes também conhecida por entropia cruzada, que pode ser interpretada como o número mé-dio de bits necessários para codificar dados vindo de uma distribuição p, utilizando um modelo q.: min θ 1 N N

n=1 −ynlog pθ(yn|xn) (2.11) Neste trabalho será utilizado como função de custo a entropia cruzada, uma vez que possui uma melhor performance para problemas de classificação.

2.2.5

Retropropagação

Para que o algoritmo de otimização consiga minimizar a função de custo, são utiliza-dos os gradientes desta função em relação a toutiliza-dos os parâmetros do modelo e, sabendo que a organização do modelo é feita por camadas de modo que o valor de uma camada dependa da saída da camada anterior, é necessário uma forma de calcular estes gradientes. Uma das maneiras de fazer isso é pelo algoritmo de retropropagação, que consiste em duas etapas:

1. Passo para frente: Um exemplo xn é colocado na entrada do modelo e o sinal é propagado até a última camada para calcular a saída ˆyn.

(39)

2.3. REDES NEURAIS RECORRENTES 21

2. Passo para trás: Conhecendo y e ˆyn, é calculado o erro do modelo a partir da função de custo. Posteriormente, é calculado o gradiente deste erro em relação aos pesos da última camada e, por meio da regra da cadeia para derivadas parciais, o gradiente do erro pode ser calculado para todas as camadas até a primeira.

Apesar de que com apenas a retropropagação seja possível obter uma solução analí-tica para os gradientes, uma vez que a rede neural possa crescer a ponto de ser inviável calcular todas as derivadas, este algoritmo é normalmente implementado através de gra-fos computacionais, em que todo o modelo é representado por um grafo onde cada nó corresponde a uma operação matemática fundamental, como multiplicação ou adição. Assim, as duas etapas do algoritmo de retropropagação podem ser implementadas por meio de grafos, o que dá mais liberdade para implementar modelos mais complexos sem a necessidade de chegar-se antes a uma solução analítica para o problema de otimização.

2.3

Redes Neurais Recorrentes

As redes neurais convencionais podem ser expressas como uma função f que mapeia uma entrada x de tamanho fixo com n características para uma saída ˆy, também de tama-nho fixo, m. No entanto, há casos em que a entrada do modelo seja uma sequência de valores, de tal forma que não apenas os valores em si sejam suficientes para realizar de-terminada tarefa mas, também, a posição de cada um na sequência de entrada, como por exemplo, textos em linguagem natural que são constituídos de uma sequência de palavras. Para este tipo de aplicação, são utilizadas uma diferente categoria de redes neurais chamadas de Redes Neurais Recorrentes (RNN, do inglês Recurrent Neural Network), que são estruturadas de uma forma que a entrada seja enviada para o modelo de forma se-quencial, para que sejam criadas representações que dependam também do passo anterior. Assim, o estado interno é utilizado para processar sequências de tamanho variável. Sendo possível ao final do processo obter uma representação de toda a sequência de entrada, independente de seu tamanho.

Como todo o processo é sequencial, é comum representar uma unidade recorrente de forma que seja possível observar cada etapa do processo, como mostrado na Figura 2.7. No entanto, há diversas arquiteturas para as Redes Neurais Recorrentes. As principais serão mostradas a seguir.

2.3.1

Modelos de Elman e Jordan

Um dos modelos mais simples de RNN são as Redes de Elman, que possuem três camadas, sendo uma de entrada, uma oculta e uma de saída. Sendo que os valores da camada oculta do passo anterior são conectados para o cálculo do valor atual através de pesos, como pode ser visto na Figura 2.8.

Os valores da camada intermediária ht representarão o estado do modelo no passo t. Onde a cada passo da sequência de entrada será enviado à rede o t-ésimo elemento do exemplo em conjunto com o estado do passo anterior, t − 1. Estes valores são utilizados para calcular o novo estado atual do modelo, como mostrado na Equação 2.12:

(40)

22 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

Figura 2.7: Rede neural recorrente representada em múltiplos passos.

Figura 2.8: Modelo Recorrente de Elman.

ht= φh(Wihxt+ Whhht−1+ bh) (2.12) Onde φh representa a função de ativação da camada intermediária, Wih são os pesos das conexões da camada de entrada com a camada oculta, Whh são os pesos associados

(41)

2.3. REDES NEURAIS RECORRENTES 23

às conexões da camada intermediária do passo anterior com o atual e bh) são os valores de bias da camada intermediária. Além disso, a saída da rede no passo t é calculada utilizando apenas o estado atual, como mostrado na Equação 2.13:

ˆyt= φy(Whoht+ by) (2.13) Onde φy é a função de ativação da camada de saída, Who são os pesos associados às conexões da camada intermediária com a camada de saída e by) são os valores de bias da camada de saída.

Um modelo semelhante às redes de Elman são as Redes de Jordan, sendo que a única diferença está em como o vetor de estado é calculado, pois neste modelo, ao invés de utilizar o estado do passo anterior, é utilizado a saída do passo anterior, como mostrado na Equação 2.14 e na Figura 2.9.

Figura 2.9: Modelo Recorrente de Jordan.

ht= φh(Wihxt+ Wohyt−1+ bh) (2.14) Onde Woh é a matriz de pesos que relaciona a última saída do modelo com o estado atual, de forma que o vetor de estado dependa diretamente da última saída e da entrada atual.

(42)

24 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

2.3.2

Long Short-Term Memory (LSTM)

Embora modelos recorrentes clássicos como as Redes de Elman e de Jordan sejam feitos para modelagem de dados sequenciais, estes modelos podem apresentar proble-mas ao lidar com estas sequências quando são muito grandes, uma vez que a cada passo da sequência de entrada o vetor de estado ht é alterado da mesma forma que nos pas-sos anteriores, fazendo com que o modelo não tenha controle de quais informações são preservadas ou descartadas, ocasionando problemas ao recuperar informações de longo alcance em um vetor de tamanho fixo.

Um outro problema é que RNNs possuem é a presença de instabilidades no gradiente, podendo-o fazer explodir ou ser dissipado. Estes problemas são ocasionados pela forma com que o gradiente descendente é feito em modelos recorrentes, se comportando de forma semelhante a uma rede de múltiplas camadas. Quando o gradiente possui um valor elevado e na retropropagação ele cresce indefinidamente, chama-se de Problema da Ex-plosão do Gradiente e quando possui um valor pequeno que tende a ficar cada vez menor no decorrer da retropropagação, chama-se de Problema da Dissipação do Gradiente.

Alguns tipos de modelos recorrentes que tentam resolver estes problemas são os ba-seados na técnica de gating, que possuem módulos responsáveis por controlar o fluxo de determinadas informações dentro do modelo. Isso faz com que seja possível a rede neural aprender a selecionar que tipo de informação deverá ser preservada e qual deverá ser es-quecida, fazendo com que informações mais relevantes sejam priorizadas sob as demais e reduzindo o problema da dissipação do gradiente.

Uma arquitetura baseada em gating foi proposta por Hochreiter & Schmidhuber (1997), chamada de Memória Longa de Curto Prazo (LSTM, do inglês Long Short-Term Me-mory). Este modelo busca preservar informações importantes e descartar informações desnecessárias por meio de uma porta de entrada, uma porta de saída e uma porta de esquecimento. Estas portas, também chamadas comumente de gates, se relacionam por meio de um vetor chamado de estado da célula e de outro que representa o estado do modelo. A Figura 2.10 mostra a relação entre estas portas.

As forma com que o novo vetor de estado e o estado da célula são calculados a cada passo pode ser visto da Equação 2.15 até a Equação 2.20.

ft = σs(Wfxt+ Wfhh−1+ bf) (2.15) it = σs(Wixt+ Wihh−1+ bi) (2.16) ot = σs(Woxt+ Wohh−1+ bo) (2.17) ect = σt(Wcxt+ Wchh−1+ bc) (2.18) ct = ft ct−1+ it ect (2.19) ht = ot σt(ct) (2.20) Onde:

• xt: Vetor de entrada no passo t.

• ht: Vetor de estado oculto, ou saída, no passo t.

(43)

2.3. REDES NEURAIS RECORRENTES 25

Figura 2.10: Arquitetura da Memória Longa de Curto Prazo.

• it: Vetor de ativação da porta de entrada no passo t. • ot: Vetor de ativação da porta de saída no passo t. • ect: Vetor candidato de memória de célula no passo t. • ct: Vetor de estado da célula no passo t.

• W, U e b: Parâmetros da rede.

• σse σt: Funções de ativação sigmoid e tangente hiperbólica.

Assim, a porta de esquecimento, ft, controla quais informações armazenadas no vetor de estado ct são esquecidas e o vetor de entrada, it, controla quais novas informações serão guardadas nesse vetor. Tais operações dependem apenas do estado anterior, ht−1 e da entrada atual, xt. A saída da célula então, é calculada por meio da porta de saída através de ot.

2.3.3

Gated Recurrent Unit (GRU)

Outro exemplo de modelo baseado em gating é a Unidade Recorrente Bloqueada (GRU, do inglês Gated Recurrent Unit). Apesar de possuir um propósito semelhante às LSTM, difere por controlar o fluxo de informações sem a necessidade de uma unidade de memória, realizando estas operações diretamente no estado da célula. Além disso, as GRU são relativamente novas e são mais eficientes computacionalmente em comparação com as LSTM (Chung et al. 2014). A arquitetura da GRU pode ser vista na Figura 2.11.

A forma com que é calculado o novo estado a partir do estado anterior e da entrada atual é mostrado da Equação 2.21 até a Equação 2.24.

(44)

26 CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA

Figura 2.11: Arquitetura da Unidade Recorrente Bloqueada.

zt= σs(Wzxt+ Uzht−1+ bz) (2.21) rt= σs(Wrxt+ Uzht−1+ br) (2.22) e ht= σt(Whxt+ Uh(rt ht−1) + bh) (2.23) ht= (1 − zt) ht−1+ zt eht (2.24) Onde:

• xt: Vetor de entrada no passo t. • ht: Vetor de estado no passo t.

• eht: Candidato do vetor de ativação no passo t. • zt: Vetor de update no passo t.

• rt: Vetor de reset no passo t. • W, U e b: Parâmetros da rede.

• σse σt: Funções de ativação sigmoid e tangente hiperbólica.

De modo que o estado no passo anterior, ht−1 em conjunto com a entrada atual, xt, determinam os vetores de update, zt e de reset rt. Estes vetores serão utilizados para determinar o valor do estado atual, ht, através do controle de quanto da informação antiga deverá ser preservada e quanto da informação nova deverá ser adicionada ao estado.

Uma vez que este trabalho tem como propósito possibilitar um treinamento computa-cionalmente eficiente em conjunto com unidades recorrentes com mecanismos de controle

(45)

2.3. REDES NEURAIS RECORRENTES 27

de fluxo de informação para sequências longas, foi optado pelas GRU como unidades fun-damentais do sistema proposto.

2.3.4

Arquitetura Encoder-Decoder

Os modelos recorrentes, como GRU e LSTM, são úteis para codificar toda uma sequên-cia de entrada em um vetor de estado ht. Esta representação vetorial de uma determinada entrada pode ser utilizada para fazer predições de classe ou para prever o próximo token da sequência, como em modelos de linguagem. No entanto, em algumas tarefas é ne-cessário a conversão de uma sequência de entrada para outra sequência, como no caso da tradução. Para este tipo de tarefa, o modelo encoder-decoder foi proposto por Cho et al. (2014) e consiste em um encoder, que irá processar uma sequência de entrada, de tamanho nx, X = (x(1), ..., x(nx)) e gerar um contexto C, que será uma função do estado oculto final; e um decoder, que a partir de C irá gerar uma sequência de saída, de tamanho ny, Y = (y(1), ..., y(ny)). De modo que o modelo irá estimar uma probabilidade dada pela

Equação 2.25.

P(y(1), ..., y(ny)|x(1), ..., x(nx)) (2.25)

Este modelo também faz com que não seja necessário que nx seja igual a ny, ou seja, as sequências de entrada e saída podem ter tamanhos diferentes, uma vez que o processo de decodificação é feito a partir apenas de um contexto. Uma representação da arquitetura encoder-decoderpode ser vista na Figura 2.12.

Figura 2.12: Arquitetura encoder-decoder.

Como pode ser observado, no encoder é onde acontecerá a codificação da sequência de entrada em um contexto C. A cada passo i do processo de codificação, através de uma unidade recorrente, como GRU ou LSTM, que é representado por uma função f , será calculado o vetor de estado oculto atual hi de acordo com a entrada atual xi e o estado oculto do passo anterior hi−1, de acordo com a Equação 2.26.

hi= f (xi, hi−1) (2.26)

Normalmente, usa-se o estado inicial do encoder h0 igual a um vetor de zeros e a entrada inicial x0como referente ao token de início de sequência. Ao final da sequência, haverá uma representação de toda a entrada, representada pelo contexto C.

Referências

Documentos relacionados

No contexto em que a Arte é trabalhada como recurso didático-pedagógico na Educação Matemática (ZALESKI FILHO, 2013), pode-se conceber Performance matemática (PM) como

Neste sentido consideramos importante refletir, no INCTE 2018, sobre o desenvolvimento da lite- racia emocional dos professores e no modo como as emoções interferem na ação educativa

O bloqueio intempestivo dos elementos de transmissão de energia entre os equipamentos e acessórios ou reboques está impedido ou se não está existem medidas que garantem a segurança

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Hoje o gasto com a saúde equivale a aproximada- mente 8% do Produto Interno Bruto (PIB), sendo que, dessa porcentagem, o setor privado gasta mais que o setor público (Portal

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

O estudo múltiplo de casos foi aplicado para identificar as semelhanças e dissemelhanças na forma como as empresas relacionam seus modelos de negócios e suas