模型_模型预测控制 - CSDN
精华内容
参与话题
  • 几种常见的预测模型

    万次阅读 多人点赞 2018-06-07 09:56:26
    几种常见的预测模型1.趋势外推预测方法趋势外推预测方法是根据事物的历史和现实数据,寻求事物随时间推移而发展变化的规律,从而推测其未来状况的一种常用的预测方法。 趋势外推法的假设条件是: (1)假设事物发展...

    几种常见的预测模型

    1.趋势外推预测方法

    趋势外推预测方法是根据事物的历史和现实数据,寻求事物随时间推移而发展变化的规律,从而推测其未来状况的一种常用的预测方法。
     趋势外推法的假设条件是:
     (1)假设事物发展过程没有跳跃式变化,即事物的发展变化是渐进型的。

     (2)假设所研究系统的结构、功能等基本保持不变,即假定根据过去资料建立的趋势外推模型能适合未来,能代表未来趋势变化的情况。

    由以上两个假设条件可知,趋势外推预测法是事物发展渐进过程的一种统计预测方法。简言之,就是运用一个数学模型,拟合一条趋势线,然后用这个模型外推预测未来时期事物的发展
    趋势外推预测法主要利用描绘散点图的方法(图形识别)和差分法计算进行模型选择。
    主要优点是:可以揭示事物发展的未来,并定量地估价其功能特性。
    趋势外推预测法比较适合中、长期新产品预测,要求有至少5年的数据资料。

    2.回归预测方法

    回归预测方法是根据自变量和因变量之间的相关关系进行预测的。自变量的个数可以一个或多个,根据自变量的个数可分为一元回归预测和多元回归预测。同时根据自变量和因变量的相关关系,分为线性回归预测方法和非线性回归方法。回归问题的学习等价于函数拟合:选择一条函数曲线使其很好的拟合已知数据且能很好的预测未知数据。

    3.卡尔曼滤波预测模型

    卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的模型,其基本思想是: 采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。 

    它适合于实时处理和计算机运算。卡尔曼滤波器问题由预计步骤,估计步骤,前进步骤组成。 在预计步骤中, t时状态的估计取决于所有到t-1 时的信息。在估算步骤中, 状态更新后, 估计要于时间t的实际观察比较。更新的状态是较早的推算和新观察的综合。 置于每一个成分的权重由“ Kalmangain”(卡尔曼增益) 决定,它取决于噪声 w 和 v。(噪声越小,新的观察的可信度越高,权重越大,反之亦然)。前进步骤意味着先前的“新”观察在准备下一轮预计和估算时变成了“旧” 观察。 在任何时间可以进行任何长度的预测(通过提前状态转换)。

    自适应卡尔曼滤波器的主要优点是只需要少量的数据得到预测的起始点(尽管多一点数据会使结果好一点),它可以自我调节,从连续的观察中自动设置参数。缺点是对考虑复杂性的能力有限,有时收敛慢或不收敛(有正式的标致来判断是否收敛)。

    4.组合预测模型

    组合预测法是对同一个问题,采用多种预测方法。组合的主要目的是综合利用各种方法所提供的信息,尽可能地提高预测精度。组合预测有 2 种基本形式,一是等权组合, 即各预测方法的预测值按相同的权数组合成新的预测值;二是不等权组合,即赋予不同预测方法的预测值不同的权数。 这 2 种形式的原理和运用方法完全相同,只是权数的取定有所区别。 根据经验,采用不等权组合的组合预测法结果较为准确。

    5.BP神经网络预测模型

     BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的神经网络模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。点击打开链接(BP神经网络预测实例)



    展开全文
  • CNN经典模型汇总

    万次阅读 多人点赞 2018-04-03 16:55:28
    本文主要对CNN领域的经典模型进行汇总,算是对近期的学习做一个小总结。基础知识作为深度学习的基础,神经网络这个算法是必须要有深入的了解的,这里不介绍太多,简单介绍一下原理和单个神经元的结构:一、BP神经...

    本文主要对CNN领域的经典模型进行汇总,算是对近期的学习做一个小总结。

    基础知识

    作为深度学习的基础,神经网络这个算法是必须要有深入的了解的,这里不介绍太多,简单介绍一下原理和单个神经元的结构:

    一、BP神经网络的概念

    BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神经网络模型:

    无

    BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。

    二、单个神经元的结构

    主要是通过对输入信号的加权求和加偏置(加权求和对应的w,偏置对应的b),然后通过通过激活函数引入非线性元素并将结果映射至0——1之间的数值(比如sigmoid函数)。具体见下图:

    无

    无

    无

    图片来源于台大 李宏毅 300页 PPT
    https://www.slideshare.net/tw_dsconf/ss-62245351 (记得FQ)
    个人觉得这个PPT非常不错,从浅到深,讲的也十分具体,有时间可以仔细看看。

    CNN模型汇总

    一、LeNet5 模型

    LeNet5 诞生于 1994 年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从 1988 年开始,在许多次成功的迭代后,这项由 Yann LeCun 完成的开拓性成果被命名为 LeNet5(参见:Gradient-Based Learning Applied to Document Recognition)。

    无

    LeNet5 的架构基于这样的观点:(尤其是)图像的特征分布在整张图像上,以及带有可学习参数的卷积是一种用少量参数在多个位置上提取相似特征的有效方式。在那时候,没有 GPU 帮助训练,甚至 CPU 的速度也很慢。因此,能够保存参数以及计算过程是一个关键进展。这和将每个像素用作一个大型多层神经网络的单独输入相反。LeNet5 阐述了那些像素不应该被使用在第一层,因为图像具有很强的空间相关性,而使用图像中独立的像素作为不同的输入特征则利用不到这些相关性。

    LeNet5特征能够总结为如下几点:
    1)卷积神经网络使用三个层作为一个系列: 卷积,池化,非线性
    2) 使用卷积提取空间特征
    3)使用映射到空间均值下采样(subsample)
    4)双曲线(tanh)或S型(sigmoid)形式的非线性
    5)多层神经网络(MLP)作为最后的分类器
    6)层与层之间的稀疏连接矩阵避免大的计算成本

    总体看来,这个网络是最近大量神经网络架构的起点,并且也给这个领域带来了许多灵感。
    从 1998 年到 2010 年神经网络处于孵化阶段。大多数人没有意识到它们不断增长的力量,与此同时其他研究者则进展缓慢。由于手机相机以及便宜的数字相机的出现,越来越多的数据可被利用。并且计算能力也在成长,CPU 变得更快,GPU 变成了多种用途的计算工具。这些趋势使得神经网络有所进展,虽然速度很慢。数据和计算能力使得神经网络能完成的任务越来越有趣。之后一切变得清晰起来……

    二、AlexNet 模型

    2012年,Hinton的学生Alex Krizhevsky提出了深度卷积神经网络模型AlexNet,它可以算是LeNet的一种更深更宽的版本。AlexNet中包含了几个比较新的技术点,也首次在CNN中成功应用了ReLU、Dropout和LRN等Trick。同时AlexNet也使用了GPU进行运算加速,作者开源了他们在GPU上训练卷积神经网络的CUDA代码。AlexNet包含了6亿3000万个连接,6000万个参数和65万个神经元,拥有5个卷积层,其中3个卷积层后面连接了最大池化层,最后还有3个全连接层。

    AlexNet以显著的优势赢得了竞争激烈的ILSVRC 2012比赛,top-5的错误率降低至了16.4%,相比第二名的成绩26.2%错误率有了巨大的提升。AlexNet可以说是神经网络在低谷期后的第一次发声,确立了深度学习(深度卷积网络)在计算机视觉的统治地位,同时也推动了深度学习在语音识别、自然语言处理、强化学习等领域的拓展。

    AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中。AlexNet主要使用到的新技术点如下:

    (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。虽然ReLU激活函数在很久之前就被提出了,但是直到AlexNet的出现才将其发扬光大。
    (2)训练时使用Dropout随机忽略一部分神经元,以避免模型过拟合。Dropout虽有单独的论文论述,但是AlexNet将其实用化,通过实践证实了它的效果。在AlexNet中主要是最后几个全连接层使用了Dropout。
    (3)在CNN中使用重叠的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性。
    (4)提出了LRN层,对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。
    (5)使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算。AlexNet使用了两块GTX 580 GPU进行训练,单个GTX 580只有3GB显存,这限制了可训练的网络的最大规模。因此作者将AlexNet分布在两个GPU上,在每个GPU的显存中储存一半的神经元的参数。因为GPU之间通信方便,可以互相访问显存,而不需要通过主机内存,所以同时使用多块GPU也是非常高效的。同时,AlexNet的设计让GPU之间的通信只在网络的某些层进行,控制了通信的性能损耗。 
    (6)数据增强,随机地从256´256的原始图像中截取224´224大小的区域(以及水平翻转的镜像),相当于增加了(256-224)2´2=2048倍的数据量。如果没有数据增强,仅靠原始的数据量,参数众多的CNN会陷入过拟合中,使用了数据增强后可以大大减轻过拟合,提升泛化能力。进行预测时,则是取图片的四个角加中间共5个位置,并进行左右翻转,一共获得10张图片,对他们进行预测并对10次结果求均值。同时,AlexNet论文中提到了会对图像的RGB数据进行PCA处理,并对主成分做一个标准差为0.1的高斯扰动,增加一些噪声,这个Trick可以让错误率再下降1%。

    整个AlexNet有8个需要训练参数的层(不包括池化层和LRN层),前5层为卷积层,后3层为全连接层,如图4所示。AlexNet最后一层是有1000类输出的Softmax层用作分类。 LRN层出现在第1个及第2个卷积层后,而最大池化层出现在两个LRN层及最后一个卷积层后。ReLU激活函数则应用在这8层每一层的后面。因为AlexNet训练时使用了两块GPU,因此这个结构图中不少组件都被拆为了两部分。现在我们GPU的显存可以放下全部模型参数,因此只考虑一块GPU的情况即可。

    无

    整个网络呈一个金字塔结构,具体来说:

    1. 输入图片是224*224像素的三通道图片;
    2. 第一层使用11*11的卷积核,滑动步长为4个像素,输出为96个特征图并进行最大值池化;
    3. 第二层使用5*5卷积核,卷积产生256个特征图,并进行最大池化;
    4. 第三层,第四层均使用3*3卷积核,输出384个特征图;
    5. 第五层使用3*3卷积层,输出256个特征图,并进行池化;
    6. 第六层,第七层为全连接层,分别包含4096个隐层,也就是说,到全连接层时只剩4096个特征值;
    7. 最终,第八层为softmax层,得到最终的分类结果。

    三、VGG 模型

    来自牛津大学的 VGG 网络(参见:Very Deep Convolutional Networks for Large-Scale Image Recognition)是第一个在各个卷积层使用更小的 3×3 过滤器(filter),并把它们组合作为一个卷积序列进行处理的网络。

    这看来和 LeNet 的原理相反,其中是大的卷积被用来获取一张图像中相似特征。和 AlexNet 的 9×9 或 11×11 过滤器不同,过滤器开始变得更小,离 LeNet 竭力所要避免的臭名昭著的 1×1 卷积异常接近——至少在该网络的第一层是这样。但是 VGG 巨大的进展是通过依次采用多个 3×3 卷积,能够模仿出更大的感受野(receptive field)的效果,例如 5×5 与 7×7。这些思想也被用在了最近更多的网络架构中,如 Inception 与 ResNet。

    VGGNet论文中全部使用了3´3的卷积核和2´2的池化核,通过不断加深网络结构来提升性能。图6所示为VGGNet各级别的网络结构图,图7所示为每一级别的参数量,从11层的网络一直到19层的网络都有详尽的性能测试。虽然从A到E每一级网络逐渐变深,但是网络的参数量并没有增长很多,这是因为参数量主要都消耗在最后3个全连接层。前面的卷积部分虽然很深,但是消耗的参数量不大,不过训练比较耗时的部分依然是卷积,因其计算量比较大。这其中的D、E也就是我们常说的VGGNet-16和VGGNet-19。C很有意思,相比B多了几个1´1的卷积层,1´1卷积的意义主要在于线性变换,而输入通道数和输出通道数不变,没有发生降维。

    VGGNet拥有5段卷积,每一段内有2~3个卷积层,同时每段尾部会连接一个最大池化层用来缩小图片尺寸。每段内的卷积核数量一样,越靠后的段的卷积核数量越多:64 – 128 – 256 – 512 – 512。其中经常出现多个完全一样的3´3的卷积层堆叠在一起的情况,这其实是非常有用的设计。如图8所示,两个3´3的卷积层串联相当于1个5´5的卷积层,即一个像素会跟周围5´5的像素产生关联,可以说感受野大小为5´5。而3个3´3的卷积层串联的效果则相当于1个7´7的卷积层。除此之外,3个串联的3´3的卷积层,拥有比1个7´7的卷积层更少的参数量,只有后者的。最重要的是,3个3´3的卷积层拥有比1个7´7的卷积层更多的非线性变换(前者可以使用三次ReLU激活函数,而后者只有一次),使得CNN对特征的学习能力更强。

    同时,作者在对比各级网络时总结出了以下几个观点。
    (1)LRN层作用不大。
    (2)越深的网络效果越好。
    (3)1´1的卷积也是很有效的,但是没有3´3的卷积好,大一些的卷积核可以学习更大的空间特征。

    总的来说,在网络设计思路上,VGGNet是继承了AlexNet的思路,以AlexNet为基础,尝试建立一个层次更多,深度更深的网络。其网络结构一样可以由8个层次所构成,也是5组卷积层,3层全连接层。最主要的区别在于,VGGNet的每个卷积层并不是只做一次卷积操作,而是连续卷积2~4次。具体结构上的差别见下表(包括其它网络结构和VGG16与VGG19):

    无

    四、GoogleNet模型

    在VGGNets中我们了解到,如果网络的层数更多,深度更深,就会得到更好的结果。但是随着模型越来越复杂,参数越来越多,也会面临很多问题。一方面,是更深的网络需要更多的数据才能有更好的效果,否则就比较容易过拟合。另一方面,复杂的网络意味着更大的计算量,这对于应用来说非常不利。在一些对实时性要求非常高的应用中,比如自动驾驶,要求参数足够少,计算速度足够快。所以,减少参数也是一个重要的课题。因此,为了能更有效地扩展网络地复杂度,Google的大神们启动了Inception项目,GoogleNet就是它的第一个版本(目前共有4个版本)。

    正如前面在对比AlexNet和VGGNets的结构时提到的,对于卷积核大小的选择是需要经验和大量实验才可以确定的,到底是选3*3呢,还是5*5或者7*7?这个问题并没有一种明确的思路。这里的做法是跳出直线加深网络层数的思路,通过增加“宽度”的方式增加网络复杂度,避免陷入卷积核选择的陷阱,让程序自己学习如何选择卷积核。具体来说中,是在每一个卷积层,并行使用1*1卷积核,3*3卷积核,5*5卷积核和池化,同时提取不同尺度的特征,然后通过1*1的卷积核对每一个分支进行降维后,最后将结果合并拼接在一起。直观地看起来,好像结构复杂了很多,本来只要一两个卷积就可以完成地计算,现在却要使用四五种不同地操作。但是仔细分析可以发现,这样地设计不仅减少了参数地数量,而且由于增加了网络地“宽度”,网络对多种尺度地适应性就更好了(GoogleNet中地block结构如图:)

    无

    在这个结构中,1*1卷积扮演了非常重要地角色,1*1卷积并没有对图像本身产生什么影响,在数学上仅仅是最简单地矩阵乘法操作,其最重要的作用在于降低特征图的数量以达到降维的目的。由于有了1*1卷积的存在,才使得网络可以在不增加参数数量级的情况下可以增加复杂度。

    这里给出完整的GoogleNet模型结构:

    无

    这里补充两个注意点:
    1. 对于不同的卷积核,要取不同的滑动步长,以使得他们输出的特征图大小相同,便于后一步的操作;
    2. 在CNN中,1*1的卷积核最主要的作用在于改变通道数,比如,原图像 3*64*64的rgb,通过5个1X1卷积核就变成了5*64*64.用5个卷积核代替了原来RGB三通道的表示方法。因此,该卷积核既可以升维又可以降维;

    Inception项目的其它几个版本这里做一下简要的概述,不过多讨论:
    1.Inception-v2是在第一代的GoogleNet基础上加入了批标准化(Batch Normalization)技术。其具体做法是,对mini-batch中所有的信号量进行统一的归一化,使得一个批次中所有的信号量符合均值为0,方差为1的高斯分布。需要注意的是,在tensorflow中,使用批标准化技术要在激活函数之前,否则作用会打一定的折扣;

    2.Inception-v3在之前的版本上又有提高。其最核心的思想是将卷积核操作继续分解成更小的卷积核。首先,比如,借鉴VGGNets的思路,5*5的卷积可以由连续2层3*3卷积所替代,这样既减少了参数数量,也进一步加快了计算速度。这样的好处是,在经过这样的转换后,不但参数数量进一步减少,计算速度更快,而且网络的深度也加深了,增加了非线性表达能力。

    五、ResNets模型

    对于深度神经网络来说,VGGNets证明了加深网络层次是提高精度的有效手段,但是由于梯度弥散的问题导致网络深度无法持续加深。梯度弥散问题是由于在反向传播过程中误差不断累积,导致在最初的几层梯度值几乎为0,从而无法收敛。经过测试,20层以上的深层网络,会随着层数的增加,收敛效果越来越差,50层的网络是20层的网络所得错误率的一倍。这一现象称为深度网络的退化问题。

    退化问题其实说明,不是所有的系统都能很容易的被优化。难道网络的深度的增加到此为止了吗?ResNets告诉我们残差网络是一种避免梯度消失的更容易优化的结构。

    熟悉机器学习算法的都可以理解,神经网络实际上是将一个空间维度的向量x,经过非线性变换H(x)映射到另外一个空间维度中。但通过前面的观察会意识到H(x)非常难以优化,所以尝试转而求H(x)的残差形式F(x)=H(x)-x。假设求解F(x)=H(x)-x。假设求解F(x)会比求H(x)要简单一些的话,就可以通过F(x)+x来达到最终1的目标。

    无

    从实际实验的结果来看,残差网络的效果是非常明显的。如论文里所说,类似VGGNet的结构在超过20个参数层以后,收敛效果会大打折扣,准确率比较差,但是简单地加入一些“捷径”(shortcut)连接边后,使其转变为残差结构,收敛效果都急剧提高,精度也随着训练次数地增加持续提高,并且不断加深网络深度还可以持续提高准确率,残差网络与VGG结构地对比如图所示:

    无

    无

    ResNets的成功,使整个卷积神经网络的研究上了一个新的台阶,inception也将残差结构融入其中,实现了更优秀的模型inception-v4。

    :这个ResNets模型我不是太能看明白,不太理解为什么残差形式F(x)=H(x)-x要比H(x)容易求解,留作疑问,若有人看到这篇博文,欢迎前来讨论!

    展开全文
  • 自回归(Autoregressive Models,AR)模型

    万次阅读 2018-07-24 20:01:06
    其中{at}是白噪声序列,这个模型与简单线性回归模型有相同的形式,这个模型也叫做一阶自回归(AR)模型,简称AR(1)模型 从AR(1)很容易推广到AR(p)模型:   AR(p)模型的特征根及平稳性检验 我们先假定序列是弱...

    已知在t−1时刻的数据rt−1,在预测t时刻rt时可能是有用的!

    根据这点我们可以建立下面的模型:

     


    其中{at}是白噪声序列,这个模型与简单线性回归模型有相同的形式,这个模型也叫做一阶自回归(AR)模型,简称AR(1)模型

    从AR(1)很容易推广到AR(p)模型:

     

    AR(p)模型的特征根及平稳性检验

    我们先假定序列是弱平稳的,则有;

     


    因为{at}是白噪声序列,因此有:


    所以有:


    根据平稳性的性质,又有

     ,从而:


    对式2.1,假定分母不为0, 我们将下面的方程称为特征方程:


    该方程所有解的倒数称为该模型的特征根,如果所有的特征根的模都小于1,则该AR(p)序列是平稳的。

    AR(p)模型的定阶

    一般有两种方法来决定p:
    第一种:利用偏相关函数(Partial Auto Correlation Function,PACF)
    第二种:利用信息准则函数

    偏相关函数判断p

    对于偏相关函数的介绍,这里不详细展开,重点介绍一个性质:
    AR(p)序列的样本偏相关函数是p步截尾的。
    所谓截尾,就是快速收敛应该是快速的降到几乎为0或者在置信区间以内。

    信息准则— AIC、BIC、HQ

    现在有以上这么多可供选择的模型,我们通常采用AIC法则。我们知道:增加自由参数的数目提高了拟合的优良性,AIC鼓励数据拟合的优良性但是尽量避免出现过度拟合(Overfitting)的情况。所以优先考虑的模型应是AIC值最小的那一个。赤池信息准则的方法是寻找可以最好地解释数据但包含最少自由参数的模型。不仅仅包括AIC准则,目前选择模型常用如下准则:

    • AIC=-2ln(L)+2k 中文名字:赤池信息量 akaike information criterion
    • BIC=-2ln(L)+ln(n)*k 中文名字:贝叶斯信息量 bayesian information criterion
    • HQ=-2ln(L)+ln(ln(n))*k hannan-quinn criterion

    模型的检验

    根据式2.0,如果模型是充分的,其残差序列应该是白噪声,根据我们之前介绍的混成检验,可以用来检验残差与白噪声的接近程度。

    拟合优度及预测

    拟合优度

    我们使用下面的统计量来衡量拟合优度:

     

    但是,对于一个给定的数据集,R2是用参数个数的非降函数,为了克服该缺点,推荐使用调整后的R2:

     

    它的值在0-1之间,越接近1,拟合效果越好。

    预测

    我们首先得把原来的样本分为训练集和测试集,再来看预测效果。

    参考:https://uqer.io/v3/community/share/5790a091228e5b90cda2e2ea

    展开全文
  • 层次数据模型     定义:层次数据模型是用树状<层次>结构来组织数据的数据模型。     满足下面两个条件的基本层次联系的集合为层次模型     1. 有且只有一个结点没有双亲结点,这个结点称为根结点...
    层次数据模型

        定义:层次数据模型是用树状<层次>结构来组织数据的数据模型。

        满足下面两个条件的基本层次联系的集合为层次模型
        1. 有且只有一个结点没有双亲结点,这个结点称为根结点
        2. 根以外的其它结点有且只有一个双亲结点

    其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的各个字段对应实体的各个属性。各个记录类型及其字段都必须记录。
      在这里插入图片描述
      层次模型的特点:
        结点的双亲是唯一的
        只能直接处理一对多的实体联系
        每个记录类型可以定义一个排序字段,也称为码字段
        任何记录值只有按其路径查看时,才能显出它的全部意义
        没有一个子女记录值能够脱离双亲记录值而独立存在
      实例:
        在这里插入图片描述
        在这里插入图片描述
        
        层次模型的完整性约束条件
        无相应的双亲结点值就不能插入子女结点值
        如果删除双亲结点值,则相应的子女结点值也被同时删除
        更新操作时,应更新所有相应记录,以保证数据的一致性

        优点
        层次模型的数据结构比较简单清晰
        查询效率高,性能优于关系模型,不低于网状模型
        层次数据模型提供了良好的完整性支持
        缺点
        结点之间的多对多联系表示不自然
        对插入和删除操作的限制多,应用程序的编写比较复杂
        查询子女结点必须通过双亲结点
        层次命令趋于程序化

    层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统


    网状数据模型

        定义:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
        满足下面两个条件的基本层次联系的集合称为网状数据模型:
        1. 允许一个以上的结点无双亲;
        2. 一个结点可以有多于一个的双亲。
    在这里插入图片描述
      其实,网状数据模型可以看做是放松层次数据模型的约束性的一种扩展。网状数据模型中所有的节点允许脱离父节点而存在,也就是说说在整个模型中允许存在两个或多个没有根节点的节点,同时也允许一个节点存在一个或者多个的父节点,成为一种网状的有向图。因此节点之间的对应关系不再是1:n,而是一种m:n的关系,从而克服了层次状数据模型的缺点。
      特征:
         1. 可以存在两个或者多个节点没有父节点;
         2. 允许单个节点存在多于一个父节点;
      网状数据模型中的,每个节点表示一个实体,节点之间的有向线段表示实体之间的联系。网状数据模型中需要为每个联系指定对应的名称。
      实例:  
    在这里插入图片描述

        优点:
        网状数据模型可以很方便的表示现实世界中的很多复杂的关系;
        修改网状数据模型时,没有层次状数据模型的那么多的严格限制,可以删除一个节点的父节点而依旧保留该节点;也允许插入一个没有任何父节点的节点,这样的插入在层次状数据模型中是不被允许的,除非是首先插入的是根节点;
        实体之间的关系在底层中可以借由指针指针实现,因此在这种数据库中的执行操作的效率较高;

        缺点:
         网状数据模型的结构复杂,使用不易,随着应用环境的扩大,数据结构越来越复杂,数据的插入、删除牵动的相关数据太多,不利于数据库的维护和重建。
         网状数据模型数据之间的彼此关联比较大,该模型其实一种导航式的数据模型结构,不仅要说明要对数据做些什么,还说明操作的记录的路径;
        DDL、DML语言复杂,用户不容易使用
        记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节

        网状模型与层次模型的区别
        网状模型允许多个结点没有双亲结点
        网状模型允许结点有多个双亲结点
        网状模型允许两个结点之间有多种联系(复合联系)
        网状模型可以更直接地描述现实世界
        层次模型实际上是网状模型的一个特例

    典型代表是DBTG系统,亦称CODASYL系统,是20世纪70年代由DBTG提出的一个系统方案。实际系统:Cullinet Software公司的 IDMS、Univac公司的 DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE。


    三、关系型数据模型
      关系型数据模型对应的数据库自然就是关系型数据库了,这是目前应用最多的数据库。
      定义:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。
      关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。支持关系数据模型的数据库管理系统称为关系型数据库管理系统。
      特征:
         1. 关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统一的关系—一张二维表,在关系模型中,操作的对象和结果都是一张二维表,它由行和列组成;
         2. 关系型数据库可用于表示实体之间的多对多的关系,只是此时要借助第三个关系—表,来实现多对多的关系;
         3. 关系必须是规范化的关系,即每个属性是不可分割的实体,不允许表中表的存在;
      实例:

    在这里插入图片描述

        优点:
         结构简单,关系数据模型是一些表格的框架,实体的属性是表格中列的条目,实体之间的关系也是通过表格的公共属性表示,结构简单明了;
        关系数据模型中的存取路径对用户而言是完全隐蔽的,是程序和数据具有高度的独立性,其数据语言的非过程化程度较高;
        操作方便,在关系数据模型中操作的基本对象是集合而不是某一个元祖;
         有坚实的数学理论做基础,包括逻辑计算、数学计算等;

        缺点:
        查询效率低,关系数据模型提供了较高的数据独立性和非过程化的查询功能(查询的时候只需指明数据存在的表和需要的数据所在的列,不用指明具体的查找路径),因此加大了系统的负担;
        由于查询效率较低,因此需要数据库管理系统对查询进行优化,加大了DBMS的负担;

        相关概念:
        关系(Relation):一个关系对应通常说的一张表
        元组(Tuple):表中的一行即为一个元组
        属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
        主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组
        域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
        分量:元组中的一个属性值。
        关系模式:对关系的描述,关系名(属性1,属性2,…,属性n),如:学生(学号,姓名,年龄,性别,系名,年级)

        关系必须是规范化的,满足一定的规范条件
        最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表

        术语对比
    在这里插入图片描述

        关系的完整性约束条件
        实体完整性
        实体完整性是指实体的主属性不能取空值。实体完整性规则规定实体的所有主属性都不能为空。实体完整性针对基本关系而言的,一个基本关系对应着现实世界中的一个主题,例如上例中的学生表对应着学生这个实体。现实世界中的实体是可以区分的,他们具有某种唯一性标志,这种标志在关系模型中称之为主码,主码的属性也就是主属性不能为空。
        参照完整性
        在关系数据库中主要是值得外键参照的完整性。若A关系中的某个或者某些属性参照B或其他几个关系中的属性,那么在关系A中该属性要么为空,要么必须出现B或者其他的关系的对应属性中。
        用户定义的完整性
        用户定义完整性是针对某一个具体关系的约束条件。它反映的某一个具体应用所对应的数据必须满足一定的约束条件。例如,某些属性必须取唯一值,某些值的范围为0-100等。

    计算机厂商新推出的数据库管理系统几乎都支持关系模型



    展开全文
  • 高斯混合模型

    千次下载 热门讨论 2020-07-28 23:33:02
    高斯混合模型相关资料 包括极大似然估计求解完全推导过程 包括EM求解的完全推导过程 深入浅出 很快就能入门了
  • 主题模型

    千次阅读 2019-09-05 11:37:51
    文章目录主题模型定义主题模型历史简单案例引入知识储备:SVD——奇异值分解1、特征值2、SVD分解3、SVD与PCAPLSA——概率隐性语义分析1、SVD2、LSA3、PLSAPlSA原理应用1、 **PLSA:文档生成模型**2、**利用文档推断...
  • 数学建模四大模型总结

    万次阅读 多人点赞 2019-09-18 21:27:43
    文章目录数学建模四大模型总结1 、优化模型1.1 数学规划模型1.2 微分方程组模型1.3 图论与网络优化问题1.4 概率模型1.5 组合优化经典问题现代优化算法:禁忌搜索;模拟退火;遗传算法;人工神经网络2、分类模型2.1 ...
  • 11.Ogre的模型.mesh里面包含了什么信息(也就是说结构是怎样的呢)? A: OgreMeshSerializer.cpp MeshSerializer::importMesh // Find the implementation to use MeshSerializerImplMap::iterator impl = ...
  • 应用层常用协议

    万次阅读 2016-09-21 12:50:36
    一、应用层常用协议 1 DNS:域名系统DNS是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。 现在顶级域名TLD分为三大类:国家顶级域名nTLD;通用顶级域名gTLD;基础结构域名 ...FTP
  • 基于2019-nCoV的SEIR模型的建立与改进

    万次阅读 多人点赞 2020-04-25 16:56:44
    建模战疫,共享未来
  • 全面理解Java内存模型

    万次阅读 多人点赞 2020-04-27 22:37:02
    Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存...
  • 永磁同步电机矢量控制(一)——数学模型

    万次阅读 多人点赞 2020-07-02 14:03:10
    导师研究的课题是永磁同步... 1、永磁同步电机的数学模型 (参考于解小刚、陈进采用Id=0永磁同步电机矢量控制文章) 永磁同步电机是一个非线性系统,具有多变量、强耦合的特点。我们对其分析的时候有以下假设: ...
  • 一、瀑布模型 1.1什么是瀑布模型 1.2特点 1.3优缺点 1.4客户需求 二、快速原型模型 2.1什么是快速原型模型 2.2优缺点 2.3快速原型模型的思想产生、原理及运用方式 2.4类型 2.5开发步骤 三、增量模型 3.1...
  • Tensorflow加载预训练模型和保存模型

    万次阅读 多人点赞 2019-07-26 17:22:37
    使用tensorflow过程中,训练结束后我们需要用到模型文件。有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练。这时候我们需要掌握如何操作这些模型数据。看完本文,相信你一定会有收获!
  • 数学建模——灰色预测模型及matlab代码实现

    万次阅读 多人点赞 2020-08-09 20:47:15
    灰色预测的主要特点是模型使用的不是原始数据序列,而是生成的数据序列。其核心体系是灰色模型(Grey Model,简称GM),即对原始数据作累加生成(或其他方法生成)得到近似的指数规律再进行建模的方法。 优点是不...
  • [NLP自然语言处理]谷歌BERT模型深度解析

    万次阅读 多人点赞 2020-01-01 19:49:12
    我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”...BERT模型代码已经发布,...
  • 不得不说,这深度学习框架更新太快了尤其到了Keras2.0版本,快到Keras中文版好多都是错的,快到官方文档也有旧的没更新,... 笔者先学的caffe,从使用来看,比caffe简单超级多,非常好用,特别是重新训练一个模型,但是
  • 基于现有框架的代码编写的话,所以我们不再需要在业务中耦合这样的模型判断代码,系统内部会检查ModelState是否为Valid,如果为InValid会直接返回400 BadRequest,这样就没有必要执行后面的代码,提高效率。...
  • 文章目录0. 软件的生命周期1. 瀑布模型2. 螺旋模型3. 迭代模型4. 增量模型5....  瀑布模型是最早出现的软件开发模型,是所有其他软件开发模型的基础框架。与软件的生命周期不同的是,它缺少了软...
  • 灰色系统预测模型GM(1,1),GM(1,n)及Matlab实现

    万次阅读 多人点赞 2019-10-29 19:13:02
    灰色模型(Grey Model,简称GM模型)一般表达方式为GM(n,x)模型,其含义是:用n阶微分方程对x个变量建立模型。 3.灰色预测模型的目的: 通过把分散在时间轴上的离散数据看成一组连续变化的序列,采用累加和累减...
1 2 3 4 5 ... 20
收藏数 2,525,415
精华内容 1,010,166
关键字:

模型