Introduction to Artificial Intelligence (AI)
Introduction to AI, AI Programming & Machine Learning is a 3-day hands-on course that course introduces the field of artificial intelligence (AI). Materials on AI programming, logic, search, game playing, machine learning, natural language understanding, and robotics introduce the student to AI methods, tools, and techniques, their application to computational problems, and their contribution to understanding intelligence. This course presents a wide variety of related technologies, concepts and skills in a fast-paced, hands-on format, providing students with a solid foundation for understanding and getting a jumpstart into working with AI and machine learning.Each topic area presents a specific challenge area, current progress, and approaches to the presented problem.
Objectives
Working in a hands-on learning environment, led by our expert practitioner, students will learn to:
- Classify the types of learning including supervised and unsupervised
- Identify the various applications of machine learning algorithms
- Perform supervised learning techniques: linear and logistic regression
- Understand classification data and models
- Create robust Machine Learning models
- Implement different Regression models
- Choose the best algorithms among many for any given Machine Learning problem
- Make accurate predictions and powerful analysis
- Use unsupervised learning algorithms including deep learning, clustering, and recommendation system
Outline
Session 1: Introduction to Artificial Intelligence (AI) and AI Programming
While AI applications can be developed in any number of different languages, certain language features make programming AI applications straightforward. Prolog is structured in such a way that AI program development is supported by Prolog language features. Other languages, such as Java, support AI programming through code libraries. At this point in your career as a computer science major, you have already taken introductory programming courses; these should assist you in learning Prolog and using code libraries in other languages for AI program development.
This unit will provide you with an introduction to AI via programming features that support basic AI applications. By satisfying the goals of this unit, you will have a familiarity with AI programming and be able to use it in future models to implement various AI applications.
Session 2: Search
Previous coursework has familiarized you with searching algorithms. In this unit, you will learn how to implement standard searching algorithms. We will first discuss the motivation behind exploring search from an AI perspective, learning new terminology as we go that will be used in this unit and beyond. We will then learn about basic search methods, as well as time and memory requirements, concluding with a discussion of the advantages and disadvantages of searching algorithms. By the end of this unit, you will be able to apply AI techniques when developing searching algorithms.
Session 3: Constraint Satisfaction
AI applications are built upon the idea of a problem statement with constraints. In AI, we must work within those constraints in order to develop an optimal solution. In this unit, we will define “problem” in specific AI terms and discuss different approaches to constraint satisfaction. Constraint satisfaction is an important subject area within AI. The famous Map Coloring Problem has simple variables and simple constraints and is thus useful in illustrating the basics of constraint satisfaction. By the end of this unit, you will be able to solve basic problems.
Session 4: Game Playing
Some of the earliest and most recognizable AI applications are games like chess and tic-tac-toe, the most famous being the chess match between Garry Kasparov and Deep Blue. In this unit, we will discuss the development of game-playing applications, as well as the relationship between game-playing and searching algorithms. The unit will also provide you with some best practices for building game programs.
This unit has been designed to teach you how to design algorithms for game-playing applications. For our purposes, you will find tic-tac-toe, which uses features of search and constraint satisfaction, the simplest. We suggest that as an informal exercise, you create a tic-tac-toe application and then play against it, noting the algorithm’s success rates and determining which modifications will need to be implemented in order to improve its performance.
Session 5: Logic
We have already briefly discussed logic, but this unit will provide you with a more formal definition. We will learn about two main types of logic–propositional and first-order. Prolog was designed for expressing logic. This unit gives you a strong foundation in logic so that you will be able to use or learn Prolog more easily to program logic applications. Similarly, you will be able to use or learn class libraries that support AI techniques in other languages, like C++ and Java.
Session 6: Machine Learning
Machine Learning refers to computer programs that are able to categorize data in order to maximize understanding of that information. Machine Learning is closely related to statistics and modeling and has a wide range of applications, from natural language processing, searching, robotics, and indexing, to other pattern recognition applications. This unit will begin by defining Machine Learning, its applications, and a number of other important terms that will be used in this unit. We will then go over the three main classes of Machine Learning: Supervised Learning, Semi-Supervised Learning, and Unsupervised Learning. You will also end up with an introductory foundation in Machine Learning that will be useful for further academic study in the field.
Session 7: Natural Language Understanding
This unit will provide you with a basic introduction to Natural Language Understanding (NLU) in AI. Syntax, semantics, and ambiguity of natural language are discussed. Simple examples are presented. Some of what we have seen, in search and in learning, is applied in NLU. Natural language processing and understanding is a large field of research and has entire courses devoted to it. So, in this introduction, our objective is simply to introduce the problems and approaches.
Session 8: Robotics
Robotics draws upon and integrates previous topics, as well as information and techniques from other disciplines, including many engineering fields, physics, controls, probability and statistics, differential equations, linguistics, and many applications, e.g., manufacturing, sensors, medical applications, etc. Some of the contributions of AI to robotics are search algorithms, representation and models for the robot world, inference, learning, and AI programming features and their integration.
Audience
This course is ideally suited for a wide variety of learners who need a fast paced, hands-on introduction to the core skills, concepts and technologies related to AI programming and machine learning. Attendees might include:
- Developers aspiring to be a ‘Data Scientist’ or Machine Learning engineers
- Analytics Managers who are leading a team of analysts
- Business Analysts who want to understand data science techniques
- Information Architects who want to gain expertise in Machine Learning algorithms
- Analytics professionals who want to work in machine learning or artificial intelligence
- Graduates looking to build a career in Data Science and machine learning
- Experienced professionals who would like to harness machine learning in their fields to get more insight about customers