惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
S
SegmentFault 最新的问题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 聂微东
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
美团技术团队
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
博客园_首页
宝玉的分享
宝玉的分享
C
Check Point Blog
爱范儿
爱范儿
MyScale Blog
MyScale Blog
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
U
Unit 42
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
Docker
博客园 - Franky
博客园 - 【当耐特】
腾讯CDC
N
Netflix TechBlog - Medium
Jina AI
Jina AI
博客园 - 司徒正美
Last Week in AI
Last Week in AI
PCI Perspectives
PCI Perspectives
GbyAI
GbyAI
Security Archives - TechRepublic
Security Archives - TechRepublic
J
Java Code Geeks
Cloudbric
Cloudbric
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Y
Y Combinator Blog
F
Full Disclosure
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
L
LINUX DO - 最新话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
小众软件
小众软件
O
OpenAI News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
S
Security Affairs
Recent Announcements
Recent Announcements
Attack and Defense Labs
Attack and Defense Labs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Secure Thoughts

Surmon.me

一人有限集团 你就是不敢 创造力是温柔的谎言 人类正在退出人类 AI 代替不了这样的你 脉冲点火背后的架构设计 基于 Cloudflare 生态的 AI Agent 实现 NodePress 支持用户登录了 从统计学习到通用智能 2025 投资报告:走慢的路 无依之地 会杀人的菩萨 无我不是共识 文化的积重与偏见 当下即安 科学的尽头是态度 无我不是 Egoless 信仰不因恐惧而存在 世间无解的矛与盾 先别急着做些什么 佛不需要你的皈依 真理的幻觉 两扇大门 造心里的浮屠 自胜者强 逻辑与智慧 真的相 快乐的秘密 只需愿意 是名体验 最深沉的梦 森林里倒下的树 现象与相 庸人自扰 React 与 Vue 的完美融合 开心就好吗 与原生家庭和解 两支毒箭 怎么自净其意 一尘不染 一片白云 让风穿膛而过 喝下去,然后闭嘴 活在当下 当纠结发生时 唯「我」独尊 一场把戏(时间) 一场把戏(二元对立) “我” 和 “我” 谁是众生? 船里没有人 玫瑰不需要说话 没有人能渡任何人 你我为轮,使之不再 当我们在谈论独立时 自我约束就是最好的自我接纳 从善与恶的表象出发 佛法不是心理学 别人眼中的你并不是你 高高山上走 祝你心想事成 祝你的噩梦早日发生 道是无情却有情 裙子只为自己而穿 不要盲目地评估自己 先别急着 “爱自己” 让生命欣然舞动 你无法复制乔布斯 符号不是目的 如果一件事发生了 每当我起心动念时 爱出者爱返 理解不是尊重的基础 在没有解决自己的问题之前 “知足常乐” 不是比较 逻辑是无法成为信仰的 买不到的自由 成为诵经者 伤口听不懂大道理 是立场让你不自由 - Unfreedom 天雨大不润无根之草 做自己的神 当心诱惑本身 牛洞冥思录 修罗启示录 让大脑自举 我更喜欢叫它无梦寺 存在主义也许不是解药 出南洋记 2022 的所有答复 没意义的表达 思考的记录 故宫暂行之幻想 极端的比较 解构的终极 舍利子是如何炼成的 心要野 佛教的偏见 文艺青年 我是动物
机器学习之非监督学习
Surmon · 2017-04-27 · via Surmon.me

机器学习之非监督学习

监督式学习中已经给出了特征和标签,相当于告诉了机器正确答案,让机器去学习;而非监督式学习中,所有数据都是一样,机器不知道他们的特征,所以机器要根据算法进行聚类,找出相近的数据特征并进行分类。

在非监督学习中,我们用的数据会和监督学习里的有些不一样,在非监督学习中,没有属性或标签这一概念,也就是说所有的数据,都是一样的,没有区别,所以在非监督学习中,我们只有一个数据集,没人告诉我们该怎么做,我们也不知道,每个数据点究竟是什么意思,相反,它只告诉我们:现在有一个数据集,你能在其中找到某种结构吗?

监督学习:

非监督学习:

对于给定的数据集,非监督学习算法可能判定,该数据集包含两个不同的聚类,如下图所示:

我们使用标记标出了两个聚类,非监督学习算法,会把这些数据分成两个不同的聚类,这就是所谓的聚类算法,实际上它被用在许多地方。

我们来举一个聚类算法的例子,Google新闻的例子:你可以到 news.google.com 去看看,谷歌新闻每天都在干什么呢?他们每天会去收集成千上万的网络上的新闻,然后将他们分组,组成一个个新闻专题;谷歌新闻所做的就是,去搜索成千上万条新闻数据,然后自动的将他们根据一定特征聚合在一起,因此,有关同一主题的,新闻被显示在一起。

实际上,聚类算法和非监督学习算法,也可以被用于许多其他的问题,这里我们举个它在基因组学中的应用,下面是一个关于基因芯片的例子:

基本的思想是,给定一组不同的个体,对于每个个体,检测它们是否拥有某个特定的基因;也就是说:你要去分析有多少基因显现出来了;因此,这些颜色:红、绿、灰...等等,它们,展示了这些不同的个体是否拥有一个特定基因的不同程度;你能做的就是运行一个聚类算法,把不同的个体归入不同的类,或归为不同类型的人,这就是非监督学习,我们没有提前告知这个算法,哪些是第一类的人,哪些是第二类的人,哪些是第三类的人等等,相反我们只是告诉算法,你看,这儿有一堆数据,我不知道这个数据是什么东东,我不知道里面都有些什么类型,叫什么名字,我甚至不知道都有哪些类型,但是,请问你可以自动的找到这些数据中的类型吗?然后机器自动地按得到的类型把这些个体分类,虽然事先我并不知道哪些类型,因为对于这些数据样本来说,我们没有给算法一个正确答案,所以,这就是非监督学习。

非监督学习或聚类算法在其他领域也有着大量的应用,它被用于社交网络的分析,比如:如果可以得知,哪些朋友你用email联系的最多,或者知道你的Facebook好友,或者你Google+里的朋友,知道了这些之后,我们是否可以自动识别,哪些是很要好的朋友组,哪些仅仅是互相认识的朋友组。

还有在市场分割中的应用,许多公司拥有庞大的客户信息数据库,那么,给你一个客户数据集,你能否自动找出不同的市场分割,并自动将你的客户分到不同的细分市场中,从而有助于我在不同的细分市场中进行更有效的销售,这也是非监督学习,我们现在有这些客户数据,但我们预先并不知道有哪些细分市场,而且,对于我们数据集的某个客户,我们也不能预先知道,谁属于细分市场一,谁又属于细分市场二等等,但我们必须让这个算法自己去从数据中发现这一切。

最后,事实上非监督学习也被用于天文数据分析,通过这些聚类算法,我们发现了许多惊人的、有趣的以及实用的关于星系是如何诞生的理论,所有这些都是聚类算法的例子,而聚类只是非监督学习的一种。

现在我们了解另一种情景;想象一下:有一个宴会,有一屋子的人,大家都坐在一起,而且在同时说话,有许多声音混杂在一起,因为每个人都是在同一时间说话的,在这种情况下你很难听清楚你面前的人说的话;因此,我们简化一下场景,宴会上只有两个人A和B,两个人同时说话,我们准备好了两个麦克风,把它们放在房间里,然后,因为这两个麦克风距离这两个人的距离是不同的,每个麦克风都记录下了来自两个人的声音的不同组合,也许A的声音在第一个麦克风里的声音会响一点,也许B的声音在第二个麦克风里会比较响一些,因为2个麦克风的位置相对于2个说话者的位置是不同的,但每个麦克风都会录到来自两个说话者的重叠部分的声音,就像下图:

这里有来自研究员同时录下的两个说话者的声音,我们分别得到两个麦克风的录音:

好吧,这大概不是什么有趣的酒会……,这俩人各自从1数到10,但用的是两种不同语言...

录音内容均为:1/UNO、2/DOS、3/TRES、4/CUATRO、5/CINCO、6/SEIS、7/SIETE、8/ocho、9/NUEVE、10/Y,DIEZ,不同之处为:由于麦克风距离两者的距离不同,故两者在两段录音中的距离麦克风近者在声音中的分贝较高,但内容一致。

所以,我们能做的,就是把这两个录音输入一种非监督学习算法中,让这个算法,帮你找出其中蕴含的分类,然后这个算法就会去听这些录音,根据分析知道这听起来像两个音频录音被叠加在一起,所以我们才能听到音频分离的效果; 此外,这个算法还会分离出这两个被叠加到一起的音频源;事实上,这是我们的算法的第一个输出:1、2、3、4、5、6、7、8、9、10,所以我们在一个录音中分离出了英文声音,这是第二个输出:Uno、dos、tres、quatro、cinco、seis、siete、ocho、nueve、y,diez

听起来不错!再举一个例子,现在有另一个录音,也是在一个类似的场景下:刚才那个可怜的家伙从鸡尾酒会回家了...他现在独自一人坐在屋里,对着录音机自言自语,情况变成了这样:

同样,两个麦克风的录音内容均为:1、2、3、4、5、6、7、8、9、10,区别在于录音机一直在放一首Disco音乐,所以两个麦克风接收到的内容一致,但声音强度不同;当你把这两个麦克风录音,送给与刚刚相同的算法处理,它所做的,还是告诉你,这听起来有两种音频源,并且,算法说,这里是我找到的第一个音频源:1、2、3、4、5、6、7、8、9、10,恩!不是太完美,你会听到,算法提取到了人声,但还有一点音乐没有剔除掉;算法的第二个输出还好,在第二个输出中,它设法剔除掉了整个人声,只是清理了下音乐,剔除了从1到10的计数,所以你可以看到像这样的非监督学习算法。

也许你想问,要实现这样的算法,很复杂吧?看起来,为了构建这个应用程序做这个音频处理,似乎需要写好多代码啊,或者需要链接到一堆处理音频的Java库,貌似需要一个非常复杂的程序分离出音频等,实际上,要实现你刚刚听到的效果,只需要一行代码就可以了:

[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

当然,研究人员,花了很长时间才想出这行代码的,不是说这是一个简单的问题,但事实上,如果你使用正确的编程环境,许多学习算法是用很短的代码写出来的,所以这也是为什么我们要使用Octave的编程环境,Octave是一个免费的、开放源码的软件,使用OctaveMatlab这类的工具,许多学习算法都可以用几行代码就可以实现。

事实上,在硅谷,很多的机器学习算法,都是先用Octave,写一个程序原型,因为在Octave中实现这些,学习算法的速度快得让你无法想象,在这里,每一个函数,例如SVD,意思是奇异值分解,但这其实是解线性方程的一个惯例,它被内置在Octave软件中了,如果你试图在C++Java中做这个,将需要写N多代码,并且还要连接复杂的C++Java库,所以你可以在C++JavaPython中实现这个算法,只是会更加复杂而已。

最后,总结一下,我们谈到了非监督学习,它是一种学习机制,你给算法大量的数据,要求它找出数据中蕴含的类型结构,看下面几个例子:

  • 还记得垃圾邮件文件夹问题吧?如果你已经标记过数据,那么就有垃圾邮件和非垃圾邮件的区别,我们会将此视为一个监督学习问题
  • 新闻故事的例子,正是我们在本文中讲到的,谷歌新闻的例子,我们介绍了你可以如何使用聚类算法这些文章聚合在一起,所以这是非监督学习问题
  • 市场细分的例子,上面也说了,这也是一个非监督学习问题,因为我是要拿到数据,然后要求它自动发现细分市场

内容衍生自:

Coursera - Andrew Ng