307 research outputs found
SAGA: A project to automate the management of software production systems
The SAGA system is a software environment that is designed to support most of the software development activities that occur in a software lifecycle. The system can be configured to support specific software development applications using given programming languages, tools, and methodologies. Meta-tools are provided to ease configuration. The SAGA system consists of a small number of software components that are adapted by the meta-tools into specific tools for use in the software development application. The modules are design so that the meta-tools can construct an environment which is both integrated and flexible. The SAGA project is documented in several papers which are presented
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
SAGA: A project to automate the management of software production systems
The Software Automation, Generation and Administration (SAGA) project is investigating the design and construction of practical software engineering environments for developing and maintaining aerospace systems and applications software. The research includes the practical organization of the software lifecycle, configuration management, software requirements specifications, executable specifications, design methodologies, programming, verification, validation and testing, version control, maintenance, the reuse of software, software libraries, documentation, and automated management
Recommended from our members
On Links To Be: Exercises in Style #2
This contribution extends the discussion of the types and uses of links bootstrapped by Mason and Bernstein’s “On Links: Exercises in Style”, focusing on how authors use marginalia and annotations as links to the future. We argue that the development of a common semantics of “links to be” is needed in order to systematise individual authorial practices, provide greater interpretive understanding for readers and enable the development of new tools. We present examples on different types of annotations from the Holographic Vernon Lee project (HoL) and provide our own exercises to formulate a preliminary framework of links to be
Graph Transformation in Molecular Biology
In the beginning, one of the main fields of application of graph transformation was biology, and more specifically morphology. Later, however, it was like if the biological applications had been left aside by the graph transformation community, just to be moved back into the mainstream these very last years with a new interest in molecular biology. In this paper, we review several fields of application of graph grammars in molecular biology, including: the modeling higherdimensional structures of biomolecules, the description of biochemical reactions, the analysis of metabolic pathways, and their potential use in computational systems biology
Looking At Chinese Students’ Strategy Use for English Learning and Use in the Asian Context: An Ecological and Complexity Perspective
Against the background of educational globalization, this article first points out the substantially increasing number of Chinese students studying in Asian regions which are different socio-cultural-linguistic contexts from the western Anglophone countries, and calls on the second language (L2) education and English language teaching (ELT) research field to pay adequate attention to these Chinese students’ acculturation to the Asian contexts. A research project is then proposed as an exploratory study to investigate the Chinese students’ acculturation process at Assumption University of Thailand, which is a typical case of a multicultural and multilingual Asian context of education, through their use of strategies in English learning and use. Basing his educational philosophy on ecologism, the author suggests the adoption of a complexity perspective on L2 learning as a way of interpreting the issues involved in the research. This suggestion is subsequently supported by an overview of language learning strategy (LLS) research, an overview of the development of complexity theory (C-T) and its applications to SLA and L2 education research, and by a pilot study. The author then introduces R. Oxford’s Strategic Self-Regulation (S²R) Model as a strategy framework that is appropriate for an integration with C-T for research. Lastly the author outlines the research methodology and wraps up the article by calling for more efforts to establish an ecological prespective in the L2 education and ELT research fields
- …