CS 4780 - Fall 2009Cornell UniversityDepartment of Computer Science Time and PlaceFirst lecture: August 27, 2009Last lecture: December 3, 2009Tuesday, 1:25pm - 2:40pm in Phillips 203
Thursday, 1:25pm - 2:40pm in Phillips 203
NOTE: CS4780 is only offered in Fall 2009, not in Spring 2010. First Prelim Exam: 10/15Second Prelim Exam: 11/24Review Session I: Wednesday 10/14, 10:00am - 11:00am, in Upson 315 Review Session II: Sunday 11/22, 5:00pm - 6:00pm, in Upson 315InstructorThorsten Joachims,tj@cs.cornell.edu, 4153 Upson Hall.Mailing List and Newsgroup[cs4780-l@cornell.edu] We'd like you to contact us by using this mailing list. The list is set to mail all the TA's and profs -- you will get the best response time by using this facility, and all the TA's will know the question you asked and the answers you receive. Teaching AssistantsMark Verheggen,mark@cs.cornell.edu, Upson 4161.Office HoursMonday, 1:00 pm - 2:00 pmMark VerheggenUpson 328BThursday, 3:00 pm - 4:00 pmThorsten Joachims4153 UpsonThursday, 12:15 pm - 1:15 pmMark VerheggenUpson 328BFriday, 2:30 pm - 3:30 pmRick DucottUpson 328BSyllabusMachine learning is concerned with the question of how to make computers learn from experience. The ability to learn is not only central to most aspects of intelligent behavior, but machine learning techniques have become key components of many software systems. For examples, machine learning techniques are used to create spam filters, to analyze customer purchase data, or to detect fraudulent credit card transactions. This course will introduce the fundamental set of techniques and algorithms that constitute machine learning as of today, ranging from classification methods like decision trees and support vector machines, over structured models like hidden Markov models and context-free grammars, to unsupervised learning and clustering. The course will not only discuss individual algorithms and methods, but also tie principles and approaches together from a theoretical perspective. In particular, the course will cover the following topics:
Choosing a topicSoftware and dataWriting (and submitting) a final reportWhat you will be graded onBooks on reserveThe final project for this class is completely open ended. You can pick just about any topic you wish so long as there is somedirect connection to machine learning and its mathematical foundations. For your project, you can run an experiment, or you can think about a theoretical problem or algorithm, or you can do a blend of both. You can work individually or with a partner. Working as a pair is very much encouraged -- you are likely to learn more, have more fun, and accomplish more if working with a classmate. As further encouragement, students working as a pair will receive a small bonus which will be added to their final project grades.As soon as you know what you want to do, but no laterthan Tuesday, April 10, please write and submit one briefparagraph outlining your project. Your proposal should be submitted electronically usingthis link(after logging on using your Princeton OIT netid andpassword). Submit a single plain-text file called "proposal.txt".If working as a pair, you only need to submit once for both of you.Be sure to include name and netid (for both yourself and your partner, if you have one). Feel free to come to my office hours or contact me if you want to discuss your ideas, or have questions.This project is due at 5pm on Tuesday, May 15. Please makeevery effort to turn in your project on time. "Free" late days cannotbe used for the final project (nor can they be used for the proposal). Extensions beyond the due date will only be given for genuine and unforeseen emergencies, such as serious illness or death in the family; furthermore, extensions may require dean's approval. To avoid last minute problems with laptops, hard drives, etc., be sure to keep your work regularly and frequently backed up as I do not generally consider hardware or computer difficulties to be "emergencies."I strongly advise starting early on your project. Running experiments takes time, as does thinking about theoreticalproblems.Choosing a topicFor your project, you should start by doing some reading on a topic,and then you might run an experiment, ortry to simplify or improve or extend some result, or you might tryapplying an algorithm to a particularapplication, or you might think about how two different approaches oralgorithms are related to each other. Or you can do something different from any of these.Here are examples of possible types of projects:Study one of the many advanced topics not covered in this course. Examples include: reinforcement learning, learning finite automata, PAC-Bayes analysis, bandit algorithms, online convex optimization, domain adaptation,learning to rank, active learning, multiclass learning. To get ideas, browse assigned or optional readings, or the chapters of our book that we did not cover, or other similar textbooks (such as the book byShalev-Shwartz and Ben-David),or explore the other books and references given below, particularly links to survey articles.Run experiments with a learning algorithm on some datasets. Measure the error rates on separate test sets. Compare performance to another learning algorithm, or to amodification of the same algorithm. Or, compare performance to what is predicted by theory. For instance, for SVM's, try to measure if fewer support vectors really do mean better performance. Or compare the learning curves observed on real data for your favorite learning algorithm to what is predicted by the theory.Read two papers coming from different communities or on differenttopics that seem related and try to relate them. Explore the connections between machine learning and another field,such as information theory, complexity theory, cryptography, gametheory, economics, or neuroscience.Find an open problem, and attempt to make progress on it. A great place to look for these is the proceedings of recent COLT conferences which every year publishes short open-problem papers (some of which have monetary awards for solving). See links below to find online proceedings, then scroll down or search in your browser for the word "open". (Obviously, since these were published a while ago, it is possible that some of these will have already been solved. But that doesn't mean they can't be the starting point for a project.)Think about what the consequences are of changing one of the standard learningmodels. Does learning become easier or harder? What are the general properties of the new model? Can you think of new algorithms for interesting problems in the new model?Create a graphical program that interactivelydemonstrates the behavior of a learning algorithm that you have readabout. Or, create an interactive game that uses learning, for instance a gamethat plays something simple like "rock, paper, scissors" or "matchingpennies" against a human. Online algorithms are especially well suited for this. See, forinstance, this game. What insights about the learning algorithm did you gain by playingwith your game or demo? (Be sure to keep the emphasis on machine learning rather than, say, the graphical interface. Make sure that it is clear that you have learned something aboutmachine learning.)Build or apply a machine learning program tailored to a particular application coming from some other field such as natural language processing, bioinformatics or information retrieval.Come up with your own idea! Be original and creative.Places to look to get ideas for topics include the following. (Note that for some of the links below, you will need to be on the Princeton intranet to download entire papers.)There are many very good survey or overview papers available on a great number of topics in machine learning. See the excellent collections atFoundations and Trends inMachine Learning, and Morgan & Claypool Synthesis Lectures on Artificial Intelligence and Machine Learning. See also thevery nice (but not so recent)survey article by Boucheron, Bousquet and Lugosi that includes several highly relevant topics that we did not get to cover in this course, such as PAC-Bayes bounds and stability.There are several books onreserve at the Engineering library for this course, listedbelow.The conference that comes closest to what we have covered in class istheConference on Learning Theory (COLT). Online proceedings for recent COLT conferences can be found here:2017,2016,2015,2014,2013,2012,2011,2010.The main machine learning journals areJournal of Machine Learning Research andMachineLearning.Other machine learning conferences includethe International Conference on Machine Learning (ICML),Neural Information Processing Systems (NIPS),Algorithmic Learning Theory (ALT).Here are a few topic areas which have gotten a lot of attention in recent years. But these are only examples, and you certainly should feel free (and encouraged) to do something different from any of these.Fairness, accountability and transparency in machinelearning (for instance, how to prevent discrimination based onrace or sex when machine learning is used to approve or denybank loans). See the proceedings ofrecent FAT/MLconferences.
Convex optimization and machine learning. Surveys are here and here.
Theory of deep learning. There are many approaches being taken, such as here,here,here, andhere.
Learning in relation to game theory, auction design, finance, e-commerce, economics, prediction markets, etc. This is a broad area, but a small sample can be found here, here, and here.
"Bandit" learning (a variant of online learning where the loss/reward is only observed for the action taken). Here is asurvey.
If you are doing a theoretical project, it may be that you read a paper, try improving it, and are not able to make progress. In thatcase, it is okay to fall back on just explaining the paper as clearly asyou can, in your own words.Doing theoretical research is challenging and progress can be unpredictable. It is usually not effective to immediately attempt to solve the most difficult and general case first. Rather, try to think about what the easiest and simplest special cases are, and begin with those. Sometimes, solving easier cases can suggest a path for solving the more general ones. Or they might give clues about what aspects of the general problem make it hard to solve. Along the way, try to make observations and develop insights about the problem that might be useful later, or which tell you something about its structure. Try to understand the problem and the research that has previously been done on it in a new way based on your own fresh perspective. All of these smaller steps forward, though perhaps well short of a complete solution, could make for a very nice project.It is okay to do a project that is related to your primary research. Inthis case, you will need to carve out a project that is focused and relevant tomachine learning and its mathematical foundations. Needless to say, turning in a project based onpreviously completed research would not be appropriate.Software and dataYou may use software that you legitimately find online. If you do, please note this in your report, and, as with any project,demonstrate in your report that you understand how the underlying learning algorithm works. If you implement code yourself, be aware that it can be tricky to besure that a machine learning program is actually working properly. Be sure that it is carefully tested before running your experiments. For instance, check the output of the program carefully on tinydatasets where you know what the output should be (for instance, youhave computed it by hand, or you have found or implemented anotherprogram (say, in another language or using a different technique) thatcomputes it for you). Also keep an eye out for clues that your program might have problems,for instance, if the results violate proven theorems. Your report shoulddescribe briefly what measures you took to be sure that your program is workingproperly.One of the best places for obtaining "real" data is therepository atUniversity of California, Irvine. Within this repository, there are many, many datasets to choose from. Some of these datasets have separate test sets. Others only provide a training set. In this case, you can randomly partition the dataset into a trainingset and test set. If you end up with a rather small test set, you will probably want torepeat this many times to get reliable results. You can also use synthetic data of your own creation, in which casethere is no problem generating a large test set. Usually, when evaluating a machine learning algorithm, you will wantto see how it performs on several datasets.If you have access to more specialized data (for instance, as part ofyour regular research), feel free to use it. However, if you plan to use data that is private, confidential, classified, copyrighted, controlled, sensitive, etc., it is your responsibility to be sure that it is legally and ethically okay for you to use the data for the purposes of this project (including possibly sharing the data with the COS511 course staff, should the need arise). Please do not use any data in any way that might be considered illegal, unethical, immoral, offensive, or inappropriate. The same goes for any software that you use.Writing (and submitting) a final reportIn every case, the end result of your project should be a written report clearly and concisely describing what you did, what results you got and what the results mean. If you are working individually, your report should be 3-5 pages long. If you are working with a partner, the two of you together should submit a single report, which may be 4-7 pages long. The report should use 12pt font, 1-inch margins, and single spacing. The page length limits do not include figures or citations. Papers that vary from these guidelines risk receiving a grade deduction and/or some sections not being read.For excellent guidance on writing clearly and concisely, I highly recommendOn Writing Well by William Zinsser (at least the first few chapters).Your report must be submitted by 5pm on Tuesday, May 15. Reports should be submitted electronically usingthis link(after logging on using your Princeton OIT netid andpassword). Submit a single PDF file called "report.pdf".Although it should not be necessary in most cases, if you wish, you can also submit other electronic materials in addition to your report.Your report should follow the general format of a scholarly paper in this area. You should write your report as clearly as possible in a manner that would be understandable to a fellow COS511 student. In other words, you should not assume that the reader has background beyond what has been covered in class (as well as a general computer science background).Your report should begin by describing the problem you are studying, some background (what has been done before) and the motivation for the problem, i.e., why it is worth studying. Previous work and outside sources should be cited throughout your report in a scholarly fashion following the style of academic papers in this area. (See the proceedings of some of the conferences referenced above for examples.)Next,you should clearly explain what you did, both from a high level, andthen in more detail. For an experimental paper, you should explain the experiments inenough detail that there is a reasonable possibility that a motivatedreader would be able to replicate them. You also should outline some of the theory underlying the algorithmsyou are studying. State your results clearly, and think about graphical tools you canuse to make your results clearer (a table of numbers is usually lesscompelling than a graphical representation of the same data). Look through published papers for ideas. For a theoretical paper, the learning model and other mathematicaldetails should be explained well enough for the results to be statedwith mathematical precision and clarity.In every case,be sure to explain the meaning of your results. Don't just give a table of results or a dry mathematical formula. Explain what the results mean, and what conclusions can be drawn from them. Again, do all this in a way that would be understandable and interesting to a fellow COS511 student. What did you expect to find? What did you find instead? What are the implications? If you found something surprising,can you think of how it might be explained? What you will be graded onProjects will be graded along the following dimensions: originality and creativity
background material
theoretical component
experimental design and execution (only if applicable since this part is not required)
discussion and interpretation of results
writing of the final report, including clarity, completeness and conciseness
overall effort
Projects completed with a partner will receive a final project grade bonus equal to 3% of the total points possible.
Introduction To Machine Learning Ethem Alpaydin Pdf
Download: https://miimms.com/2vKcHZ
2ff7e9595c
Comments