上述のように、既存の問題のいくつかを解決するニューラルネットワークのモデルを訓練するための改善された方法及びシステムが提供される。
図1は、ニューラルネットワークのモデルを訓練するために使用され得る一実施形態によるシステム100のブロック図を示す。図1を参照すると、システム100は、システム100の動作を制御する、及び、本明細書において説明されている方法を実施し得るプロセッサ102を備える。
システム100は、命令セットを表す命令データを含むメモリ106をさらに備える。メモリ106は、本明細書において説明されている方法を実施するようにプロセッサ102により実行され得るプログラムコードの形態による命令データを記憶するように構成される。いくつかの実施態様において、命令データは、本明細書において説明されている方法の個々の、又は複数のステップを実施するように、又は実施するために各々が構成された複数のソフトウェア及び/又はハードウェアモジュールを含み得る。いくつかの実施形態において、メモリ106は、システム100の1つ又は複数の他のコンポーネント(例えば、プロセッサ102及び/又はシステム100の1つ又は複数の他のコンポーネント)をさらに備えるデバイスの一部である。代替的な実施形態において、メモリ106は、システム100の他のコンポーネントに対して独立したデバイスの一部である。
いくつかの実施形態において、メモリ106は、複数のサブメモリを備え、各サブメモリは、命令データの一部を記憶することができる。メモリ106が複数のサブメモリを備えるいくつかの実施形態において、命令セットを表す命令データは、1つのサブメモリに記憶される。メモリ106が複数のサブメモリを備える他の実施形態において、命令セットを表す命令データは、複数のサブメモリに記憶される。例えば、少なくとも1つのサブメモリが命令セットの少なくとも1つの命令を表す命令データを記憶するとともに、少なくとも1つの他のサブメモリが命令セットの少なくとも1つの他の命令を表す命令データを記憶する。したがって、いくつかの実施形態によると、異なる命令を表す命令データが、システム100における1つ又は複数の異なる位置に記憶される。いくつかの実施形態において、メモリ106は、システム100のプロセッサ102により、又は、システム100の任意の他のコンポーネントから獲得された、又は作られた情報、データ、信号、及び測定結果を記憶するために使用される。
システム100のプロセッサ102は、命令セットを実行するようにメモリ106と通信するように構成され得る。命令セットは、プロセッサ102により実行されると、本明細書において説明されている方法を実施することをプロセッサ102に行わせる。プロセッサ102は、本明細書において説明されている手法によりシステム100を制御するように構成又はプログラムされた1つ又は複数のプロセッサ、処理ユニット、マルチコアプロセッサ、及び/又はモジュールを備え得る。いくつかの実施態様において、例えば、プロセッサ102は、複数の(例えば、相互運用された)プロセッサ、処理ユニット、マルチコアプロセッサ、及び/又は、分散処理のために構成されたモジュールを備える。このようなプロセッサ、処理ユニット、マルチコアプロセッサ、及び/又は、モジュールが異なる位置に位置し、本明細書において説明されている方法の異なるステップ及び/又は1つのステップの異なる部分を実施することが当業者により理解される。
再度図1に戻ると、いくつかの実施形態において、システム100は、少なくとも1つのユーザーインターフェース104を備える。いくつかの実施形態において、ユーザーインターフェース104は、システム100の1つ又は複数の他のコンポーネント(例えば、プロセッサ102、メモリ106、及び/又は、システム100の1つ又は複数の他のコンポーネント)をさらに備えるデバイスの一部である。代替的な実施形態において、ユーザーインターフェース104は、システム100の他のコンポーネントに対して独立したデバイスの一部である。
ユーザーインターフェース104は、システム100のユーザー(例えば、研究者、ニューラルネットワークのモデルの設計者又は開発者、医療従事者、対象者、又は、ニューラルネットワークのモデルの任意の他のユーザー)に、本明細書の実施形態による方法により結果的にもたらされる情報を提供することにおける使用のためのものである。命令セットは、プロセッサ102により実行されると、本明細書の実施形態による方法により結果的にもたらされる情報を提供するように、1つ又は複数のユーザーインターフェース104を制御することをプロセッサ102に行わせる。代替的に、又は追加的に、ユーザーインターフェース104は、ユーザー入力を受信するように構成される。言い換えると、ユーザーインターフェース104は、システム100のユーザーが命令、データ、又は情報を手動で入力することを可能にする。命令セットは、プロセッサ102により実行されると、1つ又は複数のユーザーインターフェース104からユーザー入力を獲得することをプロセッサ102に行わせる。
ユーザーインターフェース104は、システム100のユーザーに対して、情報、データ、又は信号のレンダリング(又は、出力又は表示)を可能にする任意のユーザーインターフェースである。代替的に、又は追加的に、ユーザーインターフェース104は、システム100のユーザーがユーザー入力を提供すること、システム100と相互作用すること、及び/又はシステム100を制御することを可能にする任意のユーザーインターフェースである。例えば、ユーザーインターフェース104として、1つ又は複数のスイッチ、1つ又は複数のボタン、キーパッド、キーボード、マウス、マウスホイール、(例えば、タブレット又はスマートフォンにおける)タッチスクリーン又はアプリケーション、ディスプレイスクリーン、グラフィカルユーザーインターフェース(GUI)又は他の視覚レンダリングコンポーネント、1つ又は複数のスピーカー、1つ又は複数のマイクロホン又は任意の他のオーディオコンポーネント、1つ又は複数のライト、触覚フィードバック(例えば振動機能)を提供するためのコンポーネント、又は、任意の他のユーザーインターフェース、又は、ユーザーインターフェースの組合せが挙げられる。
いくつかの実施形態において、図1に示されるように、システム100は、システム100がインターフェース、メモリ、及び/又はシステム100の一部であるデバイスと通信することを可能にするための通信インターフェース(又は回路)108をさらに備える。通信インターフェース108は、無線により、又は有線接続を介して任意のインターフェース、メモリ、及びデバイスと通信する。
図1は、本開示のこの態様を示すために必要とされるコンポーネントのみを示し、実用的な実施態様では、システム100は、示されるものに追加的なコンポーネントを備えることが理解される。例えば、システム100は、システム100に給電するための電池又は他の電源、又は、主電源にシステム100を接続するための手段を備える。
より詳細には、上述のように、メモリ106は命令セットを表す命令データを含む。一時的に、命令セットは、システム100のプロセッサ102により実行されると、訓練データを獲得することをプロセッサ102に行わせる。訓練データは、データと、ユーザーにより決定されたデータに対する注釈と、補助データとを含み、補助データは、データに対する注釈を決定するときにユーザーにより考慮される、データにおける少なくとも1つの関心位置を記述する。命令セットは、システム100のプロセッサ102により実行されると、訓練データを使用してプロセッサ102にモデルを訓練させる。モデルを訓練することをプロセッサ102に行わせることは、少なくとも1つの関心位置をモデルの1つ又は複数の層の出力と比較する補助損失関数を最小化することと、ユーザーにより決定されたデータに対する注釈をモデルにより生成された注釈と比較する主損失関数を最小化することとをプロセッサに行わせることを有する。
ここまでに簡単に説明されているように、本明細書のシステムは、正しい注釈を決定(例えば捻出)するときにユーザーがデータのどの部分を考慮したか(例えば見たか)を示す補助(例えば追加的)データが、ユーザーがデータに注釈付けするときにユーザーから取得され得る実現例に基づく。データのこのような部分は、本明細書において関心位置と呼ばれ、データにおける関心位置のこの知識情報は、注釈を生成するときに、データにおける関心位置により大きな重みを与えるように、ニューラルネットワークのモデルを訓練するために使用され得る。この手法により、関心位置は、モデルを訓練するために使用され得る追加的なデータを提供する。これは、より迅速に、及び効率的にモデルを訓練することに役立つ。さらに、関心位置は、例えば、ユーザーが訓練データに注釈付けするときに取得された視線、ジェスチャー、又は発話データから(例えば、ユーザーが任意の追加的な注釈を提供する必要なく)「フリーで」取得され得る。この手法により、訓練は、ユーザーにとって、より高効率かつ費用効果の高いものにされる。
人工的ニューラルネットワーク、又は単にニューラルネットワークは、当業者によく知られているが、端的に言えば、ニューラルネットワークは、データに注釈付け(例えば、分類又はラベル付け)する(例えば、画像データを分類する又は画像データに対してラベル若しくは注釈を生成する)ために使用され得る種類のモデルである。ニューラルネットワークの構造は、ヒトの脳によりインスピレーションを受けたものである。ニューラルネットワークは層を含み、各層は複数のニューロンを含む。各ニューロンは、数学的演算を含む。データを分類する工程において、各ニューロンの数学的演算が、数値出力を生成するためにデータに対して実施され、ニューラルネットワークにおける各層の出力は、逐次的に隣の層に供給される。(データを分類するときに)ニューロンの数値出力の大きさは、多くの場合、そのニューロンの「アクティブ化レベル」と呼ばれる。いくつかのニューラルネットワーク、例えば畳み込みニューラルネットワークでは、ニューラルネットワークにおける、より低い層(すなわち、ニューラルネットワークにおいて一連の層の先頭に向かう層)は、分類されているデータにおける小さい特徴又はパターンによりアクティブ化され(すなわち、それらの出力が、分類されているデータにおける小さい特徴又はパターンに依存し)、その一方で、より高い層(すなわち、ニューラルネットワークにおいて一連の層の終端に向かう層)は分類されているデータにおいて次第に大きくなる特徴によりアクティブ化される。一例として、データが画像を含み、モデルがニューラルネットワークを含む場合、ニューラルネットワークにおける、より低い層は、小さい特徴(例えば例として画像におけるエッジパターン)によりアクティブ化され、中レベル層は、画像における特徴、例えば例としてより大きい形状及び形態によりアクティブ化され、出力に最も近い層(例えばより上の層)は、画像における物体全体によりアクティブ化される。異なる分類のデータは、異なるアクティブ化パターンを生成する(例えばネットワークにおける異なるアクティブ化シグネチャをもつ)。例えば、心臓の画像は、肺の画像とは異なるアクティブ化パターンを生成する。したがって、ニューラルネットワークは、ニューラルネットワークにおいて生成されたアクティブ化パターンに従ってデータを分類する。
データが画像を含み、モデルが画像のコンテンツを分類するためのものである本明細書におけるいくつかの例において、ニューラルネットワークにおける各ニューロンは、画像におけるピクセル(又は、三次元においてボクセル)値の重み付けされた線形和と後に続く非線形変換とを含む数学的演算を含む。ニューラルネットワークにおいて使用される非線形変換の例として、シグモイド関数、双曲線接線関数、及び正規化線形関数が挙げられる。ニューラルネットワークの各層におけるニューロンは、概して、1種類の変換の異なる重み付けされた組合せ(例えば、シグモイドなどの同じ種類の変換であるが、異なる重み付けを伴うもの)を含む。当業者によく知られているが、いくつかの層において、同じ重みが、線形和において各ニューロンにより適用され、例えば、畳み込み層の場合にこれが適用される。各ニューロンの出力は数値であり、上述のように、ニューロンの数値出力の大きさは、画像を分類するために使用されるニューロンアクティブ化パターンを形成する。
概して、(本明細書において「モデル」と呼ばれる)ニューラルネットワークのモデルは、データに注釈付けする(例えば分類する)ために使用され得る任意の種類のニューラルネットワークのモデルを備える。モデルの例として、フィードフォワードモデル(例えば畳み込みニューラルネットワーク、オートエンコーダニューラルネットワークモデル、確率論的ニューラルネットワークモデル、及び時間遅れニューラルネットワークモデル)、放射基底関数ネットワークモデル、回帰ニューラルネットワークモデル(例えば、完全回帰型モデル、ホップフィールドモデル、又はボルツマン機械モデル)、又は、任意の他の種類のニューラルネットワークモデルが挙げられるが、これらに限定されない。当業者は、本明細書における教示が適用される他の種類のモデルを認識する。
いくつかの実施形態において、モデルは修正されたU−Netアーキテクチャを含む。U−Netモデルの層はすべてが畳み込み層であるので、U−Netアーキテクチャは、例えば画像データを伴う用途に十分に適している。それは、さらに、他の種類のニューラルネットワークアーキテクチャに比べて少ない入力データを要求する。したがって、それは、ヒートマップ(又は他の画像データ)の形態により表される関心位置を処理することに対する適応に十分に適している。しかし、当業者は、他のアーキテクチャも可能であることを理解する。
概して、ニューラルネットワークのモデルは、データを分類する(例えば、データに対する注釈又はラベルを提供する)ために使用される。データは、ユーザーがデータに注釈付けするときにユーザーに視認可能に表示され得る任意の種類のデータである。例えば、データとして、画像(例えば画像データ)、ビデオ(例えばビデオデータ)、例えば文献又は記録といった文字列を含むデータ、視覚的に表され得る波形を含むデータ(例えば心電図(ECG)又は同様のもの)、又は、ユーザーがデータに注釈付けするときにユーザーに視認可能に表示され得る任意の他の種類のデータが挙げられる。いくつかの実施形態において、データは、医療画像(例えばx線画像、超音波画像など)又は医療記録などの医療データを含む。概して、データは、二次元データ又は三次元データ(例えば、三次元画像又はビデオ)を含む。いくつかの実施形態において、データは、ユーザーに表示され得る視認可能なデータを含む。いくつかの実施形態において、データは、決められた(例えば固定の、又は再現可能な)構成により構成され、例えば、構成は、人間の注釈者とモデルとの両方により推論可能である(例えば視認可能であり、又は導出可能である)。例えば、データは画像を含み、画像のピクセル(又は、3Dにおけるボクセル)は固定の構成により構成される。別の例において、データは、人間とモデルとの両方に対して同じ手法によりレンダリングされ得るテキスト文書を含む。これらは、ニューラルネットワークのモデルにより処理される種類のデータの例にすぎないこと、及び、ニューラルネットワークのモデルにより分類される他の種類の視認可能なデータについて当業者によく知られていることが理解される。
ニューラルネットワークのモデルは、データを取り込むように、及び、データに対する注釈、例えばデータに対する分類又はラベルを生成するように訓練される。例えば、注釈は、データのコンテンツを説明する。いくつかの実施形態において、モデルが物体検出モデルを含み、このことにより、モデルが、特定のオブジェクト又は特徴がデータに存在するか否かを検出する。いくつかの実施形態において、物体は、医療画像におけるステントを含む。いくつかの実施形態において、モデルがローカライゼーションモデルを含み、このことにより、モデルが、データの特定のオブジェクト又は特徴に対応したデータにおける位置を示す。いくつかの実施形態において、モデルは、医療画像におけるステントの位置を特定する。データが医療画像データなどの画像データである例では、注釈は画像のコンテンツを説明し、又は医療イメージングの場合、注釈は、画像における1つ又は複数の解剖学的特徴又は物体を説明する。いくつかの例において、注釈は、医療画像から観測可能な病状の診断結果を示す。データがドキュメント、例えば医療記録である例では、モデルは、特定の特徴を特定すること、又は、ドキュメントのコンテンツから特定の推論を行うことにより、データに注釈付けするように訓練される(例えば、医療記録に基づいて、モデルは、患者が糖尿病を発症する高いリスクをかかえていることを特定するように訓練される)。データが波形を含む実施形態において、モデルは、例えば、例えば波形における異常といった特徴の位置を特定するように訓練される。しかし、これらはデータが注釈付けされる種類の手法の例示にすぎないこと、及び、当業者がモデルにより生成される他の注釈を考えることができることが理解される。
上述のように、命令セットは、プロセッサ102により実行されると、プロセッサ102に訓練データを獲得させ、訓練データが、データと、ユーザーにより決定されたデータに対する注釈と、補助データとを含み、補助データが、データに対する注釈を決定するときにユーザーにより考慮される、データにおける少なくとも1つの関心位置を記述する。
概して、訓練データは、上述のようにモデルが分類する種類のデータを記述するデータの例示的な部分を含む。例えば、モデルが画像データ(医療画像データなどの)を分類するためのものである場合、訓練データは、モデルが分類する同じ種類の画像の例を含む。データに対する注釈はユーザーにより決定され、上述のようにモデルが生成する同じ種類の注釈(例えば分類又はラベル)の例を含む。
訓練データは、データに対する注釈を決定するときにユーザーにより考慮される、データにおける少なくとも1つの関心位置を記述する補助データをさらに含む。いくつかの実施形態において、補助データは視線データを含み、データにおける少なくとも1つの関心位置は、データに対する注釈を決定するときにユーザーが観察した(例えば見た)データにおける少なくとも1つの位置を含む。概して、ユーザーが注釈を決定するときにユーザーにより見られたデータにおける位置は、データに対する正しい注釈を決定するために重要なデータの特徴を表す。したがって、モデルにこの情報を提供することにより、モデルは、他のデータを注釈付けするときに他のデータにおいてこれらの(又は同等な)位置を考慮するように、訓練工程中にガイドされる。
いくつかの実施形態において、視線データが、データに対する注釈を決定するときにユーザーがデータのどの部分を見たかを示す情報と、データに対する注釈を決定するときにユーザーがデータの各部分を見ることに費やした時間長を示す情報と、データに対する注釈を決定するときにユーザーがデータの異なる部分を見た順序を示す情報とのうちの1つ又は複数を含む。この手法により、データの異なる部分の相対的な重要性が評価され得る。例えば、データにおける他の位置に比べて長期にわたってユーザーが関心位置を考慮した場合、又は、ユーザーが、データに対する適切な注釈を決定するとき、関心位置に何度も戻って来た(関心位置がデータの最も重要な部分のうちの1つであることを示す)場合、データにおける関心位置は、正しい注釈(又は分類)を生成することにおいて、特に重要(例えば決定的要因)である。さらに、ユーザーが各関心位置を考慮する順序も重要である。例えば、ユーザーは、データに対する正しい注釈を決定するときに考慮する最も重要なデータにおける特徴にまず引き付けられる。代替的に、例えば、ユーザーが最終的な注釈を決定するために使用されるデータのより細かい特徴に「注視する」ことに時間をかけた場合、より重要な特徴は、ユーザーが最後に見たそうした特徴である。
図2は、一実施形態による補助データの一例を示す。この実施形態において、データは画像を含み、補助データはグラフを含む。グラフのx軸は時間を表し、y軸は画像の座標を表す。線202は、ユーザーが各時点において考慮した画像のx軸座標を示し、線204は、ユーザーが画像に対する注釈を決定したときにユーザーが各時点において考慮した画像のy軸座標を示す。このグラフから、例えば、時点「500」付近においてユーザーにより観察された第1の関心位置が座標(x,y)=(500,400)であったことが確認され得る。
いくつかの実施形態において、補助データは、画像コンポーネント(例えばピクセル、又は三次元におけるボクセル)を含む画像を含み、各画像コンポーネントはデータの一部に対応する。図3は、一実施形態における補助データの一例を示し、これによれば、データは画像を含む。この実施形態において、図3に示される補助データ300は、画像における少なくとも1つの関心位置を示すマーカー302に重ねられた画像のコピーを含む。
いくつかの実施形態において、補助データはヒートマップを含み、ヒートマップにおける画像コンポーネント(例えばピクセル又はボクセル)の値は、各画像コンポーネントが、データにおける関心位置、及び/又は、データに対する注釈を決定するときにユーザーがデータの対応する位置を考慮することに費やした期間に対応しているかどうかと相関している。例えば、各画像コンポーネントの値は、データに対する注釈を決定している間にデータの対応する部分に対してユーザーが考慮すること(例えば見ること、又はジェスチャーすること)に費やした時間長に比例する。図4は、例示的な一実施形態を示し、これによれば、補助データはヒートマップ400である。この実施形態において、各画像コンポーネントの値は、ユーザーがデータの対応する部分を観察すること(例えば見ること)に費やした時間長に比例する。例えば、画像コンポーネントがより白い(例えばよりホットである)ほど、注釈を決定するときにユーザーはデータの対応する部分を観察することにより長く時間を費やした。図4において、白色のエリア402は、データにおける関心位置に一致する。当業者は、ヒートマップが、例として提供されるにすぎない本明細書において説明されているものに対する他の手法により、注視の寿命に相関していることを理解する。例えば、ヒートマップの値は、ユーザーがデータの対応する部分を観察することに費やした時間長に直接比例するとは限らない。例えば、値は、反比例し(例えば「よりコールドな」値が最も長く観測された領域に対応し)、及び/又は、観測時間の対数又は二乗に従って拡縮される。
いくつかの実施形態において、ヒートマップは、密度カーネル、例えばガウシアン密度カーネルとともに目立たない注視又はジェスチャー座標を畳み込むことにより生成される。これは、関心領域内に個々の関心位置(例えばポイント)の座標を効果的に広げる。
注視データの様々な例が提供されているが、例えば、人間工学的特徴表現、PCAベースの表現、又は、(例えば、LSTM回帰型ニューラルネットワークが自然言語処理において一般的に行われるので、LSTM回帰型ニューラルネットワークを使用して)連続値サマリーベクトルへの関心位置(例えば視線/ジェスチャー/発話座標)の符号化、圧縮表現、ランダムプロジェクション、又は、座標値タプルとしてのスパース表現といった、他のフォーマットの凝視データも可能であることが理解される。
いくつかの実施形態において、補助データはジェスチャーデータを含み、少なくとも1つの関心位置が、データに対する注釈を決定している間にユーザーがジェスチャーをした(例えば指し示した、うなずいた、又は、ユーザーの頭部を向けるように動かした)少なくとも1つの位置を含む。
いくつかの実施形態において、補助データは発話データを含み、少なくとも1つの位置が、ユーザーが発話データにおいてコメントした(例えば聴覚的に参照した)少なくとも1つの位置を含む。例えば、ユーザーは、発話的な手がかりを提供するとともに、データに対する適切な注釈を考え出す(例えば、ユーザーは、「画像の左上の角」のコンテンツを参照する)。
したがって、一般的には、関心位置は、ユーザーがデータに対する正しい注釈を決定するために使用したデータ(又はデータの一部)における位置を含む。データにおける少なくとも1つの関心位置が、上記の例の任意の組合せ(例えば、視線データから導出された1つ又は複数の関心位置、加えて、又は代替的に、発話データから導出された1つ又は複数の関心位置、加えて、又は代替的に、ジェスチャーデータから導出された1つ又は複数の関心位置)から導出されることが理解される。
いくつかの実施形態において、プロセッサ102は、データベースから訓練データを獲得するようにされる(例えば、訓練データは、以前に収集された履歴データを含む)。このようなデータベースは、システム100に対してローカルに記憶される。代替的に、このようなデータベースは、システム100に対して遠隔に、例えば外部サーバーに記憶される。
いくつかの実施形態において、プロセッサ102は、ユーザーから動的に(例えばリアルタイムで)訓練データを獲得するようにされる。例えば、プロセッサ102は、訓練データのためのデータを獲得するために、医療機器などの1つ又は複数個の機器と相互作用するように構成される。例えば、プロセッサ102は、医療機器とインターフェース接続するように、及び、訓練データにおける使用のための1つ又は複数の医療画像を獲得するように医療機器に命令するように医療機器に命令を送信するようにされる。命令セットは、プロセッサ102により実行されると、ユーザーが見るためにシステムのユーザーに対してデータをレンダリングするように、ユーザーインターフェース104に命令を提供することをプロセッサ102にさらに行わせる。したがって、ユーザーは、レンダリングされたデータからデータに対する注釈を決定することができる。
いくつかの実施形態において、システム100は、ユーザーインターフェース104、又は、ユーザーがデータに注釈付けするときにユーザーから視覚画像及び/又は音声データを補足することに適したユーザーインターフェース104をさらに備える。例えば、補助データが視線データ及び/又はジェスチャーデータを含む場合、システム100は、ユーザーの視線の動き(例えば、ユーザーの目の動き及び/又は移動方向)、及び/又は、ユーザーのジェスチャーによる動き(例えば、ユーザーの肢、手、頭部又は他の身体の部位の動き)を記録することに適した記録デバイス(例えば、画像捕捉デバイス、カメラ、又はビデオレコーダー)をさらに備える。いくつかの実施形態において、命令セットは、プロセッサ102により実行されると、データにおける少なくとも1つの関心位置を、ユーザーのビデオ又は画像データから特定することをプロセッサ102にさらに行わせる。いくつかの実施形態において、ビデオ又は画像データは、ユーザーがデータに注釈付けするときの(例えば、ユーザーがデータに注釈付けする工程にとりかかっているときの)ユーザーのビデオ又は画像データを含む。ユーザーの目の画像から画面上におけるユーザーの視線の位置を特定する方法、及び/又は、ジェスチャーデータを画面上における等価な位置に変換する(例えば指し示す)ための方法については当業者によく知られている。
いくつかの実施形態において、システム100は、例えば、マイクロホン又は他の音声記録デバイスといった、音声を記録するためのユーザーインターフェース104を備える。いくつかの実施形態において、命令セットは、プロセッサ102により実行されると、データにおける少なくとも1つの関心位置をユーザーの音声記録から特定することをプロセッサ102にさらに行わせる。いくつかの実施形態において、音声記録は、ユーザーがデータに注釈付けするときに作られる。いくつかの実施形態において、命令セットは、プロセッサ102により実行されると、言語処理技術を使用して音声記録からデータにおける少なくとも1つの関心位置を特定することをプロセッサ102にさらに行わせる。例えば、プロセッサ102は、発話におけるキーワードの言葉(例えば「上部」、「底部」、又は「側」などの語句)を分離して、これらをデータ(又はデータの一部)における位置と照合するようにされる。
システムは、三次元データにも使用され、例えば、関心位置は、眼の動き、ジェスチャー、又は発話の実行中にユーザーに表示された三次元データの配向又は部分を説明する情報と組み合わされて、眼の動き、ジェスチャー、及び発話を通して三次元データにおいて特定されることがさらに理解される。いくつかの実施形態において、システムは、拡張現実環境においてデータを表示すること、及び、視線/ジェスチャー及び/又は発話を捕捉することに適した、例えばディスプレイ及び記録デバイスといったユーザーインターフェース104を備え、したがって、三次元において補助データに注釈付けするための、及び補助データを捕捉するための、より多くの選択肢を提供する。
プロセッサ102がユーザーのビデオ記録、音声記録、及び画像からデータにおける関心位置を特定するようにされる手法の例が、本明細書において提供されるが、これらは例示にすぎないこと、及び、他の方法も可能であることが理解される。
訓練データが獲得された後に、命令セットは、プロセッサ102により実行されると、訓練データを使用してモデルを訓練することをプロセッサ102に行わせる。プロセッサ102は、少なくとも1つの関心位置をモデルの1つ又は複数の層の出力と比較する補助損失関数を最小化し、ユーザーにより決定されたデータに対する注釈をモデルにより生成された注釈と比較する主損失関数を最小化することにより、モデルを訓練するようにされる。
当業者は主損失関数(又は、コスト関数)に精通しているが、主損失関数(又は、コスト関数)により、ユーザーにより決定されたデータに対する注釈が、モデルにより生成された注釈と比較される。主損失関数が含む種類の損失関数は、モデルにより生成された注釈の種類に依存する。例えば、注釈のとり得る値の範囲が連続的であるモデル(例えば位置モデルであって、その位置モデルによってモデルがx−y座標を出力する位置モデル)に対して、主損失関数は、平均二乗誤差(MSE)損失関数を含む。分類問題であって、その分類問題によって出力がディスクリートである(例えば、注釈が、物体又は特徴がデータに存在するかそれともデータに存在しないかを示す)分類問題では、主損失関数は、交差エントロピー損失関数を含む。しかし、これらは例示にすぎないこと、及び、当業者は主損失関数のために使用され得る他の形態の損失関数に精通していることが理解される。
いくつかの実施形態において、補助損失関数を最小化することをプロセッサ102に行わせることは、補助データをモデルの1つ又は複数の畳み込み層の出力と比較することをプロセッサ102に行わせることを有する。例えば、モデルの畳み込み層におけるニューロンの出力値は、組み合わせて採用されたとき、画像(例えば入力画像の畳み込み)を効果的に表すので、補助データが画像を含む場合に、これは適切である。この手法により、例えば、畳み込み層が関心位置、又は、補助データにおける関心位置に位置する特徴に対応した画像を生成する(例えば、関心位置、又は、補助データにおける関心位置に位置する特徴を強調表示する、又は表立たせる)かどうかを判定するために、ヒートマップが畳み込み層のうちの1つの出力と比較され得る。
いくつかの実施形態において、補助損失関数を最小化することをプロセッサ102に行わせることは、補助データをモデルの1つ又は複数の高密度層の出力と比較することをプロセッサ102に行わせることを有する。ニューラルネットワークのモデルの高密度層におけるニューロンは、概して、値として表された補助データと、より簡単に比較され得る数値を生成する。
しかし、補助データがモデルの層の出力と直接比較されないものであることが理解される。例えば、いくつかの実施形態において、層の出力と補助データとの一方又は両方が、比較を行うことに適した形態に変換される。
例えば、補助データがヒートマップなどの画像を含む場合といった、補助データが(例えば、デジタル値とは反対に)連続値を含む実施形態では、補助損失関数は、平均二乗誤差損失関数を含む。しかし、これは一例にすぎず、当業者は、連続値の補助データとともに使用することに適した他の種類の損失関数に精通している。例えば、補助データが画像を含む実施形態では、命令セットは、プロセッサ102により実行されると、補助データ画像が確率分布を形成するように(例えば、画像が積分して単一になるように)、補助データ画像を正規化することをプロセッサ102に行わせる。この場合、補助損失関数は、(カテゴリカル)交差エントロピー損失関数、又は、カルバック・ライブラ発散損失関数を含む。
少なくとも1つの関心位置をモデルの1つ又は複数の層の出力と比較する補助損失関数を最小化することにより、モデルの特定の層が、データを分類するときに、データにおける関心位置(例えば、注釈を決定するときにユーザーが考慮した位置)を「表立たせる」、又は、より強調するように訓練され得る。
概して、機械学習モデルが生成(例えば初期化)されるとき、モデルにおける重みが、任意値に設定される。実際には、これは、注釈を作るときにモデルがデータの各部分を最初に均一に処置することを意味する。本明細書における実施形態では、補助データがモデルの1つ又は複数の隠れ層と比較される。モデルの各層の出力は、概して、モデルが注釈を生成するために使用するデータの特徴又は部分に対応する。したがって、1つ又は複数のこのような層の出力をデータにおける関心位置を含む補助データと比較することにより、モデルが分類を作るときにデータの最も関連する部分又は特徴を考慮しているかどうかが判定され得る。したがって、補助損失関数を最小化することにより、特定の層が、補助データにおける少なくとも1つの関心位置を出力するように訓練され得、それにより、データの最も重要な特徴に最大の重みを与えるようにモデルを訓練する。この手法により、重みが、注釈を作るときにデータの特定のエリアを他に比べてより強調するように、(例えばモデルが生成されたときに設定された任意値の重みから)モデルを迅速に調整するために更新される。これは、モデルにより生成された注釈(例えばモデルの出力)をユーザーにより決定された注釈と比較する主損失関数を単に最小化することによる場合より急速に集束に向けてモデルの重みを動かす。さらに、補助データはユーザーが注釈を決定するときにユーザーを観察することにより取得され得るので、補助データは、ユーザーの側におけるさらなる労力を一切伴わずに取得され得る。したがって、これは、結果として得られる訓練されたモデルの注釈の品質を維持しながら、ユーザーにとっての時間及び労力を削減する(ユーザー/注釈者が非常に熟練したものである場合、コスト削減を結果的にもたらす可能性がある)。
いくつかの実施形態において、補助損失関数を最小化することをプロセッサ102に行わせることは、関心位置ではないデータにおける位置に比べて、データにおける少なくとも1つの関心位置により高い有意性を与えるために、モデルの重みを更新することをプロセッサ102に行わせることを有する。この手法により、モデルはユーザーがデータに対する注釈を決定するときにユーザーが考慮した関心位置と同じ、データにおける位置により高い有意性を与える。
いくつかの実施形態において、補助損失関数を最小化することをプロセッサ102に行わせることは、より短い期間にわたってユーザーにより考慮された関心位置に比べて、より長い期間にわたってユーザーにより考慮された関心位置により高い有意性を与えるために、モデルの重みを更新することをプロセッサ102に行わせることを有する。この手法により、モデルは、データに対する注釈を決定するときにユーザーが観察に最も長い期間を費やしたデータにおける位置に(これらは、最も関連した、際立った、又は捉えにくいデータの部分であるので)、より高い有意性を与える。
いくつかの実施形態において、補助損失関数を最小化することをプロセッサ102に行わせることは、データに対する注釈を決定するときにユーザーにより初期時間間隔中に考慮されたデータにおける関心位置に、より高い有意性を与えるために、モデルの重みを更新することをプロセッサ102に行わせることを有する。例えば、ユーザーがデータに対する注釈を決定することに費やした時間間隔のうちの最初に、又は前半中に、又は最初の1/4(又は、任意の他の割合)の期間にユーザーが考慮した(例えば、観察した、見た、ジェスチャーをした対象の、又は、発話した対象の)データにおける関心位置(例えばデータの部分)に、より高い有意性が与えられる。ユーザーが最初に考慮したこのような特徴は、決定をするときに最大の最も重要な特徴を含む。
いくつかの実施形態において、補助損失関数を最小化することをプロセッサ102に行わせることは、ユーザーがデータに対する注釈を決定するときにユーザーにより最終時間間隔中に考慮したデータにおける関心位置(例えばデータの部分)に、より高い有意性を与えるために、モデルの重みを更新することをプロセッサ102に行わせることを有する。例えば、ユーザーがデータに対する注釈を決定することに費やした時間間隔のうちの最後に、又は後半に、又は最後の1/4(又は任意の他の割合)の期間にユーザーが考慮した(例えば観察した、見た、ジェスチャーをした対象の、又は、発話した対象の)データの部分に、より高い有意性が与えられる。最後にユーザーが考慮したこのような特徴は、最終的に注釈に最大の影響を与える、ユーザーが最初に気付かなかった、最も捉えにくい、又は際立った特徴を含む。
いくつかの実施形態において、補助損失関数を最小化することをプロセッサ102に行わせることは、ユーザーがデータに対する注釈を決定するときに複数回考慮したデータにおける関心位置(例えばデータの部分)に、より高い有意性を与えるために、モデルの重みを更新することをプロセッサ102に行わせることを有する。例えば、ユーザーが何度も戻って来たデータの部分は、分類をするために最も有意な、又は重要な特徴を含み、又は、ユーザーが何度も戻って来たデータの部分は分類に重要である異常を示すので、モデルは、ユーザーが何度も戻って来たデータの部分に、より高い有意性を与える。
異なる組合せも可能であり、例えば、初期時間間隔、最終時間間隔において考慮されたデータにおける関心位置、及び/又は、ユーザーがデータに対する注釈を決定するときに複数回考慮した関心位置のうちの任意の個々のもの、又は、これらのうちのものの任意の組合せ又は順列に、より高い有意性が与えられることが理解される。
上述のように、主損失関数及び補助損失関数は異なる目的を果たし、したがって、訓練の段階及び/又は訓練の目標に応じて、異なる時点における損失関数の一方又は他方を最小化することに焦点を当てることが有益である。いくつかの実施形態において、モデルを訓練することをプロセッサ102に行わせることは、補助損失関数と主損失関数とを並列に最小化することをプロセッサ102に行わせることを有する(例えば、主損失関数と補助損失関数との両方が訓練データがモデルにより処理されるごとに更新される)。この手法により、モデルの隠れ層は、出力層と同時に訓練される。いくつかの実施形態において、モデルを訓練することをプロセッサ102に行わせることは、主損失関数を最小化する前に補助損失関数を最小化することをプロセッサ102に行わせることを有する。例えば、正しい注釈を生成するように、より上の層及び/又は出力層を訓練する前に、データにおける関心位置に焦点を当てるように隠れ層を訓練することが演算的により効率的である。いくつかの実施形態において、モデルを訓練することをプロセッサ102に行わせることは、所定の閾値内に補助損失関数を最小化することであって、最小化した後でモデルが主損失関数を使用してさらに訓練される、最小化することをプロセッサ102に行わせることを有する。この手法により、モデルのより低い層が、補助データを使用して部分的に訓練され、モデルが解決しようとする特定の問題に対して改良される。様々な組合せの訓練計画も可能であり、例えば、訓練は、第1に、閾値内に補助損失関数を最小化することと、第2に、補助損失関数と主損失関数とを並列に最小化することであって、主損失関数だけを最小化する期間が後に続く、最小化することとを有することが理解される。様々な段階が、反復され、又は、任意の順序で組み合わされることも明らかである。例えば、主損失関数だけを最小化する期間の後に、プロセッサ102は、例えば、新しい訓練データが獲得された場合、補助損失関数を最小化するようにされる。
いくつかの実施形態において、命令セットは、プロセッサ102により実行されると、組み合わされた損失関数を計算することであって、組み合わされた損失関数が、主損失関数と補助損失関数との重み付けされた組合せを含む、計算することと、主損失関数を最小化することと補助損失関数を最小化することとの間の訓練の強調度を変えるために、組み合わされた損失関数の重み付けされた組合せに関連した1つ又は複数の重みを調節することとをプロセッサ102にさらに行わせる。例えば、組み合わされた損失関数は、主損失関数と補助損失関数との重み付けされた線形結合を含む。重み付けされた組合せに関連した重みは、訓練工程において主損失関数を最小化することの結果をより強調するために、例えば、主損失関数の重みに比べて補助損失関数の重みを減らすことにより、又はその逆により、訓練の強調度を変えるように調節される。いくつかの実施形態において、損失重みは、交差検証を使用して最適化され得、又は、予備的な知識情報に基づいて選択され得る。いくつかの実施形態において、重み付けされた線形結合の重みは、経時的に発展させられ、例えば、いくつかの実施形態において、重み付けされた組合せにおける補助損失関数に関連した重みは、経時的に(例えば、訓練の間に1から0まで)(例えば線形に)小さくされる。代替的に、又は追加的に、重み付けされた線形結合における主損失関数に関連した重みは、経時的に(例えば、訓練の間に0から1まで)(例えば線形に)大きくされる。この手法により、訓練の強調度は、補助損失関数を最小化することから主損失関数を最小化することまで経時的に動的に変えられる。いくつかの実施形態において、組み合わされた損失関数は、バックプロパゲーションタイプの学習アルゴリズムに使用される。
図5は、一実施形態によるシステム100により実施され得る例示的な工程を示す。この実施形態において、モデルは、医療画像におけるステント検出とステント位置特定との連携したタスクのためのものである。ステント検出は、例えば、「ステントが存在する」又は「ステントが存在しない」という出力としての注釈を伴って、ステントが画像に存在するか否かを判定することを有する。ステント位置特定は、医療画像におけるステントの位置を特定することを有し、例えば、ステントを囲むバウンディングボックスの中心のx,y座標、及び、ステントの高さ及び幅といった、注釈を出力することを有する。本明細書における教示は、物体検出に、及び/又は、より広くは物体位置特定モデルに、より幅広く適用可能であることが理解される。
したがって、この実施形態において、訓練データは、ステントを備える医療画像を含む。医療画像は、ユーザーにより注釈付けされる。ユーザーは2つの注釈を提供し、第1の注釈は、ステントが画像にi)存在するかそれともii)存在しないかを説明し、第2の注釈は、ステントを囲むバウンディングボックスの中心、及び、バウンディングボックスの高さ及び幅を示す、x,y座標の形態による(ステントが画像に存在する場合の)ステントの位置を説明する。訓練データは、データに対する適切な注釈を決定するときにユーザーが考慮した(例えば見た)各医療画像における少なくとも1つの関心位置を示す視線データを含む補助データをさらに備える。視線データ及び医療画像を含む訓練データがシステム100に関連してここまでに説明されており、その中の詳細事項が本例において同じく適用されることが理解される。
この実施形態において、モデルは、畳み込み層502及び高密度層504を備えるニューラルネットワークのモデルを含む。システム、例えばシステム100は、少なくとも1つの関心位置をモデルの1つ又は複数の層の出力と比較する補助損失関数506、及び、ユーザーにより決定されたデータに対するそれらのそれぞれの注釈をモデルにより生成された注釈と比較する、検出問題に対するもの508及び位置特定問題に対するもの510である第1の、及び第2の主損失関数508、510を最小化することにより訓練データを使用してモデルを訓練する。
図5aは、(四角いボックスにより表された)モデルの異なる部分間の相互作用、及び、訓練工程中における異なる入力データ及び出力データを示す。画像512が入力されて、モデルの畳み込み層502及び高密度層504により処理され、ステントが存在するかどうかの標示514、及び、(存在する場合の)ステントの位置の標示516を含む出力を生成する。モデルは、モデルの各層からの出力(ラベル付けされた補助出力518)をさらに生成する。
ユーザーにより生成された注釈は、次に、モデルに供給される。上述のように、この実施形態において、注釈は、ステントが画像520に存在するかどうかの標示、及び、バウンディングボックス522の位置を含む。ユーザーが注釈を決定するときに見た1つ又は複数の関心位置の形態をとる補助データ524(例えば視線データ)も、モデルに供給される。
次に、モデルは、注視データ524における少なくとも1つの関心位置をモデルの1つ又は複数の層の出力と比較する補助損失関数506を最小化することにより訓練される。補助データが画像(例えばヒートマップ)の形態であるか、それとも(例えばグラフィカルな又はベクトル型の)何らかの他の形態であるかに応じて、補助データは、それぞれ1つ又は複数の畳み込み層502又は高密度層504の出力と比較される。
訓練することは、モデルにより生成されたステントが存在するかどうかの注釈514を、ユーザーにより決定されたステントの存在の注釈520と比較する第1の主損失関数510を最小化することをさらに有する。この場合、第1の主損失関数510は、交差エントロピー損失関数又は分類問題に適した任意の他の損失関数を含む。
訓練することは、モデルにより生成された画像におけるステントの位置の注釈516を、ユーザーにより決定された位置の注釈522と比較する第2の主損失関数を最小化することをさらに有する。この場合、第2の主損失関数510は、最小二乗誤差損失関数又は回帰問題に適した任意の他の損失関数を含む。
主損失関数及び補助損失関数を使用してモデルを訓練することが、システム100に関連してここまでに詳細に説明されており、その中の詳細事項が図5aにおける実施形態に同じく適用されることが理解される。
図5bは、(例えば実行時に)最終的な訓練されたモデルを通るデータフローを示す。訓練されるとき、モデルはモデルの畳み込み層502及び/又は高密度層504により処理された画像を取り込んで、ステント検出及び位置特定(例えばバウンディングボックス)出力を生成する。補助データが訓練されたモデルへの入力として必要というわけではなく、図5aに示されるように訓練工程において使用されるのみであることに留意されなければならない。この手法により、モデルは、効果的に、及び効率的に訓練される。
図6は、一実施形態によるニューラルネットワークのモデルを訓練するためのコンピュータ実施方法600を示す。示される方法600は、概して、システム100のプロセッサ102により、又は、システム100のプロセッサ102の制御下において実施され得る。本方法は、いくつかの実施形態により部分的に、又は完全に自動化される。
本方法は、(ブロック602において)訓練データを獲得することであって、訓練データが、データ、ユーザーにより決定されたデータに対する注釈、及び補助データを含み、補助データが、データに対する注釈を決定するときにユーザーにより考慮される、データにおける少なくとも1つの関心位置を記述する、獲得することと、(ブロック604において)訓練データを使用してモデルを訓練することとを有する。モデルを訓練することが、少なくとも1つの関心位置をモデルの1つ又は複数の層の出力と比較する補助損失関数を最小化することと、ユーザーにより決定されたデータに対する注釈をモデルにより生成された注釈と比較する主損失関数を最小化することとを有する。
この手法により、訓練データを獲得すること、及び、訓練データを使用してモデルを訓練することは、システム100に関連してここまでに詳細に説明されており、その中の詳細事項は、方法600のブロック602及び604にそれぞれ同じく適用されることが理解される。
この手法により、システム100に関連してここまでに説明されているように、ユーザーがデータに対する注釈を決定するときにユーザーから取得された補助データ(例えば、視線データ、ジェスチャーデータ、及び発話)は、モデルの訓練工程を改善するために使用され得る。補助データは、人間の注釈者の側におけるさらなる労力を一切伴わずにフリーで取得され得るので、訓練工程はまた、ユーザーにとってより効率的でもあり、より費用効果が高くなる。
コンピュータ可読媒体を備えるコンピュータプログラム製品がさらに提供され、コンピュータ可読媒体が、コンピュータ可読媒体内において具現化されたコンピュータ可読コードを含み、コンピュータ可読コードが、適切なコンピュータ又はプロセッサによる実行時に、コンピュータ又はプロセッサが本明細書において説明されている1つ又は複数の方法を実施するようにされるように構成される。したがって、本開示が実施形態の実施をもたらすように適応された、特に媒体上の、又は媒体内のコンピュータプログラムといったコンピュータプログラムにも適用されることが理解される。本プログラムは、例えば部分的にコンパイルされた形態のソースコード、オブジェクトコード、コード中間ソース、及びオブジェクトコードの形態であり、又は、本明細書において説明されている実施形態による方法の実施態様における使用に適した任意の他の形態である。
このようなプログラムには多くの異なるアーキテクチャ設計があることがさらに理解される。例えば、方法又はシステムの機能を実施するプログラムコードは、1つ又は複数のサブルーチンに再分割される。これらのサブルーチン間で機能を分散する多くの異なる手法が当業者に明らかとなる。サブルーチンが1つの実行可能ファイルに一緒に記憶されて内蔵プログラムを形成する。このような実行可能ファイルは、例えば、プロセッサ命令及び/又はインタープリター命令(例えばJavaインタープリター命令)といったコンピュータ実行可能命令を含む。代替的に、サブルーチンのうちの1つ又は複数又はすべてが、少なくとも1つの外部ライブラリファイルに記憶され、及び、静的に、又は動的に、例えば実行時にメインプログラムにリンクされる。メインプログラムは、サブルーチンのうちの少なくとも1つに対する少なくとも1つのコールを含む。サブルーチンは、互いに対するファンクションコールをさらに含む。
コンピュータプログラム製品に関する一実施形態は、本明細書に記載されている方法のうちの少なくとも1つの各処理ステージに対応したコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに再分割され、及び/又は静的に、又は動的にリンクされた1つ又は複数のファイルに記憶される。コンピュータプログラム製品に関する別の実施形態は、本明細書に記載されるシステム及び/又は製品のうちの少なくとも1つの各手段に対応したコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに再分割され、及び/又は静的に、又は動的にリンクされた1つ又は複数のファイルに記憶される。
コンピュータプログラムの媒体は、プログラムを記録することが可能な任意の実体又はデバイスである。例えば、媒体として、例えばCD ROM又は半導体ROMといったROMなどのデータ記憶装置、又は、例えばハードディスクといった磁気記憶媒体が挙げられる。さらに、媒体は、電気又は光学ケーブルを介して、又は、無線又は他の手段により搬送される電気又は光信号などの伝送可能媒体である。プログラムがこのような信号において具現化される場合、媒体は、このようなケーブル、又は、他のデバイス又は手段により構成される。代替的に、媒体は、プログラムが中に組み込まれた集積回路であり、集積回路は、関連する方法を実施するように適応され、又は関連する方法の実施に使用される。
開示される実施形態の変形例は、図面、本開示、及び添付の特許請求の範囲の考察により当業者により理解及び実施され得る。特許請求の範囲において、「備える(含む、有する、もつ)」という用語は、他の要素もステップも排除せず、単数形は複数を排除しない。1つのプロセッサ又は他のユニットが、特許請求の範囲に記載されているいくつかの項目の機能を実現する。単に特定の手段が相互に異なる従属請求項に記載されているということが、利点を得るためにこれらの手段の組合せが使用不可能なことを示すわけではない。コンピュータプログラムは、他のハードウェアと一体的に、又は他のハードウェアの一部として供給される光記憶媒体又はソリッドステート媒体などの適切な媒体に記憶され/適切な媒体にのせて配布されるが、例えばインターネット又は他の有線又は無線電気通信システムを介して他の形態で配布される可能性もある。特許請求の範囲における参照符号は、いずれも特許請求の範囲を限定するように解釈されてはならない。