《白话深度学习与TensorFlow》——1.1 聚类-阿里云开发者社区

开发者社区> 华章出版社> 正文

《白话深度学习与TensorFlow》——1.1 聚类

简介: 本节书摘来自华章计算机《白话深度学习与TensorFlow》一书中的第1章,第1.1节,作者:高扬,卫峥著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.1 聚类

聚类(clustering)是一种典型的“无监督学习”,是把物理对象或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程。
聚类这种行为我们不要觉得很神秘,也不要觉得这个东西是机器学习所独有的,恰恰相反,聚类的行为本源还是人自身。我们学习的所有的数据挖掘或者机器学习的算法或者思想的来源都是人类自己的思考方式,只不过我们把它教给机器代劳,让机器成为我们肢体和能力的延伸,而不是让它们替我们做创造和思考。
聚类是一种什么现象呢?我们人类在认识客观世界的过程中其实一直遇到容量性的问题,我们遇到的每一棵树、每一朵花、每一只昆虫、每一头动物、每一个人、每一栋建筑……每个个体之间其实都不同,有的差距还相当大。那么我们人在认知和记忆这些客观事物的过程中就会异常痛苦,因为量实在是大到无法承受的地步。
因此人类才会在“自底向上”的认识世界的过程中“偷懒”性地选择了归纳归类的方式,注意“偷懒”的这种方式是人类与生俱来的方法。
小时候,我们被父母用看图说话的方式来教咿呀学语就有过类似的体会了,图片上画了一只猴子,于是我们就认识了,这是一只猴子;图片上画了一辆汽车,于是我们就了解了,这是一辆汽车……当我们上街或者去动物园的时候再看,猴子也不是画上的猴子,而且众多猴子之间也长得各式各样,每个都不同,我们会把它们当成一个一个的新事物去认识吗?我们看汽车也同样,大小、颜色、样式,甚至喇叭的声音也是形形色色、五花八门,它们在我们眼里是一个个新的事物吗?不,它们都还是汽车。这些事物之间确实有所不同,但是它们给我们的认知带来了很大的困扰吗?并没有。我们无论如何也不会把猴子和汽车当成一类事物去认知的,猴子彼此之间是不同,但是体格、毛发、行为举止,种种形态让我们认为这些不同种类的猴子都还是猴子一个大类的动物,别说是和汽车混为一谈,就是跟狗、马、熊这些哺乳动物也能轻易地分开。
人类天生具备这种归纳和总结的能力,能够把认知的相似事物放到一起作为一类事物,它们之间可以有彼此的不同,但是有一个我们心里的“限度”,只要在这个限度内,特征稍有区别并无大碍,它们仍然还是这一类事物。
在这一类事物的内部,同样有这种现象,一部分个体之间比较相近,而另一部分个体之间比较相近,我们人还能够明显认知到差别,那么大类别又可以细分为小类别进行认知。比如汽车直观从样子上可以分成小轿车、卡车、面包车等种类,虫子们也被人轻易地从外形上区别为飞虫、爬虫、毛毛虫……
在没有人特意教给我们不同小种群的称谓与特性之前,我们自然具备的这种凭借主观认知的能力——特征形态的相同或近似的划在一个概念下,特征形态不同的划在不同概念下,这本身就是“聚类”的思维方式。
比较常用的聚类算法有K-Means、DBSCAN等几种,基本思路都是利用每个向量之间的“距离”——空间中的欧氏距离或者曼哈顿距离,从远近判断是否从属于同一类别。假如有三个一维样本:一个180、一个179、一个150,如果这三个向量要分成两类的话,应该是180和179这两个分在一个类别,150是另一个类别。因为180和179的距离为1,而150距离180与179分别为30和29个单位——非常远,就是从肉眼感官上来看也是这样。用机器来做学习的话,它也能够通过算法自动去感知到这些向量之间的距离,然后将那些彼此之间靠得近的分在一起,以区别于其他类簇。
image

在用机器做聚类学习的时候,我们每种算法都对应有相应的计算原则,可以把输入的各种看上去彼此“相近”的向量分在一个群组中。然后下一步,人们通常更有针对性地去研究每一组聚在一起的对象所拥有的共性以及那些远离各个群组的孤立点——这种孤立点研究在刑侦、特殊疾病排查等方面都有应用。
在这个过程中,从获得到具体的样本向量,到得出聚类结果,人们是不用进行干预的,这就是“非监督”一词的由来。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接