CSCI 374

Machine Learning


Professor:Andrea Danyluk
email:andrea "at" cs "dot" williams "dot" edu
phone: x2178
Office:TCL 305
Office Hours: If my door is open, you're welcome to come by (both weekdays and weekends). Scheduled hours Mon 10-11:45am and 4-5pm; Fri 1:30-2:30pm.
TA:Nick Post
TA Hours: Sun 9-10pm (except Feb 4, when office hour will be 3-4pm) in the Unix Lab, Mon 9-10pm in the CS Common Room.

Course Description

Machine Learning is an area within Artificial Intelligence that has as its aim the development and analysis of algorithms that are meant to automatically improve a system's performance. Such improvement might include: (1) learning to perform a new task; (2) learning to perform a task more efficiently or effectively; or (3) discovering and organizing new facts that can be used by a system that relies upon such knowledge. Consider, for example, prediction of movie ratings (Netflix), beating a professional player at the game of Go (AlphaGo), driving a car (Google), or serving as a personal assistant (Amazon's Alexa).

Machine learning algorithms have influenced work in areas other than Artificial Intelligence itself. For example, some of the algorithms developed have contributed to the study of human learning in cognitive science and cognitive psychology. Recent practical applications of machine learning algorithms have included data mining for discovery of new information from scientific data, for fraud detection, and for market analysis.

There are many ways to categorize machine learning algorithms. One is based on the amount and type of background information provided to the algorithm. This course will introduce specific instances of two categories of learning algorithms - supervised algorithms and unsupervised algorithms. It will also introduce methods for evaluating the performance of machine learning algorithms. Finally, it will introduce topics in computational learning theory as well as instances of particular applications.

Work in the course will involve reading, solving problems, running and evaluating learning algorithms, and implementing some as well.