无监督学习最常出现的就是聚类(clustering)、异常检测场景
K均值聚类(K-means clustering)
- 决定类别数,在样本中随机选个样本作为聚类中心。
- 将每一个样本划分给特征空间(坐标系)里,中心最近的类。
- 对每个类的多个样本坐标求均值,生成新的聚类中心。
- 重复步骤2、3,直到不再有变化。
手肘法确定值
先用各种值分别进行聚类,找出值和样本到聚类中心平均距离都较小的情况。该曲线类似手肘,因此拐点也成为手肘点,该方法称为手肘法(elbow method)。
相册中的人脸自动聚类
- 使用人脸目标检测模型在图像中搜索人脸位置,如有则返回其边界框坐标。其本质为目标检测
- 使用特征点定位模型检测人脸五官等特征点坐标,并将人脸旋转矫正为正向
- 通过人脸特征比对模型将人脸图像转化成多维特征向量(此处同人脸识别的卷积神经网络的倒数第二层)
- 进行K均值聚类
层次聚类
- 将每个样本都当成单独的一类
- 重复合并最相似的两类,直到所有类别的间距都超过某一预设的截止距离
文本分类
特征提取:词袋模型(bag-of-words model)
将一篇文档视为装有多个词语的口袋,不考虑其出现顺序和语法结构。对照一个特定的词典,根据词典中每个词在文档中出现次数建立词计数向量,或归一化后获得词频率向量。
如王建国喜欢打篮球,也喜欢打羽毛球:
词典: | 王建国 | 喜欢 | 打 | 篮球 | 也 | 羽毛球 |
---|---|---|---|---|---|---|
次数: | 1 | 2 | 2 | 1 | 1 | 1 |
对词频率向量中每个元素分别乘以该次的逆文档频率,得到文档的特征,也称为词频率-逆文档频率(tf-idf)。
- 语料库
所有需要分类的文章的集合 - 中文分词
不同于英文,中文需要先通过算法将文本中的词语分割。如Python的jieba
分词库等。 - 停止词(stop word)
如“的”,“也”,“了”等对区分文本主体无帮助的虚词。
通常词典会包含停止词。 - 低频词
如随机的人名、不常用的专有名词等,为减小词典大小,降低计算量,且防止过拟合,通常词典不收录低频词。 - 逆文档频率(inverse document frequency)
用于修正词典中每个词对文章分类的影响程度。
或,其中为文档数,为其中出现过该词的文档数。
当一个词在语料库中每一篇文章中都出现时,其逆文档频率达到最小(如将腾讯新闻作为语料库,每篇文章都会出现“腾讯”,此时的“腾讯”对文章分类并无影响)。
实现分类
主题模型(topic model)
从已知主题的文章中,可以提取到各个主题的特征向量。通过对比新文章的特征向量和各主题的特征向量,可最终得到新文章的主题。
潜在语义分析(latent semantic analysis)
文本通常具有多个主题,不适用于K类均值聚类和层次聚类,可使用潜在语义分析(latent semantic analysis)计算某文章中各个主题的比重:
该方程组可能无解,可通过非负矩阵分解(non-negative matrix factorization)等方法求得近似解。
生成对抗网络(generative adversarial network,GAN)
通过生成网络(generative network)生成数据,判别网络(discriminative network)分辨数据真实性。两个网络之间交替固定和训练,最终达到一个稳定的状态:
- 固定生成网络,训练判别网络
将一些真实图片和生成网络生成的图片组成一个数据集,输入给判别网络进行训练(有监督学习)。 - 固定判别网络,训练生成网络
用生成网络不断生成图片提供给判别网络,根据判断网络的反馈调整生成策略,使真实性概率尽量提高。
条件生成对抗网络(conditional generative adversarial network)
生成对抗网络可以生成以假乱真的图片,但是生成内容是随机的。通过条件生成对抗网络可以生成符合条件的图片。
网友评论