Skip to main content

This course is intended to provide a broad practical introduction to the concepts and methods in the field of artificial intelligence. ”AI” represents a very diverse field of problems and techniques – we will focus on topics and ideas with broad application. One thing that you should think about coming into this course is simply this – what is Artificial Intelligence?

The main focus and takeaway from this course should be the systematic representation of knowledge and the manipulation of these representations for general problem solving. If a problem can be represented systematically, any number of algorithmic techniques can be leveraged against it. Many of these algorithms will seem natural if not utterly naive – but applying them to appropriately represented and realized problems lends them power and generalizability.

The course will be divided roughly into three topics:

  • Part I: Search – A Systematic Approach to Exploration and Discovery
    • Uninformed Search; Informed (Heuristic) Search; Adversarial Search; Local Search; Constraint Satisfaction; Logic and Satisfiability; Classical Planning
  • Part II: Uncertainty – Representing and Coping with an Uncertain World
    • Probability; Inference; Bayesian Networks and Inference; Inference over Time; Utility and Decision Theory; Markov Decision Processes
  • Part III: Learning – Adapting to and Understanding the World
    • A Model and Theory for Learning; Decision Trees; Perceptrons; Neural Networks; Non-Parametric Methods; Support Vector Machines; Statistical Learning; Clustering; Ensemble Learning; Deep Learning; CNNs; GANs; Reinforcement Learning

Traditionally, this is done as a project based coursed (four group projects) and an independent final exam, usually done as a take-home. Typical project topics include:

  • Planning paths through environments
  • Planning paths through dynamical environments that change as you move through them
  • Integrating information into a complete knowledge base
  • Intelligently designing complex objects
  • Making intelligent decisions in the presence of uncertainty
  • Building neural networks to solve data problems
Textbook

The textbook is not required but it’s a good resource to have generally – I recommend Artificial Intelligence: A Modern Approach by Russell and Norvig.

Notes

These are constantly under development but I’ll try to keep the latest versions posted here.

  • Search Notes (Coming Soon)
  • A* Notes (Coming Soon)
  • Local Search Notes (Coming Soon)
  • Alpha Beta w Chance (Coming Soon)
  • Wolf Goat Cabbage (Coming Soon)
  • Probabilistic Knowledge (Coming Soon)
  • Bayesian Network Practice (Coming Soon)
  • Simulation Notes (Coming Soon)
  • Temporal Estimation (Coming Soon)
  • Training Hidden Markov Models (Coming Soon)
  • Kalman Notes (Coming Soon)
  • Decisions and Utility Theory (Coming Soon)
  • MDPs and Value Iteration (Coming Soon)
  • Clustering (k-Means) (Coming Soon)
  • Clustering (EM) (Coming Soon)
  • PCA Notes (Coming Soon)
  • Decision Tree Notes (Coming Soon)
  • Supervised Learning and Linear Regression (Coming Soon)
  • Linear Models (Coming Soon)
  • Perceptrons and SVMs (Coming Soon)
  • Deep Learning Notes / DL and NN (Coming Soon)
  • Example Network (Coming Soon)
  • Word Embeddings (Coming Soon)
  • Recurrent Neural Networks (Coming Soon)
  • Variational Auto Encoders (Coming Soon)