我在念高中期间,做了不少题目的。会通过刷题目,总结一类题目的解法,以后遇到这类题目,就用这个“套路”去解决。这其实就说明了一种学习方式,从特殊到抽象一般规律,再用一般规律去解决特殊问题。这种从一般到特殊的过程,被称为“泛化”,而从一般到特殊的过程,被称为“演绎”。
我们可以通过这个例子来理解机器学习,在做的事情。机器学习,顾名思义。也就是让机器去学习。这其实是一个研究“学习”的过程。通过,让机器从一群数据中摸索,得出一个模型,当新的样本出现的时候,用这个模型,来解决问题。
对于人来说,我们可以从数据中得到一些规律,进而抽象出一些概念,发展出一门学科。这被称为“概念形成”,“概念学习”。但是,当数据的特征,属性太多的时候,人们往往很难得出概念,或者说概念无法被人类理解。举一个例子,我们可以很容易理解3维、4维空间的事物,在脑海中,可以很容易形成这些画面。但是随着维度的增加,我们就很难从脑海中想象了。
这里举一些例子,来理解接下来的概念。
首先,我们来问一个问题,“什么样的蘑菇是有毒的?”你可能会回答,“颜色太鲜艳的是有毒的”。很好,你提到了蘑菇的颜色。这个是蘑菇的一个特征(Feature),当然还有很多很多。味道,气味,触摸感等等。随着你的参考特征的增加,这个问题的研究维度就在不断的增加。我们把这些特征张成的空间称为“属性空间”或者“样本空间”,空间的维度与你研究这个问题选取的特征数有关。就如同,你在做平面几何的时候,参考的是x 和 y 两个坐标轴,那么x,y张成的空间是2维的,当你研究立体几何的时候,增加了z轴这个参考,4维的话,你可以加上时间轴。5维的话,根据你研究的问题,选取对应的特征。是有些抽象,可以停一下,再读下去。
好,我们继续。我们说过,学习的过程往往要从很多案例中学习,这一个个案例,被称为“样本”。假设我们有足够的案例,是否可以继续来研究“什么样的蘑菇是有毒的”这个问题呢?或许还不行,最好我们还能知道,每个案例的结果,也就是每个样本我都知道,哪些是有毒的,哪些是没有毒的。也就是样本的“标签”(Target)。而这些有标记信息的示例张成的空间被称为“标记空间”或者“输出空间”。我们把样本作为行,特征作为列,把这些例子写在一张表上。看看我们能不能从这张表中得出规律。不知道,看到这里你有没有注意到,这张表是不是和你学的矩阵很类似。其实潜移默化中,我们已经把问题转化成,在一个空间里寻找最优解的问题了。
“矩阵不仅仅是数字排列而成的表而已。比如M*N的矩阵A,它表示了从n维空间到m维空间的“映射”。具体来讲就是把n维空间中的点x(n维列向量)变换到m维空间的点(m维列向量)Ax的映射”。
上面这一段是节选自《程序员的数学》这一册书的第三本《线性代数》里的综述。我很建议大家读读这本书,对大家理解线性代数,有很大的帮助。矩阵的运算,可以理解为空间的变换。
回到我们的蘑菇,“什么样的蘑菇有毒?”实际上就是把众多的案例分类成“有毒”、“没毒”。这种问题被称为“分类”问题。而这个例子,只分成两类,那么就是“二分类”问题。
想象一下,这个问题就可以转化成,例子就是散落在一个高维空间的一个个点,你要用一个线或者超平面,去把这些点优雅地分开。
当然这个例子只是一个分类问题,因为我们预测的值是离散的,比如明天是阴天还是晴天。但是,当研究问题变成明天会是多少度。预测的值变成连续的,定量的,那么这就是一个回归问题。
当然这些问题都是,你已经知道了案例的结果而定的。如果说,你不知道“标签”,也就是Target时,怎么办?事实上,现实生活中,这样的例子挺多的。你事先不知道结果。这些数据,是否能够拿来学习呢?答案是可以的,我们可以分析,这些案例之间的特征相似度,把他们分成一个个组,或者叫做“簇类”。“物以类聚,人与群分”。这就是一个聚类的过程。
前者能够,知道标签的学习,被称为“监督学习”,没有标签的学习,被称为“非监督学习”。
下一次,我们会聊聊机器学习的五大学派的故事。今天就先到这里吧。有兴趣的小伙伴还请多多捧场。感激不尽~
松爱家的小秦
参考阅读:
什么是演绎和归纳?
https://zh.wikipedia.org/wiki/%E5%BD%92%E7%BA%B3%E6%8E%A8%E7%90%86
《程序员的数学》
https://book.douban.com/subject/19949020/
《机器学习》
https://book.douban.com/subject/26708119/