CN109564636A - 使用一个神经网络来训练另一个神经网络 - Google Patents
使用一个神经网络来训练另一个神经网络 Download PDFInfo
- Publication number
- CN109564636A CN109564636A CN201780033295.4A CN201780033295A CN109564636A CN 109564636 A CN109564636 A CN 109564636A CN 201780033295 A CN201780033295 A CN 201780033295A CN 109564636 A CN109564636 A CN 109564636A
- Authority
- CN
- China
- Prior art keywords
- dcnn
- transformation
- layer
- passed
- document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
在示例性实施例中,通过向第一DCNN输入多个样本文档来训练第一DCNN以输出第一度量的值,其中,样本文档中的每个样本文档已经利用第一度量的值进行了标注。然后将第一输入文档的多个可能变换馈送到第一DCNN,获得多个可能变换中的每个可能变换的第一度量的值。基于多个可能变换中的每个可能变换的第一度量的值,从多个可能变换中选择第一变换。然后通过将所选择的第一变换输入到第二DCNN来训练第二DCNN以输出文档的变换。将第二输入文档馈送到第二DCNN,获得第二输入文档的第二变换。
Description
本PCT申请要求享有于2016年5月31日提交的序列号为15,168,750的美国专利申请、以及于2016年5月31日提交的序列号为15,169,063的美国专利申请的申请日权益,通过引用的方式将上述每个申请的完整内容并入本文。
技术领域
概括地说,本公开内容涉及用于解决机器学习中的技术挑战的计算机技术。更具体地说,本公开内容涉及使用一个神经网络来训练另一个神经网络。
背景技术
互联网的兴起已使得数字图像的使用增加,在所述数字图像中传达了人们的各个方面。数码照片的一个常见用途是在社交网络上创建简档。社交网络越来越普遍地被用于从事专业而不是个人的通信和研究。例如,某些社交网络成员通常以与简历类似的方式创建列出他们的专业成就的简档,以及指导、邀请或至少使潜在雇主可以访问社交网络简档。成员将他们自己的一些照片放在这样的成员简档上正变得越来越普遍。
以这样的专业能力使用照片时出现的问题是:成员可能容易在其成员简档页面上使用不具有最高质量的照片,或者因为拍摄该照片所涉及的摄影技术不是具有最高质量的(例如,光线不好、主体构图不佳、阴影不佳等),或者因为主题本身在某些方面的缺乏(例如,头部的角度不寻常、所穿的衣服太随意、背景场景太随意等等)。这些问题通常是由于以下事实而导致的:现今许多数码照片是非专业人员(例如,拍摄自拍照的成员,或者快速拍摄的朋友)使用非专业相机设备(例如,智能手机)拍摄的。虽然可以对照片的某些技术细节进行量化以识别“图像质量”,但是难以将图像质量扩展到图像的“专业度”的更模糊的概念。例如,照片可能确实是完美拍摄的,具有完美的光线和阴影,但照片的主体可能是穿着彩色T恤而不是西装和领带,或者可能是穿戴着西装和领带但是没有注视着相机镜头。当认识到可能存在可能意味着关于该主题的专业度水平的无限数量的关于照片的这些小细节时,这变得更具挑战性,并且随着标准的变化,这些无限数量的小细节可能随着时间而发展,并且还可能基于诸如行业和地点等的因素而变化(例如,如果主体是在硅谷工作的计算机程序员,则穿着T恤可能是专业上可接受的,但如果主体是纽约的财务顾问则不然)。
附图说明
在附图的图示中,通过示例而非限制的方式示出了技术的一些实施例。
图1是根据示例性实施例示出客户端-服务器系统的框图。
图2是示出了与本公开内容的一些实施例一致的社交网络服务的功能组件的框图,包括在本文中被称为搜索引擎的数据处理模块,其用于生成和提供搜索查询的搜索结果。
图3是更详细地示出图2的应用服务器模块的框图。
图4是根据示例性实施例示出深度卷积神经网络(DCNN)的图。
图5是根据示例性实施例示出一种训练DCNN的方法的流程图。
图6是根据示例性实施例示出一种向图像指派专业度得分的方法的流程图。
图7是更详细示出图像变换组件的框图。
图8是根据示例性实施例示出已经由DCNN针对专业度进行了评分的示例性原始图像的图。
图9是示出裁剪变换组件按照优化问题解决组件的指示所尝试的各种不同的可能裁剪的图。
图10是根据示例性实施例示出所选择的最优裁剪的图。
图11是示出旋转变换组件按照优化问题解决组件的指示所尝试的各种不同的可能旋转的图。
图12是根据示例性实施例示出所选择的最优旋转的图。
图13是根据示例性实施例示出一种用于自动裁剪数字图像以提高感知到的图像的主体的专业度的方法的流程图。
图14是根据示例性实施例示出一种用于对数字图像自动执行图像变换以提高感知到的图像的主体的专业度的方法的流程图。
图15是根据示例性实施例示出一种用于在DCNN中滤除随机梯度下降优化中的异常值的方法的流程图。
图16是根据示例性实施例示出一种用于训练DCNN的方法的流程图。
图17是根据示例性实施例示出在向第二DCNN的切换已经发生之后的应用服务模块的框图。
图18是根据示例性实施例示出一种训练和使用DCNN的方法的流程图。
图19是根据示例性实施例示出一种用于将系统从第一DCNN改变到第二DCNN的方法的流程图。
图20是示出代表性软件架构的框图,其可以结合本文中描述的各种硬件架构来使用。
图21是根据一些示例性实施例示出能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中讨论的方法中的任意一种或多种方法的机器的组件的框图。
具体实施方式
概述
本公开内容描述了方法、系统和计算机程序产品以及其他事项。在下面的描述中,为了解释起见,阐述了大量特定细节以便提供对本公开内容的不同实施例的各个方面的透彻理解。然而,对本领域技术人员而言将显而易见的是,可以在没有这些全部特定细节的情况下实践本公开内容。
在示例性实施例中,DCNN用于生成数字图像的专业度得分。DCNN使用关于先前利用指示专业度水平的专业度得分或标注分类的数字图像的信息来训练DCNN以识别输入图像的相关特征。相关特征可以包括DCNN认为对于确定输入图像的专业度而言重要(例如,在计算专业度得分中有用)的任何特征。DCNN能够自我识别这些相关特征,而不需要人类预先确定哪些特征可能是重要的并且指示机器学习算法来提取和检查这样的特征,这在更传统的机器学习技术中是必需的。如此,DCNN可以自由地识别倾向于在高专业度的图像之间共享的任何特征,而不管人们通常是否将这样的特征视为可能与专业度相关的特征。例如,虽然图像光线、主题服饰和头部角度可能是人们可能预期影响对感知到的图像中的主体的专业度的特征,但是诸如图像如何被裁剪、颜色平衡以及景深的特征可能不是。DCNN能够自己确定这些特征对于专业度的感知是重要的并相应地调整其模型,即使这些特征是微妙的,甚至可能甚至不是人所能觉察到的。
如下文将更详细描述的,在为此目的实现DCNN时遇到的一个技术挑战是它有时可能需要用于基于由DCNN计算的图像的专业度得分来确定要对图像执行的最优变换(例如,裁剪)的运算密集型过程。虽然下文针对解决这样的“优化问题”描述了一些解决方案,但是所有这些解决方案仍然需要一定程度的试验和误差,其中图像的多个不同变换可能性被尝试,被反馈回DCNN并且被评分。因此,在示例性实施例中,来自DCNN的输出用于训练另一个DCNN以输出最优变换。最终,原始DCNN然后可以被淘汰并由后来训练的DCNN替换。以这种方式,第一DCNN可以用于训练第二DCNN。
应当指出的是,虽然本文中描述了特定于使用第二DCNN进行图像变换或选择的实施例,但是使用一个DCNN来训练另一个DCNN的构思可以应用于计算机科学的许多不同领域,并且不应当局限于图像变换/选择实施例。
图1是根据示例性实施例示出客户端-服务器系统100的框图。联网系统102经由网络104(例如,互联网或广域网(WAN))向一个或多个客户端提供服务器侧功能。图1示出了例如在各个客户端机器110和112上执行的网络客户端106(例如,浏览器)和编程客户端108。
应用程序接口(API)服务器114和网络服务器116耦合到一个或多个应用服务器118,并分别向一个或多个应用服务器118提供编程和网络接口。应用服务器118托管一个或多个应用120。一个或多个应用服务器118转而被示出为耦合到便于访问一个或多个数据库126的一个或多个数据库服务器124。虽然图1中示出了应用120以形成联网系统102的一部分,但是将领会的是,在替代实施例中,应用120可以形成与联网系统102分离且不同的服务的一部分。
此外,虽然图1中所示的客户端-服务器系统100采用客户端-服务器架构,但是本公开内容当然不限于这样的架构,并且同样可以例如在分布式或对等架构系统中找到应用。各种应用120也可以被实现为独立的软件程序,其不一定具有联网能力。
网络客户端106经由网络服务器116支持的网络接口来访问各种应用120。类似地,编程客户端108经由API服务器114提供的编程接口访问由应用120提供的各种服务和功能。
图1还示出了在第三方服务器130上执行的第三方应用128,其具有经由API服务器114提供的编程接口对联网系统102的编程访问。例如,第三方应用128可以利用从联网系统102取回的信息,支持由第三方托管的网站上的一个或多个特征或功能。例如,第三方网站可以提供由联网系统102的相关应用120支持的一个或多个功能。
在一些实施例中,本文提及的任何网站可以包括可以在各种设备上呈现的在线内容,包括但不限于台式个人计算机(PC)、膝上型计算机和移动设备(例如,平板计算机、智能手机等)。在这方面,用户可以采用这些设备中的任何设备来使用本公开内容的特征。在一些实施例中,用户可以使用移动设备(机器110、112和第三方服务器130中的任何一者可以是移动设备)上的移动应用程序来访问和浏览在线内容,例如本文中公开的在线内容中的任何一者。移动服务器(例如,API服务器114)可以与移动应用和应用服务器118通信,以便使得本公开内容的特征在移动设备上可用。
在一些实施例中,联网系统102可以包括社交网络服务的功能组件。图2是示出了与本公开内容的一些实施例一致的社交网络服务的功能组件的框图,包括在本文中被称为搜索引擎216的数据处理模块,其用于生成和提供搜索查询的搜索结果。在一些实施例中,搜索引擎216可以驻留在图1中的应用服务器118上。然而,其他配置也在本公开内容的范围内是在考虑中的。
如图2所示,前端可以包括用户接口模块(例如,网络服务器116)212,其接收来自各种客户端计算设备的请求,并且向进行请求的客户端设备传送适当的响应。例如,用户接口模块212可以接收具有超文本传输协议(HTTP)请求或其他基于网络的API请求的形式的请求。另外,可以提供成员交互检测模块213来检测成员与呈现的不同应用120、服务和内容的各种交互。如图2所示,在检测到具体交互时,成员交互检测模块213在成员活动和行为数据库222中记录交互,包括交互的类型和与交互相关的任何元数据。
应用逻辑层可以包括一个或多个各种应用服务器模块214,其结合用户接口模块212,生成具有从数据层中的各种数据源检索的数据的各种用户界面(例如,网页)。在一些实施例中,各个应用服务器模块214用于实现与各种应用120相关联的功能和/或由社交网络服务提供的服务。
如图2所示,数据层可以包括若干数据库,例如用于存储简档数据(包括成员简档数据和各种组织(例如,公司、学校等)的简档数据二者)的简档数据库218。与一些实施例一致,当一个人最初注册成为社交网络服务的成员时,该人将被提示提供一些个人信息,例如他或她的姓名、年龄(例如,出生日期)、性别、兴趣、联系人信息、家乡、地址、配偶和/或家庭成员的姓名、教育背景(例如,学校、专业、入学和/或毕业日期等)、工作经历、技能、专业组织等。该信息存储在例如简档数据库218中。类似地,当组织的代表最初向社交网络服务注册该组织时,代表可以被提示提供关于组织的某些信息。该信息可以存储在例如简档数据库218或另一个数据库(未示出)中。在一些实施例中,可以(例如,在后台或离线)处理简档数据以生成各种导出的简档数据。例如,如果成员已经提供了有关该成员在同一组织或不同组织持有的各种职位头衔的信息,以及多长时间,则该信息可以用于推断或推导出成员简档属性,其指示该成员的总体资历级别,或者特定组织内的资历级别。在一些实施例中,从一个或多个外部托管数据源导入或以其他方式访问数据可以丰富成员和组织二者的简档数据。例如,特别是对于组织,财务数据可以从一个或多个外部数据源导入,并作为组织简档的一部分。这种组织数据的导入和数据的丰富将稍后在本文档中更详细地描述。
一旦注册,成员可以邀请其他成员或被其他成员邀请,以经由社交网络服务进行连接。“连接”可以构成成员的双边协议,以便两个成员都承认连接的建立。类似地,在一些实施例中,成员可以选择“关注”另一个成员。与建立连接相反,“关注”另一个成员的构思通常是单方面操作,并且至少在一些实施例中,不需要被关注成员的确认或批准。当一个成员关注另一个成员时,正在关注的成员可以接收由被关注成员发布的或者与被关注成员进行的各种活动有关的状态更新(例如,在活动或内容流中)或其他消息。类似地,当成员关注组织时,成员有资格接收代表组织发布的消息或状态更新。例如,代表成员所关注的组织发布的消息或状态更新将显示在成员的个性化数据馈送中,其通常被称为活动流或内容流。在任何情况下,在社交图谱数据库220中的社交图谱内存储和维护成员与其他成员或与其他实体和对象建立的各种关联和关系。
当成员与经由社交网络服务可用的各种应用120、服务和内容交互时,成员的交互和行为(例如,所查看的内容、所选择的链接或按钮,所响应的消息等)可以被跟踪,并且关于成员活动和行为的信息可以例如如图2所示地由成员活动和行为数据库222记录或存储。然后,搜索引擎216可以使用该记录的活动信息来确定搜索查询的搜索结果。
在一些实施例中,数据库218、220和222可以合并到图1中的数据库126中。然而,其他配置也在本公开内容的范围内。
虽然未示出,但是在一些实施例中,社交网络服务系统210提供API模块,经由该API模块,应用120和服务可以访问由社交网络服务提供或维护的各种数据和服务。例如,使用API,应用可以能够请求和/或接收一个或多个导航推荐。这样的应用120可以是基于浏览器的应用120,或者可以是特定于操作系统的。特别地,一些应用120可以与移动操作系统一起(至少部分地)驻留和执行在一个或多个移动设备(例如,电话或平板计算设备)上。此外,虽然在许多情况下,应用120或利用API的服务可以是由操作社交网络服务的实体开发和维护的应用120和服务,但除数据隐私问题之外的任何内容都不会阻止API被提供给公众或特殊安排下的某些第三方,从而使导航推荐可用于第三方应用128和服务。
虽然搜索引擎216在本文中被称为在社交网络服务的上下文中使用,但是它也可以在任何网站或在线服务的上下文中采用是在考虑中的。另外,虽然本公开内容的特征在本文中被称为在网页的上下文中使用或呈现,但是任何用户界面视图(例如,移动设备上或桌面软件上的用户界面)都在本公开内容的范围内是在考虑中的。
在示例性实施例中,当成员简档被索引时,创建并存储前向搜索索引。搜索引擎216便于索引和搜索社交网络服务内的内容,例如索引和搜索包含在数据层中的数据或信息,例如简档数据(存储在例如简档数据库218中)、社交图谱数据(存储在例如社交图谱数据库220中)以及成员活动和行为数据(存储在例如成员活动和行为数据库222中)。搜索引擎216可以用索引或其他类似结构来收集、解析和/或存储数据,以便于响应于所接收的针对信息的查询来识别和检索信息。这可以包括但不限于前向搜索索引、反向索引、元语法索引等。
图3是更详细地示出图2的应用服务器模块214的框图。虽然在许多实施例中,应用服务器模块214将包含用于在社交网络系统内执行各种不同动作的许多子组件,但是在图3中仅描绘了与本公开内容相关的那些组件。图像摄取组件300从简档数据库218获得图像。这些图像可以是例如由成员上传到他们自己的成员简档的图像。在一些示例性实施例中,图像摄取组件300可以经由用户接口直接从成员获得图像,而不是首先将图像存储在简档数据库218中。
图像预处理组件302从图像摄取组件300获取每个图像并对其进行预处理。如下文将更详细描述的,这可以包括对图像的某些方面(例如,长宽比、长度、宽度、颜色通道等)进行归一化。然后将每个经预处理的图像传递给第一DCNN 304,已经使用训练图像对第一DCNN 304进行了训练以分析经预处理的图像并产生指示图像内容中的专业度水平的专业度得分。下面将更详细地描述该过程。然后,该专业度得分将由图像变换组件306使用以基于专业度得分对图像的某些方面进行变换(例如,裁剪、旋转、调整光线、加阴影、锐化等),以提高图像的主体的专业度。下面将更详细地对此进行描述。然后可以将经变换的图像存储在简档数据库218中。
第一DCNN 304是机器学习模型,其有效地推断出同质输入场和期望输出之间的非线性关系,其是分类类别或标量。第一DCNN 304是使用一系列所谓的人工神经元卷积层将输入映射到输出的模型。可以通过向第一DCNN 304呈现大量(例如,大于10,000)的样本图像和标注(例如,“专业”或“非专业”)或与样本图像相关联的得分(例如,专业度得分为76/100)来训练第一DCNN 304。其被训练为使模型输出和期望输出之间的差异(或“损失”)最小化。在训练之后,可以将模型应用于新的输入图像以产生对新输入图像的专业度水平的有用预测。
当输入图像已经被归一化时,第一DCNN 304执行得更好,因此可以由图像预处理组件302对样本图像和输入图像二者执行预处理操作以便对它们进行归一化。该归一化可以包括例如将所有图像改变为具有一致的尺寸(例如,250×250像素)和一致的颜色通道(例如,红绿蓝的3个颜色通道)。当输入是同质的(意味着输入具有统一的含义(例如,每个像素表示强度),并且输入中的邻域关系被很好地定义(例如,彼此相邻的像素表示物理上接近位置))时,第一DCNN 304也表现得更好。
第一DCNN 304被设计为不仅学习图像的分类/专业度得分,而且还通过定义多个层来学习从像素直至分类器的特征层级。推断过程涉及获取给定输入,应用一系列被称为层的数学函数,以及计算关于输入图像的函数。每个层从前一个层的输出中提取特征,并且所有图层都是联合训练的。基于层的架构是它被称为“深度”卷积神经网络的原因。
在示例性实施例中,使用了五种不同类型的层。前四层是卷积层、非线性层、池化层和分类层(但分类只是后跟“softmax”的卷积的一个特例,)。这些前四层可以被认为是一个阶段,并且第一DCNN 304实际上可以被设计为具有任何数量的这些阶段。一旦完成所有阶段,就使用损失层。图4是根据示例性实施例示出第一DCNN 400的图。在一些示例性实施例中,第一DCNN 400可以是图3的DCNN 304。在此,描绘了两个阶段402A、402B。
卷积层404A、404B是第一DCNN 400的核。它们的参数包括可学习的过滤器的集合,这些过滤器具有较小的接受域(receptive field),但延伸到输入图像的整个深度。换句话说,对于彩色图像,每个过滤器可以在每个图像中查看相对少量的像素,但是查看该区域中的所有颜色。在卷积层404A、404B中的前向传递期间,跨越输入图像的宽度和高度对每个过滤器进行卷积,计算过滤器的条目和输入之间的点积并产生该过滤器的二维激活映射。作为结果,第一DCNN 400学习当在输入图像中的某个空间位置处看到某种特定类型的特征时激活的过滤器。
可以沿深度维度来堆叠所有过滤器的特征映射,以形成卷积层404A、404B的全容积输出。
卷积层404A、404B应用被称为卷积的数学运算。对于两个空间维度和不确定数量的非空间维度(被称为“通道”),使用*运算符定义卷积如下:
卷积层404A、404B通常将具有某个非常小的支撑,例如,N=1且M=1,使得如果|n|>1或|m|>1,则g[n,m,d]=0。
应当注意的是,卷积层404A、404B中使用的过滤器可以在第一DCNN400的第一次迭代中被激活,并且在每次附加迭代之前基于在先前迭代中的其他层中采取的动作被细化,直到某个误差项被最小化到特定门限以下为止。在一个示例性实施例中,这可以通过反向传播来实现,这将在下文中更详细地描述。
卷积层404A、404B的输出是被称为特征映射406A-406C的阵列集合。每个特征映射406A-406C可以由不同的过滤器产生,并且基于每个阶段中的各个函数进行修改。例如,如果输入是彩色图像,则每个406A-406C可以是所有颜色通道信息的某种聚合的二维阵列。在输出处,每个特征映射406A-406C表示在输入上的所有位置处提取并被调节的特定特征。图4中的示例是两阶段系统,但是本领域普通技术人员将认识到可以使用更多或更少的阶段,同时仍然与本公开内容一致,并且实际上将在示例性实施例中看到,可以在运行时动态确定阶段的数量以优化结果。
非线性层408A、408B在揭示输入和输出之间的非线性关系时给予第一DCNN 400更大的表达能力。在非线性层中可以使用许多不同的非线性,包括sigmoid、双曲正切和整流线性函数。为简洁起见,本文中将描述非线性的一个示例:整流线性函数。该函数由以下公式定义:
应用池化层410A、410B以降低输入图像的空间维度,同时保留来自输入图像的一些信息。换句话说,池化层410A、410B实际上不进行任何学习;换句话说,它们是不会随着训练的进行改变的固定的预定义操作。相反,它们被用于问题的空间维度。在一个示例性实施例中,可以遵循抽取方法,其中,沿着空间维度的每N个样本中的一个样本被阻挡在外。在另一个示例性实施例中,一些本地统计值可以用于池化,例如最大池化,定义为:
其中,N=M=2。
当所有阶段402A、402B完成时,分类层412用于使用最终池化层410B的输出对图像进行分类。如上所述,分类层412实际上是包含过滤器的专用卷积层,所述过滤器被设计为从最终池化层410B的容积输出产生分类得分。该过滤器应用具有权重的分类函数,所述权重可以以与正常卷积层404、404B的过滤器的函数中的权重相同的方式来细化。
反向传播涉及针对第一DCNN 400中的多个权重来计算损失层414中的损失函数(稍后定义)的梯度。然后将梯度馈送到一种方法,所述方法更新第一DCNN 400的训练的下一次迭代的权重,以尝试使损失函数最小化,所述损失函数使用不同的多个样本图像(除非需要重复,例如用完了样本图像)。反向传播使用已经被传递通过阶段402A、402B的一批样本图像中的经标注的样本图像,以便针对作为群组的样本来计算损失函数梯度(如稍后将看到的,但可以动态修改损失函数以不考虑这些样本中的一些样本)。
反向传播可以包括两个方面:传播和权重更新。在传播方面,通过第一DCNN 400执行训练模式的输入图像的前向传播,以便生成传播的输出激活(即,图像被传递通过阶段402A、402B)。然后,使用由训练模式指定的目标通过DCNN 400执行传播的输出激活的反向传播,以便生成所有输出的增量。
在权重更新方面,针对每个过滤器的每个权重,将输出增量和输入激活相乘以获得权重的梯度,然后从权重中减去梯度的比率。该比例影响学习的速度和质量。比率越高,训练越快,但是以准确性为代价。
因此,重复执行这两个方面(包括正向传递通过和反向传递通过阶段402A、402B),直到误差率低于特定门限。与第一DCNN 400兼容的反向传播算法的示例包括例如梯度下降。
可以关于该批经标注的样本图像中的图像的分类的组合误差是否超过预设误差门限来预测反向传播的使用。如果组合误差太大,则应当进行反向传播以更新并有希望最小化下一次迭代的误差,然后利用后续批次的经标注的样本图像执行下一次迭代,直到组合误差不超过门限为止。
如上所述,经标注的输出可以是图像的专业度得分,或者可以是类别变量(例如,高专业度、中等专业度或低专业度)。在前者中,第一DCNN400输出可以与某些损失函数的期望输出进行比较的向量,如以下总和平方误差函数:
对于分类问题,可能的N个输出类别可以被枚举为整数,并且期望的输出可以被表示为二进制特征向量,例如(0,1,0...0)以表示输出标注I=2。因此,对于分类问题,训练DCNN以输出表示每个种类的概率的向量,并且可以如下使用某种概率损失函数(例如,已知的进入代价函数(entry cost function)):
其中,是CDNN针对第i个元素的输出,并且li对于除了正确类别之外的所有I都是0。
返回参照图3,可以将来自第一DCNN 304的输出传递给图像变换组件306,所述图像变换组件306用于基于图像的专业度得分(以及图像的各种变换版本的潜在专业度得分)来变换候选图像。下面将更详细地描述该过程。
在示例性实施例中,来自图像变换组件306的经变换图像可以用作简档图像,并因此存储在简档数据库218中,以及用于训练第二DCNN 308。可以用与第一DCNN 304类似的方式来构造第二DCNN 308,除了第二DCNN 308被训练为针对输入图像输出单个“最优”变换,而不是针对输出来输出专业度得分。该输出的确切方式可以基于训练第二DCNN 308所针对的变换的类型而不同。例如,如果训练第二DCNN 308来执行输入图像的最优裁剪,则训练数据可以包括基于来自第一DCNN 304的专业度得分对候选图像执行的、来自图像变换组件306的样本输出裁剪,但第二DCNN 308可以输出用于对输入图像进行裁剪的矩形的坐标/描述(例如,对于给定的输入图像,通过从位置x、y开始,并且具有宽度w和高度h而形成的矩形应当是在裁剪后留下的区域;因此,输出为{x,y,w,h})。
如上所述,对第一DCNN 400进行训练的过程包括许多不同的操作。图5是根据示例性实施例示出一种训练第一DCNN 400的方法500的流程图。在操作502处,将一批样本经标注的图像馈送到第一DCNN 400,并且第一DCNN 400的当前模型产生输出。例如,该输出可以是每个样本经标注的图像的专业度分类或专业度得分。在操作504处,第一DCNN 400的损失层414计算该批样本经标注的图像的误差。例如,该误差可以是每个个体样本经标注的图像的个体误差的组合。在操作506处,根据损失层414中定义的损失函数,更新卷积层404A、404B(其还包括分类层412)中的过滤器内部的权重以使损失最小化。在操作508处,基于定义的验证集来确定误差是否已经被最小化。该定义的验证集可以包括误差门限,并且如果该误差门限已经被超过,则误差尚未被最小化,并且该过程重复回到针对下一批样本经标注的图像的操作502。如果误差已经被最小化(门限尚未被超过),则DCNN已经被训练。
在示例性实施例中,定义的验证集基于随机梯度下降(SGD)函数。SGD包括以下步骤:
1、从训练集中随机选择少量样本;
2、通过第一DCNN 400中的所有层406-412馈送所选择的样本,直到针对每个特征映射406A-406C计算出当前误差为止;
3、利用梯度下降规则来更新卷积层406中的权重:
其中,w是权重。
图6是根据示例性实施例示出一种向图像指派专业度得分的方法600的流程图。在这种上下文中,专业度指的是感知到的图像的主体的专业度,所述主体是人(例如,人在他或她的工作中表现出的专业度),而不是例如如何对主体进行拍摄的专业度。
在操作602处,将图像传递给DCNN的卷积层,生成输出。在操作604处,将来自卷积层的输出传递给非线性层,生成输出。在操作606处,将来自非线性层的输出传递给池化层,生成输出。在操作608处,将来自非线性层的输出传递给分类层,产生数字图像的专业度得分。应当指出的是,在将专业度得分指派给未经标注的图像的该运行时过程中,没有必要使用损失层(实际上,损失层的使用没有意义,因为没有标注可供图像来确定误差水平)。
返回参照图3,由DCNN 304针对图像生成的专业度得分可以由图像变换组件306在对图像执行一个或多个变换时使用。这些变换包括但不限于裁剪、旋转、光线补偿、边缘增强过滤、模糊过滤和空间变化模糊过滤。
图7是更详细示出图像变换组件306的框图。优化问题解决组件700用于解决优化问题。优化问题是从所有可行解决方案中找到最佳解决方案的问题。在裁剪的情况下,优化问题可以是具有离散变量的优化问题,因此被称为组合优化问题。这是因为优化问题尝试在输入图像的所有可能变换中找到最佳变换。优化问题解决组件700尝试使用优化算法来解决优化问题。离散变量的优化算法的示例包括确定性优化算法(例如,高斯-牛顿(Gauss-Newton)、麦夸特法(Levenberg-Marquardt)、准牛顿(Quasi-Newton)、非线性共轭梯度和步长大小τ)和以及随机算法(例如,SGD、Robbin-Monro和衰减序列)。
对于其他图像变换,可以使用连续优化问题算法。用于连续变量的优化算法的示例包括:无约束优化算法(例如,导数自由算法、线搜索方法、梯度方法、牛顿和信赖域方法)和基于共轭方向的算法,以及约束优化算法(例如,线性优化(旋转算法和内点法),凸二次优化)和一般非线性优化算法(对偶理论、简化梯度方法和障碍方法)。
无论选择何种优化算法,优化问题解决组件700将与DCNN 304交互以获得关于各种不同可能变换对图像的影响的反馈,其由各种单独的变换组件702A-702F定义。这些个体变换组件702A-702F均使用由优化问题解决组件700指定的参数来将不同类型的变换应用于图像。以这种方式,个体变换组件702A-702F不需要每个都对图像运行适当类型的每个可能变换。例如,裁剪变换组件702A不必执行所有可能的不同方式来对特定图像进行裁剪以便DCNN 304可以为那些可能裁剪中的每种裁剪指派专业度得分从而使得优化问题解决组件700可以选择最大程度地提高专业度得分的裁剪,而是优化问题解决组件700可以选择具有最高成功可能性的某些特定裁剪,并且通过在参数中向裁剪变换组件702A指定它们来请求仅研究那些裁剪。
裁剪变换组件702A用于根据由优化问题解决组件700指定的参数来对输入图像执行裁剪变换,图8是根据示例性实施例示出已经由DCNN 304对专业度进行了评分的示例性原始图像800的图。优化问题解决组件700可以用于确定该原始图像800的最优裁剪,以便使专业度得分最大化。图9是示出裁剪变换组件702A按照优化问题解决组件700的指示所尝试的各种不同的可能裁剪的图。DCNN 304可以对这些不同的可能裁剪中的每个裁剪进行评分,并且优化问题解决组件700选择最大程度地提高专业度得分的裁剪。图10是根据示例性实施例示出所选择的最优裁剪1000的图。应当指出的是,虽然在一些情况下优化问题的结果可以是选择与如果在检查不同的参数(例如,图像本身的质量),则也会作为最优裁剪被选择类似的最优裁剪,但在许多情况下,专业度得分将导致与这些其他类型的参数完全不同的选择。例如,对于专业度而言的最优裁剪可以是比对于图像质量而言的最优裁剪更紧密的头部拍摄,其可能更感兴趣的是使拍摄中的主体居中而不是拍摄中的背景画面的量或缺乏。
在另一个示例性实施例中,可以通过训练单独的神经网络来改进上述自动裁剪过程,所述神经网络将图片视为输入并从图片输出最佳矩形。以这种方式,没有必要为了“最佳矩形”而具有人类批注图像。相反,自动裁剪过程用于查找使得分最大化的裁剪,并且该裁剪被用作另一个神经网络正在针对其进行训练的“真相”。在某种意义上,一个DCNN的输出被用作输入的标注来训练不同的神经网络。使用这种技术,第二神经网络可能可以表达学习规则,例如“通常感兴趣的对象在图像的中间附近”或“感兴趣的对象从来不应当具有非常小的宽度或高度”。这提高了在没有空间背景的情况下对矩形进行评分的过程的性能。
旋转变换组件702B用于根据优化问题解决组件700指定的参数来对输入图像执行旋转变换。图11是示出旋转变换组件702B按照优化问题解决组件700的指示所尝试的各种不同的可能旋转的图。DCNN 304可以对这些不同的可能旋转中的每个旋转进行评分,并且优化问题解决组件700选择最大程度地提高专业度得分的旋转。图12是根据示例性实施例示出所选择的最优旋转1200的图。
光线补偿变换组件702C用于根据优化问题解决组件700指定的参数来对输入图像执行光线补偿变换。这些光线补偿变换可以包括使图像区域变亮或变暗。边缘增强过滤变换组件702D用于根据优化问题解决组件700指定的参数来对输入图像执行边缘增强过滤。边缘增强过滤增强了图像的边缘对比度,以尝试提高其清晰度。过滤通过以下方式来起作用:识别图像中清晰的边缘边界(例如,主体和背景之间的边缘),并增加紧靠边缘周围区域的图像对比度。
模糊过滤变换组件702E用于根据优化问题解决组件700指定的参数来对输入图像执行模糊过滤变换。这里,模糊过滤变换旨在平滑皮肤纹理。空间变化的模糊过滤变换组件702F用于根据优化问题解决组件700指定的参数来对输入图像执行空间变化的模糊过滤变换。这里,空间变化的模糊过滤涉及模糊背景,但不是主体。
应当指出的是,虽然本文中描绘了六个不同的个体变换组件702A-702F,但是所有六个变换组件不必都存在于单个实施例中。可以根据实施方式,使用个体变换组件702A-702F的任何组合。另外,优化问题解决组件700可以个别地与个体变换组件702A-702F中的每个变换组件进行交互,或者替代地可以同时与个体变换组件702A-702F的群组进行交互。例如,如果优化问题解决组件700希望确定可以对图像执行的裁剪和旋转的最佳组合以便最大程度地提高专业度,则优化问题解决组件700可以同时与裁剪变换组件702A和旋转变换组件702B二者进行交互以达到最佳裁剪/旋转组合的联合结果,或者可以个别地与每个组件进行交互从而针对最佳裁剪和最佳旋转产生独立答案。
应当指出的是,上文针对图像变换组件306描述的各个方面不一定需要结合第一DCNN 304来进行操作。在一些示例性实施例中,可以使用不同的机器学习组件来生成由图像变换组件306在确定要对图像执行的最佳变换时使用的专业度得分。
还应当指出的是,由本文档中的各种DCNN执行的图像变换不限于所描述的示例。实际上,可以执行任何图像变换,例如通用变换f,M=f(I),其是图像I中的所有像素到新图像N的映射。例如,这可以利用一些正则化的项来轻微调整图像中的所有像素,以“改善”图片。
图13是根据示例性实施例示出一种用于自动裁剪数字图像以提高感知到的图像的主体的专业度的方法1300的流程图。在操作1302处,机器学习算法用于使用机器学习算法来生成数字图像的专业度得分,所述机器学习算法包括:训练模式,其中,具有经标注的专业度得分的多个样本图像用于训练产生专业度得分作为输出的模型中的分类函数;以及分析模式,其中,模型用于生成数字图像的专业度得分。在示例性实施例中,该机器学习算法可以是上述DCNN 304或400,但这不是强制性的。在操作1304处,专业度得分被用作离散变量优化算法的输入,以使用分类函数从数字图像的多个可能的经裁剪版本确定数字图像的最优裁剪版本。
图14是根据示例性实施例示出一种用于对数字图像自动执行图像变换以提高感知到的图像的主体的专业度的方法1400的流程图。在操作1402处,机器学习算法用于使用机器学习算法来生成数字图像的专业度得分,所述机器学习算法包括:训练模式,其中,具有经标注的专业度得分的多个样本图像用于训练产生专业度得分作为输出的模型中的分类函数;以及分析模式,其中,模型用于生成数字图像的专业度得分。在示例性实施例中,该机器学习算法可以是上述DCNN 304或400,但这不是强制性的。在操作1404处,专业度得分用作连续变量优化算法的输入,以使用分类函数从对其已经执行了一种或多种图像变换的数字图像的多个可能版本确定数字图像的最优版本。
在另一个示例性实施例中,由模型产生的专业度得分可以用于从一组图像中识别最佳图像以供成员用作简档图片。例如,系统可以被设计为自动浏览用户设备上的图像并选择示出该成员的图像,其中,所选择的图像是具有最高专业度得分的图像。在一些示例性实施例中,这可以通过将图像搜索限制为标注为“自拍”的图像来执行,例如通过存储在其中具有名称“自拍”的目录中。在另一个示例性实施例中,可以使用机器学习算法来识别自拍物本身。该过程还可以与上述其他用例中的一个或多个用例(例如,裁剪)组合,以便在不需要用户输入的情况下为用户简档提供高质量、高度专业的图像。
在另一个示例性实施例中,来自例如简档数据库218的社交网络信息可以与上文针对发布或上传到社交网络服务的图像的专业度所描述的第一DCNN 304结合使用。社交网络通常具有可以用于辅助第一DCNN 304的训练的非常丰富的信息,因为不仅图像信息可用,而且关于图像的主体的各种信息(例如,职位头衔、经验水平、技能、年龄等)也是可用的。该信息可以在帮助利用专业度得分或类别来标注训练图像方面非常有用,因此人们不需要从头开始标注每个图像。例如,可以将自动标注组件添加到上面在图3中描述的系统和相应的文本中,以便基于从与每个样本图像相关联的社交网络简档获取的各种信号将自动标注应用于样本图像。自动标注组件可以对社交网络简档上的字段进行解析以推断相应成员的专业度水平,不包括任何图像。通常可以用于推断专业度水平的字段包括头衔、技能、经验以及链接到社交网络简档的其他社交网络成员的类型等。实际上,在一些示例性实施例中,自动标注组件可以使用其自己的机器学习算法来训练模型,以将专业度水平指派给一个或多个样本图像所链接到的社交媒体简档。可以从许多不同的潜在监督机器学习算法中选择机器学习算法。监督学习算法的示例包括贝叶斯网络、基于实例的学习、支持向量机、随机森林、线性分类器、二次分类器、k-最近邻居、决策树和隐式马尔可夫(Markov)模型。
应当指出的是,自动标注组件可以简单地向分类器推荐关于要应用于图像的标注。在一些示例性实施例中,分类器可能仍然需要批准推荐以便将其应用于图像,并且分类器可以重写推荐。
虽然自动标注组件可以使用来自社交媒体简档的信息来改进标注,但是社交媒体简档通常可能充满异常值和不正确的信息(例如,声称是130岁的成员,仅仅因为他们不想填写出生日期)。这导致需要在训练期间自动忽略这些异常值并以不需要人工处理来排除异常值的稳健的方式放大正确的解决方案。自动标注组件也可能难以补偿这些误差,或者被修改以处理这些误差。
因此,为了在例如SGD的上下文中有效地滤除异常值,可以在第一DCNN 400的损失层414中实现专门的过程。如上所述,损失层414可能通常将静态损失函数应用于其输入。然而,在示例性实施例中,损失层414被修改为包括动态改变的函数,其基于对样本的统计分析进行调整。
图15是根据示例性实施例示出一种用于在DCNN中滤除SGD优化中的异常值的方法1500的流程图。在操作1502处,随机选择馈送到DCNN的一批N个样本。在操作1504处,使用DCNN来对N个样本中的每个样本的专业度进行评估。在操作1506处,对于每个样本,可以应用静态损失函数(被称为loss[n])。
在操作1508处,以(rank,loss)的元组来对计算出的损失进行排序和枚举。在操作1510处,引入经修改的损失函数(k(rank,loss)),其是动态的并且应用于损失,产生(newloss[n],rank)=(k(rank,loss),rank)。
在相对简单的示例中,动态损失函数可以如下:
k(rank,loss)=loss如果rank/N>0.8,
k(rank,loss)=0其他。
这将导致忽略统计值中前20%的最差样本。然而,在其他示例性实施例中,应用统计测试,动态损失函数可以更细微。例如,可以假设误差的高斯(Gaussian)分布,并且由其违反高斯假设的机会来对样本进行加权。这意味着当前批次中的均值μ、标准差σ以及测量值可以标准化如下:
z=(loss-μ)/σ
并且样本可以由其不属于误差统计的概率来加权:
k(loss,rank)=loss*(1-erf(z))。
结果是:基于对哪些样本图像示出了其指派的专业度得分与预期的专业度得分之间的最大偏差的统计分析,在DCNN的每个阶段中对损失函数进行动态更新。
作为示例,假设每批有五个样本。在给定阶段,DCNN可以输出五个样本的专业度得分(1.1,1.2,2,2和97),但是图像的标注被指派为(1,1,2,2,1)。如果静态损失函数是绝对误差(预测校正),则来自静态损失函数的损失是(0.1,0.2,0,0,96)。然后样本的排名是(3,4,1,2,5),因为与其预期值相比,5显然是最不精确的。如果应用上文描述的简单动态损失函数(其忽略前20%的最差样本),则动态损失函数将滤除上述批次中样本5的结果,因为它处在排名最低的20%之中。因此,来自经修改的动态损失函数的结果是(0.1,0.2,0,0,0)。因此,边远样本不会激发模型中的任何变化以适应它。
在另一个示例性实施例中,可以通过一起计算关于多个最近批次而不是仅当前批次的误差统计值来扩展动态损失函数方法。例如,N个最近批次可以用于统计目的,其中,N=4。这意味着最后20个样本图像通过上述算法运行,并提供最后20个样本图像的排名。然后使用这些统计值(排名)来应用动态损失函数,但仅在最近的批次上应用。因此,例如,对于20个样本,前20%最差的将是4个最差样本。这4个最差样本可能都来自最近的批次,可能完全不是来自最近的批次,或者可能部分来自最近的批次。如果它们都来自最近的批次,则最近的批次中的五个样本中的四个样本将被忽略。如果它们都不是来自最近的批次,则最近的批次中的五个样本中没有样本将被忽略。如果它们中的一些来自最近的批次,则仅最近的批次中的那些将被忽略。因此,基于来自最后N个批次的统计信息确定最近批次中哪些样本将被动态损失函数忽略,其中,N大于1。
在另一个示例性实施例中,随着训练的进行引入更严格的异常值门限的安排(以使得当模型开始学习时不忽略异常值,并且随着训练过程包含,逐渐更积极地忽略异常值)。即k(loss,rank,batch_i),其中,batch_i表示训练过程的当前迭代。
应当注意的是,可以针对任何DCNN而不仅仅是正被训练的DCNN采取这种修改的动态损失函数方法,以输出如上所述的专业度得分。
图16是根据示例性实施例示出一种用于训练DCNN的方法1600的流程图。该方法1600中的DCNN可以是或可以不是上述第一DCNN 304或400或者第二DCNN 308。换句话说,方法1600可以使用被设计为输出图像的专业度得分的DCNN,或者可以使用被设计为输出关于任何其他类型的输入的任何其他某种程度的分类的DCNN。
在操作1602处,将当前多个样本输入到DCNN,其中,每个样本具有标注,并且所述输入针对每个样本包括运行操作1604A-1604E。操作1604A涉及:将样本传递给DCNN的卷积层,其中,卷积层包括具有动态可调整权重的一个或多个过滤器,并且所述一个或多个过滤器被配置为对样本进行过滤以产生相应样本的输出容积,其中,输出容积包括用于所述一个或多个过滤器中的每个过滤器的不同特征映射。操作1604B涉及:将来自卷积层的输出容积传递通过非线性层,其中,非线性层将非线性函数应用于来自卷积层的输出容积。操作1604C涉及:将来自非线性层的输出容积传递通过池化层,其中,池化层降低来自非线性层的输出容积的空间纬度。操作1604D涉及:将来自池化层的输出容积传递通过分类层,其中,分类层包括具有过滤器的专用卷积层,过滤器被设计为基于来自池化层的输出容积来输出对样本的预测。操作1604E涉及:将样本传递通过损失层,其中,损失层向样本应用损失函数,从而得到对与样本的标注相比较的、来自分类层的预测中的误差水平的指示。
在操作1606处,基于当前多个样本中的每个样本的相应误差水平来对这些样本进行排名。在操作1608处,将动态损失函数应用于当前多个样本,以从考虑中去除较低排名的样本。动态损失函数可以基于关于当前多个样本的统计值,或者可以基于关于当前多个样本和先前用于训练DCNN的一个或多个先前多个样本的组合的统计值。随着训练的更多迭代发生,动态损失函数可以被设计为自动变得更加严格。在操作1610处,确定未被动态损失函数从考虑中去除的当前多个样本的误差水平的组合是否超过预设门限。如果是,则在操作1612处,更新DCNN的卷积层(包括分类层)中的一个或多个过滤器的权重以减少误差水平的组合。然后方法1600循环回到操作1602,以用下一批多个样本来重复训练。
返回参照图3,如前所述,来自图像变换组件306的输出可以用于训练第二DCNN308以执行图像变换,而无需图像变换组件306使用的相同运算密集型过程。应当指出的是,因为第二DCNN 308被训练为执行特定类型的变换(例如,裁剪),所以在一些示例性实施例中,可以存在多个“第二”DCNN,每个第二DCNN被训练为执行不同的变换。然而,为简单起见,本文中将仅描述单个第二DCNN 308,并且将在裁剪操作的上下文中对其进行描述。
从技术观点来看训练第二DCNN 308是有益的,这是因为图像变换组件306可以被设计为在没有关于图像的上下文信息的益处的情况下执行其变换。例如,在裁剪的情况下,图像变换组件306基本上尝试多个不同的裁剪并对每个裁剪进行评分。虽然选择要尝试的裁剪可能不完全是随机的(参见上文关于优化问题解决的讨论),但是不基于关于图像的上下文信息来选择它们。例如,为了使传递给第一DCNN 304的图像的尺寸标准化,图像预处理组件302通常将拉伸或缩小图像的一个或两个维度。然后,图像变换组件306不具有关于它正在变换的图像是否已被拉伸的信息,并且该信息对于确定什么是图像的最优裁剪(例如,导致变形图像的裁剪将不会是最优的)可能是有用的。另外,鉴于图像或主题的尺寸,某些尺寸的裁剪根本不合理。如果我们在处理简档图片(因此,主体的面部),与其宽度相比太短或与其高度相比太窄的矩形可能不是很好的选择,仅仅是太小的矩形(例如,3像素×4像素)可能也不是很好的选择。通过训练DCNN 308在没有图像预处理的情况下执行图像变换,DCNN 308能够不仅学习潜在的裁剪区域而且还学习周围区域的基于上下文的特征,这使得能够更快地选择最优裁剪,因此不使用尽可能多的处理循环。
一旦第二DCNN 308已经被训练,就可以发生“切换”,其中,新的候选图像被传递给第二DCNN 308而不是被传递给图像预处理组件302、第一DCNN 304和图像变换组件306。在示例性实施例中,DCNN选择器310可以做出关于第二DCNN 308是否已经被足够训练以进行切换的确定。下面将更详细地描述DCNN选择器310的决策过程。
图17是根据示例性实施例示出在向第二DCNN 308的切换已经发生之后的应用服务模块214的框图。这里,第二DCNN 308已经被完全训练,因此候选图像直接从图像摄取组件300传递给第二DCNN 308,绕过了图像预处理组件302、第一DCNN 304和图像变换组件306。应当注意的是,虽然该图描绘了图像处理组件302、第一DCNN 304和图像变换组件306被绕过,但是在一些示例性实施例中,这种绕过可能仅针对第二DCNN 308已经对此进行了训练的特定类型的变换而发生。例如,如果已经针对裁剪训练了第二DCNN 308,则可以使用第二DCNN 308直接从图像摄取组件300发生对图像的裁剪,但是其他类型的变换(例如,旋转、光线调整等)可以继续由图像变换组件306经由图像预处理组件302和第一DCNN 304执行,如上文针对图3所描述的。
DCNN选择器310可以通过使用一个或多个度量来评估第一DCNN 304和第二DCNN308的输出来确定是时候从第一DCNN 304切换到第二DCNN 308。在示例性实施例中,所使用的度量实际上是第一DCNN 304输出的专业度得分。具体而言,假设专业度得分是其如何确定最优变换,则图像变换组件306可能已经获得了它认为是对特定图像的最优裁剪的裁剪的专业度得分。因此,图像变换组件306已经具有针对由第一DCNN 304路线产生的最优裁剪(为简单起见称为将其称为“第一最优裁剪”)的专业度得分。然后,对于相同的输入图像,DCNN选择器310可以获取第二DCNN 308的最优裁剪输出(为简单起见将其称为“第二最优裁剪”)并将其馈送到第一DCNN 304中以产生第二最优裁剪的专业度得分。然后可以对这些得分进行比较。如果第二最优裁剪的专业度得分超过第一最优裁剪的专业度得分,则至少对于该特定图像,第二DCNN 308比第一DCNN 308表现得更好。如果对于足够的输入图像(例如,可以随时间取平均值)发生了这种情况,则DCNN选择器310确定是时候从第一DCNN 304切换到第二DCNN 308。
在一些示例性实施例中,DCNN选择器310可以更进一步。应当领会的是,独立于选择最优裁剪的准确度,第二DCNN 308使用的计算和资源比第一DCNN 304使用的要少得多。如此,可能没有必要等到第二DCNN 308输出的第二最优裁剪的专业度得分超过来自第一DCNN 304的第一最优裁剪的专业度得分。“足够接近”以使得节省运算资源的益处超过使用第二DCNN 304而带来的准确度的下降可能已经足矣。如此,DCNN选择器310可以使用公式,例如当认为下面的公式为真时进行转换:
Professionalism ScoreFirst<Professionalism ScoreSecond+Distance Factore其中,Professionalism ScoreFirst是由第一DCNN 304路径生成的裁剪的专业度得分,Professionalism Scoresecond是由第二DCNN 308路径生成的裁剪的专业度得分,并且Distance Factore(距离因子)是赋予通过使用第二DCNN 308来节省运算资源的益处的值。
可以基于实施方式来轻微调整该公式。例如,如果在该测试过程中使用多个(例如,n个)图像,则可以如下使用第一DCNN 304路径和第二DCNN 308路径之间的平均差异:
并且如果该计算大于0,则DCNN选择器310确定是时候切换到第二DCNN 308。
在另一个示例性实施例中,DCNN选择器310可以使用一个或多个其他度量来代替或结合上述专业度得分。在一个示例性实施例中,该度量是对于第二DCNN 308而言针对相同输入图像的不同区域的两个单独输出的相似程度的度量。输出越相似,第二DCNN 308路径“准备好”被使用并且可以发生转换的可能性越大。例如,对于给定图像,可以将具有重叠区域的图像的两个不同版本馈送到第二DCNN 308。例如,这些版本中的一个版本可以是图像的左侧75%(右侧25%丢失),而这些版本中的第二版本可以是图像的右侧75%(左侧25%丢失),已知的最优裁剪是中间的一部分(在图像的中间50%的某处)。如果第二DCNN308“准备好了”,则它应当针对这两个测试版本输出相同的最优裁剪。
图18是根据示例性实施例示出一种训练和使用DCNN的方法1800的流程图。在操作1802处,通过向第一DCNN输入多个样本文档来训练第一DCNN训练以输出第一度量的值。这些样本文档中的每个样本文档可能已经利用第一度量的值进行了标注。在示例性实施例中,本文中描述的文档可以是图像,但是本公开内容不限于文档是图像的实施例。
在操作1804处,在第一DCNN已经被训练之后的某个时刻,将第一输入文档的多个可能变换馈送到第一DCNN,针对多个可能变换中的每个可能变换获得第一度量的值。在操作1806处,基于多个可能变换中的每个可能变换的第一度量的值,从多个可能变换中选择第一变换。
在操作1808处,通过将所选择的第一变换和第一度量的其相应值输入到第二DCNN来训练第二DCNN以输出文档的变换。在操作1810处,在第二DCNN已经被训练之后的某个时刻,将第二输入文档馈送到第二DCNN,获得第二输入文档的第二变换。
图19是根据示例性实施例示出一种用于将系统从第一DCNN转换到第二DCNN的方法1900的流程图。针对一个或多个输入文档中的每个输入文档开始循环。在操作1902处,通过将第一变换传递给第一DCNN来确定输入文档的第一变换的第一度量的第一值。在操作1904处,通过将输入文档传递给第二DCNN来获得输入文档的第二变换。然后,在操作1906处,将输入文档的第二变换传递给第一DCNN,获得输入文档的第二变换的第一度量的第二值。值得注意的是,第一变换和第二变换具有相同的第一变换类型。在操作1908处,确定第一值和第二值之间的差异。
在1910处,确定这是否是一个或多个输入文档中的最后一个输入文档。如果不是,则方法1900循环回操作1902。如果是,则在操作1912处,基于一个或多个输入文档中的每个输入文档的第一值和第二值之间的差异,确定是否将系统从第一DCNN转换为第二DCNN。如果确定不应当发生,则方法针对输入文档的不同集合循环回操作1902。如果确定转换应当发生,则在操作1914处,针对第一变换类型的变换,使得到系统的新输入文档被传递给第二DCNN以代替被传递给第一DCNN。
示例:
示例1、一种训练和使用深度卷积神经网络(DCNN)的计算机化的方法,所述方法包括:
通过向第一DCNN输入多个样本文档来训练所述第一DCNN以输出第一度量的值,所述样本文档中的每个样本文档已经利用所述第一度量的值进行了标注;
将第一输入文档的多个可能变换馈送到所述第一DCNN,获得所述多个可能变换中的每个可能变换的所述第一度量的值;
基于所述多个可能变换中的每个可能变换的所述第一度量的所述值,从所述多个可能变换中选择第一变换;
通过将所选择的第一变换和所述第一度量的相应值输入到第二DCNN来训练所述第二DCNN以输出文档的变换;以及
将第二输入文档馈送到所述第二DCNN,获得所述第二输入文档的第二变换。
示例2、根据示例1所述的方法,其中,所述样本文档以及所述第一输入文档和所述第二输入文档是图像。
示例3、根据示例1或2所述的方法,其中,向所述第一DCNN输入所述多个样本文档包括:针对每个样本文档:
将所述样本文档传递给所述第一DCNN的卷积层,所述卷积层包括具有动态可调整权重的一个或多个过滤器,所述一个或多个过滤器被配置为对所述图像进行过滤以产生相应样本文档的输出容积,所述输出容积包括用于所述一个或多个过滤器中的每个过滤器的不同特征映射;
将来自所述卷积层的所述输出容积传递通过非线性层,所述非线性层将非线性函数应用于来自所述卷积层的所述输出容积;
将来自所述非线性层的所述输出容积传递通过池化层,所述池化层降低来自所述非线性层的所述输出容积的空间维度;
将来自所述池化层的所述输出容积传递通过分类层,所述分类层包括具有过滤器的专用卷积层,所述过滤器被设计为基于来自所述池化层的所述输出容积来输出所述样本文档的专业度得分;以及
将所述图像传递通过损失层,所述损失层向所述样本文档应用损失函数,从而得到对与来自所述样本文档的所述标注的所述专业度得分相比较的、来自所述分类层的所述样本文档的所述专业度得分的误差水平的指示;
确定所述多个样本文档的所述误差水平的组合是否超过预设门限;以及
响应于确定所述误差水平的所述组合超过预设门限,更新所述第一DCNN的所述卷积层中的所述一个或多个过滤器的权重以减小所述误差水平的所述组合,并且使用不同的多个样本文档和经更新的权重来重复对所述第一DCNN的所述训练;
示例4、根据示例3所述的方法,其中,将所述第一输入文档的多个可能变换馈送到所述第一DCNN包括:针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
示例5、根据示例1-4中的任意示例所述的方法,其中,所述多个可能变换是对图像的不同裁剪。
示例6、根据示例1-5中的任意示例所述的方法,还包括:
将第一输入文档的第二多个可能变换馈送到所述第一DCNN,获得所述第二多个可能变换中的每个可能变换的所述第一度量的值,所述第二多个可能变换具有与所述多个可能变换不同的变换类型;
基于所述第二多个可能变换中的每个可能变换的所述第一度量的所述值,从所述第二多个可能变换中选择第三变换;
通过将所选择的第三变换输入到所述第二DCNN来训练第三DCNN以输出文档的另一个变换;以及
将所述第二输入文档馈送到所述第三DCNN,获得所述第二输入文档的第四变换。
示例7、根据示例1-6中的任意示例所述的方法,其中,所述第二DCNN包括多个阶段,每个阶段包括不同的卷积层、非线性层和池化层。
示例8、一种系统,包括:
一种计算机可读介质,其上存储有指令,所述指令当由处理器执行时,使所述系统:
通过向第一DCNN输入多个样本文档来训练所述第一DCNN以输出第一度量的值,所述样本文档中的每个样本文档已经利用所述第一度量的值进行了标注;
将第一输入文档的多个可能变换馈送到所述第一DCNN,获得所述多个可能变换中的每个可能变换的所述第一度量的值;
基于所述多个可能变换中的每个可能变换的所述第一度量的所述值,从所述多个可能变换中选择第一变换;
通过将所选择的第一变换和所述第一度量的相应值输入到第二DCNN来训练所述第二DCNN以输出文档的变换;以及
将第二输入文档馈送到所述第二DCNN,获得所述第二输入文档的第二变换。
示例9、根据示例8所述的系统,其中,所述样本文档以及所述第一输入文档和所述第二输入文档是图像。
示例10、根据示例8或9所述的系统,其中,向所述第一DCNN输入所述多个样本文档包括:针对每个样本文档:
将所述样本文档传递给所述第一DCNN的卷积层,所述卷积层包括具有动态可调整权重的一个或多个过滤器,所述一个或多个过滤器被配置为对所述图像进行过滤以产生相应样本文档的输出容积,所述输出容积包括用于所述一个或多个过滤器中的每个过滤器的不同特征映射;
将来自所述卷积层的所述输出容积传递通过非线性层,所述非线性层将非线性函数应用于来自所述卷积层的所述输出容积;
将来自所述非线性层的所述输出容积传递通过池化层,所述池化层降低来自所述非线性层的所述输出容积的空间纬度;
将来自所述池化层的所述输出容积传递通过分类层,所述分类层包括具有过滤器的专用卷积层,所述过滤器被设计为基于来自所述池化层的所述输出容积来输出所述样本文档的专业度得分;以及
将所述图像传递通过损失层,所述损失层向所述样本文档应用损失函数,从而得到对与来自所述样本文档的所述标注的所述专业度得分相比较的、来自所述分类层的所述样本文档的所述专业度得分的误差水平的指示;
确定所述多个样本文档的所述误差水平的组合是否超过预设门限;以及
响应于确定所述误差水平的所述组合超过预设门限,更新所述第一DCNN的所述卷积层中的所述一个或多个过滤器的权重以减小所述误差水平的所述组合,并且使用不同的多个样本文档和经更新的权重来重复对所述第一DCNN的所述训练;
示例11、根据示例10所述的系统,其中,将所述第一输入文档的多个可能变换馈送到所述第一DCNN包括:针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
示例12、根据示例8-11中的任意示例所述的系统,其中,所述多个可能变换是对图像的不同裁剪。
示例13、根据示例8-12中的任意示例所述的系统,其中,所述指令还使所述系统:
将第一输入文档的第二多个可能变换馈送到所述第一DCNN,获得所述第二多个可能变换中的每个可能变换的所述第一度量的值,所述第二多个可能变换具有与所述多个可能变换不同的变换类型;
基于所述第二多个可能变换中的每个可能变换的所述第一度量的所述值,从所述第二多个可能变换中选择第三变换;
通过将所选择的第三变换输入到所述第二DCNN来训练第三DCNN以输出文档的另一个变换;以及
将所述第二输入文档馈送到所述第三DCNN,获得所述第二输入文档的第四变换。
示例14、根据示例8-13中的任意示例所述的系统,其中,所述第二DCNN包括多个阶段,每个阶段包括不同的卷积层、非线性层和池化层。
示例15、一种包括指令的非暂时性机器可读存储介质,所述指令当由一个或多个机器执行时,使所述一个或多个机器执行包括以下各项的操作:
通过向第一DCNN输入多个样本文档来训练所述第一DCNN以输出第一度量的值,所述样本文档中的每个样本文档已经利用所述第一度量的值进行了标注;
将第一输入文档的多个可能变换馈送到所述第一DCNN,获得所述多个可能变换中的每个可能变换的所述第一度量的值;
基于所述多个可能变换中的每个可能变换的所述第一度量的所述值,从所述多个可能变换中选择第一变换;
通过将所选择的第一变换和所述第一度量的相应值输入到第二DCNN来训练所述第二DCNN以输出文档的变换;以及
将第二输入文档馈送到所述第二DCNN,获得所述第二输入文档的第二变换。
示例16、根据示例15所述的非暂时性机器可读存储介质,其中,所述样本文档以及所述第一输入文档和所述第二输入文档是图像。
示例17、根据示例15或16所述的非暂时性机器可读存储介质,其中,向所述第一DCNN输入所述多个样本文档包括:针对每个样本文档:
将所述样本文档传递给所述第一DCNN的卷积层,所述卷积层包括具有动态可调整权重的一个或多个过滤器,所述一个或多个过滤器被配置为对所述图像进行过滤以产生相应样本文档的输出容积,所述输出容积包括用于所述一个或多个过滤器中的每个过滤器的不同特征映射;
将来自所述卷积层的所述输出容积传递通过非线性层,所述非线性层将非线性函数应用于来自所述卷积层的所述输出容积;
将来自所述非线性层的所述输出容积传递通过池化层,所述池化层降低来自所述非线性层的所述输出容积的空间纬度;
将来自所述池化层的所述输出容积传递通过分类层,所述分类层包括具有过滤器的专用卷积层,所述过滤器被设计为基于来自所述池化层的所述输出容积来输出所述样本文档的专业度得分;以及
将所述图像传递通过损失层,所述损失层向所述样本文档应用损失函数,从而得到对与来自所述样本文档的所述标注的所述专业度得分相比较的、来自所述分类层的所述样本文档的所述专业度得分的误差水平的指示;
确定所述多个样本文档的所述误差水平的组合是否超过预设门限;以及
响应于确定所述误差水平的所述组合超过预设门限,更新所述第一DCNN的所述卷积层中的所述一个或多个过滤器的权重以减小所述误差水平的所述组合,并且使用不同的多个样本文档和经更新的权重来重复对所述第一DCNN的所述训练。
示例18、根据示例17所述的非暂时性机器可读存储介质,其中,将所述第一输入文档的多个可能变换馈送到所述第一DCNN包括:针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
示例19、根据示例15-18中的任意示例所述的非暂时性机器可读存储介质,其中,所述多个可能变换是对图像的不同裁剪。
示例20、根据示例15-19中的任意示例所述的非暂时性机器可读存储介质,其中,所述指令还使所述一个或多个机器执行包括以下各项的操作:
将第一输入文档的第二多个可能变换馈送到所述第一DCNN,获得所述第二多个可能变换中的每个可能变换的所述第一度量的值,所述第二多个可能变换具有与所述多个可能变换不同的变换类型;
基于所述第二多个可能变换中的每个可能变换的所述第一度量的所述值,从所述第二多个可能变换中选择第三变换;
通过将所选择的第三变换输入到所述第二DCNN来训练第三DCNN以输出文档的另一个变换;以及
将所述第二输入文档馈送到所述第三DCNN,获得所述第二输入文档的第四变换。
示例21、一种用于将系统从第一深度卷积神经网络(DCNN)转换为第二DCNN的计算机化的方法,所述第一DCNN被训练为输出到所述第一DCNN的文档输入的第一度量的值,并且所述第二DCNN被训练为向所述第一DCNN输出文档输入的具有第一变换类型的变换,所述方法包括:
针对一个或多个输入文档中的每个输入文档:
通过将所述第一变换传递给所述第一DCNN来确定所述输入文档的第一变换的所述第一度量的第一值;
通过将所述输入文档传递给所述第二DCNN来获得所述输入文档的第二变换;
将所述输入文档的所述第二变换传递给所述第一DCNN,获得所述输入文档的所述第二变换的所述第一度量的第二值,所述第一变换和所述第二变换具有所述第一变换类型;
针对所述输入文档,确定所述第一值和所述第二值之间的差异;
针对所述一个或多个输入文档中的每个输入文档,基于所述第一值和所述第二值之间的所述差异,确定是否将所述系统从所述第一DCNN转换为所述第二DCNN;以及
响应于确定所述系统应当从所述第一DCNN转换为所述第二DCNN,针对所述第一变换类型的变换,使得到所述系统的新输入文档被传递给所述第二DCNN,以代替被传递给所述第一DCNN。
示例22、根据示例21所述的方法,其中,确定是否转换所述系统包括:向所述差异添加距离因子,所述距离因子是基于通过使用所述第二DCNN代替所述第一DCNN而带来的运算能力的节省来设置的。
示例23、根据示例21或22所述的方法,其中,所述第一度量是专业度得分。
示例24、根据示例21-23中的任意示例所述的方法,其中,确定是否转换所述系统包括:将相同输入文档的两个版本传递给所述第二DCNN,并确定所述第二DCNN是否针对所述两个版本中的每个版本输出相同的第二变换。
示例25、根据示例21-24中的任意示例所述的方法,其中,相同输入文档的两个版本是单个图像的部分地重叠的部分。
示例26、根据示例21-25中的任意示例所述的方法,其中,所述第一变换是通过以下操作获得的:
将所述第一输入文档的多个可能变换馈送到所述第一DCNN,以及在所述第一DCNN内,针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
示例27、根据示例21-26中的任意示例所述的方法,其中,所述变换类型是裁剪。
示例28、一种系统,包括:
计算机可读介质,其上存储有指令,所述指令当由处理器执行时,使所述系统通过以下操作执行用于将系统从第一深度卷积神经网络(DCNN)转换为第二DCNN的方法,所述第一DCNN被训练为输出到所述第一DCNN的文档输入的第一度量的值,并且所述第二DCNN被训练为向所述第一DCNN输出文档输入的具有第一变换类型的变换:
针对一个或多个输入文档中的每个输入文档:
通过将所述第一变换传递给所述第一DCNN来确定所述输入文档的第一变换的所述第一度量的第一值;
通过将所述输入文档传递给所述第二DCNN来获得所述输入文档的第二变换;
将所述输入文档的所述第二变换传递给所述第一DCNN,获得所述输入文档的所述第二变换的所述第一度量的第二值,所述第一变换和所述第二变换具有所述第一变换类型;
针对所述输入文档,确定所述第一值和所述第二值之间的差异;
针对所述一个或多个输入文档中的每个输入文档,基于所述第一值和所述第二值之间的所述差异,确定是否将所述系统从所述第一DCNN转换为所述第二DCNN;以及
响应于确定所述系统应当从所述第一DCNN转换为所述第二DCNN,针对所述第一变换类型的变换,使得到所述系统的新输入文档被传递给所述第二DCNN,以代替被传递给所述第一DCNN。
示例29、根据示例28所述的系统,其中,确定是否转换所述系统包括:向所述差异添加距离因子,所述距离因子是基于通过使用所述第二DCNN代替所述第一DCNN而带来的运算能力的节省来设置的。
示例30、根据示例28或29所述的系统,其中,所述第一度量是专业度得分。
示例31、根据示例28-30中的任意示例所述的系统,其中,确定是否转换所述系统包括:将相同输入文档的两个版本传递给所述第二DCNN,并确定所述第二DCNN是否针对所述两个版本中的每个版本输出相同的第二变换。
示例32、根据示例28-31中的任意示例所述的系统,其中,相同输入文档的两个版本是单个图像的部分地重叠的部分。
示例33、根据示例28-32中的任意示例所述的系统,其中,所述第一变换是通过将所述第一输入文档的多个可能变换馈送到所述第一DCNN获得的,并且在所述第一DCNN内,针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
示例34、根据示例28-33中的任意示例所述的系统,其中,所述变换类型是裁剪。
示例35、一种非暂时性机器可读存储介质,其包括指令,所述指令当由一个或多个机器实现时,使所述一个或多个机器执行用于将系统从第一深度卷积神经网络(DCNN)转换为第二DCNN的操作,所述第一DCNN被训练为输出到所述第一DCNN的文档输入的第一度量的值,并且所述第二DCNN被训练为向所述第一DCNN输出文档输入的具有第一变换类型的变换,所述操作包括:
针对一个或多个输入文档中的每个输入文档:
通过将所述第一变换传递给所述第一DCNN来确定所述输入文档的第一变换的所述第一度量的第一值;
通过将所述输入文档传递给所述第二DCNN来获得所述输入文档的第二变换;
将所述输入文档的所述第二变换传递给所述第一DCNN,获得所述输入文档的所述第二变换的所述第一度量的第二值,所述第一变换和所述第二变换具有所述第一变换类型;
针对所述输入文档,确定所述第一值和所述第二值之间的差异;
针对所述一个或多个输入文档中的每个输入文档,基于所述第一值和所述第二值之间的所述差异,确定是否将所述系统从所述第一DCNN转换为所述第二DCNN;以及
响应于确定所述系统应当从所述第一DCNN转换为所述第二DCNN,针对所述第一变换类型的变换,使得到所述系统的新输入文档被传递给所述第二DCNN,以代替被传递给所述第一DCNN。
示例36、根据示例35所述的非暂时性机器可读存储介质,其中,确定是否转换所述系统包括:向所述差异添加距离因子,所述距离因子是基于通过使用所述第二DCNN代替所述第一DCNN而带来的运算能力的节省来设置的。
示例37、根据示例35或36所述的非暂时性机器可读存储介质,其中,所述第一度量是专业度得分。
示例38、根据示例35-37中的任意示例所述的非暂时性机器可读存储介质,其中,确定是否转换所述系统包括:将相同输入文档的两个版本传递给所述第二DCNN,并确定所述第二DCNN是否针对所述两个版本中的每个版本输出相同的第二变换。
示例39、根据示例35-38中的任意示例所述的非暂时性机器可读存储介质,其中,相同输入文档的两个版本是单个图像的部分地重叠的部分。
示例40、根据示例35-39中的任意示例所述的非暂时性机器可读存储介质,其中,所述第一变换是通过以下操作获得的:
将所述第一输入文档的多个可能变换馈送到所述第一DCNN,以及在所述第一DCNN内,针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
模块、组件和逻辑单元
某些实施例在本文中被描述为包括逻辑单元或多个组件、模块或机构。模块可以构成软件模块(例如,机器可读介质上实现的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例性实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置为用于执行如本文中所述的某些操作的硬件模块。
在一些实施例中,硬件模块可以机械地、电子地或以它们任何合适的组合来实现。例如,硬件模块可以包括永久配置为执行某些操作的专用电路系统或逻辑单元。例如,硬件模块可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件模块还可以包括由软件临时配置以执行某些操作的可编程逻辑单元或电路系统。例如,硬件模块可以包括由通用处理器或其他可编程处理器执行的软件。一旦由这样的软件配置,硬件模块就变成了特定的机器(或机器的特定组件),其被独特地定制以执行配置的功能并且不再是通用处理器。将领会的是,在专用和永久配置的电路系统中或者在临时配置的电路系统(例如,由软件配置的)中机械地实现硬件模块的决定可以由成本和时间考虑来驱动。
因此,术语“硬件模块”应当被理解为包括有形实体,其是物理构建的、永久配置的(例如,硬线连接的)或临时配置的(例如,编程的)以便以特定方式操作,或者执行本文中描述的某些操作。如本文中所使用的,“硬件实现的模块”指的是硬件模块。考虑其中临时配置(例如,编程的)硬件模块的实施例,不需要在任何一个时刻配置或实例化每个硬件模块。例如,在硬件模块包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如,包括不同的硬件模块)。软件相应地配置特定的处理器或一些处理器,例如,在一个时刻构成特定的硬件模块,并在另一个的时刻构成另一个硬件模块。
硬件模块可以向其他硬件模块提供信息并从其接收信息。因此,所描述的硬件模块可以被视为通信地耦合。在同时存在多个硬件模块的情况下,可以通过在两个或更多个硬件模块之间或之中的信号传输(例如,通过适当的电路和总线)来达成通信。在多个硬件模块在不同时间被配置或实例化的实施例中,可以例如通过存储和检索多个硬件模块可访问的存储器结构中的信息来实现这些硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在与其通信耦合的存储器设备中。然后,另一个硬件模块可以稍后访问存储器设备以取回和处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且可以对资源(例如,信息集合)进行操作。
本文中描述的示例性方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,这种处理器可以构成处理器实现的模块,其操作以执行本文中描述的一个或多个操作或功能。如本文中所使用的,“处理器实现的模块”指的是使用一个或多个处理器实现的硬件模块。
类似地,本文中描述的方法可以至少部分是处理器实现的,其中,特定处理器或一些处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的模块来执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的执行或作为“软件即服务”(SaaS)。例如,至少一些操作可以由计算机组(作为包括处理器的机器的示例)来执行,这些操作可以经由网络(例如,互联网)以及经由一个或多个适当的接口(例如,API)访问。
对某些操作的执行可以在处理器之间分配,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例性实施例中,处理器或处理器实现的模块可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例性实施例中,处理器或处理器实现的模块可以跨越多个地理位置分布。
机器和软件架构
在一些实施例中,在机器和相关联软件架构的上下文中实现结合图1-图19描述的模块、方法、应用等。以下部分描述了适用于所公开的实施例的代表性软件架构和机器(例如,硬件)架构。
软件架构与硬件架构结合使用以创建针对特定目的而定制的设备和机器。例如,与特定软件架构耦合的特定硬件架构将创建移动设备,例如移动电话、平板设备等。稍微不同的硬件和软件架构可以产生用于“物联网”的智能设备,而另一种组合产生用于云计算架构内的服务器计算机。本文中并未呈现这种软件和硬件架构的所有组合,因为本领域技术人员可以容易地理解如何在与本文所包含的公开内容不同的上下文中实现本发明主题。
软件架构
图20是示出代表性软件架构2002的框图2000,其可以结合本文中描述的各种硬件架构来使用。图20仅是软件架构的非限制性示例,并且将领会的是,可以实现许多其他架构以促进本文中描述的功能。软件架构2002可以在诸如图18的机器1800的硬件上执行,其包括处理器1810、存储器/存储装置1830和I/O组件1850等。示出了代表性硬件层2004,其可以表示例如图18的机器1800。代表性硬件层2004包括具有相关联的可执行指令2008的一个或多个处理单元2006。可执行指令2008表示软件架构2002的可执行指令,包括图1-图19的方法、模块等的实现。硬件层2004还包括存储器和/或存储模块2010,其还具有可执行指令2008。硬件层2004还可以包括其他硬件2012,其表示硬件层2004的任何其他硬件,例如作为机器1800的一部分示出的其他硬件。
在图20的示例架构中,软件架构2002可以概念化为层的栈,其中,每个层提供特定功能。例如,软件架构2002可以包括诸如操作系统2014、库2016、框架/中间件2018、应用2020和表示层2044之类的层。操作上,应用2020和/或层内的其他组件可以通过软件栈发起API调用2024并响应于API调用2024接收图示为消息2026的响应、返回值等。图示的层本质上是代表性的,并非所有软件架构都具有所有的层。例如,一些移动或专用操作系统可能不提供框架/中间件层2018,而其他操作系统可能提供这样的层。其他软件架构可以包括附加层或不同层。
操作系统2014可以管理硬件资源并提供公共服务。操作系统2014可以包括例如内核2028、服务2030和驱动器2032。内核2028可以充当硬件和其他软件层之间的抽象层。例如,内核2028可以负责存储器管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务2030可以为其他软件层提供其他公共服务。驱动器2032可以负责控制或与底层硬件对接。例如,驱动器2032可以包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、驱动器,音频驱动器、电源管理驱动器等等,具体取决于硬件配置。
库2016可以提供可以由应用2020和/或其他组件和/或层使用的公共基础结构。库2016通常提供允许其他软件模块以比通过直接与底层操作系统2014功能(例如,内核2028、服务2030和/或驱动器2032)对接而更容易地方式来执行任务的功能。库2016可以包括系统2034库(例如,C标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。另外,库2016可以包括API 2036库,例如媒体库(例如,用于支持诸如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG的各种媒体格式的呈现和操作的库)、图形库(例如,可以用于在显示器上呈现2D和3D图形内容的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、web库(例如,可以提供web浏览功能的WebKit)等等。库2016还可以包括各种其他库2038,以便向应用2020和其他软件组件/模块提供许多其他API。
框架2018(有时也被称为中间件)可以提供可以由应用2020和/或其他软件组件/模块使用的更高级别的公共基础结构。例如,框架2018可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架2018可以提供可以由应用2020和/或其他软件组件/模块使用的广泛的其他API,其中一些可以特定于具体操作系统或平台。
应用2020包括内置应用2040和/或第三方应用2042。代表性内置应用2040的示例可以包括但不限于联系人应用、浏览器应用、书阅读器应用、位置应用、媒体应用、消息传送应用和/或游戏应用。第三方应用2042可以包括任何内置应用以及广泛搭配的其他应用。在特定示例中,第三方应用2042(例如,由特定平台的供应商以外的实体使用AndroidTM或iOSTM软件开发工具包(SDK)开发的应用)可以是在移动操作系统(例如,iOSTM、AndroidTM、Phone或其他移动操作系统)上运行的移动软件。在该示例中,第三方应用程序2042可以发起由移动操作系统(例如,操作系统2014)提供的API调用2024,以促进本文中描述的功能。
应用2020可以使用内置操作系统2014功能(例如,内核2028、服务2030和/或驱动器2032)、库2016(例如,系统2034、API 2036和其他库2038),以及框架/中间件2018来创建用户界面以便与系统的用户进行交互。替代地或另外地,在一些系统中,与用户的交互可以通过表示层(例如,表示层2044)发生。在这些系统中,应用/模块“逻辑”可以与和用户交互的应用/模块的方面分开。
一些软件架构使用虚拟机。在图20的示例中,这由虚拟机2048示出。虚拟机创建软件环境,其中,应用/模块可以像它们在硬件机器(例如,图18的机器1800)上执行一样执行。虚拟机由主机操作系统(例如,图20中的操作系统2014)托管,并且通常但不总是具有虚拟机监测器2046,其管理虚拟机的操作以及与主机操作系统(例如,操作系统2014)的接口。软件架构在虚拟机2048内执行,例如操作系统2050、库2052、框架/中间件2054、应用2056和/或表示层2058。在虚拟机2048内执行的这些软件架构层可以与先前描述的相应层相同或可以是不同的。
示例性机器架构和机器可读介质
图21是根据一些示例性实施例示出能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中讨论的方法中的任意一种或多种方法的机器2100的组件的框图。具体地,图21示出了具有计算机系统的示例性形式的机器2100的图形表示,其中,可以执行用于使机器2100执行本文所讨论的方法中的任何一种或多种方法的指令2116(例如,软件、程序、应用、小应用、app或其他可执行代码)。所述指令将一般的、未编程的机器变换为被编程为以所描述的方式来执行所描述和示出的功能的特定的机器。在替代实施例中,机器2100作为独立设备操作或者可以耦合(例如,联网)到其他机器。在联网部署中,机器2100可以在服务器-客户端网络环境中以服务器机器或客户端机器的容量,或者作为对等(或分布式)网络环境中的对等机器来操作。机器2100可以包括但不限于:服务器计算机、客户端计算机、PC、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电)、其他智能设备、网络家电、网络路由器、网络交换机、网络桥接器或能够顺序地或以其他方式执行指定机器2100要采取的动作的指令2116的任何机器。此外,虽然仅示出了单个机器2100,但术语“机器”还应当被视为包括机器2100的集合,其单独地或共同地执行指令2116以执行本文中讨论的方法中的任何一种或多种方法。
机器2100可以包括处理器2110,存储器/存储装置2130和I/O组件2150,其可以被配置为例如经由总线2102彼此通信。在示例性实施例中,处理器2110(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一个处理器或者它们的任何合适的组合)可以包括例如可以执行指令2116的处理器2112和处理器2114。术语“处理器”旨在包括多核处理器,其可以包括可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)。虽然图21示出了多个处理器2110,但机器2100可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器,或者它们的任意组合。
存储器/存储装置2130可以包括存储器2132(例如,主存储器或其他存储器存储),以及存储单元2136,两者都可以由处理器2110例如经由总线2102访问。存储单元2136和存储器2132存储体现本文描述的方法或功能中的任何一项或多项的指令2116。指令2116还可以在其由机器2100执行期间完全或部分地驻留在存储器2132内、存储单元2136内、处理器2110中的至少一个处理器内(例如,处理器的高速缓存存储器内),或它们的任何合适的组合。因此,存储器2132、存储单元2136和处理器2110的存储器是机器可读介质的示例。
如本文所使用的,“机器可读介质”意指能够临时或永久地存储指令和数据的设备,并且可以包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(EEPROM)),和/或它们任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令2116的单个介质或多个介质(例如,集中式或分布式数据库,或者相关联的高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储由机器(例如,机器2100)执行的指令(例如,指令2116)的任何介质或多个介质的组合,使得指令当由机器的一个或多个处理器(例如,处理器2110)执行时,使机器执行本文描述的方法中的任何一种或多种方法。因此,“机器可读介质”指的是单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。
I/O组件2150可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种各样的组件。包括在具体机器中的具体I/O组件2150将取决于机器的类型。例如,便携式机器(例如,移动电话)将可能包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将领会的是,I/O组件2150可以包括图21中未示出的许多其他组件。将I/O组件2150根据功能进行分组仅仅是为了简化以下讨论,并且分组决不是限制性的。在各个示例性实施例中,I/O组件2150可以包括输出组件2152和输入组件2154。输出组件2152可以包括可视组件(例如,诸如等离子显示板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)之类的显示器),声学组件(例如,扬声器)、触动组件(例如,振动电机,阻力机制)、其他信号发生器等。输入组件2154可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、图片-光学键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一种指向仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏,或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
在另外的示例性实施例中,I/O组件2150可以包括生物计量组件2156、运动组件2158、环境组件2160或位置组件2162以及各种各样的其他组件。例如,生物计量组件2156可以包括用于进行以下操作的组件:检测表达(例如,手部表达、面部表情,声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电波的识别)等等。运动组件2158可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,回转仪)等等。环境组件2160可以包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,气体检测传感器,用于检测危险气体的浓度以确保安全或测量大气中的污染物),或者可以提供与周围物理环境相对应的指示、测量或信号的其他组件。位置组件2162可以包括位置传感器组件(例如,全球定位系统(GPS)接收机组件)、高度传感器组件(例如,检测可以从其导出高度的气压的高度计或气压计)、方向传感器组件(例如,磁力计)等等。
可以使用各种各样的技术来实现通信。I/O组件2150可以包括通信组件2164,其可操作以分别经由耦合2182和耦合2172将机器2100耦合到网络2180或设备2170。例如,通信组件2164可以包括网络接口组件或与网络2180对接的其他合适的设备。在其他示例中,通信组件2164可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如,低功耗)、组件,以及经由其他模态提供通信的其他通信组件。设备2170可以是另一种机器或各种各样的外围设备中的任何一种(例如,经由USB耦合的外围设备)。
此外,通信组件2164可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件2164可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,用于检测一维条形码(例如,通用产品码(UPC)条形码)、多维条形码(例如,快速响应(QR)码、Aztec码、数据矩阵、Dataglyph、MaxiCode、PDF417、超码、UCC RSS-2D条形码和其他光学码)的光学传感器),或声学检测组件(例如,用于识别经添加标签的音频信号的麦克风)。另外,可以经由通信组件2164导出各种信息,例如经由互联网协议(IP)地理定位的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等等。
传输介质
在各种示例性实施例中,网络2180的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、WAN,无线WAN(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络,另一类型的网络,或者两个或更多这样的网络的组合。例如,网络2180或网络2180的一部分可以包括无线或蜂窝网络,并且耦合2182可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一类型的蜂窝或无线耦合。在该示例中,耦合2182可以实现各种类型的数据传输技术中的任何一种,例如单载波无线传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线服务(GPRS)技术、用于GSM演进的增强型数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、微波接入全球互通(WiMAX)、长期演进(LTE)标准、由各种标准制定组织定义的其他标准、其他远程协议或其他数据传输技术。
指令2116可以经由网络接口设备(例如,包括在通信组件2164中的网络接口组件)使用传输介质并且使用许多众所周知的传输协议中的任何一种(例如,HTTP)来通过网络2180发送或接收。类似地,指令2116可以使用传输介质经由到设备2170的耦合2172(例如,对等耦合)来发送或接收。术语“传输介质”应当被理解为包括能够进行存储、编码或携带用于由机器2100执行的指令2116的任何非实体介质,并且包括数字或模拟通信信号或其他非实体介质以便促进该软件的通信。
语言
在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然一种或多种方法的各个操作被示出并描述为单独的操作,但是可以同时执行一个或多个单独的操作,并且不需要以图示的顺序来执行操作。作为示例性配置中的单独组件给出的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件给出的结构和功能可以被实现为单独的组件。这些和其他变型、修改、添加和改进落入本文中的发明主题的范围之内。
虽然已经参照特定示例性实施例描述了本发明主题的概述,但是在不脱离本公开内容的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这些实施例可以单独地或共同地通过术语“发明”在本文中提及,这仅为了方便而不意图将本申请的范围自愿地限制于任何单个公开内容或发明构思,如果事实上公开了一个以上的公开内容或发明构思的话。
用充足的细节描述了本文中说明的实施例,以使得本领域的技术人员能够实践所公开的教示。可以使用其他实施例并从中导出其他实施例,使得可以在不脱离本公开内容的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被视为具有限制意义,并且各个实施例的范围仅由所附权利要求以及这些权利要求所赋予的等价物的全部范围来限定。
如本文中所使用的,词语“或”可以用包含性或排他性的含义来解释。此外,可以为本文中描述的资源、操作或结构提供多个实例作为单个实例。另外,各种资源、操作、模块、引擎和数据存储之间的界限在某种程度上是任意的,并且在特定说明性配置的上下文中说明了具体操作。设想了功能的其他分配,并且功能的其他分配可以落入本公开内容的各个实施例的范围之内。概括地说,作为示例配置中的单独资源给出的结构和功能可以被实现为组合的结构或资源。类似地,作为单独资源给出的结构和功能可以被实现为单独的资源。这些和其他变化、修改、添加和改进落入由所附权利要求书表示的本公开内容的实施例的范围内。因此,应当认为本说明和附图是说明性而不是限制性的。
Claims (40)
1.一种训练和使用深度卷积神经网络(DCNN)的计算机化的方法,所述方法包括:
通过向第一DCNN输入多个样本文档来训练所述第一DCNN以输出第一度量的值,所述样本文档中的每个样本文档已经利用所述第一度量的值进行了标注;
将第一输入文档的多个可能变换馈送到所述第一DCNN,获得所述多个可能变换中的每个可能变换的所述第一度量的值;
基于所述多个可能变换中的每个可能变换的所述第一度量的所述值,从所述多个可能变换中选择第一变换;
通过将所选择的第一变换和所述第一度量的相应值输入到第二DCNN来训练所述第二DCNN以输出文档的变换;以及
将第二输入文档馈送到所述第二DCNN,获得所述第二输入文档的第二变换。
2.根据权利要求1所述的方法,其中,所述样本文档以及所述第一输入文档和所述第二输入文档是图像。
3.根据权利要求1所述的方法,其中,向所述第一DCNN输入所述多个样本文档包括:针对每个样本文档:
将所述样本文档传递给所述第一DCNN的卷积层,所述卷积层包括具有动态可调整权重的一个或多个过滤器,所述一个或多个过滤器被配置为对所述图像进行过滤以产生相应样本文档的输出容积,所述输出容积包括用于所述一个或多个过滤器中的每个过滤器的不同特征映射;
将来自所述卷积层的所述输出容积传递通过非线性层,所述非线性层将非线性函数应用于来自所述卷积层的所述输出容积;
将来自所述非线性层的所述输出容积传递通过池化层,所述池化层降低来自所述非线性层的所述输出容积的空间纬度;
将来自所述池化层的所述输出容积传递通过分类层,所述分类层包括具有过滤器的专用卷积层,所述过滤器被设计为基于来自所述池化层的所述输出容积来输出所述样本文档的专业度得分;以及
将所述图像传递通过损失层,所述损失层向所述样本文档应用损失函数,从而得到对与来自所述样本文档的所述标注的所述专业度得分相比较的、来自所述分类层的所述样本文档的所述专业度得分的误差水平的指示;
确定所述多个样本文档的所述误差水平的组合是否超过预设门限;以及
响应于确定所述误差水平的所述组合超过预设门限,更新所述第一DCNN的所述卷积层中的所述一个或多个过滤器的权重以减小所述误差水平的所述组合,并且使用不同的多个样本文档和经更新的权重来重复对所述第一DCNN的所述训练。
4.根据权利要求3所述的方法,其中,将所述第一输入文档的多个可能变换馈送到所述第一DCNN包括:针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
5.根据权利要求1所述的方法,其中,所述多个可能变换是对图像的不同裁剪。
6.根据权利要求1所述的方法,还包括:
将第一输入文档的第二多个可能变换馈送到所述第一DCNN,获得所述第二多个可能变换中的每个可能变换的所述第一度量的值,所述第二多个可能变换具有与所述多个可能变换不同的变换类型;
基于所述第二多个可能变换中的每个可能变换的所述第一度量的所述值,从所述第二多个可能变换中选择第三变换;
通过将所选择的第三变换输入到所述第二DCNN来训练第三DCNN以输出文档的另一个变换;以及
将所述第二输入文档馈送到所述第三DCNN,获得所述第二输入文档的第四变换。
7.根据权利要求1所述的方法,其中,所述第二DCNN包括多个阶段,每个阶段包括不同的卷积层、非线性层和池化层。
8.一种系统,包括:
一种计算机可读介质,其上存储有指令,所述指令当由处理器执行时,使所述系统:
通过向第一DCNN输入多个样本文档来训练所述第一DCNN以输出第一度量的值,所述样本文档中的每个样本文档已经利用所述第一度量的值进行了标注;
将第一输入文档的多个可能变换馈送到所述第一DCNN,获得所述多个可能变换中的每个可能变换的所述第一度量的值;
基于所述多个可能变换中的每个可能变换的所述第一度量的所述值,从所述多个可能变换中选择第一变换;
通过将所选择的第一变换和所述第一度量的相应值输入到第二DCNN来训练所述第二DCNN以输出文档的变换;以及
将第二输入文档馈送到所述第二DCNN,获得所述第二输入文档的第二变换。
9.根据权利要求8所述的系统,其中,所述样本文档以及所述第一输入文档和所述第二输入文档是图像。
10.根据权利要求8所述的系统,其中,向所述第一DCNN输入所述多个样本文档包括:针对每个样本文档:
将所述样本文档传递给所述第一DCNN的卷积层,所述卷积层包括具有动态可调整权重的一个或多个过滤器,所述一个或多个过滤器被配置为对所述图像进行过滤以产生相应样本文档的输出容积,所述输出容积包括用于所述一个或多个过滤器中的每个过滤器的不同特征映射;
将来自所述卷积层的所述输出容积传递通过非线性层,所述非线性层将非线性函数应用于来自所述卷积层的所述输出容积;
将来自所述非线性层的所述输出容积传递通过池化层,所述池化层降低来自所述非线性层的所述输出容积的空间纬度;
将来自所述池化层的所述输出容积传递通过分类层,所述分类层包括具有过滤器的专用卷积层,所述过滤器被设计为基于来自所述池化层的所述输出容积来输出所述样本文档的专业度得分;以及
将所述图像传递通过损失层,所述损失层向所述样本文档应用损失函数,从而得到对与来自所述样本文档的所述标注的所述专业度得分相比较的、来自所述分类层的所述样本文档的所述专业度得分的误差水平的指示;
确定所述多个样本文档的所述误差水平的组合是否超过预设门限;以及
响应于确定所述误差水平的所述组合超过预设门限,更新所述第一DCNN的所述卷积层中的所述一个或多个过滤器的权重以减小所述误差水平的所述组合,并且使用不同的多个样本文档和经更新的权重来重复对所述第一DCNN的所述训练。
11.根据权利要求10所述的系统,其中,将所述第一输入文档的多个可能变换馈送到所述第一DCNN包括:针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
12.根据权利要求8所述的系统,其中,所述多个可能变换是对图像的不同裁剪。
13.根据权利要求8所述的系统,其中,所述指令还使所述系统:
将第一输入文档的第二多个可能变换馈送到所述第一DCNN,获得所述第二多个可能变换中的每个可能变换的所述第一度量的值,所述第二多个可能变换具有与所述多个可能变换不同的变换类型;
基于所述第二多个可能变换中的每个可能变换的所述第一度量的所述值,从所述第二多个可能变换中选择第三变换;
通过将所选择的第三变换输入到所述第二DCNN来训练第三DCNN以输出文档的另一个变换;以及
将所述第二输入文档馈送到所述第三DCNN,获得所述第二输入文档的第四变换。
14.根据权利要求8所述的系统,其中,所述第二DCNN包括多个阶段,每个阶段包括不同的卷积层、非线性层和池化层。
15.一种包括指令的非暂时性机器可读存储介质,所述指令当由一个或多个机器执行时,使所述一个或多个机器执行包括以下各项的操作:
通过向第一DCNN输入多个样本文档来训练所述第一DCNN以输出第一度量的值,所述样本文档中的每个样本文档已经利用所述第一度量的值进行了标注;
将第一输入文档的多个可能变换馈送到所述第一DCNN,获得所述多个可能变换中的每个可能变换的所述第一度量的值;
基于所述多个可能变换中的每个可能变换的所述第一度量的所述值,从所述多个可能变换中选择第一变换;
通过将所选择的第一变换和所述第一度量的相应值输入到第二DCNN来训练所述第二DCNN以输出文档的变换;以及
将第二输入文档馈送到所述第二DCNN,获得所述第二输入文档的第二变换。
16.根据权利要求15所述的非暂时性机器可读存储介质,其中,所述样本文档以及所述第一输入文档和所述第二输入文档是图像。
17.根据权利要求15所述的非暂时性机器可读存储介质,其中,向所述第一DCNN输入所述多个样本文档包括:针对每个样本文档:
将所述样本文档传递给所述第一DCNN的卷积层,所述卷积层包括具有动态可调整权重的一个或多个过滤器,所述一个或多个过滤器被配置为对所述图像进行过滤以产生相应样本文档的输出容积,所述输出容积包括用于所述一个或多个过滤器中的每个过滤器的不同特征映射;
将来自所述卷积层的所述输出容积传递通过非线性层,所述非线性层将非线性函数应用于来自所述卷积层的所述输出容积;
将来自所述非线性层的所述输出容积传递通过池化层,所述池化层降低来自所述非线性层的所述输出容积的空间纬度;
将来自所述池化层的所述输出容积传递通过分类层,所述分类层包括具有过滤器的专用卷积层,所述过滤器被设计为基于来自所述池化层的所述输出容积来输出所述样本文档的专业度得分;以及
将所述图像传递通过损失层,所述损失层向所述样本文档应用损失函数,从而得到对与来自所述样本文档的所述标注的所述专业度得分相比较的、来自所述分类层的所述样本文档的所述专业度得分的误差水平的指示;
确定所述多个样本文档的所述误差水平的组合是否超过预设门限;以及
响应于确定所述误差水平的所述组合超过预设门限,更新所述第一DCNN的所述卷积层中的所述一个或多个过滤器的权重以减小所述误差水平的所述组合,并且使用不同的多个样本文档和经更新的权重来重复对所述第一DCNN的所述训练。
18.根据权利要求17所述的非暂时性机器可读存储介质,其中,将所述第一输入文档的多个可能变换馈送到所述第一DCNN包括:针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
19.根据权利要求15所述的非暂时性机器可读存储介质,其中,所述多个可能变换是对图像的不同裁剪。
20.根据权利要求15所述的非暂时性机器可读存储介质,其中,所述指令还使所述一个或多个机器执行包括以下各项的操作:
将第一输入文档的第二多个可能变换馈送到所述第一DCNN,获得所述第二多个可能变换中的每个可能变换的所述第一度量的值,所述第二多个可能变换具有与所述多个可能变换不同的变换类型;
基于所述第二多个可能变换中的每个可能变换的所述第一度量的所述值,从所述第二多个可能变换中选择第三变换;
通过将所选择的第三变换输入到所述第二DCNN来训练第三DCNN以输出文档的另一个变换;以及
将所述第二输入文档馈送到所述第三DCNN,获得所述第二输入文档的第四变换。
21.一种用于将系统从第一深度卷积神经网络(DCNN)转换为第二DCNN的计算机化的方法,所述第一DCNN被训练为输出到所述第一DCNN的文档输入的第一度量的值,并且所述第二DCNN被训练为输出所述第一DCNN的文档输入的第一变换类型的变换,所述方法包括:
针对一个或多个输入文档中的每个输入文档:
通过将所述第一变换传递给所述第一DCNN来确定所述输入文档的第一变换的所述第一度量的第一值;
通过将所述输入文档传递给所述第二DCNN来获得所述输入文档的第二变换;
将所述输入文档的所述第二变换传递给所述第一DCNN,获得所述输入文档的所述第二变换的所述第一度量的第二值,所述第一变换和所述第二变换具有所述第一变换类型;
针对所述输入文档,确定所述第一值和所述第二值之间的差异;
针对所述一个或多个输入文档中的每个输入文档,基于所述第一值和所述第二值之间的所述差异,确定是否将所述系统从所述第一DCNN转换为所述第二DCNN;以及
响应于确定所述系统应当从所述第一DCNN转换为所述第二DCNN,针对所述第一变换类型的变换,使得到所述系统的新输入文档被传递给所述第二DCNN,以代替被传递给所述第一DCNN。
22.根据权利要求21所述的方法,其中,确定是否转换所述系统包括:向所述差异添加距离因子,所述距离因子是基于通过使用所述第二DCNN代替所述第一DCNN而带来的运算能力的节省来设置的。
23.根据权利要求21所述的方法,其中,所述第一度量是专业度得分。
24.根据权利要求21所述的方法,其中,确定是否转换所述系统包括:将相同输入文档的两个版本传递给所述第二DCNN,并确定所述第二DCNN是否针对所述两个版本中的每个版本输出相同的第二变换。
25.根据权利要求21所述的方法,其中,相同输入文档的两个版本是单个图像的部分地重叠的部分。
26.根据权利要求21所述的方法,其中,所述第一变换是通过将所述第一输入文档的多个可能变换馈送到所述第一DCNN获得的,并且在所述第一DCNN内,针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
27.根据权利要求21所述的方法,其中,所述变换类型是裁剪。
28.一种系统,包括:
计算机可读介质,其上存储有指令,所述指令当由处理器执行时,使所述系统通过以下操作执行用于将系统从第一深度卷积神经网络(DCNN)转换为第二DCNN的方法,所述第一DCNN被训练为输出到所述第一DCNN的文档输入的第一度量的值,并且所述第二DCNN被训练为向所述第一DCNN输出文档输入的具有第一变换类型的变换:
针对一个或多个输入文档中的每个输入文档:
通过将所述第一变换传递给所述第一DCNN来确定所述输入文档的第一变换的所述第一度量的第一值;
通过将所述输入文档传递给所述第二DCNN来获得所述输入文档的第二变换;
将所述输入文档的所述第二变换传递给所述第一DCNN,获得所述输入文档的所述第二变换的所述第一度量的第二值,所述第一变换和所述第二变换具有所述第一变换类型;
针对所述输入文档,确定所述第一值和所述第二值之间的差异;
针对所述一个或多个输入文档中的每个输入文档,基于所述第一值和所述第二值之间的所述差异,确定是否将所述系统从所述第一DCNN转换为所述第二DCNN;以及
响应于确定所述系统应当从所述第一DCNN转换为所述第二DCNN,针对所述第一变换类型的变换,使得到所述系统的新输入文档被传递给所述第二DCNN,以代替被传递给所述第一DCNN。
29.根据权利要求28所述的系统,其中,确定是否转换所述系统包括:向所述差异添加距离因子,所述距离因子是基于通过使用所述第二DCNN代替所述第一DCNN而带来的运算能力的节省来设置的。
30.根据权利要求28所述的系统,其中,所述第一度量是专业度得分。
31.根据权利要求28所述的系统,其中,确定是否转换所述系统包括:将相同输入文档的两个版本传递给所述第二DCNN,并确定所述第二DCNN是否针对所述两个版本中的每个版本输出相同的第二变换。
32.根据权利要求28所述的系统,其中,相同输入文档的两个版本是单个图像的部分地重叠的部分。
33.根据权利要求28所述的系统,其中,所述第一变换是通过将所述第一输入文档的多个可能变换馈送到所述第一DCNN获得的,并且在所述第一DCNN内,针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
34.根据权利要求28所述的系统,其中,所述变换类型是裁剪。
35.一种非暂时性机器可读存储介质,其包括指令,所述指令当由一个或多个机器实现时,使所述一个或多个机器执行用于将系统从第一深度卷积神经网络(DCNN)转换为第二DCNN的操作,所述第一DCNN被训练为输出到所述第一DCNN的文档输入的第一度量的值,并且所述第二DCNN被训练为向所述第一DCNN输出文档输入的具有第一变换类型的变换,所述操作包括:
针对一个或多个输入文档中的每个输入文档:
通过将所述第一变换传递给所述第一DCNN来确定所述输入文档的第一变换的所述第一度量的第一值;
通过将所述输入文档传递给所述第二DCNN来获得所述输入文档的第二变换;
将所述输入文档的所述第二变换传递给所述第一DCNN,获得所述输入文档的所述第二变换的所述第一度量的第二值,所述第一变换和所述第二变换具有所述第一变换类型;
针对所述输入文档,确定所述第一值和所述第二值之间的差异;
针对所述一个或多个输入文档中的每个输入文档,基于所述第一值和所述第二值之间的所述差异,确定是否将所述系统从所述第一DCNN转换为所述第二DCNN;以及
响应于确定所述系统应当从所述第一DCNN转换为所述第二DCNN,针对所述第一变换类型的变换,使得到所述系统的新输入文档被传递给所述第二DCNN,以代替被传递给所述第一DCNN。
36.根据权利要求35所述的非暂时性机器可读存储介质,其中,确定是否转换所述系统包括:向所述差异添加距离因子,所述距离因子是基于通过使用所述第二DCNN代替所述第一DCNN而带来的运算能力的节省来设置的。
37.根据权利要求35所述的非暂时性机器可读存储介质,其中,所述第一度量是专业度得分。
38.根据权利要求35所述的非暂时性机器可读存储介质,其中,确定是否转换所述系统包括:将相同输入文档的两个版本传递给所述第二DCNN,并确定所述第二DCNN是否针对所述两个版本中的每个版本输出相同的第二变换。
39.根据权利要求35所述的非暂时性机器可读存储介质,其中,相同输入文档的两个版本是单个图像的部分地重叠的部分。
40.根据权利要求35所述的非暂时性机器可读存储介质,其中,所述第一变换是通过以下操作获得的:
将所述第一输入文档的多个可能变换馈送到所述第一DCNN,以及在所述第一DCNN内,针对所述多个可能变换中的每个可能变换:
将所述变换传递给所述卷积层,生成输出;
将来自所述卷积层的所述输出传递给所述非线性层,生成输出;
将来自所述非线性层的所述输出传递给所述池化层,生成输出;以及
将来自所述非线性层的输出传递给所述分类层,生成所述变换的专业度得分。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/169,063 US10380480B2 (en) | 2016-05-31 | 2016-05-31 | Changeover from one neural network to another neural network |
US15/169,063 | 2016-05-31 | ||
US15/168,750 | 2016-05-31 | ||
US15/168,750 US11188823B2 (en) | 2016-05-31 | 2016-05-31 | Training a neural network using another neural network |
PCT/US2017/034972 WO2017210174A1 (en) | 2016-05-31 | 2017-05-30 | Training a neural network using another neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109564636A true CN109564636A (zh) | 2019-04-02 |
CN109564636B CN109564636B (zh) | 2023-05-02 |
Family
ID=60478961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780033295.4A Active CN109564636B (zh) | 2016-05-31 | 2017-05-30 | 使用一个神经网络来训练另一个神经网络 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109564636B (zh) |
WO (1) | WO2017210174A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134852A (zh) * | 2019-05-06 | 2019-08-16 | 北京四维图新科技股份有限公司 | 一种文档的去重方法、设备及可读介质 |
CN112541574A (zh) * | 2020-12-03 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 保护隐私的业务预测方法及装置 |
CN114003735A (zh) * | 2021-12-24 | 2022-02-01 | 北京道达天际科技有限公司 | 基于情报文档面向知识图谱问答的实体消歧方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705756B (zh) * | 2019-09-07 | 2023-05-12 | 创新奇智(重庆)科技有限公司 | 一种基于输入凸神经网络的电力能耗优化控制方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0532053A2 (en) * | 1991-09-12 | 1993-03-17 | Fuji Photo Film Co., Ltd. | Method for recognizing object images and learning method for neural networks |
CN101795344A (zh) * | 2010-03-02 | 2010-08-04 | 北京大学 | 数字全息图像压缩、解码方法及系统、传输方法及系统 |
CN101930561A (zh) * | 2010-05-21 | 2010-12-29 | 电子科技大学 | 一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置 |
US20140180986A1 (en) * | 2012-12-24 | 2014-06-26 | Google Inc. | System and method for addressing overfitting in a neural network |
CN104112263A (zh) * | 2014-06-28 | 2014-10-22 | 南京理工大学 | 基于深度神经网络的全色图像与多光谱图像融合的方法 |
CN105120130A (zh) * | 2015-09-17 | 2015-12-02 | 京东方科技集团股份有限公司 | 一种图像升频系统、其训练方法及图像升频方法 |
US20160035078A1 (en) * | 2014-07-30 | 2016-02-04 | Adobe Systems Incorporated | Image assessment using deep convolutional neural networks |
CN105426861A (zh) * | 2015-12-02 | 2016-03-23 | 百度在线网络技术(北京)有限公司 | 车道线确定方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8504361B2 (en) * | 2008-02-07 | 2013-08-06 | Nec Laboratories America, Inc. | Deep neural networks and methods for using same |
US9953425B2 (en) * | 2014-07-30 | 2018-04-24 | Adobe Systems Incorporated | Learning image categorization using related attributes |
US10474949B2 (en) * | 2014-08-19 | 2019-11-12 | Qualcomm Incorporated | Knowledge-graph biased classification for data |
US20160140438A1 (en) * | 2014-11-13 | 2016-05-19 | Nec Laboratories America, Inc. | Hyper-class Augmented and Regularized Deep Learning for Fine-grained Image Classification |
-
2017
- 2017-05-30 WO PCT/US2017/034972 patent/WO2017210174A1/en active Application Filing
- 2017-05-30 CN CN201780033295.4A patent/CN109564636B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0532053A2 (en) * | 1991-09-12 | 1993-03-17 | Fuji Photo Film Co., Ltd. | Method for recognizing object images and learning method for neural networks |
CN101795344A (zh) * | 2010-03-02 | 2010-08-04 | 北京大学 | 数字全息图像压缩、解码方法及系统、传输方法及系统 |
CN101930561A (zh) * | 2010-05-21 | 2010-12-29 | 电子科技大学 | 一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置 |
US20140180986A1 (en) * | 2012-12-24 | 2014-06-26 | Google Inc. | System and method for addressing overfitting in a neural network |
CN104112263A (zh) * | 2014-06-28 | 2014-10-22 | 南京理工大学 | 基于深度神经网络的全色图像与多光谱图像融合的方法 |
US20160035078A1 (en) * | 2014-07-30 | 2016-02-04 | Adobe Systems Incorporated | Image assessment using deep convolutional neural networks |
CN105120130A (zh) * | 2015-09-17 | 2015-12-02 | 京东方科技集团股份有限公司 | 一种图像升频系统、其训练方法及图像升频方法 |
CN105426861A (zh) * | 2015-12-02 | 2016-03-23 | 百度在线网络技术(北京)有限公司 | 车道线确定方法及装置 |
Non-Patent Citations (2)
Title |
---|
GEORGE PAPANDREOU 等: "Modeling local and global deformations in Deep Learning: Epitomic convolution, Multiple Instance Learning, and sliding window detection", 《2015 IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR)》 * |
杨宇: "基于深度学习特征的图像推荐系统", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134852A (zh) * | 2019-05-06 | 2019-08-16 | 北京四维图新科技股份有限公司 | 一种文档的去重方法、设备及可读介质 |
CN112541574A (zh) * | 2020-12-03 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 保护隐私的业务预测方法及装置 |
CN112541574B (zh) * | 2020-12-03 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 保护隐私的业务预测方法及装置 |
CN114003735A (zh) * | 2021-12-24 | 2022-02-01 | 北京道达天际科技有限公司 | 基于情报文档面向知识图谱问答的实体消歧方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017210174A1 (en) | 2017-12-07 |
CN109564636B (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9904871B2 (en) | Deep convolutional neural network prediction of image professionalism | |
US20170300811A1 (en) | Dynamic loss function based on statistics in loss layer of deep convolutional neural network | |
US10043240B2 (en) | Optimal cropping of digital image based on professionalism score of subject | |
US10380458B2 (en) | Cold start machine learning algorithm | |
US10043254B2 (en) | Optimal image transformation based on professionalism score of subject | |
CN109409516A (zh) | 用于职位推荐的具深度和宽度的机器学习模型 | |
US11188823B2 (en) | Training a neural network using another neural network | |
US11521339B2 (en) | Machine learning in augmented reality content items | |
US11204973B2 (en) | Two-stage training with non-randomized and randomized data | |
KR20230079180A (ko) | 인간 캐릭터의 음악 반응 애니메이션 | |
CN109564636A (zh) | 使用一个神经网络来训练另一个神经网络 | |
CN110175297A (zh) | 馈送中的个性化的每成员模型 | |
US11397742B2 (en) | Rescaling layer in neural network | |
CN108694228A (zh) | 社交网络分类中的头衔消歧 | |
Wang et al. | Facial expression recognition based on auxiliary models | |
Ansari et al. | Gaze tracking using an unmodified web camera and convolutional neural network | |
CN110427564A (zh) | 将深度学习集成到广义加性混合效应(game)框架中 | |
US10380480B2 (en) | Changeover from one neural network to another neural network | |
CN110032685A (zh) | 馈送优化 | |
Zhang et al. | In-Field Tobacco Leaf Maturity Detection with an Enhanced MobileNetV1: Incorporating a Feature Pyramid Network and Attention Mechanism | |
CN108604230A (zh) | 具有职业和非职业内容的用户馈送 | |
CN110073346A (zh) | 群体辅助查询系统 | |
Magdin et al. | Comparison of Multilayer Neural Network Models in Terms of Success of Classifications Based on EmguCV, ML. NET and Tensorflow. Net | |
Xiong et al. | Context Transformer and Adaptive Method with Visual Transformer for Robust Facial Expression Recognition | |
US11983462B2 (en) | Conversation guided augmented reality experience |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |