دانلود کتاب Applied Machine Learning
by David Forsyth
|
عنوان فارسی: اعمال یادگیری ماشین |
دانلود کتاب
جزییات کتاب
engineers, and students in a wide range of areas. Many years ago, one could publish
papers introducing (say) classifiers to one of the many fields that hadn’t heard of
them. Now, you need to know what a classifier is to get started in most fields. This
book is written for people who want to adopt and use the main tools of machine
learning but aren’t necessarily going to want to be machine learning researchers—as
of writing, this seems like almost everyone. There is no new fact about machine
learning here, but the selection of topics is my own. I think it’s different from what
one sees in other books.
The book is revised and corrected from class notes written for a course I’ve
taught on numerous occasions to very broad audiences. Most students were at the
final year undergraduate/first year graduate student level in a US university. About
half of each class consisted of students who weren’t computer science students but
still needed a background in learning methods. The course stressed applying a wide
range of methods to real datasets, and the book does so, too.
The key principle in choosing what to write about was to cover the ideas in
machine learning that I thought everyone who was going to use learning tools should
have seen, whatever their chosen specialty or career. Although it’s never a good
thing to be ignorant of anything, an author must choose. Most people will find a
broad shallow grasp of this field more useful than a deep and narrow grasp, so this
book is broad, and coverage of many areas is shallow. I think that’s fine, because
my purpose is to ensure that all have seen enough to know that, say, firing up a
classification package will make many problems go away. So I’ve covered enough to
get you started and to get you to realize that it’s worth knowing more.
The notes I wrote have been useful to more experienced students as well. In
my experience, many learned some or all of this material without realizing how
useful it was and then forgot it. If this happened to you, I hope the book is a
stimulus to your memory. You really should have a grasp of all of this material.
You might need to know more, but you certainly shouldn’t know less.
This Book
I wrote this book to be taught, or read, by starting at the beginning and proceeding
to the end. In a 15-week semester, I cover a lot and usually set 12 assignments, always programming assignments. Different instructors or readers may have different
needs, and so I sketch some pointers to what can be omitted below.
What You Need to Know Before You Start
This book assumes you have a moderate background in probability and statistics
before you start. I wrote a companion book, Probability and Statistics for Computer Science, which covers this background. There is a little overlap, because not
everyone will read both books cover to cover (a mistake—you should!). But I’ve
kept the overlap small (about 40 pp.) and confined to material that is better repeated anyway. Here’s what you should know from that book (or some other, if
you insist):
• Various descriptive statistics (mean, standard deviation, variance) and visualization methods for 1D datasets
• Scatter plots, correlation, and prediction for 2D datasets
• A little discrete probability
• A very little continuous probability (rough grasp of probability density functions and how to interpret them)
• Random variables and expectations
• A little about samples and populations
• Maximum likelihood
• Simple Bayesian inference
• A selection of facts about an assortment of useful probability distributions,
or where to look them up
General Background: Your linear algebra should be reasonably fluent at
a practical level. Fairly soon, we will see matrices, vectors, orthonormal matrices,
eigenvalues, eigenvectors, and the singular value decomposition. All of these ideas
will be used without too much comment.
Programming Background: You should be able to pick up a practical
grasp of a programming environment without too much fuss. I use either R or
MATLAB for this sort of thing, depending on how reliable I think a particular
package is. You should, too. In some places, it’s a good idea to use Python.
Survival Skills: Most simple questions about programming can be answered
by searching. I usually use a web search to supply details of syntax, particular
packages, etc. which I forget easily. You should, too. When someone asks me, say,
“how do I write a loop in R?” in office hours, I very often answer by searching for
R loop (or whatever) and then pointing out that I’m not actually needed. The
questioner is often embarrassed at this point. You could save everyone trouble and
embarrassment by cutting out the middleman in this transaction.
Datasets and Broken Links
I think using real datasets is an important feature of this book. But real life is
messy, and datasets I refer to here may have been moved by the time you read
this. Generally, a little poking around using a web search engine will find datasets
or items that have been moved. I will also try to provide pointers to missing or
moved datasets on a webpage which will also depend from my home page. It’s easy
to find me on the Internet by searching for my name, and ignoring the soap opera
star (that’s really not me).
Citations
Generally, I have followed the natural style of a textbook and tried not to cite papers
in the text. I’m not up to providing a complete bibliography of modern machine
learning and didn’t want to provide an incomplete one. However, I have mentioned
papers in some places and have done so when it seemed very important for users
to be aware of the paper or when I was using a dataset whose compilers asked for
a citation. I will try to correct errors or omissions in citation on a webpage, which
will depend from my home page.
What Has Been Omitted
A list of everything omitted would be impractically too long. There are three
topics I most regret omitting: kernel methods, reinforcement learning, and neural
sequence models like LSTM. I omitted each because I thought that, while each is
an important part of the toolbox of a practitioner, there are other topics with more
claim on space. I may well write additional chapters on these topics after I recover
from finishing this book. When they’re in a reasonable shape, I’ll put them on a
webpage that depends from my home page.
There is very little learning theory here. While learning theory is very important (and I put in a brief chapter to sketch what’s there and give readers a flavor), it
doesn’t directly change what practitioners do. And there’s quite a lot of machinery
with weak theoretical underpinnings that is extremely useful.