在前一个小节中,简单地谈了谈什么是“M-P神经元模型”,顺便用生活中生动的小案例,把激活函数和卷积函数的概念撸了一遍。下笔之处,尽显“神经”。当然这里所谓的“神经”,是说我们把不同领域的知识,以天马行空地方式,揉和在一起,协同提升认知水平。其实,这不也正是深度学习的前沿方向之一——“迁移学习(Multi-Task and Transfer Learning)”要干的事情吗?
下面,继续“神经”下去,首先聊聊机器学习的三大分支,然后以“中庸之道”来看机器学习的发展方向。
在我们小时候,大概都学习过《三字经》,其中有句“性相近,习相远。”说的就是,“人们生下来的时候,性情都差不多,但由于后天的学习环境不一样,性情也就有了千差万别。”
其实,这句话用在机器学习领域,上面的论述也是大致适用的。机器学习的学习对象是数据,数据是否有标签,就是机器学习所处的“环境”,“环境”不一样,其表现出来的“性情”也有所不同,大致可分为三类:
(1)监督学习(Supervised Learning):用数据挖掘大家韩家炜(Jiawei Han)老师的观点来说,监督学习基本上就是“分类(classification)”的代名词。它从有标签的训练数据中学习,然后给定某个新数据,预测它的标签(given data, predict labels)。这里的标签(label),其实就是某个事物的分类。
图4-1 监督学习
比如说,小时候父母告诉我们某个动物是猫、是狗或是猪,然后我们的大脑里就会形成或猫或狗或猪的印象,然后面前来了一条“新”小狗,如果你能叫出来“这是一条小狗”,那么恭喜你,你的标签分类成功!但如果你说“这是一头小猪”。这时你的监护人就会纠正你的偏差,“乖,不对呦,这是一头小狗”,这样一来二去的训练,就不断更新你的大脑认知体系,聪明如你,下次再遇到这类新的“猫、狗、猪”等,你就会天才般的给出正确“预测”分类(如图1所示)。简单来说,监督学习的工作,就是通过有标签的数据训练,获得一个模型,然后通过构建的模型,给新数据添加上特定的标签。
事实上,整个机器学习的目标,都是使学习得到的模型,能很好地适用于“新样本”,而不是仅仅在训练样本上工作得很好。通过训练得到的模型,适用于新样本的能力,称之为“泛化(generalization)能力”。
(2)非监督学习(Unsupervised Learning):与监督学习相反的是,非监督学习所处的学习环境,都是非标签的数据。韩老师接着说,非监督学习,本质上,就是“聚类(cluster)”的近义词。
图4-2 非监督学习
简单来说,给定数据,从数据中学,能学到什么,就看数据本身具备什么特性了(given data, learn about that data)。我们常说的“物以类聚,人以群分”说得就是“非监督学习”。这里的“类”也好,“群”也罢,事先我们是不知道的。一旦我们归纳出“类”或“群”的特征,如果再要来一个新数据,我们就根据它距离哪个“类”或“群”较近,就“预测”它属于哪个“类”或“群”,从而完成新数据的“分类”或“分群”功能。
(3)半监督学习(Semi-supervised Learning):这类学习方式,既用到了标签数据,又用到了非标签数据。有句骂人的话,说某个人“有妈生,没妈教”,抛开这句话骂人的含义,其实它说的是“无监督学习”。但我们绝大多数人,不仅“有妈生,有妈教”,还“有小学教,有中学教,有大学教”,“有人教”,这就是说,有人告诉我们事物的对与错(即对事物打了标签),然后我们可据此改善自己的性情,慢慢把自己调教得更有“教养”,这自然就属于“监督学习”。但总有那么一天我们要长大。而长大的标志之一,就是自立。何谓“自立”?就是远离父母、走出校园后,没有人告诉你对与错,一切都要基于自己早期已获取的知识为基础,从社会中学习,扩大并更新自己的认知体系,然后遇到新事物时,我们能“泰然自若”处理,而非茫然“六神无主”。
从这个角度来看,现代人类成长学习的最佳方式,当属“半监督学习”!它既不是纯粹的“监督学习”(因为如果完全是这样,就会扼杀我们的创造力,我们的认知体系也就永远不可能超越我们的父辈和师辈)。但我们也不属于完全的“非监督学习”(因为如果完全这样,我们会如“无根之浮萍”,会花很多时间“重造轮子”。前人的思考,我们的阶梯,这话没毛病!)。
那么到底什么是“半监督学习”呢?下面我们给出它的形式化定义:
给定一个来自某未知分布的有标记示例集L={(x1, y1), (x2, y2), ..., (xl, yl)},其中xi是数据,yi是标签。对于一个未标记示例集U = {xl+1, x l+1, ... , xl+u},l<<u,于是,我们期望学得函数 f:X→Y 可以准确地对未标识的数据xi预测其标记yi。这里均为d维向量, yi∈Y为示例xi的标记。
图4-3 半监督学习
形式化的定义比较抽象,下面我们列举一个现实生活中的例子,来辅助说明这个概念。假设我们已经学习到:
(1) 马晓云同学(数据1)是个牛逼的人(标签:牛逼的人)
(2) 马晓腾同学(数据2)是个牛逼的人(标签:牛逼的人)
(3) 假设我们并不知道李晓宏同学(数据3)是谁,也不知道他牛逼不牛逼,但考虑他经常和二马同学共同出没于高规格大会,都经常会被达官贵人接见(也就是说他们虽独立,但同分布),我们很容易根据“物以类聚,人以群分”的思想,把李晓宏同学打上标签:他也是一个很牛逼的人!
这样一来,我们的已知领域(标签数据)就扩大了(由两个扩大到三个!),这也就完成了半监督学习。事实上,半监督学习就是以“已知之认知(标签化的分类信息)”,扩大“未知之领域(通过聚类思想将未知事物归类为已知事物)”。但这里隐含了一个基本假设——“聚类假设(cluster assumption)”,其核心要义就是:“相似的样本,拥有相似的输出”。
事实上,我们对半监督学习的现实需求,是非常强烈的。其原因很简单,就是因为人们能收集到的标签数据非常有限,而手工标记数据需要耗费大量的人力物力成本,但非标签数据却大量存在且触手可及,这个现象在互联网数据中更为凸显,因此,“半监督学习”就显得尤为重要性。
人类的知识,其实都是这样,以“半监督”的滚雪球的模式,越扩越大。“半监督学习”既用到了“监督学习”,也吸纳了“非监督学习”的优点,二者兼顾。
如此一来,“半监督学习”就有点类似于我们中华文化的“中庸之道”了。
的确如此吗?下面我们就聊聊机器学习的“中庸之道”。
说到“中庸之道”,很多人立马想到的就是“平庸之道”,把它的含义理解为“不偏不倚、不上不下、不左不右、不前不后”。其实,这是一个很大的误解!
据吴伯凡先生介绍[3],“中”最早其实是一个器具,它看上去像一个槌子,为了拿起方便,就用手柄穿越其中,即为“中”。
这个“中”可不得了,它非常重要,且只有少数人才能使用。那都是谁来用呢?答案就是古代的军事指挥官。在“铁马金戈风沙腾”的战场上,军旗飘飘,唯有一人高高站在战车上,手握其“中”,其他将士都视其“中”而进退有方(见图4-4第二行第一字),而手握其“中”的人,称之为“史”(见图4-4第一行第一字)。所以现在你知道了吧,其实“史”最早的本意,就是手握指挥大权的“大官”。
图4-4 中庸之道,蕴意为何?
再后来,“中”就有各种各样的引申含义。在中原地带的人,在他们的语言里头到现在还保留一些古代遗风,比如说河南人说“对”或者“是”的时候,他说的是“中(zhóng)”,当他们说“中(zhóng)”的时候,就表示事情是正确的,是可行的。
其实,“中”还有一个读音叫“中(zhòng)”,比如说成语里就有“正中下怀”、“百发百中”等,这时“中(zhòng)”的含义就是恰到好处,不偏离原则,坚守关键点。
下面再来说说“庸”。“庸”的上半部是“庚”,“庚”同音于“更”,即“变化”之意。而“庸”的下半部是“用”,“用”之本意为“变化中的不变”,即为“常”。在编程语言中,我们常说“常量”,说的就是不变化的量。所以,“庸”的最佳解释应该是“富有弹性的坚定”。
那么“中庸”放在一起是什么意思呢?那就是告诉我们“在变化中保持不变”。其中,所谓“变化”,就是我们所处的环境变化多端,所以我们也需要“随机应变,伺机而动”。而所谓“不变”就是要我们“守住底线,中心原则不变”。二者在一起,“中庸之道”就是要告诉我们要在灵活性(变)和原则性(不变)之间,保持一个最佳的平衡。
那说了半天,这“中庸之道”和机器学习有啥关系呢?其实这就是一个方法论问题。“监督学习”,就是告诉你“正误之道”,即有“不变”之原则。而“非监督学习”,就有点“随心所欲,变化多端”,不易收敛,很易“无根”,“不用临池更相笑,最无根蒂是浮萍。”
那“中庸之道”的机器学习应该是怎样的呢?自然就是“半监督学习”,做有弹性的坚定学习。这里的“坚定”自然就是“监督学习”,而“有弹性”自然就是“非监督学习”。
“有弹性”的变化,不是简单的加加减减,而是要求导数(变化),而且还可能是导数的导数(变化中的变化)。只有这样,我们才能达到学习最本质的需求——性能的提升。在机器学习中,我们不正是以提高性能为原则,用梯度(导数)递减的方式来完成的吗?
所以,你看看,我们老祖先的方法论,其实是很牛逼的。只不过是历时太久远了,其宝贵的内涵,被时间的尘埃蒙蔽了而已。
现在,我们经常提“文化自信”,哈哈,你看我这个例子算不算一个?
在本小节中,我们主要回顾了机器学习的三种主要形式:监督学习、非监督学习和半监督学习。它们之间核心区别在于是否(部分)使用了标签数据。
然后我们又从老祖先的“中庸之道”,谈了谈机器学习的发展方向,不管是从人类自己的学习方式,还是“中庸之道”核心本质,“半监督学习”一定是未来机器学习的大趋势。
我们这样说是有依据的,因为人工智能的最高标准,不正是要模拟学习人类的智能吗?而人类就是通过“半监督学习”获取最妙、最高的智能啊,所以你有什么理由不相信“机器学习(包括深度学习)”不是朝着这个方向发展的呢?
不管你信不信,反正我是信了!
好了,就此打住吧!在下一个小节中,我们真的该聊聊具体的神经网络学习算法了。我们知道,“人之初,性本善”,那么“神经”之初,又是什么呢,自然就是“感知机”了。在下一小节,我们就非常务实地聊聊“感知机”的学习算法(并附上源代码),它可是一切神经网络学习(包括深度学习)的基础,请你关注!
如果想加入我们“计算机视觉战队”,请扫二维码加入学习群,我们一起学习进步,探索领域中更深奥更有趣的知识!