CS 520: Introduction to Artificial Intelligence
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)