精华内容
下载资源
问答
  • 1. 我们将BERT的结果作为编码器呈现在MLTC数据集的序列序列框架中,具有或不具有类上的给定层次树结构。 2. 介绍并实验验证了一种新的MLTC混合模型。 3.我们微调vanilla BERT模型来执行多标签文本分类。据我们所...

    BERT FOR SEQUENCE-TO-SEQUENCE MULTI-LABEL TEXT CLASSIFICATION

    引言

    我们的主要贡献如下:

    1. 我们将BERT的结果作为编码器呈现在MLTC数据集的序列到序列框架中,具有或不具有类上的给定层次树结构。

    2. 介绍并实验验证了一种新的MLTC混合模型。

    3.我们微调vanilla BERT模型来执行多标签文本分类。据我们所知,这是第一次使用BERT进行实验,并探索其用于多标签设置和分层文本分类的特殊属性。

    4. 我们展示了最先进的结果在三个精心研究的MLTC数据集与英语文本和两个私人Yandex出租车数据集与俄罗斯文本。

    基于bert的多标签文本分类模型

    bert模型作为一个文本编码器

    BERT(来自transformer的双向编码器表示)是最近提出的一种用于获取文本嵌入的语言表示模型。BERT被预先训练成蒙面单词预测和下一个句子预测任务的无标签文本,提供深层的双向表征。对于分类任务,在文本的开头放置一个特殊的标记(token, CLS),并设计标记(token, CLS)的输出向量来对应最终的文本嵌入。经过预处理的BERT模型已被证明对多类、成对文本分类的迁移学习非常有用。通过一个额外的前馈层和softmax激活函数对模型进行微调,结果表明,这足以为下游任务提供最先进的结果(Devlin et al., 2018)。为了检验BERT在多标签设置下的情况,我们将最后一层后的激活函数改为sigmoid,这样我们就可以独立地预测每个标签的概率。优化的损失由交叉熵损失调整为二元交叉熵损失。

    混合模型

    在后续的实验中,我们主要测试了标准BERT和序列生成BERT模型。根据我们的实验结果,我们认为BERT和BERT+SGM在不同的数据集上可能各有优缺点。因此,为了使这些模型能够互相弥补各自的不足,将它们结合起来也许是合理的。我们对一些例子的误差分析表明,在某些情况下,BERT可以预测多余的标签,而BERT+SGM倾向于更加克制,这表明这两种方法可以很好的互补。

    支持使用混合方法的另一个论据是,与多标签BERT模型不同,BERT+SGM利用了关于标签底层结构的信息。Wehrmann等人(2018)在他们的工作中提出了HMCN模型,在该模型中,他们建议联合优化局部(层次)和全局分类器,并将它们的最终概率预测合并为加权平均值。

    受此启发,我们建议使用一个混合模型,它是一个多标签BERT和序列生成BERT模型的集合。创建混合模型的一个主要挑战是,这两个模型的输出是完全不同的。通常,我们无法访问经典Seq2Seq框架中标签的概率分布。我们建议通过计算解码器在每个阶段产生的概率分布来解决这个问题,然后根据最近的论文(Salvador et al., 2018)的想法对它们执行元素明智的最大池操作(max-pooling)。我们应该强调,使用这些概率来生成最终的标签集并不一定会得到与原始BERT + SGM模型相同的预测结果。然而,在我们的实验中,我们发现用这种方法得到的概率分布是很有意义的,并且通过适当的概率阈值(对于考虑的数据集大约是0.4-0.45)可以得到与BERT+SGM模型从推理阶段的预测精度相当的预测精度。在得到两种模型的概率分布后,我们可以计算它们的加权平均,得到最终的概率分布向量,如下:

    然后使用这个概率向量对概率阈值为0.5的标签进行最终预测。α的值∈[0,1]是一个权衡参数优化在验证集。最后过程提出了算法2:

     

     

    展开全文
  • 数据挖掘的发展过程中,由于数据挖掘不断地将诸多学科领域知识与技术融入当中,因此,目前数据挖掘方法与算法已呈现出极为丰富的多种形式。从使用的广义角度上看,数据挖掘常用分析方法主要有分类、聚类、估值、...
    
    

    1. 分类

    • 在数据挖掘的发展过程中,由于数据挖掘不断地将诸多学科领域知识与技术融入当中,因此,目前数据挖掘方法与算法已呈现出极为丰富的多种形式。从使用的广义角度上看,数据挖掘常用分析方法主要有分类、聚类、估值、预测、关联规则、可视化等。从数据挖掘算法所依托的数理基础角度归类,目前数据挖掘算法主要分为三大类:机器学习方法、统计方法与神经网络方法。机器学习方法分为决策树、基于范例学习、规则归纳与遗传算法等:统计方法细分为回归分析、时间序列分析、关联分析、聚类分析、模糊集、粗糙集、探索性分析、支持向量机与最近邻分析等:神经网络方法分为前向神经网络、自组织神经网络、感知机、多层神经网络、深度学习等。在具体的项目应用场景中通过使用上述这些特定算法,可以从大数据中整理并挖掘出有价值的所需数据,经过针对性的数学或统计模型的进一步解释与分析, 提取出隐含在这些大数据中的潜在的规律、规则、知识与模式口。下面介绍数据挖据中经常使用的分类、聚类、关联规则与时间序列预测等相关概念。

    • 数据挖掘方法中的一种重要方法就是分类,在给定数据基础上构建分类函数或分类模型,该函数或模型能够把数据归类为给定类别中的某一种类别,这就是分类的概念。在分类过程中,通常通过构建分类器来实现具体分类,分类器是对样本进行分类的方法统称。一般情况下,分类器构建需要经过以下4步:①选定包含正、负样本在内的初始样本集,所有初始样本分为训练与测试样本;②通过针对训练样本生成分类模型:③针对测试样本执行分类模型,并产生具体的分类结果:④依据分类结果,评估分类模型的性能。在评估分类模型的分类性能方面,有以下两种方法可用于对分类器的错误率进行评估:①保留评估方法。通常采用所有样本集中的2/3部分样本作为训练集,其余部分样本作为测试样本,也即使用所有样本集中的2/3样本的数据来构造分类器,并采用该分类器对测试样本分类,评估错误率就是该分类器的分类错误率。这种评估方法具备处理速度快的特点,然而仅用2/3 样本构造分类器,并未充分利用所有样本进行训练。②交叉纠错评估方法。该方法将所有样本集分为N个没有交叉数据的子集,并训练与测试共计N次。在每一次 训练与测试过程中,训练集为去除某- 个子集的剩余样本,并在去除的该子集上进行N次测试,评估错误率为所有分类错误率的平均值。一般情况下,保留评估方法用于最初试验性场景,交叉纠错法用于建立最终分类器。

    2. 聚类

    • 随着科技的进步,数据收集变得相对容易,从而导致数据库规模越来越庞大,例如,各类网上交易数据、图像与视频数据等,数据的维度通常可以达到成百上千维。在自然社会中,存在大量的数据聚类问题,聚类也就是将抽象对象的集合分为相似对象组成的多个类的过程,聚类过程生成的簇称为一组数据对象的集合。聚类源于分类,聚类又称为群分析,是研究分类问题的另种统计计算方法, 但聚类又不完全等同于分类同。聚类与分类的不同点在于:聚类要求归类的类通常是未知的,而分类则要求事先已知多个类。对于聚类问题,传统聚类方法已经较为成功地解决了低维数据的聚类,但由于大数据处理中的数据高维、多样与复杂性,现有的聚类算法对于大数据或高维数据的情况下,经常面临失效的窘境。受维度的影响,在低维数据空间表现良好的聚类方法,运用在高维空间上却无法获得理想的聚类效果。在针对高维数据进行聚类时,传统聚类方法主要面临两个问题:①相对低维空间中的数据,高维空间中数据分布稀疏,传统聚类方法通常基于数据间的距离进行聚类,因此,在高维空间中采用传统聚类方法难以基于数据间距离来有效构建簇。②高维数据中存在大量不相关的属性,使得在所有维中存在簇的可能性几乎为零。目前,高维聚类分析已成为聚类分析的个重要研究方向,也是聚类技术的难点与挑战性的工作。

    3. 关联规则

    • 关联规则属于数据挖掘算法中的一类重要方法,关联规则就是支持度与置信度分别满足用户给定阈值的规则4。所谓关联,反映一个事件与其他事件间关联的知识。支持度揭示了A和B同时出现的频率。置信度揭示了B出现时,A有多大的可能出现。关联规则最初是针对购物篮分析问题提出的,销售分店经理想更多了解顾客的购物习惯,尤其想获知顾客在一次购物时会购买哪些商品。通过发现顾客放入购物篮中不同商品间的关联,从而分析顾客的购物习惯。关联规则的发现可以帮助销售商掌握顾客同时会频繁购买哪些商品,从而有效帮助销售商开发良好的营销手段。1993 年,R.Agrawal首次提出挖掘顾客交易数据中的关联规则问题,核心思想是基于二阶段频繁集的递推算法。起初关联规则属于单维、单层及布尔关联规则,例如,典型的Aprior 算法。在工作机制上,关联规则包含两个主要阶段:第1阶段先从资料集合中找出所有的高频项目组,第2阶段由高频项目组中产生关联规则。随着关联规则的不断发展,目前关联规则中可以处理的数据分为单维和多维数据。针对单维数据的关联规则中,只涉及数据的一一个维,如客户购买的商品:在针对多维数据的关联规则中,处理的数据涉及多个维。总体而言,单维关联规则处理单个属性中的一些关系,而多维关联规则处理各属性间的关系。

    4. 时间序列预测

    • 通常将统计指标的数值按时间顺序排列所形成的数列,称为时间序列。时间序列预测法是一种历史引申预测法,也即将时间数列所反映的事件发展过程进行引申外推,预测发展趋势的一种方法。时间序列分析是动态数据处理的统计方法,主要基于数理统计与随机过程方法,用于研究随机数列所服从的统计学规律,常用于企业经营、气象预报、市场预测、污染源监控、地震预测、农林病虫灾害预报、天文学等方面。时间序列预测及其分析是将系统观测所得的时数据,通过 参数估计与曲线拟合来建立合理数学模型的方法,包含谱分析与自相关分析在内的一系列统计分析理论, 涉及时间序列模型的建立、推断、最优预测、非线性控制等原理。时间序列预测法可用于短期、中期和长期预测,依据所采用的分析方法,时间序列预测又可以分为简单序时平均数法、移动平均法、季节性预测法、趋势预测法、指数平滑法等方法。
    展开全文
  • 点击蓝字关注我 LeNet...但是,由于算力和数据集的限制,卷积神经网络提出之后一直都被传统目标识别算法(特征提取+分类器)所压制。终于在沉寂了14年之后的2012年,AlexNet在ImageNet挑战赛上一骑绝尘,使得卷积神经...
    ac14411aa6dc93f2adc3dff03ea2e0eb.png

    点击蓝字关注我

    ac14411aa6dc93f2adc3dff03ea2e0eb.png
    LeNet是由2019年图灵奖获得者、深度学习三位顶级大牛之二的Yann LeCun、Yoshua Bengio于1998年提出,它也被认为被认为是最早的卷积神经网络模型。但是,由于算力和数据集的限制,卷积神经网络提出之后一直都被传统目标识别算法(特征提取+分类器)所压制。终于在沉寂了14年之后的2012年,AlexNet在ImageNet挑战赛上一骑绝尘,使得卷积神经网络又一次成为了研究的热点。尽管近几年深度卷积网络非常热门,LeNet基本处于被忽略的状态,但是它的思想依然对CNN的学习有着不可忽视的价值。本文就详细介绍一下LeNet的结构,同时会详细介绍网络模型的搭建方法。

    前言

    27fff287836e8bec9f105d3bf3d4efd0.png

    提起卷积神经网络,也许可以避开VGG、GoogleNet,甚至可以忽略AleNet,但是很难不提及LeNet。

    LeNet是由2019年图灵奖获得者、深度学习三位顶级大牛之二的Yann LeCun、Yoshua Bengio于1998年提出(Gradient-based learning applied to document recognition),它也被认为被认为是最早的卷积神经网络模型。但是,由于算力和数据集的限制,卷积神经网络提出之后一直都被传统目标识别算法(特征提取+分类器)所压制。终于在沉寂了14年之后的2012年,AlexNet在ImageNet挑战赛上一骑绝尘,使得卷积神经网络又一次成为了研究的热点。

    近几年入门计算机视觉的同学大多数都是从AlexNet甚至更新的网络模型入手,了解比较多的就是R-CNN系列和YOLO系列,在很多知名的课程中对LeNet的介绍也是非常浅显或者没有介绍。虽然近几年卷积神经网络模型在LeNet的基础上加入了很多新的单元,在效果方面要明显优于LeNet,但是作为卷积神经网络的基础和源头,它的很多思想对后来的卷积神经网络模型具有很深的影响,因此,我认为了解一下LeNet还是非常有必要的。

    本文首先介绍一下LeNet的网络模型,然后使用tensorflow来一步一步实现LeNet。

    LeNet

    b7db9da53a82275478cfa870071ceb34.png

    上图就是LeNet的网络结构,LeNet又被称为LeNet-5,其之所以称为这个名称是由于原始的LeNet是一个5层的卷积神经网络,它主要包括两部分:

    • 卷积层

    • 全连接层

    其中卷积层数为2,全连接层数为3。

    这里需要注意一下,之前在介绍卷积、池化时特意提到,在网络层计数中池化和卷积往往是被算作一层的,虽然池化层也被称为"层",但是它不是一个独立的运算,往往都是紧跟着卷积层使用,因此它不单独计数。在LeNet中也是这样,卷积层块其实是包括两个单元:卷积层与池化层

    在网络模型的搭建过程中,我们关注的除了网络层的结构,还需要关注一些超参数的设定,例如,卷积层中使用卷积核的大小、池化层的步幅等,下面就来介绍一下LeNet详细的网络结构和参数。

    第一层:卷积层

    卷积核大小为5*5,输入通道数根据图像而定,例如灰度图像为单通道,那么通道数为1,彩色图像为三通道,那么通道数为3。虽然输入通道数是一个变量,但是输出通道数是固定的为6

    池化层中窗口大小为2*2,步幅为2

    第二层:卷积层

    卷积核大小为5*5,输入通道数即为上一层的输出通道数6,输出通道数为16

    池化层和第一层相同,窗口大小为2*2,步幅为2

    第三层:全连接层

    全连接层顾名思义,就是把卷积层的输出进行展开,变为一个二维的矩阵(第一维是批量样本数,第二位是前一层输出的特征展开后的向量),输入大小为上一层的输出16,输出大小为120

    第四层:全连接层

    输入大小为120,输出大小为84

    第五层:全连接层

    输入大小为84,输出大小为类别个数,这个根据不同任务而定,假如是二分类问题,那么输出就是2,对于手写字识别是一个10分类问题,那么输出就是10。

    激活函数

    前面文章中详细的介绍了激活函数的作用和使用方法,本文就不再赘述。激活函数有很多,例如Sigmoid、relu、双曲正切等,在LeNet中选取的激活函数为Sigmoid

    模型构建

    8ce96d758dd145533f0ac13027f6eeba.png

    如果已经了解一个卷积神经网络模型的结构,知道它有哪些层、每一层长什么样,那样借助目前成熟的机器学习平台是非常容易的,例如tensorflow、pytorch、mxnet、caffe这些都是高度集成的深度学习框架,虽然在强化学习、图神经网络中表现一般,但是在卷积神经网络方面还是很不错的。我绘制了模型构建的过程,详细的可以看一下上图,很多刚入门的同学会把tensorflow使用、网络搭建看成已经非常困难的事情,其实理清楚之后发现并没有那么复杂,它主要包括如下几个部分:
    • 数据输入
    • 网络模型
    • 训练预测
    其中,重点之处就在于网络模型的搭建,需要逐层的去搭建一个卷积神经网络,复杂程度因不同的模型而异。训练测试过程相对简单一些,可以通过交叉熵、均方差等构建损失函数,然后使用深度学习框架自带的优化函数进行优化即可,代码量非常少。LeNet、AlexNet、VGG、ResNet等,各种卷积神经网络模型主要的区别之处就在于网络模型,但是网络搭建的过程是相同的,均是通过上述流程进行搭建,因此,本文单独用一块内容介绍模型搭建的过程,后续内容不再介绍网络模型的搭建,会直接使用tensorflow进行编程实践。

    编程实践

    完整代码请查看github项目:aiLearnNotes

    https://github.com/Jackpopc/aiLearnNotes/blob/master/computer_vision/LeNet.py

    首先需要说明一下,后续的内容中涉及网络模型搭建的均会选择tensorflow进行编写。虽然近几年pytorch的势头非常迅猛,关于tensorflow的批评之声不绝于耳,但是我一向认为,灵活性和易用性总是成反比的,tensorflow虽然相对复杂,但是它的灵活性非常强,而且支持强大的可视化tensorboard,虽然pytorch也可以借助tensorboard实现可视化,但是这样让我觉得有一些"不伦不类"的感觉,我更加倾向于一体化的框架。此外,有很多同学认为Gluon、keras非常好用,的确,这些在tensorflow、mxnet之上进一步封装的高级深度学习框架非常易用,很多参数甚至不需要开发者去定义,但是正是因为这样,它们已经强行的预先定义在框架里了,可想而知,它的灵活性是非常差的。因此,综合灵活性、一体化、丰富性等方面的考虑,本系列会采用tensorflow进行编程实践。

    其次,需要说明的是本系列重点关注的是网络模型,因此,关于数据方面会采用MNIST进行实践。MNIST是一个成熟的手写字数据集,它提供了易用的接口,方便读取和处理。

    在使用tensorflow接口读取MNIST时,如果本地有数据,它会从本地加载,否则它会从官网下载数据,如果由于代理或者网速限制的原因自动下载数据失败,可以手动从官网下载数据放在MNIST目录下,数据包括4个文件,分别是:

    • train-images-idx3-ubyte.gz

    • train-labels-idx1-ubyte.gz

    • t10k-images-idx3-ubyte.gz

    • t10k-labels-idx1-ubyte.gz

    它们分别是训练数据集和标签,测试数据集和标签。

    可能会有人有疑问,手写体识别不是图像吗?为什么是gz的压缩包?因为作者对手写体进行了序列化处理,方便读取,数据原本是衣服单通道28*28的灰度图像,处理后是784的向量,我们可以通过一段代码对它可视化一下

    from matplotlib import pyplot as pltfrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST", one_hot=True)for i in range(12):    plt.subplot(34, i+1)    img = mnist.train.images[i + 1]    img = img.reshape(2828)    plt.imshow(img)plt.show()

    通过读取训练集中的12副图像,然后把它修改成28*28的图像,显示之后会发现和我们常见的图像一样,

    cee68625cd12697d3dd06fdba495ea45.png

    下面开始一步一步进行搭建网络LeNet,由前面介绍的模型构建过程可以知道,其中最为核心的就是搭建模型的网络架构,所以,首先先搭建网络模型,

    ddc210e8b113fd0cd40241b7c94a8b6f.png

    卷积的运算是符合上述公式的,因此,首先构造第一层网络,输入为批量784维的向量,需要首先把它转化为28*28的图像,然后初始化卷积核,进行卷积、激活、池化运算,

    X = tf.reshape(X, [-128281])w_1 = tf.get_variable("weights", shape=[5516])b_1 = tf.get_variable("bias", shape=[6])conv_1 = tf.nn.conv2d(X, w_1, strides=[1111], padding="SAME")act_1 = tf.sigmoid(tf.nn.bias_add(conv_1, b_1))max_pool_1 = tf.nn.max_pool(act_1, ksize=[1221], strides=[1221], padding="SAME")

    然后构建第二层网络,

    w_2 = tf.get_variable("weights", shape=[55616])b_2 = tf.get_variable("bias", shape=[16])conv_2 = tf.nn.conv2d(max_pool_1, w_2, strides=[1111], padding="SAME")act_2 = tf.nn.sigmoid(tf.nn.bias_add(conv_2, b_2))max_pool_2 = tf.nn.max_pool(act_2, ksize=[1221], strides=[1221], padding="SAME")

    到这里,卷积层就搭建完了,下面就开始搭建全连接层。

    首先需要把卷积层的输出进行展开成向量,

    flatten = tf.reshape(max_pool_2, shape=[-12 * 2 * 16])

    然后紧接着是3个全连接层,

    # 全连接层1with tf.variable_scope("fc_1"as scope:    w_fc_1 = tf.get_variable("weight", shape=[2 * 2 * 16120])    b_fc_1 = tf.get_variable("bias", shape=[120], trainable=True)fc_1 = tf.nn.xw_plus_b(flatten, w_fc_1, b_fc_1)act_fc_1 = tf.nn.sigmoid(fc_1)# 全连接层2with tf.variable_scope("fc_2"as scope:    w_fc_2 = tf.get_variable("weight", shape=[12084])    b_fc_2 = tf.get_variable("bias", shape=[84], trainable=True)fc_2 = tf.nn.xw_plus_b(act_fc_1, w_fc_2, b_fc_2)act_fc_2 = tf.nn.sigmoid(fc_2)# 全连接层3with tf.variable_scope("fc_3"as scope:    w_fc_3 = tf.get_variable("weight", shape=[8410])    b_fc_3 = tf.get_variable("bias", shape=[10], trainable=True)fc_3 = tf.nn.xw_plus_b(act_fc_2, w_fc_3, b_fc_3)

    这样就把整个网络模型搭建完成了,输入是批量图像X,输出是预测的图像,输出是一个10维向量,每一维的含义是当前数字的概率,选择概率最大的位置,就是图像对应的数字。

    完成了网络模型的搭建,它能够将输入图像转化成预测标签进行输出,接下来要做的就是训练和测试部分。

    def train():    # 1. 输入数据的占位符    x = tf.placeholder(tf.float32, [None784])    y = tf.placeholder(tf.float32, [BATCH_SIZE, 10])    # 2. 初始化LeNet模型,构造输出标签y_    le = LeNet()    y_ = le.create(x)    # 3. 损失函数,使用交叉熵作为损失函数    loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y_, labels=y))    # 4. 优化函数,首先声明I个优化函数,然后调用minimize去最小化损失函数    optimizer = tf.train.AdamOptimizer()    train_op = optimizer.minimize(loss)    # 5. summary用于数据保存,用于tensorboard可视化    tf.summary.scalar("loss", loss)    merged = tf.summary.merge_all()    writer = tf.summary.FileWriter("logs")    # 6. 构造验证函数,如果对应位置相同则返回true,否则返回false    correct_pred = tf.equal(tf.argmax(y_, 1), tf.argmax(y, 1))    # 7. 通过tf.cast把true、false布尔型的值转化为数值型,分别转化为1和0,然后相加就是判断正确的数量    accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))    # 8. 初始化一个saver,用于后面保存训练好的模型    saver = tf.train.Saver()    with tf.Session() as sess:        # 9. 初始化变量        sess.run((tf.global_variables_initializer()))        writer.add_graph(sess.graph)        i = 0        for epoch in range(5):            for step in range(1000):                # 10. feed_dict把数据传递给前面定义的占位符x、y                batch_xs, batch_ys = mnist.train.next_batch(BATCH_SIZE)                summary, loss_value, _ = sess.run(([merged, loss, train_op]),                                                  feed_dict={x: batch_xs,                                                             y: batch_ys})                print("epoch : {}----loss : {}".format(epoch, loss_value))                # 11. 记录数据点                writer.add_summary(summary, i)                i += 1        # 验证准确率        test_acc = 0        test_count = 0        for _ in range(10):            batch_xs, batch_ys = mnist.test.next_batch(BATCH_SIZE)            acc = sess.run(accuracy, feed_dict={x: batch_xs, y: batch_ys})            test_acc += acc            test_count += 1        print("accuracy : {}".format(test_acc / test_count))        saver.save(sess, os.path.join("temp""mode.ckpt"))

    上述就是训练部分的完整代码,在代码中已经详细的注释了每个部分的功能,分别包含数据记录、损失函数、优化函数、验证函数、训练过程等,然后运行代码可以看到效果,

    ...epoch : 4----loss : 0.07602085173130035epoch : 4----loss : 0.05565792694687843epoch : 4----loss : 0.08458487689495087epoch : 4----loss : 0.012194767594337463epoch : 4----loss : 0.026294417679309845epoch : 4----loss : 0.04952147603034973accuracy : 0.9953125

    准确率为99.5%,可以看得出,在效果方面,LeNet在某些任务方面并不比深度卷积神经网络差。

    打开tensorboard可以直观的看到网络的结构、训练的过程以及训练中数据的变换,

    $ tensorboard --logdir=logs

    下面看看tensorboard可视化效果,

    5c3c3dec742a12d2422b90c31d24518e.gif

    通过损失函数的变化过程可以看出,训练过程在2000步左右基本达到了最优解,

    3e9ef9d0cb9f5cbc60ae8cdb82ca1e3d.png

    END

    cde4fd906591b95d2db5abb0ffbcb7c2.png50dff5c5fd8c696e095c2cb3bdeb0aa4.png有趣的灵魂在等你

    长按扫码可关注 

    相关文章【动手学计算机视觉】第十一讲:卷积层与池化层【动手学计算机视觉】第十二讲:激活函数【动手学计算机视觉】第十三讲:批量归一化【动手学计算机视觉】第十四讲:正则化之Dropout

    42da4d2f884d4b683c6e7043d7d1920b.png

    文章好看就点这里24c828b9aec00e2e3e61e8e5ea345282.gif
    展开全文
  • (1)时间序列数据。比如:股票走势图、奥运会的日程 (2)顺序型数据。比如:文本、DNA测序。 时变型数据的特点 量大、维数多、变量多、类型丰富、分布范围广泛。 时变型数据可视化设计的三个维度 表达维度 线性以...

    时变数据:随着时间变化的、带有时间属性的数据。
    时变型数据的分类
    (1)时间序列数据。比如:股票走势图、奥运会的日程
    (2)顺序型数据。比如:文本、DNA测序。
    时变型数据的特点
    量大、维数多、变量多、类型丰富、分布范围广泛。

    时变型数据可视化设计的三个维度

    在这里插入图片描述

    表达维度

    线性以典型的阅读方式呈现内容;将时间数据作为二维的线图显示;x轴表示时间、y轴表示其他的变量。
    径向将时间序列编码为弧形;沿圆周排列;合适呈现周期性的时变型数据。比如:南丁格尔玫瑰图。
    网格和日历相对应;一般采用表格映射的方式。
    螺旋可用条形、线条或数据点、沿着螺旋路径显示。
    随机两类:1、基于排版形式的随机;2、时间曲线。

    比例维度

    一、比例维度(按时间顺序)可以被用来表示时间之间的距离,时间的持续时间。
    二、相对顺序是指存在一个基线事件在时间零点,可以被用在多时间线的对比。
    三、对数的比列从按时间的前后顺序排列的比例转换而来,强调了最早的或最近的事件,对数比例适用于长范围或不均匀的事件布局。
    四、次序,按次序的比例中连续事件之间的距离是相等的,值表达事件的顺序。
    五、次序+中间时长,这种形式可以用来表示长时间和不均匀分布的事件。

    布局维度

    1单一时间线
    2多个时间线
    3分段时间线
    ,在这种形式中,一个时间线被有意义的进行划分,进行另一种形式的比较。
    4多个时间线加上分段时间线,指不同属性时间线加上分割的时间段,可以进行多种形式的比较。

    多变量时变型数据可视化

    由于存在多个变量可视化需要兼顾数据本身的属性和数据集的顺序性结合数据分析的方法展现、和挖掘数据中的规律

    流程

    第一步,数据抽象,包括数据降维、特征选取和数据简化。
    第二步,数据聚类,核心在于定义恰当的距离或相似性度量。
    第三部,特征分析,包括特征抽象、语义分析等操作。

    形式

    1、基于线表示
    主要针对高维 抽象的 时变 非空间 数据的可视化
    第一步:进行高维曲线采样,采样的频率由用户交互指定。
    第二步:将采样后的高维曲线分段,便于刻画每段曲线的特征。
    第三部:用降维方法将高维曲线投影到二维空间,显示和研究曲线的特征。

    2、基于图结构
    核心:时间演化的组织
    第一步,用户根据领域需求和任务描述,从数据中找到与用户关注点实际相匹配的事件。
    第二步,对事件分类,根据事件不同类型的特征描述,从输入的数据中检测事件,得到事件实例。
    第三部,通过可视化方法将检测到的事件整合到可视表达中。

    交互

    核心:表现重要的区域
    方法:
    1概览加上下文
    2层次细节

    时变型数据可视化常用的一种交互手段是从时变型数据中查询特定的时间序列,以便交互地发现特征和趋势

    代表性例子:TimeSearcher
    特点:直接指定时变趋势模式;操作形变型3数据集;基于实例查询给定的时变趋势模型。

    流数据可视化

    流数据的输入数据并不存储在可随机访问的磁盘或内存中,而是以一个活多个“连续数据流”
    的形式到达。

    常见的流数据

    移动通信日志
    网络数据(日志、传输数据包、警报等)
    高性能集群平台日志
    传感器网络记录
    金融数据(股票市场)
    社交数据

    流数据的特点

    第一、数据流的潜在大小也许是无限的;
    第二、数据元素在线到达,需要实时处理;
    第三、无法控制数据元素的到达顺序和数量;
    第四、某个元素被处理后,要么被丢弃,要么被归档存储;
    第五、对于流数据的查询异常情况和相似类型比较耗时,人工检测日志相当乏味且易出错。

    用户的交互

    对输出内容的可视检测
    对可视布局的基本交互
    自定义的数据定制

    多数据库的设计

    保护了原始数据
    提高了数据存取的效率

    流数据可视化按功能可以分两种可视化类型:

    1、监控性:用滑动窗口苦丁一个时间区间,把流数据转化为静态数据,数据更新方式可以是刷新,属于局部分析。
    2、叠加型或者是历史型:吧新产生的数据可视映射到原来的历史数据可视化结果上,更新方式是渐进式更新,属于全局分析。


    系统日志数据反映了一台机器、一个计算集群的系统性能,是商业智能中最重要的数据。
    文本数据从事件角度对文本进行可视分析,挖掘事件的发生、发展及变化。

    展开全文
  • 研究结果表明,当且仅当系统原始数据序列第一项为大于零的常数,其他所有项数据皆为0时,建立灰色Verhulst模型才会呈现严重病态性,而采用已呈现特定规律的数据序列构建灰色Verhulst预测模型毫无实际意义....
  • 当对数据进行处理时,处理简单、结构化的数据集较为简单,算法复杂度也易于预测和评估,但是对于处理半结构化,非结构化数据呈现多样化的问题,分析数据困难更大,算法复杂度超越了经典摩尔定量,整个算法性能也...
  • CDD分析(rpsblast分析)研究

    千次阅读 2019-11-08 10:31:37
    CDD全名为Conserved Domain Database,它的出现是因为NCBI数据库中蛋白的序列数据在目前呈现指数级别的增加,在目前,假如依然按照序列之间的比对会导致资源的极大地浪费和消耗,因此CDD出现了,...
  • 然而,由于人类的动作通常以序列图像帧的形式呈现,因此在采用深度学习技术时,分析人类动作数据所需的计算能力比静态图像明显增加。这样的挑战一直是基于学习的图像表示技术向动作序列迁移的瓶颈,因此老式的手工...
  • 这项研究的目的是通过使用1988、2000和2017年的Landsat时间序列数据作为主要信息来源,调查和评估沙特阿拉伯东部地区Al Hassa绿洲的农业用地受到城市发展的影响程度。 除人口普查数据外,还使用了一组地面真相,...
  • 饼图通常是按照类别来呈现数据的,而有的时候会有很多很细小的分类,如果细小的分类过多,则图上就会显得很凌乱不能突出重点,这时候我们可以用“其他”来将这些细小的分类归结在一起,下面我们来看看在SSRS中这个...
  • 数据呈现基础 云计算初步 D-Park实战 第四范式分享 决策树到随机森林 数据呈现进阶 强化学习 SVM和神经网络引入 集成模型总结和GDBT理解及其衍生应用 神经网络 监督学习-回归与分类 神经网络基础与卷积网络 时间...
  • MS医院BI解决方案Doc.pdf

    热门讨论 2012-11-01 09:30:40
    再如,某院进行出院手续办理时间调查,通过收集患者调查问卷及药房、划价处、医生/护士工作站等系统的时间数据进行回归分析,通过图表呈现迅速找到耽误出院办理时间的几个关键节点,从而准确做出调整,辅助实行医院...
  • JAVA_API1.6文档(中文)

    万次下载 热门讨论 2010-04-12 13:31:34
    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...
  • 依托PaddleHub,只需一行代码即可完成模型下载安装,十余行代码即可完成文本分类序列标注、阅读理解等任务。 import paddlehub as hub module = hub.Module(name=MODULE_NAME) 其中MODULE_NAME对应列表如下: ...
  • java api最新7.0

    千次下载 热门讨论 2013-10-26 17:34:06
    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...
  • JDK_1_6 API

    2017-03-04 23:06:21
    java.io 通过数据流、序列化和文件系统提供系统输入和输出。 java.lang 提供利用 Java 编程语言进行程序设计的基础类。 java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许...
  • 更强大:清晰的树状页面编辑结构,能够支持最新的各种媒体格式,拥有超强的时间序列控制能力和全方位的交互功能,提供对象的并发、运动、拖曳、呈现、消失及各种交互方式,做好的课件每个页面可生成图片,可以合并...
  • TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。 thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包。 polyglot:支持数百种语言的自然语言处理管道。 ...
  • JavaAPI1.6中文chm文档 part1

    热门讨论 2011-08-19 08:33:34
    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...
  • Java 1.6 API 中文 New

    2013-10-26 14:08:22
    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...
  • JavaAPI中文chm文档 part2

    2011-08-19 08:58:42
    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...
  • 本次设计的主要难度在于数据的详细分类,对于数据的过滤必须要严谨,应当考虑敏感字体和敏感图片的过滤。  可能遇到的问题有,在数据交互过程中,出现由于属性名的差距导致的数据交互失败。由于Css属性设置的问题,...
  • 基于VC++和MATLAB的车型分类及车辆计数系统.pdf 基于VC++的AIS基站网络系统的研究与实现.pdf 基于VC++的小型变电站监控组态软件的设计与开发.pdf 基于VC++的智能压路机人机交互软件开发.pdf 基于VC++的汽车制动系统...
  • 基于VC++和MATLAB的车型分类及车辆计数系统.pdf 基于VC++的AIS基站网络系统的研究与实现.pdf 基于VC++的小型变电站监控组态软件的设计与开发.pdf 基于VC++的智能压路机人机交互软件开发.pdf 基于VC++的汽车制动系统...
  • 基于VC++和MATLAB的车型分类及车辆计数系统.pdf 基于VC++的AIS基站网络系统的研究与实现.pdf 基于VC++的小型变电站监控组态软件的设计与开发.pdf 基于VC++的智能压路机人机交互软件开发.pdf 基于VC++的汽车制动系统...
  • 基于VC++和MATLAB的车型分类及车辆计数系统.pdf 基于VC++的AIS基站网络系统的研究与实现.pdf 基于VC++的小型变电站监控组态软件的设计与开发.pdf 基于VC++的智能压路机人机交互软件开发.pdf 基于VC++的汽车制动系统...
  • jQuery权威指南-源代码

    2013-11-11 14:36:34
    《jQuery权威指南》不仅完整地呈现了jQuery本身所有的功能,而且讲解了jQuery UI等扩展功能;更值得一提的是,还包括最佳实践和性能优化方面的技巧,内容全面,结构合理。除此之外,本书还包括大量的实例,不仅每个...
  • 主要包括ASP.NET技术基础、VS 2008环境搭建,还详细讲解了C#语言设计入门,然后从常用Web服务器控件、ASP.NET安全验证控件、数据绑定控件、Web用户控件和ASP.NET导航控件全面介绍了几乎所有ASP.NET控件应用,接着以...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

呈现分类序列数据