様々な図面における同様の参照番号および記号表示は同様の要素を示す。
図1は、例示の画像化システム100を示す。画像化システム100は、以下で説明するシステム、構成要素、および技法が実装された1つまたは複数の場所にある1つまたは複数のコンピュータのコンピュータプログラムとして実装されたシステムの一例である。
画像化システム100は、顕微鏡108を使用して生成されるサンプル106(例えば、組織サンプル)の拡大画像104を取得および格納するためにカメラ102を使用する。システム100は、異なる倍率レベル112でサンプル106のそれぞれの関心領域110の拡大画像104を生成する。以下でより詳細に説明するように、システム100は、所与の倍率レベル112で取得された関心領域110の拡大画像104を処理して、より高い倍率レベル112で画像化されるべき1つまたは複数の「精細化された」関心領域110を決定することができる。
顕微鏡スライドに装着することができるサンプル106は、あらゆる種類の材料の試料とすることができる。例えば、サンプル106は、人の体から得られる細胞の集まりを含む組織サンプルとすることができる。この例では、組織サンプルの関心領域110は、「異常」(例えば、癌性)であると予測される組織サンプルの一部に対応することができ、システム100によって生成された拡大画像104は、後続の分析のために病理医に提供することができる。
顕微鏡108は、異なる倍率レベル112でサンプル106の拡大画像104を生成することができる任意の適切な種類の顕微鏡とすることができる。例えば、顕微鏡108は、1つまたは複数のレンズを使用してサンプル106の拡大画像104を生成する光学顕微鏡とすることができる。画像の「倍率レベル」は、画像に示されているエンティティ(例えば、細胞)が実際のサイズと比較してどれくらい大きく見えるかの尺度を指す。
カメラ102は、顕微鏡108によって生成された拡大画像104を「取得する」(すなわち、それのデジタル表現を生成する)ことができる任意の適切な種類のセンサアレイ、例えば、CCDセンサとすることができる。例えば、カメラ102は、顕微鏡108によって生成された拡大画像104をカラー画像(例えば、赤-緑-青(RGB)色表現を使用する)として取得するように構成することができる。カメラ102および顕微鏡108は、医療用スライドスキャナの一部とすることができる。
システム100は、増加していく倍率レベルのシーケンスにおける各倍率レベル112でサンプル106のそれぞれの関心領域110を画像化する。例えば、増加していく倍率レベルのシーケンスは、[5倍、10倍、20倍、40倍]、または増加していく倍率レベルの任意の他の適切なシーケンスで与えることができる。システム100は、増加していく倍率レベルのシーケンスにおける最初の(すなわち、最も低い)倍率レベルでサンプル106全体を画像化することができる。その後、システム100は、検出モデル114を使用して、増加していく倍率レベルのシーケンスにおける後続の(すなわち、より高い)各倍率レベル112で画像化されるべきサンプル106の関心領域110を決定することができる。検出モデル114は、所与の倍率レベル112での所与の関心領域110の拡大画像104のデジタル表現を処理して、1つまたは複数の「精細化された」関心領域110を画定するデータを生成するように構成される。続いて、システム100は、増加していく倍率レベルのシーケンスにおける所与の倍率レベルの後の次の倍率レベルで、精細化された関心領域を画像化する。
検出モデル114は、サンプル106の関心領域110の拡大画像104を処理して、サンプル106の1つまたは複数の精細化された関心領域を画定するデータを生成することができる任意のコンピュータ実装モデルとすることができる。1つの実施態様では、サンプル106は、組織サンプルとすることができ、検出モデル114は、異常(例えば、癌性)であると予測される組織サンプルの部分に対応する精細化された関心領域を画定するデータを生成するように構成することができる。この実施態様では、システム100は、前の倍率レベル112で生成された拡大画像104に基づいて、異常(例えば、癌性)である組織サンプルの一部を示すと予測される各倍率レベル112で拡大画像104を生成する。検出モデル114の例が、図3を参照してより詳細に説明される。
システム100は、カメラ102によって生成されたサンプル106の関心領域110の拡大画像104のデジタル表現をデータストア116に格納することができる。データストア116は、例えば、物理的データストレージデバイスまたは論理的データストレージエリアとすることができる。システム100は、追加として、画像化された関心領域110の各々の場所(例えば、サンプル106の基準系における)を画定するデータを格納することができる。例えば、関心領域110の形状が長方形である場合、システム100は、(長方形の)関心領域のコーナーの位置を画定する座標(例えば、サンプル106の基準系における)を画定するデータを格納することができる。
システム100は、コンピュータ実装コントローラを使用して、部分的にまたは完全に自動化された方法で(すなわち、ほとんどまたは全く人間の介入なしに)、各倍率レベル112でサンプル106のそれぞれの関心領域110の拡大画像104を生成、取得、および格納することができる。例えば、コントローラは、(i)顕微鏡108のステージの位置、(ii)顕微鏡108の倍率設定、または(iii)両方を自動的に調節することによって、顕微鏡108に所与の倍率レベル112で関心領域110の拡大画像104を生成させることができる。その後、コントローラは、カメラ102を使用して拡大画像104を取得し、拡大画像104をデータストア116および検出モデル114に自動的に送信することができる(すなわち、精細化された関心領域を決定するためのさらなる処理のために)。コントローラは、適切なハードウェアまたはソフトウェアを使用して実現することができ、ハードウェアまたはソフトウェアの一部は、システム100の他の部分から遠隔に配置されてもよい。
図2は、異なる倍率レベルでのサンプルの関心領域の例示の拡大画像を示す。特に、拡大画像202は、5倍の倍率レベルでのサンプルの長方形の関心領域204を示す。画像化システム(図1を参照して説明した)は、検出モデルを使用して拡大画像202を処理して、精細化された関心領域206(すなわち、それは関心領域204の適切なサブセットである)を画定するデータを生成することができる。画像化システムは、続いて、倍率レベル10倍で関心領域206の拡大画像208を生成することができる。画像化システムは、検出モデルを使用して拡大画像208を処理して、精細化された関心領域210(すなわち、それは関心領域206の適切なサブセットである)を画定するデータを生成することができる。画像化システムは、続いて、倍率レベル40倍で関心領域210の拡大画像212を生成することができる。図2に示された例では、画像化システムは、各倍率レベルでサンプル全体の拡大画像を取得および格納するのではなく、それぞれの関心領域204、206、および210の拡大画像202、208、および212のみを取得および格納することができる。
図3は、増加していく倍率レベルのシーケンスにおける各倍率レベルでサンプルのそれぞれの関心領域を画像化するための例示のプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるとして説明される。例えば、本明細書に従って適切にプログラムされた画像化システム、例えば、図1の画像化システム100は、プロセス300を実行することができる。
特に、システムは、現在の倍率レベルで画像化されるべきサンプルの1つまたは複数の関心領域を識別する。現在の倍率レベルが、シーケンスにおける最初の(すなわち、最も低い)倍率レベルである場合、システムは、現在の倍率レベルで画像化されるべき所定の関心領域を識別することができる。例えば、システムは、現在の倍率レベルで画像化されるべきサンプル全体に対応する関心領域を識別することができる。現在の倍率レベルが、シーケンスにおける最初の倍率レベルの後である場合、システムは、精細化された関心領域を画像化することができる。精細化された関心領域は、プロセスの以前の反復中に得られた画像を分析することによって得ることができる。
最初に、スライド全体が、関心領域として設定され、倍率レベルは、カメラがスライド全体を画像化できるように設定される(302)。
次いで、プロセス300は反復プロセスに入り、各反復は、増加していく倍率レベルのシーケンスにおけるそれぞれの倍率レベルに対応する。プロセス300の最初の反復は、シーケンスにおける最初の(すなわち、最も低い)倍率レベルに対応し、後続の各反復は、以下でより詳細に説明するように、シーケンスにおける次に高い倍率レベルに対応する。
システムは、カメラを使用して、現在の倍率レベルで、サンプルの識別された各関心領域のそれぞれの画像を取得および格納する(304)。例えば、識別された関心領域ごとに、システムは、顕微鏡ステージの位置を調節して、顕微鏡に現在の倍率レベルで関心領域の画像を生成させることができる。これには、関心領域ごとに識別された座標にステージを移動させること、例えば、カメラの視野の中心にそれぞれの関心領域を置くことを含めることができる。
カメラは、顕微鏡により生成された拡大画像を、適切なフォーマットで拡大画像のデジタル表現を生成することによって、取得することができる。例えば、カメラは、拡大画像のデジタル表現をRGB色表現で生成することができ、拡大画像のデジタル表現の各ピクセルは、ピクセルのそれぞれの赤、緑、および青の色値を定義するベクトルに関連づけられる。システムは、識別された関心領域のそれぞれの拡大画像を、データストア、例えば、物理的データストレージデバイスまたは論理的データストレージエリアに格納することができる。現在の倍率レベルでのサンプルの識別された関心領域ごとに、システムは、追加として、関心領域の拡大画像を、関心領域の場所(例えば、サンプルの基準系における)を定義するデータに関連づけるデータを格納する。
システムは、終了基準が満たされているかどうかを決定する(306)。例えば、システムは、現在の倍率レベルが所定の最大倍率レベルである場合、終了基準が満たされていると決定することができる。別の例として、システムは、現在の反復の時点でデータストアに格納されたデータの累積量(例えば、メガバイト(MB)単位で測定された)が、所定の閾値を満たしているかまたは超えている場合、終了基準が満たされていると決定することができる。
終了基準が満たされているとシステムが決定した場合、システムは、後続の分析および処理のために、プロセス300の各反復で取得および格納されたそれぞれの関心領域の拡大画像を提供することができる(308)。例えば、サンプルが組織サンプルであり、それぞれの関心領域の拡大画像が、異常(例えば、癌性)であると予測される組織サンプルの部分を示している場合、システムは、拡大画像を病理医に提供することができる。遠隔医療環境では、病理医は、システムから遠隔にいることができ、システムは、データ通信リンク(例えば、インターネット)を介して病理医に組織サンプルのそれぞれの領域の拡大画像を提供することができる。いくつかの実施態様では、システムは、画像が得られたときに、例えば、画像内の関心領域が識別されるまで待って、その後にその画像を送ることをせず、データ通信リンクを介して画像を提供することができる。
終了基準が満たされていないとシステムが決定した場合、システムは、現在の倍率レベルでのサンプルの関心領域の画像に基づいて、1つまたは複数の精細化された関心領域を画定するデータを生成する(310)。これらの精細化された関心領域は、次の倍率レベルで画像化されることになる。
特に、現在の倍率レベルでのサンプルの関心領域の画像ごとに、システムは、検出モデルを使用して画像を処理して、1つまたは複数の対応する精細化された関心領域を生成する。組織サンプルの精細化された関心領域は、増加していく倍率レベルのシーケンスにおける次の倍率レベルで(すなわち、プロセス300の次の反復で)画像化されるべき関心領域を提供する。場合によっては、現在の倍率レベルでサンプルの所与の関心領域の拡大画像を処理することによって生成される各精細化された関心領域は、サンプルの適切なサブセットに対応し、特に、所与の関心領域のサブセットである。
検出モデルは、例えば、特定の特性を有する精細化された関心領域を画定するデータを生成するように訓練された機械学習モデル(例えば、線形モデル、サポートベクトルマシンモデル、ランダムフォレストモデル、またはニューラルネットワークモデル)とすることができる。特定の例では、サンプルは、組織サンプルとすることができ、機械学習モデルは、異常(例えば、癌性)である予測される組織サンプルの部分に対応する精細化された関心領域を画定するデータを生成するように訓練され得る。以下にいくつかの例が続く。
1つの実施態様では、検出モデルは、現在の倍率レベルでの組織サンプルの関心領域の拡大画像のピクセルごとにそれぞれの確率値を生成するように訓練された機械学習モデルとすることができる。ピクセルに対して検出モデルによって生成された確率値は、ピクセルが組織サンプルの異常部分に対応する確度を表すことができる。システムは、バウンディングボックスの座標を決定することによって組織サンプルの精細化された関心領域を画定するデータを生成することができ、バウンディングボックスの各々によって囲まれたピクセルの対応する確率値は、所定の閾値を超える中心傾向の測度(例えば、平均値)を有する。検出モデルは、以下に明記する訓練例に基づいて訓練され得る。(i)組織サンプルの領域を示す訓練拡大画像、および(ii)訓練拡大画像の各ピクセルが組織サンプルの異常部分に対応するかどうかを定義するラベル。
別の実施態様では、検出モデルは、現在の倍率レベルでの組織サンプルの領域の拡大画像の一部を囲むバウンディングボックスの座標を定義するデータを生成するように訓練された機械学習モデルとすることができる。組織サンプルの異常部分に対応するように、各バウンディングボックスを予測することができ、システムは、生成される各バウンディングボックスを、組織サンプルのそれぞれの精細化された関心領域を画定するように決定することができる。検出モデルは、以下に明記する訓練例に基づいて訓練され得る。(i)組織サンプルの領域を示す訓練拡大画像、および(ii)組織サンプルの異常部分に対応するバウンディングボックスを画定する座標。
システムは、異なる倍率レベルでのサンプルの関心領域の拡大画像を処理するために異なる検出モデルを使用することができる。すなわち、システムは、プロセス300の各反復で異なる検出モデルを使用することができる。例えば、システムは、パラメータ値の第1のセットを有する第1の機械学習モデルを使用して、第1の倍率レベルでの拡大画像を処理し、パラメータ値の第2のセットを有する第2の機械学習モデルを使用して、第2の倍率レベルでの拡大画像を処理することができる。この例では、パラメータ値の第1のセットは、第1の倍率レベルでの訓練拡大画像を含む訓練例に基づいて第1の機械学習モデルを訓練することによって決定され得る。同様に、パラメータ値の第2のセットは、第2の倍率レベルでの訓練拡大画像を含む訓練例に基づいて第2の機械学習モデルを訓練することによって決定され得る。異なる倍率レベルでの拡大画像を処理するように特化されている検出モデルを使用することによって、システムは、システムが単一の検出モデルを使用してすべての倍率レベルでの拡大画像を処理する場合よりも正確である精細化された関心領域を生成することができる。
システムは、サンプルの関心領域の拡大画像を前処理し、その後、検出モデルを使用してそれを処理して、精細化された関心領域を生成することができる。1つの例では、サンプルは組織サンプルとすることができ、システムは、染色正規化技法を使用して組織サンプルの関心領域の拡大画像を前処理することができる。染色正規化技法は、組織サンプルに適用された染色剤による画像の外観の変動を低減するために組織サンプルの画像を修正するための数値法を指す。
いくつかの場合には、システムは、現在の倍率レベルでの関心領域のうちの1つまたは複数をより高い倍率レベルでさらに画像化すべきでないことを決定することができる。例えば、サンプルは、組織サンプルとすることができ、検出モデルは、所与の関心領域が組織サンプルの正常な部分に対応する可能性が高いことを示す所与の関心領域の拡大画像のピクセルごとにそれぞれの確率値を生成することができる。現在の倍率レベルでの関心領域のどれも、より高い倍率レベルでさらに画像化されるべきでないとシステムが決定する場合、プロセス300は終了することができる。
サンプルの関心領域は、任意の適切な形状、例えば、長方形形状、円形形状を有することができる。サンプルの関心領域を画定するデータは、任意の適切なフォーマットで表すことができる。例えば、関心領域が長方形形状を有する場合、関心領域を画定するデータは、長方形の関心領域のコーナーの座標(例えば、サンプルの基準系における)を含むことができる。
新しい関心領域の識別の後にまたはそれと同時に、倍率レベルを次のレベルに上げることができる、例えば、顕微鏡倍率設定をロボットのアクチュエータを使用して設定する(312)。次いで、プロセスは、新しい倍率レベルで関心領域の画像を取得および格納することに進む(304に戻る)。
便宜上、プロセス300は、増加していく倍率レベルの順序でサンプルの関心領域を画像化するとして、画像化システムを説明している。より具体的には、プロセス300は、より低い倍率レベルに対応する各関心領域がより高い倍率レベルに対応する各関心領域の前にどのようにして画像化されるかを説明している。より一般的には、システムは、関心領域を任意の適切な順序で画像化することができる。例えば、システムは、階層ツリー手法を使用することができる。
図4は、上述の操作を実行するために使用することができる例示のコンピュータシステム400のブロック図である。システム400は、プロセッサ410、メモリ420、ストレージデバイス430、および入力/出力デバイス440を含む。構成要素410、420、430、および440の各々は、例えば、システムバス450を使用して相互接続することができる。プロセッサ410は、システム400内で実行するための命令を処理することができる。1つの実施態様では、プロセッサ410は、シングルスレッドプロセッサである。別の実施態様では、プロセッサ410はマルチスレッドプロセッサである。プロセッサ410は、メモリ420にまたはストレージデバイス430に格納された命令を処理することができる。
メモリ420は、システム400内の情報を格納する。1つの実施態様では、メモリ420は、コンピュータ可読媒体である。1つの実施態様では、メモリ420は、揮発性メモリユニットである。別の実施態様では、メモリ420は、不揮発性メモリユニットである。
ストレージデバイス430は、大容量ストレージをシステム400に提供することができる。1つの実施態様では、ストレージデバイス430は、コンピュータ可読媒体である。様々な異なる実施態様において、ストレージデバイス430は、例えば、ハードディスクデバイス、光ディスクデバイス、多数のコンピューティングデバイスによってネットワークを介して共有されるストレージデバイス(例えば、クラウドストレージデバイス)、または他の大容量ストレージデバイスを含むことができる。
入力/出力デバイス440は、システム400に入力/出力操作を提供する。1つの実施態様では、入力/出力デバイス440は、1つまたは複数のネットワークインタフェースデバイス、例えば、イーサネットカード、シリアル通信デバイス、例えば、RS-232ポート、および/または無線インタフェースデバイス、例えば、802.11カードを含むことができる。別の実施態様では、入力/出力デバイスは、入力データを受け取り、出力データを他の入力/出力デバイス、例えば、キーボード、プリンタ、およびディスプレイデバイス460に送るように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビジョンクライアントデバイスなどのような他の実施態様を使用することもできる。
例示の処理システムが図4に記載されているが、本明細書に記載される主題および機能動作の実施態様は、本明細書で開示される構造およびその構造的等価物を含む、他のタイプのデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つまたは複数の組合せで実施することができる。
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作時にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されたとき、装置に動作またはアクションを実行させる命令を含むことを意味する。
本明細書に記載される主題および機能動作の実施形態は、本明細書で開示される構造およびその構造的等価物を含む、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、コンピュータコンピュータハードウェアで、またはそれらのうちの1つまたは複数の組合せで実施することができる。本明細書に記載される主題および機能動作の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置で実行するためのまたはデータ処理装置の動作を制御するための有形の非一時的ストレージ媒体にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュールとして実施することができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せとすることができる。代替としてまたは加えて、プログラム命令は、データ処理装置による実行のために適切な受信器装置に送信するための情報をエンコードするために生成される人工的に生成された伝搬信号、例えば、機械生成された電気、光、電磁気信号でエンコードすることができる。
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または多数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)とすることもでき、またはそれをさらに含むことができる。装置は、オプションとして、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含むことができる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードと呼ばれるか、またはそのように記述される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピュータ環境で使用するのに適する他のユニットとしてを含む、任意の形態で展開することができる。プログラムは、ファイルシステム内のファイルに対応することができるが、そうである必要はない。プログラムは、他のプログラムまたはデータ、例えば、マークアップ言語ドキュメントに格納された1つまたは複数のスクリプトを保持するファイルの一部に、当該のプログラムに専用の単一のファイルに、または多数の協調ファイルに、例えば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部分を格納するファイルに格納することができる。コンピュータプログラムは、1つのコンピュータで実行されるように展開することができ、または1つのサイトに配置されるか、もしくは多数のサイトにわたって分散され、データ通信ネットワークによって相互接続される多数のコンピュータで実行されるように展開することができる。
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされたソフトウェアベースシステム、サブシステム、またはプロセスを指すように広く使用される。一般に、エンジンは、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装されることになる。ある場合には、1つまたは複数のコンピュータが、特定のエンジンに専用にされることになり、他の場合には、多数のエンジンが、同じ1つまたは複数のコンピュータにインストールおよび実行され得る。
本明細書に記載されるプロセスおよび論理の流れは、1つまたは複数のプログラマブルコンピュータが1つまたは複数のコンピュータプログラムを実行することによって実行されて、入力データを処理し出力を生成することによって機能を実行され得る。プロセスおよび論理の流れはまた、専用論理回路、例えば、FPGA、ASICによって、または専用論理回路と1つまたは複数のプログラムされたコンピュータの組合せによって実行され得る。
コンピュータプログラムの実行に適するコンピュータは、汎用マイクロプロセッサ、専用マイクロプロセッサ、もしくは両方、または任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読出し専用メモリ、ランダムアクセスメモリ、または両方から命令およびデータを受け取ることになる。コンピュータの必須要素は、命令を遂行または実行するための中央処理装置、ならびに命令およびデータを格納するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補足されるか、またはそれに組み込まれてもよい。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量ストレージデバイス、例えば、磁気ディスク、光磁気ディスク、光ディスクを含むか、またはそれからデータを受け取るか、それにデータを転送するか、もしくは両方のためにそれに動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、例えば、数例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲーム機、全地球測位システム(GPS)受信器、または携帯用ストレージデバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
コンピュータプログラム命令およびデータを格納するのに適するコンピュータ可読コンピュータストレージ媒体は、例として、半導体メモリデバイス(例えば、EPROM、EEPROM、フラッシュメモリデバイス)、磁気ディスク(例えば、内蔵ハードディスクまたは取外し可能ディスク)、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
ユーザとの対話を可能にするために、本明細書に記載される主題の実施形態は、情報をユーザに表示のためのディスプレイデバイス、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、およびユーザがコンピュータに入力することができるキーボードおよびポインティングデバイス、例えば、マウス、トラックボールを有するコンピュータで実施することができる。他の種類のデバイスを使用して、同様に、ユーザとの対話を可能にすることができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受け取られ得る。加えて、コンピュータは、ユーザが使用するデバイスにドキュメントを送り、およびユーザが使用するデバイスからドキュメントを受け取ることによって、例えば、ウェブブラウザから受け取った要求に応じて、ユーザのデバイスのウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、例えば、メッセージングアプリケーションを実行しているスマートフォンに送り、返信としてユーザから応答メッセージを受け取ることによってユーザと対話することができる。
機械学習モデルを実施するためのデータ処理装置はまた、機械学習の訓練または生成の共通および計算集約的部分、すなわち、推測、作業負荷を処理するために、例えば、専用ハードウェアアクセラレータユニットを含むことができる。
機械学習モデルは、機械学習フレームワーク、例えば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実施および展開することができる。
本明細書に記載された主題の実施形態は、例えばデータサーバとしてバックエンド構成要素を含むコンピューティングシステムで、またはミドルウェア構成要素、例えばアプリケーションサーバを含むコンピューティングシステムで、またはフロントエンド構成要素、例えば、ユーザが本明細書に記載される主題の実施態様と対話することができるグラフィカルユーザインタフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータを含むコンピューティングシステムで、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せで実施することができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えば、インターネットを含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、一般に、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で作動し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、例えば、クライアントとして働くデバイスと対話するユーザにデータを表示し、ユーザからのユーザ入力を受信するために、データ、例えばHTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、例えば、ユーザ対話の結果は、サーバにおいてデバイスから受信され得る。
本明細書は多くの特別の実施態様を含むが、これらは、発明の範囲または特許請求され得るものの範囲への限定として解釈されるべきでなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。本明細書において別個の実施形態の文脈で説明されているいくつかの特徴は、単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態の文脈に記載されている様々な特徴は、多数の実施形態において別個にまたは適切な副組合せで実施することもできる。その上、特徴は特定の組合せで作用するとして上述され、さらに最初にそのように特許請求されることがあるが、特許請求された組合せからの1つまたは複数の特徴は、場合によっては、組合せから削除されてもよく、特許請求された組合せは、副組合せ、または副組合せの変形に関することもある。
同様に、動作が、特定の順序で図面に示され、特許請求の範囲に列挙されているが、これは、望ましい結果を達成するために、そのような動作が、示された特定の順序でもしくは一連の順序で実行されること、またはすべての図示の動作が実行されることを必要とするとして理解されるべきでない。特定の状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上述の実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするとして理解されるべきでなく、記載されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合されるか、または多数のソフトウェア製品にパッケージ化されてもよいことを理解されたい。
主題の特定の実施形態が説明された。他の実施形態は、以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に列挙されたアクションは、異なる順序で実行することができ、依然として、望ましい結果を達成することができる。1つの例として、添付の図に示されたプロセスは、望ましい結果を達成するために、示された特定の順序または一連の順序を必ずしも必要としない。場合によっては、マルチタスキングおよび並列処理が有利であり得る。