【Andrew Ng机器学习】无监督学习

课程:无监督学习

监督学习

《【Andrew Ng机器学习】无监督学习》

每个样本都被标记为良性或是恶性,对于监督学习中的每个样本我们已经知道什么是所谓的正确答案。

无监督学习

《【Andrew Ng机器学习】无监督学习》

  • 都有相同的标签,或是没有任何标签。
  • 我们得到一个数据集,但是我们不知道拿它来做什么,也不知道每个样本点是什么,我们只知道这里有一个数据集,你能在其中找到某种结构吗?

在无监督学习算法中,可能判定,该数据集中包含两个不同的簇(clusters)。

《【Andrew Ng机器学习】无监督学习》

这就是所谓的
聚类算法

聚类算法的应用:

谷歌新闻:将成千上万的新闻组合成一个个的专题(搜索成千上万的新闻,将其自动分簇,组成页面显示在一起)

其他的一些作用:

《【Andrew Ng机器学习】无监督学习》

以上都是聚类算法的例子,而聚类只是无监督学习的一种。

Cocktail party problem(鸡尾酒会问题)

一个宴会有,一屋子人,大家都在一起说话,每个人都在同时说话,你几乎很难听清楚你前面的人说的话。
假设鸡尾酒会上只有两个人,两个人同时说话。我们将两个麦克风放在房间里,两个麦克风与两个人的距离都不同,每个麦克风记录了来自两人声音的不同组合。

《【Andrew Ng机器学习】无监督学习》

  • 因为距离的不同,麦克风收到的音量是不同的,但是每个麦克风都记录了两个说话者重叠的声音。
  • 将这两个音频交给鸡尾酒会算法处理后,算法会分离出两个不同发声源发出的声音。(视频中还举了人声和背景声分离的例子)

这个处理过程似乎要用到很多代码,调用各种java,c++的库来进行音频处理,但是实际上要实现这种效果只需要一行代码就可以了。

《【Andrew Ng机器学习】无监督学习》 鸡尾酒会算法
《【Andrew Ng机器学习】无监督学习》

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

Octave实现了许多的函数,例如上面的SVD函数,已经内置在Octave中了,如果用C++或Java做这个将需要写很多代码,连接复杂的C++或java库。当然可以在C++,Java或Python中实现这个算法,只是会更加复杂。
Andrew Ng的建议是,使用Octave学习会更快,如果使用Octave作为学习工具和原型工具,它将会使你更快学会学习算法,建立原型。
在硅谷工作的人常常是用Octave建立学习算法原型只有算法原型能够工作之后,再将其迁移到C++、Java或者其他编译环境。

试题

《【Andrew Ng机器学习】无监督学习》

answer:BC

    原文作者:jenye_
    原文地址: https://www.jianshu.com/p/a5f1e0632d01
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞