IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シーメンス・ヘルスケア・ダイアグノスティックス・インコーポレイテッドの特許一覧

特許7530988機械学習を用いた自動センサトレース検証
<>
  • 特許-機械学習を用いた自動センサトレース検証 図1
  • 特許-機械学習を用いた自動センサトレース検証 図2
  • 特許-機械学習を用いた自動センサトレース検証 図3
  • 特許-機械学習を用いた自動センサトレース検証 図4
  • 特許-機械学習を用いた自動センサトレース検証 図5A
  • 特許-機械学習を用いた自動センサトレース検証 図5B
  • 特許-機械学習を用いた自動センサトレース検証 図5C
  • 特許-機械学習を用いた自動センサトレース検証 図6
  • 特許-機械学習を用いた自動センサトレース検証 図7
  • 特許-機械学習を用いた自動センサトレース検証 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-31
(45)【発行日】2024-08-08
(54)【発明の名称】機械学習を用いた自動センサトレース検証
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240801BHJP
【FI】
G06N20/00
【請求項の数】 4
(21)【出願番号】P 2022551618
(86)(22)【出願日】2021-02-25
(65)【公表番号】
(43)【公表日】2023-04-19
(86)【国際出願番号】 US2021019731
(87)【国際公開番号】W WO2021173872
(87)【国際公開日】2021-09-02
【審査請求日】2022-11-17
(31)【優先権主張番号】62/982,568
(32)【優先日】2020-02-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508147326
【氏名又は名称】シーメンス・ヘルスケア・ダイアグノスティックス・インコーポレイテッド
(74)【代理人】
【識別番号】100127926
【弁理士】
【氏名又は名称】結田 純次
(74)【代理人】
【識別番号】100140132
【弁理士】
【氏名又は名称】竹林 則幸
(72)【発明者】
【氏名】マーク・エドワーズ
(72)【発明者】
【氏名】ヴィヴェック・シンフ
(72)【発明者】
【氏名】ボグダン・ジョルジェスク
(72)【発明者】
【氏名】アンカー・カプール
【審査官】福西 章人
(56)【参考文献】
【文献】国際公開第2017/094267(WO,A1)
【文献】特開2019-139375(JP,A)
【文献】特開2007-240328(JP,A)
【文献】特開2014-142697(JP,A)
【文献】特開2018-049355(JP,A)
【文献】特開2007-140805(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
センサに接続された吸引プローブの不具合を検出するコンピュータ実装方法であって:
機械学習モデルによって、吸引プローブの状態を示す、センサからのトレース信号を受信することと;
機械学習モデルによって、トレース信号を複数のベクトル表現に符号化することと;
機械学習モデルによって、複数のベクトル表現に基づいてトレース信号が有効であるかまたは無効であるかを判定することと;
トレース信号が無効である場合に、
機械学習モデルによって、吸引プローブに関連する不具合のカテゴリを識別することとを含み、
機械学習モデルによって、吸引プローブに関連する1つまたはそれ以上のパラメータを推定するために複数のベクトル表現を回帰処理すること
をさらに含み、
1つまたはそれ以上のパラメータは、吸引プローブによって吸引された体積を含み
該複数のベクトル表現はパラメータ推定のためにパラメータ推定ネットワークに入力され、吸引プローブによって吸引された推定体積を取得するために複数のベクトル表現を回帰処理し、推定体積が予想体積と比較されること、
をさらに含む、前記コンピュータ実装方法。
【請求項2】
機械学習モデルによって、トレース信号を再構成することと;
再構成後のトレース信号とトレース信号との間の1つまたはそれ以上の不一致をグラフィカルユーザインターフェース(GUI)に強調表示することと
をさらに含む、請求項1に記載の方法。
【請求項3】
不具合のカテゴリは、吸引がないこと、投薬がないこと、およびトレース信号がないことのうちの1つである、請求項1に記載の方法。
【請求項4】
複数のベクトル表現は64次元多様体に含まれる、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年2月27日出願の米国特許仮出願第62/982,568号「機械学習を用いた自動センサトレース検証(AUTOMATIC SENSOR TRACE VALIDATION USING MACHINE LEARNING)」の利益を主張するものであり、その開示全体を、あらゆる目的のために参照によって本明細書に組み入れる。
【0002】
本開示は、機械学習技術を用いたセンサトレース信号の自動検証に関する。より詳細には、本開示は、センサトレース信号の検証によってデバイスの不具合を検出する方法およびシステムに関する。
【背景技術】
【0003】
免疫測定および臨床化学分析装置とは、それぞれ個別の構成要素の確実な働きに依拠する統合型の機械である。たとえば、吸引プローブを使用して、ある所望の体積の液体を吸引し、それを投薬する。予期される体積が吸引されたかどうかを検証するために、しばしば1つまたはそれ以上のセンサが設けられている。定期的に検証できない場合は、吸引プローブが機能停止し、メンテナンスを必要とすることが提案される場合がある。
【0004】
典型的には、検証プロセスを自動化するために、安全マージンを規定する一連のルールが設けられている。トレース信号が安全マージンを超えるときに、タスク(たとえば、吸引)が失敗することがある。しかし、それらのセンサは、場合によっては周囲ノイズを収集する恐れもあり、それゆえ、アルゴリズム的解析はそのようなノイズに対して不変でなければならない。ノイズによって起こる変動に対処するために、ルールエンジンはしばしば、ますます複雑になり、維持することが次第に難しくなる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態は、センサトレースデータを用いたデバイスの不具合を自動的に検出する方法およびシステムを提供することによって、上記の短所および欠点のうちの1つまたはそれ以上に対処しそれらを克服する。
【課題を解決するための手段】
【0006】
本開示は、センサに接続されたデバイスの不具合を検出するコンピュータ実装方法であって:機械学習モデルによって、デバイスの状態を示す、センサからのトレース信号を受信することと;機械学習モデルによって、トレース信号を複数のベクトル表現に符号化することと;機械学習モデルによって、複数のベクトル表現に基づいてトレース信号が有効であるかまたは無効であるかを判定することとを含む、方法を提供する。
【0007】
本実施形態はさらに:機械学習モデルによってトレース信号を再構成することと;再構成後のトレース信号とトレース信号との間の1つまたはそれ以上の不一致をグラフィカルユーザインターフェース(GUI)に強調表示することとをさらに含む、コンピュータ実装方法を提供する。
【0008】
本実施形態はさらに:複数のベクトル表現に基づいてデバイスに関連する1つまたはそれ以上のパラメータを推定することをさらに含む、コンピュータ実装方法を提供する。
【0009】
本実施形態はさらに:1つまたはそれ以上のパラメータを推定するために複数のベクトル表現を回帰処理することをさらに含む、コンピュータ実装方法を提供する。
【0010】
本実施形態はさらに、複数のベクトル表現は64次元多様体に含まれる、コンピュータ実装方法を提供する。
【0011】
本実施形態はさらに:トレース信号が無効である場合に、機械学習モデルによって、不具合のカテゴリを識別することをさらに含む、コンピュータ実装方法を提供する。
【0012】
本実施形態はさらに、機械学習モデルはディープニューラルネットワークである、コンピュータ実装方法を提供する。
【0013】
本実施形態はさらに:機械学習モデルによって、センサからの複数のトレーニングトレース信号を受信することと;機械学習モデルによって、各トレーニングトレース信号に関する1つまたはそれ以上のラベルタグを人から受信し、1つまたはそれ以上のラベルタグは、各トレーニングトレース信号が有効であるかまたは無効であるかを示すこととをさらに含む、コンピュータ実装方法を提供する。
【0014】
本開示はさらに:センサに接続された吸引プローブの不具合を検出するコンピュータ実装方法であって、機械学習モデルによって、吸引プローブの状態を示す、センサからのトレース信号を受信することと;機械学習モデルによって、トレース信号を複数のベクトル表現に符号化することと、機械学習モデルによって、複数のベクトル表現に基づいてトレース信号が有効であるかまたは無効であるかを判定することとを含む、方法を提供する。トレース信号が無効である場合は、機械学習モデルによって、吸引プローブに関連する不具合のカテゴリを識別する。
【0015】
本実施形態はさらに:機械学習モデルによって、トレース信号を再構成することと;再構成後のトレース信号とトレース信号との間の1つまたはそれ以上の不一致をグラフィカルユーザインターフェース(GUI)に強調表示することとをさらに含む、コンピュータ実装方法を提供する。
【0016】
本実施形態はさらに:機械学習モデルによって、吸引プローブに関連する1つまたはそれ以上のパラメータを推定するために複数のベクトル表現を回帰処理することをさらに含む、コンピュータ実装方法を提供する。
【0017】
本実施形態はさらに、1つまたはそれ以上のパラメータは、吸引プローブによって吸引された体積または吸引動作の回数を含む、コンピュータ実装方法を提供する。
【0018】
本実施形態はさらに、不具合のカテゴリは、吸引がないこと、投薬がないこと、およびトレース信号がないことのうちの1つである、コンピュータ実装方法を提供する。
【0019】
本実施形態はさらに、複数のベクトル表現は64次元多様体に含まれる、コンピュータ実装方法を提供する。
【0020】
本開示はさらに:センサに接続されたデバイスの不具合を検出するシステムであって、センサからの第1のトレース信号を複数のベクトル表現に符号化する、エンコーダネットワークと;複数のベクトル表現を第2のトレース信号に再構成する、デコーダネットワークと;第1のトレース信号が有効であるかまたは無効であるかを識別する、分類ネットワークとを含む、システムを提供する。
【0021】
本実施形態はさらに:複数のベクトル表現に基づいてデバイスに関連する1つまたはそれ以上のパラメータを推定するための、パラメータ推定ネットワークをさらに含む、システムを提供する。
【0022】
本実施形態はさらに、1つまたはそれ以上のパラメータは、複数のベクトル表現を回帰処理することによって推定される、システムを提供する。
【0023】
本実施形態はさらに、複数のベクトル表現は64次元多様体に含まれる、システムを提供する。
【0024】
本実施形態はさらに、デコーダネットワークは、第1のトレース信号と第2のトレース信号との間の1つまたはそれ以上の不一致を識別するようにさらに構成されている、システムを提供する。
【0025】
本実施形態はさらに、1つまたはそれ以上の不一致は、第2のトレース信号および分類ネットワークから出力される複数の勾配に基づいて識別される、システムを提供する。
【0026】
本発明の付加的な構成および利点は、添付の図面を参照しながら進む、説明的実施形態の以下の詳細な説明から明らかになる。
【0027】
本発明の上述のおよび他の態様は、添付の図面と併せて読むときに以下の詳細な説明から最もよく理解される。本発明を説明するために、図面には、現在好ましい実施形態が示されているが、本発明は開示される特定の手段に限定されないことが理解される。図面には、以下の図が含まれる:
【図面の簡単な説明】
【0028】
図1】本明細書に記載される実施形態による、不具合自動検出システムのブロックダイヤグラムを示す。
図2】本明細書に記載される別の実施形態による、不具合自動検出システムのブロックダイヤグラムを示す。
図3】本明細書に記載される実施形態による、吸引プローブに接続されたセンサからの、有効なサンプルトレース信号を示す。
図4】本明細書に記載される実施形態による、機械学習モデルのブロックダイヤグラムを示す。
図5A】本明細書に記載される実施形態による、不具合を示すオリジナルトレース信号を示す。
図5B】本明細書に記載される実施形態による、再構成後のトレース信号を示す。
図5C】本明細書に記載される実施形態による、オリジナルトレース信号と再構成後のトレース信号との間の不一致を強調表示するオリジナルトレース信号を示す。
図6】本明細書に記載される実施形態による、機械学習モデルを訓練する方法のフローチャートを示す。
図7】本明細書に記載される実施形態による、デバイスの不具合を検出する方法のフローチャートを示す。
図8】説明的実施形態の態様が実装された並列処理メモリアーキテクチャの一例を示す。
【発明を実施するための形態】
【0029】
以下の開示は、センサのトレースデータを用いてデバイスの不具合を自動的に検出する方法およびシステムを対象とした本発明を、いくつかの実施形態に従って説明する。デバイス(たとえば、吸引プローブ)に接続された1つまたはそれ以上のセンサからのトレース信号を解析し、デバイスに関連するタスク(たとえば、吸引)が所望の通りに完了したかどうかを判定するために、機械学習モデルが用いられる。一実施形態では、タスクが失敗した場合に、機械学習モデルはさらに、不具合の原因を示すことができる。一実施形態では、トレース信号を再構成し、同時にタスクの不具合を検出するために、機械学習モデルにディープニューラルネットワークが用いられる。ディープニューラルネットワークは、不具合を示すことがある、オリジナルトレース信号の1つまたはそれ以上の部分を強調表示することができる。
【0030】
図1は、本明細書に記載される実施形態による、不具合自動検出システム100のブロックダイヤグラムを示す。不具合自動検出システム100は、タスク(たとえば、吸引)を行うためのデバイス102(たとえば、吸引プローブ)と;デバイス102に接続されたセンサ104と;タスクの不具合および不具合の原因を識別するように訓練された、機械学習モデル106(たとえば、ディープニューラルネットワーク)とを含む。センサ104は、デバイス102によって行われるタスクをモニタリングし、機械学習モデル106に入力されるトレース信号108を生成する。機械学習モデル106は、成功したタスクを示す有効なトレース信号と、失敗したタスクを示すトレース信号とを含む多数のトレース信号によって訓練済みである。それゆえ、訓練済み機械学習モデル106は、失敗したタスクを示すトレース信号108を識別することができる。いくつかの実施形態では、情報には、不具合の原因を示す失敗のトレース信号108が含まれる。この情報を用いて、トレース信号108が失敗したタスクに対応するものとして分類されたときに不具合のカテゴリ(すなわち、不具合の原因)をさらに提供するように機械学習モデル106を訓練する。一実施形態では、訓練済み機械学習モデル106は、トレース信号108が有効であるかまたは無効(すなわち、不具合)であるかを識別することができる114。別の実施形態では、訓練済み機械学習モデル106はさらに、再構成後のトレース信号110を出力することができる。再構成後のトレース信号110がトレース信号108と異なる場合は、訓練済み機械学習モデル106はさらに、1つまたはそれ以上の不一致112が存在する領域を強調表示する、2つのトレース信号のディスプレイを作成することができる。別の実施形態では、訓練済み機械学習モデル106はさらに、有効であるかまたは無効であるかの識別114をさらに支援するために、デバイス102に関連する推定パラメータ116を出力することができる。パラメータ116は、デバイス102の機能と関連する任意のパラメータとすることができる。たとえば、デバイスが吸引プローブである場合は、パラメータ116は、吸引プローブによって吸引される体積または吸引動作の回数などとすることができる。
【0031】
概して、センサ104は、デバイス102によって行われるタスクをモニタリングできる任意のセンサ、たとえば、圧力センサ、温度センサ、または電圧センサなどとすることができる。センサ104からトレース信号108が出力され、機械学習モデル106に入力される。
【0032】
図2は、本明細書に記載される別の実施形態による、不具合自動検出システム200のブロックダイヤグラムを示す。不具合自動検出システム200は、吸引タスクを行うための吸引プローブ202と;吸引プローブ202に接続された圧力センサ204と;吸引の不具合および不具合の原因を識別するように訓練された機械学習モデル106(たとえば、ディープニューラルネットワーク)とを含む。圧力センサ204は、吸引プローブ202による吸引動作をモニタリングし、訓練済み機械学習モデル106に入力されるトレース信号108を生成する。訓練済み機械学習モデル106は、失敗した吸引および不具合のカテゴリ(たとえば、吸引が起きない;投薬が起きない;トレース信号が観測されないなど)を示すトレース信号108を識別することができる。一実施形態では、訓練済み機械学習モデル106は、トレース信号108が有効であるかまたは無効である(すなわち、不具合を示す)かを識別することができる114。別の実施形態では、訓練済み機械学習モデル106はさらに、不具合の場合の1つまたはそれ以上の不一致112と共に、再構成後のトレース信号110を出力することができる。別の実施形態では、訓練済み機械学習モデル106はさらに、吸引プローブ202によって吸引された推定体積206を出力することができる。図3は、本明細書に記載される実施形態による、吸引プローブ202に接続されたセンサからの有効なサンプルトレース信号を示す。サンプルトレース信号は、任意のセンサ(たとえば、圧力センサ204)から収集した、時系列の測定データを含むことができる。
【0033】
図4は、本明細書に記載される実施形態による、機械学習モデル106のブロックダイヤグラムを示す。本実施形態では、機械学習モデル106は、ディープニューラルネットワークとして実装されている。当技術分野で概略的に理解されているように、「ディープニューラルネットワーク」という用語は、入力データからより高いレベルの特徴を漸進的に抽出するために複数の層を用いる人工ニューラルネットワークを指す。図4に示されている機械学習モデル106は、エンコーダネットワーク302、デコーダネットワーク304、分類ネットワーク306、およびパラメータ推定ネットワーク308を含む。その例では、エンコーダネットワーク302は、トレース信号108を1つまたはそれ以上のコンパクト表現310に符号化する。一実施形態では、コンパクト表現310は64次元多様体を含む。表現310は、それぞれトレース信号の再構成、不具合の識別、およびパラメータの推定のために、他のネットワーク304、306、および308において使用される。一実施形態では、表現310は、トレース信号108を有効または無効のトレース信号として分類するために分類ネットワーク306に入力することができる。さらなる実施形態では、表現310は、トレース信号110を再構成するためにデコーダネットワーク304に入力することができる。トレース信号108が無効信号として識別される場合は、再構成後のトレース信号110はオリジナルトレース信号108とは異なる。再構成後のトレース信号110とオリジナルトレース信号108との間の1つまたはそれ以上の不一致112がディスプレイにおいて強調表示される。たとえば、一実施形態では、再構成後のトレース信号110およびオリジナルトレース信号108は、グラフィカルユーザインターフェース(GUI)に表示され、不一致112は赤色で示され、そうすることで、ユーザは、不具合を通知され、起こり得る不具合の原因を迅速に特定することができる。不一致112は、デコーダネットワーク304からの再構成後のトレース信号110および分類ネットワーク306からの勾配312に基づいて、識別および強調表示することができる。分類ネットワーク306の勾配312をより効率的に計算するために従来のバックプロパゲーション技術を用いることができる。図5Aは、本明細書に記載される実施形態による、不具合を示すオリジナルトレース信号502を示す。図5Bは、本明細書に記載される実施形態による、再構成後のトレース信号504を示す。図5Cは、本明細書に記載される実施形態による、オリジナルトレース信号と再構成後のトレース信号との間の不一致112を強調表示するオリジナルトレース信号502を示す。
【0034】
続けて図4の例示的機械学習モデル106を参照すると、表現310はパラメータ推定のためにパラメータ推定ネットワーク308に入力される。たとえば、機械学習モデル106が吸引プローブ202を有する不具合自動検出システム200に含まれる場合は、パラメータ推定ネットワーク308は、推定パラメータ116(たとえば、吸引プローブ202によって吸引された推定体積206)を取得するために表現310を回帰処理することができる。推定体積206は予想体積と比較される。推定体積と予想体積との差が所定の閾値を超える場合は、吸引は失敗であると見なされる。推定体積と予想体積との間の差が所定の閾値内にある場合は、オリジナルトレース信号108において観測されることがある周囲ノイズに関係なく、十分な体積が吸引されたと結論付けることができる。
【0035】
トレース信号が不具合を示す場合は、分類ネットワーク306はさらに、不具合の原因に応じて不具合を不具合カテゴリに類別することができる。たとえば、吸引プローブ202に関連する不具合が検出される場合は、その不具合は異なる要因から生じる場合がある。たとえば、吸引プローブ202は、任意の液体の吸引に失敗することがあり;吸引プローブ202は、吸引後の任意の液体の投薬に失敗することがあり;圧力センサ204は、トレース信号が観測できないせいで機能停止することがある。分類ネットワーク306は、有効であるかまたは無効であるかの識別114に加えて、不具合を不具合カテゴリに類別することができる。一実施形態では、吸引プローブ202を制御するシステム(たとえば、免疫測定および臨床化学分析装置)に不具合通知が送られる。次いで、こうした不具合通知は、オペレータによるレビューまたは他の使用のためにディスプレイ上で提示することができる。代替的に、システムは、不具合を修正する(たとえば、液体を再吸引する)ために、1つまたはそれ以上の対策を自動的に取ることができる。
【0036】
一実施形態では、複数のセンサを設け、それらをデバイス102に接続することができる。たとえば、圧力センサ、温度センサ、および電流センサが、デバイス102に接続される。センサはそれぞれ、異なるトレース信号108を生成し、トレース信号はいずれも解析のために機械学習モデル106に入力される。
【0037】
図4を参照しながら上記で論じた機械学習モデル106はディープニューラルネットワークとして実装されているが、本発明の他の実施形態では他の機械学習モデルを利用できることを理解されたい。限定するものではないが、決定木モデル、勾配ブーストツリーモデル、ロジスティック回帰モデル、およびランダムフォレストモデルを含む、当技術分野で一般に知られている様々な機械学習モデルを利用することができる。
【0038】
機械学習モデル106は、有効信号および無効信号(すなわち、不具合を示す)の両方の良好なサンプリングを用いて多数のトレース信号で訓練される。たとえば、一実施形態では、機械学習モデル106は、不具合を示すほぼ10,000のトレース信号を含む、約80,000のトレース信号で訓練される。こうしたトレーニングセットを用いて行った概念実証検査によれば、ディープニューラルネットワークは分類正解率が0.9942に到達でき、そのことは、不具合自動検出システム100がセンサトレースデータを用いてタスクの不具合を有効に検出できるということを示している。
【0039】
図6は、本明細書に記載される実施形態による、機械学習モデル106を訓練する方法600のフローチャートを示す。工程602で、機械学習モデル106を訓練するために多数のトレース信号108が提供される。理想的には、トレース信号108は、対応するデバイスが動作する様々なシナリオを表す、有効および無効のトレース信号のサンプリングを用いた多数のトレース信号を含む。工程604で、各トレース信号108は、人(たとえば、デバイス102およびトレース信号108を生成するセンサ104に関する機械学習専門家)によってラベル付けされる。ラベルタグは、そのトレース信号108が有効であるかまたは無効であるかを示すことができる。ラベルタグは、他の情報、たとえば、吸引プローブ202によって吸引された体積、吸引動作の回数などを提供することもできる。工程606で、ラベル付けされたトレース信号は、訓練のために機械学習モデル106に入力される。教師あり学習によって、訓練済み機械学習モデル106は、新規トレース信号が有効であるかまたは無効であるかを識別することができる。訓練済み機械学習モデル106はさらに、吸引プローブ202によって吸引された推定体積、吸引動作の推定回数など、1つまたはそれ以上のパラメータを新規トレース信号から推定することができる。訓練済み機械学習モデル106はさらに、新規トレース信号を再構成することができ、その新規トレース信号はオリジナルの新規トレース信号と比較される。再構成後のトレース信号とオリジナルの新規トレース信号との間の1つまたはそれ以上の不一致112を強調表示することができる。
【0040】
図7は、本明細書に記載される実施形態による、デバイス102の不具合を検出する方法のフローチャートを示す。工程702で、新規トレース信号が訓練済み機械学習モデル106に入力される。工程704で、訓練済み機械学習モデル106のエンコーダネットワーク302は、新規トレース信号を、本例で64次元多様体を形成するベクトル表現310に符号化する。工程706で、分類ネットワーク306は、新規トレース信号が有効であるかまたは無効であるかを識別する。工程708で、デコーダネットワーク304は、ベクトル表現310に基づいて新規トレース信号を再構成する。工程710で、再構成後のトレース信号とオリジナルの新規トレース信号との間の1つまたはそれ以上の不一致112が、分類ネットワーク306によって提供された勾配312に基づいて強調表示される。工程712で、パラメータ推定ネットワーク308は、デバイス102に関連する1つまたはそれ以上のパラメータ(たとえば、吸引プローブ202によって吸引された推定体積、吸引動作の推定回数など)を推定する。工程706~712の順序はランダムに調節でき、いくつかの実施形態では;たとえば、工程706の前に工程712を行うことができる。
【0041】
図8は、機械学習モデル106および本明細書で論じる様々なワークフローの他の態様を実装するために利用できる並列処理メモリアーキテクチャ800の一例を示す。そのアーキテクチャ800は、NVIDIA CUDA(商標)(または同様の並列コンピューティングプラットフォーム)が用いられている本発明の各実施形態において使用することができる。アーキテクチャは、バス815(たとえば、PCIeバス)を介して接続されている、ホスト計算機(「ホスト」)805と、グラフィクス処理ユニット(GPU)デバイス(「デバイス」)810とを含む。ホスト805は、プロセッサすなわち中央処理装置(「CPU」と称される)(図8には示されていない)と、CPUにアクセス可能なホストメモリ825とを含む。デバイス810は、グラフィクス処理ユニット(GPU)と、本明細書でデバイスメモリと称されるその関連メモリ820とを含む。デバイスメモリ820は、様々なタイプのメモリを含むことができ、それらメモリは、それぞれメモリの異なる使用法に最適化される。たとえば、いくつかの実施形態では、デバイスメモリは、グローバルメモリ、コンスタントメモリ、およびテクスチャメモリを含む。
【0042】
ビッグデータプラットフォームおよび/またはビッグシミュレーションプラットフォーム(図8参照)の並列部分は、「デバイスカーネル」または単純に「カーネル」としてアーキテクチャ800上で実行することができる。カーネルは、特定の機能を行うように構成された、パラメータ化されたコードを含む。並列コンピューティングプラットフォームは、パラメータ、設定、およびユーザによってもたらされる他の選択に基づいて、アーキテクチャ800全体に最適な手法でこれらのカーネルを実行するように構成されている。付加的に、いくつかの実施形態では、並列コンピューティングプラットフォームは、ユーザによって提供される最小限の入力を用いて最適な手法でカーネルの自動処理を可能にする、付加的な機能性を含むことができる。
【0043】
各カーネルに必要な処理は、スレッドブロックのグリッドによって行われる(以下でさらに詳細に説明する)。コンカレントカーネル実行、ストリーム、軽量イベントとの同期を用いることで、図8のアーキテクチャ800(または同様のアーキテクチャ)は、本明細書で論じる機械学習モデルを訓練または利用する際に行われるモデルベースの演算の部分を並行化するために使用することができる。
【0044】
デバイス810は、デバイス810の計算ユニットを表すスレッドブロック830を1つまたはそれ以上含む。スレッドブロックという用語は、共有メモリを介して協働でき、メモリアクセスを調整するようにそれらの実行を同期できるスレッドのグループを指す。たとえば、図8において、スレッド840、845および850は、スレッドブロック830において動作し、共有メモリ835にアクセスする。使用される並列コンピューティングプラットフォームに応じて、スレッドブロックは、グリッド構造で構成することができる。次いで、計算または一連の計算をそのグリッドにマッピングすることができる。たとえば、CUDAを利用する実施形態では、計算は、1次元、2次元、または3次元のグリッドにマッピングすることができる。各グリッドは複数のスレッドブロックを含み、各スレッドブロックは複数のスレッドを含む。たとえば、図8では、スレッドブロック830は、m+1行およびn+1列の2次元グリッド構造で構成されている。概して、同じグリッドの異なるスレッドブロック内のスレッドは、互いに通信も同期もできない。しかし、同じグリッドのスレッドブロックは、GPU内の同じ多重プロセッサで同時に動作できる。各スレッドブロック内のスレッド数は、ハードウェアまたはソフトウェアの制約によって限定することができる。
【0045】
続けて図8を参照すると、レジスタ855、860、および865は、スレッドブロック830に利用できる高速メモリを表している。各レジスタは単一のスレッドによってのみアクセス可能である。それゆえ、たとえば、レジスタ855はスレッド840によってのみアクセスできる。逆に共有メモリは、スレッドブロックごとに割り当てられており、したがって、そのブロック内の全てのスレッドが同じ共有メモリへのアクセスを有する。それゆえ、共有メモリ835は、スレッドブロック830の各スレッド840、845、および850によって並列にアクセスされるように設計されている。スレッドは、デバイスメモリ820から同じスレッドブロック(たとえば、スレッドブロック830)内の他のスレッドによってロードされた、共有メモリ835内のデータにアクセスすることができる。デバイスメモリ820は、グリッドの全てのブロックによってアクセスされ、たとえば、ダイナミックランダムアクセスメモリ(DRAM)を用いて実装することができる。
【0046】
各スレッドは、1つまたはそれ以上のレベルのメモリアクセスを有することができる。たとえば、図8のアーキテクチャ800では、各スレッドは、3つのレベルのメモリアクセスを有することができる。まず、各スレッド840、845、850は、その対応するレジスタ855、860、および865に読み書きすることができる。同期の問題がなく、レジスタが概してスレッドを実行する多重プロセッサの近くに位置するため、レジスタは、スレッドに高速のメモリアクセスを提供する。次に、スレッドブロック830の各スレッド840、845、850は、そのブロック830に対応する共有メモリ835にデータを読み書きすることができる。概して、スレッドが共有メモリにアクセスするのに必要とされる時間は、スレッドブロック内の全てのスレッド間のアクセスを同期する必要があるため、レジスタのアクセスを超える。しかし、スレッドブロックのレジスタと同様に、共有メモリは、典型的には、スレッドを実行する多重プロセッサの近くに位置する。メモリアクセスの第3のレベルにより、デバイス810の全てのスレッドがデバイスメモリに対して読むおよび/または書くことが可能になる。デバイスで動作するスレッドブロック全体に対してアクセスが同期されなければならないため、デバイスメモリはアクセスに最長の時間を要する。
【0047】
本開示の実施形態は、ハードウェアおよびソフトウェアの任意の組合せを用いて実装することができる。たとえば、図8に提示されている並列処理アーキテクチャとは別に、本明細書で論じる技術を実施するように、標準的なコンピューティングプラットフォーム(たとえば、サーバ、デスクトップコンピュータなど)を特別に構成することができる。さらに、本開示の実施形態は、たとえばコンピュータ可読の非一時的媒体を有する製品(たとえば、1つまたはそれ以上のコンピュータプログラムプロダクト)に含まれる。その媒体は、本開示の実施形態の機構を提供し容易にするためのコンピュータ可読プログラムコードを内部に組み入れることができる。製品は、コンピュータシステムの一部として含まれるかまたは別個に販売されていることがある。
【0048】
本明細書で様々な態様および実施形態を開示してきたが、他の態様および実施形態が当業者には明らかである。本明細書で開示された様々な態様および実施形態は、説明のためのものであり、限定するものではなく、添付の特許請求の範囲によって真の範囲および精神が示されている。
【0049】
実行可能なアプリケーションは、本明細書で用いるように、たとえばユーザのコマンドまたは入力に応答して、オペレーティングシステム、コンテキストデータ取得システムまたは他の情報処理システムなど、所定の機能を実装するようにプロセッサを調整するためのコードまたは機械可読命令を含む。実行可能な手順は、1つまたはそれ以上の特定のプロセスを行うために実行可能なアプリケーションの、コードもしくは機械可読命令のセグメント、サブルーチン、またはコードもしくは一部分の他の別個のセクションである。それらプロセスには、入力データおよび/またはパラメータを受信することと、受信した入力データに対して演算を行うことおよび/または受信した入力パラメータに応答して機能を行うことと、結果として生じた出力データおよび/またはパラメータを供給することとが含まれる。
【0050】
グラフィカルユーザインターフェース(GUI)には、本明細書で用いるように、1つまたはそれ以上のディスプレイイメージが含まれ、ディスプレイイメージは、ディスプレイプロセッサによって生成され、プロセッサまたは他のデバイスおよび関連するデータ取得および処理機能とのユーザインタラクションを可能にする。GUIは、実行可能な手順または実行可能なアプリケーションも含む。実行可能な手順または実行可能なアプリケーションは、GUIディスプレイイメージを表す信号を生成するようにディスプレイプロセッサを調整する。それら信号は、ユーザが見るための画像を表示するディスプレイ装置に供給される。プロセッサは、実行可能な手順または実行可能なアプリケーションの制御下で、入力デバイスから受信した信号に応答してGUIディスプレイイメージを操作する。このように、ユーザは、入力デバイスを用いてディスプレイイメージとインタラクトすることができ、そのため、プロセッサまたは他のデバイスとのユーザインタラクションが可能になる。
【0051】
本明細書では、機能およびプロセスの工程は、ユーザのコマンドに応答して自動的にまたは全体的もしくは部分的に行うことができる。自動的に行われるアクティビティ(工程を含む)は、ユーザがアクティビティを直接的に開始することなく、1つもしくはそれ以上の実行可能命令またはデバイスの動作に応答して行われる。
【0052】
本明細書および特許請求の範囲では、説明的実施形態の特定の構成および要素に関して「a」、「少なくとも1つの」および「1つまたはそれ以上の」という用語を用いることがある。それらの用語および句は、特定の説明的実施形態に特定の構成または要素が少なくとも1つ存在することを表明するものであるが、2つ以上存在する場合もあることを理解されたい。すなわち、それらの用語/句は、単一の構成/要素が存在することまたはこのような構成/要素が複数存在することを必要とすることに、明細書または特許請求の範囲を限定するものではない。対照的に、これらの用語/句は、本明細書および特許請求の範囲内にこのような構成/要素が複数ある可能性を有しながら、少なくとも単一の構成/要素を必要とするだけである。
【0053】
さらに、本明細書は、説明的実施形態の例示的実装をさらに示し、説明的実施形態の機構の理解を助けるために、説明的実施形態の様々な要素に関して複数の様々な例を用いていることを理解されたい。これらの例は、非限定的なものであり、説明的実施形態の機構を実装するための様々な可能性を網羅しているものではない。本明細書を考慮すると、それら様々な要素には他にも多数の代替的実装形態があり、それらは本発明の精神および範囲から逸脱することなしに本明細書で提供される例に加えてまたはその代わりに使用できることが当業者には明らかである。
【0054】
図のシステムおよびプロセスは排他的ではない。同じ目的を達成するために、本明細書に記載される実施形態の原理に従って他のシステム、プロセス、およびメニューを導き出すことができる。本明細書に図示および記載される実施形態および変形形態が単なる例示目的であることを理解されたい。実施形態の範囲から逸脱することなしに、現在の設計に対する修正形態を当業者によって実装することができる。本明細書に記載されるように、様々なシステム、サブシステム、エージェント、マネージャ、およびプロセスを、ハードウェア構成要素、ソフトウェア構成要素、および/またはそれらの組合せを用いて実装することができる。本明細書において、クレームの要素は、その要素が「~ための手段(means for)」という句を用いて明示的に列挙されない限り、35U.S.C.第112(f)条の規定の下で解釈するべきではない。
【0055】
例示的な実施形態を参照しながら本発明を説明してきたが、本発明はそれらに限定されるものではない。本発明の好ましい実施形態に多数の変更および修正を行うことができること、ならびに本発明の真の精神から逸脱することなしにそのような変更および修正を行うことができることを当業者は理解する。したがって、添付の特許請求の範囲は、本発明の真の精神および範囲内に入る全ての均等な変形形態を包含すると解釈されるものである。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8