Automated Alogrithm Design
To develop a framework that fundamentally alters the development of algorithms. We desire to create an automated method that starts with the best human algorithms and then dispassionately develops hybrid algorithms that outperform existing methods. And then prove that these algorithms can also be studied by humans for inspiration in development of new algorithm and optimization methods. Traditional genetic programming (GP) combines simple basis functions such as arithmetic and logical operators on scalar features to evolve a population of tree structures. Each tree describes a single resulting algorithm. By using higher-level input features such as vectors, matrices, images, and videos, we can integrate higher-level basis functions to operate on these features. These much more advanced basis functions can be combined with the standard set genetic program operators to enable MOGP to design human readable, human-competitive, algorithms directly from data. This is valuable in our current age of big data, when algorithm design can be challenging for a researcher, especially when working with multiple competing objectives. Using multi-objective optimization provides not just a single resulting algorithm, but rather a set of Pareto optimal algorithms that span all desired objectives. From the set of optimal algorithms, a human can select the algorithm that best meets their needs as circumstances change, e.g., we will accept a higher false alarm rate for a lower probability of missed detections, or hardware processing power increases. MOGP techniques can free up a researchers time to steer the optimization towards certain solutions by analyzing the data and resulting programs as well as to analyze the solutions in search of new inspiration for new basis functions, which we believe is a significantly better use of a human mind.
Issues Involved or Addressed
This project has many areas that should be investigated, including: improving the speed of evolutionary processes, integration of new basis functions from other domains, cloud computing, processing of big data sets, and application to the domains of interest.