-
【功能模块】nn.sequentialCell【操作步骤&问题现象】1、我在尝试搭建快速风格迁移的网络模型,其中需要用到训练好的vgg16网络中的卷积层输出。2、我使用modelzoo中提供的Vgg16网络,以及官网下载的vgg16.cpkt参数文件3、我发现官网提供的vgg16的模块编写中已经将5个卷积层写在一个sequential中了,我没法在一次前向运算中获得sequential内部的中间输出;如果我手动搭建卷积层,则会导致参数加载不到模型中。请问有什么好的办法吗?【代码】卷积层搭建def _make_layer(base, args, batch_norm): """Make stage network of VGG.""" # layers = nn.CellList() layers = [] in_channels = 3 for v in base: if v == 'M': layers += [nn.MaxPool2d(kernel_size=2, stride=2)] # layers.append(nn.MaxPool2d(kernel_size=2, stride=2)) else: conv2d = nn.Conv2d(in_channels=in_channels, out_channels=v, kernel_size=3, padding=args.padding, pad_mode=args.pad_mode, has_bias=args.has_bias, weight_init='XavierUniform') if batch_norm: # layers += [conv2d, nn.BatchNorm2d(v), nn.ReLU()] layers.append(conv2d) layers.append(nn.BatchNorm2d(v)) layers.append(nn.ReLU()) else: # layers += [conv2d, nn.ReLU()] layers.append(conv2d) layers.append(nn.ReLU()) in_channels = v return nn.SequentialCell(layers)class Vgg(nn.Cell): """ VGG network definition. """ def __init__(self, base, num_classes=1000, batch_norm=False, batch_size=1, args=None, phase="train"): super(Vgg, self).__init__() _ = batch_size self.layers = _make_layer(base, args, batch_norm=batch_norm) self.flatten = nn.Flatten() dropout_ratio = 0.5 if not args.has_dropout or phase == "test": dropout_ratio = 1.0 self.classifier = nn.SequentialCell([ nn.Dense(512 * 7 * 7, 4096), nn.ReLU(), nn.Dropout(dropout_ratio), nn.Dense(4096, 4096), nn.ReLU(), nn.Dropout(dropout_ratio), nn.Dense(4096, num_classes)])
-
记者12日获悉,特斯联近期在智能物联网技术(AIoT)领域取得最新科研成果,主要包括:优化智能物联网的能耗、延时与交互,算力网络的资源管理和任务调度,以及多智体反馈神经网络框架和应用。以上技术突破由特斯联前不久任命的首席科学家杨旸博士带队完成,该科研成果已被IEEE国际学术期刊和国际顶级会议收录。 由于蜂窝移动通信系统基础设施的封闭性,以及缺乏有效的现场测量工具,NB-IoT网络的许多重要指标一直以来都没有被深入地研究,例如:无线接入性能和能耗等。基于实际应用场景中完成的扎实研究工作,团队进一步给出了提升智能物联网技术规范和芯片设计方向的优化建议。 在工业物联网的应用场景中,无线传感器设备无需铺设专门的有线网络,具有灵活性和可扩展等优势。但是,工业生产环境中复杂时变的无线衰落信道会导致无法预测的随机服务时延和时延抖动,降低了工业生产闭环反馈控制系统的性能和稳定性,这是无线传感器设备和无线通信技术应用于高精度、高可靠的自动化工业生产系统的最主要技术挑战。 针对工业物联网应用场景中的严苛时延要求,杨旸博士及团队提出了在无线多径衰落信道中对时延分布进行塑形的新方法,通过对原始最优化函数的解耦分析,设计了“双层闭式反馈控制算法(TACAN)”,实现了时延分布方差的最小化,从而显著提高了工业物联网系统的可靠性和稳定性。 在智能物联网的应用场景中,边缘计算资源的广泛部署可以及时有效地满足终端用户的低时延、强计算、快响应等服务需求。针对复杂多变的无线信道环境和多层次的移动通信网络架构,杨旸博士与团队提出了基于大规模多天线中继节点辅助的多层次算力系统,来增强复杂用户任务的计算能力和效率。 此外,杨旸博士及团队提出了“多智体反馈神经网络”(MAFENN)框架,包含三个充分合作的智能体,其中的反馈智能体模拟了灵长类动物大脑中的信号反馈和错误纠正机制,有效提升了神经网络训练过程中的反馈学习能力、特征提取能力、噪声和干扰消除能力。
-
【功能模块】mindspore 1.5【操作步骤&问题现象】1、用昇思实现inception结构,只有一层的时候能够正常运行,但两层以上就会报错报错的原因是inception结构中的卷积层权重个数为192个,但第二层的输入为256但是,192是第一层的参量,到第二层就重新生成一个新的对象,为什么还沿用第一层的参量2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
面向工业互联网的制造服务协作等级协议轻量级框架研究蔡金莹1, 向峰1, 左颖2, 钟雷1, 周平11 武汉科技大学机械自动化学院,湖北 武汉 4300812 北京航空航天大学前沿科学技术创新研究院,北京 100191摘要面向服务型制造的工业互联网平台快速发展并落地应用,其对工业数据深度感知、实时传输、快速计算分析、高度反馈响应的优势逐步凸显,也为制造服务可靠协作的执行提供了平台支撑。提出了一种基于服务等级协议(SLA, service level agreement)的制造服务可靠协作轻量级框架,包括协作服务通信与接口模块、服务等级协议数据管理模块、服务协作服务质量(QoS, quality of service)协商模块、“失效—失信—守信”评估模块、激励和惩罚机制模块,同时给出了基于 SLA 的制造服务协作流程,从服务可信发布、协作有效执行、任务守信完成3个方面保障制造服务协作的可靠实施。关键词: 工业互联网 ; 制造服务 ; 服务等级协议 ; 服务质量1 引言服务型制造也被称为基于制造的服务或面向服务的制造[1],是制造与服务深度融合的生产新模式、新业态。发展服务型制造是重塑我国制造业价值链、推动产业转型升级的有效途径,对于制造业高质量发展具有重要的推动作用。在新一代信息和通信技术的驱动下,服务型制造通过制造服务协作在制造企业内部各领域、各环节之间动态获取、共享和整合制造资源和制造能力,以追求更高效的资源利用、更个性化的按需制造和更大规模的协同制造,实现各协作体的价值共创,利益共享。Tao 等[2]针对当前基于工业互联网平台的制造服务协作发展中存在的实体空间与网络空间互动不足和不信任的挑战,提出了面向工业互联网平台的数字孪生和区块链强化制造服务协同机制。陶熠等[3]根据制造企业外协加工制造服务的特征,构建了制造服务协作链,并通过算例验证了服务协作链优化的可行性。为提高服务协作链的高效性和稳定性,庞世宝等[4]建立了制造资源聚合模型来描述车间制造资源的聚集关系,并使用频繁子网络挖掘算法挖掘了频繁出现的服务协作链。然而,随着经济贸易活动向线上转移,大规模无序的合作使得信任代价更高,其中制造服务协作方之间信任的缺少和丢失,使得制造服务协作出现制造服务不可信、协作过程常失效、任务目标未完成等问题。为了解决制造服务协作存在的问题,需要协作主体间达成协作协议。制造企业基于工业互联网开发的服务管理软件、新型工业云构件库与工业软件可实现更高频的数据联系,可以更动态地掌握用户的需求变化和产品的使用状况,提升企业间服务协作能力,保障协作全过程的可靠实施。随着信息系统研究的发展,制造领域的竞争日益向以平台为中心的生态系统转移。与传统的面对面交流方式相比,基于平台的制造服务协作是一种高效、低成本的制造协作方式。工业互联网平台也被称为工业物联网平台[5],通过数据流和分析促进智能升级,在物理实体和网络组件全面互联的基础上形成新的模型和格式[6]。随着工业互联网平台的逐步落地和对其深入挖掘,以及工业应用对于数据传输、分析计算、高度灵敏的反馈响应等需求,面向服务化制造的工业互联网平台为制造服务可靠协作的执行过程提供了平台支撑与 保障。服务等级协议(SLA, service level agreement)[7]是用户和服务提供方经过一系列的协商后达成的协议,包括一系列服务条款。SLA详细描述了提供服务的范围、服务价格、服务质量(QoS, quality of service)以及授权的用户,规约了供应方和用户之间的职责、权利和义务。SLA文档详细描述了服务提供方在提供服务时承诺用户的服务性能标准,还规定了在违反SLA时的补救行动和性能低于承诺标准时的处罚约定。SLA的实现过程比较复杂,不同的SLA实现框架规定了不同的SLA实现方法。孙文辉[8]将SLA的概念引入 Web 服务体系架构,提出了一套基于 agent的在动态服务环境下自适应的SLA协商机制。于阳等[9]针对服务组合场景下基于SLA的QoS管理问题,提出了一个云计算背景下的动态SLA管理框架。胡铁楠等[10]针对云制造模式中底层物理资源属性难以接入云制造平台的问题,提出了一种总线SLA以及与之配合的多协议转换模块。高云璐等[11]针对企业用户和个人用户对质量属性的不同需求,提出一种基于SLA与用户评价的云计算信任模型。Torkashvan等[12]针对服务提供方是否有违规行为,提出了基于云的SLA管理,从已建立的 SLA 文档中定义云服务的 SLA 参数以监视和测量服务参数。稳定的QoS是保障工业互联网平台制造服务协作可靠实施的重要前提,QoS 的保证依赖于SLA实现。当制造服务协作从线下向工业互联网平台迁移时,由于工业互联网平台的无边界性,平台的接入是免费的。但平台内的制造服务、协作环境、任务需求会不断变化,服务提供方必须提供满足用户需求且稳定的QoS。因此,SLA特别是轻量级协议框架对于工业互联网平台内的服务协作重构、快速部署以及任务完成等具有监督和促进的作用。针对制造服务协作中QoS控制不足、服务保障颗粒度不清晰、协作关系失效缺乏约束方法等问题,本文提出了一种基于SLA的制造服务可靠协作轻量级框架,同时给出了基于SLA的制造服务协作流程,从服务可信发布、协作有效执行、任务守信完成 3 个方面保障制造服务协作的可靠实施。2 结束语SLA 对工业互联网平台下的制造服务 QoS 的管理具有重要作用,它直接影响制造资源的质量、服务协作的秩序和用户对类似服务的选择。本文针对工业互联网平台下的制造服务协作的特征及挑战,提出了一种面向工业互联网的制造服务协作等级协议轻量级框架并分析其应用流程,以保证制造服务协作方可靠的QoS,对企业提高制造服务的执行效率和协作方满意度具有重要的理论意义,在实际的制造服务协作过程中也具有一定的应用价值。制造服务平台能够通过制造服务等级协议使用服务推荐算法为复杂的制造任务创建服务组合,制造资源提供方依据制造服务等级协议提前对制造任务进行编排以提高制造资源的利用率。本文针对面向工业互联网的制造服务协作等级协议轻量级框架研究只是一个初步的尝试,未来将在制造服务任务的粒度划分、完善工业互联网平台的惩奖指标体系以及服务等级协议轻量级框架在服务应用的可靠性和安全性等角度进行深入研究。3 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-3-00049.shtml
-
基于工业大数据的厚板板形预报系统研发马宇飞1, 刘长鑫1, 孔伟2, 丁进良11 东北大学流程工业综合自动化国家重点实验室,辽宁 沈阳 1108192 宝山钢铁股份有限公司中央研究院,上海 201900摘要厚板板形是衡量厚板产品质量的重要指标之一,生产中最终板形的及时预报对于调整厚板生产操作与控制具有重要的意义。实际工业生产中,厚板数据具有耦合信息多、冗余信息量大、数据呈现多源异构性等特点,结合厚板板形预报的需求,设计并开发了厚板板形预报系统。利用数据转存功能,对工业大数据进行数据过滤和数据预处理,去除数据中的耦合信息和冗余变量。利用LSTM神经网络、卷积神经网络以及3D卷积神经网络对不同维度的数据分别提取数据特征,基于最大互信息系数将特征进行融合建立集成学习预报模型,有效地解决了多源异构数据所带来的建模困难。采用国内某厚板生产线的实际工业数据进行验证,结果证明了所开发系统的有效性。关键词: 厚板板形 ; 预报模型 ; 多源异构数据 ; 系统开发1 引言厚板是重要的钢材产品,被广泛应用于基础设施、船舶、工程机械、容器、能源和建筑等行业,在国民经济建设以及国防建设中占有重要的地位[1]。厚板产品品种繁多[2]、质量要求高、应用范围广,世界各国都把厚板的品种、质量作为衡量一个国家钢铁工业综合水平的尺度。对于生产后的厚板产品,主要从尺寸、板形、性能、表面和内质5个方面对产品质量进行评价,而板形作为与生产过程关系最密切[3]、控制最复杂的一种性能指标,受到人们广泛的关注[4]。板形本质上是描述钢板内部残余应力的分布,直观上是指钢板的翘曲程度,只要钢板内部存在残余应力,即可称之为板形不良。因此,在厚板的生产过程中,及时地预报最终板形质量并识别最终板形故障类别,能够及时对生产过程中的控制参数进行调整,修正产品质量,提高成材率。Laugwitz 等[5]通过分析矫直机中轧辊位置对板形的影响,建立有限元模型,并以此提供适当的调平策略,但该方法只能应用到特定的矫直机中,预测显性的板形缺陷。Schausberger等[6]针对厚板的轧制过程,提出一种减少轧制过程中轮廓误差的反馈控制方法,并建立数学模型描述厚板的角速度与轮廓演变之间的关系,同时应用到实际的工厂中,验证算法能够明显地降低厚板的轮廓误差。Yu 等[7]通过轧制过程中钢板的温度变化,提出了一种梯度温度轧制的新颖工艺,通过建立厚板轧制过程的有限元模型,计算轧件的温度场及应力,实验表明该方法相比于传统的均匀温度轧制能取得更优异的性能。上述方法从机理的角度出发,分析了轧制过程以及矫直过程对厚板质量的影响,但只针对某一个单一工序进行分析,使结果过于局限,缺少对厚板生产过程的全流程工序进行分析。工业大数据的迅速发展进一步促进了厚板板形质量预报技术的创新与发展。工业大数据及其应用将厚板生产全流程整个生命周期的工业数据进行综合分析[8],利用机理与数据驱动相结合的方式建立预报模型,能够更加高效准确地对最终板形质量进行预报,使整个厚板生产流程向信息化、智能化的方向迈进[9]。厚板生产过程中工序、设备复杂繁多,工序与工序之间的数据分布、数据类型、数据结构往往不尽相同,时序数据、图像数据、视频数据相互混杂,并且由于各个工序中控制变量多,控制关系复杂[10],因此厚板生产过程中的数据大多表现为高维异构数据。针对高维异构数据,Guo等[11]利用集成学习的方法,针对不同维度的异构数据基于深度学习方法分别建立分类模型,并利用对话状态追踪(DST, dialogue state tracking)将不同模型的输出结果进行统计得出分类结果,并利用医学图像数据进行验证,取得了良好的效果。Nguyen 等[12]提出了一种在异构集成系统中组合多个分类器的新方法,将基本分类器产生的预测多样性通过基于间隔的信息颗粒进行量化,然后通过考虑区间的边界和长度生成决策模型。上述方法需要针对不同高维数据建立多个预报模型,然而这会占用大量的计算资源,对在复杂的厚板生产现场的实际应用十分不友好。为了满足目前厚板生产过程的实际需要,本文利用厚板全流程生产过程中的工业大数据,设计并开发了一套针对厚板最终板形质量的预报系统。基于深度学习算法对厚板生产过程中的高维异构数据进行特征提取,并将数据特征进行融合,建立对最终板形质量的预报模型,对指定的厚板产品进行预报,最终得到针对厚板板形的预报结果,为评估厚板最终板形质量、定位厚板生产过程中的数据异常进行服务,进而不断修正厚板产品质量,提高产品合格率。本文主要介绍了厚板板形质量预报系统的整体架构的设计与开发,并结合实际的厚板板形预报过程进行了验证分析。2 结束语本文设计的系统实现了厚板生产过程数据转存、板形质量预报模型训练、最终板形质量预报的功能,能够在厚板的生产过程中提前预报钢板最终的板形质量,使操作人员尽早了解厚板最终的板形状态,并依据预报的不同板形异常类别,对厚板的生产过程采取不同的应对措施,从而提高厚板的合格率。数据转存功能不仅有效地去除了实际工业现场中的冗余数据,更节省了数据处理时间,使系统运行更加高效。同时,预报模型有效地利用了工业现场中的多源异构数据,能够保证模型的预报准确率在80%以上,且模型的预报效果优于基于传统算法建立的预报模型。3 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-3-00039.shtml
-
作者:姚勇喆人工智能和机器学习、传感器和物联网等技术正在从根本上改变制造业的运作方式。 随着所有这些变化,了解推动行业向前发展的趋势非常重要,这样我们的业务才能适应和发展。在过去的一个世纪里,制造业发生了很大的变化。 随着新的、先进的技术推动行业向前发展,制造业显然正在走信息化和自动化的道路。 人工智能和机器学习、传感器和物联网等技术正在从根本上改变制造业的运作方式。 随着所有这些变化,了解推动行业向前发展的趋势非常重要,这样我们的业务才能适应和发展。智能制造:追求完美在所有行业中,最有效的解决方案通常是最佳选择。这同样适用于制造。推动行业走向未来的创新技术植根于理想的解决方案。在工厂生产特定产品的完美解决方案是什么?我们离这个理想有多近?智能制造的理念是完全自动化的工厂,布局经过人工智能优化。人为干预为人为错误留下了空间,因此必须尽可能减少。理论上,这类工厂也更安全,因为人类工人不会面临短期或长期伤害的风险。这个理想目前还不能完全实现,但 2022 年的许多制造技术都非常接近实现这一目标。根据《财富商业洞察》的数据,2021 年全球智能制造市场规模为 2495.6 亿美元,预计 2022 年将增至 2778.1 亿美元。这些创新技术预计只会加速该行业的增长,因此了解其中的细微差别非常重要这些技术以维持具有竞争力的业务。2022 年推动智能制造的技术智能制造涵盖了一系列不同的技术。这些通常分为机器人技术、人工智能和物联网。这些类别中存在各种技术,并且它们经常以各种方式重叠。例如,制造业中的许多人工智能技术依赖于物联网传感器提供的数据。机器人过程自动化不要与物理硬件机器人技术混淆,机器人过程自动化可以自动化软件任务以简化员工的手动工作。可以自动化的一些类型的任务是:后台任务AR/AP 追踪供应商管理库存管理机器人过程自动化可以帮助更多的应用,但是自动化诸如此类的各种任务的可能性是 2022 年智能制造的一项重要技术。围绕该主题的一个共同主题是聊天机器人个性化的概念。对话式人工智能有可能极大地自动化员工的客户服务、故障排除和报告服务。人工智能和机器学习人工智能在智能制造中的作用是效率问题。复杂的 AI 和机器学习 (ML) 算法旨在充分利用现有技术,让机器运行更长时间,并找到方法让工厂在产生最低成本的同时提高生产力。制造业中最受欢迎的机器学习用例之一是预测性维护。等待进行维护直到机器发生故障对企业来说代价高昂。然而,结合特殊的物联网传感器,可以应用机器学习算法来预测机器何时应该提前维修,然后才能发生故障。 ML 在制造中还有许多其他用例,例如用于视觉检查的机器视觉。数字孪生数字双胞胎的概念来自我们如何使用人工智能的理想主义性质。如果我们正在寻找设置生产线的最有效方式,那么很难测试我们布局的效率。为了解决这个问题,数字孪生的概念将测试过程数字化。通过将我们的工厂车间数字化为基于现实的模拟,我们的生产线部件可以在模拟中重新排列和修改,以寻找最优化的布局。然而,数字双胞胎并不像模拟。与静态模拟不同,工程师可以查看基于真实世界条件的数据。这些数据来自现实世界中的传感器。这确保了数字孪生基于现实以获得更准确的画面。云技术出于多种原因,制造商正转向将数据安全地存储在云存储网络上。一个特别的原因是,制造商可以从世界任何地方安全地按需访问数据。另一个原因是在云中存储数据比在现场存储更便宜。当企业将数据安全地存储在云中时,他们可以降低每个生产站点的 IT 支持和存储硬件的费用成本。云存储还具有高度可扩展性和弹性。如果需要更多存储空间,则可以轻松添加更多存储空间。对于物理现场存储,这可能不是那么容易。在为某些服务执行云迁移时需要考虑一些挑战,但最终收益远远超过成本,具体取决于您的业务性质。虽然云有很多好处,但始终存在安全风险。请记住,您应该注意云基础架构的安全性以保护您的数据。物联网 (IoT)许多人认为人工智能是一种游戏,它会自行改变技术。然而,人工智能和机器学习技术严重依赖数据。近年来,人工智能在制造环境中变得如此有用的原因之一是物联网的进步。更具体地说,工厂中传感器的普及有助于为预测性维护、数字双胞胎、自动电源管理和计算机视觉驱动的质量保证等人工智能应用提供动力。物联网技术在工业领域变得越来越流行的另一个原因是无线连接技术的进步。 6 GHz Wi-Fi 使许多小型设备网络之间的连接在室内环境中更加可行。然而,许多公司在今年将面临的挑战是应对当前的芯片短缺。这导致新设备的采购稀缺。智能制造的未来到2022年,许多创新技术将重塑我们对智能制造的看法。世界各地地区和国家之间日益激烈的竞争导致了制造技术的革命,这种进步将持续到未来。然而,仅仅理解智能制造背后的技术还不足以让你的企业保持竞争力。以一种新的、独特的方式应用它们将为你的企业开辟一条通往未来的道路。同样重要的是要考虑您的业务必须处理的限制。例如,今年持续的芯片短缺限制了可添加到工厂车间的设备数量。当面临这样的限制时,bricolage 可能是制造商最好的朋友。那些能够适应2022年的限制并最大限度地利用现有技术的公司,将通过智能制造保障他们公司的未来之路。责任编辑:姜华 来源: 千家网
-
基于卡尔曼滤波器和多层感知器的大麦幼苗最优生长参数预测黄云龙, 李正权, 孙煜嘉江南大学物联网工程学院,江苏 无锡 214122摘要为了提高生长舱大麦幼苗的质量和种植效率,首先利用卡尔曼滤波算法对传感器采集的数据进行处理,有效降低了环境因素和传感器本身误差的影响,提高了采集数据的精度,保证生长舱的精确控制和准确的实验数据,然后利用多元非线性回归、径向基函数和多层感知器神经网络对不同条件下,大麦种子萌发生长约160 h后的平均生长高度、麦苗重量和种子重量干燥比进行分析比较,结果表明,多层感知器网络模型对数据的拟合效果最好。利用该模型预测最优环境时的大麦幼苗平均高度和麦苗种子重量比与实际种植效果基本一致,为生长舱大麦幼苗的种植提供一定参考。关键词: 麦苗萌发 ; 卡尔曼滤波 ; 径向基函数 ; 多层感知器 ; 传感器1 引言对牛、羊等食草动物而言,大麦幼苗具有很高的营养价值,麦苗生长舱可用于培育高品质食用大麦苗,生长舱种植是一种绿色种植模式。生长舱种植可以让麦苗处于适宜的生长环境,不受外界条件干扰,方便且可随时随地培育优质大麦苗,不仅减少劳动力还能加快生长,从而提高麦苗品质。所以,如何找到和营造这种最优环境因子成为该领域研究的重点。研究表明,温度、湿度和氯化钠溶液浓度对种子萌发及幼苗生长都有重要影响,研究发现大麦种子萌发的适宜温度为15~25℃[1],适宜湿度为80%~100%[2]。低浓度氯化钠溶液浸泡大麦种子对胚根生长有一定的促进作用,高浓度会抑制种子萌发[3]。光照后的植物,CO2浓度和O2浓度会对植物光合作用产生影响,在同等光照下,高浓度CO2能提高小麦幼苗叶绿素含量和水分利用率[4-5]。文献[1-5]未考虑光照比例和光照周期长短对麦苗萌发的影响。生长舱内温度场、湿度场、CO2浓度场等分布不均匀,导致传感器采集数据精确度随位置变化,使用流体力学仿真软件对温、湿度场进行模拟仿真可以找到传感器最佳布局方案,能一定程度提高传感器测量值准确度[6-7]。对于传感器精度优化,还应考虑温/湿度、CO2浓度场扩散速度和传感器采集数据误差处理,因此,文献[8]使用单传感器分批估计融合,结合传感器分组自适应加权融合算法,该方法能有效降低环境干扰。文献[9]对多个传感器采样,然后使用卡尔曼滤波融合算法,该方法能提高测量精度和容错性。本文对单个传感器数据使用卡尔曼滤波算法也能达到较高的精确度,同时,生长舱使用风机来加快温度场、湿度场、CO2浓度场扩散,保证数据具有较高准确性和较优的控制效果。麦苗萌发阶段的环境可以通过生长舱进行调节,本文在使用卡尔曼滤波算法精确控制温度、湿度、CO2浓度的基础上,加入光照黑暗比、光照周期时间、种子重量作为输入参数,分别通过非线性回归(NLR, nonlinear regression)、多层感知器(MLP, multilayer perceptron)和径向基函数(RBF, radial basis function)等模型预测种子萌发生长约 160 h后的平均生长高度、麦苗重量和种子重量干燥比。通过 3 种模型对 50 组实验数据的预测结果进行比较分析,然后使用较优的模型对不同生长条件下的麦苗高度和麦苗种子重量干燥比进行预测,寻找麦苗最优的生长环境。2 结束语考虑温度、湿度和 CO2浓度传感器自身的精确度和环境噪声影响,本文采用卡尔曼滤波器对生长舱系统中传感器采集数据进行滤波处理,并对该种方法进行了仿真对比,结果表明经过卡尔曼滤波得到的值比传感器直接采集的值更加接近真实值,有利于生长舱系统中温度、湿度和 CO2浓度的精确控制。卡尔曼滤波输出的温度、湿度、CO2浓度、NaCl浓度、光照黑暗比、光照周期、种子重量分别输入多元非线性回归、径向基神经网络和多层感知器神经网络,并对50组不同条件下,麦苗生长约160 h的平均生长高度、麦苗重量和种子重量干燥比进行分析比较。实验表明MLP网络对于本文数据具有较好的逼近效果和泛化能力,并使用该模型对本文设置的不同条件所有情况进行预测,即不同温度、湿度、CO2浓度、NaCl浓度、光照黑暗比、光照周期和育苗盘湿种子重量等生长环境下,麦苗的平均生长高度、麦苗重量和种子重量干燥比。本文设置的自变量共有 7个,每个自变量分为几组变化范围,本文对这种划分模式下的 6 480种生长方案使用 MLP 模型进行预测分析,预测结果显示使用50 mmol/L的NaCl溶液浸泡大麦种子约8 h,控制温度为23~25°C、湿度80%~90%、CO2浓度31.26~44.65 μmol/L、光照黑暗比1.5、光照时间8 h一周期,每个育苗盘湿种子重量3.5 kg,经过大约160 h水培生长,麦苗最大高度为14.6 cm,最大重量干燥比为6.6。实际种植效果与预测基本一致,对于麦苗萌发生长环境提供一定参考。表1 3种模型误差参数误差参数麦苗平均高度麦苗种子重量干燥比均方误差MSE平均相对误差MRE均方误差MSE平均相对误差MRENLR0.004 80.003 80.005 70.009 3训练集RBF0.003 20.001 60.009 20.010 5MLP0.004 60.003 80.004 70.008 9NLR0.004 70.004 10.018 60.016 0测试集RBF0.011 20.003 60.009 60.011 4MLP0.004 90.003 70.005 80.010 13 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-4-00090.shtml
-
基于多预测模型与非线性组合的神经网络风速预测王家君1, 曹薇2, 张贵龙2, 张淮智1, 凌子兴1, 赵小强11 西安邮电大学,陕西 西安 7101212 雅砻江流域水电开发有限公司,四川 成都 610051摘要针对复杂山地风速在时空特性上存在强随机性的问题,为了提高风速数据预测的准确性,提出一种基于多预测模型与非线性组合的神经网络风速预测算法。在算法第一层,利用灰狼优化器(GWO)并引入动态收敛因子改进鲸鱼优化算法(WOA),将改进后的 WOA 应用于反向传播神经网络(BPNN)权值及偏置项的更新过程。同时,基于改进后的鲸鱼优化算法的反向传播神经网络(IWOABP)、极限学习机(ELM)和长短期记忆(LSTM) 3种优势互补的方法构建组合预测方法,并在此基础上利用算法第二层的ELM混合机制,以非线性方式学习第一层与最终结果的关系。仿真结果表明,所提算法相较于BPNN、小波神经网络(WNN)及灰狼优化器导向的BPNN (GWOBP),预测误差均有所降低。关键词: 复杂山地 ; 风速预测 ; 鲸鱼优化算法 ; 神经网络1 引言风能作为一种清洁、环保、储量丰富的可再生能源在现代社会发展的应用逐渐增多,对于缓解全球能源危机具有不容忽视的作用[1]。作为风能资源开发和利用的首要环节,风能评估不仅是风电项目投资的核心,也是风能图谱绘制的重要步骤之一。风速作为风能监测的重要指标,需要对风电场的风速进行在线监测以确保数据的完整性和可靠性。除沿海地区及部分内陆平原外,我国大多数风电场都建设在地形复杂的山区[2]。例如,位于凉山州山区的雅砻江风光水互补清洁能源示范基地的平均风速在7 m/s以上,但其地貌特征的特殊性导致风速频繁变化[3],使得风速资源预测的挑战更加艰巨。因此,常用预测模型来预测未来的风速情况。Bizrah等[4]研究了季节性自回归滑动平均(ARMA, autoregressive moving average)风速预测模型,采用每日和每小时的数据进行测试以验证模型的准确度,该模型具有一定的可靠性,但未考虑风的高度随机性,仅考虑风的季节性变化,因此,该预测模型不具有很强的可移植能力。张亚刚等[5]研究了基于变模态分解(VMD, variational mode decomposition)、主成分分析径向基函数(PCA-RBF, principal components analysis- radial basis function)、ARMA及由VMD 分解风速的误差序列,基于风速的线性和非线性特性,分别采用贝叶斯方法的理论体系中马尔可夫链蒙特卡洛框架下的 ARMA 模型以及PCA-RBF模型对风速进行分析,该方法针对线性模型有相当出色的性能结果,但对非线性模型仍旧存在易陷入局部最优的缺点。刘光标等[6]将时间序列分解、自相关分析、优化算法和基本预测模型组合到一个优化框架中,其预测误差统计量小于其他模型,但更适合于预测平滑序列,在相对不平滑序列中的预测准确度不高。Ahadi 等[7]提出一种基于神经网络的风速时间序列预测方法,将神经网络方法获得的结果与 ARMA 模型获得的结果进行比较,尽管验证了神经网络方法相较于时间序列模型提供了更准确的风速时间序列预测,但仍存在误差大、精度低及实用性较差的问题。张亚刚等[8]研究了基于洛伦兹扰动的反向传播神经网络风速预测,利用洛伦兹扰动明显减弱了风速的随机波动性,更适合于复杂山地的风速变化环境,但其未能解决反向传播神经网络(BPNN, back propagation neural network)存在的局部最优解问题,导致其收敛结果不稳定。魏昱洲等[9]提出基于长短期记忆(LSTM, long short-term memory)网络的超短期风速预测算法,利用双层LSTM神经网络结构对北京市海淀区的风速进行了1 min、5 min、10 min的超前预测,由于LSTM网络考虑风速数据的历史关联性,相较于大部分算法,其预测精度高且误差较小,然而LSTM网络属于深度神经网络,其时间复杂度较高,尽管可以达到较高的准确率,但双层网络的设置会加倍增加网络开销。综上,现有的高空风能预测方式包括基于时间序列模型以及非线性拟合模型的风速预测方法。基于时间序列模型的预测方法主要依靠风速的时间特性,结合物理及推理演算的方式进行预测,尽管该方法在预测线性或平滑序列时的性能显著,但在非线性或不平滑的风速序列预测过程中仍存在模型复杂且精确度不高的问题。基于神经网络的非线性拟合方法虽比时间序列模型更精确,但神经网络存在易陷入局部最优解的缺陷。此外,以上算法仅使用单一的神经网络算法进行预测,导致算法误差较大,预测精度不高[10]。所以,针对风速多变的环境,本文采用群智能优化算法对传统的神经网络算法进行改进,克服神经网络易陷入局部最优解的缺陷,探索输入数据与输出数据之间的非线性关系;并采用非线性组合的风速预测方法,可充分利用各种单一模型的信息,有利于提高风速预测的精度,改变现有神经网络难以预测复杂风场风速的窘境。综上所述,本文围绕基于神经网络的预测算法与群智能优化算法展开复杂山地风能资源数据预测算法的研究,提出了基于改进鲸鱼优化算法的反向传播神经网络(IWOABP, improved whale optimization algorithm backpropagation neural)预测算法,可增强原算法的全局寻优能力,显著降低预测误差,提出了基于多预测模型与非线性组合的神经网络(MPM-NC-NN, multi prediction model and nonlinear combination neural network)风速预测算法,通过组合预测代替单一预测的方式,可提高现有预测算法的预测精度。2 结束语本文主要研究如何提升非线性神经网络预测算法的准确性,提出了一种基于多预测模型与非线性组合的神经网络风速预测算法。该算法利用IWOABP 与 ELM、LSTM 结合组成算法的第一层多预测模型,再经过第二层非线性混合机制预测,提高了算法的全局寻优能力和数据预测精准度。仿真结果表明,与BPNN、WNN、GWOBP对比,所提算法在预测性能方面均优于其他算法。3 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-4-00081.shtml
-
物联网 (IoT) 和 5G 等数字技术有助于减少排放,这是一个最近在商业界越来越热门的话题。例如,英国的一项案例研究表明,通过在制造、运输和农业领域采用它们,每年可减少1740万吨二氧化碳排放,从而为英国政府实现到2035年减少78%排放量、到2050年实现零排放的目标发挥关键作用。这一结论来自沃达丰和WPI Economics关于“净零连接:通过数字技术应对气候危机”的研究。这项研究选择了这三个领域,因为它们可以对英国的减排做出重大贡献。正如人们预料的那样,人口密度更高的地区,如城市,在碳排放量中所占的份额更大。然而,在农村地区,人均排放量更高。这项研究表明,如果不使用数字技术,部分二氧化碳排放量的减少是不可能实现的。例如,就制造业而言,之前成功的减排举措近年来有所放缓,但 3D 打印、智能传感器和自动化等物联网和 5G 技术有可能每年从大气中减少 270 至 330 万吨碳。在英国另一个排放量高的领域——农业,应用于监测作物和肥料、饲料和水供应的互联数字技术可以显著减少资源浪费,从而有助于减少 240至 480 万吨二氧化碳的排放。对于英国最大的排放源、自1990年以来几乎没有变化的英国地面交通来说,数字解决方案可以帮助减少交通和拥堵,从而限制不必要的燃料使用。研究表明,交通领域的减排潜力最大——每年最多可减少 930 万吨二氧化碳。制造细节从 1990 年代初到 2000 年代中期,英国制造业在脱碳方面取得了长足的进步,但近年来进展缓慢。2019年,由于英国的制造活动,约有8200万吨二氧化碳被排放到大气中,占该国总量的15%。在未来几年中,政府为实现2050年零碳排放而采取的关键行动中,技术处于中心位置。这些行动包括旨在使用低碳燃料源和部署工业数字技术的行动,其中工业数字技术可分为五大类,主要由物联网和5G推动:人工智能、机器学习和数据分析增材制造(3D 打印)机器人和自动化虚拟现实和增强现实工业物联网 (IIoT) 和连接性除了已经提到的减排之外,这些技术结合起来还可以在生产力、质量和效率方面带来重大好处。此外,埃森哲的一项分析显示,采用工业数字技术能够使制造业每年增长1.5%至3%,保守估计净增175,000个工作岗位。农业细节2019 年,农业排放了 4630 万吨二氧化碳,占英国排放总量的 9%。农业活动与其他领域不同,主要有两个原因:农业活动的主要温室气体排放不是二氧化碳,而是乙烷和一氧化二氮。农业活动导致气候变化,但它们也是解决方案的一部分——在农民管理的土地上种植树木、草和其他非农业植物,可以从大气中吸收二氧化碳。数字技术可以通过物联网传感器使农业更加智能,这些传感器有助于更好地利用自然资源、减少化肥消耗产生的排放、促进再生农业和恢复生物多样性。交通细节交通目前是英国最大的排放源,自 1990 年以来,地面交通(与航空或航运无关)产生的份额几乎没有变化,2019年二氧化碳排放量达到1.13亿吨,占英国总排放量的22%。大约78%的地面运输排放来自汽车和轻型货车。事实是,尽管该行业实现了显著的效率节约,但需求也有所增加。当今存在的物联网可以通过帮助改变驾驶员行为,同时作为联网和自动驾驶汽车以及最终电动汽车的基础,在短期内减少排放方面发挥重要作用。(编译:iothome)
-
【功能模块】https://gitee.com/mindspore/models/tree/master/official/cv/maskrcnn请问Gitee上maskrcnn是否可以提供预训练权重呢?【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
数字图像是一个二维的数组,对数字图像做卷积操作其实就是利用卷积核在图像上滑动,将图像点上的像素值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素点的像素值,并最终滑动完所有图像的过程。 通常,卷积核的宽度和高度一般是奇数,这样才有中心的像素点,所以卷积核一般都是3x3,5x5或者7x7等。$n×n$的卷积核的半径为$(n-1)/2$,例如5x5大小的卷积核的半径就是2。 函数介绍:python中的skimage图像处理模块,该函数可以方便的为图像添加各种类型的噪声。 `skimage.util.random_noise(image, mode, seed=None, clip=True, **kwargs)` 椒盐噪声也称为脉冲噪声,是图像中常常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。产生具有椒盐噪声的图像 from skimage import util import cv2 if __name__ == "__main__": img = cv2.imread("D:\\yt\\pictures2\\wink.jpg") #产生椒盐噪声,处理后图像变为float64格式 noise_sp_img = util.random_noise(img, mode="s&p") #显示图像 cv2.imshow("origin image",img) cv2.imshow("sp noise",noise_sp_img) #将图像转换为uint8格式,否则保存后是全黑的。 noise_sp_img = cv2.normalize(noise_sp_img, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8U) #储存图像 cv2.imwrite("D:\\yt\\pictures2\\sp_noise.jpg",noise_sp_img) cv2.waitKey(0) cv2.destroyAllWindows() 效果:左边为原图,右边加入了椒盐噪声 ![68c1b9ee1a098e835446035f215d1cac.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/26/1650938543390512025.png) 高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。 高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。高斯噪声是与光强没有关系的噪声,无论像素值是多少,噪声的平均水平(一般是0)不变。
-
图神经网络驱动的交通预测技术:探索与挑战周毅1, 胡姝婷1, 李伟1, 承楠2, 路宁3, 沈学民41 河南大学,河南 郑州 4500462 西安电子科技大学,陕西 西安 7100713 加拿大女王大学,加拿大 金斯顿 K7L 3N64 滑铁卢大学,加拿大 滑铁卢 N2L 3G1摘要随着物联网及人工智能技术的快速发展,对交通数据进行精准的分析和预测成为智慧交通的首要环节。近年来,交通预测方法逐渐从经典的模型驱动转变为数据驱动,然而,如何通过大数据有效分析路网的时空特性是预测过程中面临的关键难题之一。时空大数据分析是交通预测的利器,将交通路网建模为图网络,将深度学习方法在图网络上进行扩展,通过图神经网络建立时空预测模型,采用图卷积的方式有效地获取路网传感器节点之间的时空相关性,可以显著提高交通预测模型的精度。针对图神经网络驱动的交通预测技术进行了探索,基于深度时空特性分析提炼了两大类交通预测模型,并通过实例进行分析和验证,探讨了图神经网络在交通预测领域的技术优势和主要挑战,挖掘了图神经网络预测机制的潜在研究方向。关键词: 交通预测 ; 图神经网络 ; 时空相关性 ; 同步卷积 ; 图注意力网络1 引言近年来,城市车辆数量的急增引发了交通事故、交通拥堵等一系列安全问题,提高通行效率是城市交通发展的重要方向。在物联网时代的大背景下,城市交通逐渐向智能化、网联化[1]、绿色化等方向发展。智能交通系统(ITS, intelligent transportation system)充分利用人工智能、边缘计算[2]、物联网、传感网、移动通信[3]等前沿技术,可实现车辆对道路交通态势的智慧感知及人、车、路等要素的高效协同[4]。而交通预测是实现ITS的首要环节,也是助力交通控制、路径优化、车辆调度等各种应用的必要条件。交通事故、高峰拥堵等事件的频繁发生使交通状况随时间动态变化,导致了时间序列的非平稳性;另外,路网上布置的传感器之间存在着复杂的空间依赖性,即使两个传感器在欧几里得空间中的距离较近,也可能呈现完全不同的交通状态。因此,要获得准确的交通预测结果,必须同时解决时间相关性和空间相关性这两大交通预测挑战。交通预测方法分类及优缺点见表1。典型的交通预测方法主要有两大类,即模型驱动方法和数据驱动方法。模型驱动方法主要研究流量、速度和密度之间的瞬时和稳态关系,其主要依赖先验知识进行系统建模[5],如交通速度模型、排队论模型等。但实际道路中的交通态势易受交通事故、天气状况等多种因素的影响,很难用固定的模型模拟实际的交通状况。因此,随着交通物联网及大数据技术的快速发展,研究人员逐渐将注意力转向数据驱动方法。数据驱动方法主要根据数理统计分析法进行预测[6],早期有历史平均分析预测法,它将历史数据的平均值作为最终预测值,这种方法虽然计算简单但预测精度较低。随后,又出现了统计分析和机器学习两大类数据驱动预测模型。经典的统计分析模型对历史数据进行分析,然后利用回归函数进行预测,主要有线性回归预测法、自回归综合移动平均(ARIMA,auto-regressive integrated moving average)法[7]、卡尔曼滤波分析预测法[8]等。统计分析法虽然算法和模型简易,实现方便,但其主要建立在时间序列数据平稳的假设前提下。由于交通数据具有极强的动态性和高度非线性,统计分析模型不能有效地分析未来交通状况的发展态势。机器学习模型通过提取与交通相关的特征并对模型进行训练,可以用于非线性数据的模型构建,同时降低预测误差。常用的机器学习模型有 K 近邻、支持向量回归、人工神经网络等。Dell'Acqua 等[9]设计了一种时间感知多元近邻回归的预测方法。Luo等[10]将离散傅里叶变换和支持向量回归相结合,提出了一种混合预测方法。传统的机器学习模型依赖于人工提取的交通特征,虽然可以对非线性关系进行建模,但在捕捉时间特征时,其模型架构浅易、参数有限且计算效率较低致使其仅限于交通状况简单或交通数据规模较小的场景。近年来,前馈神经网络、深度信念网络、递归神经网络(RNN, recurrent neural network)等深度学习模型被广泛用于各种复杂关系的预测任务中,RNN作为一种特殊设计的神经网络,能够学习交通数据的长期时间相关性。Duan等[11]将RNN的变体长短期记忆网络(LSTM, long short-term memory)用于出行时间的预测。Wang等[12]结合LSTM和高斯过程回归对网络流量负荷进行预测。然而这些模型只考虑了交通大数据的时间特性,对路网结构中存在的空间特性考虑不足。随着深度学习在图网络领域的发展,从时空特征的分析角度研究交通预测势在必行。卷积神经网络(CNN, convolutional neural network)和RNN是提取时空相关性的典型方法。Han等[13]提出了一种大规模路网中短期预测的深度学习框架,通过基于CNN的深度聚类方法提取道路的形状特征,并在此基础上建立了基于RNN的深度预测模型。但CNN只能处理欧几里得域中的图像数据,路网符合一个非欧几里得空间的数据结构,这必然限制了 CNN的能力。图神经网络(GNN, graph neural network)[14,15,16,17]是一种在图域上运行的基于深度学习的扩展方法,它能够从底层数据中提取出网络中复杂的关联性,且在自然语言处理、推荐系统等任务上表现良好。随后GNN逐渐被用于交通领域,GNN分为图卷积网络(GCN, graph convolutional network)、图注意力网络(GAT, graph attention network)、图自动编码器、图生成网络和图时空网络等五大类[15]。Kipf等[18]采用了图卷积网络对图数据进行半监督学习,但该方法仍然不能同时捕获路网的时空特征及动态相关性。Li等[19]将道路结构整合为一张有向的路网拓扑图,提出了一种扩散卷积递归神经网络(DCRNN,diffusion convolutional recurrent neural network)模型,模型使用扩散卷积网络和门控递归单元(GRU,gated recurrent unit)分别捕获路网中的空间相关性和时间相关性。DCRNN 和时空图卷积网络(STGCN, spatio-temporal graph convolutional network)[20]作为最早的基于图的交通预测模型,通过结合GCN和RNN模型捕获路网的时空相关性。随后,越来越多的研究倾向于用图神经网络建模复杂的、非线性的、具有时空相关性的路网结构。Guo等[21]提出了一种优化的图卷积递归神经网络,在训练阶段通过数据驱动的方式学习一个优化图,利用交通数据揭示路段之间潜在的关系。由于图卷积赋予节点的权重矩阵是固定的,Cirstea 等[22]在DCRNN 的基础上引入注意力机制获得节点的自适应权重矩阵,进一步提高了预测精度,充分表明基于图神经网络的交通预测模型的有效性。尽管上述基于图神经网络的预测模型通过获取路网的时空相关性达到了较优的预测效果,但它们忽略了交通数据极强的周期规律性。例如,每个工作日的交通状况、每周整体的交通状况都具有一定的相似性。采用神经网络(RNN、多层感知器等)对这种周期规律性进行特征提取,然后与时空特征进行融合作为时空预测模型的输入将有利于提高预测精度。文献[23]分析了预测目标近期、日周期、周周期的 3 种时间维特性,构建了一个多组件时空图卷积网络架构,3个组件的输入分别经过多个时空卷积块和一个全连接层,经融合输出信息得到最终预测结果,其中每个时空卷积块都包含空间和时间两个维度的图卷积。为了提高预测精度,Guo 等[24]在多组件图卷积网络的基础上又加入了注意力机制,构成一种基于注意力机制的时空图卷积网络(ASTGCN, attention based spatial-temporal graph convolutional network),由时空注意力模块和时空卷积模块共同构成时空块,进一步降低了预测误差。Zhou 等[25]同时考虑路网的时空变量及周期规律性,通过融合时空变量和外部特征向量(日周期、周周期)构造输入向量,输入到由注意力机制和门控递归单元为基本架构的编码器模型,捕获时空相关性;为了发现历史时间序列的本质隐藏状态,在解码过程中也加入了注意力机制,结果表明注意力机制能够有效地提高预测精度。Shi等[26]设计了一种获取动态空间关联性的注意力机制,可以有效捕获路网的空间、时间及长期周期相关性。然而,交通事故等突发事件也会导致周期规律性存在偏差。Zhao等[27]考虑了非周期性拥堵下的预测,提出了一种优化的 GRU 算法,并分别在工作日、周末、雨天、事故4种场景下验证了模型的有效性,但其缺乏对路网时空相关性的考虑。基于图神经网络的交通预测模型从时空相关性的角度对路网特征进行分析。基于图神经网络的预测模型见表2,可以看出,在GNN的基础上,研究者又引入了随机扩散、注意力、膨胀因果卷积(DCC,dilated causal convolution)等方法提高预测精度。虽然上述方法已经展现了优越的性能,但仍存在一些亟待解决的问题。许多工作侧重于多步预测,常用的方法有全连接层(FC,fully connected layer)、序列到序列(Seq2Seq,sequence to sequence)模型[37]等。FC作为输出层,是获得所需输出形状最简单的方法[23,29]。而大多数基于图的交通预测方法都依赖于Seq2Seq模型架构[19,25,32],它主要包含两个组件:一个用于读取输入序列的编码器和一个根据编码器的输出产生最终输出序列的解码器,且通常选用 RNN 作为编码器和解码器的内部结构。然而,当前的Seq2Seq模型存在一个重要缺陷,在训练过程中,模型的损失由真实样本即传感器监测到的真实数据监督,解码器根据真实样本中当前时刻的真实值计算下一时刻的输出[38]。但是在测试的过程中,模型将当前时刻得到的预测值作为下一时刻的输入。训练时解码器的输入来自真实数据分布,而测试时解码器的输入来自模型分布,这会导致模型在训练和测试过程中产生的下一个决策存在差异,这个过程产生的误差便会迅速累积,这种差异又称为曝光误差(exposure bias)[39]。表1 交通预测方法分类及优缺点方法优点缺点模型驱动主要研究流量、速度和密度之间的瞬时和稳态关系,主要依赖先验知识进行系统建模模型固定,难以准确地模拟变化多端的真实交通状况数据驱动统计分析模型算法和模型简易,实现方便模型建立在时间序列数据平稳的假设前提下机器学习模型可以提取与交通相关的特征,用于非线性数据的模型构建依赖于人工提取的交通特征,模型架构浅易、参数有限且计算效率较低深度学习模型能够让计算机自动学习路网特征,减少对人工提取特征的依赖性只考虑路网空间或时间特征图神经网络+深度学习从时间和空间两个角度提取路网特征学习时间相关性效率不高,长期预测精度有待进一步提高新窗口打开| 下载CSV表2 基于图神经网络的预测模型文献空间模型时间模型数据集[5]GCNGRUSZ-taxi;Los-loop[28]GCNLSTM出租车的GPS数据(上海TIC)[23]GCN标准二维卷积PeMSD4;PeMSD8[20]GCN门控CNNBJER4;PeMSD7[29]GCNDCCPeMSD4;PeMSD7[30]GCN门控TCNMETR-LA;PEMS-BAY[31]考虑高阶邻域的GCNLSTMLOOP;INRIX[32]GCNGRU+注意力A-map[19]扩散卷积网络GRUMETR-LA;PEMS-BAY[21]基于优化图矩阵的GCNGRUD.C.;Philadelphia;PeMSD4[22]GATGRUMETR-LA[24]GCN+注意力标准二维卷积+注意力PeMSD4;PeMSD8[26]注意力LSTM+注意力PeMSD4;PeMSD8[33]GATLSTMPeMSD7[34]注意力注意力Xiamen;PeMS[35]时空同步卷积时空同步卷积PEMS03;PEMS04;PEMS07;PEMS08[36]注意力注意力METR-LA;PEMS-BAY新窗口打开| 下载CSV为了避免曝光误差的影响,Daumé等[40]首次提出在训练过程中减少对真实样本的依赖,令模型在训练的过程中使用自身的预测结果进行下一步预测。Li等[19]使用调度采样(scheduled sampling)的方法,通过采样随机决定用概率为ε的真实数据,或概率为1-ε的预测值作为模型的输入。虽然调度采样可以简单地缓解曝光误差问题,但它在地面真实值或模型输出之间随机选择,大大增加了误差反向传播的复杂度。Yu 等[41]采用生成对抗网络避免曝光误差问题的发生。生成对抗网络由生成器和判别器组成,生成器依据输入的真实样本尝试生成与之相似的数据,然后经过判别器识别生成数据与真实样本是否接近,鉴别完成后判别器会反馈给生成器一个奖励值,生成器根据奖励值的大小优化模型参数以生成更接近真实样本的数据。生成对抗网络类似于调度采样,在模型训练时依赖模型自身的输出避免对真实值的依赖,从而缓解曝光误差问题。然而,生成对抗网络没有损失函数的监督,在训练过程中很难判断是否正在取得进展。随后, Keneshloo等[42]将强化学习用于Seq2Seq模型。Zhou等[25]用强化学习中的蒙特卡罗策略梯度算法挖掘出相关性最大的信息,用自身的预测值训练模型,而不仅仅依赖数据分布,这在很大程度上缓解了Seq2Seq 模型中的曝光误差问题。当然,强化学习还包含Actor-Critic、深度确定性策略梯度(DDPG, deep deterministic policy gradient)等优于蒙特卡罗策略梯度的算法,如何用它们缓解曝光误差问题值得进一步研究。上述是本文总结的交通预测的研究现状,当然在本文之前也有许多类似的工作。例如,Lana等[43]总结了交通预测领域的最新技术成果,并对尚未解决的主要技术挑战进行了分析。Nagy 等[44]概述了现有的数据来源,详细介绍了如何使用预测方法促进交通流动性。Zhang等[45]主要对短期交通流预测中的ARIMA模型、RNN模型和稀疏自动编码器这3类方法做了总结。文献[46]对时空流量预测方法在解决城市交通问题上的发展现状进行了总结。Ye等[47]研究了多种基于图的深度学习架构在各种交通问题中的应用,总结了常见的交通问题及其相应的图深度学习解决方案。而本文主要探索了基于图神经网络的交通预测方法及其挑战,图神经网络驱动的交通预测研究框架如图1所示。本文总结了交通预测的发展背景及研究现状,在此基础上分析了通过图神经网络进行预测比经典方法更能充分利用路网空间相关性的优势。同时,本文综述了用图神经网络捕获路网时间相关性、空间相关性及时空相关性的几种典型方法,并用经典的DCRNN时空模型进行了实际交通数据的预测分析与验证。另外,本文还从间接捕获和直接捕获两个角度提炼了图神经网络驱动下的交通预测模型。最后,深入挖掘了交通预测技术中潜在的研究方向。1 结束语本文针对如何充分利用路网时间相关性和空间相关性进行预测等问题,综述了将图神经网络中图卷积网络、图注意力网络等关键技术与递归神经网络相结合进行交通预测的时空预测模型。基于上述模型,本文总结了两种捕获路网时空相关性的解决方案:直接捕获、间接捕获。最后,提供了基于图神经网络的交通预测中与强化学习结合、大型路网预测、长期预测的精度、非周期拥堵下的预测、实际交通场景应用等可能的发展方向。总之,图神经网络驱动下的交通预测不仅可以获取路网的时空特征,还有望解决预测过程中大型路网、长期预测等技术难题,为智能交通系统的实现奠定了坚实的基础。2 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-4-00001.shtml
-
【功能模块】您好!我想请教一下在使用MindSpore框架创建一个卷积层时,如何设置该层的权重精度?【操作步骤&问题现象】1、像传统的Keras框架创建一个卷积层只需要在声明时指定dtpye=“float32”就可以指定这一层的权重精度,例如以下语句是合法的:keras.layers.Conv2D( 8, [3, 3], strides=(2, 2), padding='valid', dtype=“float32”, kernel_initializer=keras.initializers.Constant(value=0.5) )2、但使用Mindspore框架声明卷积层时则不可以,没有这个参数指定【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
小Mi给大家的介绍中,我们谈到了怎样使用反向传播算法计算代价函数的导数。今天,小Mi将继续带大家了解神经网络的实现过程,废话不多说,赶快跟小Mi一起学起来吧~4 实现注意:展开参数首先,有一个细节的实现过程值得关注一下,就是如何把参数从矩阵展开成向量,以便我们在高级最优化步骤中使用。具体来说,小Mi执行了代价函数,输入的参数是theta,函数返回代价值以及导数值,然后就可以将返回值传递给高级最优化算法fminunc,顺便需要说一下的是,fminunc并不是唯一的算法,当然也可以使用别的优化算法,但它们的功能都属取出这些输入值,比如@costFunction以及theta值的一些初始值,并且这些程序都假定theta和这些theta初始值都是参数向量(也许是n维或者n+1维),但它们都是向量。同时假定代价函数第二个返回值,也就是梯度值也是n维或者n+1维,所以这也是一个向量,这部分在逻辑回归的使用过程中是没有任何问题的,但现在我们用神经网络时,我们的参数不再是向量了,而是矩阵。因此对于一个完整的神经网络,我们的参数矩阵为,代码编写过程中可以设为matrices(Theta1,Theta2,Theta3),同样地,这些梯度项也是需要得到的返回值,之前小Mi也带大家学习了如何计算这些梯度矩阵,分别是,程序中可以直接编写为matrices(D1,D2,D3)。那么如何取出这些矩阵并且将它们展开以便最终成为恰当的格式,从而可以传入上述的Theta中并得到梯度返回值呢?更进一步来说,假设我们有一个这样的神经网络,其输入层有10个输入单元,隐藏层也有10个单元,最后的输出层只有一个输出单元,因此一层的单元数,等于第二层的单元数,等于第三层的单元个数。在这种情况下,矩阵和矩阵D的维度(实际上这里多出来一个和D矩阵)将由表达式决定。比如说,是一个10*11的矩阵,以此类推,如果你想在矩阵和向量之间来回转化,那么需要做的就是取出Theta1,Theta2,Theta3,然后使用下面部分的代码,从而取出三个矩阵中的所有元素,然后把它们全部展开称为一个很长的向量,也就是thetaVec;同样地,下图中的第二句代码将取出D矩阵中的所有元素,然后展开成一个长向量,叫做DVec。最后的话,如果想从向量表达返回到矩阵表达式的话,比如要想得到Theta1,那么取thetaVec,抽出前110个元素,Theta1就有110个元素,因为它是一个10*11的矩阵,所以抽出前110个元素,然后你就能使用命令reshape来改变矩阵大小得到Theta1,同样,要重新得到Theta2,就需要抽出下一组110个元素并且重新组合,然后对于Theta3,也需要抽出最后110个元素,然后执行reshape命令得到Theta3。构建三个独立的矩阵Theta1,Theta2,Theta3,最后把所有这些矩阵变成一个向量,现在thetaVec就变成了一个很长的向量,含有231个元素,包括三个矩阵的所有元素。那如果想重新得到原来的矩阵,可以对thetaVec使用reshape命令,抽出前110个元素,并将它们重组为一个10*11的矩阵,这样我们又再次得到了Theta1的矩阵,同理,获取Theta2,Theta3也是如此。为了使这个过程更具体,我们可以看下如何将这一方法应用于学习算法中。假设我们有一些初始参数值,。我们要做的是取这些参数,然后将它们展开为一个长向量,可以称之为初始的Theta值。然后作为Theta参数的初始设置传入优化函数fminunc,而要做的另一件事就是实现代价函数。代价函数的实现算法如下:代价函数会得到输入函数thetaVec,其包含了所有的参数向量,所有的参数都展开成一个向量的形式。因此我们要做的第一件事是使用thetaVec和重组函数reshape,抽出thetaVec中的元素,然后重组以得到我的初始参数矩阵,这些就是我们需要得到的矩阵,这样就有了一个使用这些矩阵的更为方便的形式,从而执行前向传播和反向传播来计算出导数以及代价函数。最后的话,可以取出这些导数值然后展开它们,让它们保持和展开的值同样的顺序,展开D1,D2,D3来得到gradientVec,这个值又可由代价函数返回,以一个向量的形式返回这些导数值。现在大家是不是对参数的矩阵表达式与向量表达式之间的来回转换有了一个更清晰的认识呢?使用矩阵表达式的好处就是,当你的参数以矩阵的形式存储的话,进行正向传播和反向传播时会更加便捷;而将参数存储为矩阵时,也会更容易充分利用向量化实现。还有一点需要注意的是,假设遇到thetaVec或者DVec这样的矩阵时,使用一些高级的优化算法,而这些算法会通常要求把所有的参数都展开成一个长向量的形式,希望通过本节的学习大家可以更加灵活地在两种形式之间来回切换~5 梯度检验之前我们已经讨论过如何在神经网路中使用前向传播和反向传播来计算导数,但是反向传播算法含有很多细节,因此实现起来比较困难,同时它还有一个不好的特性,当我们对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,可能会存在一些不容易察觉的错误,看起来它确实能正常运行,并且代价函数在每次梯度下降的迭代过程中也在不断减小,尽管运行情况看起来确实不错,但最终的结果其误差可能会比无bug的情况下高出一个量级,并且你很可能不知道你得到的结果是由bug导致的。那么面对这种情况,我们应该如何解决呢?为了避免这样的问题,我们采取一种叫做梯度的数值检验(Numerical Gradient Checking)方法,它能解决几乎所有这种问题。如果在神经网络或者其他算法中实现反向传播或者类似梯度下降算法时,可以都进行一下梯度检验,从而可以完全保证前向传播以及后向传播都是百分之百正确的。而这种问题之所以会出现,是因为绝大多数都和反向传播的错误实现有关。之前我们提到的关于的计算公式,以及关于d的,等等,这些确实都可以计算出代价函数的梯度。而当我们去实现梯度检验的时候,可以自己去验证自己的代码是否能够正确计算出代价函数的导数。现在小Mi就带大家具体来说明一下梯度检验啦~大家可以看一下上面的图例,假设有一个代价函数,有一个值(在这里假设是实数),假如我们想估计函数在这一点上的导数,那么该点的导数就是图像在该点切线的斜率。现在我们要从数值上来逼近它的导数,或者说这是一种从数值上来求近似导数的方法。首先计算出,在的右边一点点,然后再计算出,也就是在的左边一点点,现在要做的就是把这两个值对应的点用直线连起来,然后所得红线的斜率(即蓝色切线的斜率)就是所求该点导数的近似值,数学上来讲的话,该斜率等于该段的垂直高度除以该段的水平宽度,即(是一个很小的值)。实际上只要足够小,该点真正的导数就成了函数在这一点上真实的斜率。当然,需要注意的是,过分小的值会引发很多数值问题,所以通常会给取左右的值。可能以后我们还会遇到单侧差分这样的式子,而我们计算的是双侧差分。可以执行以下代码实现,计算出gradApprox(该点导数的近似值):gradApprox = (J(theta + eps) – J(theta - eps)) / (2*eps)上述小Mi的所有讲解都是针对是实数而言,更普遍的情况也就是当为向量参数的时候,假设是一个n维向量(可能是神经网络中参数的展开式),同理,所有的偏导数项的近似值也可以直接求出,比如代价函数关于第一个参数的偏导数,关于第二个参数的偏导数等等。代码实现:对神经网络中代价函数所有参数的偏导数的计算,然后与我们在反向传播中得到的梯度进行比较,DVec是从反向传播中得到的导数,而反向传播是计算代价函数关于所有参数的导数或者偏导数的一种有效方法,接下来要做的就是验证计算出的导数gradApprox是否接近于用反向传播所计算出的导数DVec,如果两者非常接近,只有几位小数的差距,那么就可以说明反向传播的实现是正确的。从而向量DVec用于梯度下降或者其他高级优化算法中时,就可以确信计算的导数是正确的,那么代码也会正常运行,并可以很好地优化。总结下,如何实现数值上梯度检验的步骤:1.通过反向传播来计算DVec(DVec可能是矩阵展开的形式);2.实现数值上的梯度检验,计算出gradApprox3.确认DVec和gradApprox是否相似,只有几位小数的差距。4.在训练网络之前,关闭梯度检验,不要再去用导数计算公式来计算gradApprox了(因为梯度检验计算量非常大的,速度比较慢),相对地,反向传播算法是一个高性能的计算方法,一旦我们通过检验确定反向传播的实现是正确的,就应该关掉梯度检验,不要再去使用了。6 随机初始化前面小Mi的介绍已经包括了神经网络中所有需要实现和训练的内容,不过随机初始化的思想也是需要学习的。当我们执行一个算法,比如梯度下降法或者高级优化算法时,我们需要为变量选取一些初始值。对于高级优化算法,它会默认你会为变量提供一些初始值。对于梯度下降算法,同样我们也需要对进行初始化。初始化完毕之后,就可以一步一步通过梯度下降来最小化代价函数J。那么又应该如何对设置初始值呢?有一种想法是将的初始值全部设为0,这样的初始方法对于逻辑回归来说是可行的,但实际上在训练网络时将所有的初始值都设为0起不到任何作用。以这个神经网络的训练为例,假设我们将所有的参数都初始化为0,这样的话就意味着隐藏单元和都是以同一输入函数来计算的。而对于神经网络中的所有训练样本最后总能得到,即使梯度下降进行了迭代,但隐藏单元依然以相同的函数输入,计算相同的特征,这是一种高度冗余的现象,最终只会得到一个特征,这就阻止了神经网络去学习别的更多的东西。为了解决这个问题,对参数进行初始化时,要采用随机初始化的思想,具体来说,随机初始化就是解决对称权重的问题(所有的权重都一样)。我们将其初始化为一个范围在的随机值。(和之前梯度检验中的没有任何关系)代码实现:因此,为了训练神经网络,应该首先将权重随机初始化为一个接近0的数,然后进行反向传播,再进行梯度检验,最后使用梯度下降或其他高级优化算法来最小化代价函数J。7 总结在训练一个网络的时候,我们要做的第一件事就是要选择一种网络架构(神经元之间的连接模式):比如上图中第一种包含三个输入单元,五个隐藏单元和四个输出单元,第二种则是三个输入单元,两组五个隐藏单元,四个输出单元等等。也就是说我们需要决定选择多少层以及决定每层分别有多少个单元。那么这个时候又该如何选择呢?第一层的单元数即我们训练集的特征数量。最后一层的单元数是我们训练集的结果的类的数量。如果隐藏层数大于1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。因此,我们真正要决定的是隐藏层的层数和每个隐藏层的单元数,而每个隐藏层所包含的单元数量需要与输入x的维度特征相匹配,隐藏单元的数目可以和输入特征数目相同,或者是其二倍、三倍等等。好了,这下小Mi终于可以总结下啦~训练神经网络实现步骤:1.构建神经网络,然后随机初始化权重2.执行前向传播算法计算所有的,也就是输出向量3.通过代码计算代价函数4.利用反向传播算法计算所有偏导数5.利用梯度检验方法检验这些偏导数6.使用优化算法来最小化代价函数8 实例:自主驾驶其实在我们生活中,神经网络能运用到的很常见的一个场景就是自动驾驶。在自动驾驶系统中,车辆会通过摄像头和传感器不断收集周围环境的数据,并指导车辆完成相应动作。车辆的传感器主要完成探测周围物体位置及预测其运动趋势的任务,摄像头则完成对周围物体进行识别以及对交通标志进行分类的任务。摄像头在对图像分类过程中使用的算法是机器学习中的神经网络算法。小Mi带大家看看 Dean Pomerleau基于神经网络实现的自主驾驶是什么样儿的。在下图的左下方是汽车所看到的前方的路况图像。在图中我们依稀能看出一条道路,朝左延伸了一点,又向右了一点。还可以看到一条水平的菜单栏显示的是驾驶操作人选择的方向。就是这里的这条白亮的区段显示的就是人类驾驶者选择的方向。比如:最左边的区段,对应的操作就是向左急转,而最右端则对应向右急转的操作。因此,稍微靠左的区段,也就是中心稍微向左一点的位置,则表示在这一点上人类驾驶者的操作是慢慢的向左拐。这幅图的第二部分对应的就是学习算法选出的行驶方向。并且,类似的,这一条白亮的区段显示的就是神经网络在这里选择的行驶方向,是稍微的左转,并且实际上在神经网络开始学习之前,你会看到网络的输出是一条灰色的区段,就像这样的一条灰**段覆盖着整个区域这些均称的灰**域,显示出神经网络已经随机初始化了,并且初始化时,我们并不知道汽车如何行驶,或者说我们并不知道所选行驶方向。只有在学习算法运行了足够长的时间之后,才会有这条白色的区段出现在整条灰**域之中。显示出一个具体的行驶方向这就表示神经网络算法,在这时候已经选出了一个明确的行驶方向,不像刚开始的时候,输出一段模糊的浅灰**域,而是输出一条白亮的区段,表示已经选出了明确的行驶方向。ALVINN (Autonomous Land Vehicle In a Neural Network)是一个基于神经网络的智能系统,通过观察人类的驾驶来学习驾驶,ALVINN能够控制NavLab,装在一辆改装版军用悍马,这辆悍马装载了传感器、计算机和驱动器用来进行自动驾驶的导航试验。实现ALVINN功能的第一步,是对它进行训练,也就是训练一个人驾驶汽车。然后让ALVINN观看,ALVINN每两秒将前方的路况图生成一张数字化图片,并且记录驾驶者的驾驶方向,得到的训练集图片被压缩为30x32像素,并且作为输入提供给ALVINN的三层神经网络,通过使用反向传播学习算法,ALVINN会训练得到一个与人类驾驶员操纵方向基本相近的结果。一开始,我们的网络选择出的方向是随机的,大约经过两分钟的训练后,我们的神经网络便能够准确地模拟人类驾驶者的驾驶方向,对其他道路类型,也重复进行这个训练过程,当网络被训练完成后,操作者就可按下运行按钮,车辆便开始行驶了。每秒钟ALVINN生成12次数字化图片,并且将图像传送给神经网络进行训练,多个神经网络同时工作,每一个网络都生成一个行驶方向,以及一个预测自信度的参数,预测自信度最高的那个神经网络得到的行驶方向。比如这里,在这条单行道上训练出的网络将被最终用于控制车辆方向,车辆前方突然出现了一个交叉十字路口,当车辆到达这个十字路口时,我们单行道网络对应的自信度骤减,当它穿过这个十字路口时,前方的双车道将进入其视线,双车道网络的自信度便开始上升,当它的自信度上升时,双车道的网络,将被选择来控制行驶方向,车辆将被安全地引导进入双车道路。这就是基于神经网络的自动驾驶技术。当然,我们还有很多更加先进的试验来实现自动驾驶技术。但很多人都认为,使用这样一个简单的基于反向传播的神经网络,训练出如此强大的自动驾驶汽车,的确是非常值得称赞的(小Mi也竖起了大拇指)。原文链接 :https://blog.csdn.net/skytttttt9394/article/details/122732979
-
MindSpore循环神经网络一. 神经网络的组成神经元模型:首先简单的了解以下构成神经网络的最基础单元:神经元。每个神经元与其它神经元相连,处于激活状态时,就会向相连的神经元发送相应信号。从而改变其它神经元的状态。如果某个神经元的信号超过某个阈值。那么将被激活,再接着发送给其它神经元。如图1所示:神经网络的任何神经元都可以表述为上述的形式。该单元主要由输入变量、带权参数和激活函数组成。首先是x1,x2,x3带权重的输入变量,该变量的取值来自前面一层所有变量与权重的乘积,然后再求和,在数学上表示为下式:其中,x为自由的输入变量,xl为当前l层,这里的累加求和为前面一层所有变量与权重的乘积,n为神经元个数。在实践当中,神经网络的输入层由训练样本给定。隐含层和输出层的x取值由前一层计算得到。其中b为偏置参数。激活函数:理想中的激活函数是如图2所示的跃迁函数,将输入值映射到O或1,很直观的1对应着神经元激活状态,0则表示神经元处于失活状态。然而由于跃迁函数不连续且非光滑(无法完美表达大脑神经网络的连续传递过程),实际常用Sigmoid函数作为激活函数。典型的Sigmoid函数如图3所示,把可能的数压缩进(0,1)输出值之间,又名挤压函数(squashing function)。将许多这样的神经元按照一定的层次结构组织起来,就得到了人工神经网络。发现这个模型是由许多个函数不断嵌套而成。感知机与多层网络:输入层接收外界的输入信号然后传递给输出层,输出层为逻辑单元,图4中的感知机有三个输入:x1、x2、x3。通常,可以根据数据的维度设置数量。这里是一种计算输出的规则,引入了权重(weight),w1,w2,…,wj等实数来表示各个输人对于输出的重要程度。神经元的输出是0或者l,分别代表未激活与激活状态,由加权和的值是否小于或者大于某一个阈值(threshold value)决定。与权重一样,阈值也是一个实数,这是神经元的一个参数。使用更严密的代数形式来表示:对于上面决策的式子,基本的思想就是:这是一个通过给每个维度数据赋予不同权重从而做出决策的机器,就可以判断出该事件可不可行。也需要通过调整权重和阈值的大小,得到不同的决策模型。很显然,感知机不能完全模拟人类的决策系统。但是,一个由感知机构成的复杂网络能够做出更加精细的决策,可解释得通的。在图5所示这个网络中,第一层感知机,通过赋予输入的权重,做出三个非常简单的决策。第二层感知机呢?每一个第二层感知机通过赋予权重给来自第一层感知机的决策结果做出决策。通过这种方式,第二层感知机可以比第一层感知机做出更加复杂,更高层次抽象的决策。第三层感知机能够做出更加复杂的决策。通过这种方式,一个多层网络感知机可以做出更加精细的决策。图5网络最左边的是输入层神经元,用于接收外界输入信息,中间为隐藏层,对信号进行一定加工与转换,最右边为输出层神经元,最终结果由输出层神经元输出表示。因此,通常被称之为两层网络。一般情况下,只需要包含隐藏层,即可称为多层网络。神经网络的学习过程,就是根据训练数据来调整神经元之间的“权重”,以及每个功能神经元的阈值。设计网络的输入层通常是非常直接的。例如,,要尝试识别一张输入图像是否有“1”。很自然的,,可以将图片像素的强度进行编码作为输入层。如果图像是64×64的灰度图.需4096=64×64个输入神经元。每个强度都取0-1之间适合的值。输出层只需要一个神经元,当输出值小于0.5,表示该图像不是“1”,反之,表示输出的图像是“1”。相较于完全固定的输入层和输出层,隐含层的设计是个难题,特别是通过一些简单的经验来总结隐藏层的设计流程不一定总是可行的。讨论的神经网络,都是的前面一层作为后面一层的输入,这种经典的网络被称为前馈神经网络。这也就意味着网络中没有回路,信息总是向前传播,从不反馈。二. 神经网络模型神经网络就是由很多个单一的神经单元组合到一起,这里面的一个神经单元的输出就可以是另一个神经单元的输入,每一个神经元有着各自的功能,通过将这些功能各异的神经元有序组合,就可以构成结构不同、用途不同的神经网络。例如,图6就是一个简单的人工神经网络。对于图6神经网络图的解释,使用小圆圈来表示神经网络要接受的信号,标上的圆圈中的+1被称为偏置节点(bias)。神经网络最左层用于接受的外部的信息,称为输入层,最右层是经过神经网络处理后最终的输出,称为输出层(本例中,输出层只有一个节点)。中间所有节点组成的一层用于变换计算,看不到具体计算过程,称为隐藏层,无法在训练样本集中观测到它们的值。同时也可以看到,以上神经网络的例子中有3个输入单元(维度为3,偏置单元不计在内),3个隐藏单元及一个输出单元。在这里,用Lx来表示网络总共有几层,本例中很显然x=3,同时,将第1层记为L1,则L1为输入层,L3为输出层。本例的神经网络有训练参数(W,b),其中(W1,b1,W2,b2)其中W1是第l层第j单元与第l+1层的第i单元之间的连接参数,bi则为第l+1层的第i单元的偏置单元。偏置单元是没有输入的,因为它们总是输出+1。同时,,记第l层的节点数为si。用ai表示第l层第i单元的激活值(输出值)。当l=1时,ai=x,也就是第i个输入值(输入值的第i个特征)。对于给定参数集合(W,b),,的神经网络就可以按照函数h从(x)来计算输出结果,则计算过程:这里用zi来表示第l层第i单元的激活值(包含偏置单元)。这样就可以将激活函数f()扩展写为向量的形式来表示,则上面的等式可以更简洁地写为:上式的计算过程被称为ANN的前向传播。先前使用a=x来表示输入层的激活值,依此类推给定第l层的激活值al之后,则第l+1层的激活值a就可以按照如下式子来计算:讨论了一种通用的人工神经网络结构,可以构建另种结构的神经网络(这里的结构指的是两个神经元的连接方式),即含有多个隐藏层的神经网络。例如有一个有nl层的神经网络,那么第1层为输入层,第n层是输出层,中间的每个层l与H+1层紧密相联。在这种构造下,很容易计算神经网络的输出值,,可以按照之前推出的式子,一步一步地进行前向传播,逐个单元地计算第L2层的每个激活值,依此类推,接着是第L3层的激活值,直到最后的第Ln层。这种联接图没有回路或者闭环,所以称这种神经网络为前馈网络。除此之外,神经网络的输出单元还可以是多个。举个例子,图8的神经网络结构就有两层隐藏层:(L2和L3层),而输出层L4层包含两个输出单元。要求解这样的神经网络,需要样本集(x,y)。如果想要预测的输出是有多个分类的,那么这种神经网络就比较适合,例如检测一张数字图片,就有两个输出。三. 神经网络的反向传播多层网络的学习拟合能力比单层网络要强大很多。所以想要训练多层网络,前面的简单感知机学习方法显然有些不足,需要拟合能力更加强大的算法。反向传播算法( Back Propagation,BP)是其中的经典方法,BP算法不仅可以用于多层前馈神经网络,可以用于其它类型神经网络,例如LSTM模型,通常所说的BP网络,一般是用BP算法训练的多层前馈网络。可以先通过BP网络的走向图大致掌握以下反向传播算法的主要用处,从输入层开始,数据进入到网络中经过每一层的计算变化,最终得出实际输出。然后和期望输出做比较计算损失值,此时的损失值将按照反方向逐渐向前传播计算,通过梯度下降的方式优化网络中的参数,求取出符合要求的网络模型。如图9中所示:接下来,将通过公式计算逐步的展示BP网络的基本结构。最开始要假设,有一个固定训练集合{(x1,y1),…,(xm,ym)},样本总数为m。利用批量梯度下降法来求解参数,也属于有监督学习方法。具体到每个样本(x,y),其代价函数为下式:对于给定有m个样本的数据集,可以定义整体的代价函数为:上式中的第一项J(w,b)是均方差项。第二项则是规则化项,用来约束解以达到结构风险最小化( Structural risk minimization,SRM),目的是防止模型出现过拟合( over fitting)。BP算法的总体流程:首先对每个样本数据,进行前向传播计算,依次计算出每层每个单元的激活值。接着计算出第l层的每个节点i的“残差”值δ,该值直接体现了这个单元对最终的输出有多大的影响力。最后一层输出层则可以直接获得最终结果和输出结果的差值,,定义为δ(,而对于中间的隐藏层的残差,,则通过加权平均下层(l+1层)残差来计算。BP算法的具体推导过程如下:1)前馈网络传导的计算,逐层算出L2到最后一层的每层节点的激活值。2)计算各节点的残差值,对于输出层,使用如下公式:3)从最后一层依次向前推导到第2层,第l层的残差为:最后得出BP算法的描述:在下面的伪代码中,ΔW0是一个与矩阵W维度相同的矩阵,△b0是一个与b0维度相同的向量。注意这里“ΔW”是一个矩阵。下面,实现批量梯度下降法中的一次迭代:1)对于所有l,令△W0:=0,Δb0:=0(设置为全零矩阵或全零向量)。2)对于i=1到m,3)更新权重参数:现在,可以重复梯度下降法的迭代步骤来减小代价函数J(w,b)的值,进而求解,的神经网络。四.门控制循环单元门控循环神经网络(gated recurrent neural network)的提出,为了更好地捕捉时间序列中时间步距离较大的依赖关系。通过可以学习的门来控制信息的流动。其中,门控循环单元(gated recurrent unit,GRU)是一种常用的门控循环神经网络。下面将介绍门控循环单元的设计。引入了重置门(reset gate)和更新门(update gate)的概念,从而修改了循环神经网络中隐藏状态的计算方式。门控循环单元中的重置门和更新门的输入均为当前时间步输入XtXt与上一时间步隐藏状态Ht−1,输出由激活函数为sigmoid函数的全连接层计算得到。具体来说,假设隐藏单元个数为h,给定时间步t的小批量输入Xt∈Rn×d(样本数为n,输入个数为d)和上一时间步隐藏状态Ht−1∈Rn×h。重置门Rt∈Rn×h和更新门Zt∈Rn×h的计算如下:Rt=σ(XtWxr+Ht−1Whr+br),Zt=σ(XtWxz+Ht−1Whz+bz),其中Wxr,Wxz∈Rd×h和Whr,Whz∈Rh×h是权重参数,br,bz∈R1×h是偏差参数。接下来,门控循环单元将计算候选隐藏状态来辅助稍后的隐藏状态计算。如图11所示,将当前时间步重置门的输出与上一时间步隐藏状态做按元素乘法(符号为⊙)。如果重置门中元素值接近0,那么意味着重置对应隐藏状态元素为0,即丢弃上一时间步的隐藏状态。如果元素值接近1,那么表示保留上一时间步的隐藏状态。然后,将按元素乘法的结果与当前时间步的输入连结,通过含激活函数tanh的全连接层计算出候选隐藏状态,具体来说,时间步t的候选隐藏状态H~t∈Rn×h的计算为:H~t=tanh(XtWxh+(Rt⊙Ht−1)Whh+bh)其中Wxh∈Rd×h和Whh∈Rh×h是权重参数,bh∈R1×h是偏差参数。从上面这个公式可以看出,重置门控制了上一时间步的隐藏状态如何流入当前时间步的候选隐藏状态。而上一时间步的隐藏状态可能包含了时间序列截至上一时间步的全部历史信息。因此,重置门可以用来丢弃与预测无关的历史信息。最后,时间步t的隐藏状态Ht∈Rn×h的计算使用当前时间步的更新门Zt来对上一时间步的隐藏状态Ht−1和当前时间步的候选隐藏状态H~t做组合:Ht=Zt⊙Ht−1+(1−Zt)⊙H~t.值得注意的是,更新门可以控制隐藏状态应该如何被包含当前时间步信息的候选隐藏状态所更新,如图11所示。假设更新门在时间步t′到t(t′<t)之间一直近似1。那么,在时间步t′到t之间的输入信息几乎没有流入时间步t的隐藏状态Ht。实际上,这可以看作是较早时刻的隐藏状态Ht′−1一直通过时间保存并传递至当前时间步t。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较大的依赖关系。对门控循环单元的设计稍作总结:重置门有助于捕捉时间序列里短期的依赖关系;更新门有助于捕捉时间序列里长期的依赖关系。五.长短期记忆网络门控制循环单元是为了解决循环神经网络短期记忆问题提出的解决方案,引入称作“门”的内部机制,可以调节信息流。在上次的内容分享中,简单解析了名称为GRU的门控制循环单元。因为“门”的机制,还可以在此基础上创新出性能更优的循环单元。本次分享的内容也是基于GRU循环单元的强化版:长短期记忆网络(long short-term memory,LSTM)门控制循环单元。通过图13可以很明显的发现LSTM比GRU“门”的数量更多结构也更复杂。LSTM 中引入了3种类型的门,即输入门(input gate)、遗忘门(forget gate)和输出门(output gate),以及与隐藏状态形状相同的记忆细胞。输入门、遗忘门和输出门:此3种控制门与门控循环单元中的重置门和更新门功能相似。如图2所示,长短期记忆的门的输入均为当前时间步输入Xt与上一时间步隐藏状态Ht-1,输出由激活函数为sigmoid函数的全连接层计算得到。如此一来,由于sigmoid函数的特性,此3个门元素的输出值域均为[0, 1]。具体来说,假设隐藏单元个数为h,给定时间步t的小批量输入Xt ∈ Rn×d(样本数为n,输入个数为d)和上一时间步隐藏状态Ht−1 ∈ Rn×h。时间步t的输入门It ∈ Rn×h、遗忘门Ft ∈ Rn×h和输出门Ot ∈ Rn×h分别计算如下:It = σ(XtWxi + Ht−1Whi + bi),Ft = σ(XtWxf + Ht−1Whf + bf ),Ot = σ(XtWxo + Ht−1Who + bo),其中的Wxi,Wxf ,Wxo ∈ Rd×h和Whi,Whf ,Who ∈ Rh×h都属于权重参数,其余是bi, bf , bo ∈ R1×h是偏差参数。候选记忆细胞:接下来便是记忆细胞的机制,长短期记忆需要计算候选记忆细胞C˜t。它的计算与上面介绍的3种门类似,但这里使用了值域在[-1, 1]的tanh函数作为激活函数。时间步t的候选记忆细胞C˜t ∈ Rn×h的计算可以表示为:C˜t = tanh(XtWxc + Ht−1Whc + bc),上述表达式中的Wxc ∈ Rd×h和Whc ∈ Rh×h是权重参数,bc ∈ R1×h是偏差参数。记忆细胞:,可以通过元素值域在[0, 1]的输入门、遗忘门和输出门来控制隐藏状态中信息的流动,这一般也是通过使用按元素乘法(符号为⊙)来实现的。当前时间步记忆细胞Ct ∈ Rn×h的计算组合了上一时间步记忆细胞和当前时间步候选记忆细胞的信息,并通过遗忘门和输入门来控制信息的流动:Ct = Ft ⊙ Ct−1 + It ⊙ C˜t.如图16所示,遗忘门控制上一时间步的记忆细胞Ct-1中的信息是否传递到当前时间步,而输入门则控制当前时间步的输⼊Xt通过候选记忆细胞C˜t如何流入当前时间步的记忆细胞。如果遗忘门一直近似1且输入门一直近似0,过去的记忆细胞将一直通过时间保存并传递至当前时间步。这个设计主要是针对循环神经网络中的梯度衰减问题,并且还可以更好地捕捉时间序列中时间步距离较大的依赖关系。隐藏状态:有了记忆细胞以后,接下来,还可以通过输出门来控制从记忆细胞到隐藏状态Ht ∈ Rn×h的信息的流动:Ht = Ot ⊙ tanh(Ct).这里的tanh函数确保隐藏状态元素值在-1到1之间。需要注意的是,当输出门近似1时,记忆细胞信息将传递到隐藏状态供输出层使用;当输出门近似0时,记忆细胞信息只自己保留。图17展示了长短期记忆中隐藏状态的计算。LSTM的输入门、遗忘门和输出门可以控制信息的流动。隐藏层输出包括隐藏状态和记忆细胞,只有隐藏状态会传递到输出层。长短期记忆可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较大的依赖关系。总结:首先,从网络的基础单元神经元开始,不同的神经元组合就构成了各种功能不同的神经网络模型。BP网络就是一种具有自我更新参数能力,具有一定的容错性和抗干扰性。基本方法:学习过程由数据集信号的正向传播和误差的反向传播两个过程组成,通过两种传播不断优化模型。门控循环单元(GRU)的改进是引入了门的概念,从而也修改了循环神经网络中隐藏层重点计算方式。LSTM的核心是细胞的状态,以及其中的各种门结构。细胞状态充当传输通道,在序列链中进行着相关信息的传递。也可以抽象为网络的“记忆”。————————————————原文链接:https://blog.csdn.net/wujianing_110117/article/details/116105385
上滑加载中
推荐直播
-
全面解析华为云EI-API服务:理论基础与实践应用指南
2024/11/29 周五 18:20-20:20
Alex 华为云学堂技术讲师
本期直播给大家带来的是理论与实践结合的华为云EI-API的服务介绍。从“主要功能,应用场景,实践案例,调用流程”四个维度来深入解析“语音交互API,文字识别API,自然语言处理API,图像识别API及图像搜索API”五大场景下API服务,同时结合实验,来加深开发者对API服务理解。
回顾中 -
企业员工、应届毕业生、在读研究生共探项目实践
2024/12/02 周一 19:00-21:00
姚圣伟 在职软件工程师 昇腾社区优秀开发者 华为云云享专家 HCDG天津地区发起人
大神带你一键了解和掌握LeakyReLU自定义算子在ONNX网络中应用和优化技巧,在线分享如何入门,以及在工作中如何结合实际项目进行学习
即将直播 -
昇腾云服务ModelArts深度解析:理论基础与实践应用指南
2024/12/03 周二 14:30-16:30
Alex 华为云学堂技术讲师
如何快速创建和部署模型,管理全周期AI工作流呢?本期直播聚焦华为昇腾云服务ModelArts一站式AI开发平台功能介绍,同时结合基于ModelArts 的实践性实验,帮助开发者从理论到实验更好地理解和使用ModelArts。
去报名
热门标签