来源:人机与认知实验室
概要: 深度学习取得了巨大的成功,这是无容置疑的。对此,我们不必再多说什么。但是,其理论基础仍然有很大的空白。
深度学习取得了巨大的成功,这是无容置疑的。对此,我们不必再多说什么。但是,其理论基础仍然有很大的空白。例如:究竟深度学习在做什么?为什么可以学习很多东西?这些问题极为重要。但是直到现在,仍然众说纷纭,没有定论。
我们对待深度学习的基本思路是从梳理最基本的概念入手,一步一步推进,来逐步搞清楚里面的问题。
先从最简单也是最基本的说起,那就是IPU,即信息处理单元(Information Processing Unit)。其实这个概念真的是信息处理中最基本的。一个信息进来,即是一个N维的布尔向量进来,经过处理,一个信息出去,即一个M维的布尔向量出去,这就形成了一个IPU。也就是说,我们有了一个从N维布尔空间到M维布尔空间的映射(函数,变换,或者其他术语)。可以很容易想到,IPU是很宽泛的,有太多的东西都是IPU。如通常的CPU就是一个IPU,GPU也是,一个数学函数也是一个IPU,一个程序也是,等等。当然,我们最关心的是机器学习。一个机器学习的模型,如果我们停止它的学习,它也是一个IPU。
仅仅是IPU,就没有什么重要性。机器学习的模型,最重要的特征是可以学习。讲得更精确一些,就是可以在输入数据的驱动下,改变自己处理信息的能力。因此我们定义这样一个概念:即在输入数据的驱动下,可以改变自己处理信息能力的IPU,我们称为学习机。而这个学习过程,就是机械式学习。之所以强调机械式学习,是想把人为因素排除,使得学习仅是通过输入数据,而没有人工干预。在排除了各种人工干预的因素后,我们可以仔细考虑各种情况,进而梳理清楚这里面的问题。
这样,我们就进一步有了学习机的概念:学习机是一个IPU,但是,这个IPU可以在其输入数据的驱动下而改变自己处理信息的能力。很清楚,任何机器学习模型,如果排除人工干预,就是一个学习机(深度学习模型也是如此,概率学习模型也是如此)。这当然是我们做这些梳理的目的。
让我们从学习机倒回去看看IPU。前面说了,IPU就是一个处理信息的东西。我们问,这个东西里面有什么?其实就是有一个处理信息的机制。我们这里抽象地看这个处理信息的机制,我们把它称为Processing,中文可以叫做处理。我们可以不用管这个处理具体是怎么实现的,我们可以仅定义一个处理就是能够处理信息,一个N维的布尔向量进来,经过处理,一个M维的布尔向量出去。
一个最基本问题来了:一个N-M的IPU有多少可能的处理呢?这很容易回答,有2的(M乘2的N次方)次方。这是一个极端惊人的数目。如果仅看文字没有感觉的话,可以试试M=1,N=10,在代入之后,可以看到这个数远大于2的1000次方,或者10的300次方。这还仅是N=10的情况!如果N=100?N=1000?要知道,对于信息处理来说,N=1000都非常小的,N可能很大。那样的话,IPU的处理的数目就非常非常巨大了。