
Simon Lawrence HardingMachine Intelligence Ltd. · www.machineintelligence.co.uk
Simon Lawrence Harding
PhD Electronics, BSc AI & Comp Sci
About
90
Publications
26,148
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,082
Citations
Introduction
Additional affiliations
January 2013 - present
April 2012 - April 2013
April 2012 - present
Machine Intelligence Ltd
Position
- Managing Director
Description
- www.machineintelligence.co.uk
Education
February 2003 - December 2005
Publications
Publications (90)
Brillouin spectroscopy, based on the inelastic scattering of light from thermally driven acoustic waves or phonons [1], holds great promise in the field of life sciences as it provides functionally relevant micromechanical information in a contactless all-optical manner [2]. Due to the complexity of biological systems such as cells and tissues, whi...
Brillouin spectroscopy is an emerging analytical tool in biomedical and biophysical sciences. It probes viscoelasticity through the propagation of thermally induced acoustic waves at gigahertz frequencies. Brillouin light scattering (BLS) measurements have traditionally been performed using multipass Fabry-Pérot interferometers, which have high con...
Slime mould of Physarum polycephalum is a large cell exhibiting rich spatial non-linear electrical characteristics. We exploit the electrical properties of the slime mould to implement logic gates using a flexible hardware platform designed for investigating the electrical properties of a substrate (Mecobo). We apply arbitrary electrical signals to...
Plants are highly intelligent organisms. They continuously make distributed processing of sensory information, concurrent decision making and parallel actuation. The plants are efficient green computers per se. Outside in nature, the plants are programmed and hardwired to perform a narrow range of tasks aimed to maximize the plants’ ecological dist...
We discuss possible designs and prototypes of computing systems that could be based on morphological development of roots, interaction of roots, and analog electrical computation with plants, and plant-derived electronic components. In morphological plant processors data are represented by initial configuration of roots and configurations of source...
Evolution-in-materio uses evolutionary algorithms to exploit properties of materials to solve computational problems without requiring a detailed understanding of such properties. We show that using a purpose-built hardware platform called Mecobo, it is possible to solve computational problems by evolving voltages and signals applied to an electrod...
Slime mould of Physarum polycephalum is a large cell exhibiting rich spatial non-linear electrical characteristics. We exploit the electrical properties of the slime mould to implement logic gates using a flexible hardware platform designed for investigating the electrical properties of a substrate (MECOBO). We apply arbitrary electrical signals to...
We describe our software system enabling a tight integration between vision and control modules on complex, high-DOF humanoid robots. This is demonstrated with the iCub humanoid robot performing visual object detection, reaching and grasping actions. A key capability of this system is reactive avoidance of obstacle objects detected from the video s...
Evolution-in-materio (EIM) is a method that uses artificial evolution to exploit properties of materials to solve computational problems without requiring a detailed understanding of such properties. In this paper, we show that using a purpose-built hardware platform called Mecobo, it is possible to evolve voltages and signals applied to physical m...
Evolution-in-materio (EIM) is a method that uses artificial evolution to exploit the properties of physical matter to solve computational problems without requiring a detailed understanding of such properties. EIM has so far been applied to very few computational problems. We show that using a purpose-built hardware platform called Mecobo, it is po...
Evolution in Materio (EIM) exploits properties of physical systems for computation. “Designs” are evolved instead of a traditional top down design approach. Computation is a product of the state(s) of the material and input data. Evolution manipulates physical processes by stimulating materials assessed in situ. A hardware-software platform designe...
Evolution-in-materio (EIM) is the manipulation of a physical system by computer controlled evolution (CCE). It takes the position that to obtain useful functions from a physical system one needs to apply highly specific physical signals and place the system in a particular physical state. It argues that CCE is an effective methodology for doing thi...
Glossary
Definition of the Subject
Introduction
Evolutionary Algorithms
Evolution in Materio: Historical Background
Evolution in Materio: Defining Suitable Materials
Evolution in Materio Is Verified with Liquid Crystal
Evolution in Materio Using Liquid Crystal: Implementational Details
The Computational Power of Materials
Future Directions
Bibliogr...
In this paper, we present our on-going research to allow humanoid robots to learn spatial perception. We are using artificial neural networks (ANN) to estimate the location of objects in the robot’s environment. The method is using only the visual inputs and the joint encoder readings, no camera calibration and information is necessary, nor is a ki...
Cartesian Genetic Programming is a form of Genetic Programming based on evolving graph structures. It has a fixed genotype length and a genotype–phenotype mapping that introduces neutrality into the representation. It has been used for many applications and was one of the first Genetic Programming techniques to be implemented on the GPU. In this ch...
Building artificial agents and robots that can act in an intelligent way is one of the main research goals in artificial intelligence and robotics. Yet it is still hard to integrate functional cognitive processes into these systems. We present a framework combining computer vision and machine learning for the learning of object recognition in human...
Robust object manipulation is still a hard problem in robotics, even more so in high degree-of-freedom (DOF) humanoid robots. To improve performance a closer integration of visual and motor systems is needed. We herein present a novel method for a robot to learn robust detection of its own hands and fingers enabling sensorimotor coordination. It do...
Combining domain knowledge about both imaging processing and machine learning techniques can expand the abilities of Genetic Programming when used for image processing. We successfully demonstrate our new approach on several different problem domains. We show that the approach is fast, scalable and robust. In addition, by virtue of using off-the-sh...
We present a combined machine learning and computer vision approach for robots to localize objects. It allows our iCub humanoid to quickly learn to provide accurate 3D position estimates (in the centimetre range) of objects seen.
Biologically inspired approaches, such as Artificial Neural Networks (ANN) and Genetic Programming (GP), are trained to...
In this work we introduce a technique for a humanoid robot to autonomously learn the representations of objects within its visual environment. Our approach involves an attention mechanism in association with feature based segmentation that explores the environment and provides object samples for training. These samples are learned for further objec...
We present an easy-to-use, modular framework for performing computer vision related tasks in support of cognitive robotics research on the iCub humanoid robot. The aim of this biologically inspired, bottom-up architecture is to facilitate research towards visual perception and cognition processes, especially their influence on robotic object manipu...
We use a Katana robotic arm to teach an iCub humanoid robot how to perceive the location of the objects it sees. To do this, the Katana positions an object within the shared workspace, and tells the iCub where it has placed it. While the iCub moves it observes the object, and a neural network then learns how to relate its pose and visual inputs to...
The majority of genetic programming implementations build expressions that only use a single data type. This is in contrast to human engineered programs that typically make use of multiple data types, as this provides the ability to express solutions in a more natural fashion. In this paper, we present a version of Cartesian Genetic Programming tha...
Cartesian Genetic Programming (CGP) is an increasingly popular and efficient form of Genetic Programming that was developed by Julian Miller in 1999 and 2000. In its classic form, it uses a very simple integer based genetic representation of a program in the form of a directed graph. Graphs are very useful program representations and can be applied...
To produce even the simplest human-like behaviors, a humanoid robot must be able to see, act, and react, within a tightly integrated behavioral control system. Although there exists a rich body of literature in Computer Vision, Path Planning, and Feedback Control, wherein many critical subproblems are addressed individually, most demonstrable behav...
Optimized shape design is used for such applications as wing design in aircraft, hull design in ships, and more generally rotor optimization in turbomachinery such as that of aircraft, ships, and wind turbines.We present work on optimized shape design using a technique from the area of Genetic Programming, self-modifying Cartesian Genetic Programmi...
Graphic Processing Units (GPUs) are fast, highly parallel units. In addition to processing 3D graphics, modern GPUs can be programmed for more general-purpose computation. A GPU consists of a large number of ‘shader processors’, and conceptually operates as a single instruction multiple data (SIMD) or multiple instruction multiple data (MIMD) strea...
In this chapter, we will present three applications in which CGP can automatically generate novel image processing algorithms
that compare to or exceed the best known conventional solutions. The applications fall into the areas of image preprocessing
and classification.
Self-modifying Cartesian genetic programming (SMCGP) is a general purpose, graph-based, form of genetic programming founded
on Cartesian genetic programming. In addition to the usual computational functions, it includes functions that can modify
the program encoded in the genotype. SMCGP has high scalability in that evolved programs encoded in the...
Self Modifying Cartesian Genetic Programming is a general purpose, graph-based, developmental form of Cartesian Genetic Programming. Using a combination of computational functions and special functions that can modify the phenotype at runtime, it has been employed to find general solutions to certain Boolean circuits and mathematical problems. In t...
Traditionally, a genetic algorithm is used to analyze networks by maximizing the modularity (Q) measure to create a favorable community. A coevolutionary algorithm is used here to not only find the appropriate community division for a network, but to find interesting networks containing substantial changes in data within a very large network space....
Cartesian Genetic Programming (CGP) is an increasingly popular and efficient form of Genetic Programming that was developed by Julian Miller in 1999 and 2000. In its classic form, it uses a very simple integer based genetic representation of a program in the form of a directed graph. Graphs are very useful program representations and can be applied...
Self Modifying Cartesian Genetic Programming 2 (SMCGP2) is a general purpose, graph-based, developmental form of Cartesian Genetic Programming. Using a combination of computational functions and special functions that can modify the phenotype at runtime, it has been employed to find general solutions to a number of computational problems. Here, we...
This paper investigates the use of a new Graphics Processing Unit (GPU) programming tool called 'GPU.NET' for implementing a Genetic Programming fitness evaluator. We find that the tool is able to help write software that accelerates fitness evaluation. For the first time, Cartesian Genetic Programming (CGP) was used with a GPU-based interpreter. W...
Many data sets exist that contain both geospatial and temporal elements, in addition to the core data that requires analysis. Within such data sets, it can be difficult to determine how the data have changed over spatial and temporal ranges. In this design study we present a system for dynamically exploring geo-temporal changes in the data. GTdiff...
A genetic algorithm is combined with two variants of the modularity (Q) network analysis metric to examine a substantial amount fisheries catch data. The data set produces one of the largest networks evaluated to date by genetic algorithms applied to network community analysis. Rather than using GA to decide community structure that simply maximize...
Self-Modifying Cartesian Genetic Programming (SMCGP) is a general purpose, graph-based, developmental form of Cartesian Genetic
Programming. In addition to the usual computational functions found in CGP, SMCGP includes functions that can modify the evolved
program at run time. This means that programs can be iterated to produce an infinite sequence...
Data sets that contain geospatial and temporal elements can be challenging to analyze. In particular, it can be difficult to determine how the data have changed over spatial and temporal ranges. In this poster, we present a visual approach for representing the pair-wise differences between geographically and temporally binned data. In addition to p...
Self-modifying Cartesian Genetic Programming (SMCGP) is a general purpose, graph-based, developmental form of Genetic Programming
founded on Cartesian Genetic Programming. In addition to the usual computational functions, it includes functions that can
modify the program encoded in the genotype. This means that programs can be iterated to produce a...
Cartesian Genetic Programming is a form of genetic programming. It is increasing in popularity. It was developed by Julian Miller with Peter Thomson in 1997. In its classic form it uses a very simple integer based genetic representation of a program in the form of a directed graph. In a number of studies, it has been shown to be efficient in compar...
With current developments of parallel and distributed computing, evolutionary algorithms have benefited considerably from
parallelization techniques. Besides improved computation efficiency, parallelization may bring about innovation to many aspects
of evolutionary algorithms. In this article, we focus on the effect of variable population size on a...
This is not a dataset but an article, why researchgate does this I have no idea and the researchgate software won't allow its type to be changed! Very poor!
Self Modifying Cartesian Genetic Programming (SMCGP) aims to be a general purpose form of developmental genetic programming. The evolved programs are iterated thus allowing an infinite sequence of phenotypes (programs) to be obtained from a single evolved genotype. In previous work this approach has already shown that it is possible to obtain mathe...
Self-Modifying Cartesian Genetic Programming (SMCGP) is a form of genetic programming that integrates developmental (self-modifying) features as a genotype-phenotype mapping. This paper asks: Is it possible to evolve a learning algorithm using SMCGP?
Graphics Processing Units (GPUs) have become a major source of computational power for numerical applications. Originally designed for application of time-consuming graphics operations, GPUs are stream processors that implement the SIMD paradigm. Modern programming tools allow developers to access the parallelism of the GPU in a flexible and conven...
Cartesian Genetic Programming is a form of genetic programming. It is increasing in popularity. It was developed by Julian Miller with Peter Thomson in 1997. In its classic form it uses a very simple integer based genetic representation of a program in the form of a directed graph. In a number of studies, it has been shown to be efficient in compar...
In this paper, we use Genetic Programming (GP) to define a set of transforms on the space of greyscale images. The motivation is to allow an evolutionary algorithm means of transforming a set of image patterns into a more classifiable form. To this end, we introduce the notion of a transform-based evolvable feature (TEF), a moment value extracted f...
Self modifying CGP (SMCGP) is a developmental form of Cartesian genetic programming(CGP). It differs from CGP by including primitive functions which modify the program. Beginning with the evolved genotype the self-modifying functions produce a new program (phenotype) at each iteration. In this paper we have applied it to a well known digital circui...
Self Modifying CGP (SMCGP) is a developmental form of Cartesian Genetic Programming(CGP). It is able to modify its own phe- notype during execution of the evolved program. This is done by the inclusion of modification operators in the function set. Here we present the use of the technique on several different sequence generation and regression prob...
Keywords: Graphics Processing Units (GPUs) are in the process of becoming a major source of computational power for numerical applications. Originally designed for application of time-consuming graphics operations, GPUs are stream processors that implement the SIMD paradigm. The true degree of parallelism of GPUs is often hidden from the user, maki...
There is growing interest in the use of analogies of biological development for problem solving in computer science. Nature
is extremely intricate when compared to human designs, and incorporates features such as the ability to scale, adapt and self-repair
that could be usefully incorporated into human-designed artifacts. In this chapter, we discus...
We are interested in engineering smart machines that enable backtracking of emergent behaviors. Our SSNNS simulator consists of hand-picked tools to explore spiking neural networks in more depth with flexibility. SSNNS is based on the Spike Response ...
Graphics processor units are fast, inexpensive parallel computing devices. Recently there has been great interest in harnessing this power for various types of scientific computation, including genetic programming. In previous work, we have shown that using the graphics processor provides dramatic speed improvements over a standard CPU in the conte...
The evolution of image filters using Genetic Pro-gramming is a relatively unexplored task. This is most likely due to the high computational cost of evaluating the evolved programs. We use the parallel processors available on modern graphics cards to greatly increase the speed of evaluation. Previous papers in this area dealt with noise reduction a...
Intrinsic evolution has been shown to be capable of exploit- ing the physical properties of materials to solve problems, however most researchers have chosen to limit themselves to using standard electronic components. However, these components are human designed and inten- tionally have predictable responses, so they may not be the most suitable p...
As is typical in evolutionary algorithms, fitness evaluation in GP takes the majority of the computational effort. In this
paper we demonstrate the use of the Graphics Processing Unit (GPU) to accelerate the evaluation of individuals. We show that
for both binary and floating point based data types, it is possible to get speed increases of several...
Abstract In this paper we demonstrate,the use of the Graphics Processing Unit (GPU) to accelerate Evolutionary Compu- tation applications, in particular Genetic Programming ap- proaches. We show that it is possible to get speed increases of several hundred,times over a typical CPU implemen- tation, catapulting GPU processing for these applications...
We describe several techniques for using bulk matter for special purpose computation. In each case it is necessary to use an evolutionary algorithm to program the substrate on which the computation is to take place. In addition, the computation comes about as a result of nearest neighbour interactions at the nano- micro- and meso-scale. In our firs...
This technical report describes the implemen-tation of a distributed genetic algorithm, us-ing the Mono implementation of the Microsoft .Net framework.