赞
踩
无监督学习是机器学习的一个分支,用于发现数据中的特定模式。无监督算法的数据都是没有标签的,也就是说,只有x_train,但是没有给y_train。在无监督的学习中,算法需要自行寻找数据中的结构。传统的无监督学习主要有3种类型:
(1)关联。发现数据中共同出现的概率。比如数据有A、B、C 3个特征,经过分析发现当A出现时,B一定出现,这样A和B之间存在共现的关系。
(2)降维。降低维度。同样地,假设数据有A、B、C 3个特征,通过降维,把3列特征降 维成两列特征 D 、E。在一定程度上,D和E与原来的A、B、C 3个特征看起来毫不相同,但是表达了同样的信息。PCA 主成分分析法就是一种降维的方法。
(3)聚类。将样本分类,将一群样本根据某个特征进行分类,同一个类别内的样本更加 类似。
聚类算法,也叫聚类分析,是一个把样本彼此聚成团儿的过程。例如,把相近的样本聚成一类,把不相近的样本分开到不同类。在一般的分类问题中,训练集都是labelled,就是训练集都是有标签的,每一个已 知的样本都会属于某一个类别,这是有监督学习。但是聚类分析是没有标签的,这是一种无监督学习。
对于有监督学习,可以通过匹配标签的真实值和预测值,来判断模型的好坏,衡量预测结果的好坏。 一般通过下面两个概念衡量没有标签的聚类分析。
(1)类内距离。一个类内的样本距离彼此多近?希望这个距离越小越好。
(2)类间距离。两个类之间的距离有多远?希望这 个距离越大越好。
K-means 算法就是首先初始化K个类中心点,然后每一个点被分给距离这个点最近的类 中。划分完成后,计算每一个类的平均中心,然后这个中心就是新的中心点,重复上述流程。
伪代码算法流程:
(1)选择K 个中心点,这些作为初始的类中心点;
(2)把每一个点x₁划分到距离它最近的类中心点所代表的那一类中,形成K 个类 C₁,C₂,…,C;
(3)重新计算类中心点;
(4)对于每一个点x, 找到最近的类中心点;
(5)重复步骤(3)和(4),直到类中心点不再改变。K 个初始类中心点c₁,C₂,…,ck 可以是随机确定的,也可以按照某种规则制定。
在进行K-means 的过程中,计算距离每一个点x; 最近的类中心点c。需要一个距离度量。对于数值型数据,可以使用欧氏距离,可以用这样的方法来表示类内距离。类间距离也就是计算所有的类中心两两之间的欧氏距离的平方和。K-means 算法是划分聚类,就是每一个样本只能属于一 类,不能出现一个样本属于多类的情况。
分级聚类可以分成两种:凝聚聚类和分裂聚类。两者的区分如图所示,从下往上是凝聚聚类,不同的样本逐 渐找到相近的样本,凝聚在一起;从上往下是分裂聚类,在一个类中,找到一种分割方法使得模型效果更好。
一个数据样本的密度就是以这个样本为圆心, 做一个半径为EPS 的圆形,有多少样本在这个圆内,样本的密度就是多少。图中处在圆心位置的样本密度为5。在计算样本密度的时候,是包含自己的, 也就是包含圆心位置的样本的。
计算每一个点的领域内的样本数量,A 的数量最多,有9 个。设置一个阈值MinPts, 图中MinPts =8,A 领域内的样本数量为9,超过了8,所以把样 本A称为Core point(核心点)。样本A内囊括了其 他8个非核心点,则在核心点领域内的非核心点称 为 Border point(边缘点)。现在整幅图中还有一个 C 点被抛弃在外,这种既不能被核心点领域包括,又 不能被边缘点领域包括的点称为Noise point。
·Core point。样本数量,也就是密度,大于一个MinPts 阈值的点;
·Border point。不是核心点,但是领域内包含一个核心点的点;
·Noise point。其他任何点。
DBSCAN 的算法流程如下:
(1)把每一个点分类成Core point 、Border point 和Noise point;
(2)忽视 Noise point;
(3)把两个之间距离小于 EPS 的 Core point连线;
(4)把每一个连接起来的 Core point归为一类;
(5)把每一个 Border point 归属于其Core point的那一类中。
生成对抗网络(GANs)的训练过程可以用画家和艺术鉴赏家之间的博弈来比喻:
画家(生成器):这位画家致力于创作出尽可能逼真的赝品画作,目的是让这些作品看起来与真正的大师作品无异。
艺术鉴赏家(判别器):艺术鉴赏家的任务是辨别出哪些画作是真迹,哪些是画家创作的赝品。
在这个比喻中,训练过程如下:
这个过程会不断重复,直到画家创作的赝品达到了极高的水准,艺术鉴赏家很难甚至无法区分真假。
由真实图片得到的分布,称为Pdata(x),x 就是图片。GAN 使用神经网络来生成一张图片,假如这个图片服从“最真实分布”,那肯定 和真实的照片一模一样,但是这是不可能的。所以希望生成图片服从Pdata(x),这样肯定 稍逊一筹。生成以假乱真的图片其实就是让生成的图片服从真实图片的分布。
损失函数的问题
在新一代的G 生成器刚开始的时候,D(G(z;)) 应该是接近0的,表示G生成器产生的图片依然可以被分类器识别成虚假图片;当G 生成器更新参数之后,理想状态下 D(G(z;)) 应该是越来越靠近1的,这样迭代器就难以识别出新的G 生成器产生的虚假图片了。对于一个神经网络来说,刚开始训练希望梯度下降的速度快一些,之后梯度下降的速度 越来越慢,这样就可以更好地逼近最优值。 当 G 生成器开始迭代的时候,D(x) 靠近0,那么log(1—D(x)) 的导数 就小,但是随着迭代次数的增加,理想状态下梯度应该逐渐减小,但是log(1-D(x))的导数越来越大。不太符合常理,所以就改用了具有完全相同性质的一log(D(x)) 作为G 生成器的损失函数。
条件生成对抗网络
GAN 是一个无监督学习,可以用来生成以假乱真的生成图片,而且不需要标签。如果我想生成特定数字怎么办?如果想知道生成数字的同时生成标签怎么办?所以就产生了条 件生成对抗网络。
自编码器还是神经网络范畴的东西,用神经网络来对输入数据进行压缩、降维。例如,假设 一个样本有100个特征,降维之后100个特征包含的信息其实等于降维之后的30个特征的信息量。AE 主要用于降维,AE 的改良版本包括两种:变分自编码器(Variational AE,VAE)和去噪自编码器(Denoising AE,DAE) 。VAE可以作为类似于GAN 的生成模型;DAE 用于特征提取(压缩、降维)。
去噪自编码器
DAE是AE的进化版本,以一定的概率去擦除原始输入,让擦去的值为0,这样意味着部分输入特征的丢失。将缺失的信息放入AE, 得到的最终结果与没有擦去完整的信息进 行对比,求取损失函数。与AE相比,DAE有更强的泛化能力和鲁棒性。鲁棒性(Robustness)通常指的是系统、模型或算法在面对错误、异常、不确定性或变化时仍能保持性能的能力。在计算机科学和人工智能中,鲁棒性通常指的是算法或软件系统在面对输入数据的噪声、异常值或不完整信息时,仍能提供正确或接近正确的输出。
一个是图片的高维空间,另一个是压缩之后低维向量空间。AE 通过压缩把一个高维空间的一个点(暗示原始图片),对应一个低维空间中的一个点(暗示压缩之后的向量),假设总共有100个原始图片,那么总共产生100对映射,100个高维空间的点分 别对应100个低维空间的点。AE的Encoder 过程就是高维空间的点映射到低维空间的过程,AE的Decoder 过程就是把低维空间的点映射回高维空间的过程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。