Chinese, Computer Science, Technology
Machine Learning Chinese NLP :::: Unsupervised Learning
Unsupervised Learning
-
在这段视频中 我们要讲第二种主要的机器学习问题叫做无监督学习在上一节视频中 我们已经讲过了监督学习回想起上次的数据集每个样本都已经被标明为正样本或者负样本即良性或恶性肿瘤因此 对于监督学习中的每一个样本我们已经被清楚地告知了什么是所谓的正确答案即它们是良性还是恶性在无监督学习中我们用的数据会和监督学习里的看起来有些不一样在无监督学习中没有属性或标签这一概念也就是说所有的数据都是一样的 没有区别所以在无监督学习中 我们只有一个数据集没人告诉我们该怎么做我们也不知道每个数据点究竟是什么意思相反 它只告诉我们 现在有一个数据集你能在其中找到某种结构吗?对于给定的数据集无监督学习算法可能判定该数据集包含两个不同的聚类你看 这是第一个聚类然后这是另一个聚类你猜对了 无监督学习算法会把这些数据分成两个不同的聚类所以这就是所谓的聚类算法实际上它被用在许多地方我们来举一个聚类算法的栗子Google 新闻的例子如果你还没见过这个页面的话你可以到这个URLnews.google.com去看看谷歌新闻每天都在干什么呢?他们每天会去收集成千上万的网络上的新闻然后将他们分组 组成一个个新闻专题比如 让我们来看看这里这里的URL链接连接着不同的有关BP油井事故的报道所以 让我们点击这些URL中的一个恩 让我们点一个然后我们会来到这样一个网页这是一篇来自华尔街日报的有关……你懂的有关BP油井泄漏事故的报道标题为《BP杀死了Macondo》Macondo 是个地名就是那个漏油事故的地方如果你从这个组里点击一个不同的URL那么你可能会得到不同的新闻这里是一则CNN的新闻是一个有关BP石油泄漏的视频如果你再点击第三个链接又会出现不同的新闻这边是英国卫报的报道也是关于BP石油泄漏所以 谷歌新闻所做的就是去搜索成千上万条新闻然后自动的将他们聚合在一起因此 有关同一主题的新闻被显示在一起实际上聚类算法和无监督学习算法也可以被用于许多其他的问题这里我们举个它在基因组学中的应用下面是一个关于基因芯片的例子基本的思想是给定一组不同的个体对于每个个体检测它们是否拥有某个特定的基因也就是说,你要去分析有多少基因显现出来了因此 这些颜色 红 绿灰 等等 它们展示了这些不同的个体是否拥有一个特定基因的不同程度然后你能做的就是运行一个聚类算法把不同的个体归入不同的类或归为不同类型的人这就是无监督学习我们没有提前告知这个算法这些是第一类的人这些是第二类的人这些是第三类的人等等相反我们只是告诉算法 你看 这儿有一堆数据我不知道这个数据是什么东东我不知道里面都有些什么类型 叫什么名字我甚至不知道都有哪些类型但是请问你可以自动的找到这些数据中的类型吗?然后自动的按得到的类型把这些个体分类虽然事先我并不知道哪些类型因为对于这些数据样本来说我们没有给算法一个正确答案所以 这就是无监督学习无监督学习或聚类算法在其他领域也有着大量的应用它被用来组织大型的计算机集群我有一些朋友在管理大型数据中心 也就是大型计算机集群 并试图找出哪些机器趋向于协同工作如果你把这些机器放在一起你就可以让你的数据中心更高效地工作第二种应用是用于社交网络的分析所以 如果可以得知哪些朋友你用email联系的最多或者知道你的Facebook好友或者你Google+里的朋友知道了这些之后我们是否可以自动识别哪些是很要好的朋友组哪些仅仅是互相认识的朋友组还有在市场分割中的应用许多公司拥有庞大的客户信息数据库那么 给你一个客户数据集 你能否自动找出不同的市场分割并自动将你的客户分到不同的细分市场中从而有助于我在不同的细分市场中进行更有效的销售这也是无监督学习我们现在有这些客户数据但我们预先并不知道有哪些细分市场而且对于我们数据集的某个客户我们也不能预先知道谁属于细分市场一谁又属于细分市场二等等但我们必须让这个算法自己去从数据中发现这一切最后事实上无监督学习也被用于天文数据分析通过这些聚类算法 我们发现了许多惊人的、有趣的 以及实用的关于星系是如何诞生的理论所有这些都是聚类算法的例子而聚类只是无监督学习的一种现在让我来告诉你另一种我先来介绍一下鸡尾酒宴问题恩 我想你参加过鸡尾酒会的 是吧?嗯 想象一下有一个宴会 有一屋子的人大家都坐在一起而且在同时说话有许多声音混杂在一起因为每个人都是在同一时间说话的在这种情况下你很难听清楚你面前的人说的话因此 比如有这样一个场景宴会上只有两个人两个人同时说话恩 这是个很小的鸡尾酒宴会我们准备好了两个麦克风把它们放在房间里然后因为这两个麦克风距离这两个人的距离是不同的每个麦克风都记录下了来自两个人的声音的不同组合也许A的声音在第一个麦克风里的声音会响一点也许B的声音在第二个麦克风里会比较响一些因为2个麦克风的位置相对于2个说话者的位置是不同的但每个麦克风都会录到来自两个说话者的重叠部分的声音这里有一个来自一个研究员录下的两个说话者的声音让我先放给你听第一个这是第一个麦克风录到的录音:一 (UNO) 二 (DOS)三 (TRES) 四 (CUATRO) 五 (CINCO)六 (SEIS) 七 (SIETE)八 (ocho) 九 (NUEVE) 十 (Y DIEZ)好吧 这大概不是什么有趣的酒会…………在这个酒会上 有两个人各自从1数到10但用的是两种不同语言你刚才听到的是第一个麦克风的录音 这里是第二个的:一 (UNO) 二 (DOS) 三 (TRES)四 (CUATRO) 五 (CINCO) 六 (SEIS) 七 (SIETE)八 (ocho) 九 (NUEVE) 十 (Y DIEZ)所以 我们能做的就是把这两个录音输入一种无监督学习算法中称为“鸡尾酒会算法”让这个算法帮你找出其中蕴含的分类然后这个算法就会去听这些录音 并且你知道这听起来像两个音频录音被叠加在一起所以我们才能听到这样的效果此外 这个算法还会分离出这两个被叠加到一起的音频源事实上这是我们的鸡尾酒会算法的第一个输出一 二 三 四五 六 七 八 九 十所以我在一个录音中分离出了英文声音这是第二个输出Uno dos tres quatro cincoseis siete ocho nueve y diez听起来不错嘛再举一个例子 这是另一个录音也是在一个类似的场景下这是第一个麦克风的录音:一 二 三 四 五 六七 八 九 十OK 这个可怜的家伙从鸡尾酒会回家了他现在独自一人坐在屋里 对着录音机自言自语这是第二个麦克风的录音一 二 三 四 五 六 七 八 九 十当你把这两个麦克风录音送给与刚刚相同的算法处理它所做的还是告诉你 这听起来有两种音频源 并且算法说这里是我找到的第一个音频源一 二 三 四五 六 七 八 九 十恩 不是太完美提取到了人声但还有一点音乐没有剔除掉这是算法的第二个输出还好 在第二个输出中它设法剔除掉了整个人声只是清理了下音乐剔除了从一到十的计数所以 你可以看到像这样的无监督学习算法也许你想问 要实现这样的算法很复杂吧?看起来 为了构建这个应用程序做这个音频处理似乎需要写好多代码啊或者需要链接到一堆处理音频的Java库貌似需要一个非常复杂的程序分离出音频等实际上要实现你刚刚听到的效果只需要一行代码就可以了写在这里呢当然 研究人员花了很长时间才想出这行代码的 ^-^我不是说这是一个简单的问题但事实上 如果你使用正确的编程环境 许多学习算法是用很短的代码写出来的所以这也是为什么在这门课中我们要使用Octave的编程环境Octave是一个免费的开放源码的软件使用Octave或Matlab这类的工具许多学习算法都可以用几行代码就可以实现在后续课程中我会教你如何使用Octave你会学到如何在Octave中实现这些算法或者 如果你有Matlab 你可以用它事实上 在硅谷很多的机器学习算法我们都是先用Octave写一个程序原型因为在Octave中实现这些学习算法的速度快得让你无法想象在这里 每一个函数例如 SVD意思是奇异值分解但这其实是解线性方程的一个惯例它被内置在Octave软件中了如果你试图在C + +或Java中做这个将需要写N多代码并且还要连接复杂的C + +或Java库所以 你可以在C++或Java或Python中实现这个算法 只是会更加复杂而已在教授机器学习将近10年后我得出的一个经验就是如果你使用Octave的话会学的更快并且如果你用Octave作为你的学习工具和开发原型的工具你的学习和开发过程会变得更快而事实上在硅谷很多人会这样做他们会先用Octave来实现这样一个学习算法原型只有在确定这个算法可以工作后才开始迁移到C++ Java或其它编译环境事实证明 这样做实现的算法比你一开始就用C++实现的算法要快多了所以 我知道作为一个老师我不能老是念叨:“在这个问题上相信我“但对于那些从来没有用过这种类似Octave的编程环境的童鞋我还是要请你相信我这一次我认为你的时间 研发时间是你最宝贵的资源之一当见过很多的人这样做以后我觉得如果你也这样做作为一个机器学习的研究者和开发者你会更有效率如果你学会先用Octave开发原型而不是先用其他的编程语言来开发最后 总结一下这里有一个问题需要你来解答我们谈到了无监督学习它是一种学习机制你给算法大量的数据要求它找出数据中蕴含的类型结构以下的四个例子中哪一个您认为是无监督学习算法而不是监督学习问题对于每一个选项在左边的复选框选中你认为属于无监督学习的选项然后按一下右下角的按钮 提交你的答案所以 当视频暂停时请回答幻灯片上的这个问题恩 没忘记垃圾邮件文件夹问题吧?如果你已经标记过数据那么就有垃圾邮件和非垃圾邮件的区别 我们会将此视为一个监督学习问题新闻故事的例子正是我们在本课中讲到的谷歌新闻的例子我们介绍了你可以如何使用聚类算法这些文章聚合在一起所以这是无监督学习问题市场细分的例子我之前有说过这也是一个无监督学习问题因为我是要拿到数据 然后要求它自动发现细分市场最后一个例子 糖尿病这实际上就像我们上节课讲到的乳腺癌的例子只不过这里不是好的或坏的癌细胞良性或恶性肿瘤我们现在是有糖尿病或没有糖尿病 所以这是有监督的学习问题像处理那个乳腺癌的问题一样我们会把它作为一个有监督的学习问题来处理好了 关于无监督学习问题就讲这么多了下一节课中我们会涉及到更具体的学习算法并开始讨论这些算法是如何工作的以及我们如何来实现它们 【教育无边界字幕组】翻译:碳老师 校对:linuxfish 审核:所罗门捷列夫
Sorry, the comment form is closed at this time.