在监督学习中,我们的目标是学习从输入到输出的映射关系,其中输出的正确值已经由指导者提供。然而,非监督学习中却没有这样的指导者,只有输入数据。我们的目标是发现输入数据中的规律。输入空间存在着某种结构,使得特定的模式比其他模式更常出现,而我们希望知道哪些经常发生,哪些不经常发生。在统计学中,这称为密度估计(density estimation)。 密度估计的一种方法是聚类(clustering),其目标是发现输入数据的簇或分组。对于拥有老客户数据的公司,客户数据包括客户的个人统计信息,及其以前与公司的交易,公司也许想知道其客户的分布,搞清楚什么类型的客户会频繁出现。这种情况下,聚类模型会将属性相似的客户分派到相同的分组,为公司提供其客户的自然分组。一旦找出了这样的分组,公司就可能做出一些决策,比如对不同分组的客户提供特别的服务和产品等。这样的分组也可以用于识别"离群点",即那些不同于其他客户的客户,这可能意味着一块新的市场,公司可以进一步开发。 聚类的一个有趣的应用是图像压缩(image compression)。在这种情况下,输入实例是由RGB值表示的图像像素。聚类程序将颜色近似的像素点分到相同的分组,而这样的分组对应图像中频繁出现的颜色。如果图像中只有少数颜色,并且我们用一种颜色(例如颜色的平均值)对属于同一分组的像素进行编码,则图像被量化。假设像素是24位,表示1600万种颜色,但是如果只有64种主色调,那么对于每个像素,我们只需要6位而不是24位。例如,如果景象在图像的不同部分有多种不同的蓝色色调,并且我们采用它们的平均值来表示所有这些蓝色,那么我们就丢失了图像的细节,但是赢得了存储和传送图像的空间。理想状态下,人们希望通过分析重复的图像模式(如纹理、对象等)来识别更高层次的规律性。这为更高层次、更简单、更有用地描述景象提供了可能,并且实现了比像素级更好的压缩。如果我们扫描了文档页,我们得到的不是一些随机的有/无像素,而是一些字符的位图。这样的数据是有结构的,并且我们利用这些冗余信息找出数据的较短描述:"A"的16×16的位图占32字节,其ASCII码只占1个字节。 机器学习方法还应用于生物信息学(bioinformatics)。在我们的基因组中,DNA是"生命的蓝图",也是碱基即A、G、C和T的序列。RNA由DNA转录而来,蛋白质由RNA转换而来。蛋白质就是生命体和生命体的产物。正如DNA是碱基序列,蛋白质则是氨基酸(由碱基定义)序列。计算机科学在分子生物学的应用领域之一就是比对(alignment),即将一个序列与另一个序列匹配。这是一个困难的串匹配问题,因为序列可能相当长,有很多模板串要进行匹配,并且还可能会被删节、插入和置换。聚类用于学习结构域(motif),这是蛋白质结构中反复出现的氨基酸序列。结构域之所以令人感兴趣,是因为它们可能对应它们所表征的序列内部的结构或功能要素。比方说,如果氨基酸是字母,蛋白质是句子,那么结构域就像单词,即具有特别意义、频繁地出现在不同句子中的一串字母。