Current Research

My research interests lie at the intersection of biology and computer science, where these two fields have the unique opportunity for mutually beneficial research. On the computer science side, I draw on what we’ve learned about biological systems and how evolutionary processes work to engineer AI systems that make our day-to-day lives just a little bit better. Similarly, I give back to biology by drawing on my computer science knowledge to create digital evolutionary models that help us test and refine the leading hypotheses explaining how and why intelligent animal behavior evolves. Although engineering applications and testing hypotheses may sound like completely disparate research paths, my work is always centered on evolution as both a creative force and a process that shapes all living creatures around us.

Tree of Life

Evolution has been shaping all forms of life as we know it for millions of years.
I want to learn how evolution shaped human intelligence so we can reproduce it inside a machine.
Picture credit: Leonard Eisenburg

Evolved artificial intelligence

For well over a decade, I have been fascinated with the idea that computers could achieve the same level of intelligence as humans. I would often ask my friends, “How cool would it be to combine human-level intelligence with the massive computing power of computers? A machine that could think like us, but infinitely faster… imagine the possibilities!” Usually my friends responded by rolling their eyes, or started talking about how that kind of Artificial Intelligence (AI) would kill us all. (Thanks to Terminator, and about every other popular movie that features an evil AI!) Since I have never been content to just sit around thinking about what an AI would be capable of, I set out on a long journey to figure out how I could help make a (not-so-evil) AI a reality in my lifetime.

Typically, researchers try to create an AI by looking at intelligent animals in nature and attempting to reverse engineer an intelligent machine from that. The Blue Brain project is a great example of this approach, where in the next decade they will be simulating the entire human brain inside a massive computer. I’ve always been skeptical of this approach because (1) we don’t even have a complete map of the brain and (2) even if we did, having a map of the brain won’t tell us anything about how it actually functions. The video below provides a pretty concise critique.

Where has AI research gone wrong?

Instead, I have been attempting to build an AI from the bottom up. My research group is trying to learn about the problems that early animals faced that made intelligent behavior a favorable trait to evolve, with the goal of eventually working our way up to understanding how early forms of intelligence evolved into the complex forms of adaptive, social, and predictive intelligence that humans are capable of. In essence, we are attempting to reproduce the evolutionary path to human-level intelligence inside the computer.

Automating data science

As part of my postdoctoral research, I took on a new challenge: Automating data science.

Machine learning is transforming the world as we know it. Google search engines were massively improved by machine learning, as were Gmail’s spam filters. Voice assistants like Siri — as silly as they can be — use machine learning to translate your voice into something the computer can understand. Stock market investors make millions every day using machine learning to predict when to buy and sell. And the list goes on and on…

Wonder how Facebook always knows who you are in your photos? They use machine learning.

Ever wonder how Facebook always knows who you are in your photos? They use machine learning.

The problem with machine learning is that building an effective model can require a ton of human input. Humans have to figure out the right way to transform the data before feeding it to the machine learning model. Then they have to pick the right machine learning algorithm that will model the data best, and then there’s typically myriad model parameters to tweak that can make the difference between a dud and a Nostradamus. Building these pipelines — i.e., sequences of steps that turn the raw data into a powerful predictive model — can easily take weeks of tinkering depending on the difficulty of the problem. This is obviously a huge issue when machine learning is supposed to allow machines to learn on their own.

An example machine learning pipeline

An example machine learning pipeline, and what parts of the pipeline TPOT automates.

Thus, the Tree-based Pipeline Optimization Tool (TPOT) was born. TPOT is a Python tool that automatically creates and optimizes machine learning pipelines using genetic programming. Think of TPOT as your “Data Science Assistant”: TPOT will automate the most tedious part of machine learning by intelligently exploring thousands of possible pipelines, then recommending the pipelines that work best for your problem domain.

An example tree-based pipeline with two copies of the data set entering the pipeline.

An example TPOT pipeline with two copies of the data set entering the pipeline.

Once TPOT is finished optimizing (or you get tired of waiting), it provides you with the Python code for the best pipeline it found so you can tinker with the pipeline from there. As an added bonus, TPOT is built on top of scikit-learn, so all of the code it generates should look familiar… if you’re familiar with scikit-learn, anyway.

TPOT is still under active development and in its early stages, but it’s worked very well on the classification problems we’ve applied it to so far.

Check out the TPOT GitHub repository to see the code and latest goings on.

Collective animal behavior

From microscopic bacteria to gargantuan blue whales, animals of all shapes and sizes live and work together in groups. Why do animals do this? What benefits does social behavior provide that would make it favorable to evolve in animals that are historically loners?

For my PhD, I worked to answer part of that question by studying how and why animals form swarms. For example, take a look at this European starling swarm (called a “murmuration”).

Starlings form swarms when under attack by a predator.

What animal in their right mind would think, “Oh! I’m under attack by a falcon. I better fly around in the air with my friends to defend myself”? Yet that is exactly what starlings do when falcons are attacking them. That’s the funny thing about evolution: The solutions it comes up with rarely make intuitive sense, yet they almost always work. After all, if the solution didn’t work, the animal wouldn’t survive long enough to pass its genes on!

To get a better idea of what environmental conditions could have selected for such behavior to evolve, my colleagues and I developed a digital swarm evolution platform called EOS (Evolution Of Swarming). Using this platform, we discovered that the predator confusion effect provides a sufficient selective advantage to evolve swarming behavior in response to simulated predation. Below is a video of one of the emergent swarms that evolve when we implemented predator confusion as an indirect selection pressure. The prey are white dots and the predator is the red dot.

Visualization of evolved swarming behavior

In follow-up work, we explored the effects of selfish herd behavior, the many eyes effect, and several other hypothesized factors that affect the evolution of group-living behavior in animals. Ultimately, these projects culminated in my PhD thesis that aims to show how digital evolutionary models are useful for teasing apart the various selective pressures underlying animal behavior and studying how they interact on an evolutionary scale, which is still extremely difficult to accomplish in biological systems.