机器如何学习
本文致力于简明易懂地解释:人工智能-深度学习中,电脑程序究竟是如何识别一个事物
并且承诺在本文中绝不会出现任何代码和晦涩的术语
样本的概念
我相信很多人买西瓜的时候都会拍拍西瓜来判断西瓜质量(或仅仅表示尊重
其中的原理是西瓜成熟度会影响瓜瓤密度,进而影响拍西瓜时发出的声音频率。
OK,这很科学,但是知不知道这个原理并不影响不懂物理的古代瓜农总结出这个经验:
你拍一个西瓜,声音很清脆,切开一看是个生瓜蛋子
你又拍了九十九个西瓜,50个声音很清脆,49个声音很闷,声音脆的全是生瓜蛋子,声音闷的全是好瓜
那你就是傻子,你也应该知道不能再买声音清脆的西瓜了。
当你再去买第101个西瓜,你选了个拍起来声音沉闷的瓜,不用再问瓜老板这瓜保熟不,还要再一刀劈开才能判断了。
就这样,你就建立起了:声音频率—西瓜成熟程度的相关模型了:
其中,前面的100个被你又拍又劈的瓜,就是你建立这个模型需要用的样本,第101至∞个瓜,就是你应用这套模型的应用集。
所谓机器学习,学习的就是这些被定义好标签(西瓜成熟度)和特征(声音)的样本,通过样本构建模型,学习到标签和特征间的关系,然后应用到那些标签未知,特征可测的事物上。
在这个学习模式中,机器只关注特征和标签的相关性,而不在乎它们间的逻辑关系,是个十足的经验主义者,它能够学习到公鸡打鸣和日出时间有着强烈的相关性,但永远无法知道是公鸡唤醒了太阳,还是将升的太阳在催促公鸡鸣叫。
多特征数据
在判断西瓜成熟与否的事情上,我们只用了西瓜的一种特征,即声音的频率。但很多时候单一的特征并不足以让人做判断,比如判断鸢尾花的种类。
在下图中,我们可以看到,红蓝绿代表三种不同种类鸢尾花,横轴和纵轴代表花的两种不同特征,只通过横轴特征进行或只通过纵轴特征,我们都无法准确地区分三个品种,但把这两种特征结合起来,画个散点图,我们就能很轻易地判断具有某某特征的花,属于哪个品种,而这个承载了特征散点图的画布就是常说的特征空间。
在这张图上,你可以发现作者是在把样本画成散点图后,根据分布情况把画布切割成三块,之后遇到一个种类未知的鸢尾花,只需把它的特征画在这个画布上,看它落在哪个区域就可以判断其种类。
当然,更常用的方法是找到一个特征中心,比如蓝色区域的几何中心、蓝色散点取平均得到的一个平均中心点,然后种类未知的鸢尾花在特征空间上映射和哪个标签(花的品种)的特征中心靠得更近,就越可能属于哪个标签。
“特征"含义的扩大
特征可以不断地往上加,二维特征空间解决不了的问题,可能到了三维特征空间就可以解决,三维、四维……虽然人脑已经想象不出这个空间的样貌,但是计算机仍然可以计算。
随着特征不断地增加,“特征"一词的概念就在逐渐模糊,愈发趋近样本本身。
譬如说,音轨,它具有什么特征呢?最大最小振幅、平均频率……把这些从音频中提取出来的特征去拿去做机器学习当然OK,但是我直接把音频送去学习可不可以?
再譬如说,照片,照片本身是由像素点组成的,不是吗?我们是不是可以把一张照片的第一个像素点的值作为它的第一个特征,把第二个像素点的值作为第二个特征?
其实如果机器的计算能力足够强,好像也可以。(当然,一般这么搞计算量会特别大,程序容易崩溃)
后记
第一次接触深度学习项目是我毕设的时候,当时想搞点非传统机械的活,选了个深度学习的项目。
那时我发现一件很奇怪的事情,就是网上有非常多的聚类、深度学习的教程,但是点开一看大多是一段接着一段的代码,很少遇到有人去讲述这些简单,但基本的原理。
在毕设刚开始时,我非常痛苦,因为老师基本没有讲解过课题技术路线,原理,只是让我去学一下小波包分析、特征距离….打开一个又一个网页,从一个关键词跳到另一个关键词,我了解了一个又一个看上去很高大上的东西,但却看不清楚它到底对我有何作用。
后来,当我已经能熟练的使用这些函数,输入什么输出什么我都非常了解,但这些对我来说就像种黑盒,反正代码能跑通就行。
我花了很长时间,才搞明白到底什么是特征中心、为什么图像会被叫做特征?这些今天一两分钟就能解释的事。
我希望能试着不用代码,不用任何高深艰涩的术语,很基本,很白痴地向别人讲述一下我做的东西是什么。
我觉得能跟一个完全不懂技术的人说清楚你在做什么,这样更酷一点,虽然这可能会丢失很多细节,而本能地,我恨不得告诉别人我在这细节上有多少奇思妙想,又有多少的难关被我攻克了,但有时候讲述就是一种克制。
本文内容基于个人短暂的项目实践,不保证内容的准确性
© 许安平SpermWhale 2021/12/13