-
说起Python,想必大家一定不陌生,作为时下大热的计算机程序设计语言,大大小小网站的广告栏、甚至是朋友圈,都充斥着Python学习的广告,简直掀起了一场全民学Python的热潮。不过,Python热门自然是有原因的,它免费、开源,可跨平台运行、不区分操作系统,语法简洁清晰、易上手,语法表达优美易读,支持模块和包,有极为丰富、功能强大的库,因此被广泛应用于人工智能、科学计算、图形技术、动画、游戏等行业。我们今天要学习的网络爬虫图片抓取,就是它在人工智能领域中的应用。 什么是网络爬虫 互联网上的海量数据信息是存放在各类web站点上的,web站点之间通过网络互联,形成了一张巨大的网。如果我们把这张互联网比作蜘蛛网,那么一只蜘蛛沿着蜘蛛网爬取节点上的猎物,就相当于爬虫程序沿着网络连接在web站点上抓取数据。因此,网络爬虫可以定义为一种从互联网上抓取数据信息的自动化程序。它的工作方式则是:web站点上各种网页,即url页面,组成了互联网;爬虫程序与互联网通信并获取数据,然后把抓取到的数据存储起来。 网络爬虫如何工作网络爬虫工作流程 从web站点获取资源分为三个步骤,即 “获取网页”、“提取信息”和“保存数据”。下面我们就以“获取一张华为手机图片”为例,来详细讲解这三个流程。 第一步,获取网页。我们在手工操作时需要打开浏览器输入华为的网址,或者搜索“华为手机”关键字,才可以定位到目的网页。爬虫在获取网页时是通过构造一个请求并发送给服务器,然后由服务器给出响应,爬虫接收的响应是一个网页源代码,手工方式是通过浏览器解析出来的,所以爬虫程序还需要将源代码解析出来。 第二步,提取信息。手工的方式是通过肉眼的识别和人脑的分析,定位到目的图片的位置,而爬虫程序是根据网页的规则,使用正则表达式将解析数据结构中的Body部分,并获取目的图片。 第三步,保存数据。手工的方式是使用浏览器将图片下载保存在个人电脑中,而爬虫程序保存数据的方式多种多样,可以简单保存为TXT文本或JSON文本,也可以保存到数据库,如MySQL和MongoDB等,还可保存至远程服务器,如借助SFTP进行操作,甚至可以将图片视频保存在文件系统或者对象存储中。 综上所述,爬虫就是代替我们来完成这份爬取工作的自动化程序,它可以在抓取过程中进行各种异常处理、错误重试操作,确保爬取持续高效地运行。 网络爬虫能做什么 网络爬虫的应用场景可根据用途分为四类:搜索引擎,信息收集,数据分析,图片抓取。 搜索引擎:如Google和百度,这类爬虫会爬取整个互联网的特定信息,并且分类、排序,然后用户可以使用关键字进行结果的搜索; 信息收集:如新闻资讯聚合,这类爬虫会根据关键字搜索相关联的新闻信息,聚合呈现给用户; 数据分析:如商品价格比较和股票量化交易系统,爬虫可以针对相同的商品从多个电商平台上获取价格信息,综合分析价格对比和价格趋势,为商品购买提供价格决策; 图片抓取:抓取特定类型或者特定主题的图片,可以用来个人收藏,也可用于AI图像分析的图片资源库。我们今天要学习的,正是这一类。 Python网络爬虫技术原理及基础 网络爬虫技术的原理涉及三部分:Python编程基础、HTML网页基础、HTTP原理以及Requests库,首先,我们既然要使用Python编写爬虫,自然要掌握Python的基础编程知识;其次,我们的爬虫是从互联网的网页上抓取信息,所以要对目的网页有一定的了解,即HTML网页基础;最后,爬虫程序要处理和web站点进行的请求与响应,所以还要了解HTTP的通信原理以及Python中用来处理HTTP请求和响应的Requests库。 Python语言是一种面向对象的解释型计算机程序设计语言,具有面向对象和解释性语言两个重要特征。 面向对象是相对于面向过程而言的。比如C语言、Shell语言就是面向过程的,面向过程是一件事“该怎么做”,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现;面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为,面向对象是一件事“该让谁来做”,这个“谁”就是对象,他要怎么做是他自己的事,反正最后一群对象合力能把事做好就行了。至于解释型语言,我们在编程时使用的是高级语言,计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。解释型语言的优点是可跨平台运行,缺点则是运行时需要源代码,知识产权保护性差,运行效率低。 至于Python的数据类型、变量、文件、语句、函数等知识,囿于篇幅,不再赘述,感兴趣的小伙伴可以去课程中学习。 HTML (Hypertext Markup Language)是一种用于创建网页的超文本标记语言,可以构建web 站点,HTML 运行在浏览器上,由浏览器来解析。它的网页结构如下:HTML网页结构HTML标签 HTML 标签 (HTML tag)由尖括号包围,通常是成对出现的,比如 <header> 和 </header>,<body>和</body>,在我们抓取图片的爬虫程序中,就需要获得img标签后面的图片url链接来下载图片。我们在编写爬虫时构建HTTP的请求并处理HTTP的响应,如果从零开始,效率非常低,所以就需要用到Python中的Request库。Requests是一种常用的http请求库,可以方便地发送http请求并处理响应结果,极大地提高了效率。
-
强化学习(Reinforcement Learning, RL),又称增强学习,是机器学习的范式和方法论之一。 强化学习智能体(Agent)在与环境的交互过程中,通过更新策略以达成回报最大化或实现特定目标。 广为人知的人脸识别等技术背后的深度学习,通常需要开发者准备大量做好标注的图像作为训练数据。 强化学习与之不同,不需要训练数据,而是设置一个环境。 类似于动物处在自然环境中,强化学习需要不断与环境交互,并从中学习。强化学习研究常用的环境是各种各样的游戏。 强化学习方法简单、有效且通用,在许多游戏环境中都取得了超越人类的决策水平,被 DeepMind 认为是实现通用人工智能的一种重要途径。 如图,在强化学习中,智能体与环境的交互,即在状态 S_t 下,执行动作 A_t,获得对应的奖励 R_(t+1) 并观测到下一个时刻的状态 S_(t+1)。智能体的目的是改进策略(即在不同状态下执行的动作),来获得最大的长期回报。在这个过程中,强化学习智能体按照当前策略(通常用神经网络实现)需要将当前状态 S_t 输入到网络中,进行一次前向推理(inference)得到 A_t,使用 A_t 在环境中执行一步来完成交互。此时,智能体会收到对应的奖励和下一个时刻的状态,然后不断循环该过程,产生新的样本用于策略训练。样本指的是交互过程中的每一个转移(transition),即四元组。通常来说,强化学习中环境执行动作的这一步由 CPU 完成,当策略网络仅输入一个样本时,可以使用 CPU(对于浅层的策略网络)或 GPU(对于深层的复杂策略网络)进行推理,而更新策略网络模型则在 GPU 上完成。常规强化学习任务(以 Atari 游戏为例)通常需要采集十数 M( 1M 即一兆,为 10^6) 乃至数十 M 样本才能训练好一个策略,那么就需要数千万次,甚至数十亿次的交互。如果能减小时间开销,那将会给强化学习的训练速度带来前所未有的提升。
-
2020 年底,苹果发布了 M1 芯片,提供了全新的自研 GPU,并和 CPU 集成封装成 SoC,加上随之而来的 ML Compute 框架,macOS 端的深度学习训练有了显著的速度提升。另一方面,强化学习的特性使得训练过程中需要交替使用 CPU 和 GPU,对此,M1 芯片能否提升强化学习的训练效率? 据了解,此前业界并无相关测试数据。 南栖仙策(南京大学人工智能创新研究院技术孵化企业)算法小组用 M1 芯片设备组建小型服务器集群,并与基于 NVIDIA GPU 的传统服务器进行性能对比测试, 结果表明,强化学习的训练效率可以得到显著提升。
-
Shalini Ghosh,三星研究美国公司智能电视部门首席科学家(全球)和机器学习研究团队负责人Long Short-Term Memory (1997) - Sepp Hochreiter and Jürgen Schmidhuber这篇1997年的开创性论文的思想是超前于那个时代的。直到最近(即过去6年左右),硬件加速器才有能力运行LSTM的训练/服务操作,从而使得LSTM成功用于许多应用(如语言建模,手势预测,用户建模)。 LSTM基于记忆的序列建模架构非常有影响力——它启发了许多最新的改进方法,例如Transformers。这篇论文对我的工作影响很大。Efficient Incremental Learning for Mobile Object Detection (2019) - Dawei Li et al本文讨论了近期流行的对象检测模型RetinaNet的创新变体,并介绍了增量学习的范例,该范例的此应用和其他对于多模式学习应用是很有效的。本文中使用的关键思想和增量学习公式对从事CV工作的任何人都有用,并且可以为对移动设备有效的高效增量算法铺平未来创新的道路。Jeff Clune,OpenAI的研究团队负责人下面列出这两篇论文。Learning to Reinforcement Learn(2016)--Jane X Wang et al.本文解读了两个关键的讨论点,即稀疏训练数据的局限性,以及循环网络是否能在完全监督的情况下支持元学习。这些要点在七个概念验证实验中得到了解决,每个实验都研究了深度元RL的一个关键方面。我们考虑了扩展和扩大该方法的前景,同时也指出了一些对神经科学的潜在重要影响。点击这里阅读更多内容。Gradient-based Hyperparameter Optimization through Reversible Learning (2015) - Dougal Maclaurin, David Duvenaud, and Ryan P. Adams.Jeff推荐的第二篇论文通过在整个训练过程中倒链导数,计算出所有超参数的交叉验证性能的精确梯度。这些梯度允许对数千个超参数进行优化,包括步长和动量计划、权重初始化分布、丰富的参数化正则化方案和神经网络架构。转自AI,https://www.leiphone.com/category/yanxishe/zX5pNohT6diF66uH
-
除了数据部分优化之外,还可以在模型方面做出改进,根据工作量的大小,分为三个层次:模型迁移,模型重开发,模型集成1.模型迁移迁移学习是智能界研究多年的一个领域。当推理数据和训练数据之间差异较大是,可以采用迁移学习的方式实现模型在推理数据下效果的提升。迁移学习覆盖的算法范围很广,列如基于模型参数的迁移算法,基于领域自适应的迁移算法,基于数据特征的迁移算法等。推理数据和训练数据可能来源于不同的时间段,不同的采集设备和不同的采集地点,这些差异性都需要在模型迁移过程中充分考虑。,在推理数据与训练数据差别不大的情况下,可以考虑这种轻量化模型迁移方式;差别较大时,需需要对模型参数进新一轮调优。2.模型重发如果当前模型无法满足推理要求(精度,性能等指标),则需要重新开发模型,除了重新进行数据集采集和筛选之外,还包含相应算法的选择,模型的训练,评估和调优等。模型重发通常由业务需求的变化而引起的,如需要更高的精度,识别其他场景,或需要更低的推理时延。在重新开发模型时,对于算法的选择不好把握,可以采用AutoML技术。可以将算法的选择,设计和训练交给ModelArts完成,开发者仅需专注于业务代码,并指定搜索空间和搜索目标即可得到最优模型。3.模型集成还可以使用集成学习方法进一步提升应用迭代的效果,机器学习中,很多模型训练之后都具有不同程度的偏差或方差。集成学习可以通过组合多个模型的方式得到一个偏差更小,方差很小的综合模型。集成学习分为三钟,Bagging,Boosting,和Stacking。Bagging将原始数据通过有放回的抽样方法采样多份,然后对于每一份数据进行一个模型的训练,在推理态使用多个模型推理并将其中结果汇聚,通过投票的方式得到最终结果。Boosting指在训练的过程中,不断地根据推理效果对每个数据样本的权重做出改变,使得模型效果更佳,并且对训练得到的多个模型进行集成。典型的集成方法有AdaBoosting及其进化版GBDT等。Stacking指先训练多个不同的模型,然后把各个模型的输出作为新的训练数据集,用来训练最终模型。集成学习虽然会提升模型训练精度,但也带来了额外的训练和推理的计算开销,需要视具体情况而定。
-
目标检测新范式End-to-End Object Detection with Transformers 作者 | Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko 单位 | Facebook AI 论文 | https://arxiv.org/abs/2005.12872代码 | https://github.com/facebookresearch/detr (目前已有4.8K星) 解读 | 模型的跨界:我拿Transformer去做目标检测,结果发现效果不错 备注 | ECCV 2020 Oral GeoGraph: Graph-based multi-view object detection with geometric cues end-to-end作者 | Ahmed Samy Nassar, Stefano D'Aronco, Sébastien Lefèvre, Jan D. Wegner单位 | IRISA, Universite Bretagne Sud;苏黎世联邦理工学院论文 | https://arxiv.org/abs/2003.10151基于图的检测方法在城市多视角目标检测中的应用,在精度和效率方面都好于之前的方法。UFO²: A Unified Framework towards Omni-supervised Object Detection作者 | Zhongzheng Ren , Zhiding Yu, Xiaodong Yang , Ming-Yu Liu,Alexander G. Schwing, Jan Kautz单位 | 伊利诺伊大学厄巴纳-香槟分校;英伟达论文 | https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123640290.pdf这篇论文从最大限度利用数据集的标注出发,提出一种既能利用目标检测包围框标注,又能利用弱监督标注的目标检测训练统一框架,在实际应用中能最大限度利用训练样本,感觉这是个很好的想法。
-
本文主要讨论的是机器学习(ML)和功能性磁共振成像(fMRI)的应用问题。fMRI 主要用来检测人在进行各种脑神经活动时(包括运动、语言、记忆、认知、情感、听觉、视觉和触觉等)脑部皮层的磁力共振讯号变化,配合在人脑皮层中枢功能区定位,就可研究人脑思维进行的轨迹,揭示人脑奥秘。其基本原理是利用 MRI 来测量神经元活动所引发之血液动力的改变。所以,利用 ML 连接 fMRI 图像,以了解人脑正在观察和思考的物件是理论上可行的。以本文讨论的问题为例,神经科学家现在可以通过像数据科学家一样运行计算模型来预测并准确地将神经功能与认知行为联系起来。不过,这些技术与人工智能模型有着相同的偏见(biases)和局限性(limitations),需要严格的科学方法加以应用[1]。 不管怎么说,我觉得这是一个很有意义的研究方向
-
学习前言 只会预测是不够的,对于只有会了训练才能训练出我们自己的模型! 本次教程是基于github中的https://github.com/qqwweee/keras-yolo3。 详解的不是代码,而是训练思路,主要讲的是yolo3需要被减少的loss到底是什么。 当然配合代码观看肯定更容易看懂。 计算loss所需参数 在计算loss的时候,实际上是y\_pre和y\_true之间的对比: y\_pre就是一幅图像经过网络之后的输出,内部含有三个特征层的内容; y\_true就是一个真实图像中,将它的真实框的位置以及框内物体的种类,转化成yolo3网络输出后的格式的值。 实际上y\_pre和y\_true内容的shape都是 (batch\_size,13,13,3,85) (batch\_size,26,26,3,85) (batch\_size,52,52,3,85) 1、y\_pre y\_pre就是一幅图像图像经过网络之后的输出,内部含有三个特征层的内容; 如下是一副图像在model里经过的各种层: ``` def yolo_body(inputs, num_anchors, num_classes): ``` 对于yolo3的模型来说,其最后输出的内容就是三个特征层的内容,三个特征层分别对应着图片被分为不同size的网格后,每个网格点上三个先验框对应的位置、置信度及其种类。 对于输出的y1、y2、y3而言,\[…, : 2\]指的是相对于每个网格点的偏移量,\[…, 2: 4\]指的是宽和高,\[…, 4: 5\]指的是该框的置信度,\[…, 5: \]指的是每个种类的预测概率。 现在的y\_pre还是没有解码的,解码了之后才是真实图像上的情况,解码过程比较简单。如果不懂的可以看我另一篇博文睿智的目标检测7——yolo3详解及其预测代码复现 ``` def yolo_head(feats, anchors, num_classes, input_shape, calc_loss=False): ``` 2、y\_true y\_true就是一个真实图像中,将它的真实框的位置以及框内物体的种类,转化成yolo3网络输出后的格式的值。 在yolo3中,其使用了一个专门的函数用于处理读取进来的图片的框的真实情况。 ``` def preprocess_true_boxes(true_boxes, input_shape, anchors, num_classes): ``` 其输入为: ``` true_boxes:shape为(m, T, 5)代表m张图T个框的x_min、y_min、x_max、y_max、class_id。 ``` 其实对真实框的处理是将真实框转化成图片中相对网格的xyhw,步骤如下: 1、取框的真实值,获取其框的中心及其宽高,除去input\_shape变成比例的模式。 2、建立全为0的y\_true,y\_true是一个列表,包含三个特征层,shape分别为(m,13,13,3,85),(m,26,26,3,85),(m,52,52,3,85)。 3、对每一张图片处理,将每一张图片中的真实框的wh和先验框的wh对比,计算IOU值,选取其中IOU最高的一个,得到其所属特征层及其网格点的位置,在对应的y\_true中将内容进行保存。 ``` for t, n in enumerate(best_anchor): ``` 对于最后输出的y\_true而言,只有每个图里每个框最对应的位置有数据,其它的地方都为0。 preprocess\_true\_boxes全部的代码如下: ``` def preprocess_true_boxes(true_boxes, input_shape, anchors, num_classes): ``` loss的计算过程 在得到了y\_pre和y\_true后怎么对比呢?不是简单的减一下就可以的呢。 1、利用y\_true取出该特征层中真实存在目标的点的位置(m,13,13,3,1)及其对应的种类(m,13,13,3,80)。 2、将yolo\_outputs的特征层输出进行处理,得到reshape后的预测值y\_pre,shape分别为(m,13,13,3,85),(m,26,26,3,85),(m,52,52,3,85)。还有解码后的xy,wh。 3、获取真实框编码后的值,后面用于计算loss 4、对于每一幅图,计算其中所有真实框与预测框的IOU,取出每个网络点中IOU最大的先验框,如果这个最大的IOU都小于ignore\_thresh,意味着这个网络点内不存在目标,可以被忽略。 5、计算xy和wh上的loss,其计算的是实际上存在目标的,利用第三步真实框编码后的的结果和未处理的预测结果进行对比得到loss。 6、计算置信度的loss,其有两部分构成,第一部分是实际上存在目标的,预测结果中置信度的值与1对比;第二部分是实际上不存在目标的,在第四步中得到其IOU还较大的预测结果中的值与0对比。 7、计算预测种类的loss,其计算的是实际上存在目标的,预测类与真实类的差距。 其实际上计算的总的loss是三个loss的和,这三个loss分别是: 实际存在的框,编码后的结果与预测值的差距。 实际存在的框,预测结果中置信度的值与1对比;实际不存在的框,在上述步骤中,第四步得到其IOU还较大的预测结果中的值与0对比。 实际存在的框,种类预测结果与实际结果的对比。 作者:Bubbliiing 这样就可以计算loss啦,还是很复杂的!不过还是可以理解的!作者太强啦
-
HOG (Histogram of oriented gradient)特征是Dalal在2005年CVPR会议上提出的一种用于人体目标检测的图像描述方法,该特征由图像局部区域的梯度方向直方图组成,具有角度不变性和光照不变性。原理:该特征的主要思想是:图像中局部区域的梯度方向可以代表该子图区域的边缘和形状特征。在实际操作中,将图像分为小的细胞单元(cells),每个细胞单元计算一个梯度方向(或边缘方向)直方图。为了满足光照不变性,需要对直方图进行对比度归一化:将细胞单元组成更大的块(blocks)并归一化块内的所有细胞单元来实现。归一化的块叫做HOG描述子。将检测窗口中的所有块的HOG描述子组合起来就形成了最终的特征向量。步骤1. 对图像进行缩放、伽马校正等预处理。2. 计算每个像素点的梯度值,得到梯度图。在数字图像中,梯度即为相邻像素点的差,例如下图中,像素值为136的点,其垂直方向梯度为139-133=6,水平方向梯度为139-134=5,根据这两个值可以得到梯度强度_g_和梯度方向_θ_。3.在每一个8x8的cell内计算梯度直方图。如下图所示,根据区域内的梯度强度g和梯度方向θ统计梯度直方图,将180°划分成9个区间,将g作为权重,将区域内的像素点梯度方向进行投票统计,得到该区域内的方向分布对每个16x16的block(即对每个2x2的cell进行滑动窗口处理)进行归一化,以降低光照(像素均值)和对比度(像素方差)影响。得到HOG特征向量。每一个block计算得到4*9区间=36大小的特征向量,根据图像长宽整合特征向量,就可以将其用于SVM或者CNN分类。利弊在翻拍低分辨率电脑屏幕等设备时,由于干涉效应会在成像时生成摩尔纹(如下图),摩尔纹具有明显的方向特征,可以通过HOG统计的方向直方图反映出来用法# 使用HOG方法提取图像的纹理特征. img = cv2.imdecode(np.fromfile(img_paths[i], dtype=np.uint8), -1) img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img = cv2.resize(img, (207, 194)) # 伽玛变换 img = np.power(img, gamma).astype(np.uint8) hog = cv2.HOGDescriptor(winSize,blockSize,blockStride,cellSize,nbins) hist = hog.compute(img, winStride, padding).reshape((-1,))可视化作者:三百云技术中心链接:https://juejin.cn/post/6976448890677493774来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
-
1 简要目前目标检测成熟的算法都是基于Dense prior(密集的先验,比如anchors、reference points),但密集的先验存在很多问题:1)会检测出很多相似的结果,需要后处理(比如NMS)来过滤;2)many-to-one label assignment 问题(作者描述为 many-to-one 正负样本分配),猜测意思是我们在设置pred和gt时,一般不是一对一的关系,可能是有多个preds,看看哪个与gt更符合;3)检测结果与先验的关系非常密切(anchors的数量、大小,reference points的密级程度、proposal生成的数量)。所以,有研究者提出了稀疏RCNN(Sparse R-CNN),一种图像中目标检测的纯稀疏方法。现有的目标检测工作很大程度上依赖于密集的候选目标,如所有H×W的图像特征图网格上预定义的k个anchor boxes。然而,在新提出的方法中,提供了一套固定的稀疏的学习候选目标,总长度N,给目标检测头进行分类和定位。通过消除H*W*k(多达数十万)手工设计的候选目标到N(例如100)可学习的建议,Sparse R-CNN完全避免了所有与候选目标的设计和多对一的标签分配相关的工作。更重要的是,最终的预测是直接输出的,而没有非极大抑制的后处理。SparseR-CNN证明了准确性、运行时和训练收敛性能,与具有挑战性的COCO数据集上建立的检测器基线相当,例如,在标准3×训练计划中实现45.0AP,并使用ResNet-50FPN模型以22fps的速度运行。作者是希望新的框架能够激发人们重新思考目标检测器中密集先验的惯例。2 背景不同目标检测pipelines的比较。(a)Dense,HWk候选目标枚举在所有的图像网格上,例如。RetinaNet;(b)Dense-to-Sparse,它们从密集的HWk候选目标中选择一小组N个候选目标,然后通过池化操作提取相应区域内的图像特征,如Faster R-CNN;(c)研究者提出的Sparse R-CNN,直接提供了一小组N个学习的候选目标,这里N远小于HWk。DenseNet是CVPR2017的oral,非常厉害。文章提出的DenseNet(Dense Convolutional Network)主要还是和ResNet及Inception网络做对比,思想上有借鉴,但却是全新的结构,网络结构并不复杂,却非常有效!众所周知,最近一两年卷积神经网络提高效果的方向,要么深(比如ResNet,解决了网络深时候的梯度消失问题)要么宽(比如GoogleNet的Inception),而作者则是从feature入手,通过对feature的极致利用达到更好的效果和更少的参数。主要优化:减轻了vanishing-gradient(梯度消失)加强了feature的传递更有效地利用了feature一定程度上较少了参数数量在深度学习网络中,随着网络深度的加深,梯度消失问题会愈加明显,目前很多论文都针对这个问题提出了解决方案,比如ResNet,Highway Networks,Stochastic depth,FractalNets等,尽管这些算法的网络结构有差别,但是核心都在于:create short paths from early layers to later layers。那么作者是怎么做呢?延续这个思路,那就是在保证网络中层与层之间最大程度的信息传输的前提下,直接将所有层连接起来!RetinaNet提出一个新的损失函数,在解决类别不均衡问题上比之前的方法更有效。损失函数是动态缩放的交叉熵损失,其中缩放因子随着对正确类别的置信度增加而衰减到零(如下图)。直观地说,这个缩放因子可以自动降低训练过程中简单样本的贡献,并快速将模型集中在困难样本上。实验发现,Focal Loss在one-stage检测器上的精确度胜过之前的state-of-art的启发式采样和困难样本挖掘。最后,focal loss的具体公式形式不是关键的,其它的示例可以达到类似的结果。设计了一个名叫RetinaNet的one-stage对象检测器来说明focalloss的有效性,RetinaNet命名来源于在输入图像上的密集采样。它基于ResNet-101- FPN主干网,以5fps的运行速度下,在COCO test-dev上取得了39.1 AP的成绩,超过目前公开的单一模型在one-stage和two-stage检测器上取得的最好成绩。3 新框架数据输入包括an image, a set of proposal boxes and proposal features使用FPN作为Backbone,处理图像下图中的Proposal Boxes: N*4是一组参数,跟backbone没啥关系下图中的proposals features和backbone也没啥关系Learnable porposal box跟backbone没有什么关系可以看成是物体潜在位置的统计概率训练的时候可以更新参数Learnable proposal feature跟backbone没有什么关系之前的proposal box是一个比较简洁、却的方法来描述物体,但缺少了很多信息,比如物体的形状与姿态proposal feature就是用来表示更多的物体信息。Dynamic instance interactive head通过proposal boxes以及ROI方法获取每个物体的特征,然后与proposal feature结合得到最终预测结果Head的数量与learnable box的数量相同,即head/learnable proposal box/learnable proposal feature一一对应Sparse R-CNN的两个显著特点就是sparse object candidates和sparse feature interaction,既没有dense的成千上万的candidates,也没有dense的global feature interaction。Sparse R-CNN可以看作是目标检测框架从dense到dense-to-sparse到sparse的一个方向拓展。4 实验&可视化COCO 2017 val set测试结果COCO 2017 test-dev set可视化迭代架构中每个阶段的预测框,包括学习到的候选框。学习到的候选框以白色绘制。显示了分类分数超过0.3的预测框。同一候选类的框以相同颜色绘制,学习到的候选框被随机分布在图像上,并一起覆盖整个图像。迭代头逐渐细化边界框位置,删除重复的。上图显示了converged model的学习到的候选框。这些方框被随机分布在图像上,以覆盖整个图像区域。这保证了在稀疏候选条件下的召回性能。此外,每个阶段的级联头逐渐细化边界框的位置,并删除重复的位置。这就导致了高精度的性能。上图还显示了Sparse R-CNN在罕见场景和人群场景中都表现出稳健的性能。对于罕见场景中的目标,其重复的方框将在几个阶段内被删除。拥挤的场景需要更多的阶段来细化,但最终每个目标都被精确而唯一地检测到。
-
信息化社会,机器逐渐渗透到我们生活每个角落,彻底改变了我们的生活、工作和娱乐方式。从最小的Siri等语音助手,到行为算法、搜索算法,再到自动化汽车飞机驾驶。以上成就虽然已经足以让我们十分惊喜,但是这类人工智能技术仍处在起步阶段。但许多人所称或所理解的的人工智能未必如此,因为许多都是基于预定义的多面输入或用户行为的响应算法。 通俗点讲,一个真正的人工智能系统是一个可以自己学习的系统。来自谷歌的DeepMind这样的神经网络,它可以在不依赖预先定义的行为算法的情况下建立联系并获得意义。真正的人工智能可以改进过去的迭代,可以变得更聪明和更敏感,并允许增强它自己的学习能力。而之前大家所看关于人工智能题材电视剧如《西部世界》等,这些远远还没能够应用到我们的实际生活当中。 虽然苹果、脸书和特斯拉等公司在机器学习技术互动方面作出突破性的更新,但我们许多人仍不清楚人工智能如今在大大小小的企业中是如何使用的。这项技术将对我们未来的生活产生多大影响?它还会以何种方式渗入我们的日常生活?当人工智能真正开花结果时,它在当前这种所谓技术的迭代中会有多大的改进? **人工智能和量子计算** 事实是,无论人工智能是否真的存在,或者它是否真的对我们的存在构成威胁,都无法阻止它的进化和崛起。人类总是专注于改善生活的各个方面,而技术的使用已经成为实现这一目标的工具。尽管过去100年发生了人类历史上最具戏剧性的技术剧变,但未来100年将为多代人的飞跃铺平道路。 这将掌握在人工智能手中。由于量子计算不可避免的兴起,人工智能也将变得更聪明、更快、更灵活、更像人类。量子计算机不仅能解决所有生活的最复杂的问题和谜团,如环境、衰老、疾病、战争、贫困、饥荒、宇宙起源和深空探索。 然而,量子计算机有其固有的风险。当第一台量子计算机上线后,世界上其他的计算机都被淘汰了,会发生什么?如何保护现有的架构不受量子计算机的威胁?考虑到世界上没有任何强大的量子抵抗密码术(QRC),像美国或俄罗斯这样的国家如何保护自己的资产不受流氓国家或邪恶势力的攻击,这些国家或邪恶势力执意使用量子计算机入侵世界上最隐秘、最有利可图的信息? 当世界上所有的数字安全基本上都被破坏,互联网安全即不存在,因为我们依靠量子计算机破解的算法来保护我们与网站的连接、下载电子邮件和其他所有东西的安全。即使是手机的更新和从应用商店下载的应用程序也会被破坏和不可靠。通过芯片和密码进行的银行交易也可能变得不安全。 **人工智能的实际应用** 除了量子计算的难题之外,今天所谓的人工智能系统仅仅是高级机器学习软件,拥有广泛的行为算法,能够根据我们的喜好和厌恶调整自己。虽然这些机器非常有用,但从存在的意义上讲,它们并没有变得更聪明,但它们正在基于大型数据集提高自己的技能和实用性。这些是当下最流行的人工智能例子。 1.Siri  个人助理Siri,能够帮助我们发送短信,拨打电话,记录备忘,甚至还可以陪用户聊天。Siri作为一款智能数字个人助理,它通过机器学习技术来更好理解我们的自然语言问题和请求。 2.Alexa  当亚马逊第一次推出Alexa的时候,它席卷了全世界。它可以帮助我们在网上搜寻信息,商店,安排约会、设置警报等事情。 3.特斯拉  特斯拉它的预测能力、自动驾驶功能等越来越“酷”。这些汽车正变得越来越智能,这要归功于它们的无线更新。 4.Cogito  Cogito它很可能是当今市场上存在的提高客户支持代表情商的行为适应最有力的例子之一。该公司是一个机器学习和行为科学的融合,以改善电话专业人员的客户互动。这适用于每天发生的数以百万计的语音通话。 5.Boxever  Boxever由首席执行长奥弗拉纳根(Dave O ' flanagan)联合创立,是一家高度依赖机器学习的公司,致力于改善客户在旅游业的体验,并提供“微时刻”(micro-moments),即让客户一路愉悦的体验。通过机器学习和人工智能的使用,该公司主导了这一领域,帮助客户找到新的方式,让客户参与到他们的旅行中来。 6.John Paul  约翰•保罗(John Paul)是一家备受推崇的豪华旅行礼宾公司,由其精明的创始人大卫•阿姆塞勒姆(David Amsellem)执掌。在现有客户互动的预测算法中,这家公司是另一个强有力的人工智能例子。该公司通过VISA、Orange和法航等全球最大的公司为数百万客户提供礼宾服务,最近被雅高酒店(Accor Hotels)收购。 7.Amazon  亚马逊的事务性人工智能已经存在了很长一段时间,使其能够在网上赚取天文数字的金钱。随着算法的不断改进,这家公司已经变得非常聪明,能够根据我们的在线行为来预测我们感兴趣的购买对象。虽然亚马逊计划在我们还不知道我们需要的时候就把产品运到我们这里,但它还没有完全实现。但它肯定在地平线上。 8.Netflix  Netflix根据客户对电影的反应提供高度精确的预测技术。它分析了数以十亿计的记录,根据你之前的反应和对电影的选择来推荐你可能喜欢的电影。随着数据集的增长,这种技术正变得越来越聪明。然而,这项技术唯一的缺点是,大多数贴着小标签的电影都没有被注意到,而大名字的电影却在这个平台上成长壮大。 9.Pandora  直流媒体音乐平台Pandora的人工智能很可能是当今最具革命性的技术之一。他们称之为他们的音乐基因。基于400个音乐特征,每首歌曲首先由专业音乐家团队根据这一标准手工分析,该系统在推荐歌曲方面有着令人难以置信的记录。 10.Nest  大多数人都熟悉Nest,这款学习型恒温器于2014年1月被谷歌以32亿美元收购。Nest学习温控器,顺便说一下,现在可以声控,Alexa使用行为算法预测学习从你的加热和冷却的需求,从而预测和调整温度在家里或办公室根据自己的个人需要,现在还包括一系列其他产品如Nest相机。 文章转自R.L. Adams, Forbes
-
摘要: 问题生成是指机器主动对一段文本进行提问,生成一个自然语言的问题。神经问题生成则是完全采用端到端的训练方式,使用神经网络完成文档和答案到问题的转换,是自然语言处理中一个新兴而又重要的研究方向。文中首先对神经问题生成进行了简单介绍,包括基本概念、主流框架和评价方法。接着介绍了该研究方向的关键问题,包括输入建模、长文本处理、多任务学习、机器学习方法的应用、其他研究问题和改进点。最后,介绍了问题生成和问答系统的关系,以及问题生成的未来研究方向。http://www.jsjkx.com/CN/10.11896/jsjkx.201100013问题生成[1]是自然语言处理中一个非常重要的研究方 向,是检验计算机是否真正理解文本的重要途径之一.问题 生成是指机器主动对一段文本进行提问,生成一个自然语言 的问题.具体来说,问题生成任务的输入通常包含文本(文档 或句子,以下均用文档表示)和目标答案,输出是在给定文档 和目标答案的情况下,生成最有可能的问题. 问题生成在学术界和工业界有诸多应用.在学术界,问 题生成可以对许多其他任务起辅助作用,如为机器阅读理解 任务提供数据集、作为辅助任务提升其他生 成 任 务 的 性 能 等;在工业界,问题 生 成 则 可 以 在 许 多 实 际 的 应 用 场 景 中 使用,如引导对话 聊 天 机 器 人 主 动 提 问、在 教 育 辅 导 系 统 中模拟用户提问等.在最近的天池 竞 赛 中,也 展 开 了 以 医疗问题生成为主题的竞赛。问题生成主要包含两种方法:基于规则和模板的问题生 成,以及基于神经网络的问题生成.最初,基于规则和模板的 问题生成是问题生成的主流研究方法.该方法的好处是可以 保证生成问题的流畅度和相关性,缺点是需要大量人工干预, 同时手工模板的构造也会在很大程度上限制生成问题的多样 性.而在深度学习技术重新焕发生机以后,神经网络开始成 为问题生成的主流研究方法.2017年,Du等[2]和 Zhou等[3] 最先提出神经问题生成,其成功地将最原始的编码器G解码器 模型应用到问题生成.尽管该工作比较简单,但引起了极大 反响,让越来越多的研究人员开始关注神经问题生成这一研 究方向.随后,神 经 问 题 生 成 方 向 涌 现 出 了 大 量 高 质 量 的 研究. 本文将介绍问题生成的相关研究进展,如图1所示.本文 第 2 节 介 绍 了 问 题 生 成 的 主 流 框 架,包 括 基 于 RNNSearch的模型、基于 Transformer的模型和基于规则和 模板的方法;第3节介绍了问题生成的评价方法,包括其所使 用的数据集和自动化评价指标;第4节介绍了问题生成研究 中的关键问题,包括输入建模、主要改进点、长文本处理、多任 务学习及机器学习方法的应用;第5节介绍了问题生成和问 答系统的关系,包括问题生成和阅读理解的结合、利用问题生 成构建 QA 对;第6节介绍了问题生成的未来研究方向,包括 对话形式的问题生成、多跳形式的问题生成以及其他形式的 问题生成;最后总结全文.
-
人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一。虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生“自我”的意识。但是自 2006 年以来,机器学习领域,取得了突破性的进展。图灵试验,至少不是那么可望而不可及了。至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。这个算法就是深度学习Deep Learning。借助于 Deep Learning 算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。机器学习(Machine Learning)是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构市值不断改善自身的性能的学科,简单地说,机器学习就是通过算法,使得机器能从大量的历史数据中学习规律,从而对新的样本做智能识别或预测未来。机器学习在图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐等很多方面的发展还存在着没有良好解决的问题。传统的模式识别方法:通过传感器获取数据,然后经过预处理、特征提取、特征选择、再到推理、预测或识别。开始的通过传感器(例如CMOS)来获得数据。然后经过预处理、特征提取、特征选择,再到推理、预测或者识别。最后一个部分,也就是机器学习的部分,绝大部分的工作是在这方面做的,也存在很多的paper和研究。而中间的三部分,概括起来就是特征表达。良好的特征表达,对最终算法的准确性起了非常关键的作用,而且系统主要的计算和测试工作都耗在这一大部分。但,这块实际中一般都是人工完成的,靠人工提取特征。而手工选取特征费时费力,需要专业知识,很大程度上靠经验和运气,那么机器能不能自动的学习特征呢?深度学习的出现就这个问题提出了一种解决方案。
-
在训练模型后,用户往往需要通过测试数据集来评估新模型的泛化能力。通过验证测试数据集上的平均损失,可以评估模型对未知数据的预测能力。模型评价指标是评估模型泛化能力的标准,不同的指标往往会导致不同的评判结果。ModelArts模型评估/诊断功能针对不同类型模型的评估任务,提供相应的评估指标。在展示评估结果的同时,会根据不同的数据特征对模型进行详细的评估,获得每个数据特征对评估指标的敏感度,并给出优化建议。模型评估/诊断功能帮助用户可以全面了解模型对不同数据特征的适应性,使得模型调优可以做到有的放矢。当前模型评估功能覆盖图像分类、物体检测和图像语义分割三大场景,快来看看如何使用模型评估功能吧~图像分类图像分类评估指标说明物体检测物体检测评估指标说明 图像语义分割图像语义分割评估指标说明 调用模型评估接口了解评估结果ModelArts提供了“analyse”接口,用于模型评估。用户在推理结束后,传入指定参数调用该接口即可获取评估结果。> analyse(task_type=‘’,pred_list=[],label_list=[],name_list=[],custom_metric=‘’,label_map_dict=‘’)参数说明参数是否必选说明task_type是任务类型。支持“image_classification”或“image_object_detection”参数值。 “image_classification”表示图像分类。 “image_object_detection”表示物体检测。pred_list是模型预测输出列表。label_list是所有图片的标签列表。name_list是所有图片对应的OBS路径。此处需使用绝对路径。custom_metric否用户自定义的指标。label_map_dict否标签索引和名称。如果不设置,系统默认使用{“0”: “0”, “1”: “1”, “2”: “2”, …}作为展示标签。 示例:{“0”: “dog”, “1”: “cat”, “2”: “horse”}更多接口介绍详见模型评估接口,更多代码示例详见模型评估代码示例,更多帮助参见模型评估优化建议~
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签