非监督学习

这一节我们主要学习

  • 无监督学习
  • 编程语言的选择
  • 聚类

无监督学习(Unsupervised Learning)

无监督学习和监督学习的区别

根据训练数据是否拥有标记信息,学习任务可大致被分为两类:监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)

监督学习的代表是回归分类
无监督学习的代表是聚类

聚类(Clustering)

通过案例了解无监督学习

针对无标签的数据集,聚类算法可能会把这些数据分成两个不同的簇。

聚类应用:

  • 谷歌新闻分组
  • 基因学的理解应用

无监督学习或聚集有着大量的应用。

  1. 组织大型计算机集群。大数据中心有大型的计算机集群,他们想解决什么样的机器易于协同地工作,如果你能够让那些机器协同工作,你就能让你的据中心工作得更高效。
  2. 社交网络的分析。已知你朋友的信息,比如你经常发 email 的,或是你 Facebook 的朋友、谷歌+圈子的朋友,我们能否自动地给出朋友的分组呢?即每组里的人们彼此都熟识,认识组里的所有人?
  3. 市场分割。许多公司有大型的数据库,存储消费者信息。通过检索这些顾客数据集,可以自动地发现市场分类并自动地把顾客划分到不同的细分市场中,这样才能自动并更有效地销售或不同的细分市场一起进行销售。
  4. 天文数据分析。这些聚类算法给出了令人惊讶、有趣、有用的理论,解释了星系是如何诞生的。

编程语言的选择

Cocktail Party Problem

鸡尾酒宴问题(Cocktail Party Problem):是在计算机语音识别领域的一个问题,当前语音识别技术已经可以以较高精度识别一个人所讲的话,但是当说话的人数为两人或者多人时,语音识别率就会极大的降低。

假设一个场景:现在是在个有些小的鸡尾酒宴中,放两个麦克风在房间中,记录两个人同时说话。因为这些麦克风在两个地方,离说话人的距离不同每个麦克风记录下不同的声音,虽然是同样的两个说话人,得到的是两份不同的录音。

如何把录音中的两个声音区分开来,需要一个比较复杂的程序。但是,采用比较好的编程环境,我们可以用几行代码实现它。比如matlab或者octave。

它的学习模型的代码实现:

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

该课程我们会使用Python语言进行算法实现, 我们是直接提供Python运行环境支持的, 你可以在这里直接进行运行, 达到边学边做的效果