本文是我看《机器学习哪些事》的一些总结和感想。如果我现在就是一个能够学习的机器的话,那我现在进行的就是机器学习中的“归纳”。

另:本人刚开始接触机器学习这一领域,欢迎交流沟通,表述如有不当之处,恳求指出。

 

*我的总结:

1.机器学习实现为一个学习器,学习器通过样例训练集的训练,学到假设空间里一个最优的算法(比如一个最优的分类器集合中的一个分类器)。其中,样例训练集可以理解为学习器要学习的知识,选出来的最优算法要再使用样例测试集进行测试(即现在的软件测试)。

2.学习器之所以能够学习成功,就是在一些特定的实例上,进行一些泛化假设,从而绕过了“没有免费的午餐”理论的限制。所以最好的学习器的表示应该是基于实例的方法。

 

一、一些介绍:

1.机器学习系统自动地从数据中学习程序。 并实现为一个学习器(见下面的定义)。

2.机器学习分类

        机器学习有许多不同的类型, 一个最常用的是分类,一个分类器(classifier)是一个系统,系统输入是一个包含若干相关或者离散的特征值(feature values)的向量,系统输出是一个离散的值,代表分类的类别(class).

3.学习器的定义

        一个学习器将一个训练集(training set)样例(x i,y i)作为输入,其中x i = (x i,1,...,x i,d)是观察到的输入,y i是相应的输出,学习器的输出是一个分类器。对学习器的检验就是判断它输出的分类器是否能够对将来的输入样例x t输出正确的y t。

4.如何选择一个机器学习算法

       现在有成千上万的机器学习算法,每年还有成百上千的新算法发表出来。避免迷失在这么多算法中的关键是,要认识到这些算法都是由三个部分组成的,分别是:

       a)表示(Representation) ,为学习器选择一种表示,就意味选择一个特定的分类器集合。学习器可能学出的分类器只能在这个集合中。这个集合被称为学习器的假设空间(hypothesis space)。如果某个分类器不在该空间中,它就不可能被该学习器学到。

       b)评价(Evaluation),我们需要一个评价函数(亦称为目标函数或打分函数)来判断分类器的优劣。机器学习算法内部使用的评价函数和我们希望分类器进行优化的外部评价函数有所不同。

       c)优化(Optimization),最后,我们需要一个搜索方法,能够在假设空间中找到评价函数得分最高的那个分类器。

5.泛化(generalization)很重要

      机器学习的基本目标是对训练集合中样例的泛化。这是因为,不管我们有多少训练数据, 在测试阶段(更不用说生产阶段)这些数据都不太可能会重复出现。

6.“没有免费的午餐”定理

     没有学习器能够比在所有可能的布尔函数中随机猜测的结果更优。这似乎是一个非常让人失望的消息。那我们还能指望能学到什么东西吗?幸运的是,在真实世界中,我们要学习的函数并非均匀地来自所有可能的函数!实际上,一些非常泛泛的假设——比如平滑(smoothness),相似的样例有相似的类别,有限依赖,或者有限复杂度——通常足够起很大作用,这也是机器学习能够如此成功的重要原因。                  

 

二、几个重要的问题:

1.过拟合(overfitting)有多张面孔

       一种理解:过拟合是将泛化误差(generalization error)分为偏置(bias)和方差(variance)。偏置度量了学习器倾向于一直学习相同错误的程度。方差则度量了学习器倾向于忽略真实信号、学习随机事物的程度。

      一种误解:认为它是由噪音造成的,但是即使没有噪音依然会发生严重的过拟合。

      解决方法:交叉验证 、对评价函数增加一个正则项(regularization term),等等。。。

      另一个问题:多重检验(multiple testing)问题与过拟合密切相关。 这个问题可以通过在显著性检验中将假设的个数考虑进去来解决,但这样也会导致欠拟合。更好的途径是控制错误接受的非零假设(non-null  hypotheses)的比率,该方法通常被称为错误发现率(false discovery rate)方法。  

 

2.维度灾难(curse of dimensionality)问题

       定义:许多在低维度工作良好的算法,当输入是高维度的时候就变得不可行了。

       解释:随着样例维度(即特征数目)的增加,正确泛化的难度将会以指数增加,原因就是同等规模的训练集只能覆盖越来越少的输入空间比例。

       解决方法:降低样例的维度。一种是学习器隐式的利用输入样例的有效的更低维的空间(如果输入样例有这个特性的话,即是“非均匀性的祝福”),另一种就是学习器可以显式的进行将维。

 

3.理论保证(theoretical guarantees)通常与实际情况不一样

      两种常见的理论保证:样例数目的边界保证(bound)、渐进(asymptotic,即是输入数据无穷多)保证。

      应用:机器学习中理论保证的主要作用并不是在实践中作为决策的标准,而是在算法设计时作为理解和驱动的来源。

 

4.特征工程(feature engineering)是关键

      地位:原始数据不能拿来直接学习,需要从中构建特征,这是机器学习的主要工作,这通常也是最有趣的地方。

      构建特征的方法:机器学习的一个终极目标就是将特征工程过程越来越多的自动化,但是这样容易导致出现上述的问题1,因此,仍需要人为地介入特征工程。

      

5.更多的数据和聪明的算法之间的关系

      当你构建的最好的学习器仍不能很好的工作的事后,机器学习研究者更关注设计更好的学习算法,但是作为一条经验,有大量数据的笨算法要胜过数据量较少的聪明算法。而后者又会遇到可扩展性的问题。

      这里面,大数据和聪明的算法之间存在一个悖论。即,聪明的算法没有学习更多的数据有效,另一方面,实际上不会有足够多的数据供学习(维度灾难)或者算法的复杂度问题,哪些聪明的算法(能够充分利用现有的数据的算法)又能够取得很好的效果。

6.建立模型集成(model ensembels)

      模型集成已经成为机器学习工具的重要组成部分。

7.简单并不意味着准确

      这部分暂时没有看懂,暂略。

8.可表示并不意味着可学习

      略

9.相关并不意味着因果

      因果是否存在是一个哲学问题,机器学习关注的是:根据相关性来预测我们行动的效果。