Recently, principles from the biological sciences have motivated the study of alternative computational models and meta-heuristic approaches to problem solving. Proceeding from a machine learning perspective, this course explores how principles from theories of evolution, natural selection, and swarming behavior can be used to construct machines that exhibit nontrivial behavior. In particular, the course covers techniques from evolutionary computation and swarm intelligence for developing software agents capable of solving problems as members of a larger population of agents. Specific topics addressed include representation and schemata; selection, reproduction, and recombination; theoretical models of computational intelligence; optimal allocation of trials (i.e., bandit problems); search, optimization, and machine learning; evolution of programs; population and swarm dynamics; and emergent behavior. Students will participate in seminar discussions and will complete and present the results of an individual project.
EN.605.649 Introduction to Machine Learning; multivariate calculus.