kompetanseutviklende tiltak
VITENKAPELIGE PUBLIKASJONER Knyttet til prosjekter ved NSSF
A Inteligência Artificial (do inglês, Artificial Intelligence - AI) é um subcampo da ciência da computação, que foi criado na década de 1960, e concentra-se na resolução de tarefas que são fáceis para os seres humanos, conquanto difíceis para os computadores, recorrendo a conceitos como ML e deep learning. O ML baseia-se na aplicação de um conjunto de métodos para modelação de informação que poderá ser usado para previsões, tomada de decisões ou otimização de sistemas. São diversas as técnicas envolvidas: naive Bayes, SVM, redes neuronais, regras de associação, árvores de decisão, regressão logística ou ainda uma combinação destas. ML concentra-se na descoberta da ação correta a tomar com base em problemas de IA, os quais são descritos a partir de termos discretos e de um conjunto de informações sobre o mundo atual. Em termos matemáticos, pode ser representado como uma função que apresenta
inputs e da qual se pretende obter os outputs corretos, girando todo o problema em torno da
construção de um modelo automatizado dessa função matemática [41][42].
O deep learning consiste na aprendizagem de vários níveis de representação e abstração que permitam fazer com que o conjunto de dados obtenha um sentido, utilizando para tal redes neuronais artificiais. Os níveis desses modelos estatísticos aprendidos correspondem a níveis distintos de conceitos, em que os conceitos de nível inferior podem ajudar a definir muitos conceitos de nível superior [43]. É possível a sua associação a um modelo matemático que pode ser pensado como uma composição de blocos simples (semelhante à composição de uma função) de um certo tipo, onde alguns desses blocos podem ser ajustados para melhor prever o resultado final [41].
Figura 2.2 - Esquema de uma rede neuronal padrão (retirado de [37]).
Uma rede neuronal (NN, do inglês Neural Net), figura 2.2, consiste em três tipos de camadas: de entrada, intermediária/escondida e camada de saída. De realçar que uma rede neuronal pode ter mais do que uma camada escondida, dependendo do tipo de modelo que se pretende obter. É composta por muitos processadores conectados designados por neurónios, cada um produzindo uma sequência de ativações reais. Os neurónios de entrada são ativados através de sensores que percebem o ambiente, enquanto os outros são ativados através de conexões ponderadas de neurónios previamente ativos. Alguns neurónios podem ainda influenciar o ambiente desencadeando ações. A aprendizagem ou atribuição de crédito numa NN diz respeito a encontrar pesos que as façam exibir o comportamento desejado [42]. Dependendo do problema e de como os neurónios estão conectados, tal comportamento pode exigir longas cadeias causais de estágios computacionais, onde cada estágio transforma
32 (frequentemente de forma não linear) a ativação agregada da rede. O deep learning diz respeito à correta atribuição destes pesos ao longo dos diversos estágios [41][42]. Assim, algoritmos de ML podem ser treinados para aprender, a partir de uma amostra de entradas, a prever ou explorar resultados no restante conjunto de dados. O deep learning é considerado um subconjunto destes algoritmos em que o sistema pode descobrir como conhecer, gerar e transformar características de dados por conta própria, normalmente explorando redes neuronais com mais de uma camada de processamento não-linear [41].
As séries temporais geralmente contêm dependências temporais que fazem com que dois pontos do tempo, de outra forma idênticos, pertençam a classes diferentes ou prevejam comportamentos diversos. Esta característica geralmente aumenta a dificuldade de análise. A previsão de séries temporais é um problema dificil de modelagem preditiva, pois adiciona a complexidade de uma dependência de sequência entre as variáveis de entrada [30]. Um poderoso tipo de rede neuronal concebido para lidar com a dependência de sequências são as redes neuronais recorrentes. A rede LSTM (do inglês, Long-Short Term Memory) é um tipo de rede neuronal recorrente usada em deep learning, que permite treinar com sucesso arquiteturas muito grandes [44]. Trata-se de uma rede otimizada para aprender a partir de dados temporais e atuar sobre eles, com dimensão temporal indefinida ou desconhecida. A sua arquitetura particular permite a persistência, dando à rede uma certa memória. Os recentes avanços no reconhecimento da escrita manual e reconhecimento automático do discurso beneficiaram deste tipo de redes [44].
2.3.3.1 P
LATAFORMA DE DESENVOLVIMENTOAtualmente, a linguagem mais utilizada em Data Science é Python, assim como também a mais apropriada para aplicar deep learning, tendo em conta que é uma linguagem de programação de propósito geral, ao contrário de R e Matlab mais direcionadas para a estatística. É também mais rápido e fácil de escrever e entender, quando comparado com C++ ou Java.
Por NumPy compreende-se uma biblioteca científica de Python composta por vários módulos que permitem uma manipulação conveniente e rápida de uma matriz multidimensional em termos de computação numérica e científica. SciPy é uma coleção de algoritmos matemáticos e funções assentes na biblioteca NumPy. O SciPy permite o desenvolvimento de programas
sofisticados e apliações especializadas para manipulação e vizualição de informação [45].Scikit- learn é uma biblioteca de ML que é comumente usada para desenvolvimento de modelos de
previsão através de deep learning trabalhando com bibliotecas numéricas e científicas em
Python, como o NumPy e SciPy [46].
Atualmente, existem diversas bibliotecas numéricas destinadas ao desenvolvimento de modelos deep learning em Python, nomeadamente, Theano, TensorFlow e Caffe. Na presente dissertação apenas foi usado o TensorFlow, uma biblioteca open source para computação numérica fazendo uso de gráficos de fluxo de dados. Foi originalmente desenvolvido para investigação de ML e deep learning [47].
Aliado ao TensorFlow foi também usado o Keras, uma API de topo de redes neuronais, desenvolvida puramente em Python e que apresenta uma interface menos complexa e técnica do que o verificado no TensorFlow. O Keras suporta redes neuronais convolucionárias, redes neuronais recorrentes, assim como a combinaçãos de ambas [46][48].
2.3.3.2
MODELOS DE PREVISIBILIDADE DESENVOLVIDOS ATRAVÉS DE TÉCNICAS DE DEEP LEARNINGNa literatura é possível encontrar uma vasta quantidade de trabalho já realizado sobre a aplicação de redes neuronais para modelação e previsão de séries temporais. As técnicas de
deep learning têm recebido grande atenção por parte dos investigadores de machine learning,
uma vez que têm oferecido um elevado desempenho nas mais diversas áreas, nomeadamente reconhecimento da fala e fonético, processamento de linguagem natural e de sinalética ou, ainda, na classificação semântica. Uma outra área onde estas técnicas têm sido postas em prova é na previsão. Em [49] propõe-se um método para a previsão de ações do mercado, tendo por base um conjunto de eventos impulsionadores. Numa segunda fase do desenvolvimento, usou-se uma rede neuronal convolucional profunda para modelar as flutuações de preços de ações, tanto a curto como a longo prazo. Uma nova arquitetura de
deep learning para a previsão da qualidade do ar, foi primeiramente apresentado em [50]. Os
autores avaliaram as correlações espaço-temporais aplicando primeiro um modelo de auto-
34 resultados deste método quando comparados com outros modelos, confirmam que aquele obteve resultados bastantes promissores [51].
É possível ainda destacar alguns trabalhos que têm demonstrado a aplicação de técnicas de
deep learning na área da saúde. Em [52] é apresentada uma proposta de modelação de lesões
na cabeça, e em [53] é estudada a doença de Parkinson. No primeiro, os autores descrevem a rede neural artificial (RNA) como uma ferramenta de modelação inovadora e poderosa, que pode cada vez mais ser aplicada ao desenvolvimento de modelos de previsão em neurocirurgia. O caso em estudo respeita à aplicação de uma RNA na previsão da sobrevivência de um paciente, após a ocorrência de uma lesão cerebral traumática. Foi possível verificar que, quando dada a mesma informação clínica, os resultados obtidos pela utilização de uma RNA, comparados à capacidade de previsão de modelos de regressão, foram mais assertivos, sensíveis, específicos e discriminatórios, superando significativamente os modelos de regressão em múltiplos aspetos.
No caso de estudo [42] é examinada a dificuldade da previsão do estado da doença de
Parkinson em indivíduos com base num conjunto de comportamentos naturais da vida diária de
pessoas afetadas pela doença. Os autores afirmam que técnicas de deep learning poderiam melhorar significativamente a prática clínica e argumentam ainda que tais técnicas eventualmente serviriam como uma nova base de ensaios, com o objetivo da aprendizagem não supervisionada ou semi-supervisionada, em que os as melhorias do doente deteriam impacto social significativo.