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

使用阶跃函数、位置相关噪声的机器学习模型分数模糊化的制作方法

2022-03-01 21:29:52 来源:中国专利 TAG:

使用阶跃函数、位置相关噪声的机器学习模型分数模糊化
1.相关申请
2.本技术要求于2019年4月30日提交的美国专利申请系列号16/399,677,美国专利申请系列号16/399,718,美国专利申请系列号16/399,735,美国专利申请系列号16/399,701和美国专利申请系列号16/399,665中的每一个的优先权,这些专利申请的内容全部通过引用并入于此。
技术领域
3.本文描述的主题涉及用于使用阶跃函数(step function)使机器学习模型的输出模糊的技术。


背景技术:

4.机器学习和其他类型的人工智能模型正在跨不同的应用和行业越来越多地部署。这样的模型提供了可以基于例如具有已知结果或特征的历史数据的分类。由这样的模型提供的分类(即,模型输出等)可以采取各种形式,包括布尔输出(例如,好/坏等),数值分数(例如,0.00到1,1到100等)或分组(例如,汽车,行人,人行横道等)。利用一些软件实现,即使在较大工作流的一部分时也可以截取这种模型的输出。这种拦截可以允许恶意行为者通过重复地提供样本输入数据直到接收到期望的分类(即使这种分类最终不准确)来操纵这种模型的分类。


技术实现要素:

5.制品被接收。特征从该制品中被提取,该特征又用于填充向量。然后该向量被输入到分类模型中以生成分数。然后分数使用阶跃函数被修改,使得真实分数不被模糊。此后,修改的分数能够被提供给消费应用或过程。
6.在一些变型中,向量中的特征可以在其被输入到分类模型中之前被减少。例如,特征可以使用随机投影矩阵、主成分分析或其他技术而被减少。
7.分类模型可以是使用训练数据集训练的、并且提供连续标度输出的机器学习模型。
8.分类模型可以将制品表征为对于访问、执行或继续执行是恶意的或良性的。如果制品被分类模型认为是恶意的,则可以防止对制品的访问或执行。
9.机器学习模型可以包括以下一种或多种:逻辑回归模型,神经网络,并发神经网络,递归神经网络,生成式对抗性网络,支持向量机,随机森林或贝叶斯模型。
10.阶跃函数可以将各种类型的噪声应用于分数,包括例如位置相关噪声。可以应用结合了阶跃函数的不同类型的阶跃函数/算法。
11.还描述了存储指令的非瞬态计算机程序产品(即,物理上体现的计算机程序产品),指令在由一个或多个计算系统的一个或多个数据处理器执行时使至少一个数据处理器执行本文中的操作。类似地,还描述了可以包括一个或多个数据处理器和耦合到该一个
或多个数据处理器的存储器的计算机系统。存储器可以临时或永久地存储使至少一个处理器执行这里描述的一个或多个操作的指令。此外,方法可以由单个计算系统内或分布在两个或更多个计算系统之间的一个或多个数据处理器来实现。这样的计算系统可以经由一个或多个连接,包括但不限于经由网络(例如,因特网,无线广域网,局域网,广域网,有线网络等)的连接,经由多个计算系统中的一个或多个之间的直接连接等来连接并且可以交换数据和/或命令或其他指令等。
12.本文描述的主题提供了许多技术优点。例如,当前主题提供了用于使ai/机器学习模型的输出模糊的增强技术。这种模糊化对于诸如恶意软件检测之类的应用尤其重要,因为它防止恶意行为者迭代地修改恶意文件或代码,直到该模型将这种文件或代码分类为安全执行或以其他方式访问的时候为止。
13.在附图和以下描述中阐述了本文所述主题的一个或多个变型的细节。所述主题的其他特征和优点将从说明书和附图以及从权利要求书中显而易见。
附图说明
14.图1是示出用于使来自分类模型的分数模糊的第一计算机实现的工作流的过程流程图;
15.图2是示出使用阶跃函数使来自分类模型的分数模糊的第一示例的示图;
16.图3是示出使用阶跃函数使来自分类模型的分数模糊的第二示例的示图;
17.图4是说明真实分数对模糊分数的示图;
18.图5是示出用于使来自分类模型的分数模糊的第二计算机实现的工作流的过程流程图;以及
19.图6是示出可以用于实现本主题的各方面的计算设备的示图。
具体实施方式
20.本主题涉及用于使基于软件的分类器的输出模糊的技术。在这点上,分类器可以是ai/机器学习模型,其输出表征到这种模型的输入的至少一个值。虽然当前主题提供了与用于检测恶意软件(“恶意软件”)的模型有关的示例,但是应当理解,除非另有说明,否则当前主题可以应用于利用包括例如自主交通工具导航系统、图像分析系统、生物计量安全系统、视频游戏欺骗规避系统等的模型的其他应用/工作流。
21.在一些情况下,分类模型的输出可以被恶意行为者截取并利用,作为对抗性攻击的一部分。例如,可以访问在执行分类模型的客户端和远程服务器之间交换的数据,使得可以对输入到分类模型中的数据(例如,文件、代码、制品等)做出小的改变,直到获得期望的结果(从恶意行为者的观点来看)为止。例如,恶意行为者可以自动地或通过手动修改来对封装恶意代码的文件做出小的改变,直到分类模型确定这种文件对于执行或以其他方式访问是安全的时候为止。
22.图1是示出了与用于分数模糊化的当前技术一起使用的示例计算机实现的工作流的过程流程图100。最初,可以接收(例如,从远程计算系统访问、加载、接收等)制品110。制品110可以是文件、文件的一部分、表征文件的元数据和/或源代码。该制品110可以由观察者解析或以其他方式处理。特别地,观察者可以从制品中提取120特征(有时称为属性或观
察结果),并将这些特征向量化130。此外,根据向量内特征的复杂度和/或数量,可以对该向量执行特征减少操作140,其减少这种向量的维数。特征减少操作140可以利用各种技术,包括但不限于主成分分析和随机投影矩阵,以减少向量内提取的特征的数量,同时当输入到分类模型150中时保持有用(即,用于分类目的等)。分类模型150可以采取许多形式,包括但不限于逻辑回归模型、神经网络(包括并发神经网络、递归神经网络、生成式对抗性网络等)、支持向量机、随机森林、贝叶斯模式等。分类模型150的输出可以是分数160,如下面进一步详细描述的,其可以被模糊170。如这里所使用的,除非另外指明,否则分数可以是数值,分类类型或集群,或其他字母数字输出,其进而可以由消费过程180或应用使用以采取某种后续动作。在一些变型中,在180处,向消费分数的实体提供所利用的阶跃函数,使得可以确定基础分数(即,逆向工程等)。在一些变型中,模糊分数可以由消费分数的实体在180处直接消费。对于恶意软件应用,该分数可以用于确定是否访问、执行、继续执行、隔离、或采取将防止软件和/或计算系统被恶意代码或封装在制品170内的其他信息感染或以其他方式渗入的某种其他补救动作。
23.图1进一步示出了分数190的截取。例如,当消费应用的api已知时,可以发生这种拦截;通过利用链接、nm、objdump来转储dll/so输出;通过使用各种反向编译器;通过观察执行期间的堆栈/堆/寄存器以用于功能调用行为等。也可以使用其他api(即,函数)发现技术。
24.在可以容易地确定模型150的输出的布置(例如,没有分数模糊化的单个模型150布置)中,恶意行为者可以使用分数160来修改制品195,并且重复该过程,直到对应的模型150具有期望的分数160为止。例如,修改的制品195可以封装恶意脚本,并且对制品110的小的改变可以导致对应的分类模型150将这种修改的制品195分类为良性的。
25.对制品150的修改可以以保持制品150的原始特征或性质的方式进行。在试图修改恶意文件(恶意软件)的行为者的示例中,任何修改必须使得恶意软件仍按预期操作。可以通过(例如)添加恶意文件的未使用部分,从恶意文件的未使用部分移除或更改恶意文件的未使用部分来进行此类修改。由于文件的这些部分未被使用,因此它们对文件的已实现行为没有影响,但是可能导致与模型150不同的分数160。可替换地或附加地,只要恶意软件的最终功能保持完整,也可以修改制品150的使用部分。
26.无论是手动地,还是在自动系统中,行为者或系统通常将做出许多小的改变,并从模型150获得新的分数160。在期望方向上移动了分数160的任何改变(即,在恶意软件示例中,将分数移动得更接近被解释为良性的值)被保持,而其他改变被丢弃。可以重复这样的迭代过程,直到制品110的累积变化导致分数150的累积变化为止,这实现了期望的效果。在此提供的模糊化技术可以通过用由在此的模糊化技术确定的分数160中的假的或误导性的改变来掩蔽对制品110的每个改变的真实效果来中断迭代改进的这个循环。
27.在170处,分数模糊化使输出分数变为新值。例如,参考图2的示图200,存在三个输出分数210,220,230。对于第一输出分数210(其对应于模糊的分数),可以有多个其他分数210’,210”等,当被模糊时,它们都产生相同的输出分数210。类似地,可以有其他分数220’ 220”,230’ 230”,当被模糊时,其导致不同的输出分数(分别为220,230)。作为示例,分数模糊化操作170可以使用将由模型150输出的各种分数160与特定输出分数(例如,分数210,220,230)相关联的函数。在一些情况下,函数可以是舍入函数。在其他情况下,可以使用更
复杂的函数,包括例如利用位置相关噪声的阶跃函数。利用下面的阶跃函数算法,初始分数在总分数范围中的“位置”确定最终分数将在哪里结束。从原始分数到最终分数的这种变化是噪声,并且该噪声完全由原始分数的位置确定。可以使用噪声图,使得输入分数被舍入或分仓,然后在噪声图中检查舍入/分仓的值,并且相关联的值作为模糊分数被返回。在一些变型中,输入向量的特征可以用作映射函数的附加输入,使得取决于原始分数和来自向量的一个或多个特征的值,不同的模糊分数将是结果。
28.所利用的阶跃函数的目标是对该模型的输入的小的改变,其通常将产生由对手(即,恶意行为者)改变的小的分数,导致没有明显的分数改变。
29.另一个这样的阶跃函数可以使用原始分数的某些方面来确定要添加到该分数的噪声的幅度和方向。例如,可以使用三角函数,例如简单的正弦或余弦函数。在计算了原始分数之后,可以对该分数计算该三角函数,并且将结果添加到真实分数以产生最终的模糊分数。噪声的绝对大小可以由系数限制,以确保噪声的整体分布落在某个期望的范围内。另外,对于在一个分类和另一个分类之间的边界附近的分数,可以注意使得该噪声不会导致分数翻过边界。为了避免这些类型的翻转,可以使用噪声衰减函数,使得当真实分数接近这样的分类边界时,将减小添加到真实分数的噪声的标度,使得它总是小于将引起分数翻转的标度。
30.下面提供了示例三角函数。应当理解,其他复杂的三角函数和/或其他类型的循环函数可以与当前主题一起使用。
31.简单三角噪声:f(分数)=分数 (a*sin(b*分数));其中a和b是由实施者选择的参数。a影响所添加的噪声的幅度,而b影响噪声函数在相似的输入分数之间变化有多快。
32.具有截断的三角噪声:f(分数,nearest_score_boundary)=分数 min(a*sin(b*分数),abs(分数-nearest_score_boundary-c));其中a和b如上,并且nearest_score_boundary是与表示两个分类之间的边界的输入分数最接近的分数。在正分值被解释为一类而负分值被解释为另一类的情况下,则分值边界将为零。c是由实现者选择的第三参数,其可以进一步限制分数模糊产生非常接近边界的值。该函数确保模糊分数永远不会越过分数边界。
33.具有衰减的三角噪声:f(分数)=分数 logistic_fn(abs(分数),theta)*a*sin(b*分数));其中a和b如上,logistic_fn是参数化的logistic函数,θ是逻辑函数的参数。逻辑函数产生0和1之间的值,使得当输入分数接近零时,逻辑函数的值也接近零。可以选择参数θ,使得逻辑函数仅在零的特定范围内衰减噪声,如实现者所期望的。
34.利用复杂的阶跃函数是有利的,因为它使得反向工程更加困难。图3是示出更复杂函数的输出的示图300,其中分数160(在模糊化之前)以明显随机的方式被更改(如模糊分数180线上所示)。作为这种函数的示例,表示特定分类的分数范围(例如,所有正分数或所有负分数等)可以被随机地切割成大量非常小的部分。然后可以将分数范围的每个部分随机地映射到相同评分范围中的不同输出。当分数160被模糊170时,该映射将用于将真实分数转换为模糊分数。该映射可以保留一段时间,使得对模型的重复查询将产生相同的模糊分数。这种函数的另一个例子可以在从真实分数到模糊分数的映射中使用来自简化特征向量140的信息。
35.利用当前的配置,保持了模糊分数170的最终分类。换句话说,在模糊化之后保持
正分数(表示模型输出良好),类似地,在模糊化之后保持负分数。
36.另一个样本模糊化等式如下:其中y是模糊分数170,x是原始分数160。该模糊化等式可以产生如图4的示图400所示的分数,其中线410表示原始分数160,其他值420对应于模糊分数170。
37.图5是过程流程图,其中在510处制品被接收。此后,在520,从制品中提取特征,使得可以用这些特征填充向量。接下来,在530,将向量输入到分类模型中以生成分数。在540,使用阶跃函数修改该分数以模糊其实际值。因此,在550,将经修改的分数提供给消费应用或过程。例如,消费应用或过程可以使用这样的分数来确定是否访问、执行或继续执行制品(即,它可以用于防止恶意软件渗入计算和/或软件系统等)。
38.图6是示出用于实现本文各个方面的样本计算设备体系结构的示图600。总线604可以用作互连硬件的其他所示组件的信息高速公路。标记为cpu(中央处理单元)的处理系统608(例如,给定计算机处或多个计算机/处理器核处的一个或多个计算机处理器/数据处理器等)可以执行计算和逻辑操作,该计算和逻辑操作是执行程序所需的。诸如只读存储器(rom)612和随机存取存储器(ram)616的非瞬态处理器可读存储介质可以与处理系统608通信,并且可以包括用于这里指定的操作的一个或多个编程指令。可选地,程序指令可以被存储在诸如磁盘、光盘、可记录存储器设备、闪存或其他物理存储介质的非瞬态计算机可读存储介质上。
39.在一个示例中,盘控制器648可以将一个或多个可选的盘驱动器连接到系统总线604。这些磁盘驱动器可以是外部或内部软盘驱动器如660,外部或内部cd-rom、cd-r、cd-rw或dvd,或固态驱动器如652,或外部或内部硬盘驱动器656。如前所述,这些不同的盘驱动器652,656,660和盘控制器是可选的设备。系统总线604还可以包括至少一个通信端口620,以允许与物理连接到计算系统或通过有线或无线网络在外部可用的外部设备进行通信。在一些情况下,至少一个通信端口620包括或以其他方式包括网络接口。
40.为了提供与用户的交互,本文所述的主题可以在具有显示设备640(例如crt(阴极射线管)或lcd(液晶显示器)监视器)和输入设备632的计算设备上实现,显示设备640用于经由显示接口614向用户显示从总线604获得的信息,输入设备632诸如键盘和/或定点设备(例如,鼠标或跟踪球)和/或触摸屏,用户可以通过触摸屏向计算机提供输入。也可以使用其他类型的输入设备632来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈,通过麦克风636的听觉反馈,或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。输入设备632和麦克风636可以通过输入设备接口628耦合到总线604并经由总线604传达信息。诸如专用服务器等其他计算设备可以省略显示器640和显示接口614,输入设备632,麦克风636和输入设备接口628中的一个或多个。
41.本文所述主题的一个或多个方面或特征可以在数字电子电路、集成电路、专门设计的专用集成电路(asic)、现场可编程门阵列(fpga)计算机硬件、固件、软件和/或其组合中实现。这些各个方面或特征可以包括在可编程系统上可执行和/或可解译的一个或多个计算机程序中的实现,可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向其传
输数据和指令。可编程系统或计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助于在各个计算机上运行的并且彼此具有客户端-服务器关系的计算机程序而产生的。
42.这些计算机程序也可以被称为程序,软件,软件应用,应用,组件或代码,包括用于可编程处理器的机器指令,并且可以用高级过程语言,面向对象的编程语言,功能编程语言,逻辑编程语言和/或用汇编/机器语言来实现。如这里所使用的,术语“机器可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备,诸如例如磁盘,光盘,存储器和可编程逻辑器件(pld),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质可以非瞬态地存储这样的机器指令,诸如例如像非瞬态固态存储器或磁性硬盘驱动器或任何等效存储介质那样。机器可读介质可以备选地或附加地以瞬态方式存储这样的机器指令,诸如例如与一个或多个物理处理器核相关联的处理器高速缓存或其他随机存取存储器。
43.为了提供与用户的交互,本文描述的主题可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器),以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或跟踪球)和/或触摸屏。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈,听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。
44.在以上描述和权利要求书中,诸如
“…
中的至少一个”或
“…
中的一个或多个”的短语可以出现在元素或特征的联合列表之后。术语“和/或”也可以出现在两个或更多个元素或特征的列表中。除非与所使用的上下文明显或隐含地矛盾,否则这样的短语旨在表示单独列出的元素或特征中的任一个或所列举的元素或特征中的任一个与所列举的其他元素或特征中的任一个的组合。例如,短语“a和b中的至少一个”;“a和b中的一个或多个”;和“a和/或b”分别旨在表示“单独的a,单独的b,或a和b一起”。类似的解释也旨在用于包括三个或更多个项目的列表。例如,短语“a、b和c中的至少一个”;“a、b和c中的一个或多个”;和“a、b和/或c”分别旨在表示“单独的a,单独的b,单独的c,a和b一起,a和c一起,b和c一起,或a和b和c一起”。此外,上文和权利要求书中使用的术语“基于”旨在表示“至少部分地基于”,使得未列举的特征或元素也是允许的。
45.根据期望的配置,本文描述的主题可以体现在系统、装置、方法和/或物品中。在以上描述中阐述的实现方式不代表与在此描述的主题一致的所有实现方式。相反,它们仅仅是与涉及所描述的主题的方面一致的一些示例。尽管上面已经详细描述了一些变化,但是其他修改或添加也是可能的。特别地,除了这里阐述的特征和/或变化之外,还可以提供其他特征和/或变化。例如,上述实现可以针对所公开的特征的各种组合和子组合和/或上面公开的若干其他特征的组合和子组合。此外,在附图中描绘的和/或在此描述的逻辑流程不一定需要所示的特定顺序或顺序次序来实现期望的结果。其他实现方式可以在以下权利要求的范围内。
再多了解一些

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

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

相关文献