无监督学习感觉就像让机器自学一样
上一篇讲了监督学习,现在我们将介绍第二种主要的机器学习,叫做无监督学习(Unsupervised Learning)。
先来回顾一下监督学习中的每一个样本,我们清楚知道每个样本的正确的答案,比如肿瘤是良性还是恶性。
但无监督学习中,我们只有一个数据集,我们不知道每个数据表示什么意思?数据和数据之间是什么关系?
image
我们举一个谷歌新闻的栗子。
谷歌新闻📰每天会去收集成千上万的新闻,然后把同类型的新闻聚集在一起,做成一个专题。
显然,如果手动来分类这些新闻,那将会是非常浩大的工程。
image
这时候就可以用到无监督学习,它会自动把同一个新闻事件都聚到一起,做成一个专题。
这种能够能判断出数据有两个不同的聚集簇,专业术语称为「聚类算法」。
聚类只是无监督学习的一种,下面我来介绍另一种,经典的鸡尾酒会问题。
这是语音识别领域的一个问题,现在语音识别已经非常精确了,但是当说话的人数为多人时,识别率就大幅下降。
想象一下,酒会上,同时有很多人在聊天,他们的声音彼此重叠。
我们在房间放了两个麦克风🎤,由于每个麦克风离说话的人的距离不一样,所以记录了不同的声音。
image
现在我们要用算法处理这两个音频,分离出两个人说话的内容。
事实上,研究人员花费大量时间实现这一算法:
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
这一行代码是用 Octave 实现的。
相比其他语言,使用 Octave 作为编程环境,对实现算法和模型构建会高效很多。
写于 2018.12.1