Machine Learning, Spring 2007
Machine learning is a subfield of artificial intelligence that is concerned
with the design, analysis, implementation, and applications of programs that learn from
experience. It offers some of the most cost-effective approaches to automated
knowledge acquisition in emerging data-rich disciplines (bioinformatics,
cheminformatics, neuroinformatics, environmental informatics, social
informatics, business informatics, security informatics, materials informatics,
etc.). Learning algorithms can also be used to model aspects of human and
Com S 573. Machine Learning. (3-1) Cr. 3. S. Prereq: 311, 362, Stat 330. Algorithmic models of learning. Design, analysis, implementation and applications of learning algorithms. Learning of concepts, classification rules, functions, relations, grammars, probability distributions, value functions, models, skills, behaviors and programs. Agents that learn from observation, examples, instruction, induction, deduction, reinforcement and interaction. Computational learning theory. Data mining and knowledge discovery using artificial neural networks, support vector machines, decision trees, Bayesian networks, association rules, dimensionality reduction, feature selection and visualization. Learning from heterogeneous, distributed, dynamic data and knowledge sources. Learning in multi- agent systems. Selected applications in automated knowledge acquisition, pattern recognition, program synthesis, bioinformatics and Internet-based information systems. Oral and written reports.
The spring 2007 offering of Machine Learning is taught by Professor Vasant Honavar with the assistance of Rafael Jordan, a doctoral student in Computer Science.
Lectures: Monday, Wednesday, and Friday 10:00am - 10:50am, 1220 Howe Hall.
Vasant Honavar: Monday, Wednesday: 11:00pm - noon, 211 Atanasoff Hall
Rafael Jordan: Tuesdays and Thursdays 11:00 a.m. - noon, 215 Atanasoff Hall, or by appointment.
The prerequisites for the course include knowledge of programming, programming language concepts (functional programming, imperative programming, declarative programming, object-oriented programming, recursion, abstract data types), discrete mathematics (set theory, grapth theory, logic), calculus, basic probability theory and statistics, and data structures (lists, trees, graphs etc.) and algorithms (design and analysis).
These topics are covered in Com S 311, 362 and and Stat 330.
In addition, students are expected to have the writing and presentation skills necessary for preparing written reports and presentations based on term projects. These skills are taught in Engl 105, Sp Cm 212.
Some exposure to philosophy of mind or cognitive psychology, although not required, is desirable.
The laboratory assignments will require you to program in Java. We will use the open source machine learning programming environment Weka for the assignments. If you do not know Java already, you are expected to quickly acquire a working knowledge of Java on your own. If there is sufficient interest, a few of the recitation sessions will be used to introduce Java as needed.
We will use the open source machine learning programming environment Weka for the assignments. You are expected to familiarize yourself with Weka.
If you are not sure whether you have the necessary background, please talk to the instructor.
This course is targeted to beginning graduate students in Computer Science
Bioinformatics and Computational Biology, Statistics, Mathematics, Electrical and Computer Engineering, Chemical
and Biological Engineering, Industrial Engineering, Material Science and Engineering, Neuroscience, Human-Computer Interaction, Psychology, Business and related discipines and qualified undergraduate students, especially those in the honors program at Iowa State University.
The course aims to provide an introduction to the basic principles,
techniques, and applications of Machine Learning. Programming assignments are used to help
clarify basic concepts.
The course covers the principles, design and implementation of learning
programs that improve their performance on some set of tasks with experience.
Upon successful completion of the course, students will have a broad
understanding of machine learning algorithms and their use in data-driven
knowledge discovery and program synthesis. Students will have designed and
implemented several machine learning algorithms in Java. Students will also be
able to identify, forumulate and solve machine learning problems that arise in
practical applications. Students will have a knowledge of the strengths and
weaknesses of different machine learning algorithms (relative to the
characteristics of the application domain) and be able to adapt or combine some
of the key elements of existing machine learning algorithms to design new
algorithms as needed. You will have an understanding of the current state of
the art in machine learning and be able to begin to conduct original research
in machine learning.