五分钟搞懂深度学习技术,如何让机器学会像人一样看事物
基于深度学习的图像识别思想,源于对人视觉系统的认知机理。这得益于美国神经生物学家David Hubel和orstenWiese(1981年诺贝尔医学获得者)的发现:人类负责视觉系统的信息处理的可视皮层是分级的。
1958年,他们在约翰·霍普金斯大学研究瞳孔区域与大脑皮层神经元的对应关系,目的是证明他们的一个猜测:位于后脑皮层的不同视觉神经元,与瞳孔所受刺激之间,存在某种对应关系,一旦瞳孔受到某一种刺激,后脑皮层的某一部分神经元就会活跃。
他们在猫的后脑头骨上,开了一个3 毫米的小洞,向洞里插入电极,测量神经元的活跃程度。并在小猫的眼前,展现各种形状、各种亮度的物体。在展现每一件物体时,还改变物体放置的位置和角度。经历了很多天反复枯燥的试验, David Hubel 和Torsten Wiesel 发现了一种被称为“方向选择性细胞(Orientation Selective Cell)”的神经元细胞。当瞳孔发现了眼前物体的边缘,而且这个边缘指向某个方向时,这种神经元细胞就会活跃。
这个发现激发了人们对于神经系统的进一步思考:神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。从原始信号,做低级抽象,逐渐向高级抽象迭代。而人类的逻辑思维,经常使用高度抽象的概念。
例如,从原始信号摄入开始(瞳孔摄入像素),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。这个生理学的发现,促成了计算机人工智能,在四十年后的突破性发展。
总的来说,人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等。也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。而抽象层面越高,存在的可能的猜测就越少,就越利于分类。
基于深度学习的神经网络系统的图像识别,便利用了人类视觉系统的机理。即通过图像的特征与分级去识别图像。
特征是机器学习系统的原材料。
总所周知,计算机储存的图像是像素级别的,而就一个图片来说,这些像素级的价值根本没有意义。因此神经网络的图像识别系统,存储的不是图像,而是图像的特征。
例如下面的摩托车,从像素级别,根本得不到任何信息,其无法进行摩托车和非摩托车的区分。而如果是一个具有结构性的特征的话,比如是否具有车把手、是否具有车轮,就很容易把摩托车和非摩托车区分,学习算法才能发挥作用。
既然像素级的特征表示方法没有作用,那怎样的表示才有用呢?
1995 年前后,Bruno Olshausen和 David Field试图同时用生理学和计算机的手段研究视觉问题。他们对很多张黑白的风景照片进行研究分析,结果他们发现了一个非常有趣的现象,照片上不同物体的边缘线,这些线段形状相似,区别在于方向。也就是说,复杂图形,往往由一些基本结构组成。这基本上都是这与 David Hubel 和Torsten Wiesel 的生理发现,不谋而合!
比如下图:一个图可以通过用64种正交的edges(可以理解成正交的基本结构)来线性表示。比如样例的x可以用1-64个边缘中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为0。
另一个关键词为分级。
也就是结构性的特征表示,小块的图形可以由基本边缘构成,更结构化,更复杂的,具有概念性的图形如何表示呢?
这就需要更高层次的特征表示,比如V2,V4。因此V1看像素级是像素级。V2看V1是像素级,这个是层次递进的,高层表达由底层表达的组合而成。专业点说就是基basis。V1取提出的basis是边缘,然后V2层是V1层这些basis的组合,这时候V2区得到的又是高一层的basis。即上一层的basis组合的结果,上上层又是上一层的组合basis……(所以Deep learning又被称为Unsupervised Feature Learning)
直观上来说,就是找到图像中具有意义的小模块,然后再对其进行分类,得到上一层的特征,最终递归到向上的学习特征中。
如下图所示,在神经网络的训练系统中,得到的基本边缘是非常相似的。递归到上一级的模型中便会区别出具体的特征,进一步递归便会区别出整个模型的特征,进而判断图像中出现的事物。