当前位置:   article > 正文

深度学习8--无监督学习

深度学习8--无监督学习

1.什么是无监督学习?

        无监督学习是机器学习的一个分支,用于发现数据中的特定模式。无监督算法的数据都是没有标签的,也就是说,只有x_train,但是没有给y_train。在无监督的学习中,算法需要自行寻找数据中的结构。传统的无监督学习主要有3种类型

(1)关联。发现数据中共同出现的概率。比如数据有ABC 3个特征,经过分析发现A出现时,B一定出现,这样AB之间存在共现的关系。

(2)降维。降低维度。同样地,假设数据有A、B、C 3个特征,通过降维,把3列特征降 维成两列特征 D E。在一定程度上,DE与原来的ABC 3个特征看起来毫不相同,但是表达了同样的信息。PCA 主成分分析法就是一种降维的方法。

(3)聚类。将样本分类,将一群样本根据某个特征进行分类,同一个类别内的样本更加 类似。

2.聚类算法

        聚类算法,也叫聚类分析,是一个把样本彼此聚成团儿的过程。例如,把相近的样本聚成一类,把不相近的样本分开到不同类。在一般的分类问题中,训练集都是labelled,就是训练集都是有标签的,每一个已 知的样本都会属于某一个类别,这是有监督学习。但是聚类分析是没有标签的,这是一种无监督学习。

      对于有监督学习,可以通过匹配标签的真实值和预测值,来判断模型的好坏,衡量预测结果的好坏。 一般通过下面两个概念衡量没有标签的聚类分析。

(1)类内距离。一个类内的样本距离彼此多近?希望这个距离越小越好。

(2)类间距离。两个类之间的距离有多远?希望这 个距离越大越好。

2.1K-means 

        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 算法是划分聚类,就是每一个样本只能属于一 类,不能出现一个样本属于多类的情况。

2.2   

        分级聚类可以分成两种:凝聚聚类和分裂聚类。两者的区分如图所示,从下往上是凝聚聚类,不同的样本逐 渐找到相近的样本,凝聚在一起;从上往下是分裂聚类,在一个类中,找到一种分割方法使得模型效果更好。

 2.3具有噪声的基于密度的聚类方法

        一个数据样本的密度就是以这个样本为圆心, 做一个半径为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的那一类中。

注意:仅使用K 近邻算法去获取每一个点彼此之间的距离,但是和K近邻算法没什么太大的关系。

3.生成对抗网络

生成对抗网络(GANs)的训练过程可以用画家和艺术鉴赏家之间的博弈来比喻:

  1. 画家(生成器):这位画家致力于创作出尽可能逼真的赝品画作,目的是让这些作品看起来与真正的大师作品无异。

  2. 艺术鉴赏家(判别器):艺术鉴赏家的任务是辨别出哪些画作是真迹,哪些是画家创作的赝品。

在这个比喻中,训练过程如下:

  • 画家首先尝试创作一幅画作,希望它能够以假乱真。
  • 艺术鉴赏家仔细观察这些画作,并尝试判断它们是真迹还是赝品。
  • 根据艺术鉴赏家的判断,画家会得到反馈,了解自己的作品在哪些方面还不够完美,需要改进。
  • 画家根据反馈调整自己的绘画技巧,尝试创作出更加逼真的赝品。
  • 同时,艺术鉴赏家也在不断提高自己的鉴赏能力,以便更准确地识别赝品。

这个过程会不断重复,直到画家创作的赝品达到了极高的水准,艺术鉴赏家很难甚至无法区分真假。

        由真实图片得到的分布,称为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 是一个无监督学习,可以用来生成以假乱真的生成图片,而且不需要标签。如果我想生成特定数字怎么办?如果想知道生成数字的同时生成标签怎么办?所以就产生了条 件生成对抗网络。

4.自

        自编码器还是神经网络范畴的东西,用神经网络来对输入数据进行压缩、降维。例如,假设 一个样本有100个特征,降维之后100个特征包含的信息其实等于降维之后的30个特征的信息量。AE 主要用于降维,AE 的改良版本包括两种:变分自编码器(Variational AE,VAE)去噪自编码器(Denoising AE,DAE) VAE可以作为类似于GAN  的生成模型;DAE 用于特征提取(压缩、降维)。

去噪自编码器

        DAEAE的进化版本,以一定的概率去擦除原始输入,让擦去的值为0,这样意味着部分输入特征的丢失。将缺失的信息放入AE, 得到的最终结果与没有擦去完整的信息进 行对比,求取损失函数。与AE相比,DAE有更强的泛化能力和鲁棒性。鲁棒性(Robustness)通常指的是系统、模型或算法在面对错误、异常、不确定性或变化时仍能保持性能的能力。在计算机科学和人工智能中,鲁棒性通常指的是算法或软件系统在面对输入数据的噪声、异常值或不完整信息时,仍能提供正确或接近正确的输出。

        一个是图片的高维空间,另一个是压缩之后低维向量空间。AE 通过压缩把一个高维空间的一个点(暗示原始图片),对应一个低维空间中的一个点(暗示压缩之后的向量),假设总共有100个原始图片,那么总共产生100对映射,100个高维空间的点分 别对应100个低维空间的点。AEEncoder 过程就是高维空间的点映射到低维空间的过程,AEDecoder 过程就是把低维空间的点映射回高维空间的过程。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/951396
推荐阅读
相关标签
  

闽ICP备14008679号