技术领域
[0001] 本发明涉及一种用于从数据生成向量的装置,并且尤其涉及一种使用神经网络布置从输入数据生成向量的装置。
相关背景技术
[0002] 在临床环境中,能够比较患者数据(例如,患者记录)以便识别和测量它们之间的相似性和差异是有用的,并且有时是非常重要的。例如,通过从诊断为患有癌症的患者获得的医学成像扫描与从怀疑患有癌症的患者获得的医学成像扫描的比较,在两次扫描中识别共同或相异的特征可以是可能的,并且因此,提供对怀疑患有癌症的患者的诊断可以是可能的。然而,数据采集技术和数据采集模态的多样性意味着要比较来自不同患者的数据并不容易,尤其是如果数据采用不同格式的话。类似地,如果数据采用不同格式,则比较在不同时间从相同患者获取的数据并不容易。例如,将从一个患者获得的X射线扫描与从另一患者获得的MRI扫描进行比较并不是一项简单的任务。类似地,将医学成像扫描与书面报告进行比较并不是一项简单的任务,即使该书面报告可能包含医学成像扫描内包含的许多信息也是如此。上面讨论的困难在更一般的意义上延伸到医疗保健领域以外的其他类型的数据。
[0003] 因此,能够以更一致的方式比较数据将很有用。例如,能够比较从不同来源(例如,医学成像模态)获取的数据并且比较采用不同格式的数据将是有用的。与通过研究原始数据本身相比,能够以更有效的方式分析数据也将很有用。
具体实施方式
[0028] 根据本文公开的实施例,可以训练神经网络布置以将输入数据转换成向量。向量可以例如包括具有定义长度的向量,例如定义数量的向量元素或组分。在一些示例中,向量及其要转换的数据可以包括128个向量元素。在其他示例中,每个向量中可以包括更多或更少的向量元素。向量的每个元素表示输入数据的定义的特征。换句话说,向量的每个元素可以对应于或描述数据内包含的特定特征,使得不同向量中的对应元素与相同特征有关,并且因此可以与彼此比较。
[0029] 本文公开的本发明的一些方面是在临床环境的上下文中描述的,其中,医学数据(例如,与患者有关的医学数据)用于生成向量,使得可以将多个患者与彼此进行比较,或者可以比较在不同时间从单个患者获取的数据。然而,将显而易见的是,本文公开的实施例可以应用于除医学领域以外的领域。通常,可以根据本发明使用任何种类的数据来生成向量。
[0030] 根据第一方面,本文公开的实施例提供了一种用于转换数据的装置,并且根据第二方面,本文公开的实施例提供了一种用于评估数据的装置。数据的转换和该数据可以使用如下所述的相同装置来执行。
[0031] 参考附图,图1示出了可以用于转换和/或评估数据的装置100的框图。参考图1,装置100包括处理器102,所述处理器102控制装置100的操作并且可以实现本文描述的方法。装置100还可以包括存储器106,所述存储器106包括表示指令集的指令数据。存储器106可以被配置为存储采用可以由处理器102执行以执行本文描述的方法的程序代码的形式的指令数据。在一些实施方式中,指令数据可以包括多个软件和/或硬件模块,其均被配置为执行或用于执行本文描述的方法的个别或多个步骤。在一些实施例中,存储器106可以是还包括装置100的一个或多个其他组件(例如,处理器102和/或装置100的一个或多个其他组件)的设备的部分。在替代实施例中,存储器106可以是与装置100的其他组件分开的设备的部分。例如,装置100可以被实现为云计算环境的部分。
[0032] 装置100的处理器102可以被配置为与存储器106通信以执行指令集。指令集在由处理器102执行时可以使处理器执行本文描述的方法的步骤。处理器102可以包括一个或多个处理器、处理单元、多核处理器或模块,其被配置或编程为以本文所述的方式控制装置100。在一些实施方式中,例如,处理器102可以包括被配置用于分布式处理的多个处理器、处理单元、多核处理器和/或模块。本领域技术人员将领会,这样的处理器、处理单元、多核处理器和/或模块可以位于不同的位置,并且均可以执行本文所述的方法的不同步骤和/或单个步骤的不同部分。
[0033] 在一些实施例中,如图1所示,装置100可以包括至少一个用户接口104,其被配置为接收本文所述的任何用户输入。用户接口104可以允许装置100的用户手动录入与本文描述的方法有关的指令、数据或信息。在一些实施例中,用户接口104可以用于向用户呈现内容。用户接口104可以是使得装置100的用户能够提供用户输入(例如,将从其生成向量的输入数据)、与装置100交互和/或控制装置100的任何类型的用户接口。用户接口104可以包括一个或多个开关、一个或多个按钮、按键板、键盘、鼠标、触摸屏、麦克风或应用(例如,平板电脑或智能手机上的)或任何其他用户接口或用户接口的组合,其使得用户能够向装置提供数据和/或用户可以经由其消费来自装置100的信息。
[0034] 在一些实施例中,用户接口104(或装置100的另一用户接口)可以使得能够向装置100的用户呈现(或输出或显示)信息、数据或信号。如此,用户接口104可以用于向装置100的用户提供与根据本文的实施例的方法有关的信息或由其产生的信息。例如,在一些实施例中,用户接口104可以向用户显示所生成的向量。处理器102可以被配置为控制一个或多个用户接口104以提供由根据本文描述的实施例的方法产生的信息。例如,处理器102可以被配置为控制一个或多个用户接口104以使用本文描述的方法和/或本文描述的方法的任何其他输出来呈现(或输出或显示)数据。在一些实施例中,用户接口104可以包括显示屏、图形用户接口(GUI)或其他视觉呈现组件、一个或多个扬声器、一个或多个麦克风或任何其他音频组件、一个或多个灯,用于提供触觉反馈(例如,振动功能)的组件、或任何其他用户接口、或用户接口的组合,以用于向用户提供与该方法有关或由其产生的信息。在一些实施例中,用户接口104可以是还包括装置100的一个或多个其他组件(例如,处理器102、存储器
106和/或装置100的一个或多个其他组件)的设备的一部分。在替代实施例中,用户接口104可以是与装置100的其他组件分开的设备的部分。
[0035] 在一些实施例中,如图1所示,装置100还可以包括通信接口(或电路)108,其用于使得装置100能够与装置100内部或外部的任何接口、存储器和设备进行通信。通信接口108可以无线地或经由有线连接与任何接口、存储器和设备通信。
[0036] 将领会的是,图1示出了说明本公开内容的该方面所需的组件,并且在实际实施方式中,装置100可包括除所示组件之外的其他组件。例如,装置100可以包括用于为装置100供电的电池或其他电源,或者包括用于将装置100连接至主电源(mains power supply)的单元。
[0037] 如上所述,处理器102被配置为执行本文描述的方法的步骤。在一些实施例中,存储器(例如,存储器106)可以被配置为存储指令集,当所述指令集由装置100的处理器102执行时,所述指令集使处理器102执行如下所述的步骤或功能。根据一些实施例,处理器102被配置为训练神经网络布置以生成用于表示输入数据的第一向量,第一向量的每个元素表示输入数据的定义的特征。
[0038] 如根据本文的讨论将显而易见的,在一些实施例中,输入数据可以包括患者医疗数据。
[0039] 在一些实施例中,输入数据可以包括采用文本形式的数据。例如,在医疗环境中,可以将医疗报告(例如,由放射科医生撰写的报告)作为输入数据提供给装置100。在一些示例中,可以提供例如包含文本数据和数字数据二者的表格和/或图表作为输入数据。这样的表格可以包括特定受试者或患者的细节,例如年龄、性别、吸烟状况(例如,吸烟者或不吸烟者)、医学诊断以及从医学成像扫描获得的一个或多个测量结果。在其他示例中,输入数据可以包括一个或多个图像,包括图解、照片、插图或使用成像装置(例如,医学成像扫描)获取的图像。可以使用任何医学成像模态或技术来获取医学图像,包括例如X射线成像、磁共振成像(MRI)、超声波检查或超声、正电子发射断层扫描(PET)、计算机断层摄影(CT)以及单光子发射计算机断层摄影(SPECT)。本领域技术人员熟悉的其他成像方式也可以用于获取医学图像。因此,这样的输入数据可以包含大量信息,所述信息以其原始形式可能难以与关联于其他受试者的对应数据进行比较。然而,使用装置100,将数据转换成可以更容易比较的格式是可能的。受试者的输入数据的每个特征(例如,年龄、性别、吸烟状况、病变大小等)可以由向量元素表示,使得可以通过检查另一受试者向量的对应元素来分析或比较另一受试者的相同特征。
[0040] 装置100能够用于训练神经网络布置以从提供给神经网络布置的输入数据生成向量。一旦已经训练了神经网络布置,就可以使用经训练的神经网络来一致地生成表示被提供给装置的新输入数据的向量。虽然在一些实施例中,神经网络布置可以包括单个人工神经网络,但是在其他实施例中,神经网络布置可以包括多个人工神经网络。
[0041] 人工神经网络或者简称为神经网络对于本领域技术人员来说将是熟悉的,但是简言之,神经网络是一种可以用于对数据进行分类(例如,对图像数据的内容进行分类或识别)的模型。神经网络的结构受到人脑的启发。神经网络由各层组成,每层包含多个神经元。每个神经元包括数学运算。在对一部分数据进行分类的过程中,对部分数据执行每个神经元的数学运算,以产生数字输出,并且然后将神经网络中每层的输出顺序地馈入下一层中。
通常,与每个神经元相关联的数学运算包括在训练过程期间调整的一个或多个权重(例如,在训练过程期间更新权重的值以调整模型以产生更准确的分类)。
[0042] 例如,在用于分类图像内容的神经网络模型中,神经网络中的每个神经元可以包括数学运算,所述数学运算包括图像中像素(或在三维情况下的体素)值的加权线性总和、后跟非线性变换。神经网络中使用的非线性变换的示例包括S型函数、双曲正切函数以及整流线性函数。神经网络的每层中的神经元通常包括单一类型的变换的不同加权组合(例如,相同类型的变换、S形等,但是具有不同的权重)。如本领域技术人员所熟悉的,在一些层中,每个神经元可以在线性总和中应用相同的权重;例如,这应用于卷积层的情况中。与每个神经元相关联的权重可能会使某些特征在分类过程中比其他特征较突出(或者相反地较不突出),并且因此,在训练过程中调整神经元的权重将神经网络训练为在对图像进行分类时将对特定特征放置增加的重要性。通常,神经网络可以具有与神经元相关联的权重和/或神经元之间的权重(例如,其修改在神经元之间传递的数据值)。
[0043] 如上所述,在一些神经网络(例如,卷积神经网络)中,较低层(例如,神经网络中输入或隐藏层)(即,神经网络中的朝向一系列层的开头的层)被分类的数据部分中的小特征或模式激活(即,它们的输出取决于分类的数据部分中的小特征或模式),而较高的层(即,神经网络中的朝向一系列层的末尾的层)由分类的数据部分中越来越大的特征激活。作为示例,在数据包括图像的情况下,神经网络中的下层被小的特征(例如,图像中的边缘图案)激活,中层被图像中的特征(例如,较大的形状和形式)激活,而最靠近输出的层(例如,上层)由图像中的整个对象激活。更一般地,神经网络的不同层可以作用于输入数据的不同部分上。
[0044] 通常,神经网络模型最后层(称为输出层)的权重强烈地取决于正由神经网络解决的特定分类问题。例如,外层的权重可能严重取决于分类问题是定位(localization)问题还是检测问题。下层(例如,输入层和/或隐藏层)的权重往往取决于正被分类的数据的内容(例如,特征),并且因此在本文已认识到,在处理相同数据类型的神经网络的输入层和隐藏层中的权重在足够的训练的情况下也可以随着时间的推移收敛于相同的值,即使对模型的外层进行了调整以解决不同的分类问题也是如此。
[0045] 本公开内容的神经网络将被训练以生成表示输入数据的第一片段或第一集的向量,使得相似的向量将由神经网络针对输入数据的相似的片段或集生成。在一些示例中,相似输入数据的整个向量可以是相似的。在其他示例中,如果不同向量的个体元素所表示的特征相似,则它们可能相似。例如,如果向量的特定元素表示受试者的年龄,则对于相同年龄的两个受试者,向量的元素应相同或相似。
[0046] 可以基于向量的预期用途和/或要针对其生成向量的受试者的性质来选择向量的性质和/或构成向量的向量元素。例如,如果要针对患有或怀疑患有肺癌的受试者生成向量,则向量的每个元素可以表示与肺癌评估有关的特征。这样的向量的元素可能对应于结节大小、结节位置、受试者的年龄、受试者的性别以及受试者的吸烟状况。以这种方式,每个向量都可以与特定目的或类别有关。以肺癌为例,每个向量可以对肺癌类别是特定的(例如,受试者可以被分类为患有肺癌或未患有肺癌)。因此,所生成的向量和构成向量的向量元素被“设计”为用于特定目的。向量的每个元素都与输入数据中的特定特征有关,因此是可解释的。换句话说,从向量元素中的数字获得对特定特征(以及向量所涉及的受试者)的理解是可能的。
[0047] 图2是数据200被转换成向量的示例的图示。在所示的示例中,示出了针对各种受试者202、204、206的数据。对于每个受试者,输入数据200可以采用表格208或图像210的形式。如上所述,可以替代地或附加地使用其他形式的输入数据。输入数据被提供给经训练的神经网络212,并且神经网络针对每个受试者生成向量作为其输出。在所示的示例中,针对第一受试者202生成向量214,针对第二受试者204生成向量216,并且针对第n受试者206生成向量218。每个向量214、216、218可以具有定义的长度或大小,例如可以由在每个向量中包括的元素的数量来定义。在一些示例中,向量可以包括128个元素,使得每个向量可以表示输入数据的128个特征。在图2所示的示例中,向量214的第一元素(或维度)由数0.17512876表示,第二元素(或维度)由数0.00693852表示,依此类推。
[0048] 为了获得能够将输入数据转换成可以可靠地用于与其他向量进行比较的向量的神经网络,首先必要的是训练神经网络以识别要在向量中表示的特定特征,并且生成表示那些特征的数值向量元素。图3是神经网络布置的示意图,所述神经网络布置可以用于训练目的,以便获得可以生成合适的向量的神经网络。图3示出了将被训练以便获得经训练的神经网络以用于从输入数据生成向量的神经网络布置300。通常,神经网络布置300可以包括多个神经网络。在该示例中,神经网络布置300包括第一神经网络302、第二神经网络304以及第三神经网络306。在一些实施例中,神经网络布置300可以包括多个相同的神经网络。如果第一和第二神经网络的神经元的架构和权重彼此相同,则第一神经网络被认为与第二神经网络相同。可以使用不同的训练数据来训练多个相同的神经网络中的每个神经网络。该技术可以用于更高效地训练神经网络。使用相同的神经网络或训练的这种布置可以被称为暹罗神经网络布置。因此,在一些实施例中,神经网络布置300可以包括暹罗神经网络布置。
[0049] 在图3所示的示例中,神经网络302、304、306中的每个神经网络被提供有不同的输入数据。第一神经网络302被提供有第一输入数据308,在图3中被标记为X。第一输入数据308可以被称为参考数据,并且该数据可以涉及特定类别或落入特定类别内。例如,第一输入数据308可以包括表示已经被诊断患有肺癌的第一受试者的数据。第二神经网络304被提供有第二输入数据310,在图3中被标记为X+。第二输入数据310可以被称为匹配数据,并且该数据可以涉及与参考数据相同的类别或落入所述类别内。例如,第二输入数据310可以包括表示也已经被诊断患有肺癌的第二受试者的数据。第三神经网络306被提供有第三输入数据312,在图3中被标记为X-。第三输入数据312可以被称为不匹配数据,并且该数据可以涉及与参考数据和匹配数据不同的类别或落入所述类别内。换句话说,第三输入数据312(即,不匹配数据)不涉及与参考数据和匹配数据相同的类别或落入所述类别内。输入数据
308、310、312的三个不同集或元素可以称为三元组,并且使用这种三元组数据训练三个独立但相同的神经网络可以帮助神经网络更快地进行训练。因此,更一般地,神经网络布置
300可以包括三个神经网络302、304、306。处理器102可以被配置为使用三元组输入数据来训练三个神经网络302、304、306,输入数据的三元组中包括落入定义的类别内的参考数据元素的第一数据元素308、落入定义的类别内的输入数据的三元组中的第二数据元素310以及未落入定义的类别内的输入数据的三元组中的第三数据元素312。虽然可以使用其中神经网络相同的暹罗神经网络布置,但是在一些实施例中,也可以在神经网络布置内使用不相同的神经网络,如下面更详细地讨论的。
[0050] 在神经网络布置300中训练神经网络的目的是获得这样的输出:在所述输出中,数据三元组中的匹配数据对之间的距离(即,X和X+之间)相对小,并且三元组数据中的不匹配数据对(即,X和X-之间)之间的距离相对大。再次参考图3,可以确定针对匹配(或相似)的数据对(308和310)生成的向量之间的距离314,并且可以确定针对不匹配(或不相似)数据对(310和312)生成的向量之间的距离316。向量对之间的距离可以使用本领域技术人员将熟悉的任何适当技术来计算。例如,在一个示例中,可以计算欧几里得距离。在其他示例中,可以使用不同的技术来确定数据对之间的距离,例如确定曼哈顿距离或余弦距离。尽管在一些示例中,处理器102可以用于确定或计算距离,但是在其他示例中,单独的神经网络可以用于计算距离。例如,可以设计和训练这样的神经网络以计算向量之间的距离。
[0051] 除了确定表示输入数据的匹配对和不匹配对的向量之间的距离之外,装置100的处理器102可以被配置为确定损失318,以充当神经网络布置中神经网络的性能的指示符。
[0052] 神经网络的总损失318可以包括交叉熵损失和三元组损失(也称为铰链损失)的组合。使用反向传播技术来训练神经网络布置300中的每个神经网络(即,更新神经网络的权重),以便使总损失最小化。交叉熵损失可以被定义为每个向量元素的对数之和的负值,对于所述每个向量元素,目标是可用的(即,对于所述每个向量元素,在数据308、310、312中值是可用的)。使交叉熵损失最小化帮助确保向量的各个元素对应于定义的特征,并且因此是可解释的。三元组损失可以定义如下:
[0053] 三元组损失=max{0,m+d(net(X),net(X+))–d(net(X),net(X-))}[1][0054] 其中,net(X)是处理数据三元组(X、X+或X-)之一的神经网络;d(net(X),net(X+))是匹配对(即,参考数据308和匹配数据310)之间的距离;并且d(net(X),net(X-))是不匹配对(即,参考数据308和不匹配数据312)之间的距离;m是余量(例如,0.5或1),由此三元组损失函数的目的是使匹配对之间的距离比不匹配对之间的距离小至少余量m。
[0055] 如对于本领域技术人员将显而易见的,可以将神经网络设计为生成任何期望形式的输出。在本文公开的实施例中,神经网络的输出包括具有定义的数量的向量元素的向量,其中,向量的每个元素表示输入数据的定义的特征。在一些实施例中,神经网络布置能够使用第一向量的元素来表示的输入数据的定义的特征由非负数表示。换句话说,可以将神经网络设计为使得所生成的向量的每个元素为非负数。在一些示例中,所生成的向量的每个元素可以包括在0和1之间的数。在这样的示例中,0可以表示不存在特定特征,而1可以表示存在特定特征。例如,在0和1之间的值可以用于表示部分存在或特定特征的严重程度。可以使用神经网络中的S型激活函数来实现针对向量元素生成非负值。
[0056] 取决于可用于训练的输入数据,一些特征可以在某些输入数据中很明显,而在其他数据中不明显。例如,可以以MRI扫描的形式从输入数据中确定病变的大小,但是这种信息在采用医疗报告形式的输入数据中可能不可用。因此,如果向量元素表示无法被确定的特定项目输入数据的特征,则该向量的元素可以留为空白,或者可以用针对该特定元素指示不存在值的某些符号或字母表示。即使大多数输入训练数据缺少特定特征(或与特定特征有关的信息),也可以实现对神经网络布置300中神经网络的训练。如果神经网络被提供有至少单个输入数据项(所述单个输入数据项包括与特征有关的信息),则可以训练神经网络以针对该特征进行检测(并且确定向量元素值)。
[0057] 一旦已经使用处理器102训练了神经网络布置300,就可以使用神经网络的单个实例(例如,302、304或306)来检查或评估输入数据。例如,可以将针对任何受试者的新获得的医学成像扫描提供作为经训练的神经网络的输入,并且经训练的神经网络可以生成表示输入数据的向量。然后可以将所生成的向量用于与其他向量的比较中,使得可以确定关于在输入数据中包括的各种特征的信息。因此,再次参考图1,根据第二方面,本文公开的各种实施例提供了一种用于评估数据的装置100。装置100包括处理器102。处理器102被配置为提供本文训练为生成表示输入数据的第一向量的神经网络。经训练的神经网络可以是使用相同装置100来训练的神经网络,如上所述。处理器102还被配置为向经训练的神经网络提供输入数据。输入数据可以例如包括医学数据(例如,医学报告、医学图像或与受试者有关的信息表)或任何其他类型的数据,如上所述。处理器102还被配置为使用经训练的神经网络来生成表示输入数据的第一向量,其中,所生成的第一向量的每个元素表示输入数据的定义的特征。因此,经训练的神经网络生成向量,所述向量可以具有定义的数量的元素(例如,128个元素),并且随后其可以用于与由经训练的神经网络生成的其他向量的比较。由相同神经网络生成的其他向量将与相同类相关,这是因为神经网络将已被训练以寻找与该类别相关的特定特征。例如,当考虑具有肺癌类别或怀疑落入肺癌类别内的受试者的数据时,神经网络被训练以寻找与该疾病有关的特征。类似地,当神经网络被训练以寻找或考虑与其他类别(例如,乳腺癌、前列腺癌、糖尿病等)有关的特征时,则与所考虑的类别有关的特征将由神经网络评估。
[0058] 装置100和/或处理器102可以将经训练的神经网络用于多种目的,如下所述。
[0059] 装置100可以用于执行“示例查询”任务。这样的任务用于检索与某些查询数据(例如,查询扫描)匹配的数据(例如,医学成像扫描)。使用向量表示可以高效地执行这样的任务。因此,处理器102还可以被配置为在向量的数据库中识别在第一向量的定义的门限相似性距离内的一个或多个向量。换句话说,可以提供针对输入数据项(例如,CT扫描)生成的向量作为查询,并且处理器102可以针对匹配或相似的向量搜索存储器(例如,存储器106)。存储器可以包含已经针对现有数据(例如,现有患者的数据,例如医学扫描)生成的向量的数据库。如果向量落入第一向量的定义的门限相似性距离内,则可以认为所述向量是匹配的或相似的。向量之间的距离可以使用本文讨论的技术来确定。与查询向量的匹配或相似的向量可以对应于数据项(例如,另一CT扫描),所述数据项与查询数据具有相似的特征或具有大量相似的相关特征,并且因此匹配数据所涉及的受试者可以与查询数据有关的受试者具有医学上相关的事物。例如,此类信息可以用于医学评估、诊断或治疗决策。
[0060] 在一些实施例中,如上所述,可以将整个向量与其他向量进行比较,以便找到整体匹配或相似的数据。然而,本文公开的实施例还允许将向量的个体元素与其他向量的对应元素(即,出现在该向量中相同位置的元素)进行比较。因此,处理器102还可以被配置为确定第一向量的至少一个元素与第二向量的对应的至少一个元素之间的相似性距离。以这种方式,将查询数据的特定特征与其他数据的相同特征进行比较是可能的。这提供了通用性,这是因为用户可以使用装置来调查或评估与受试者有关的数据的特定特征,这仅仅根据原始数据可能是不明显的。
[0061] 如上所述,装置100可以用于评估来自多个受试者的数据,或者评估来自相同受试者的例如可以已经在不同时间获取的数据。因此,第一向量和第二向量可以是(i)表示来自不同患者的输入数据的向量;或(ii)表示来自相同患者的输入数据的向量,该输入数据在两个不同的时间获取。因此,装置100能够比较不同的受试者(以及来自不同受试者的数据的个体特征),并且还能够比较在一段时间期间从单个受试者获取的数据(例如,扫描)。以这种方式,可以评估和比较从例如以三个月为间隔获取的扫描生成的向量,使得任何变化可以被识别。这样的技术可以帮助预测疾病的进展,并且监测诸如肿瘤生长之类的变化。在一些示例中,可以将向量(或向量元素)随时间的变化与相对于(例如,可以存储在数据库中的)其他受试者看到的变化进行比较,使得意外或异常的变化可以被快速识别。这样的见解可以为患者提供更高效和准确的诊断。
[0062] 装置100可以用于执行“人工示例查询”任务。这样的任务可以用于测试预测或假设,或用于执行研究。任务可以涉及手动创建向量(例如,基于先前的示例或预测),以及针对匹配或相似向量搜索现有向量的数据库。
[0063] 装置100可以用于执行缺失的属性/特征值完成任务。如上所述,一些输入数据可能未明确包含与向量中表示的所有特征有关的信息。因此,一些元素可以保持为空,或者具有“空值(null)”(例如,非数字)条目。如果在神经网络的训练期间中,提供了至少一条包含每个特征信息的训练数据(但没有单条数据需要包括与所有特征有关的信息),则经训练的神经网络将寻找所有特征。换句话说,经训练的神经网络将尝试针对其生成的向量的所有元素生成值,只要对于其要考虑的每个特征,其已经看到至少一条相关数据。以这种方式,经训练的神经网络可以帮助生成与特征有关的向量的元素的值,所述特征可能是先前不容易从输入数据中识别或测量的。
[0064] 在一些实施例中,装置100可以用于特征提取任务。例如,所生成的向量可以用于报告(例如,放射学报告)的自动生成。在一些示例中,可以在系统中使用所生成的向量,以便生成用于这种报告中的自然语言。与将原始输入数据(例如,CT扫描)用于生成自然语言以包括在报告中相比,将向量用于这样的任务的使用可以是更一致的。
[0065] 装置100可以用于执行聚类技术。可解释的向量和向量元素可以用于针对数据组(例如,CT扫描组)执行聚类分析。通过使用对向量的聚类分析,以其他方式可能是不可实现的全局特性和假设可以是可识别的。
[0066] 在一些实施例中,可以使用装置100和本文公开的技术来比较不同格式的输入数据。例如,装置100允许跨模态比较。也就是说,可以将不同类型的数据或使用不同的成像模态获取的数据与彼此比较。为此,再次参考图3,使用不同类型的输入数据来训练神经网络布置300。例如,输入数据X可能是落入特定类别内的CT扫描(例如,具有显示肺癌证据的特征),输入数据X+可能是描述相同CT扫描的放射学报告,并且输入数据X-可能是与CT扫描无关的其他任何报告。当这些神经网络的输入都涉及相同的受试者和类别时,神经网络302和神经网络304被训练以生成相似的向量(即,在它们之间具有小的距离的向量)。因此,神经网络302和304的权重和架构彼此不同,这是因为它们正着眼于不同类型的输入数据。然而,神经网络306的权重与神经网络304的权重相同,这是因为它们二者被训练以寻找相同类型的输入数据(例如,基于文本的放射学报告)中的特征。因此,可以使用经训练的神经网络以基于用于训练向量的输入数据的类型来生成所述向量。例如,如果输入模态是文本(即,输入数据是基于文本的报告),则将使用用于文本的神经网络,并且所得到的向量可以用于任何目的,包括用于检索类似于它的医学成像扫描的向量。这称为从文本到成像扫描的跨模态搜索。类似地,如果提供的输入模态是图像(例如,CT扫描),则将使用用于CT扫描的神经网络,并且所得到的向量可以用于任何目的,包括用于检索类似于它的基于文本的放射学报告的向量。这称为从成像扫描到文本的跨模态搜索。
[0067] 根据第三方面,本文公开的实施例提供了一种用于转换数据的方法。
[0068] 图4是用于转换数据的方法400的示例的流程图。方法400包括,在步骤402处,训练神经网络布置以生成用于表示输入数据的第一向量,第一向量的每个元素表示输入数据的定义的特征。
[0069] 根据第四方面,本文公开的实施例提供了一种用于评估数据的方法。
[0070] 图5是用于评估数据的方法500的示例的流程图。方法500包括,在步骤502处,提供被训练以生成表示输入数据的第一向量的神经网络。在步骤504处,方法500包括将输入数据提供给经训练的神经网络。方法500包括,在步骤506处,生成表示输入数据的第一向量,其中,所生成的第一向量的每个元素表示输入数据的定义的特征。
[0071] 图6是用于评估数据的方法600的另外的示例的流程图。方法600可以包括上述方法500的步骤。方法600还可以包括,在步骤602处,在向量数据库中识别在所生成的第一向量的定义的门限相似性距离内的一个或多个向量。因此,可以使用所生成的向量来识别与受试者相关的数据库中的相似受试者或案例。
[0072] 在步骤604处,方法600还可以包括确定第一向量的至少一个元素与第二向量的对应的至少一个元素之间的相似性距离。因此,如上所述,可以将向量的个体元素与其他向量的对应元素进行比较,使得可以执行个体特征分析。
[0073] 在一些实施例中,方法400、500的步骤可以使用上述装置100来执行。因此,以上讨论的方法400、500可以包括与以上讨论的处理器102的功能相对应的一个或多个附加步骤。
[0074] 根据第五方面,本文公开的实施例提供了一种计算机程序产品。图7是计算机程序产品的示例的示意图。计算机程序产品包括非暂时性机器可读介质704,该机器可读介质具有体现于其中的机器可读代码,该机器可读代码被配置为使得在由合适的计算机或处理器702执行时,该计算机或处理器被使得执行本文公开的方法400、500的步骤。
[0075] 处理器102、702可以包括一个或多个处理器、处理单元、多核处理器或模块,其被配置或编程为以本文描述的方式控制装置100。在特定实施方式中,处理器102、702可以包括多个软件和/或硬件模块,每个所述软件和/或硬件模块被配置为执行或用于执行本文描述的方法的个体或多个步骤。
[0076] 如本文所使用的,术语“模块”旨在包括诸如被配置为执行特定功能的处理器或处理器的组件的硬件组件、或诸如在由处理器执行时具有特定功能的指令数据集的软件组件。
[0077] 将领会的是,本发明的实施例还应用于适于使本发明付诸实践的计算机程序,特别是在载体上或载体中的计算机程序。程序可以采用源代码、目标代码、代码中间源以及目标代码的形式,例如采用部分编译的形式,或者采用适合用于根据本发明实施例的方法的实施方式的任何其他形式。还应当领会,这样的程序可以具有许多不同的架构设计。例如,可以将实现根据本发明的方法或系统的功能的程序代码细分成一个或多个子例程。在这些子例程当中分配功能的许多不同方式对于本领域技术人员将是显而易见的。子例程可以一起存储在一个可执行文件中,以形成一个独立的程序。这样的可执行文件可以包括计算机可执行指令,例如,处理器指令和/或解释器指令(例如,Java解释器指令)。替代地,子例程中的一个或多个或所有子例程可以被存储在至少一个外部库文件中,并且可以静态地或动态地(例如,在运行时)与主程序链接。主程序包含对子例程中的至少一个子例程的至少一个调用。子例程还可以包括对彼此的函数调用。与计算机程序产品有关的实施例包括与本文阐述的方法中的至少一个方法的每个处理阶段相对应的计算机可执行指令。这些指令可以细分成子例程和/或存储在可以静态或动态链接的一个或多个文件中。与计算机程序产品有关的另一实施例包括与本文阐述的系统和/或产品中的至少一个系统和/或产品的每个单元相对应的计算机可执行指令。这些指令可以细分成子例程和/或存储在可以静态或动态链接的一个或多个文件中。
[0078] 计算机程序的载体可以是能够承载程序的任何实体或设备。例如,载体可以包括数据存储装置,例如ROM(例如,CD ROM或半导体ROM)或者磁记录介质(例如,硬盘)。此外,载体可以是可传输的载体,例如电或光信号,其可以经由电缆或光缆或通过无线电或其他手段来传送。当程序以这样的信号体现时,载体可以由这样的电缆或其他设备或单元构成。替代地,载体可以是程序嵌入在其中的集成电路,该集成电路适于执行相关方法或在相关方法的执行中使用。
[0079] 根据对附图、公开内容和所附权利要求的研究,本领域技术人员在实践所要求保护的发明时可以理解和实现所公开的实施例的变型。在权利要求中,词语“包括”不排除其他元素或步骤,并且不定冠词“一”或“一个”不排除多个。单个处理器或其他单元可以实现权利要求中记载的若干项的功能。在互不相同的从属权利要求中记载某些措施的仅有事实并不指示不能有利地使用这些措施的组合。计算机程序可以存储/分发在合适的介质上,例如与其他硬件一起提供或作为其的部分提供的光学存储介质或固态介质,但是也可以以其他形式分发,例如经由因特网或其他有线或无线电信系统。权利要求中的任何附图标记都不应被解释为对范围的限制。