有一种名叫决策树的机器学习方法,开奖,就和上面根据特征规律来识字的过程非常相似。当计算机只需要认识“一”、“二”、“三”这三个字时,计算机只要数一下要识别的汉字的笔画数量,就可以分辨出来了。当我们为待识别汉字集(训练数据集)增加“口”和“田”时,计算机之前的判定方法失败,就必须引入其他判定条件。由此一步步推进,计算机就能认识越来越多的字。 附图显示了计算机学习“由”、“甲”、“申”这三个新汉字前后,计算机内部的决策树的不同。这说明,当我们给计算机“看”了三个新汉字及其特征后,计算机就像小朋友那样,总结并记住了新的规律,“认识”了更多的汉字。这个过程,就是一种最基本的机器学习了。 当然,这种基于决策树的学习方法太简单了,很难扩展,也很难适应现实世界的不同情况。于是,科学家和工程师们陆续发明出了许许多多不同的机器学习方法。 例如,我们可以把汉字“由”、“甲”、“申”的特征,包括有没有出头,笔画间的位置关系等,映射到某个特定空间里的一个点(我知道,这里又出现数学术语了。不过这不重要,是否理解“映射”的真实含义,完全不影响后续阅读)。也就是说,训练数据集中,这三个字的大量不同写法,在计算机看来就变成了空间中的一大堆点。只要我们对每个字的特征提取得足够好,空间中的一大堆点就会大致分布在三个不同的范围里。 这时,让计算机观察这些点的规律,看能不能用一种简明的分割方法(比如在空间中画直线),把空间分割成几个相互独立的区域,尽量使得训练数据集中每个字对应的点都位于同一个区域内。如果这种分割是可行的,就说明计算机“学”到了这些字在空间中的分布规律,为这些字建立了模型。
接下来,看见一个新的汉字图像时,计算机就简单把图像换算成空间里的一个点,atv,然后判断这个点落在了哪个字的区域里,这下,不就能知道这个图像是什么字了吗? 很多人可能已经看出来了,使用画直线的方法来分割一个平面空间(如附图所示),很难适应几千个汉字以及总计至少数万种不同的写法。如果想把每个汉字的不同变形都对应为空间中的点,那就极难找到一种数学上比较直截了当的方法,来将每个汉字对应的点都分割包围在不同区域里。 很多年里,数学家和计算机科学家就是被类似的问题所困扰。人们不断改进机器学习方法。比如,用复杂的高阶函数来画出变化多端的曲线,以便将空间里相互交错的点分开来,或者,干脆想办法把二维空间变成三维空间、四维空间甚至几百维、几千维、几万维的高维空间。在深度学习实用化之前,人们发明了许多种传统的、非深度的机器学习方法。这些方法虽然在特定领域取得了一定成就,但这个世界实在是复杂多样、变化万千,无论人们为计算机选择了多么优雅的建模方法,都很难真正模拟世界万物的特征规律。这就像一个试图用有限几种颜色画出世界真实面貌的画家,即便画艺再高明,他也很难做到“写实”二字。 那么,如何大幅扩展计算机在描述世界规律时的基本手段呢?有没有可能为计算机设计一种灵活度极高的表达方式,然后让计算机在大规模的学习过程里不断尝试和寻找,自己去总结规律,直到最终找到符合真实世界特征的一种表示方法呢? 现在,我们终于要谈到深度学习了! 深度学习就是这样一种在表达能力上灵活多变,同时又允许计算机不断尝试,直到最终逼近目标的一种机器学习方法。从数学本质上说,深度学习与前面谈到的传统机器学习方法并没有实质性差别,都是希望在高维空间中,根据对象特征,将不同类别的对象区分开来。但深度学习的表达能力,与传统机器学习相比,却有着天壤之别。 简单地说,深度学习就是把计算机要学习的东西看成一大堆数据,把这些数据丢进一个复杂的、包含多个层级的数据处理网络(深度神经网络),然后检查经过这个网络处理得到的结果数据是不是符合要求——如果符合,就保留这个网络作为目标模型,如果不符合,就一次次地、锲而不舍地调整网络的参数设置,直到输出满足要求为止。 ·这么说还是太抽象,太难懂。我们换一种更直观的讲法。 (责任编辑:本港台直播) |