CS 344/386: Artificial Intelligence

Fall 2018

This course gives a broad introduction to Artificial Intelligence and Machine Learning.

We will cover topics such as, but not limited to:

Instructor

Clint P. George — clint [at] iitgoa.ac.in — Office: 205 (F5), IT Building

Teaching Assistants

Chitra Nayagam — chitra [at] iitgoa.ac.in — Office: CSE Lab, IT Building
Janice Fernandes — janice [at] iitgoa.ac.in — Office: CSE Lab, IT Building

Meetings

Lectures: Monday (9:30-10:25am, T1) — Tuesday (2-2:55pm, LH1) — Wednesday (9:30-10:25am, T1)
Labs: Friday (9-11:30am, CSE Lab)
Office hours: Monday (11:30am-12:25pm) — Tuesday (4:00pm-4:55pm) — Wednesday (11:00am-12:00pm)

Recommended Books

Artificial Intelligence 3e: A Modern Approach (AIMA)
by Russel and Norvig (2015)
Machine Learning
by Mitchell (2017)
Pattern Recognition and Machine Learning (Information Science and Statistics)
by Bishop (2010)

Course Eligibility and Requirements

This is a core course designed for the fifth semester Computer Science and Engineering undergraduate students. Knowledge in computer programming is required.
Course prerequisites: CS 113, MA106, CS215, CS218, MA214

Grading Policy

CS 344: Quiz 1 (15%) — Midterm (20%) — Quiz 2 (15%) — Seminar (10%) — Final (40%)
CS 386: Based on 5 lab assignments/projects (20 marks each)

Academic Honesty

We expect each student to follow the highest standards of integrity and academic honesty. Copying/sharing code in exams, homeworks, labs are not allowed: see IIT Goa: Policy for academic malpractices.

Course Schedule

This is a tentative course schedule. It will be updated often.

# Date Topic Materials*
1 July 23 Course Introduction and What's Artificial Intelligence?
Reading: AIMA Sections 1.1 - 1.4
2 July 24 Problem solving agents, search problems
3 July 25 Python tutorial e.g. Python for Data Science, Introduction to Python
4 July 30 Uninformed Search: breadth-first search, depth-first search, and uniform-cost search
Reading: AIMA Sections 3.1 - 3.2, breadth-first search, depth-first search
5 July 31 Informed Search: heuristics, greedy search
6 August 1 A* search
7 August 6 A* search: properties, examples; Graph Search algorithms
8 August 7 Constraint satisfaction problems, backtracking
9 August 8 Overview of machine learning algorithms, discussion on seminar topics
10 August 20 Quiz 1
11 August 21 Constraint satisfaction problems: variable and value ordering, filtering
12 August 24 k-means clustering
13 August 27 Constraint satisfaction problems: filtering, problem structure
14 August 28 Constraint satisfaction problems: improving problem structure; Local search: hill climbing, simulated annealing
Reading: genetic algorithms
15 August 29 Topics in clustering: partition-based and bottom-up approaches
16 September 3 Principal components analysis
Reading: A tutorial on PCA by J. Shlens
17 September 4 Introduction to text analyses
18 September 5 Text analyses methods: TF-IDF, Latent Semantic Analysis
September 14 Midterm Location: LH1, Time: 10am-12pm
19 September 17 Probability: review
20 September 18 Probability: The Product rule, the Chain rule, Bayes' rule Bayesian thinking Bayes' rule - an intuitive explanation
21 September 19 Markov Models
22 September 24 Hidden Markov Models
23 September 25 Hidden Markov Models: the Forward algorithm
24 September 26 Hidden Markov Models: the Viterbi algorithm, Particle Filters
25 October 1 Bayes' net: representation
26 October 2 Bayes' net: independence (1.5 lectures)
27 October 22 Bayes' net: independence (continued)
28 October 23 Bayes' net: inference
29 October 24 Bayes' net: inference (1.5 lectures)
30 October 26 Bayes' net: sampling
31 October 29 Bayes' net: sampling (continued)
32 October 30 Naive Bayes
33 October 31 Naive Bayes Learning, MLE, MAP
34 November 2 Quiz 2 Location: LH3, Time: 2pm-3pm
35 November 5 MLE, MAP (continued), evaluation metrics for classfiers
36 November 6 The perceptron learning algorithm
37 November 12 The perceptron and large margin classifiers
38 November 13 Learning theory
November 15 Final Location: LH2, Time: 10am-1pm

Student Seminars

Team Date Title Materials
1 September 19 Transforming a standard video into slow motion using AI
Apurv Varshney, Piyush Doke, and Rohan Teja
abstract slides
5 September 28 Content-based image retrieval
Shivangi Sharma, Siddharth Singh, and Shreyash Tripathi
abstract slides
4 September 28 Google's AI camera: An approach to computational photography
Ashish Ekka, Prashant Kote, and Neha Shah
abstract slides
3 October 3 Google’s online handwriting recognition and quick draw
Abhishek Varghese, Gaurav Aidasani, and Nitish Shah
abstract slides
9 October 3 Making life Leazy with AI
Abhisar Kushwah, Gaurav Ganna, and Vikas Bansal
abstract slides
6 October 3 Face recognition using machine learning
Manika Khare, Pankaj Katkar, and Shivam Kumar
abstract slides
2 October 5 Computer Vision
Sandesh Maurya, Sanjeev Ranjan, and Gaurav Dahiya
abstract slides
11 October 5 Home Automation System
Shivam Pandey, Tanmay Maheshwari, and Himali Goel
abstract slides
7 October 5 AI in Games
Vishal Jha, Ishan Singhal, and Shuvham Kumar
abstract slides
10 October 8 Speech Recognition
Avya Bansal, Pratyay Gaikwad, and Srinivas Thammana
abstract slides
8 October 10 AI in Health Care
Shikha Verma, Aman Kumar, and Vaishnav Tammadwar
abstract slides

Term Projects

Team Title Materials
1 Single-Line Handwritten Sentence Recognition
Shivam Pandey, Shivam Kumar, Abhishek Varghese
report
abstract

Over the last few decades, research on handwriting recognition has made impressive progress. The research and development on handwritten word recognition are to a large degree motivated by many application areas, such as automated postal address, data acquisition in banks, text-voice conversion, security, etc. As the prices of scanners, computers and handwriting-input devices are falling steadily, we have seen an increased demand for handwriting recognition systems and software packages. Few commercial handwriting recognition systems are now available in the market. Current commercial systems have an impressive performance in recognizing machine-printed characters and neatly written texts. For instance, Xerox in the U.S. has developed TextBridge for converting hardcopy documents into electronic document files. Notwithstanding the impressive progress, there is still a significant performance gap between the human and the machine in recognizing off-line unconstrained hand- written words. The difficulties encountered in recognizing unconstrained handwritings are mainly caused by huge variations in writing styles and the overlapping and the interconnection of neighboring characters. Furthermore, many applications demand very high recognition accuracy and reliability. Sadly, in the banking sector, although ATMs and networked banking systems being widely available, many transactions are still carried out in the form of cheques. Google’s Tesseract, despite being developed by the greatest IT beast, its output will have very poor quality if the input images are not preprocessed to suit it. This motivates us to research and develop a handwritten sentence recognizer with much improved accuracy.

2 Stock Prediction using Sentiment Analysis of News Headlines
and Artificial Neural Network

Ishan Singhal, Avya Bansal, Vishal Jha
report
abstract

Stock prices are volatile. They are hard to predict based only on some expertise through previous trends. Stock price fluctuation represents the current market trends and business growth among other factors that could be considered to sell or buy stocks. The daily news represents factual information about the companies and affect the stock market. Hence, we wish to create a model that will use news articles along with the historic trend of closing price to predict the change in stock prices of five companies namely TCS, LT, Infosys, Yes Bank and Tata Steel.

3 T-Rex Game using Artificial Intelligence
Gaurav Aidasani, Tanmay Maheswari, Neha Shah
report
abstract

Games and artificial intelligence have a long history together. Much research on Artificial Intelligence in games is concerned with constructing agents for playing games, with or without a learning component. In this project, we propose to use Deep Q- learning and online learning Multi Layer Perceptron (MLP) for learning to control the game agent in T-Rex, the game embedded in Chrome offline mode.

4 CHATBOT
Sandesh Maurya, Gaurav Dahiya, Sanjeev Ranjan
report
abstract

In this project we have built a simple textual chatbot , which is a sequence to sequence model with attention decoder. An encoder is an utterance by the user and the decoder is the response to that utterance. The bot requires dataset for training itself. We have used the Cornell Movie-Dialogs Corpus for training our bot. The training dataset has been pre-processed as it contains some data which is useless for the model.

5 Bird Speech Recognition
Gaurav Ganna, Apurv Varshney, Pratyay Gaikwad
report
abstract

Classification of birds by their sound has many potential ap- plications in ecological surveillance, conservation monitoring, taxonomy, and vocal communication studies. Using audio recordings rather than pictures is justifiable since bird calls and songs have proven to be easier to collect and to discriminate better between species. But for it to be useful for the layman, it should be scalable, should work in noisy environments and on different lengths.

6 Musical Chord Recognition
Ashish Ekka, Shreyash Tripathi, Shivangi Sharma
report
abstract

Chord Recognition is the automated process of assigning mu- sical chordsto segments of a music piece.It is an important task in the analysis of western music and music transcription in general, and it can contribute to applications such as key detection, structural segmentation, music similarity measures, and other semantic analysis tasks. The first step of the chord recognition (CR) is the extraction of a meaningful descriptor that enhances the contribution of every note at each instant. One of the main strategies of doing Chord Recognition is based on the comparison of vectors of the extracted descriptor with a set of chords templates by means of a distance measure. This method, due to the interaction of many instruments with dif- ferent timbral characteristics, is very influenced by the noise of the descriptor itself and, for this reason, can be ineffective. In this project, we worked on a method for Chord Recognition based on machine learning techniques. These techniques are designed to automatically learn the complicated relations that link an input observation to the corresponding class making use of probabilistic theory.

7 Article Recommendation System
Himali Goel, Manika Khare, Siddharth Singh
report
abstract

Recommendation systems represent user preferences for the purpose of suggesting items to purchase or examine. They have become fundamental applications in electronic commerce and information access, providing suggestions that effectively prune large information spaces so that users are directed towards those items that best meet their needs and preferences. A variety of techniques have been proposed for perform- ing the task of recommendation, including content-based, collaborative, knowledge-based and other techniques. While collaborative filtering makes automatic predictions (filtering) about the interests of a user by collecting information regarding preferences or interests of other users (collaborating), content based filtering uses information about the description and attributes of the items that the user has previously consumed to model user’s preferences. However, Recent research has demonstrated that a hybrid of the two models could be more effective than the pure approaches since it combines the benefits of the two, overcoming some of their shortcomings. Our project aims at building one such hybrid recommendation system to suggest news articles to readers based on their prior interactions with previous reads in the form of views, likes, comments, bookmarks and followings.

8 Reverse Dictionary:
Searching Words by their Definitions

Piyush Doke, Shikha Verma, Nitish Shah
report
abstract

Many times we find ourselves unable to recall the most ap- propriate word for describing the idea/concept we have in our minds. This might just be a recall problem or might be due to our lack on knowledge in that language. And it turns out to be a very common problem for people who produce language. In such cases, dictionaries might not be the most perfect solution as it is easy to find the meaning of a particular word but it is almost impossible to find a word given its meaning. Hence, to address this issue we propose the idea of building a reverse dictionary.

9 Movie Recommendation
Pankaj Katkar, Vaishnav Tammadwar, Aman Kumar
report
abstract

In this project we worked on how to recommend a user new movie based on its previously watched movies and ratings it had given to watched movies. Movie recommendation is used in many areas like Netflix(https://www.netflix.com/in/) uses it to recommend movies to its user, also Amazon Prime(https://www.primevideo.com/) for movie recommenda- tion. It gives user a complete new experience of watching movies. Thus it motivated us to do project on this topic.

10 Neural Style Transfer
Abhisar Kushwaha, Rohan Teja, Vikas Bansal
report
abstract

Neural Style Transfer is basically transferring of the style from one image to the another image called content image.We have done it in two stages which are explained below.
Stage 1 : In this we implemented the naive method which transfers the style without using neural network but with the help of image clustering, feature extraction and blending of images.
Stage 2 : We style our content image with the help of neural network based on minimizing loss functions for content image and style image.

11 Facial Expression Recognition using Naive Bayes` Model
Prasanth Kote, Shuvham Kumar, Srinivas
report
abstract

Facial Expression Recognition is something that humans can vividly do on a daily basis. On a personal level, if you know someone long enough, you know how they are feeling even without uttering a word - a true friend/partner/sibling/family member. There are a number of applications for this technol- ogy. Applications of Emotion Recognition are spread across different fields like Medicine, E-learning, monitoring, Market- ing, Entertainment and Law. One of the application is "ATM not dispensing money when the user is scared". This is a challenge for a computer to perform with accuracy. There are many AI methods like neural networks, SVMs which can help in solving this problem. Our motivation comes from the Kaggle fer2013 challenge. We look into a Naive Bayes` approach to solve this problem. Although this doesn‘t give a high accuracy for commercial use, it gives an idea of how tough it is to build an AI method with great performance standards. We aim to classify an image into any one of the seven expreesions (Anger, Disgust, Fear, Happiness, Sadness, Surprise, Fear).


Labs

# Week Topics/Projects Due Date Resources
1 July 27 Project 0 August 03
  • Python tutorial: https://docs.python.org/3/tutorial
  • PEP 8 -- Style Guide for Python Code: https://www.python.org/dev/peps/pep-0008
  • https://www.learnpython.org
  • http://ai.berkeley.edu/tutorial.html
2 August 3 Project 1 August 10
3 August 17 Project 2 August 31
4 September 28 Project 3 October 12 (Part I) & 26 (Part II)