COMS 4701, Artificial Intelligence

Artificial Intelligence (AI) is a broad and fast-growing subfield of Computer Science concerned with the construction and deployment of intelligent agents. This course provides an overview of methods, history, and impact of AI. It covers heuristic search, game playing, reasoning under uncertainty, reinforcement learning, Bayesian networks, Markov models, machine learning, and applications (natural language processing, vision, robotics, as time permits). Students will solve a variety of AI problems using Python.

Course Objectives

  • Formulate search problems and implement search algorithms using admissible heuristics.
  • Describe games as adversarial search problems and implement optimal and efficient solutions.
  • Formulate nondeterministic search as Markov decision processes and solve the Bellman equations using dynamic programming.
  • Formulate Bayesian networks for stochastic problems and use them to solve inference problems.
  • Solve temporal applications using hidden Markov models and filtering algorithms.
  • Define the machine learning problem and implement simple algorithms including Naive Bayes and perceptrons.

Prerequisites

  • Data Structures (COMS W3134 or COMS W3137)
  • Familiarity with basic probability theory (joint/conditional probabilities, random variables)
  • Familiarity with basic linear algebra (vector and matrix operations)
  • Experience with Python or similar programming language

List of Topics

  1. Motivations and history of AI
  2. Environments and agents
  3. Uninformed search
  4. Informed (heuristic) search
  5. CSPs and backtracking search
  6. Inference and local search
  7. Adversarial search
  8. Imperfect decisions and stochasticity
  9. Markov decision processes
  10. MDPs and dynamic programming
  11. Passive reinforcement learning
  12. Active reinforcement learning
  13. Advanced RL techniques
  14. Probability review
  15. Markov models
  16. Inference in HMMs
  17. Bayesian networks
  18. Inference and sampling
  19. Learning probabilistic models
  20. Decision trees
  21. Perceptrons
  22. Kernel methods
  23. Nonparametric models
  24. Neural networks
  25. Deep learning