7 research outputs found
Data types as a more ergonomic frontend for Grammar-Guided Genetic Programming
Genetic Programming (GP) is an heuristic method that can be applied to many
Machine Learning, Optimization and Engineering problems. In particular, it has
been widely used in Software Engineering for Test-case generation, Program
Synthesis and Improvement of Software (GI).
Grammar-Guided Genetic Programming (GGGP) approaches allow the user to refine
the domain of valid program solutions. Backus Normal Form is the most popular
interface for describing Context-Free Grammars (CFG) for GGGP. BNF and its
derivatives have the disadvantage of interleaving the grammar language and the
target language of the program.
We propose to embed the grammar as an internal Domain-Specific Language in
the host language of the framework. This approach has the same expressive power
as BNF and EBNF while using the host language type-system to take advantage of
all the existing tooling: linters, formatters, type-checkers, autocomplete, and
legacy code support. These tools have a practical utility in designing software
in general, and GP systems in particular.
We also present Meta-Handlers, user-defined overrides of the tree-generation
system. This technique extends our object-oriented encoding with more
practicability and expressive power than existing CFG approaches, achieving the
same expressive power of Attribute Grammars, but without the grammar vs target
language duality.
Furthermore, we evidence that this approach is feasible, showing an example
Python implementation as proof. We also compare our approach against textual
BNF-representations w.r.t. expressive power and ergonomics. These advantages do
not come at the cost of performance, as shown by our empirical evaluation on 5
benchmarks of our example implementation against PonyGE2. We conclude that our
approach has better ergonomics with the same expressive power and performance
of textual BNF-based grammar encodings
Optimization of feature learning through grammar-guided genetic programming
Tese de Mestrado, Ciência de Dados, 2022, Universidade de Lisboa, Faculdade de CiênciasMachine Learning (ML) is becoming more prominent in daily life. A key aspect in ML is Feature Engineering (FE), which can entail a long and tedious process. Therefore, the automation of FE, known as
Feature Learning (FL), can be highly rewarding. FL methods need not only have high prediction performance, but should also produce interpretable methods. Many current high-performance ML methods
that can be considered FL methods, such as Neural Networks and PCA, lack interpretability.
A popular ML used for FL that produces interpretable models is Genetic Programming (GP), with
multiple successful applications and methods like M3GP. In this thesis, I present two new GP-based FL
methods, namely M3GP with Domain Knowledge (DK-M3GP) and DK-M3GP with feature Aggregation
(DKA-M3GP). Both use grammars to enhance the search process of GP, in a method called GrammarGuided GP (GGGP). DK-M3GP uses grammars to incorporate domain knowledge in the search process.
In particular, I use DK-M3GP to define what solutions are humanly valid, in this case by disallowing
operating arithmetically on categorical features. For example, the multiplication of the postal code of an
individual with their wage is not deemed sensible and thus disallowed.
In DKA-M3GP, I use grammars to include a feature aggregation method in the search space. This
method can be used for time series and panel datasets, to aggregate the target value of historic data based
on a known feature value of a new data point. For example, if I want to predict the number of bikes seen
daily in a city, it is interesting to know how many were seen on average in the last week. Furthermore,
DKA-M3GP allows for filtering the aggregation based on some other feature value. For example, we can
include the average number of bikes seen on past Sundays.
I evaluated my FL methods for two ML problems in two environments. First, I evaluate the independent FL process, and, after that, I evaluate the FL steps within four ML pipelines. Independently,
DK-M3GP shows a two-fold advantage over normal M3GP; better interpretability in general, and higher
prediction performance for one problem. DKA-M3GP has a much better prediction performance than
M3GP for one problem, and a slightly better one for the other. Furthermore, within the ML pipelines it
performed well in one of two problems. Overall, my methods show potential for FL.
Both methods are implemented in Genetic Engine an individual-representation-independent GGGP
framework, created as part of this thesis. Genetic Engine is completely implemented in Python and shows
competing performance with the mature GGGP framework PonyGE2.A Inteligência Artificial (IA) e o seu subconjunto de Aprendizagem Automática (AA) estão a tornarse mais importantes para nossas vidas a cada dia que passa. Ambas as áreas estão presentes no nosso
dia a dia em diversas aplicações como o reconhecimento automático de voz, os carros autónomos, ou o
reconhecimento de imagens e deteção de objetos. A AA foi aplicada com sucesso em muitas áreas, como
saúde, finanças e marketing.
Num contexto supervisionado, os modelos de AA são treinados com dados e, posteriormente, são usados para prever o comportamento de dados futuros. A combinação de etapas realizadas para construir um
modelo de AA, totalmente treinado e avaliado, é chamada um AA pipeline, ou simplesmente pipeline.
Todos os pipelines seguem etapas obrigatórias, nomeadamente a recuperação, limpeza e manipulação
dos dados, a seleção e construção de features, a seleção do modelo e a otimização dos seus parâmetros,
finalmente, a avaliação do modelo. A construção de AA pipelines é uma tarefa desafiante, com especificidades que dependem do domínio do problema. Existem desafios do lado do design, otimização de
hiperparâmetros, assim como no lado da implementação.
No desenho de pipelines, as escolhas devem ser feitas em relação aos componentes a utilizar e à sua
ordem. Mesmo para especialistas em AA, desenhar pipelines é uma tarefa entediante . As escolhas de
design exigem experiência em AA e um conhecimento do domínio do problema, o que torna a construção
do pipeline num processo intensivo de recursos.
Após o desenho do pipeline, os parâmetros do mesmo devem ser otimizados para melhorar o seu
desempenho. A otimização de parâmetros, geralmente, requer a execução e avaliação sequencial do
pipeline, envolvendo altos custos. No lado da implementação, os programadores podem introduzir bugs
durante o processo de desenvolvimento. Esses bugs podem levar à perda de tempo e dinheiro para serem
corrigidos, e, se não forem detectados, podem comprometer a robustez e correção do modelo ou introduzir
problemas de desempenho. Para contornar esses problemas de design e implementação, surgiu uma nova
linha de investigação designada por AutoML (Automated Machine Learning). AutoML visa automatizar
o desenho de AA pipelines, a otimização de parâmetros, e a sua implementação. Uma parte importante
dos pipelines de AA é a maneira como os features dos dados são manipulados. A manipulação de dados
tem muitos aspetos, reunidos sob o termo genérico Feature Engineering (FE). Em suma, FE visa melhorar
a qualidade do espaço de solução selecionando as features mais importantes e construindo novas features
relevantes. Contudo, este é um processo que consome muitos recursos, pelo que a sua automação é uma
sub-área altamente recompensadora de AutoML. Nesta tese, defino Feature Learning (FL) como a área
de FE automatizado. Uma métrica importante de FE e, portanto, de FL, é a interpretabilidade das features aprendidas. Interpretabilidade, que se enquadra na área de Explainable IA (XIA), refere-se à facilidade de entender o
significado de uma feature. A ocorrência de diversos escândalos em IA, como modelos racistas e sexistas, levaram a União Europeia a propor legislação sobre modelos sem interpretabilidade. Muitos métodos
clássicos, e portanto amplamente usados, carecem de interpretabilidade, dando origem ao interesse recémdescoberto em XIA. A atual investigação em FL trata os valores de features existentes sem os relacionar
com o seu significado semântico. Por exemplo, engenharia de uma feature que representa a multiplicação
do código postal com a idade de uma pessoa não é um uso lógico do código postal. Embora os códigos
postais possam ser representados como números inteiros, eles devem ser tratados como valores categóricos. A prevenção deste tipo de interações entre features, melhora o desempenho do pipeline, uma vez
que reduz o espaço de procura de possíveis features ficando apenas com as que fazem semanticamente
sentido. Além disso, este processo resulta em features que são intrinsecamente interpretáveis. Deste
modo, o conhecimento sobre o domínio do problema, impede a engenharia de features sem significado
durante o processo de FE..
Outro aspecto de FL normalmente não considerado nos métodos existentes, é a agregação de valores
de uma única feature por várias entidades de dados. Por exemplo, vamos considerar um conjunto de
dados sobre fraude de cartão de crédito. A quantidade média de transações anteriores de um cartão
é potencialmente uma feature interessante para incluir, pois transmite o significado de uma transação
’normal’. No entanto, isso geralmente não é diretamente inferível nos métodos de FL existentes. Refirome a este método de FL como agregação de entidades, ou simplesmente agregação.
Por fim, apesar da natureza imprevisível dos conjuntos de dados da vida real, os métodos existentes
exigem principalmente features que tenham dados homogêneos. Isso exige que os cientistas de dados realizem um pré-processamento do conjunto de dados. Muitas vezes, isso requer transformar categorias em
números inteiros ou algum tipo de codificação, como por exemplo one-hot encoding. Contudo, conforme
discutido acima, isso pode reduzir a interpretabilidade e o desempenho do pipeline.
A Programação Genética (GP), um método de ML, é também usado para FL e permite a criação
de modelos mais interpretáveis que a maioria dos métodos tradicionais. GP é um método baseado em
procura que evolui programas ou, no caso de FL, mapeamentos entre apresentas de espaços. Os métodos
de FL baseados em GP existentes não incorporam os três aspectos acima mencionados: o conhecimento
do domínio, a agregação e a conformidade com tipos de dados heterogêneos. Algumas abordagens incorporam algumas partes desses aspetos, principalmente usando gramáticas para orientar o processo de
procura. O objetivo deste trabalho é explorar se a GP consegue usar gramáticas para melhorar a qualidade da FL, quer em termos de desempenho preditivo ou de interpretabilidade. Primeiro, construímos
o Genetic Engine, uma framework de GP guiada por gramática (Grammar-Guided GP (GGGP)). O Genetic Engine é uma framework de GGGP fácil de usar que permite expressar gramáticas complexas.
Mostramos que o Genetic Engine tem um bom desempenho quando comparado com a framework de
Python do estado da arte, PonyGE2.
Em segundo lugar, proponho dois novos métodos de FL baseados em GGGP implementados no Genetic Engine. Ambos os métodos estendem o M3GP, o método FL do estado da arte baseado em GP.
A primeira incorpora o conhecimento do domínio, denominado M3GP com conhecimento do domínio (M3GP with Domain Knowledge (DK-M3GP)). O primeiro método restringe o comportamento das features permitindo apenas interações sensatas, por meio de condições e declarações. O segundo método
estende X DK-M3GP, introduzindo agregação no espaço de procura, e é denominado DK-M3GP com
Agregação (DK-M3GP with Aggregation (DKA-M3GP)). O DKA-M3GP usa totalmente a facilidade de
implementação do Genetic Engine, pois requer a implementação de uma gramática complexa.
Neste trabalho, o DK-M3GP e DKA-M3GP foram avaliados em comparação com o GP Tradicional,
M3GP e numerosos métodos clássicos de FL em dois problemas de ML. As novas abordagens foram
avaliadas assumindo que são métodos autônomos de FL e fazendo parte de uma pipeline maior. Como
métodos FL independentes, ambos os métodos demonstram boa previsão de desempenho em pelo menos
um dos dois problemas. Como parte da pipeline, os métodos apresentam pouca vantagem em relação
aos métodos clássicos no seu desempenho de previsão. Após a análise dos resultados, uma possível
explicação encontra-se no overfitting dos métodos FL para a função de fitness e no conjunto de dados de
treino. O
Neste trabalho, discuto também a melhoria na interpretabilidade após incorporar conhecimento do
domínio no processo de procura. Uma avaliação preliminar do DK-M3GP indica que, utilizando a medida de complexidade Expression Size (ES), é possível obter uma melhoria na interpretabilidade. Todavia,
verifiquei também que a medida de complexidade utilizada pode não ser a mais adequada devido a estrutura de características em forma de árvore das características construídas por DK-M3GP que potencia
um ES. Considero que um método de avaliação de interpretabilidade mais complexo deve apontar isso
In situ Distributed Genetic Programming: An Online Learning Framework for Resource Constrained Networked Devices
This research presents In situ Distributed Genetic Programming (IDGP) as a framework for distributively evolving logic while attempting to maintain acceptable average performance on highly resource-constrained embedded networked devices. The framework is motivated by the proliferation of devices employing microcontrollers with communications capability and the absence of online learning approaches that can evolve programs for them. Swarm robotics, Internet of Things (IoT) devices including smart phones, and arguably the most constrained of the embedded systems, Wireless Sensor Networks (WSN) motes, all possess the capabilities necessary for the distributed evolution of logic - specifically the abilities of sensing, computing, actuation and communications. Genetic programming (GP) is a mechanism that can evolve logic for these devices using their “native” logic representation (i.e. programs) and so technically GP could evolve any behaviour that can be coded on the device. IDGP is designed, implemented, demonstrated and analysed as a framework for evolving logic via genetic programming on highly resource-constrained networked devices in real-world environments while achieving acceptable average performance. Designed with highly resource-constrained devices in mind, IDGP provides a guide for those wishing to implement genetic programming on such systems. Furthermore, an implementation on mote class devices is demonstrated to evolve logic for a time-varying sense-compute-act problem and another problem requiring the evolution of primitive communications. Distributed evolution of logic is also achieved by employing the Island Model architecture, and a comparison of individual and distributed evolution (with the same and slightly different goals) presented. This demonstrates the advantage of leveraging the fact that such devices often reside within networks of devices experiencing similar conditions. Since GP is a population-based metaheuristic which relies on the diversity of the population to achieve learning, many, if not most, programs within the population exhibit poor performance. As such, the average observed performance (pool fitness) of the population using the standard GP learning mechanism is unlikely to be acceptable for online learning scenarios. This is suspected to be the reason why no previous attempts have been made to deploy standard GP as an online learning approach. Nonetheless, the benefits of GP for evolving logic on such devices are compelling and motivated the design of a novel satisficing heuristic called Fitness Importance (FI). FI is population-based heuristic used to bias the evaluation of candidate solutions such that an “acceptable” average fitness (AAF) is achieved while also achieving ongoing, though diminished, learning capacity. This trade off motivated further investigation into whether dynamically adjusting the average performance in response to AAF would be superior to a constant, balanced, performing-learning approach. Dynamic and constant strategies were compared on a simple problem where the AAF target was changed during evolution, revealing that dynamically tracking the AAF target can yield a higher success rate in meeting the AAF. The combination of IDGP and FI offers a novel approach for achieving online learning with GP on highly resource-constrained embedded systems. Furthermore, it simultaneously considers the acceptable average performance of the system which may change during the operational lifetime. This approach could be applied to swarm and cooperative robot systems, WSN motes or IoT devices allowing them to cooperatively learn and adapt their logic locally to meet dynamic performance requirements
Aplicaciones de los algoritmos evolutivos al análisis de procesos económicos
Tesis inédita de la Universidad Complutense de Madrid, Facultad de Informática, Departamento de Arquitectura de Computadores y Automática, leída el 26-06-2014Depto. de Arquitectura de Computadores y AutomáticaFac. de InformáticaTRUEunpu
Using MapReduce Streaming for Distributed Life Simulation on the Cloud
Distributed software simulations are indispensable in the study of large-scale life models but often require the use of technically complex lower-level distributed computing frameworks, such as MPI. We propose to overcome the complexity challenge by applying the emerging MapReduce (MR) model to distributed life simulations and by running such simulations on the cloud. Technically, we design optimized MR streaming algorithms for discrete and continuous versions of Conway’s life according to a general MR streaming pattern. We chose life because it is simple enough as a testbed for MR’s applicability to a-life simulations and general enough to make our results applicable to various lattice-based a-life models. We implement and empirically evaluate our algorithms’ performance on Amazon’s Elastic MR cloud. Our experiments demonstrate that a single MR optimization technique called strip partitioning can reduce the execution time of continuous life simulations by 64%. To the best of our knowledge, we are the first to propose and evaluate MR streaming algorithms for lattice-based simulations. Our algorithms can serve as prototypes in the development of novel MR simulation algorithms for large-scale lattice-based a-life models.https://digitalcommons.chapman.edu/scs_books/1014/thumbnail.jp
AVATAR - Machine Learning Pipeline Evaluation Using Surrogate Model
© 2020, The Author(s). The evaluation of machine learning (ML) pipelines is essential during automatic ML pipeline composition and optimisation. The previous methods such as Bayesian-based and genetic-based optimisation, which are implemented in Auto-Weka, Auto-sklearn and TPOT, evaluate pipelines by executing them. Therefore, the pipeline composition and optimisation of these methods requires a tremendous amount of time that prevents them from exploring complex pipelines to find better predictive models. To further explore this research challenge, we have conducted experiments showing that many of the generated pipelines are invalid, and it is unnecessary to execute them to find out whether they are good pipelines. To address this issue, we propose a novel method to evaluate the validity of ML pipelines using a surrogate model (AVATAR). The AVATAR enables to accelerate automatic ML pipeline composition and optimisation by quickly ignoring invalid pipelines. Our experiments show that the AVATAR is more efficient in evaluating complex pipelines in comparison with the traditional evaluation approaches requiring their execution