This repo contains my projects, code, and reports for Udacity's AI Nanodegree
The following projects are included:
Uses classic constraint propagation strategies to solve Sudoku.
Uses adversarial search agent to play a game called "Isolation", a deterministic, two-player game in which players alternate turns to move a piece from one to another. Implements classic search algorithms such as MiniMax, Alpha Beta Search, Iterative Deepening Search, and Heuristic Search algorithms to show different plays.
This project implements classic planning algorithms often used in logistics problems. Implemented example is for an airline cargo problem. It defines planning problem with initial state and the goal, uses progression search to search the state space, and defines heuristics to reach the goals. It experiments with breadth-first search and depth-first search.
This project implements probabilistic models such as Hidden Markov Models (HMM) to implement a sign-language recognizer.
The following projects implement deep neural networks that use computer vision to solve challenging real-world tasks, such as image classification, time series prediction, sequence modeling, and a final capstone project for facial keypoints detection.
This project uses convolutional neural networks (CNN) with transfer learning from pre-trained networks (such as VGG, Inception, ResNet) to real world tasks such as classifying images. In this case, it is used to classify dog pictures from among ~130 dog-breeds, a task challenging enough for humans.
Sample CNN
We use latest deep learning frameworks such as Keras(http://keras.io) and TensorFlow to create build a CNN architecture from pre-trained models VGG, Inception, etc. The pre-trained models significantly reduce the challenges in training a new classifier. We experiment with various architectures, and achieve over 82% accuracy 👍
In this project, we perform sequence modeling using Recurrent Neural Networks (RNN) and LSTM. We use RNNs to predict stock prices (a rather dicey, but interesting problem). We also use LSTMs to achieve text generation using a char-rnn style generator that learns to generate text character by character. We use this to generate fake Sherlock Holmes style stories. 😀 We use Keras to implement the projects.
In the final project, we use advanced computer vision techniques to detect faces in images using filters, and generate facial keypoints.
We implement a full computer vision pipeline to perform image pre-processing (e.g. transforming color spaces, image de-noising, image blurring, identifying regions of interest, etc.) and filtering to extract portions of images. Then we use Haar cascades to detect faces. We then implement CNNs to identify facial landmarks, and then perform interesting operations on detected faces. 😎
Project is implemented in Keras and uses CNN to identify features, and regressors to add facial keypoints. More image processing is performed using OpenCV.