Syllabus - Artificial Intelligence
- Course Description. It teaches various concepts in artificial intelligence. It covers building recommend-er systems, logic programming, heuristic search techniques, genetic algorithms, natural language programming, object detection and tracking, artificial neural networks and deep learning with convolutional neural network.
- Coursework. Coursework will consist of weekly project, midterm, and a final exam. The overall grade will be determined %10 from the project, 30 % from midterm, and 60% from the final exam.
- Exam policy. No collaboration is permitted during the exam . If any collaboration with the intention of copying is caught, the student will get a failing grade.
- Smartphone policy. Smartphones are not allowed during lectures.
- Text. The course textbook is "Artificial Intelligence with Python", First Edition, by Prateek Joshi.
- 1. Week 1 - Introduction to Artificial Intelligence
- What is Artificial Intelligence?
- Why do we need to study AI?
- Applications of AI
- Branches of AI
- Defining intelligence using Turing Test
- Making machines think like humans
- Building rational agents
- General Problem Solver
- Solving a problem with GPS
- Building an intelligent agent
- Types of models
- Loading data
- Week 2 - Classification and Regression Using Supervised Learning
- Supervised versus unsupervised learning
- What is classification?
- Preprocessing data
- Binarization
- Mean removal
- Scaling
- Normalization
- Label encoding
- Logistic Regression classifier
- Naïve Bayes classifier
- Confusion matrix
- Support Vector Machines
- Classifying income data using Support Vector Machines
- What is Regression?
- Building a single variable regressor
- Building a multivariable regressor
- Estimating housing prices using a Support Vector Regressor
- Week 3 - Predictive Analytics with Ensemble Learning
- What is Ensemble Learning?
- Building learning models with Ensemble Learning
- What are Decision Trees?
- Building a Decision Tree classifier
- What are Random Forests and Extremely Random Forests?
- Building Random Forest and Extremely Random Forest classifiers
- Estimating the confidence measure of the predictions
- Dealing with class imbalance
- Finding optimal training parameters using grid search
- Computing relative feature importance
- Predicting traffic using Extremely Random Forest regressor
- Week 4 - Detecting Patterns with Unsupervised Learning
- What is unsupervised learning?
- Clustering data with K-Means algorithm
- Estimating the number of clusters with Mean Shift algorithm
- Estimating the quality of clustering with silhouette scores
- What are Gaussian Mixture Models?
- Building a classifier based on Gaussian Mixture Models
- Finding subgroups in stock market using Affinity Propagation model
- Segmenting the market based on shopping patterns
- Week 5 - Building Recommender Systems
- Creating a training pipeline
- Extracting the nearest neighbors
- Building a K-Nearest Neighbors classifier
- Computing similarity scores
- Finding similar users using collaborative filtering
- Building a movie recommendation system
- Week 6 - Logic Programming
- What is logic programming?
- Understanding the building blocks of logic programming
- Solving problems using logic programming
- Installing Python packages
- Matching mathematical expressions
- Validating primes
- Parsing a family tree
- Analyzing geography
- Building a puzzle solver
- Week 7 - Heuristic Search Techniques
- What is heuristic search?
- Uninformed versus Informed search
- Constraint Satisfaction Problems
- Local search techniques
- Simulated Annealing
- Constructing a string using greedy search
- Solving a problem with constraints
- Solving the region-coloring problem
- Building an 8-puzzle solver
- Building a maze solver
- Week 8 - Genetic Algorithms
- Understanding evolutionary and genetic algorithms
- Fundamental concepts in genetic algorithms
- Generating a bit pattern with predefined parameters
- Visualizing the evolution
- Solving the symbol regression problem
- Building an intelligent robot controller
- Week 9 - Building Games With Artificial Intelligence
- Using search algorithms in games
- Combinatorial search
- Minimax algorithm
- Alpha-Beta pruning
- Negamax algorithm
- Installing easyAI library
- Building a bot to play Last Coin Standing
- Building a bot to play Tic-Tac-Toe
- Building two bots to play Connect Four™ against each other
- Building two bots to play Hexapawn against each other
- Week 10 - Natural Language Processing
- Introduction and installation of packages
- Tokenizing text data
- Converting words to their base forms using stemming
- Converting words to their base forms using lemmatization
- Dividing text data into chunks
- Extracting the frequency of terms using a Bag of Words model
- Building a category predictor
- Constructing a gender identifier
- Building a sentiment analyzer
- Topic modeling using Latent Dirichlet Allocation
- Week 11 - Probabilistic Reasoning for Sequential Data
- Understanding sequential data
- Handling time-series data with Pandas
- Slicing time-series data
- Operating on time-series data
- Extracting statistics from time-series data
- Generating data using Hidden Markov Models
- Identifying alphabet sequences with Conditional Random Fields
- Stock market analysis
- Week 12 - Building A Speech Recognizer
- Working with speech signals
- Visualizing audio signals
- Transforming audio signals to the frequency domain
- Generating audio signals
- Synthesizing tones to generate music
- Extracting speech features
- Recognizing spoken words
- Week 12 - Object Detection and Tracking
- Installing OpenCV
- Frame differencing
- Tracking objects using colorspaces
- Object tracking using background subtraction
- Building an interactive object tracker using the CAMShift algorithm
- Optical flow based tracking
- Face detection and tracking
- Using Haar cascades for object detection
- Using integral images for feature extraction
- Eye detection and tracking
- Week 13 - Artificial Neural Networks
- Introduction to artificial neural networks
- Building a neural network
- Training a neural network
- Building a Perceptron based classifier
- Constructing a single layer neural network
- Constructing a multilayer neural network
- Building a vector quantizer
- Analyzing sequential data using recurrent neural networks
- Visualizing characters in an Optical Character Recognition database
- Building an Optical Character Recognition engine
- Week 14 - Reinforcement Learning
- Understanding the premise
- Reinforcement learning versus supervised learning
- Real world examples of reinforcement learning
- Building blocks of reinforcement learning
- Creating an environment
- Building a learning agent
- Week 14 - Deep Learning with Convolutional Neural Networks
- What are Convolutional Neural Networks?
- Architecture of CNNs
- Types of layers in a CNN
- Building a perceptron-based linear regressor
- Building an image classifier using a single layer neural network
- Building an image classifier using a Convolutional Neural Network