This page contains a brief overview of the CS-6601 Artificial Intelligence course being taught at Georgia-Tech during Spring 2012. This is intended for any A.I enthusiasts in general and specifically for graduate students who are interested in the field of Artificial Intelligence. Hope you all find the information contained in this page useful and will be able to decide whether this course matches your interests and fits your plans !!
In the course, we completed 8 assignments on the
foundations of AI, after reading the relevant material in the textbook. The textbook 'Artificial Intelligence-A Modern Approach', Third Edition, by Russell and Norvig was the primary reading material. There were other reference papers, video lectures, and notes on various topics discussed in the class. 1) 2) 3) 4) 5) 6) 7) 8)
All of these assignments made me understand the material more deeply because working on a particular topic always makes it easy to understand easily due to first-hand experience rather than just reading the topic. I feel that working on the assignments exposed some intricate details which would never become evident only by reading the material in the book or by listening to lectures in the class. Out of all these assignments, my favorite was the 2nd one. I especially liked the problem of solving the cryptarithmetic problem using the strategy of strategy of back-tracking with forward checking, with minimum-remaining-values (MRV) and least-constraining-value heuristics. This is because it made the whole idea crystal clear to me and I enjoyed solving it step by step. The figure below shows the problem (taken from the textbook).
There were three mini-projects in which I chose to research a problem that was supposed to be relevant to my future career. For each of these three projects, I proposed a solution, implemented it, and described it in a mini-conference paper.
1) First Project: Evaluation of Genetic Algorithm and Simulated Annealing for N-Queens ProblemProject Partner: Ashley Edwards Synopsis: In chess, a queen can move horizontally, vertically, or diagonally across the board. The N-Queens problem attempts to arrange n queens on an n x n board in such a way that no queen can attack another, i.e., each of the queens must be located on a unique row, column, or diagonal of the board. Solving this problem is NP-Hard, and as the values of N increase, the problem becomes intractable. However, addressing this problem is highly important and significant. Along with being a representative of general constraint satisfaction problems, solutions to the N-Queens problem have a wide-range impact on the industrial domain, such as VLSI circuit and other communication system design and testing, and computer resource management problems such as memory allocation schemes.As a part of this project, we compared the performance results of two of the common heuristic search algorithms, Genetic Algorithms and Simulated Annealing, which have found solutions for the problem. We also modified the standard implementation of Genetic Algorithms by changing the otherwise random computation of the crossover and mutation step. We analyzed the effect of 2 evaluation functions, 5 crossover operators a) Single point, b) Double point, c) Cut and Crossfill, d) Gene Conversion, and e) PMX Crossover, and 3 mutation functions a) Swap Mutator, b) Inversion Mutator, and c) Frame-Shift Mutator on the performance of the genetic algorithms. We also evaluated the performance of the modified algorithm with that of standard Genetic Algorithm and Simulated Annealing algorithm for the N-Queens domain. Our tests also include results for different values of N to analyze the effect of the size of the problem in the comparative performance of the algorithms presented in this study. The results show the merits of the performance of an algorithm depends on various factors, and optimization in every step is crucial for best performance. Please refer the paper for detailed discussion on the results. The paper can be found here. 2) Second Project: Design and Analysis of a Modified RRT Algorithm for L-Shaped Peg-In-Hole Robotic Assembly ProblemProject Partner : Rowland O'Flaherty Synopsis: Robotic assembly and manipulation tasks have become an important part of our day-to-day life. These tasks have widespread applications from manufacturing in industrial domains to elder-care in household environments. A problem known as peg-in-hole assembly is widely considered as a representative problem for robotic assembly and manipulation tasks. Our goal is to focus on this peg-in-hole assembly problem and plan a path in the joint space of a 3-DOF redundant planar robot-arm, such that the robot can successfully insert the L-shaped peg in the G-shaped hole. This problem is different from the traditional approaches because it deals with a more complicated geometry (i.e. L-shaped peg in a G-shaped hole) than conventional square/round shaped pegs and holes. By solving this problem we can address the general issue of planning problems in highly constrained space. In this study, we addressed this task based on the kinematics, dynamics and geometric constraints of the robot. To address the peg-in-hole problem, rapidly-exploring random trees (RRTs) have been utilized. This is because RRTs are well suited for a large, continuous, and non-linear state-space, which is seen in the peg-in-hole problem. To the best of our knowledge, this is a novel approach to solve this standard problem. Our problem deals with planning in cluttered environments which has wide-spread societal applications such as factory automation, automatic car-parking, robotics, virtual prototyping, pharmaceutical drug design, and computer animation. For detailed discussion on the results, please refer the paper here. 3) My Favorite Project (Third Project) : Haptic Classification of Surface Properties using Supervised Machine Learning TechniquesProject Partner : Natesh Srinivasan This third project on 'Haptic Classification of Surface Properties using Supervised Machine Learning Techniques' is my favorite project. So, let me explain this project in detail. Problem Addressed: In this study, our objective is to model the traversibility of
an object on a surface for sliding motions. The traversibility of an
object depends on the interaction dynamics between the object and the
surface which include friction, adhesion, cohesion and point of
application of force. For example, sliding a bottle (an object) over
wood (a surface) would require different forces than over metal or
glass or some rough surface like a furry rug. Applying improper forces
might result in overturning of the bottle as shown in the adjacent figure, resulting
in damage. In such cases, haptic mapping of surfaces would indeed help
in effective manipulation. Hence, our objective is to classify different
surfaces using haptic data obtained from interactions with objects on
different surfaces. This approach becomes all the more important in
cases where visual cues are absent due to lack of line-of-sight (highly
probable in constrained and cluttered spaces). Also, sliding motion is
advantageous as it requires fewer joint-space movements compared to
conventional pick-and-place motions. This problem has wide-spread
societal applications such as enabling day-to- day assistive robots to
autonomously manipulate objects in regular homes wherein environments
are generally cluttered, uncertain, and highly-constrained.
Although, the importance of this problem has been extensively mentioned
in previous literature, this is the first time that such a
classification problem of surfaces (without explicitly touching them)
using robot-object interactions has been attempted to the best of our
knowledge.
We modeled the time-trends of forces for each of these categories using Hidden Markov Models. For modeling the surface characteristics in the three different categories, we modeled three HMM models for smooth, moderate, and rough categories. Our observations are the sensed forces from the interactions between the robot arm and the environmental objects. We modeled the observations in continuous domain using Gaussian Distribution to take into account the differences across all the data. Each hidden state has a non-zero probability of staying in the same-state and transitioning to the next-state. Please note that we modeled the HMM as a left-right HMM model which means there is no backward transition. This is because our HMM models the force-trends based on an increase in time. We varied the number of hidden states to check their effect on the performance of the classification scheme. We also compared the performance of our algorithm with that of other common supervised learning approaches such as k-NN and SVM Classifiers. For implementing k-NN, we reduced the dimensionality of the data using PCA. For Classification, we evaluated the performance of the classifiers using a 5-fold cross validation scheme across all the trials for all the object surface interactions. Our objective was to classify these platform-surfaces into three categories such as Smooth, Moderate and Rough. We also extended our classification algorithm to individual surface recognition situations.
The total classification accuracy using HMM is 93.33%, using k-NN is 100%, and using SVM is 94%. The individual surface recognition accuracy is 97.33%. We also noticed that the performance of the HMM models vary across different categories and different number of states. As the number of states increase, the total accuracy is almost consistently high till 10 states. As the number of states are further increased, the total classification accuracy deteriorates consistently. This is because as the number of states become higher, they model the minute variations in the data across different categories. This also gets influenced by the inherent noise in the data. This issue is analogous to the problem of over-fitting in other machine learning domains. It should be noted that the classification accuracy for the smooth and rough categories are consistently 100% but the accuracy for the moderate category worsens with parameter changes. This makes sense because the data in the moderate category lies in between the boundaries (and sometimes gets overlapped) of the other categories and this makes it difficult for the HMM to classify correctly when minute variations are modeled. With low number of states, the model captures the required variations between the different categories but neglects the extraneous details. This result is definitely not generalizable and is completely dependent on the nature of the data being modeled. For experimental data with a lot of unmodeled uncertainties and dynamic effects, it might be necessary to model the minute and high-frequency variations amongst various surface categories and more number of states will definitely help. Also, k-NN gives high accuracy because, k-NN does not care about the inherent modeling of the time-variation of the original data but instead works on the reduced dimension representation of the original data. The reduced dimension data gets rid of the inherent noise and extraneous details in the original high-dimension data. However, there is no loss of information as the low-dimensional data spans 100% of the variation in the data as seen from our principal component analysis results. The SVM algorithm gives less accuracy compared to the k-NN classifier because it directly operates on the high-dimensional data and hence, is affected by the minute variances in the data as well as the inherent noise. Please refer to the paper for more detailed analysis of the results.
I particularly liked the third project the most because the problem domain was highly related to my current research work on haptic classification schemes. In fact, for this project, I worked on some of the problems which I did not cover in my current research work and hence, the studies were complimentary. This greatly enhanced my intuition of the problem domain. I enjoyed working on it and I learned a lot from the entire process. In addition, all the three mini-projects were an introduction to the world of A.I research. I really liked and enjoyed the projects because these projects not only gave me an opportunity to some simple research problems but also gave me a hands-on experience on implementing A.I algorithms in real-world problems. These, in turn, made me work on some interesting A.I and machine learning tools in the coding domain. The process, in general, was also very helpful. At-first, the search to look for interesting problems in my area made me think deeply and search relevant literature in my field which was very helpful. Writing a proposal by keeping in mind the criteria makes it a habit to write proposals in this way which would immensely help in the future for writing big grant proposals. The process of submitting a paper in the end with relevant sections is a good practice for writing actual conference/journal papers. The last step in the process, which was the review-panel, taught me how difficult it is to judge a work in limited time and how difficult it is to coordinate with the whole board comprising of people with different opinions. From a proposal writer’s perspective, it made me learn the importance of writing an effective paper which is not verbose but would capture the attention of the reviewers very easily.
I think I did pretty well in the assignments, projects as well as the proposals. Two of my three projects (1st and 3rd) were selected as the best in the class and my assignment grades were also among the top ones. I personally think that the second project was also good but it’s the paper writing part which made it lose points because it was too verbose without any highlights to the important points. The reviewers’ feedback made us realize the importance of presentation style of the paper. Regarding the proposals, the most important challenge to me was to explain the problem clearly in a limited space and also portray its significance and importance to the reviewers who are from different backgrounds. Sometimes, I feel that writing a proposal is more difficult than implementing a project. This is because, once we know what we are supposed to do, we have a direction and implementing that is a different challenge. But, establishing a direction is not an easy task, and this is what a proposal is all about. For writing up a proposal, it is necessary to know about the latest developments in the field and also some of the interesting studies. Also, to compare against some of the well-known and established methods, it is necessary to read the relevant literature in the domain. Therefore, I feel like writing a proposal made me more knowledgeable about the developments in a field in general. Also, writing an effective and coherent proposal which can stick to rules and attract reviewers is not an easy task and hence, this practice of writing three proposals was beneficial and it helped to mold my thinking and writing process in general.
The course as a whole had a big impact on my academics. This served as an extensive introduction to the world of Artificial Intelligence. This course was more of a self-study on the topics covered in the book which made it more challenging as the classes were supposed to cover topics beyond what is given in the book. This was my first A.I class and hence, the learning curve was very steep. The breadth of this course is large and it does a pretty good job of introducing us to various interesting domains of A. I. I believe that this class coupled with a dedicated self-study will be the perfect recipe for anyone who wishes to get a good grasp of Artificial Intelligence. In the end, I would like to thank the instructors, T.A, and other fellow students of this class without whom this would not be as exciting an experience as it was for me. |

Relevant Coursework >