第2章
机器学习快速入门
深度学习只是机器学习的重要分支之一。为了更好地理解深度学习,我们首先简单介绍一些重要的机器学习原理与思想,而这些内容也将贯穿我们整个深度学习之旅。该章节内容是不全面的,但这些内容全都和深度学习内容高度相关。因此,对于想要了解更全面的机器学习知识的读者,我们强烈推荐周志华老师所著的《机器学习》[1]一书,该书是国内机器学习的殿堂级著作,并且主要针对中国读者,读者会少一些对于翻译的不适应。国外也有许多经典的机器学习著作,如Tom Mitchell的Machine Learning[2],Bishop的Pattern Recognition and Machine Learning[3]和Murphy的Machine learning: A Probabilistic Perspective[4],这些都是非常经典的机器学习教材。如果你已经非常熟悉机器学习的基础内容,可以轻松地跳过该章节,仅仅完成2.6节的Softmax编码练习即可。但话又说回来,再看看原本已经非常熟悉的内容,是一件愉快身心的事情,为什么不让自己开心一下呢?
机器学习允许我们去处理那些我们很难通过直接编程实现的任务。“一花一世界,一叶一菩提”,我们以一种更加哲学略带禅意的观点来看,要理解并研究机器学习,其本质上也是对我们自身潜在智能行为的深入理解。而理解这些智能行为,最好的教材就是我们自己。我们就是自己的老师、教材及学生。因此在学习机器学习算法时,充分发挥想象力,想想自己的行为,或许可以给你带来许多豁然开朗的欣喜。
要让机器能够学习,那首先得知道什么是机器学习。因此在2.1节中,我们将介绍一些机器学习任务,讲解如何去度量机器学习算法性能的好坏。
机器学习的目标是什么呢?那就是降低代价函数。在2.2节中,我们将讲解什么是代价函数(损失函数),而本章我们将介绍最具代表性的均方误差和极大似然两种代价函数。
有了目的,接下来如何去做才是关键。在2.3节中,我们将讲解如何去降低代价函数,我们只使用一招,也是大家在高中就非常熟悉的一招,那就是函数求导。
生活中是否有很多事情总觉得“做得太少”,总有种“如果当初多学些,当初多考虑些,那结果可能会更好”的错觉;而又有很多事情觉得已经“做得太多”,总会郁闷于“明明万事巨细了,明明每一个细节都考虑了,但结果和自己的预期却相差甚远”。你有这些问题,当然机器也有,有些人因为过于愚钝而变得“愚蠢”,有些人因为过于“精明”而看不开,所谓大学之道在于中庸。在2.4节中,我们将讲解过拟合与欠拟合问题,聊聊机器也会过于“笨拙”或者过于“聪明”,并如何“中庸”地解决这些问题。
你是否痛恨考试,听到考试就会瑟瑟发抖,但为什么要考试呢?生活其实就是一场一场的考试,只不过并不是每次都用试卷和分数去衡量你的好坏,今天你期望着考试的结束,明天或许就被各种业绩考核压得喘不过气来。如果考试是“结束”,那么在“大审判”来临前我们能做些什么呢?在2.5节中,我们将讲解如何在“考试”前做些“自我测试”,这些“测试”我们称为验证集,我们将调整超参数,然后试图使测试成绩更好,从而期望考试成绩也能更好。
道理我都懂,就是不会做。但别怕,在2.6节中,我们活动一下手指,再结合整章的知识,一步一步地完成Softmax多分类图像任务,可以让你信心倍增。