-
作为人工智能社区群策群力的早期形式,「众包」成就了 ImageNet 等一批成功的数据集,也加快了整个社区的发展进程。但要构建人工智能技术开发生态,仅靠「众包」是不够的。2009 年,由知名科学家李飞飞发起,来自全球 167 个国家近 5 万名工作者以众包的方式,通过三年合作努力,完成了日后触发人工智能领域发展浪潮的伟大数据集 ImageNet。数据规模巨大,标注错误极低,ImageNet 发布十余年以来,已成为淬炼图像处理算法不断升级的试金石。2010-2017 连续开展八年的 ImageNet 全球挑战赛,推动了物体识别平均准确率等 AI 领域关键指标不断提升,更让深度学习算法自 2012 年在此舞台之上大放异彩,进一步引发了人工智能领域的革命。 众所周知,ImageNet 包含 1500 万张带标注的图像,工程十分浩大。帮助李飞飞完成这一壮举的,是当时刚刚兴起的社区概念——众包。可以说,众包一直在人工智能领域扮演着重要角色,一定程度上加快了这一领域的历史进程。但与此同时,社区并没有止步于众包,而是向前又走了一步。昇腾计算产业的成员企业华为,提出了一种新的模式——众智,汇聚企业、高校、科研院所等组织的力量,做硬核开发。2021 年 3 月 18 日,昇腾众智计划正式上线。众智类似于众包,但又不同于众包。众包是繁复的人力投入,而「昇腾众智」意在通过「硬件开放、软件开源、使能伙伴」的方式,激发开发者的智慧,在网络模型开发、算子开发以及行业参考设计开发等几类项目上进行创新。 此外,「昇腾众智」计划还关注后续的人才培养以及开放平台、社区的建设和发展,这就改变了传统众包「交付即终点」的模式,对开发者的个人成长甚至整个社区的发展都有着更加深远的意义。为何众智?如何众智?3 月 13 日,国家发布了「十四五」规划纲要。纲要指出,「十四五」期间,我国将通过一批具有前瞻性、战略性的国家重大科技项目,带动产业界逐步突破前沿基础理论和算法,其中就包括深度学习框架等开源算法平台的构建以及学习推理决策、图像图形、语音视频、自然语言识别处理等领域的创新与迭代应用。由此可见,加快国内人工智能的发展在国家战略层面正变得越来越重要。过去几年,昇腾计算产业已构建起完整的全栈 AI 软硬件平台,包括基于昇腾架构的系列硬件,异构计算架构 CANN、深度学习计算框架 MindSpore 等软件平台。通过上述平台构建的AI基础设施,涵盖纲要中提到的图像、语音、自然语言处理等多项技术,可以加快医疗、能源、交通、制造等多个行业的智能化升级。AI 模型和基础软件都是高度依赖生态建设的项目,无法依靠单一力量来完成,需要汇聚开发者,共同打造昇腾计算产业生态。在过去的 2020 年,昇腾社区从学、练、用、考、赛等维度为开发者提供了完善的软件资源、专业培训、技术支持、生态政策和产品方案,上线了 50 多个开发者系列课程、1008 本学习资料、100 + 工具与样例、100 + 模型,MindSpore 开源开发者已突破 10 万 + 人。虽然已经取得了一些成绩,但要想加快这一进程,昇腾需要整个社区的力量来共同托举,这也是「昇腾众智」计划诞生的初衷。 那么如何「众智」呢? 具体而言,「昇腾众智」主要涉及的是异构计算架构 CANN 算子开发、主流深度学习网络模型(基于 MindSpore、PyTorch 等)开发和行业参考设计开发等。 这些需求都以项目的形式发布在「昇腾众智」的官方页面上,每两周刷新一次。近期公布的 140 个项目需求包含 MindSpore 数据增强算子、MindSpore 模型等,涵盖文本、图像、视频、自然语言、目标检测等多个领域。打开「项目任务书」,我们可以看到项目的具体细节,包括任务描述、知识背景要求、任务要求、任务清单、开发指导等内容。对该项目感兴趣且符合要求的开发者可以填写与自身情况相对应的申请表。和「众包」、「外包」不同的是,在「昇腾众智」计划中,参与任务的开发者和昇腾之间并不是「冷冰冰的业务关系」,而是一种并肩作战的合作关系。如果你在开发中遇到问题,你可以随时向昇腾的专家寻求帮助。这种帮助包括但不限于硬件、软件、技术指导和答疑等。 群策群力,多方受益 前面说到,在「昇腾众智」计划中,开发者与昇腾之间是一种并肩作战的合作关系,合作的目的是创建一个强大的生态和社区。这就意味着,参与「昇腾众智」的开发者甚至整个社区都将从中受益。 开发者包含高校师生、科研机构研究者、企业开发团队等多个群体。对于这些群体来说,他们收获的不仅仅是项目交付后的奖金激励和项目开发期间的算力资源支持,还有昇腾颁发的荣誉证书(优秀开发团队和个人将受邀参加华为旗舰大会)以及华为招募引进人才的优先权等。 其他的潜在收益还包括项目经验积累、创新研究项目合作以及行业影响力的提升等。 以高校为例,高校是一个偏重学术的环境,「昇腾众智」将更多的真实项目带进校园,使得学生有更多的机会接触真实的业务场景,得到业内专家的指导,从而加深对于 AI 的理解,沉淀更多的实践经验。 科研院所和企业有所不同。科研院所汇聚了一大批优秀研究者,但在算力、场景扩展、科研创新等方面也需要一些外部支持,「昇腾众智」恰好可以在这些方面提供支持,满足科研机构在多个方面的科研需求。企业所在的行业往往需要配套的行业参考设计,在昇腾的技术支持下,企业可以更快地开发自己行业所需的参考设计,提升自身的行业影响力。 除了这些,「昇腾众智」对于整个人工智能社区也有很重要的意义。一方面,这些项目开发完成后将在昇腾社区开放,供所有开发者下载使用,免去开发者重新写代码、训练模型的麻烦,加速社区的发展进程。另一方面,昇腾社区、MindSpore 社区与其他开源开放社区可以借助这一项目建立紧密的联系,为高校、科研机构、企业和开源社区的成员搭建一个广阔的交流、合作平台,共同加速 AI 社区的发展。 以上几点在本月初启动的「OpenI 启智 & MindSpore 集结号」活动中已经有所体现。这一活动由 OpenI 启智社区和 MindSpore 社区共同举办,旨在集中高校开发者合作开发 MindSpore 高性能模型(模型众智)。中国工程院院士、鹏城实验室主任、北京大学博雅讲席教授高文在「集结号」活动中讲话。其实,早在「集结号」活动之前,「昇腾众智」就已经开始了一些小规模的探索,这些探索为计划的正式上线蓄积了力量。自去年启动昇腾众智计划以来,已有浙江大学、上海交通大学、西安交通大学、中国科学院等超过 40 所高校和科研机构参与其中(排名不分先后)。他们已经完成 484 个 PyTorch 算子分析、368 个算子开发、15 个 MindSpore 模型交付和 2 个 PyTorch 模型交付,行业参考设计的众智活动也已经完成试点。十几年前,ImageNet 让我们看到了群体力量的伟大;如今,昇腾不止要利用这股力量,更想要挖掘其中的「智慧」,创造一种新的 AI 开发模式。 目前,「昇腾众智」的初步目标是通过线上、线下两种方式** 200 + 团队、2000 + 开发者。
hellohelloya
发表于2022-01-06 10:33:02
2022-01-06 10:33:02
最后回复
hellohelloya
2022-01-06 10:33:02
1276 0 -
盘点 AI 十年来取得的重要突破。过去十年间,人工智能技术突飞猛进,最疯狂的科幻小说场景现在已经成为我们生活中不可或缺的一部分。十年前,人们在谈论 AI 的理论化和实验,但这些年来,AI 变得更加切实了,也变成了主流。无论是国际标准课程、平台、库、框架、硬件,一切都顺理成章。就算说这十年里取得的成绩奠定了未来的基础,也不为过。这篇文章将盘点 AI 十年来取得的重要突破。卷积2012 年是深度学习历史上重要的一年。那一年,卷积神经网络(CNN)在著名的 ImageNet 挑战赛中大放异彩。由 Alex Krizhevsky 等人设计的卷积神经网络「Alexnet」以远超第二名的成绩夺冠,在 ImageNet 数据集上的视觉识别错误率为 15.3%,降低了一半。该神经网络对猫的检测准确度达到了 74.8%,在 YouTube 视频中检测人脸的准确率为 81.7%。现在,手机和商场中的人脸识别应用都应该归功于 2012 年的这项工作,识别准确率的提升使研究者能够进行医学成像模型的部署,这些模型具备高置信度。与 AI 对话Vaswani 等人 2017 年发表的《Attention Is All You Need》带来了级联效应,使得机器能够以前所未有的方式去理解语言。得益于 Transformer 架构,AI 现在能够撰写假的新闻、推文,甚至可能引起政治动荡。继 Transformer 之后,谷歌又推出了 BERT 模型,将其用于关键字预测和 SEO 排名等。BERT 如今已经变成了自然语言处理领域的实际标准,诸如 Microsoft 和 NVIDIA 之类的公司开始堆积更多参数来追赶该模型。NVIDIA 的 Megatron 具有 80 亿个参数,而 Microsoft 的 Turing NLG 模型具有 170 亿个参数。OpenAI 的 GPT 模型后来居上,1750 亿参数的 GPT-3 目前是历史记录的保持者。GPT-3 也是 Transformer 的扩展,是目前最大的模型,它可以编码、写散文、生成商业创意,只有人类想不到,没有它做不到。将人类一军AI 早已在国际象棋中击败了人类。而更加复杂的人类游戏,如 Jeopardy! 游戏、围棋、德州扑克等,也没有挡住算法的脚步。人工智能近几年来最广为人知的事件就是 AlphaGo 在最复杂棋类游戏——「围棋」上击败了人类顶级选手。与此同时,在这个十年中,IBM 的 Watson 也在 Jeopardy! 决赛中击败了两位人类,最终 Watson 获得了 77147 美元奖金,而两位人类分别获得了 24000 和 21600 美元。Facebook 和卡耐基梅隆大学共同开发的德扑 AI Pluribus 战胜了五名专家级人类玩家,实现了前辈 Libratus(冷扑大师)未能完成的任务,该研究还登上了 2019 年的《科学》杂志。2020 年 12 月,DeepMind 提出的 MuZero 让一种人工智能模型掌握多种游戏,包括将棋、国际象棋和围棋。每一个生物体的行为都可以在其蛋白质中寻踪溯源。蛋白质承载着秘密,**蛋白质或许有助于击败新冠大流行。但蛋白质结构非常复杂,需要不断地运行模拟。DeepMind 尝试解决这一难题,其开发的深度学习算法「Alphafold」**了出现五十年之久的蛋白质分子折叠问题。计算机视觉被证明可以帮助诊断,而解决蛋白质折叠问题甚至能够帮助研发人员开发新药。AI:是艺术家,也是骗子去年,在一则视频中,比利时首相谈论着解决经济和气候危机的紧急需求,后来人们发现这其实是 Deepfake 视频。在机器学习和 AI 对比利时首相声音和表达方式的操纵下,这则假视频让首相发表了一场关于全球变暖影响的演讲。这些伪造内容的背后是精心设计的算法——生成对抗网络(GAN)。该算法在 2014 年提出,并得到广泛应用,甚至已经侵入了人类工作的最后一道壁垒:创作。这种网络可以生成从未存在的人脸、互换人脸,让一国总统胡言乱语。GAN 生成的一幅画甚至在佳士得拍卖会上以破纪录的价格——40 万美元成交了。GAN 的另一面是被用于恶意目的,以致于像 Adobe 这种公司不得不研究新技术来鉴别伪造内容。GAN 在下一个十年里仍将是被广泛讨论的对象。秘密武器——硅神经网络的概念诞生了半个世纪,今天流行的反向传播方法也出现三十年了。但是,我们仍然缺少能够运行这些计算的硬件。过去十年,我们见证了十多家公司研究专门的机器学习芯片。这些年来,芯片技术得到了极**展,我们可以在手掌大小的设备上执行百万次运算。这些芯片被用到数据中心,用户可以观看自己喜欢的 Netflix 电影、使用智能手机等。接下来,专为边缘设备定制的 AI 芯片蕴含着价值数十亿美元的商机。苹果等公司已经开发了定制化机器学习芯片(如 A14 Bionic)来提供智能服务。即使是依赖英伟达和英特尔的 AWS,也正在慢慢进入芯片行业。随着芯片变得越来越小,这一趋势只会更加明显:例如使用英伟达 Jetson AGX Xavier 开发者套件,你可以轻松创建和部署端到端 AI 机器人应用,用于制造、零售、智能城市等等。谷歌的 Coral 工具包可将机器学习带到边缘设备上。安全、实时输出是目前的主题。开源文化逐渐成熟2015 年,TensorFlow 开源。一年后,Facebook AI 又开源了基于 Python 的深度学习框架 PyTorch。今天,TensorFlow 和 PyTorch 已经成为使用最广泛的框架。通过不断的版本更新,谷歌和 Facebook 为机器学习社区带来了极大便利。自定义库、软件包、框架和工具的爆发式增长,使得更多人进入了 AI 领域,也为 AI 研究带来了更多人才。开源是近几年的一个主要特性。开源工具和越来越多的可用资源(如 arxiv 或 Coursera)促进了 AI 变革。另一个催化剂是流行的竞赛平台——Kaggle。Kaggle 和 GitHub 滋养了一批高质量 AI 开发者。更多学习,更少规则Schmidhuber 教授上世纪 90 年代初提出的元学习概念,最近才逐渐得到关注。元学习指在有限训练示例的基础上,使机器学习模型学习新技能并适应不断变化的环境。通过操纵超参数对特定任务优化机器学习模型需要大量用户输入的话,过程会较为繁琐,而使用元学习后,这一负担将得到极大缓解,因为元学习将优化部分自动化了。自动优化带来了一个新的行业 MLaaS(机器学习即服务)。未来方向关于一些专家预测以下领域或许将发挥主要作用:可复现性差分隐私几何深度学习神经形态计算强化学习尽管 AI 已经进入许多我们未曾想象的领域,但它仍需应用到更流行的应用中,如自动驾驶汽车。然而,挑战更多地在于数学层面:目前已有能够做出准确决策的算法,也有能够处理这些算法的处理器,但何时能够部署到应用上仍未可知。不管是医疗还是自动驾驶汽车,AI 仍需要继续进展,而这只有在透明性和可复现性得到建立时才会发生。原文链接:https://**yticsindiamag.com/ai-top-decade-2010-2020-breakthroughs/本文来源:https://www.jiqizhixin.com/articles/2021-01-11-3作者:RAM SAGAR编译:蛋酱 魔王
-
感知器学习 接下来我们看看感知器是如何与线性回归模型产生联系的。 感知器(Perceptrons)是用于二元分类问题的监督学习算法,二元分类器是二类问题的线性分类器。Mark I 感知器是感知器算法的第一个实现,感知器算法由Frank Rosenblatt于1957年在康奈尔航空实验室发明,感知器旨在成为一台机器,而不是一个程序,这台机器专为图像识别而设计:它有一个由400个光电池组成的阵列,随机连接到“神经元”,权重由电位器编码,并且在学习期间通过机器执行权重更新。在美国海军组织的1958年新闻发布会上,Rosenblatt发表了关于感知者的声明,这一声明引起了人工智能社区的激烈争论。根据罗森布拉特的声明,感知器是“电子计算机的胚胎,走路,说话,看,写,复制自己,并感受到它的存在。”单层感知器仅能够学习线性可分离的模式。1969年,一本名为Perceptrons的书表明,感知器网络不可能学习XOR功能。但是,如果我们使用非线性激活函数(而不是梯度函数),则可突破此限制。事实上,通过使用非线性激活函数,我们可以构建比XOR更复杂的函数(即使只有单层),如果我们添加更多隐藏层,则可以拓展处更复杂的功能,即我们接下来要介绍的多层感知器(深度学习)。我们回顾一下:1)感知器是生物神经元的简化模型。2)感知器是用于学习二元分类器的算法:将其输入映射到输出值的函数。3)在神经网络的背景下,感知器是使用Heaviside阶跃函数作为激活函数的人工神经元,感知器算法也称为单层感知器,以区别于多层感知器。4)Perceptron算法具有历史意义,但它为我们提供了一种拉近线性回归和深度学习之间差别的方法。5)单层感知器的学习过程如下所示,每加入一个数据点,感知器便会更新一次线性边界,类似于线性回归中的回归线。下图为感知器的示意图,f为阶跃函数,输出为二进制(0或1),i1-in为输入,Wi为各个输入的权重:
-
经典网络结构1. LeNet5 由两个卷积层,两个池化层,两个全连接层组成。卷积核都是5×5,stride=1,池化层使用maxpooling 2. AlexNet 模型共八层(不算input层),包含五个卷积层、三个全连接层。最后一层使用softmax做分类输出 AlexNet使用了ReLU做激活函数;防止过拟合使用dropout和数据增强;双GPU实现;使用LRN 3. VGG 全部使用3×3卷积核的堆叠,来模拟更大的感受野,并且网络层数更深。VGG有五段卷积,每段卷积后接一层最大池化。卷积核数目逐渐增加。 总结:LRN作用不大;越深的网络效果越好;1×1的卷积也很有效但是没有3×3好
-
CNN基本部件介绍1. 局部感受野 在图像中局部像素之间的联系较为紧密,而距离较远的像素联系相对较弱。因此,其实每个神经元没必要对图像全局进行感知,只需要感知局部信息,然后在更高层局部信息综合起来即可得到全局信息。卷积操作即是局部感受野的实现,并且卷积操作因为能够权值共享,所以也减少了参数量。 2. 池化 池化是将输入图像进行缩小,减少像素信息,只保留重要信息,主要是为了减少计算量。主要包括最大池化和均值池化。 3. 激活函数 激活函数的用是用来加入非线性。常见的激活函数有sigmod, tanh, relu,前两者常用在全连接层,relu常见于卷积层 4. 全连接层 全连接层在整个卷积神经网络中起分类器的作用。在全连接层之前需要将之前的输出展平
-
神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。主要的研究工作集中在以下几个方面:生物原型从生理学、心理学、解剖学、脑科学、病理学等方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。建立模型根据生物原型的研究,建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化学模型、数学模型等。算法在理论模型研究的基础上构作具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。神经网络用到的算法就是向量乘法,并且广泛采用符号函数及其各种逼近。并行、容错、可以硬件实现以及自我学习特性,是神经网络的几个基本优点,也是神经网络计算方法与传统方法的区别所在。
-
AR的兴起谷歌推出增强现实平台ARKit和ARCore三星为其Galaxy Note 10和Galaxy S10 5G恢复了飞行时间(ToF)传感器谷歌也在其Pixel 4中的Project Soli对雷达进行了简短介绍苹果在其TrueDepth前置摄像头取得突破后,为最新的旗舰系列机型iPhone 12 Pro和iPad Pro系列产品添加了LiDAR传感器机器学习对于创建高级AR体验是必不可少的基于对AI研究的关注,谷歌在AR的未来中扮演着与苹果、Facebook、Snap以及微软一样重要的角色TF 3D概览提供3D操作和工具TF 3D provides a set of popular operations, loss functions, data processing tools, models and metrics that enables the broader research community to develop, train and deploy state-of-the-art 3D scene understanding models支持3大类3D算法TF 3D contains training and evaluation pipelines for state-of-the-art 3D semantic segmentation, 3D object detection and 3D instance segmentation, with support for distributed training.提供数据集管理功能,提供3大经典数据集使用案例It offers a unified dataset specification and configuration for training and evaluation of the standard 3D scene understanding datasets. It currently supports the Waymo Open, ScanNet, and Rio datasets.3D 稀疏卷积网络稀疏卷积的背景scene that contains a set of objects of interest (e.g. cars, pedestrians, etc.) surrounded mostly by open space, which is of limited (or no) interest. As such, 3D data is inherently sparse
-
LeNet-5是LeCun大神在1998年提出的卷积神经网络算法。本篇博客将简要解释相关内容。在90年代,由于支持向量机(Support Vecotr Machine,SVM)等算法的发展,深度学习的发展受到了很大的阻碍(尽管Geoffery Hinton在1986年发明的BP算法(Backpropagation)解决了神经网络的非线性分类学习的问题,但梯度消失的问题没有得到很好的解决)。但LeCun等人坚持不懈,依然在该领域苦苦研究。1998年,LeCun提出了LeNet-5网络用来解决手写识别的问题。LeNet-5被誉为是卷积神经网络的“Hello Word”,足以见到这篇论文的重要性。在此之前,LeCun最早在1989年提出了LeNet-1,并在接下来的几年中继续探索,陆续提出了LeNet-4、Boosted LeNet-4等(LeNet-2和LeNet-3并没有找到相关资料)。LeCun也把自己发表的与LeNet相关的论文放到了一起,从1989年到1998年之间共12篇论文。详细请参考:http://yann.lecun.com/exdb/lenet/index.html导入依赖包from tensorflow.keras.layers import Conv2D, MaxPool2D, Flatten, Dense from tensorflow.keras import models, callbacks from tensorflow.keras.preprocessing.image import ImageDataGenerator from PIL import Image from sklearn.model_selection import train_test_split import numpy as np import matplotlib.pyplot as plt import os import re import warnings warnings.filterwarnings('ignore') warnings.filterwarnings('ignore', category=DeprecationWarning) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False np.set_printoptions(threshold=np.inf) os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'加载并处理本地数据def load_data(): x_list, y_list = [], [] class_map = {'man': '0', 'dog': '1', 'cat': '2'} data_path = './data/' x_train_path = './x_train.npy' y_train_path = './y_train.npy' x_test_path = './x_test.npy' y_test_path = './y_test.npy' # 如果本地有npy数据直接加载,避免多次读取本地图片 if os.path.exists(x_train_path) and os.path.exists(y_train_path) and \ os.path.exists(x_test_path) and os.path.exists(y_test_path): print('Data loading') x_train = np.load(x_train_path) y_train = np.load(y_train_path) x_test = np.load(x_test_path) y_test = np.load(y_test_path) # 处理本地图片 else: L = [] for dirpath, dirnames, filenames in os.walk(data_path): for file in filenames: if os.path.splitext(file)[-1] == '.jpg': L.append(os.path.join(dirpath, file)) i = 0 for filename in L: value = re.split('\\\|\.', filename) img_path = filename img = Image.open(img_path).convert('RGB') # 以'RGB'模式读取图片 img = img.resize((32, 32), Image.ANTIALIAS) img = np.array(img) # img = img / 255. #图片归一化,可以在加载时处理,也可以在数据增强时处理 x_list.append(img) y = value[-3] y = int(class_map.get(y)) y_list.append(y) print(i, img_path) i += 1 x = np.array(x_list) y = np.array(y_list) y = y.astype(np.int64) y = y.reshape(-1, 1) x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0) np.save(x_train_path, x_train) np.save(y_train_path, y_train) np.save(x_test_path, x_test) np.save(y_test_path, y_test) return x_train, y_train, x_test, y_test建立模型def LeNet5(x_train, y_train, x_test, y_test): model = models.Sequential([ Conv2D(filters=6, kernel_size=(5, 5), activation='sigmoid', input_shape=(32, 32, 3)) , MaxPool2D(pool_size=(2, 2), strides=2) , Conv2D(filters=16, kernel_size=(5, 5), activation='sigmoid') , MaxPool2D(pool_size=(2, 2), strides=2) , Flatten() , Dense(120, activation='sigmoid') , Dense(84, activation='sigmoid') , Dense(3, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'] ) # 断点续训 save_path = './checkpoint/LeNet5.ckpt' if os.path.exists(save_path + '.index'): print('model loading') model.load_weights(save_path) cp_callback = callbacks.ModelCheckpoint(filepath=save_path , save_weights_only=True , save_best_only=True) log_dir = os.path.join('logs') if not os.path.exists(log_dir): os.mkdir(log_dir) tensorboard_callback = callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1) # 数据增强,本例中不使用效果会更好 image_gen_train = ImageDataGenerator( rescale=1. / 255. , rotation_range=45 , width_shift_range=.15 , height_shift_range=.15 , horizontal_flip=True , zoom_range=0.5 ) image_gen_train.fit(x_train) history = model.fit(image_gen_train.flow(x_train, y_train, batch_size=32), epochs=5 , validation_data=(x_test, y_test) , callbacks=[cp_callback, tensorboard_callback]) # 参数提取 with open('./weights.txt', 'w') as f: for v in model.trainable_variables: f.write(str(v.name) + '\n') f.write(str(v.shape) + '\n') f.write(str(v.numpy()) + '\n') acc = history.history['accuracy'] val_acc = history.history['val_accuracy'] loss = history.history['loss'] val_loss = history.history['val_loss'] return acc, val_acc, loss, val_loss可视化准确率和损失def result_show(acc, val_acc, loss, val_loss): # 查看准确率 plt.subplot(1, 2, 1) plt.plot(acc, label='Train acc') plt.plot(val_acc, label='Vali acc') plt.title('Train and Vali acc') plt.legend() # 查看损失 plt.subplot(1, 2, 2) plt.plot(loss, label='Train loss') plt.plot(val_loss, label='Vali loss') plt.title('Train and Vali loss') plt.legend() plt.show() # 浏览器查看命令 # tensorboard --logdir="logs"主函数def main(): x_train, y_train, x_test, y_test = load_data() acc, val_acc, loss, val_loss = LeNet5(x_train, y_train, x_test, y_test) result_show(acc, val_acc, loss, val_loss) if __name__ == '__main__': main()
-
我们先来看看传统相机在拍摄一个水平一维运动物体时的情况:此时模糊相当于对图像做一个一维的Box Filter,而这个卷积核的傅里叶变换(即OTF)如下图所示,它实际上是一个Sinc函数,可以看到这里有一些值接近零的点。于是当我们用去卷积技术去尝试恢复清晰图像时,会因为OTF的大量零点而出现大量的噪声,最终结果信噪比极低(如下图所示)。我们说这时的运动模糊使得很多频域信息损失掉了,所以无法准确的恢复出原始信号。那么,有没有好办法来减少频域信息的损失呢?这就是这里提到的Coded Photography技术,对应的论文是:Raskar et al., “Coded Exposure Photography: Motion Deblurring using Fluttered Shutter,” SIGGRAPH 2006.我们来看看什么是Flutter Shutter,什么又是Coded Exposure相信你现在已经有了这样一种印象:在曝光时间内快门交替开关能比一直打开保持更多的频域信息,使得最终图像经过去卷积后得到更清晰的图像。那么,到底如何开闭快门能够收益最大呢?在上述论文中,作者把快门的开关看做是一种二进制编码,开为1,关为0,这样快门的状态就形成了一个编码——这也是为什么称作Coded Exposure的原因。然后作者比较了几种不同的编码,最终认为一种有52比特的编码形态能够使得整个系统保留最宽广的频率响应,从而信噪比最高。你可以看到下图中,最后一种编码的频率响应最平坦、稳定,且没有过零点,看起来真是一个不错的技术啊——然而任何方法都不可能是完美的。我们来看看Coded Exposure by Flutter Shutter有哪些不够好的地方:作者采用的这种52bit的编码中有26个1,26个0,这意味着相比传统相机这种方式损失了一半的光能。正如一开始我所说,卷积核很难估计,这跟物体的运动速度、远近都有关系。需要分割运动的物体和固定的背景,否则做全局的去卷积会使得背景被破坏。那么,有没有更好的方法呢?那么接下来我们就看一种模糊程度与目标运动速度、远近等因素无关的摄影方式。
-
如果你试过去拍摄一些运动场景,例如拍摄疾驰的汽车,或是田径场上的短跑运动员,你一定曾经遇到过“拍糊”的时候。这种现象就是我在本文中要讨论的由运动导致的图像模糊,这是一种与我之前介绍的几种导致图像模糊的方式完全不同的问题,所以今天让我们来看看有什么好办法来应对。我今天要给你介绍的是两种消除运动模糊的技术,一个叫做Coded Exposure Photography(编码曝光),确切的说是一种利用了Flutter Shutter(震颤快门)的编码曝光技术。另外一种则是Motion Invariant Photography(运动不变摄影)。可能现在还听起来比较拗口,不过先让我们看看它们的效果:下图是编码曝光拍摄的原始图像,以及经过处理后的清晰图像,你可以看到汽车变得非常清晰了,很神奇吧?(至于为何有原始图像,为何又要经过处理,我们待会再讲)再来看看运动不变摄影,下面左图是一个固定相机拍摄的运动物体场景,场景中的物体有远处的固定背景屏风,也有近处摆在一个托盘上的水平运动的物体,由于物体有远近,所以其相对相机的运动也是不同的,所以普通相机拍出来就呈现出了不同的模糊程度。而右图则是所谓运动不变摄影的结果,你可以看到总体来说画面变清晰了。真的很惊人!再来看看运动不变摄影,下面左图是一个固定相机拍摄的运动物体场景,场景中的物体有远处的固定背景屏风,也有近处摆在一个托盘上的水平运动的物体,由于物体有远近,所以其相对相机的运动也是不同的,所以普通相机拍出来就呈现出了不同的模糊程度。而右图则是所谓运动不变摄影的结果,你可以看到总体来说画面变清晰了。真的很惊人!看到这里,我想你已经迫不及待想知道其中的技术细节了。那就让我们开始吧 我们先从运动模糊的基本模型和解决它的困难之处讲起。一、运动模糊的基本模型 让我们看一个典型的场景,这里面背景和部分物体是固定的,但有一个装着啤酒罐的托盘快速的带动啤酒罐从左向右移动,使得拍摄的画面中啤酒罐出现了运动模糊。那么我们如何来建模这种模糊呢?事实上,运动模糊和我们之前讲过的几种模糊都可以用卷积来描述。具体到上面这种均匀运动的模糊,可以如下表示:所以,似乎像以前一样,我们只要知道了模糊核,就能够去卷积把模糊图像变清晰了,是吗?然而,运动模糊的消除有几个难点:很难获取到准确的卷积核,因为卷积核跟物体的远近、物体运动的速度方向都有关系。场景中的各个物体有不同的运动方向和速度,还可能有固定的背景,所以需要把需要恢复的物体分割开来,而这本来就是一个困难的问题。运动卷积核丢失了高频信息,去卷积技术就会面临严重的信噪比低的问题。
-
深度神经网络是机器学习(ML, Machine Learning)领域中一种技术特点多层的好处是可以用较少的参数表示复杂的函数。在监督学习中,以前的多层神经网络的问题是容易陷入局部极值点。如果训练样本足够充分覆盖未来的样本,那么学到的多层权重可以很好的用来预测新的测试样本。但是很多任务难以得到足够多的标记样本,在这种情况下,简单的模型,比如线性回归或者决策树往往能得到比多层神经网络更好的结果(更好的泛化性,更差的训练误差)。非监督学习中,以往没有有效的方法构造多层网络。多层神经网络的顶层是底层特征的高级表示,比如底层是像素点,上一层的结点可能表示横线,三角; 而顶层可能有一个结点表示人脸。一个成功的算法应该能让生成的顶层特征最大化的代表底层的样例。如果对所有层同时训练,时间复杂度会太高; 如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合。
-
神经网络可以学习解决各种问题,从识别照片中的猫到驾驶自动驾驶汽车。但这些强大的模式识别算法是否真正理解它们正在执行的任务仍然是一个悬而未决的问题。例如,一个负责让自动驾驶汽车保持在车道上的神经网络可能会通过观察路边的灌木丛来学习如何做到这一点,而不是学习检测车道和关注道路的地平线。近日,麻省理工学院的研究人员表明,当某种特定的神经网络被训练执行导航任务时,其能够理解该项任务真正的因果结构。由于这些网络可以直接从视觉数据中理解任务,因此在复杂环境(例如树木茂密的位置或快速变化的天气条件)中导航时,它们应该比其他神经网络更有效。未来,这项工作可以提高执行高风险任务的机器学习代理的可靠性和可信度。如在繁忙高速公路上驾驶自动驾驶汽车。研究成果以「Causal Navigation by Continuous-time Neural Networks」为题发表在预印本平台 arXiv 上。该研究将于今年 12 月在 「2021 年神经信息处理系统会议 (NeurIPS) 」上发表。
-
### **监督学习** 监督学习是机器学习中应用最广泛及成熟的,它是从有标签的数据样本(x,y)中,学习如何关联x到正确的y。这过程就像是模型在给定题目的已知条件(特征x),参考着答案(标签y)学习,借助标签y的监督纠正,模型通过算法不断调整自身参数以达到学习目标。 监督学习常用的模型有:线性回归、朴素贝叶斯、K最近邻、逻辑回归、支持向量机、神经网络、决策树、集成学习(如LightGBM)等。按照应用场景,以模型预测结果Y的取值有限或者无限的,可再进一步分为分类或者回归模型。 **分类模型** 分类模型是处理预测结果取值有限的分类任务。如下示例通过逻辑回归分类模型,根据温湿度、风速等情况去预测是否会下雨。 - 逻辑回归简介 逻辑回归虽然名字有带“回归”,但其实它是一种广义线性的分类模型,由于模型简单和高效,在实际中应用非常广泛。 逻辑回归模型结构可以视为双层的神经网络(如图4.5)。模型输入x,通过神经元激活函数f(f为sigmoid函数)将输入非线性转换至0~1的取值输出,最终学习的模型决策函数为Y=sigmoid(wx + b) 。其中模型参数w即对应各特征(x1, x2, x3...)的权重(w1,w2,w3...),b模型参数代表着偏置项,Y为预测结果(0~1范围)。 模型的学习目标为极小化交叉熵损失函数。模型的优化算法常用梯度下降算法去迭代求解损失函数的极小值,得到较优的模型参数。  - 代码示例 示例所用天气数据集是简单的天气情况记录数据,包括室外温湿度、风速、是否下雨等,在分类任务中,我们以是否下雨作为标签,其他为特征(如图4.6)  ``` import pandas as pd weather_df = pd.read_csv('./data/weather.csv') weather_df.head(10) from sklearn.linear_model import LogisticRegression x = weather_df.drop('If Rain', axis=1) y = weather_df['If Rain'] lr = LogisticRegression() lr.fit(x, y) print("前10个样本预测结果:", lr.predict(x[0:10]) ) ``` 以训练的模型输出前10个样本预测结果为: \[1 1 1 1 1 1 0 1 1 1\],对比实际前10个样本的标签: \[1 1 1 1 1 0 1 0 0 1\],预测准确率并不高。在后面章节我们会具体介绍如何评估模型的预测效果,以及进一步优化模型效果。 **回归模型** 回归模型是处理预测结果取值无限的回归任务。如下代码示例通过线性回归模型,以室外湿度为标签,根据温度、风力、下雨等情况预测室外湿度。 - 线性回归简介 线性回归模型前提假设是y和x呈线性关系,输入x,模型决策函数为Y=wx+b。模型的学习目标为极小化均方误差损失函数。模型的优化算法常用最小二乘法求解最优的模型参数。 - 代码示例 ``` from sklearn.linear_model import LinearRegression x = weather_df.drop('Humidity', axis=1) y = weather_df['Humidity'] linear = LinearRegression() linear.fit(x, y) print("前10个样本预测结果:", linear.predict(x[0:10]) )
-
图神经网络(Graph Neural Network)的研究主要是集中在相邻节点信息的传播与聚合上,从图神经网络的概念提出,到受深度学习中卷积神经网络的启发 。图神经网络对于非欧几里德数据在深度学习中的应用有着非常重要的地位,尤其是利用图结构在传统贝叶斯因果网络上可解释的特点,在定义深度神经网络关系可推理、因果可解释的问题上有很大的研究意义。如何利用深度学习方法对图结构的数据进行分析和推理吸引了非常多的研究和关注。通用的图神经网络推理过程可以通过图节点预表示、图节点采样、子图提取、子图特征融合、图神经网络的生成和训练子过程来表示,具体步骤如下:STEP1 图节点预表示: 通过图嵌入(Graph Embedding)的方法对图中每一个节点进行嵌入表示;STEP2 图节点采样:对图中每个节点或存在的节点对的正负样本进行采样;STEP3 子图提取:提取图中每一个节点的邻节点构建n 阶子图,其中n 表示第n 层的邻节点,从而形成通用的子图结构;STEP4 子图特征融合:对每一个输入神经网络的子图进行局部或全局的特征提取;STEP5 生成图神经网络和训练:定义网络的层数和输入输出的参数,并对图数据进行网络训练。1.图卷积神经网络深度学习的流行与卷积神经网络的广泛适用性密不可分,图神经网络的研究中时间最长、研究成果最多的就是图卷积神经网络,从特征空间来看图卷积神经网络主要可以分为频域和空间域两个类型。频域的图卷积神经网络基于图信号处理问题,将图神经网络的卷积层定义为一个滤波器,即通过滤波器去除噪声信号从而得到输入信号的分类结果。实际问题中只能用于处理无向且边上无信息的图结构,将输入信号的图定义为可特征分解的拉普拉斯矩阵,归一化后的特征分解可以表示为通用结构其对角矩阵就是特征值的按序排列组成的特征矩阵。2.基于空间的图卷积神经网络与深度学习中卷积神经网络对图像的像素点进行卷积运算类似,基于空间的图卷积神经网络通过计算中心单一节点与邻节点之间的卷积,来表示邻节点间信息的传递和聚合,作为特征域的新节点表示。
-
内存是各种计算机系统中存储数据不可或缺的硬件单元,但现在新一代的智慧内存有更多的应用,可以存储数据,并进行庞大的数据运算,能如人脑一般结合存储与运算于一体,这样的内存内运算(in-memory computing)架构模仿人脑神经网络的架构,是未来实现高性能、低耗电人工智能的希望所在。 今年的IEEE亚洲固态电路会议(IEEE A-SSCC)中,阳明交大与工研院电光系统所团队共同合作,以商用化的28纳米制程技术,发布目前全世界最高能效的三元卷积神经网络(ternary CNN)内存内运算加速芯片。 全世界最高能效的三元卷积神经网络内存内运算加速芯片。 三元卷积神经网络内存内运算加速芯片,每瓦功耗每秒可进行超过两万万亿次的运算(20943 TOPS/W),较过去的技术大幅提升3.7倍,面积使用效率也提升4.5倍,树立全新的内存内运算性能里程碑。 通过跨层级共同设计技术,三元卷积神经网络内存内运算加速芯片,克服内存内运算中存在的计算误差,展示极低耗电且高准确的语音关键字识别能力,目前与工研院的团队正积极将该技术导入商业用“即呼即醒”的智慧蓝牙耳机中。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签