一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于机器语言模型创建的用户界面的制作方法

2022-02-20 13:47:46 来源:中国专利 TAG:

用于机器语言模型创建的用户界面
1.相关申请的交叉引用
2.本技术要求2019年6月1日提交的美国临时申请第62/855,958号、以及2019年10月31日提交的美国专利申请第16/670,914号的权益和优先权;上述专利申请中的每一篇专利申请的全文均以引用方式并入本文。
技术领域
3.本公开整体涉及用于生成和训练用于应用开发的机器学习模型的技术和用户界面。


背景技术:

4.机器学习技术可由应用开发人员实施,以作出预测和决定,而不使用明确指令,相反依赖于模式和影响。机器学习技术基于样本数据(称为“训练数据”)创建数学模型。机器学习技术可用在各种应用中,诸如电子邮件过滤、计算机视觉和预测分析。为机器学习开发的模型常常是利用与用于创建应用的那些分开的应用来开发的。这些单独的机器学习工具还可涉及与应用不同的编程语言。提供将机器学习工具实现到开发应用的相同集成开发环境中的技术可允许更容易地训练模型、测试模型以及无缝地集成到采用这些机器学习技术的应用中。


技术实现要素:

5.某些实施方案涉及用于在集成开发环境中创建机器学习模型的用户界面的技术(例如,方法、存储可由一个或多个处理器执行的代码或指令的存储器或非暂态计算机可读介质)。所公开的机器学习工具可允许将训练和测试模型的整个流程利用交互式图形用户界面集成到应用中。机器学习(ml)模板可允许开发人员容易地创建定制模型,而不必对单独的机器学习模型进行编程。例如,训练数据可从存储装置获取或者可从图像或声音的实况捕获/记录集成。存储数据和实况数据两者都可用于训练和测试模型,都在应用内。
6.在各种实施方案中,所述技术可在应用开发程序中实现。该技术可允许开发人员从多个可用模板中选择。例如,模板可被归类为图像、文本、声音、运动和表格数据。机器学习模型可允许数据的分类和/或一组数据内的实值目标的回归。
7.下文将详细描述本发明的这些实施方案和其他实施方案。例如,其他实施方案涉及与本文所述的方法相关联的系统、设备和计算机可读介质。
8.根据下文提供的详细描述,本公开的其他适用领域将变得显而易见。应当理解,具体实施方式和具体示例虽然指示了各种实施方案,但仅旨在用于例示的目的,而并非旨在必然地限制本公开的范围。
附图说明
9.图1示出了用于生成用于应用开发的经训练的机器学习模型的系统的示例性简化
图。
10.图2示出了用于选择模板用于生成经训练的机器学习模型的示例性图形用户界面。
11.图3示出了用于为声音分类器选择训练数据的示例性图形用户界面。
12.图4示出了用于为声音分类器拖入训练数据的示例性图形用户界面。
13.图5示出了用于训练机器学习模型的示例性图形用户界面。
14.图6示出了用于机器学习模型(具体地讲,声音分类器)的输出的示例性图形用户界面。
15.图7示出了用于生成经训练的机器学习模型的技术的进度条的示例性图形用户界面。
16.图8示出了用于机器学习模型(具体地讲,图像分类器)的输出的示例性图形用户界面。
17.图9是用于生成用于应用开发的经训练的机器学习模型的技术的示例性流程图。
18.图10示出了用于示例性设备执行本文所述的一种或多种技术的框图。
19.在附图中,类似的部件和/或特征部可具有相同的参考标签。此外,可通过跟随连接号和区分类似部件的第二标签的参考标签来区分相同类型的各种部件。如果在说明书中仅使用第一参考标签,则该描述适用于具有与第二参考标签无关的相同第一参考标签的任何一个类似部件。
具体实施方式
20.本公开的某些实施方案涉及用于在集成开发环境中创建机器学习模型的设备、计算机可读介质和方法。机器学习工具为开发人员提供关于数据类型的选项来从中进行选择。开发人员可选择适合于其应用中所使用的数据类型的模板。
21.机器学习工具可允许开发人员容易地创建用于结合到应用中的经训练的机器学习模型。机器学习工具可以是基于应用的,并且可作为独立应用运行或在操作系统的集成开发环境(ide)中运行。在一些实施方案中,该工具所创建的经训练的机器学习模型(例如,作为独立应用提供)可随后被结合到正在ide中开发的程序中。这使得开发人员能够利用操作系统提供的固有开发工具,而不是尝试结合由第三方程序开发的模型。这也允许在集成开发环境中更容易地测试应用。
22.结合机器学习模型的应用可在便携式计算设备诸如膝上型计算机或平板电脑上执行。通过允许从图形用户界面选择模型类型和/或模型源,机器学习工具可以是用户友好的。例如,各种模型类型可包括图像分析模型、声音分析模型、文本分析模型、表格数据分析模型等。模型源可包括训练数据的计算机或网络位置。图形用户界面可允许开发人员将训练数据拖放到指定区域中。类似地,开发人员可通过直观的用户界面选择评估或测试数据。机器学习工具可提供图形工作流以在开发和训练机器学习模型的各个阶段中协助开发人员。此外,图形用户界面可向开发人员提供用于生成经训练模型的各个阶段和子阶段的图形描绘。在一些示例中,图形用户界面可显示利用测试数据的训练准确度和验证准确度两者的数字得分。
23.i.生成经训练的机器学习模型
24.本文的公开内容描述了用于生成经训练的机器学习模型的各种用户友好的技术。在监督学习中,所述技术由包含输入和期望输出两者的一组数据构建数学模型。例如,如果任务是确定图像是否包含某个对象,则监督学习技术的训练数据可包括具有和不具有该对象的图像(输入),并且每个图像会具有指定其是否包含对象的标签(输出)。该技术可用于各种不同类型的数据。该技术可包括选择模板用于模型类型(例如,图像分析、文本分析、声音分析、运动分析和表格数据分析)。接下来,该技术可包括输入用于训练模型的训练数据。训练过程的一部分可包括标识和选择测试数据以评估模型。在模型已被训练之后,可使用测试数据来评估模型。所述技术可生成一个或多个得分作为评估的结果。经训练的模型可被存储和导出以用于在其他应用中使用。
25.图1示出了用于机器学习模型生成的技术100的简化图。机器学习工具102可以是在计算设备上执行的软件应用。机器学习工具102可包括呈现多个图形用户界面以允许开发人员与例程进行交互。
26.a.选择模板
27.开发人员可首先考虑其应用是否应结合机器学习。机器学习适合于在不使用明确指令的情况下执行特定任务。机器学习技术通过学习和使用在数据集中找到的模式来完成这些任务。机器学习技术的一些典型用途包括辅助手动数据输入、检测不想要的电子邮件消息(另外称为垃圾邮件)、推荐产品、诊断技术、客户细分和寿命值预测、预测性维护、财务分析、声音分析、图像识别、文本识别和表格数据分析。
28.如果机器学习技术适合于应用,则开发人员可使用机器学习工具102来生成经训练的机器学习模型104。机器学习工具102可呈现模板选择器,该模板选择器呈现开发人员可从中进行选择的不同数据类别的选项。类别可包括图像、文本、声音、运动、和表格数据的一般类别。每个类别还可具有子类别。例如,图像分析可具有图像分类和对象检测的子类别。
29.机器学习工具102可提供模板模块110。模板模块110可提供图形用户界面以允许开发人员从多个模板中选择模板。模板可按类别和子类别进行组织,对应于不同的模型类型。此类图形用户界面允许开发人员从前述类别的不同图形表示中进行选择。图形用户界面也提供特定模板的描述。例如,开发人员可通过用指向设备点击描述或在触摸屏上选择来选择模板。在选择模板之后,机器学习工具102可打开项目视图,该项目视图可引导开发人员通过构建经训练的模型的步骤。用于生成经训练的机器学习模型的阶段可包括问题开发、数据收集、训练模型和部署经训练的模型。
30.图2示出了用于选择模板用于生成经训练的机器学习模型的示例性图形用户界面200。模板gui 200描绘可包括图像、文本、声音、运动和表格模板的模板列表202,但在其他实施方案中,可提供其他模板。开发人员也可显示“全部”,如图2所示,其在可滚动展示中显示所有模板。类别204可被显示在模板的图标206上方。如图2所示,gui 200示出了用于图像类别204的两个模板。图2描绘了类别204中的每个模板的图标206和标签208。例如,图2描绘了“图像分类器”模板和“对象检测器”模板的图标206和标签208。图2示出了图像分类器模板被选择,并且文本描述框210为该模板提供附加信息。
31.下面是模型的不同分类类型的简要描述。
32.1.图像分析模板
33.在一些实施方案中,图像分析分类可具有两种不同类型的模型。一种模型类型是可被训练以对视觉图像中描绘的对象进行分类的图像分类模型。第二类型的模型是对象检测模型。对象检测模型允许检测图像中的特定对象、动物或人。在一个非限制性示例中,开发人员可能想要创建花朵图像分类模型。花朵分类模型可分析花朵的图像以改善核心图像分类模型来检测特定花朵。例如,花朵分类模型可从由用户的智能电话捕获的图像中正确地对玫瑰、水仙花、向日葵等的图像进行分类。
34.图像分类是从一组类别中标识什么标签要应用于图像的问题。第一步是收集训练数据106。训练数据106可包括多个图像文件。图像文件可以是多种图像文件格式。图像文件格式可包括联合图像专家组(jpeg)、可交换图像文件格式(exif)、标记图像文件格式(tiff)、图形交换格式(gif)、windows位图(bmp)、可移植网络图形(png)和更好的可移植图形(bpg)。存在并且可使用其他格式。开发人员可采集反映分类器可最终看到的真实数据的许多不同类型的图像,然后标记它们。理想的是,数据应反映应用的实际使用。因此,例如,如果开发人员正在创建将由用户在其智能电话上使用的自定义图像分类器,则开发人员应从智能电话收集图片以及可能更少的屏幕截图。
35.图像分类模型可提供初始类别标签,该初始类别标签提供关于图像的见解(例如,图像是在室内还是在室外拍摄的)。图像分类模型还可检测捕获图像的房间(例如,厨房)。对象检测可在图像中的对象周围添加边界框,并在边界框中建议对象的标签。
36.机器学习工具102也结合实况模式。使用实况模式,开发人员可从智能电话或其他电子设备拍摄图像,并在开发期间测试图像分类器的准确度。
37.2.文本分析模板
38.机器学习工具102可采用至少两种类型的模型用于文本分析。一种类型的模型是自然语言处理,其帮助处理和理解人类语言文本的含义。以自然语言驱动的自然语言处理中的所有机器学习都是在设备上进行的,以保护用户的隐私。文本分析模型可包括文本分类和字词标记。文本分类器取文本块,例如句子或段落或整个文档,并向其应用标签。文本分类可用于确定情感分析、垃圾邮件分析、和主题分析。
39.在测试分类工作流程中,训练数据106可包括在文件夹中组织的原始文本文件,该文件夹的真实标签是文件夹的名称。另选地,训练数据可使用逗号分隔开的值,其中文本标签和真实标签由逗号分隔开。javascript格式也受支持。
40.在文本分类器中,语言标识器可标识文本的本来语言。语言标识器可标识文本文件的主导语言。语言假设api可指定文本文件中包含的最大语言数量,并计算文本是这些语言之一的相关联概率。然后可将文本转换成令牌,该令牌可被进一步改变为特征值。然后可利用训练数据通过将输出与真实数据进行比较来训练文本分类器的核心模型。
41.例如,文本分类器可用于自动评估多个评论。因此,对于文本分类,开发人员可创建应用来理解用户评论和期望,以自动知道给定评论是肯定评论还是否定评论,或者是介于两者之间。此类过程可被称为情感分类。文本分类器的另一示例性用途是通过使用文章摘要或者甚至可能仅使用文章标题对文章进行归类。另一可能的具体实施是自动化旅行代理人,该自动化旅行代理人可确定客户正在询问的话题类别。文本分类器可确定客户是对酒店还是餐厅还是航班感兴趣。
42.字词标记器可将句子考虑成字词序列,然后在上下文中将标签应用于句子中的每
个字词。字词标记器可生成自定义名称标记器,用于自定义名称诸如产品名称的自动名称识别。字词标记器可划分文本的句子部分,要么是顺序的字词要么是文本分类器中的文本块。例如,字词标记器可将字词标记为人、组织实体、俚语字词等。字词标记器解析无格式文本并解释字词的结构。
43.为自然语言处理进行的所有机器学习可在设备上执行,以保护用户的隐私。
44.文本分析的其他特征包括自动语音标记和命名实体识别。命名实体识别api可返回与文本中的命名实体相关的搜索结果。基于用户已在web搜索工具中浏览了什么,命名实体识别可建议与浏览历史相关的名称和位置,从而增强应用中的搜索体验。
45.3.声音分析模板
46.机器学习工具102可采用一个或多个声音分析模板。声音分类器可用于标识特定乐器,诸如牛铃、钹、鼓、吉他等。也可对笑声和无声进行分类。可使用多个声音片段来训练声音分类器。一旦经过训练,声音分类器就可分析样本声音片段并确定不同时间窗口处的声音的分类。
47.声音分类器可与其他特征(例如,实况记录特征)结合,这会使得能够实现实况收听和接近实时地分析声音。在该实况分析模式下,机器学习工具102可通过使用来自如智能电话的配套设备的麦克风输入的声音来本地地或远程地收听计算设备上的麦克风。
48.4.运动分析模板
49.机器学习工具102可采用一个或多个运动分析模板。运动分类器可标识从例如智能电话或可穿戴设备上的一个或多个传感器(例如加速度计)捕获的特定运动。例如,可针对网球中的正手和反手挥拍以适当的形式训练运动分析模板。机器学习工具102使得开发人员能够将运动分析模板集成到用于改善网球挥拍的应用中。可编写类似的例程以标识特定锻炼。可训练运动分析模型以标识特定锻炼并捕获每个锻炼的重复次数。
50.5.表格数据分析模板
51.机器学习工具102可采用一个或多个模板用于分析表格数据。表格数据可以是以表格格式组织的结构化数据。一个示例可以是给定区域的房屋销售信息。房屋销售信息可包括房屋的特征,诸如卧室的数量、浴室的数量、房屋的总平方英尺、与学校的邻近度和房屋的销售价格。开发人员可能想要使用该信息来根据这些特征中的一者或多者预测销售价格。机器学习工具102可将数据作为逗号分隔值(csv)文件或javascript格式导入。模板可允许容易的计算,诸如每平方英尺的价格。模板也可允许容易地过滤数据,诸如滤除卧室少于一定数量的房屋。
52.b.用于生成机器学习模型的训练数据的输入
53.返回图1,机器学习工具102可允许开发人员输入训练数据106。训练数据106可包括存储在计算设备的存储器中或网络上的多个文件。训练模块116可使用训练数据106来修改所选择的模板参数,以导致经训练的模型能够基于所选择的模板和训练数据标识或分类图像、声音、运动或表格数据。训练数据106可包括标识文件的一个或多个特性(例如,图像、声音或传感器数据特征)的元数据。机器学习工具102支持大量算法,诸如提升树回归、随机森林等。所有这些算法均由它们的分类表示。为了训练所选择的模型,开发人员将只必须编写一行标识目标和数据源的代码。因此,在这种情况下,开发人员可选择线性回归或正则化线性回归,并且开发人员会标识房屋数据并且列是价格。
54.训练数据106可以是不同格式的结构化数据文件。数据文件可与元数据文件相关联。就结构数据文件而言,文件夹可提供关于文件内包含的文件的信息。例如,对于花朵分类器,包含玫瑰图像的文件可被标记“玫瑰”。机器学习工具102可标识文件夹的名称并将文件夹中包含的图像的特征与玫瑰相关联。在声音分析的情况下,文件夹可包含吉他的声音片段。文件夹可被标记“吉他”,并且机器学习工具102可将文件夹内包含的声音片段的特征与吉他相关联。
55.训练数据106可被包含在机器学习工具102正在上面执行的计算设备的存储器中。训练数据106也可位于连接到计算设备的存储设备中。另选地,训练数据106可存储在从基于云的服务提供的数据库中。
56.在各种实施方案中,数据可被收集并标记为词典,其中字符串标签对应于图像阵列。也可将数据集组织成分层目录结构,使得标签是其中包含所有图像的文件夹的名称。也可存在其他数据源,诸如包含所标记文件名的单个文件夹。
57.机器学习工具102可包括训练数据输入模块112。训练数据输入模块可包括用于从计算设备的存储器提取训练数据106和相关联的数据结构的应用编程接口(api)。训练数据106和相关联的数据结构可从数据库服务器导入。数据库服务器可以是可通过网络(例如,互联网)访问的基于云的服务器。
58.机器学习工具102可在过程中的各个触发点处向开发人员提供错误和警告。例如,当开发人员拖放训练数据106时,该技术可对训练数据106进行数据分析,并且可在用户界面上显示错误和警告。在该过程的每个阶段,机器学习工具102可标识并向开发人员显示错误和警告。一些错误和警告可将开发人员送回到前一阶段以进行校正。此外,机器学习工具102也具有完全单独的视图,以独立于特定任务提供对数据的见解。例如,该单独的视图可通过绘制可能分类的标签的分布来通知开发人员。在单独的视图中,直方图可描绘用于所标识数据源的分类器的不同分类中每个分类的多个注释。详细视图可通知开发人员若干图像是复制的还是非常相似的。这允许开发人员理解数据的丰富度。
59.转到图3示出了用于选择声音分类器的训练数据的输入图形用户界面300。输入图形用户界面300列出项目文件的名称302和模型模板304。图1所示的机器学习工具102可允许开发人员从各个模型源选择可使用训练数据进一步训练的模型模板。如图3所示,项目文件的名称302为“mysoundclassifier2”,并且模型模板304为“第一测试”。在输入框306中,可显示“第一测试”模型模板的所检测到的分类的数量。训练框308可指示经训练的模型在所选训练数据上的准确度。验证框310可示出经训练的模型在验证数据上的准确度。测试框312可示出经训练的模型在测试数据上的准确度。输出框314可显示经训练的模型的输出文件的名称。在图3中,输出框314指示尚未训练模型。
60.输入图形用户界面300允许开发人员选择模型模板304、训练数据316、验证数据318和测试数据320。图形用户界面300提供第一下拉菜单322以允许开发人员选择训练数据316的位置。训练数据316可从计算设备的存储器中的文件上载。另选地,训练数据316也可从计算设备上的另一文件拖放到训练数据框317上。开发人员可选择一个或多个文件用作验证数据318和测试数据320。在一些实施方案中,开发人员可选择特定分类的数据来用作训练数据316。
61.输入图形用户界面300提供用于选择验证数据318的第二下拉菜单324。验证数据
318可从计算设备的存储器中的文件上载。另选地,验证数据318可被拖放到验证数据框319上。开发人员可选择一个或多个文件用作验证数据318。开发人员可选择“自动”,其中机器学习工具102将预选量的训练数据316(例如,10%的训练数据316)隐抑作为验证数据318。
62.输入图形用户界面300提供用于测试数据320的第三下拉菜单326。在模型已被训练和验证之后,开发人员可上载附加测试数据320以测试经训练的模型的分类。测试数据320可从计算设备的存储器中的文件上载。另选地,测试数据320可被拖放到测试数据框321上。
63.输入图形用户界面300提供指示“需要训练数据”的状态框328。这提示开发人员使用界面标识训练数据316。
64.图4示出了用于为声音分类器选择训练数据的示例性图形用户界面400。图4为图3所示图形用户界面300的继续。图形用户界面400列出项目文件的名称402和模型模板404。如图4所示,项目文件的名称402为“mysoundclassifier2”,并且模型模板404为“第一测试”。在输入框406中,显示训练数据416中所检测到的分类的数量。训练框408示出模型在所选训练数据上的准确度。验证框410示出模型在验证数据上的准确度。测试框412示出经训练的模型在测试数据上的准确度。输出框414示出输出文件的名称。在图4中,输出框414指示尚未训练模型。
65.在图4中,图形用户界面400示出训练数据416已被添加。机器语言工具102已标识训练数据416中的1,608项。输入框404指示机器语言工具102已标识训练数据416中的50个数据分类。
66.图形用户界面400允许开发人员选择训练数据416、验证数据418和测试数据420。图形用户界面400提供用于选择训练数据416的位置的第一下拉菜单422。训练数据416可从计算设备的存储器中的文件上载。另选地,训练数据416可被拖放到训练数据框417上。开发人员可选择一个或多个文件用作训练数据416。在一些实施方案中,开发人员可选择特定分类的数据来用作训练数据416。在选择训练数据416时,图形用户界面可显示训练数据416中包含的项421的数量。
67.图形用户界面400提供用于选择验证数据418的第二下拉菜单424。验证数据418可从计算设备的存储器中的文件上载。另选地,验证数据418可被拖放到验证数据框419上。开发人员可选择一个或多个文件用作验证数据418。开发人员也可从第二下拉菜单424中选择“自动”,其中机器学习工具102将预选量的训练数据416隐抑作为验证数据418。
68.图形用户界面400提供用于测试数据420的第三下拉菜单420。在模型已被训练和验证之后,开发人员可上载附加测试数据420以测试经训练的模型的分类。测试数据420可从计算设备的存储器中的文件上载。另选地,测试数据420可被拖放到测试数据框423上。
69.图形用户界面400提供状态框428,该状态框指示模型“训练准备就绪”。“训练准备就绪”通知提示开发人员通过选择播放按钮430来执行训练过程。
70.返回图1,训练数据106可存储在集成开发环境的桌面上的文件中。开发人员可简单地将训练数据文件夹拖动到指定区域。机器学习工具102可通过训练数据的文件夹数量确定多少类别,并提供一些高层级汇总。例如,在花朵分类器示例中,机器学习工具102可以理解,开发人员正在生成具有2000个训练图像的17分类分类器。
71.c.训练机器学习模型
72.例如,可采用以下机器学习模型:线性回归、逻辑回归、决策树、支持向量机(svm)、朴素贝叶斯、k最近邻(knn)、k均值聚类、随机森林、降维算法、梯度提升算法(gbm)(例如,xgboost、lightgbm和catboost)。各种技术可采用一种或多种算法来训练模型以达到目标准确度的期望目的,诸如使用具有反向传播的梯度方法、集成学习、变分贝叶斯方法和adaboost。
73.在导入训练数据106之后,可训练模型。开发人员可通过选择播放按钮430来开始训练,如图4所示。训练模块116使用训练数据106修改模型以预测期望结果。训练数据106可从每个训练数据资产提取一个或多个特征。训练模块116可将训练数据资产的一个或多个特征与由相关联数据结构提供的标签关联。标签也可采用与训练数据106相关联的元数据的形式。训练模块116分析数百、数千甚至数百万个数据元,以将机器学习(ml)模型改善成经训练的模型。理想的是,在训练之后,当呈现新的、未见过的数据(即,测试数据108)时,模型可预测期望输出。
74.训练模块116可结合自动补全特征用于并入训练数据106。训练模块116允许标签词典和数据阵列、数据源形式的训练数据的标识,或指定模型训练参数。训练模块的图形用户界面可包括控制台,该控制台通知开发人员训练模块116正在提取特征以及训练模块正在运行的迭代次数。图形用户界面可提供快速浏览,以通知开发人员训练模块116已评估了多少示例以及已评估的分类的数量。
75.图5示出了用于生成机器学习模型的训练图形用户界面500。图5是图4中描绘的图形用户界面400的继续。图形用户界面500列出项目文件的名称502和模型模板504。如图5所示,项目文件的名称502为“mysoundclassifier”,并且模型模板504被标识为“第一测试”。图形用户界面500描绘了进度指示器516,其示出机器学习技术的进度。输入框506显示在训练数据中检测到50个分类。训练框508显示模型的当前训练准确度为93%。验证框510示出经训练的模型在验证数据上的准确度为82%。测试框512示出经训练的模型在测试数据上的准确度为73%。输出框514示出图标516和输出文件的大小(以字节为单位)。图5所示的输出文件为9.3兆字节(mb)。
76.训练图形用户界面500描绘了训练准确度线518和验证准确度线520在模型的迭代次数上的线图。准确度框522可向开发人员提供经训练的模型对不同分类的准确度的进一步见解。例如,训练图形用户界面500可描绘数据的每个分类524的精准率526和召回率528。精准率是指相关结果的百分比。精准率可被计算为真阳性结果除以实际结果(真阳性结果加上假阳性结果)。召回率是指经训练的模型正确计算的总相关结果的百分比。召回率可被计算为真阳性除以预测结果或(真阳性加假阴性)。训练模型的准确度可被计算为真阳性加真阴性除以总结果。图5所示的经训练的模型是声音分类器,因此该模型指示声音的各种分类(即,玻璃破裂、打喷嚏、鸡鸣等)。
77.图形用户界面500提供状态框528,该状态框指示“训练在1小时30分钟后在2019年5月26日晚上11:31完成”。开发人员可通过选择“制作副本”按钮534来制作结果的副本。开发人员也可将可执行输出文件图标515拖放到计算设备上的文件目录中。
78.图6示出了用于机器学习模型(具体地讲,声音分类器)的输出的输出图形用户界面600。图6是图5中描绘的训练图形用户界面500的继续。可通过选择输出文件框614来选择输出图形用户界面600。输出图形用户界面600列出项目文件的名称602和模型模板604。如
图6所示,项目文件的名称602为“mysoundclassifier”,并且模型模板604为“第一测试”。输入框606显示在训练数据中检测到50个分类。训练框608显示经训练的模型的当前训练准确度为93%。验证框610示出经训练的模型在验证数据上的准确度为82%。测试框612示出模型在测试数据上的准确度为73%。输出框614示出图标615和输出文件的大小(以字节为单位)。
79.输出图形用户界面600允许选择若干测试文件616中的一个。在图6中已选择了标记“2-98866-a-47.wav”的音频文件618。音频文件618可通过选择播放按钮620来播放。输出图形用户界面600提供声波的图形描绘622。图形描绘622显示示出音频文件618的执行的当前位置的条624。图形描绘622在图形描绘622上方和下方显示当前时间626以及分类标签628。图6中的音频文件618的该部分已接收“飞机”的分类标签628。输出图形用户界面600提供细节区部630。例如,细节区部630可包括:输出文件的完整文件名、文件的大小(以兆字节为单位)、模型名称、文件作者、许可标识符、以及文件描述。
80.输出图形用户界面600提供状态框632,该状态框指示“训练在1小时30分钟后在2019年5月26日晚上11:31完成”。开发人员可通过选择“制作副本”按钮634来制作结果的副本。开发人员也可将可执行输出文件614拖放到计算设备上的文件目录中。
81.图7示出了用于生成经训练的机器学习模型的技术的进度条700。进度条700被分成三个阶段:设置702、训练704和输出706。进度条700示出输入框708显示在训练数据中检测到50个分类。训练框710显示经训练的模型的当前训练准确度为93%。验证框712示出经训练的模型在验证数据上的准确度为82%。测试框714示出经训练的模型在测试数据上的准确度为73%。输出框716示出输出文件的名称和大小(以字节为单位)。
82.图8示出了用于机器学习模型(具体地讲,图像分类器)的输出的输出图形用户界面800。可通过选择输出文件818来选择输出图形用户界面800。输出图形用户界面800列出项目文件的名称802和模型模板804。如图8所示,项目文件的名称802为“flowerclassifier”,并且模型模板804为“我的模型”。输出图形用户界面800显示两个数据源806,具体地,花朵训练数据807和花朵测试数据809。设置框810显示在训练数据中检测到17个分类。训练框812显示经训练的模型的当前训练准确度为100%。验证框814示出经训练的模型在验证数据上的准确度为73%。测试框816示出经训练的模型在测试数据上的准确度为82%。输出框818示出图标819和输出文件的大小(以字节为单位)。
83.图8示出了所显示的测试图像820。也可显示用于测试图像820的信息框822。信息框822可呈现测试图像的文件名称和经训练的模型将测试图像820描绘为特定分类的百分比。例如,对于图8中所描绘的圆叶风铃草图像,信息框822指示经训练的模型将图像100%分类为圆叶风铃草,并且0%分类为雪花莲、花贝母、番红花和郁金香。输出图形用户界面800提供用于评估其他测试图像的拖放界面824。输出图形用户界面800也为正被执行的图像分类器提供概述细节826。
84.在一些实施方案中,可采用迁移学习技术。迁移学习是一种机器学习方法,其中为任务开发的经训练的模型被重新用作第二任务上的模型的起点。迁移学习与传统机器学习的不同之处在于,是使用已用于另一任务的预训练的模型来跳跃开始新任务或问题上的开发过程。迁移学习的益处在于,它通过重新使用已开发模型的这些片或模块可加快开发和训练模型所花费的时间。这有助于加速模型训练过程并加速结果。
85.已在大数据集上训练的模型常常可将其代码的部分提供给其他模型。模块可用于在新数据集上构建新模型。这是用于加速模型构建过程以及在您的机器学习工作流程中获得效率的另一方法。
86.迁移学习技术可应用于已存在于机器学习工具中的该模型的顶部。使用这些技术,模型的最后几层可被重新训练给特定数据,因此系统不再需要数百万个数据集来训练。除了缩短训练所需的时间之外,这还可导致小得多的模型从数百兆字节降至对于数千图像仅几兆字节或甚至千字节。
87.返回图1,机器学习工具102的用户界面可允许开发人员将添加训练数据拖放到模型中并在实况视图中观察构建器。训练模块116可采用计算系统的图形处理单元来执行分析。如果存在多个子阶段,训练模块116可在训练时甚至在训练阶段内提供进展指示。进度指示可以是图形表示或文本信息,以通知开发人员训练进度。随着训练的进行,机器学习工具102可计算并显示训练模型的准确度。机器学习工具可随着训练进行而动态地更新准确度。机器学习工具甚至可区分不同训练分类的准确度。例如,在花朵分类器中,机器学习工具102可区分玫瑰的准确度和康乃馨的准确度。这可为开发人员提供对模型的见解。
88.先前的机器学习工具在生成经训练的模型的各个步骤中不保存信息。因此,开发人员不能返回以查看为了创建机器学习模型做了什么。所公开的技术允许开发人员查看经训练的模型是如何开发的,以使得更容易进行修改。通过保存信息以包括准确度和验证设置,开发人员可对训练数据进行更改以测试对模型生成的影响。此外,先前的模型不提供与移动设备的实况交互。通过允许开发人员使用来自移动设备(例如,用户的智能电话)的数据,这允许通过在机器语言模型被并入到的应用甚至完成之前提供与模型的最终用户交互来测试机器学习工具。
89.训练模块116可在数据训练期间检测错误。在一些情况下,该数据可能是不正确的格式。在一些情况下,对于数据的一个或多个分类可能具有不足的数据。训练模块116可显示警告和错误。示例性警告可能是由于数据不平衡。例如,可能存在比菊花多100张玫瑰图像。甚至可以图形方式表示错误和警告。训练模块116可为开发人员提供修复错误和警告的建议。在一些实施方案中,训练模块116可自动校正错误(例如,重新平衡分类)。
90.开发人员可影响模型开发的一种方式是通过平衡数据。平衡数据的一种方式可以是通过移除副本。开发人员可修改模型的另一方式是在图像非常清楚的情况下通过向图像添加噪声。开发人员也可修改图像的取向。
91.训练模块116在训练模型期间在各个点处插入检查点。检查点的使用允许开发人员返回到模型的先前版本。因此,如果开发人员发现包括新批量的训练数据会不利地影响经训练的模型,则开发人员可容易地返回到在包含新批量的训练数据之前发生的先前检查点处经训练模型的版本。这节省了开发人员在训练过程期间的时间,因为开发人员不仅可容易地看到新数据的影响,而且可返回到模型的较早版本以修改训练数据来改进经训练的模型。
92.训练模块116也可安排在计算设备的资源可用时(例如,在数小时之后或在夜间)。这允许开发人员容易地使用计算设备的资源来呈现计算任务,并且在对其他任务的需求低时运行密集处理。
93.d.选择测试数据以评估模型
94.机器学习工具102可允许开发人员输入测试数据108。测试数据108是机器学习工具102尚未用于训练并且先前没被机器学习工具102看到的数据。
95.测试数据108可包括与测试数据108相关联的一个或多个元数据文件。元数据文件可标识文件的真实标识。对于分类模型,测试数据108应包括用于若干不同分类的文件。例如,对于花朵图像分类器,测试数据108应包括不同花朵(例如,玫瑰、康乃馨、水仙花等)的多个图像。每个图像将具有提供测试数据108的每个图像的真实标识的元数据。
96.机器学习工具102可包括测试数据输入模块114。测试数据输入模块114可包括用于从计算设备的存储器提取测试数据108和相关联数据结构的应用编程接口(api)。测试数据108和相关联数据结构可从数据库服务器导入。数据库服务器可以是可通过网络(例如,互联网)访问的基于云的服务器。在一些实施方案中,测试数据输入模块114可以是与训练数据输入模块112相同的模块。
97.e.使用测试数据评估经训练的模型
98.机器学习工具102可包括用于利用测试数据108评估模型的评估模块118。评估模块118可通过分析先前未见过的测试数据108的特征来评估经训练的模型。测试数据108可包括可提供测试数据的真实身份的元数据。这样,机器学习工具102可将经训练的模型的输出与真实数据进行比较。这样,机器学习工具102可计算经训练的模型的准确度。图形用户界面可显示模型的百分比准确度。例如,对于花朵分类器,测试数据108可包含不同类型的花朵的多个图像。评估模块118可通过将花朵分类器的输出与地面实况进行比较来测试花朵分类器模型的准确度。机器学习工具102允许按准确度对类别进行排序。
99.机器学习工具102的另一特征是其允许开发人员将图像拖动到经训练的模型中并分析输出。图8示出了允许用户拖动图像以测试经训练的模型的拖放界面824。其他模型可提供类似的界面以测试其他类型的文件(例如,声音分类器可允许将声音片段拖动到拖放界面中以对声音文件进行分类)。这为开发人员提供关于该模型的单个预测的细节。开发人员可能想要使用来自电子设备(例如,智能电话)上的相机的图像。机器学习工具102提供实况模式,其中开发人员可切换到允许从智能电话捕获图像并测试图像的模式。以前,开发人员会不得不编写应用来在具有模型的智能电话上播放,然后使用智能电话上的应用并编写代码以在那里显示一些图形详细信息。机器学习模型102是基于应用程序的,并且允许在开发期间容易地在智能电话上测试模型,而不为应用编写单行代码。
100.f.存储和导出经训练的模型
101.机器学习工具102可包括用于将经训练和评估的模型存储在计算系统的存储器中的存储模块120。模型也可存储在能经由网络(即,互联网)访问的云存储中。
102.机器学习工具102也可包括导出/导入模块122。导出/导入模块122可将经训练的模型转换成代码行以用于结合到应用中。经训练模型导出可在集成开发环境中完成。代码导出可与将经训练的模型的图标拖动到应用的文件夹中一样简单。
103.导出/导入模块122也可允许开发人员导入保存在计算设备的存储器中的模型。一旦导入,就可利用附加训练数据对模型进行重新训练,并且利用附加测试数据对模型进行重新评估。
104.ii.用于使用图形用户界面生成机器学习模型的技术
105.该技术公开了一种用于容易地构建机器学习模型的图形用户界面。这些技术可由
可能具有很少机器学习语言编程经验的新手开发人员使用。该用户界面引导开发人员基于模型的类型选择模板、选择训练数据、标识测试数据以及导出经训练的模型。所述技术也可利用来自一个或多个设备的实时传感器信息来评估经训练的模型。图9示出了用于使用图形用户界面生成机器学习模型的技术的过程900的流程图。该方法可在电子设备(例如,便携式计算机、台式计算机或平板电脑)上执行。
106.在902,该技术可包括接收对多个模板中的模板作为机器学习模型的选择,每个模板对应于数据类型的分类。该选择可经由用户界面进行。模板可呈现在图形用户界面上。模板可由多个分类的分类呈现。分类可包括图像、文本、声音、运动和表格。可通过与指向设备(例如,鼠标、轨迹球、触摸屏显示器)进行交互来选择模板。可通过突出显示或改变显示器上图标和标签的颜色和/或阴影来在图形用户界面上指示对模板的选择。
107.在904,该技术可包括标识多个训练数据的位置,该多个训练数据包括第一多个结构化数据记录和第一相关联元数据记录,第一相关联元数据记录中的每个元数据记录至少标识第一多个结构化数据记录的分类标签。可利用下拉菜单在图形用户界面上定位训练数据。训练数据可位于存储在计算设备的存储器中的文件夹中。训练数据可位于基于云的网络中的数据库中的文件夹中。开发人员通过将所选择的训练数据拖放到图形用户界面上的所设计的训练数据框来标识训练数据的位置。
108.在一些实施方案中,该技术可包括分析所述多个训练数据以确定分类的数量。在一些实施方案中,该技术可确定所述多个分类中的每一者是否符合所述多个训练数据。这样,如果例如为图像分类器标识音频训练数据,则该技术可生成错误或警报,反之亦然。该技术还可包括选择多个所确定分类中的一个或多个分类用于训练机器学习(ml)模型。开发人员可能想要在训练模型时排除一个或多个所确定的分类。例如,开发人员可从花朵分类器的分类中排除“玫瑰”。可在图形用户界面上显示所确定的分类的数量。
109.在906,该技术可包括通过分析第一多个结构化数据记录和第一相关联元数据记录中的每一者来训练机器学习(ml)模型。所述训练可为一个或多个元素分析所述多个结构化数据记录和第一相关联元数据记录中的每一者,以便训练模型。元素可取决于分类器的类型。例如,可为图像分类器标识图像元素,可为文本分析器使用文本元素等。
110.在908,该技术可包括标识多个验证数据的位置,该多个验证数据包括第二多个结构化数据记录和第二相关联元数据记录,第二相关联元数据记录中的每个元数据记录至少标识第二多个结构化数据记录的分类标签。可利用下拉菜单在图形用户界面上定位验证数据。验证数据可位于存储在计算设备的存储器中的文件夹中。验证数据可位于基于云的网络中的数据库中的文件夹中。开发人员通过将所选择的训练数据拖放到图形用户界面上的所设计的训练数据框来标识验证数据的位置。该技术也可接收可从训练数据的一部分中自动选择所述多个验证数据的选择(即,10%的训练数据可被隐抑并且不用于训练而是用于验证)。
111.在910,该技术可包括通过分析第二多个结构化数据记录中的每一者以生成第二多个结构化数据记录中每一者的标识来验证经训练的模型。可通过将所标识的分类与第二多个结构化数据记录的元数据中的分类标签进行比较来确定经训练数据的准确度。可针对每个数据分类计算精准率和召回率。
112.在912,该技术可包括通过将第二多个结构化数据记录中每一者的标识与第二相
关联元数据记录进行比较以生成准确度得分来显示准确度得分。验证准确度可在训练期间被计算并作为数值百分比显示在图形用户界面上,或在线图中相对于迭代次数绘制。可针对每个数据分类显示精准率和召回率。
113.在914,该技术可包括生成用于经训练的模型的代码,该代码包括经训练的模型并且能够在移动设备上执行以对从移动设备的传感器获得的数据进行分类。在各种实施方案中,代码可以是可执行代码。代码可被保存为文件。由于文件可包括可执行代码,因此模型可在其他移动设备(例如,智能电话、可穿戴设备或平板计算设备)上运行。这样,开发人员可针对一个或多个β测试器在设备上测试机器学习模型,而不必完成应用的编码。利用从其他移动设备接收的图像、声音或运动进行测试从移动设备上的实际传感器为开发人员提供了关于模型如何工作的见解。传感器可包括相机、麦克风、运动传感器(例如,加速度计)、键盘、小键盘或触摸屏显示器。在一些实施方案中,该技术可从所述一个或多个β用户接收关于由模型提供的分类的准确度的反馈。
114.在一些实施方案中,该技术可包括分析所述多个训练数据以确定多个分类,每个分类对应于不同的分类标签。该技术可包括比较所述多个训练数据的分类标签以确定与数据类型的类别的一致性。
115.在一些实施方案中,该技术可包括分析所述多个训练数据以确定多个分类,每个分类对应于不同的分类标签。该技术可包括在图形用户界面上显示所述多个训练数据的分类的列表。该技术可包括接收对多个分类中一个或多个分类用于训练机器学习模型的选择。
116.在一些实施方案中,该技术可包括在图形用户界面上显示所述多个训练数据的分类的列表。该技术可包括接收对多个分类中一个或多个分类用于训练机器学习模型的选择。
117.在一些实施方案中,该技术可包括通过选择与训练数据相关联的图标并将图标拖动到图形用户界面上的指定区域上来接收所述多个训练数据的位置的标识。
118.在一些实施方案中,标识所述多个验证数据的位置包括自动选择训练数据的随机部分。可阻止训练数据的随机部分训练机器学习模型。
119.在一些实施方案中,该技术可包括接收将从训练数据中自动选择所述多个验证数据的选择。该技术可包括阻止预选百分比的训练数据训练。所阻止的训练数据可包括第二多个结构化数据记录。该技术可包括通过分析第二多个结构化数据记录中的每一者以生成第二多个结构化数据记录和第二相关联元数据记录中每一者的标识来验证经训练的模型。该技术可包括通过将第二多个结构化数据记录中每一者的标识与第二相关联元数据记录进行比较来生成准确度得分。
120.该技术可包括检测达到所述多个训练数据的阈值。阈值可以是生成机器语言模型所需的训练数据记录的数量。该技术可包括在标识阈值量的训练数据时自动训练机器学习模型。该技术可包括生成用于经训练的模型的代码。
121.在各个方面,一种计算设备包括一个或多个存储器以及与所述一个或多个存储器通信并且被配置为执行存储在所述一个或多个存储器中的指令以执行本文所公开的操作中任一者的一个或多个处理器。
122.在各个方面,一种非暂态计算机可读介质存储多个指令,所述多个指令在由计算
设备的一个或多个处理器执行时使计算设备的所述一个或多个处理器执行包括本文所公开的操作中任一者的操作。
123.应当理解,图9所示的具体步骤提供了根据本公开的各种实施方案的用于捕获和聚合用于第三方应用的操作量度的特定技术。根据另选的实施方案也可以执行其他步骤序列。例如,本发明的另选的实施方案可以按照不同次序执行上文简述的步骤。此外,图9所示的各个步骤可以包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种序列执行。还有,取决于特定应用,可添加或移除附加步骤。本领域的普通技术人员将认识到有很多变型、修改和另选形式。
124.iii.示例性设备
125.本文所述的方法中的每一者可由计算机系统实现。这些方法的每个步骤可由计算机系统自动执行,和/或可具有涉及用户的输入/输出。例如,用户可为方法中的每个步骤提供输入,并且这些输入中的每一者可响应于请求此类输入的特定输出,其中输出由计算机系统生成。可响应于对应的请求输出而接收每个输入。此外,输入可作为数据流从用户、从另一计算机系统接收、从存储器位置检索、通过网络检索、从web服务请求等。同样,输出可作为数据流提供给用户、提供给另一计算机系统、保存在存储器位置中、通过网络发送、提供给web服务等。简而言之,本文所述方法的每个步骤可由计算机系统执行,并且可涉及任何数量的向和自计算机系统的输入、输出和/或请求,其可涉及用户也可不涉及用户。不涉及用户的那些步骤可以说是由计算机系统自动执行而没有人工干预。因此,按照本公开可以理解,本文所述的每种方法的每个步骤可被改变以包括向用户和自用户的输入和输出,或者可由计算机系统自动完成而没有人工干预,其中由处理器进行任何确定。此外,本文所述的方法中的每一者的一些实施方案可被实现为存储在有形非暂态存储介质上以形成有形软件产品的指令集。
126.计算设备可以是膝上型计算机,其具有本地地保存在存储器中的数据。另选地,多个计算设备可用于利用位于云服务中的数据进行分布式处理。机器学习工具也可在平板电脑上执行。
127.图10为示例性设备1000的框图,该设备可以是移动设备,在该移动设备上可执行所述技术。设备1000通常包括计算机可读介质(存储器)1002、处理系统1004、输入/输出(i/o)子系统1006、无线电路1008以及包括扬声器1050和麦克风1052的音频电路1010。这些部件可通过一个或多个通信总线或信号线1003而被耦接。设备1000可为任何便携式电子设备,包括手持式计算机、平板电脑、移动电话、膝上型计算机、平板设备、媒体播放器、可穿戴设备、个人数字助理(pda)、钥匙扣卡、车钥匙、门禁卡、多功能设备、移动电话、便携式游戏设备、汽车显示单元等,其包括这些物品中的两个或更多个物品的组合。
128.设备1000可以是具有显示器1054的多功能设备。根据一些实施方案,显示器1054可为触摸屏。触摸屏任选地在用户界面(ui)内显示一个或多个图形。在一些实施方案中,用户能够通过例如用一个或多个手指或者用一个或多个触控笔在图形上作出手势来选择这些图形中的一个或多个。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备1000发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与
图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。设备1000可任选地还包括一个或多个物理按钮,诸如“home”按钮、或菜单按钮。任选地,菜单按钮用于导航到任选地在计算设备1000上被执行的一组应用中的任何应用。另选地,在一些实施方案中,菜单按钮被实现为被显示在触摸屏上的图形用户界面中的软键。
129.设备1000可结合显示器1054。该显示器1054可以是液晶显示器(lcd)、有机发光二极管(oled)、有源矩阵有机发光二极管(amoled)、超有源矩阵发光二极管(amoled)、薄膜晶体管(tft)、平面内开关(ips)或薄膜晶体管液晶显示器(tft-lcd),其通常可在计算设备中找到。显示器1054可以是计算设备的触摸屏显示器。
130.在一个实施方案中,设备1000包括触摸屏、菜单按钮、用于对设备开关机和锁定设备的下压按钮、一个或多个音量调节按钮、用户身份模块(sim)卡槽、耳麦插孔和对接/充电外部端口。下压按钮任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备1000还通过麦克风接受用于激活或去激活某些功能的语音输入。设备1000还任选地包括用于检测触摸屏上的接触的强度的一个或多个接触强度传感器,和/或用于为设备1000的用户生成触觉输出的一个或多个触觉输出发生器。
131.在一种例示性配置中,设备1000可包括至少一个计算机可读介质(存储器)1002和一个或多个处理单元(或处理器)1018。处理器1018可在硬件、软件或其组合中适当地实现。处理器1018的计算机可执行指令或固件具体实施可包括以任何合适的编程语言编写的计算机可执行指令,以执行所述的各种功能。
132.计算机可读介质(存储器)1002可存储能够在处理器1018上加载和执行的程序指令以及在执行这些程序过程中所生成的数据。根据设备1000的配置和类型不同,存储器1002可为易失性存储器(诸如随机存取存储器(ram))和/或非易失性存储器(诸如只读存储器(rom)、闪存存储器等)。设备1000可具有一个或多个存储器。设备1000还可包括附加的可移除存储装置和/或不可移除存储装置,包括但不限于磁性存储装置、光盘和/或磁带存储装置。磁盘驱动器及其相关联的非暂态计算机可读介质可为设备提供计算机可读指令、数据结构、程序模块及其他数据的非易失性存储。在一些具体实施中,存储器1002可包括多种不同类型的存储器,诸如静态随机存取存储器(sram)、动态随机存取存储器(dram)或rom。虽然本文所述的易失性存储器可以被称为ram,但是从主机和/或电源拔下后将不会保留其中所存储的数据的任何易失性存储器都是适当的。
133.存储器1002和附加存储装置不管是可移除还是不可移除的,均为非暂态计算机可读存储介质的示例。例如,非暂态计算机可读存储介质可包括易失性或非易失性、可移除或不可移除介质,其通过任何方法或技术实现为用于存储信息诸如计算机可读指令、数据结构、程序模块或其他数据。存储器1002和附加存储装置均为非暂态计算机存储介质的示例。可存在于设备1000中的附加类型的计算机存储介质可包括但不限于:相变ram(pram)、sram、dram、ram、rom、电可擦除可编程只读存储器(eeprom)、闪存存储器或其他存储器技术、光盘只读存储器(cd-rom)、数字视频光盘(dvd)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备或任何其他可用于存储所期望信息并可被设备1000访问
的介质。上述任意组合也应该包括在非暂态计算机可读存储介质的范围内。基于本文提供的公开和教导,本领域的普通技术人员能想到实现各种实施方案的其他方式和/或方法。然而,如上所述,计算机可读存储介质不包括暂态介质诸如载波等。
134.另选地,计算机可读通信介质可包括计算机可读指令、程序模块或在数据信号诸如载波或其他传输手段内传输的其他数据。然而,如本文所用,计算机可读存储介质不包括计算机可读通信介质。
135.设备1000还可包含通信连接件1008,该通信连接件允许设备1000经由一个或多个网络与数据存储库、另一设备或服务器、用户终端和/或其他设备进行通信。此类网络可包括许多不同类型的网络中的任一种或组合,诸如有线网络、互联网、无线网络、蜂窝网络、卫星网络、其他专用网络和/或公共网络或者它们的任意组合。设备1000还可包括i/o设备1006,诸如触摸输入设备、键盘、鼠标、笔、语音输入设备、显示器、扬声器、打印机等。
136.显然,图10所示的架构仅为设备1000的架构的一个示例,并且设备1000可具有比所示更多或更少的部件或不同的部件配置。图10中所示的各种部件可以硬件、软件或硬件和软件两者的组合来实现,其包括一个或多个信号处理电路和/或专用集成电路。
137.无线电路1008用于通过无线链路或网络来向一个或多个其他设备的常规电路(诸如,天线系统、射频(rf)收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、codec芯片组、存储器等)发送和接收信息。无线电路1008可使用各种协议,例如本文所述的协议。例如,无线电路1008可具有用于一种无线协议(例如,)的一个部件和用于另一种无线协议(例如,超宽带(uwb))的单独部件。不同的天线可用于不同的协议。
138.无线电路1008经由外围设备接口1016而被耦接至处理系统1004。接口1016可包括用于建立并保持外围设备和处理系统1004之间的通信的常规部件。通过无线电路1008所接收的语音信息和数据信息(例如,在语音识别或语音命令应用中)经由外围设备接口1016而被发送至一个或多个处理器1018。一个或多个处理器1018能够配置为处理被存储在计算机可读介质(存储器)1002上的一个或多个应用程序1034的各种数据格式。
139.外围设备接口1016将设备的输入外围设备和输出外围设备耦接到处理器1018和计算机可读介质1002。一个或多个处理器1018经由控制器1020与计算机可读介质1002进行通信。计算机可读介质1002可为能够存储代码和/或数据以供一个或多个处理器1018使用的任何设备或介质。介质1002可包括存储器分级结构,包括高速缓存、主存储器和辅存储器。
140.设备1000还可包括用于为各种硬件部件供电的电力系统1042。电力系统1042可包括电力管理系统、一个或多个电源(例如,电池、交流电(ac))、再充电系统、电力故障检测电路、功率变换器或逆变器、电源状态指示器(例如,发光二极管(led))以及通常与移动设备中的电力的生成、管理和分配相关联的任何其他部件。
141.在一些实施方案中,设备1000包括相机1044。在一些实施方案中,设备1000包括传感器1046。传感器1046可包括加速度计、罗盘、陀螺仪、压力传感器、音频传感器、光传感器、气压计等。传感器1046可用于感测位置方面,诸如位置的听觉标记或光标记。
142.在一些实施方案中,设备1000可包括有时被称为gps单元1048的gps接收器。移动设备可使用卫星导航系统诸如全球定位系统(gps)来获得定位信息、定时信息、高度、或其
他导航信息。在操作期间,gps单元可接收来自绕地球飞行的gps卫星的信号。gps单元对信号进行分析,以对传输时间和距离进行估计。gps单元可确定移动设备的当前定位(当前位置)。基于这些估计,移动设备可确定位置方位、高度、和/或当前速度。位置方位可为地理坐标,诸如纬度信息和经度信息。
143.一个或多个处理器1018运行被存储在介质1002中的各种软件组件,以执行设备1000的各种功能。在一些实施方案中,软件部件包括操作系统1022、通信模块(或指令集)1024、位置模块(或指令集)1026、机器学习模块1028、交互式开发环境1030、以及其他应用(或指令集)1034。
144.操作系统1022可以是任何合适的操作系统,包括ios、macintosh操作系统(mac os)、darwin、quatros实时操作系统(rtxc)、linux、unix、os x、microsoft windows或嵌入式操作系统诸如vxworks。操作系统可包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种程序、指令集、软件部件、和/或驱动器,并且促进各种硬件和软件部件之间的通信。操作系统1022是管理计算机硬件和软件资源并为计算机程序提供通用服务的系统软件。例如,操作系统1022可管理用户界面模块与一个或多个用户应用之间的交互。还可在各种各样的操作环境中实施各种实施方案,在一些情况下,操作环境可包括可用于操作多个应用中的任一个的一个或多个用户计算机、设备或处理设备。用户设备或客户端设备可包括许多通用个人计算机中的任何一个,诸如运行标准操作系统的台式计算机或膝上型计算机,以及运行移动软件并能够支持多个联网协议和即时消息协议的蜂窝设备、无线设备和手持设备。此系统还可包括运行各种可商购获得的操作系统和用于目的诸如开发和数据库管理等的其他已知应用程序中的任何一者的多个工作站。这些设备还可包括其他电子设备,诸如虚拟终端、瘦客户端、游戏系统以及能够经由网络进行通信的其他设备。
145.通信模块1024帮助通过一个或多个外部端口1036或经由无线电路1008与其他设备进行通信,并且包括用于处理从无线电路1008和/或外部端口1036接收的数据的各种软件组件。外部端口1036(例如,通用串行总线(usb)、火线、闪电连接器、60引脚连接器等)适用于直接地或通过网络(例如,互联网、无线局域网(lan)等)间接地耦接至其他设备。
146.位置/运动模块1026可帮助确定设备1000的当前位置(例如,坐标或其他地理位置标识符)和运动。现代定位系统包括基于卫星的定位系统,诸如全球定位系统(gps)、基于“小区id”的蜂窝网络定位、和基于wi-fi网络的wi-fi定位技术。gps还依赖于多个卫星的可见度来确定位置估计,其在室内或在“城市峡谷”中可能是不可见的(或具有微弱信号)。在一些实施方案中,位置/运动模块1026从gps单元1048接收数据并分析信号,以确定移动设备的当前位置。在一些实施方案中,位置/运动模块1026可使用wi-fi或蜂窝位置技术来确定当前位置。例如,可使用对附近小区地点和/或wi-fi接入点的了解及对它们的位置的了解来估计移动设备的位置。识别wi-fi或蜂窝式发射器的信息被接收在无线电路1008处并被传送至位置/运动模块1026。在一些实施方案中,位置模块接收一个或多个发射器id。在一些实施方案中,可将发射器id的序列与参考数据库(例如,小区id数据库、wi-fi参考数据库)进行比较,该参考数据库将发射器id映射或关联至对应发射器的位置坐标,并基于对应发射器的位置坐标来计算设备1000的估计位置坐标。不论使用何种特定定位技术,位置/运动模块1026均接收能够从其中得出位置方位的信息,解译该信息,并返回位置信息,诸如地
理坐标、纬度/经度、或其他位置方位数据。
147.电子设备可包括机器学习模块1028。机器学习模块1028接收对一个或多个模型模板的选择、输入多个训练数据、在训练数据上训练模型、验证模型并生成用于经训练的模型的可执行文件。
148.电子设备还可包括交互式开发环境1030。操作系统1022中的交互式开发环境可包括供开发人员生成软件应用的软件开发工具套件。集成开发环境1030可支持用于以下编程语言的源代码:c、c 、objective-c、objective-c 、java、applescript、python、ruby、resedit(rez)和swift,具有各种编程模型,包括但不限于cocoa、carbon和java。一些集成开发环境还支持gnu pascal、free pascal、ada、c#、perl、和d。
149.集成开发环境1030可包括开发人员文档、内置界面构建器、用于构造图形用户界面的应用。集成开发环境的版本可包括gnu编译器集合的修改版本。集成开发环境1030可支持微型计算机、便携式计算系统操作系统、智能电话、可穿戴设备、媒体存取设备和软件开发套件的开发。集成开发环境1030还可包括可下载模拟器。
150.移动设备上的所述一个或多个应用程序1034可包括被安装在设备1000上的任何应用,包括但不限于浏览器、地址簿、联系人列表、电子邮件、即时消息、文字处理、键盘仿真、桌面小程序、支持java的应用、加密、数字版权管理、语音识别、语音复制、音乐播放器(回放被存储在一个或多个文件诸如mp3文件或高级音频编码(aac)文件中的录制音乐),等等。
151.可存在其他模块或指令集(未示出),诸如图形模块、时间模块等。例如图形模块可以包括用于在显示器表面上对图形对象(包括但不限于文本、网页、图标、数字图像、动画等)进行呈现、动画显示和显示的各种常规软件组件。在另一个示例中,定时器模块可为软件定时器。也可在硬件中实现定时器模块。时间模块可针对任意数量的事件来维持各种定时器。
152.i/o子系统1006可被耦接至可为触敏显示器的显示系统(未示出)。显示系统在gui中向用户显示视觉输出。视觉输出可包括文本、图形、视频、以及它们的任何组合。视觉输出中的一些或所有视觉输出可对应于用户界面对象。尽管显示器可使用led(发光二极管)技术、lcd(液晶显示器)技术或lpd(发光聚合物显示器)技术,但在其他实施方案中可使用其他显示技术。
153.在一些实施方案中,i/o子系统1006可包括显示器和用户输入设备诸如键盘、鼠标和/或触控板。在一些实施方案中,i/o子系统1006可包括触敏显示器。触敏显示器还可基于触觉和/或触感接触来接受来自用户的输入。在一些实施方案中,触敏显示器形成用于接受用户输入的触敏表面。触敏显示器/表面(连同介质1002中的任何相关联的模块和/或指令集)检测触敏显示器上的接触(和接触的任何移动或释放),并将所检测到的接触转换为与用户界面对象的交互,诸如在接触发生时被显示在触摸屏上的一个或多个软键。在一些实施方案中,触敏显示器和用户之间的接触点对应于用户的一个或多个手指。用户可使用诸如触笔、笔、手指等任何合适的物体或附属件接触触敏显示器。触敏显示器表面可使用任何合适的触敏技术来检测接触及其任何移动或释放,这些技术包括电容式技术、电阻式技术、红外技术和表面声波技术、以及其他接近传感器阵列或其他元件,用于确定与触敏显示器的一个或多个接触点。
154.此外,i/o子系统还可被耦接至一个或多个其他物理控制设备(未示出),诸如按钮、按键、开关、摇杆按钮、拨号盘、滑动开关、操作杆、led等,用于控制或执行各种功能,诸如功率控制、扬声器音量控制、电话铃声响度、键盘输入、滚动、保持、菜单、锁屏、清除和结束通信等。在一些实施方案中,除了触摸屏之外,设备1000可包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板可为与触敏显示器分开的触敏表面、或者为由该触敏显示器形成的触敏表面的延伸部。
155.在一些实施方案中,可使用在用户的设备上执行的应用来执行本文描述的一些或全部操作。电路、逻辑模块、处理器和/或其他部件可被配置为执行本文描述的各种操作。本领域的技术人员能理解,根据具体实施,可通过具体部件的设计、设置、互连、和/或编程来完成此类配置,并且再次根据具体实施,所配置的部件可针对不同操作为可重新配置的或不是可重新配置的。例如,可通过提供适当的可执行代码来配置可编程处理器;可通过适当地连接逻辑门和其他电路元件来配置专用逻辑电路;等等。
156.大多数实施方案利用至少一个本领域技术人员熟悉的网络,使用各种各样可商购获得的协议中的任何一种协议来支持通信,诸如,传输控制协议/互联网协议(tcp/ip)、开放系统互连模型(osi)、文件传输协议(ftp)、通用即插即用(upnp)、网络文件系统(nfs)、通用互联网文件系统(cifs)和appletalk。网络可以是例如局域网、广域网、虚拟专用网络、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络及其任何组合。
157.在利用网络服务器的实施方案中,网络服务器可运行各种服务器或中间层应用中的任何一者,包括超文本传输协议(http)服务器、文件传输协议(ftp)服务器、通用网关接口(cgi)服务器、数据服务器、java服务器和业务应用服务器。一个或多个服务器还可能够响应于来自用户设备的请求而执行程序或脚本,诸如通过执行一个或多个应用程序,所述一个或多个应用程序可被实现为以任何编程语言诸如c、c#或c 或者任何脚本语言诸如perl、python或tcl以及它们的组合编写的一个或多个脚本或程序。一个或多个服务器还可包括数据库服务器,包括但不限于可从和商购获得的那些。
158.还可对此类程序进行编码并使用载波信号进行传输,所述载波信号适于经由符合各种协议的有线网络、光网络和/或无线网络来进行传输,包括因特网。同样地,根据本发明的实施方案的计算机可读介质可使用通过此类程序编码的数据信号来创建。用程序代码编码的计算机可读介质可封装有兼容设备或独立于其他设备提供(例如,经由互联网下载)。任何此类计算机可读介质可存在于或位于单个计算机产品(例如,硬盘驱动器、cd或整个计算机系统)内,并且可存在于或位于系统或网络内的不同计算机产品内。计算机系统可包括监视器、打印机或用于将本文所提及的任何结果提供给用户的其他合适的显示器。
159.环境可包括各种数据存储库和其他存储器和存储介质,如上所述。这些可驻留在各个位置,诸如在一个或多个计算机本地的存储介质上或者远离网络上的任何或全部计算机的存储介质上(和/或驻留在一个或多个计算机中)。在特定的一组实施方案中,信息可驻留在本领域技术人员熟悉的存储区域网络(san)中。类似地,用于执行归属于计算机、服务器或其他网络设备的功能的任何必要文件可以根据需要本地存储以及/或者远程存储。当
系统包括计算机化设备时,每个此类设备可包括可经由总线电耦接的硬件元件,所述元件包括例如至少一个中央处理单元(cpu)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘),以及至少一个输出设备(例如,显示设备、打印机或扬声器)。此类系统还可包括一个或多个存储设备,诸如磁盘驱动器、光存储设备和固态存储设备诸如ram或rom,以及可移除媒体设备、存储卡、闪存卡,等等。
160.此类设备还可包括如上所述的计算机可读存储介质读取器、通信设备(例如,调制解调器、网卡(无线或有线)、红外通信设备等)和工作存储器。计算机可读存储介质读取器可连接至或配置为接收表示远程、本地、固定和/或可移除的存储设备的非暂态计算机可读存储介质,以及用于临时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种设备通常还可包括位于至少一个工作存储器设备内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或浏览器。应当理解的是,另选实施方案可具有根据上文所述的许多变型形式。例如,还可使用定制硬件,和/或可在硬件、软件(包括便携式软件,诸如小应用程序)或两者中实现特定元件。此外,可使用与其他设备诸如网络输入/输出设备的连接。
161.在本专利申请中所描述的任何软件组件或功能可被实现为由处理器执行的软件代码,该处理器使用任何合适的计算机语言,诸如例如java、c、c 、c#、objective-c、swift、或使用例如常规的或面向对象的技术的脚本语言诸如perl或python。软件代码可作为一系列指令或命令而被存储在计算机可读介质上,以实现存储和/或传输。适当的非暂态计算机可读介质可包括随机存取存储器(ram)、只读存储器(rom)、磁介质(诸如硬盘驱动器或软盘)、或光学介质(诸如光盘(cd)或dvd(数字多用盘))、闪存存储器等。计算机可读介质可为此类存储设备或传输设备的任何组合。
162.可在各种计算机可读存储介质上对结合本公开的各种特征的计算机程序进行编码;适当介质包括磁盘或磁带、光学存储介质,诸如光盘(cd)或dvd(数字多用盘)、闪存存储器等。编码有程序代码的计算机可读存储介质可与兼容设备一起被封装或从其他设备单独被提供。此外,可经由符合多种协议的有线光学和/或无线网络(包括互联网)来编码和传输程序代码,从而允许例如经由互联网下载进行分发。任何此类计算机可读介质可驻留在或位于单个计算机产品(例如,固态驱动器、硬盘驱动器、cd或整个计算机系统)内,并且可存在于或位于系统或网络内的不同计算机产品内。计算机系统可包括监视器、打印机或用于将本文所提及的任何结果提供给用户的其他合适的显示器。
163.相应地,说明书和附图应被视为具有例示性的而非限制性的意义。然而,显而易见的是,在不脱离权利要求中阐述的本公开的更广泛的实质和范围的情况下,可对其进行各种修改和改变。
164.如上所述,本技术的一个方面在于收集和使用得自各种来源的数据以在非矩形区域中显示矩形内容。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括人口统计数据、基于定位的数据、电话号码、电子邮件地址、twitter id、家庭地址、与用户的健康或健身等级相关的数据或记录(例如,生命信号测量、药物信息、锻炼信息)、出生日期、或任何其他识别信息或个人信息。
165.本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,
个人信息数据可用于显示关于第三方应用的操作量度的信息。因此,可在显示器上向用户呈现此类个人信息数据的使用。此外,本公开还预期个人信息数据有益于用户的其他用途。例如,健康和健身数据可用于向用户的总体健康状况提供见解,或者可用作使用技术来追求健康目标的个人的积极反馈。
166.本公开设想负责采集、分析、公开、传输、存储或其他使用此类个人信息数据的实体能遵守既定的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。此类政策应该能被用户方便地访问,并应随着数据的采集和/或使用变化而被更新。来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。此外,应在收到用户知情同意后进行此类采集/共享。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应当调整政策和实践,以便采集和/或访问的特定类型的个人信息数据,并适用于包括管辖范围的具体考虑的适用法律和标准。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(hipaa);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。因此,在每个国家应为不同的个人数据类型保持不同的隐私实践。
167.不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就第三方应用评估技术而言,本发明技术可被配置为在注册服务期间或之后任何时候允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集。又如,用户可选择不提供将显示的个人信息。又如,用户可选择限制个人数据的数量来维持或完全禁止显示个人数据。除了提供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据能被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
168.此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除特定标识符(例如,出生日期等)、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别收集位置数据)、控制数据如何被存储(例如,在用户之间聚合数据)、和/或其他方法来促进去标识。
169.因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最低数量的个人信息诸如与用户相关联的设备所请求的内容、对第三方应用评估技术可用的其他非个人信息或公开可获得的信息来推断偏好,从而选择内容并将该内容递送至用户。
170.其他变型形式在本公开的实质内。因此,尽管所公开的技术容易受到各种修改和另选构造的影响,但是其某些例示的实施方案在附图中示出并且已经在上面详细描述。然
而,应当理解,并不旨在将本公开限制于所公开的特定形式,相反,其目的在于覆盖落入由所附权利要求所限定的本公开的实质和范围内的所有修改、另选构造和等同形式。
171.在描述所公开的实施方案的上下文中(特别是在下面的权利要求书的上下文中)使用术语“一”和“一个”和“该”以及类似的指示词将被解释为覆盖单数和复数,除非另有说明或与上下文明显矛盾。除非另有说明,否则术语“包含”、“具有”、“包括”和“含有”应被解释为开放式术语(即,意思为“包括但不限于”)。术语“连接”被解释为即使有干预的东西,也被部分或全部地包含在内、附接或接合在一起。短语“基于”应当被理解为开放式的,并且不以任何方式进行限制,并且旨在在适当的情况下被解释或以其他方式理解为“至少部分地基于”。除非本文另有说明,否则本文中对数值范围的叙述仅仅旨在用作单独提及落入该范围内的每个单独值的简单方法,并且每个单独的值被并入说明书中,如同在本文中单独引用。本文描述的所有方法能够以任何合适的顺序执行,除非本文另有说明或以其他方式与上下文明显矛盾。除非另有声明,否则本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅仅旨在更好地说明本公开的实施方案,并且不会限制本公开的范围。说明书中的任何语言都不应被解释为指示任何未声明的元素对于本公开的实践是必不可少的。
172.除非另外特别说明,否则析取语言诸如短语“x、y或z中的至少一者”在上下文中被理解为通常用于呈现项目、术语等,其可以是x、y或z,或它们的任何组合(例如,x、y和/或z)。因此,此类析取语言通常不旨在并且不应该暗示某些实施方案要求x中的至少一个、y中的至少一个或者z中的至少一个均各自存在。另外,除非另外特别说明,否则诸如短语“x,y和z中的至少一者”的联合语言也应理解为意指x、y、z或它们的任何组合,包括“x、y和/或z”。
173.本文描述了本公开的优选实施方案,包括发明人已知的用于执行本公开的最佳模式。在阅读前面的描述之后,那些优选实施方案的变型形式对于本领域的普通技术人员来说可变得显而易见。发明人期望技术人员适当地采用此类变型形式,并且发明人旨在以不同于本文具体描述的方式来实践本公开。因此,如适用法律所允许的,本公开包括所附权利要求中记载的主题的所有修改和等同形式。此外,除非在本文中另外指出或者明显与上下文矛盾,否则本公开包含上述元素的所有可能变型形式的任何组合。
174.本文引用的所有参考文献,包括出版物、专利申请和专利,均据此以引用方式并入本文,正如每篇参考文献被单独且具体地指示为以引用方式并入并且在本文全文阐述。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献