44 research outputs found
Evolutionary Construction of Convolutional Neural Networks
Neuro-Evolution is a field of study that has recently gained significantly
increased traction in the deep learning community. It combines deep neural
networks and evolutionary algorithms to improve and/or automate the
construction of neural networks. Recent Neuro-Evolution approaches have shown
promising results, rivaling hand-crafted neural networks in terms of accuracy.
A two-step approach is introduced where a convolutional autoencoder is created
that efficiently compresses the input data in the first step, and a
convolutional neural network is created to classify the compressed data in the
second step. The creation of networks in both steps is guided by by an
evolutionary process, where new networks are constantly being generated by
mutating members of a collection of existing networks. Additionally, a method
is introduced that considers the trade-off between compression and information
loss of different convolutional autoencoders. This is used to select the
optimal convolutional autoencoder from among those evolved to compress the data
for the second step. The complete framework is implemented, tested on the
popular CIFAR-10 data set, and the results are discussed. Finally, a number of
possible directions for future work with this particular framework in mind are
considered, including opportunities to improve its efficiency and its
application in particular areas
Functional Generative Design: An Evolutionary Approach to 3D-Printing
Consumer-grade printers are widely available, but their ability to print
complex objects is limited. Therefore, new designs need to be discovered that
serve the same function, but are printable. A representative such problem is to
produce a working, reliable mechanical spring. The proposed methodology for
discovering solutions to this problem consists of three components: First, an
effective search space is learned through a variational autoencoder (VAE);
second, a surrogate model for functional designs is built; and third, a genetic
algorithm is used to simultaneously update the hyperparameters of the surrogate
and to optimize the designs using the updated surrogate. Using a car-launcher
mechanism as a test domain, spring designs were 3D-printed and evaluated to
update the surrogate model. Two experiments were then performed: First, the
initial set of designs for the surrogate-based optimizer was selected randomly
from the training set that was used for training the VAE model, which resulted
in an exploitative search behavior. On the other hand, in the second
experiment, the initial set was composed of more uniformly selected designs
from the same training set and a more explorative search behavior was observed.
Both of the experiments showed that the methodology generates interesting,
successful, and reliable spring geometries robust to the noise inherent in the
3D printing process. The methodology can be generalized to other functional
design problems, thus making consumer-grade 3D printing more versatile.Comment: 8 pages, 12 figures, GECCO'1
Comparing and Combining Lexicase Selection and Novelty Search
Lexicase selection and novelty search, two parent selection methods used in
evolutionary computation, emphasize exploring widely in the search space more
than traditional methods such as tournament selection. However, lexicase
selection is not explicitly driven to select for novelty in the population, and
novelty search suffers from lack of direction toward a goal, especially in
unconstrained, highly-dimensional spaces. We combine the strengths of lexicase
selection and novelty search by creating a novelty score for each test case,
and adding those novelty scores to the normal error values used in lexicase
selection. We use this new novelty-lexicase selection to solve automatic
program synthesis problems, and find it significantly outperforms both novelty
search and lexicase selection. Additionally, we find that novelty search has
very little success in the problem domain of program synthesis. We explore the
effects of each of these methods on population diversity and long-term problem
solving performance, and give evidence to support the hypothesis that
novelty-lexicase selection resists converging to local optima better than
lexicase selection
Which Surrogate Works for Empirical Performance Modelling? A Case Study with Differential Evolution
It is not uncommon that meta-heuristic algorithms contain some intrinsic
parameters, the optimal configuration of which is crucial for achieving their
peak performance. However, evaluating the effectiveness of a configuration is
expensive, as it involves many costly runs of the target algorithm. Perhaps
surprisingly, it is possible to build a cheap-to-evaluate surrogate that models
the algorithm's empirical performance as a function of its parameters. Such
surrogates constitute an important building block for understanding algorithm
performance, algorithm portfolio/selection, and the automatic algorithm
configuration. In principle, many off-the-shelf machine learning techniques can
be used to build surrogates. In this paper, we take the differential evolution
(DE) as the baseline algorithm for proof-of-concept study. Regression models
are trained to model the DE's empirical performance given a parameter
configuration. In particular, we evaluate and compare four popular regression
algorithms both in terms of how well they predict the empirical performance
with respect to a particular parameter configuration, and also how well they
approximate the parameter versus the empirical performance landscapes
DeepSQLi: Deep Semantic Learning for Testing SQL Injection
Security is unarguably the most serious concern for Web applications, to
which SQL injection (SQLi) attack is one of the most devastating attacks.
Automatically testing SQLi vulnerabilities is of ultimate importance, yet is
unfortunately far from trivial to implement. This is because the existence of a
huge, or potentially infinite, number of variants and semantic possibilities of
SQL leading to SQLi attacks on various Web applications. In this paper, we
propose a deep natural language processing based tool, dubbed DeepSQLi, to
generate test cases for detecting SQLi vulnerabilities. Through adopting deep
learning based neural language model and sequence of words prediction, DeepSQLi
is equipped with the ability to learn the semantic knowledge embedded in SQLi
attacks, allowing it to translate user inputs (or a test case) into a new test
case, which is semantically related and potentially more sophisticated.
Experiments are conducted to compare DeepSQLi with SQLmap, a state-of-the-art
SQLi testing automation tool, on six real-world Web applications that are of
different scales, characteristics and domains. Empirical results demonstrate
the effectiveness and the remarkable superiority of DeepSQLi over SQLmap, such
that more SQLi vulnerabilities can be identified by using a less number of test
cases, whilst running much faster