《白话深度学习与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

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

相关文章
|
11月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
929 55
|
8月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
472 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
9月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
903 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
11月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
549 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
9月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
|
12月前
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
985 5
|
12月前
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
526 3
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
486 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
434 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
10月前
|
机器学习/深度学习 运维 安全
深度学习在安全事件检测中的应用:守护数字世界的利器
深度学习在安全事件检测中的应用:守护数字世界的利器
403 22

热门文章

最新文章