Description
Learn to code using the fundamental AI algorithms that power everything from NASA's Mars Rover to DeepMind's AlphaGo Zero. You'll learn Beam Search and Random Hill Climbing, as well as Bayes Networks and Hidden Markov Models.
Syllabus:
Course 1: Intro to Artificial Intelligence
Welcome to the Program
- Meet the course instructors and Udacity team. Learn about the resources available to help you succeed
Intro to Artificial Intelligence
- Consider the meaning of “artificial intelligence”
- Be able to define core concepts from AI including “agents”, “environments”, and “states”
- Learn the concept of “rational” behavior for AI agents LESSON THREE Setting Up your Environment with Anaconda
- Install the software and complete the necessary system configuration you’ll need for the projects
Course 2: Constraint Satisfaction Problems
Solving Sudoku With AI
- Express logical constraints as Python functions
- Use constraint propagation & search to solve all Sudoku puzzles
Constraint Satisfaction Problems
- Learn to represent problems in terms of logical constraints
- Use constraint propagation to limit the potential solution space
- Incorporate backtracking search to find a solution when the set of constraints is incomplete
Additional Topics in CSP
- List of external resources for you to continue learning about CSPs
Project: Build a Sudoku Solver
The reason is used by humans to solve problems by breaking down the problem statement and incorporating domain knowledge to narrow the possible solution space. In this project, you will use constraint propagation and backtracking search to create an agent that only considers reasonable solution candidates and efficiently solves any Sudoku puzzle. This approach can be found in many classic AI problems, and the solution techniques have been extended and applied to a wide range of problems in bioinformatics, logistics, and operations research.
In this project, you will demonstrate some basic algorithm knowledge and learn to solve general problems using constraint satisfaction.
Course 3: Search, Optimization, and Planning
Introduction
- Learn about the significance of search in AI
Uninformed Search
- Learn uninformed search techniques including depth-first order, breadth-first order, and Uniform Cost Search
Informed Search
- Learn informed search techniques (using heuristics) including A*
- Understand admissibility and consistency conditions for heuristics
Additional Topics: Search
- List of external resources for you to continue learning about search
Classroom Exercise: Search
- Implement informed & uninformed search for Pacman
Introduction: Optimization Problems
- Introduce iterative improvement problems that can be solved with optimization
Hill Climbing
- Learn Random Hill Climbing for local search optimization problems
Simulated Annealing
- Learn to use Simulated Annealing for global optimization problems
Genetic Algorithms
- Explore and implement Genetic Algorithms that keep a pool of candidates to solve optimization problems
Additional Optimization Topics
- Learn about improvements & optimizations to optimization search including Late Acceptance Hill Climbing, Basin Hopping, & Differential Evolution
Classroom Exercise: Optimization Problems
- Compare optimization techniques on a variety of problems
Symbolic Logic & Reasoning
- Learn Propositional logic (propositions & statements)
- Learn First-Order logic (quantifiers, variables, & objects)
- Encode problems with symbolic constraints using first- order logic
Introduction to Automated Planning
- Learn to define planning problems
Classical Planning
- Learn high-level features of automated planning techniques using search & symbolic logic including forward planning, backward planning, & hierarchical planning
- Explore planning heuristics & planning graphs
Additional Topics in Planning
- List of external resources for you to continue learning about planning
Project: Build a Forward Planning Agent
Intelligent agents are expected to act in complex domains where their goals and objectives may be difficult to achieve in the short term.
They must think about their goals and make rational decisions about how to achieve them. In this project, you will create a system that uses symbolic logic to represent general problem domains and classical search to find optimal plans for your agent's goals. Modern automation and logistics operations, as well as aerospace applications such as the Hubble telescope and NASA Mars rovers, rely on planning and scheduling systems.
You will demonstrate your understanding of classical optimization and search algorithms, symbolic logic, and domain-independent planning in this project.
Course 4: Adversarial Search
Search in MultiAgent Domains
- Understand “adversarial” problems & applications (e.g., multi-agent environments)
- Extend state-space search techniques to domains your agents do not fully control
- Learn the minimax search technique
Optimizing Minimax Search
- Learn techniques used to overcome limitations in basic minimax search like depth-limiting and alpha-beta pruning,
Extending Minimax Search
- Extend the adversarial search to non-deterministic domains and domains with more than two players
Additional Adversarial Search Topics
- List of external resources for you to continue learning about adversarial search
Project: Build an Adversarial Game Playing Agent
Intelligent agents are expected to act in complex domains where their goals and objectives may be difficult to achieve in the short term.
They must think about their goals and make rational decisions about how to achieve them. In this project, you will create a system that uses symbolic logic to represent general problem domains and classical search to find optimal plans for your agent's goals. Modern automation and logistics operations, as well as aerospace applications such as the Hubble telescope and NASA Mars rovers, rely on planning and scheduling systems.
You will demonstrate your understanding of classical optimization and search algorithms, symbolic logic, and domain-independent planning in this project.
Course 5: Fundamentals of Probabilistic Graphical Models
Probability
- Review key concepts in probability including discrete distributions, joint probabilities, and conditional probabilities
Bayes Networks
- Efficiently encode joint probabilities in Bayes networks
Inference in Bayes Nets
- Learn about inference in Bayes networks through exact enumeration with optimizations
- Learn techniques for approximate inference in more complex Bayes networks
Hidden Markov Models
- Learn parameters to maximize the likelihood of model parameters to training data
- Determine the likelihood of observing test data given a fixed model
- Learn an algorithm to identify the most likely sequence of states in a model given some data
Dynamic Time Warping
- Learn the dynamic time warping algorithm for time-series analysis
Additional Topics in PGMs
- List of external resources for you to continue learning about probabilistic graphical models
Project: Part of Speech Tagging
By explicitly modeling your agents' belief state as a distribution over all possible states, probabilistic models enable your agents to better deal with the uncertainty of the real world. Part of speech tagging, a common pre-processing step in Natural Language Processing, will be performed using a Hidden Markov Model (HMM) in this project. HMMs have found widespread application in NLP, speech recognition, bioinformatics, and computer vision tasks.