机器学习(MACHINE LEARNING)是一个广阔而迷人的领域。甚至在如今,机器学习技术出现在你生活中的重要场景中,只是你不知道而已。在某种程度上,任何对于人工智能(Artificial Intellingence)看似合理的方法都必须涉及到学习(learning),如果没有什么特殊的原因,要称之为智能的系统都应该有学习的能力。机器学习本身也很吸引人,因为它提出了一些哲学问题,它提出了在任务中学习和成功的意义。
机器学习也是一个非常大的领域,它试图覆盖所有的事情,这将会成为一场教学的灾难(A pedagogical disaster)。它的发展速度之快,快到让那些想要报道该领域最新发展近况的书籍在它们出版之前就已经过时了。因此,这本书有两个目的。首先,柔和的介绍这个非常深奥的领域(即学者的学习入门领域介绍)。其次,为读者提供一些必要且基础的技能,以便在开发时掌握新技术。
0.1 如何运用本书
这本书是被设计成线性阅读的,因为它的目标不是成为一个通用的参考。也可以说,一旦你读完第5章,你就可以阅读后文任何一章。在我的一个学期的本科教学中,我通常会根据兴趣和时间来讲述1-13章,有事会跳着讲7、9、10、12章。而对于那些没有任何机器学习背景的研究生课程的学生而言,我会很快速过掉1-4章,然后讲述其余的,增加一些额外的阅读。
0.2 为什么另外写一本教科书书
本书的目的是为该领域提供一种温和而有教育意义的介绍。这与大多数现有的机器学习书籍形成了鲜明的对比,后者倾向于以局部的方式进行介绍,而不是以教学的方式进行指导教育(一个例外是米切尔的书,但不幸的是,它越来越过时了)。这对于该领域的研究人员而言是有意义的,但对于学习者来说意义不大。本书的第二个目标是提供一种机器学习的视角,侧重于思想和模型,而不是数学。避免数学是不可能的(甚至是不明智的)。但是数学应该帮助理解,而不是避开它。最后,这本书试图有最小的内部依赖,以便人们可以相当容易地挑选章节阅读。当依赖项存在时,它们会在章节的开头列出。
本书的读者是懂得微分学和离散数学的人,而且可以很好地编程。(一些线性代数和概率不会造成影响。)一个在第四、五学期的本科生应该完全能够理解这种知识。然而,它也适用于一年级的研究生,或许还应该以稍微快一点的速度。
0.3 辅助资料
有一个关联的网页http://ciml.info/,其中包含本书的在线副本以及相关的代码和数据。 它也包含勘误表。 请在github上提交bug报告:github.com/ hal3 / ciml。
0.4 致谢
Acknowledgements: I am indebted to many people for this book. My teachers, especially Rami Grossberg (from whom the title of this book was borrowed) and Stefan Schaal. Students who have taken machine learning from me over the past ten years, including those who suffered through the initial versions of the class before I figured out how to teach it. Especially Scott Alfeld, Josh de Bever, Cecily Heiner, Jeffrey Ferraro, Seth Juarez, John Moeller, JT Olds, Piyush Rai. People who have helped me edit, and who have submitted bug reports, including TODO. . . , but also check github for the latest list of contributors!(致谢原文意思更完整。)
(关于排版,在家过年,时间碎片化,后续会重新排版)