(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024164021
(43)【公開日】2024-11-26
(54)【発明の名称】ハイブリッド人間-コンピュータ学習システム
(51)【国際特許分類】
G06N 5/043 20230101AFI20241119BHJP
【FI】
G06N5/043
【審査請求】有
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2024121910
(22)【出願日】2024-07-29
(62)【分割の表示】P 2022553593の分割
【原出願日】2021-03-08
(31)【優先権主張番号】62/986,525
(32)【優先日】2020-03-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/836,749
(32)【優先日】2020-03-31
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SWIFT
2.FIREWIRE
(71)【出願人】
【識別番号】522351963
【氏名又は名称】アンソロップ エルエルシー
【氏名又は名称原語表記】ANTHROP LLC
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ガードナー、リチャード
(57)【要約】 (修正有)
【課題】既知のエキスパートシステムの欠点のうちの1つまたは複数に対処エキスパート学習システムに関するシステム、装置及び方法を提供する。
【解決手段】人間-コンピュータハイブリッド学習システムは、相互に接続された一連のノードの層を備え、各ノード114は、人間(ユーザ又はエキスパートのいずれか)116と通信するデバイス118を備える。デバイスは、入力を受け取り、出力をタスクサーバに提供する。デバイスは、タスクデータ120、エキスパートデータ122やネットワークデータ124などそのデバイスに記憶された動作のためのデータを有し、デバイスにインストールされたアプリ119を利用する。アプリは、人間116がエキスパートとして登録することで、タスクの解決に参加でき、人間116がユーザとして登録すること、例えば、自分のタスクを提出すること、を可能にする。
【選択図】
図4
【特許請求の範囲】
【請求項1】
システムであって、
前記システムは1つまたは複数のメモリと、1つまたは複数のプロセッサと、前記1つまたは複数のメモリに記憶されるとともに前記1つまたは複数のプロセッサによって動作を行なうべく実行可能にされている複数の命令と、を備えており、前記動作は、
選択済タスクに対応するタスク関連データを受け取る工程であって、前記選択済タスクは1つまたは複数の専門領域のうちの選択済領域によって識別される、前記タスク関連データを受け取る工程と、
前記選択済領域に関連する学習システムの複数のエキスパートノードの第1サブセットとしての第1エキスパートノードサブセットと、前記選択済領域に関連する前記複数のエキスパートノードの第2サブセットとしての第2エキスパートノードサブセットと、をリアルタイムで自動的に選択する工程であって、前記第1エキスパートノードサブセットは前記学習システムの複数の層のうちの第1層に関連しており、前記第2エキスパートノードサブセットは前記複数の層のうちの第2層に関連しており、前記第1エキスパートノードサブセットの選択と前記第2エキスパートノードサブセットの選択とは前記複数のエキスパートノードに記憶されているエキスパートデータに基づいており、前記エキスパートデータは前記複数のエキスパートノードの各々についての利用可能性データを備えている、前記第1エキスパートノードサブセットと前記第2エキスパートノードサブセットとをリアルタイムで自動的に選択する工程と、
前記タスク関連データを複数の第1電子デバイスに伝達する工程であって、前記第1電子デバイスのそれぞれは前記第1エキスパートノードサブセットの各エキスパートの1つに関連付けられている、前記タスク関連データを伝達する工程と、
前記第1電子デバイスを介して、前記第1エキスパートノードサブセットの各エキスパートから、それぞれのタスク解決策と、付随する第1信頼度スコアと、を受け取る工程と、
前記第1エキスパートノードサブセットから受け取った前記タスク解決策に基づき、前記第1信頼度スコアによってソートされた第1タスク解決策セットを生成する工程と、
前記タスク関連データおよび前記第1タスク解決策セットを複数の第2電子デバイスに伝達する工程であって、前記第2電子デバイスのそれぞれは前記第2エキスパートノードサブセットの各エキスパートの1つに関連付けられている、前記タスク関連データおよび前記第1タスク解決策セットを伝達する工程と、
前記第2エキスパートノードサブセットの各エキスパートから、前記第2電子デバイスを介して、前記第1タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する第2信頼度スコアと、を示す情報を受け取る工程と、
前記選択済解決策を示す前記情報に基づき、前記第2信頼度スコアによってソートされた第2タスク解決策セットを生成する工程と、
前記第2タスク解決策セットに基づき予備出力を生成する工程と、および、
前記予備出力に基づく最終出力をユーザインタフェースに伝達する工程と、
を備えている、
システム。
【請求項2】
前記動作はさらに、前記複数のエキスパートノードを前記1つまたは複数の専門領域に自動的に関連付ける工程を備えている、
請求項1に記載のシステム。
【請求項3】
前記動作はさらに、
前記タスク関連データおよび前記予備出力を前記複数の第1電子デバイスに伝達する工程と、
前記第1エキスパートノードサブセットの各エキスパートノードから、前記第1電子デバイスを介して、前記予備出力から選択されたそれぞれの選択済解決策と、付随する第3信頼度スコアと、を示す情報を受け取る工程と、
前記第1電子デバイスから受け取った前記選択済解決策を示す前記情報に基づき、前記第3信頼度スコアによってソートされた第3タスク解決策セットを生成する工程と、
前記タスク関連データおよび前記第3タスク解決策セットを複数の第2電子デバイスに伝達する工程と、
前記第2エキスパートノードサブセット内の各エキスパートノードから、前記第2電子デバイスを介して、前記第3タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する第4信頼度スコアと、を示す情報を受け取る工程と、
前記第2電子デバイスからの前記選択済解決策を示す前記情報に基づき、前記第4信頼度スコアによってソートされた第4タスク解決策セットを生成する工程と、
前記最終出力を前記ユーザインタフェースに伝達する前に、少なくとも前記第4タスク解決策セットに基づき前記予備出力を更新する工程と、
を備えている、請求項1に記載のシステム。
【請求項4】
前記動作はさらに、
前記選択済領域に分類された第3エキスパートノードサブセットを自動的に選択する工程と、
前記タスク関連データおよび前記第2タスク解決策セットを複数の第3電子デバイスに伝達する工程であって、前記各第3電子デバイスは前記第3エキスパートノードサブセットの各エキスパートノードの1つに関連付けられている、前記タスク関連データおよび前記第2タスク解決策セットを前記複数の第3電子デバイスに伝達する工程と、
前記第3電子デバイスを介して、前記第3エキスパートノードサブセットの各エキスパートノードから、前記第2タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する第3信頼度スコアと、を示す情報を受け取る工程と、
前記第3電子デバイスから受け取った前記選択済解決策を示す前記情報に基づき、前記第3信頼度スコアによってソートされた第3タスク解決策セットを生成する工程と、
前記最終出力を前記ユーザインタフェースに伝達する前に、前記第3タスク解決策セットに基づき前記予備出力を更新する工程と、
を備えている、請求項1に記載のシステム。
【請求項5】
前記選択済解決策を示す前記情報に基づき前記第2タスク解決策セットを生成する工程は、前記第1信頼度スコアおよび前記第2信頼度スコアの集約によって前記第2タスク解決策セットをソートする工程を備えている、
請求項1に記載のシステム。
【請求項6】
前記第1信頼度スコアおよび前記第2信頼度スコアの前記集約は、前記第1信頼度スコアおよび前記第2信頼度スコアの組み合わせの平均を計算する工程を備えており、
前記第1信頼度スコアおよび前記第2信頼度スコアは、0%から100%までのパーセンテージである、
請求項5に記載のシステム。
【請求項7】
前記動作はさらに、各エキスパートノードにそれぞれの重みを自動的に割り当てる工程を備えており、
前記各エキスパートノードの前記それぞれの重みは、前記各エキスパートの性能に関する過去データを使用して決定され、
前記動作はさらに、
選択済閾値未満のそれぞれの重みを有するエキスパートノードを、前記第1エキスパートノードサブセットおよび前記第2エキスパートノードサブセットから自動的に削除する工程を備えている、
請求項1に記載のシステム。
【請求項8】
前記最終出力は単一の解決策のみを備えている、
請求項1に記載のシステム。
【請求項9】
システムであって、
前記システムは1つまたは複数のメモリと、1つまたは複数のプロセッサと、前記1つまたは複数のメモリに記憶されるとともに前記1つまたは複数のプロセッサによって動作を行なうべく実行可能にされている複数の命令と、を備えており、前記動作は、
選択済タスクに対応するタスク関連データを受け取る工程であって、前記選択済タスクは1つまたは複数の専門領域のうちの選択済領域によって識別される、前記タスク関連データを受け取る工程と、
学習システムの複数のエキスパートノードの第1サブセットとしての第1エキスパートノードサブセット、前記複数のエキスパートノードの中間サブセットとしての1つまたは複数の中間エキスパートノードサブセット、および前記複数のエキスパートノードの最終サブセットとしての最終エキスパートノードサブセット、をリアルタイムで自動的に選択する工程であって、前記第1エキスパートノードサブセット、前記1つまたは複数の中間エキスパートノードサブセット、および前記最終エキスパートノードサブセットのそれぞれは前記選択済領域と、前記学習システムの複数の層のうちのそれぞれの層と、に関連付けられており、選択する工程は前記複数のエキスパートノードに記憶されたエキスパートデータに基づいており、前記エキスパートデータは前記複数のエキスパートノードの各々についての利用可能性データを備えている、前記第1エキスパートノードサブセット、前記1つまたは複数の中間エキスパートノードサブセット、および前記最終エキスパートノードサブセット、をリアルタイムで自動的に選択する工程と、
前記複数のエキスパートノードの各エキスパートノードにそれぞれの重みを自動的に割り当てる工程であって、各エキスパートノードのそれぞれの前記重みは前記各エキスパートノードの過去の性能データを使用して決定される、前記重みを割り当てる工程と、
前記タスク関連データを複数の第1電子デバイスに伝達する工程であって、前記第1電子デバイスのそれぞれは、前記第1エキスパートノードサブセットの各エキスパートノードの1つに関連付けられている、前記タスク関連データを前記複数の第1電子デバイスに伝達する工程と、
前記第1電子デバイスを介して、前記第1エキスパートノードサブセットの各エキスパートノードから、それぞれの主観的応答と、前記主観的応答に対する前記各エキスパートノードの信頼度を示す付随する第1信頼度スコアと、を受け取る工程と、
前記第1エキスパートノードサブセットの各エキスパートノードから受け取った前記主観的応答に基づき、前記第1信頼度スコアによってソートされた中間タスク解決策セットを生成する工程と、
前記1つまたは複数の中間エキスパートノードサブセットのそれぞれに関して、連続して、
前記タスク関連データおよび前記中間タスク解決策セットを複数の電子デバイスに伝達する工程であって、前記各電子デバイスのそれぞれは、前記各中間エキスパートノードサブセットの各エキスパートノードの1つに関連付けられている、前記タスク関連データおよび前記中間タスク解決策セットを前記複数の電子デバイスに伝達する工程と、
前記各中間エキスパートノードサブセットの各エキスパートノードから、前記電子デバイスを介して、前記中間タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する中間信頼度スコアと、を示す情報を受け取る工程と、および
前記選択済解決策を示す前記情報に基づき、前記中間信頼度スコアによってソートされた前記中間タスク解決策セットを更新する工程と、
中間タスク関連データを複数の最終電子デバイスに伝達する工程であって、前記最終電子デバイスのそれぞれは前記最終エキスパートノードサブセットの各エキスパートノードの1つに関連付けられている、前記中間タスク関連データを前記複数の最終電子デバイスに伝達する工程と、
前記最終エキスパートノードサブセットの各エキスパートノードから、前記最終電子デバイスを介して、前記中間タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する最終信頼度スコアと、を示す情報を受け取る工程と、および、
前記選択済解決策を示す前記情報に基づき、最終タスク解決策セットをユーザインタフェースに伝達する工程と、
を備えている、
システム。
【請求項10】
前記最終タスク解決策セットは、単一の解決策のみを備えている、
請求項9に記載のシステム。
【請求項11】
前記最終タスク解決策セットは、前記第1信頼度スコア、前記中間信頼度スコア、および前記最終信頼度スコア、の集約によってソートされる、
請求項9に記載のシステム。
【請求項12】
前記第1信頼度スコア、前記中間信頼度スコア、前記最終信頼度スコア、の前記集約は、前記第1信頼度スコア、前記中間信頼度スコア、前記最終信頼度スコア、の組み合わせの平均を計算することによって決定される、
請求項11に記載のシステム。
【請求項13】
前記動作はさらに、選択済閾値未満のそれぞれの重みを有するエキスパートノードを、前記第1エキスパートノードサブセット、前記1つまたは複数の中間エキスパートノードサブセット、および前記最終エキスパートノードサブセット、から自動的に削除する工程を備えている、
請求項9に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハイブリッド人間-コンピュータ学習システムに関する。
【背景技術】
【0002】
エキスパートシステム(専門家システム)は、人間(ヒューマン)のエキスパート(専門家)の符号化された知識を解釈することによって推論タスクをエミュレート(模倣)するようにプログラムされたコンピュータシステムである。既存のエキスパートシステムは、1回または定期的にエキスパートの知識で更新されるように設計された静的なオフラインシステムである。このようなエキスパートシステムは、医療診断や株式取引、芸術、音楽、もしくは映画、の評価や、その他の主観的または客観的な領域において、決定を推奨しアドバイスを提供するべく、エキスパートの知識を記録した静的データベースを利用するのが一般的である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
既存のエキスパートシステムの例では、構造化されていないかあるいは言語化されていない知識を、機械が読み取り可能な形式に符号化(エンコード)するとともに、人間の感情や主観的な推論をエミュレートするだけでなく、さらにその知識をリアルタイムで実用的な洞察へと処理することを試みている。既存の解決策(ソリューション)では、人間のエキスパートから知識を抽出するとともに、その知識を機械が読み取り可能な形式へとエンコードすることは、既存のエキスパートシステムの複雑で退屈な、かつ時間のかかる性質があることから、リアルタイムで実行することはほぼ不可能である。そのため、既存のシステムでは、どのようなトピックに対しても正確で最新のエキスパートの意見を得ることができないのが一般的である。
【課題を解決するための手段】
【0005】
本開示は、エキスパート学習システムに関するシステム、装置、および方法、を提供するとともに、上述した既知のエキスパートシステムの欠点のうちの1つまたは複数に対処する。
【0006】
いくつかの実施形態では、ユーザが提供するタスクに対する解決策を提供するためのデータ処理システムとしてのシステムは、メモリと、1つまたは複数のプロセッサと、メモリに記憶(格納)されるとともに1つまたは複数のプロセッサによって実行可能にされている複数の命令と、を備え得る。命令は、選択済タスクに対応するタスク関連データを受け取る工程であって、タスクは1つまたは複数の専門領域のうちの選択済領域によって識別される、受け取る工程と、複数のエキスパートから、選択済領域に関連付けられている第1エキスパートサブセットと、選択済領域に関連付けられている第2エキスパートサブセットと、を自動的に選択する工程と、を実行可能にされている。命令はさらに、タスク関連データを複数の第1電子デバイスに伝達する工程であって、第1電子デバイスのそれぞれは第1エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、第1電子デバイスを介して、第1エキスパートサブセットの各エキスパートから、それぞれのタスク解決策と、付随する第1信頼度スコアと、を受け取る工程と、を実行可能にされている。命令はさらに、第1エキスパートサブセットから受け取ったタスク解決策に基づき、第1信頼度スコアによってソートされた第1タスク解決策セットを生成する工程と、タスク関連データおよび第1タスク解決策セットを複数の第2電子デバイスに伝達する工程であって、第2電子デバイスのそれぞれは第2エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、を実行可能にされている。命令はさらに、第2エキスパートサブセットの各エキスパートから、第2電子デバイスを介して、第1タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する第2信頼度スコアと、を示す情報を受け取る工程と、選択済解決策を示す情報に基づき、第2信頼度スコアによってソートされた第2タスク解決策セットを生成する工程と、第2タスク解決策セットに基づき予備出力(プレリミナリアウトプット)を生成する工程と、および、予備出力に基づき最終出力をユーザインタフェースに伝達する工程と、を実行可能にされている。
【0007】
いくつかの実施形態では、ユーザが提供するタスクに解決策を提供するためのデータ処理システムであって、システムはメモリと、1つまたは複数のプロセッサと、メモリに記憶されるとともに1つまたは複数のプロセッサによって実行可能にされている複数の命令と、を備え得る。命令は、選択済タスクに対応するタスク関連データを受け取る工程であって、選択済タスクは1つまたは複数の専門領域のうちの選択済領域によって識別される、受け取る工程と、複数のエキスパートから、第1エキスパートサブセット、1つまたは複数の中間エキスパートサブセット、および最終エキスパートサブセット、を自動的に選択する工程であって、第1エキスパートサブセット、1つまたは複数の中間エキスパートサブセット、および最終エキスパートサブセット、のそれぞれは選択済領域に関連付けられている、選択する工程と、を実行可能にされている。命令はさらに、タスク関連データを複数の第1電子デバイスに伝達する工程であって、第1電子デバイスのそれぞれは第1エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、前記第1電子デバイスを介して、前記第1エキスパートサブセットの各エキスパートから、それぞれのタスク解決策と、付随する第1信頼度スコアと、を受け取る工程と、前記第1エキスパートサブセットから受け取ったタスク解決策に基づき、第1信頼度スコアによってソートされた中間タスク解決策セットを生成する工程と、を実行可能にされている。命令はさらに、1つまたは複数の中間エキスパートサブセットのそれぞれに関して、連続して、タスク関連データおよび中間タスク解決策セットを複数の電子デバイスに伝達する工程であって、電子デバイスのそれぞれはそれぞれの中間エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、それぞれの中間エキスパートサブセットの各エキスパートから、電子デバイスを介して、中間タスク解決策セットから選択されたそれぞれの選択済解決策を示す情報と、付随する中間信頼度スコアと、を受け取る工程と、および、選択済解決策を示す情報に基づき、中間信頼度スコアによってソートされた中間タスク解決策セットを更新する工程と、を実行可能にされている。命令はさらに、中間タスク関連データを複数の最終電子デバイスに伝達する工程であって、最終電子デバイスのそれぞれは最終エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、最終エキスパートサブセットの各エキスパートから、最終電子デバイスを介して、中間タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する最終信頼度スコアと、を示す情報を受け取る工程と、ユーザインタフェースに、選択済解決策を示す情報に基づく最終タスク解決策セットを伝達する工程と、を実行可能にされている。
【0008】
特徴、機能、および利点は、本開示の様々な実施形態において独立して達成されてもよく、または、さらに他の実施形態において組み合わされてもよく、その更なる詳細は、以下の説明および図面を参照することによって分かる。
【図面の簡単な説明】
【0009】
【
図1】例示的なニューラルネットワークモデルの概略図。
【
図2】本開示の態様に従った、例示的な学習システムの概略図。
【
図3】
図2の学習システムの概略図であり、さらに入力層、隠れ層(複数可)、および出力層、を描いている。
【
図4】本開示の態様に従った、
図2の学習システムのノードの概略図。
【
図5】
図2の学習システムのデータフローを示す概略図。
【
図9】本開示の態様に従った、タスクサーバの動作の例示的な方法の工程を描写するフローチャート。
【
図10】本開示の態様に従った、学習システムを学習する例示的な方法の工程を示すフローチャート。
【
図11】本開示の態様に従った、例示的なデータ処理システムの概略図。
【
図12】本開示の態様に従った、例示的な分散型データ処理システムの概略図。
【発明を実施するための形態】
【0010】
学習システム(またはエキスパートシステム)の様々な態様および例が、以下に説明されるとともに、関連する図面に図示されている。特に除外しない限り、本教示に従った学習システムおよび/またはその様々な構成要素は、本明細書で説明、図示、および/または組み込まれた、構造、構成要素、機能性、および/またはバリエーション、のうち少なくとも1つを備えていることができる。さらに、特に除外しない限り、本教示に関連して本明細書に記載、図示、および/または組み込まれた、処理工程、構造、構成要素、機能性、および/または変形、は開示された実施形態同士間で互換性があることを含みつつ、他の同様のデバイスおよび方法に含まれ得る。様々な実施例の以下の説明は、本質的に単なる例示であるので、決して本開示、その適用、または用途、を限定することを意図していない。さらに、以下に説明される例および実施形態によって提供される利点は、本質的に例示的であり、すべての例および実施形態が同じ利点または同じ程度の利点を提供するとは限らない。
【0011】
この詳細な説明には、以下のセクションが含まれ、それらはすぐ後に続く。(1)[定義]、(2)[概要]、(3)[実施例、構成要素、および代替案]、(4)[利点、特徴、および利益]、および(5)[結論]。[実施例、構成要素、および代替案]のセクションはさらに、[A]~[F]のサブセクションに分かれており、それぞれにラベルが貼られている。
【0012】
[定義]
本書では、特に断りがない限り、以下の定義を適用する。
「構成する」もしくは「含む」(comprising)、「備えている」(including)、「有している」(having)(およびその活用形)は、必ずしも限定されないが、備えているという意味で互換的に用いられ、追加の、記載されていない要素または方法工程を除外することを意図しないオープンエンドな用語である。
【0013】
「第1」、「第2」、および「第3」、などの用語は、グループの様々なメンバーなどを区別または識別するべく使用されているので、連続的または数値的な限定を示すことを意図していない。
【0014】
「AKA」は「別名」(オルソーノウンアズ)を意味するだけでなく、所定の要素または要素に対する代替または対応する用語を示すために使用される場合がある。
「処理ロジック」は、1つまたは複数の論理演算および/または算術演算(例えば、コード化された命令の実行)を行うことによってデータを処理するように構成された任意の適切な装置またはハードウェアを説明するものである。例えば、処理ロジックは、1つまたは複数のプロセッサ(例えば、中央処理装置(CPU)および/またはグラフィック処理装置(GPU))、マイクロプロセッサ、処理コアのクラスタ、FPGA(フィールドプログラマブルゲートアレイ)、人工知能(AI)加速器、デジタル信号プロセッサ(DSP)、および/または、論理ハードウェアの他の任意の適切な組合せ、を備えてもよい。
【0015】
「コントローラ」または「電子コントローラ」は、制御要素に関して制御機能を実行するための命令でプログラムされた処理ロジックを備えている。例えば、電子コントローラは、入力信号を受け取るとともに、選択された制御値または設定値とで入力信号を比較するだけでなく、比較に基づき修正動作を提供するべく制御要素(例えば、モータまたはアクチュエータ)に対する出力信号を決定するように構成されていることができる。別の例では、電子コントローラは、ホスト装置(例えば、デスクトップコンピュータ、メインフレームなど)と周辺装置(例えば、メモリ装置、入出力装置など)との間でインタフェースするだけでなく、周辺装置との間の入力信号および出力信号を制御および/または監視(モニタ)するように構成されてもよい。
【0016】
方法の文脈における「提供」は、提供されたオブジェクトまたは材料が、他の工程を実行するための状態および構成になるように、受信(受け取り)、入手(取得)、購入、製造、生成、処理、前処理、および/または同様のもの、を備えていることができる。
【0017】
本開示では、1つまたは複数の出版物、特許、および/または特許出願、が参照によって組み込まれる場合がある。しかし、そのような資料は、組み込まれた資料と本明細書に記載された記述および図面との間に矛盾が存在しない範囲においてのみ組み込まれる。用語の対立を含め、そのような対立がある場合、本開示が支配的である。
【0018】
[概要]
一般に、本開示のハイブリッド人間-コンピュータ学習システムは、エキスパートが、ユーザによって提出された質問および/または問題(例えば、タスク)を分析するためのアーキテクチャフレームワークを提供する。本システムは、エキスパートによって提供される複数の回答から主観的および客観的な回答を集約(集計。アグリゲート)することを可能にする一方で、スピード、精度、およびコスト(例えば、時間、金銭等)の面で改善された性能(パフォーマンス)を提供する。例えば、医療従事者は、本システムを利用して、医師のネットワークを通じて、稀なまたは複雑な病状に対する医療診断を受け取ることができる。
【0019】
本開示の学習システムは、深層学習、リカレントニューラルネットワークに倣ったネットワークを利用するだけでなく、主観的で困難な問題を解決するべくエキスパートを利用する。学習システムは、そうでなければコンピュータが既知の方法を介して解決することが不可能にされている解決策(ソリューション)を提供し得る。標準的なニューラルネットワークと同様に、本システムは予測モデリングに使用することもできる。
【0020】
学習システムは、1人または複数の熟練したエキスパートが、提案された課題に対して独自の解決策を、付随する信頼度スコアと共に提供するだけでなく、その解決策をエキスパートの投票グループに提出できるように構成されている。投票グループの各エキスパートは、エキスパートの意見に基づき、提供された解決策のうちから正しいまたは最も正しい選択肢を選択するだけでなく、その選択に対して自身の信頼度スコアを提供する。さらなる層および/または、層の順序付けの様々な例、が利用されてもよいだけでなく、システムは、例えば、信頼度によってソートされた解決策のリストの形で、答えを出力するように構成されている。
【0021】
本明細書では、ユーザが提供するタスクに対して1つまたは複数のエキスパートが提供する解決策を提供するための技術的な解決策が開示されている。具体的には、開示されたシステムおよび方法は、学習システムおよび他のニューラルネットワーク技術に結び付けられて機械学習の領域で生じる技術的問題に対処する。すなわち、明確で客観的な解決策が存在しない可能性のあるタスク、および/または、明確に定義された学習セットを欠くタスク、などの主観的なタスクに対して意味のある解決策を提供するという技術的問題である。言い換えれば、本明細書に記載された学習システムは、複数のエキスパートの意見と主観的な回答とを、ユーザが提供した質問またはタスクに対する明確な答えに抽出する独自の能力を有する実用的な解決策を実装している。本明細書に開示されるコンピュータベースのシステムおよび方法は、主題となるエキスパートの主観的な回答と信頼度ランキングとを、最適な解決策を自動的に特定するように構成されたネットワークに組み込むことによって、この技術的問題に対する改善された解決策を提供する。
【0022】
開示されたシステムおよび方法は、本明細書で議論された原理の統合された実用的なアプリケーションを提供する。具体的には、本明細書に記載されたシステムおよび方法は、客観的な答えを持たない可能性のあるタスクに対する1つまたは複数の主観的な解決策を生成するので、既知の学習システムに対する改善である。さらに、開示されたシステムおよび方法は、エキスパートが提供するレビュー処理および再帰的採点(リカレントスコアリング)システムに依存するタスク解決策を提供する特定の態様を記述する。従って、開示されたシステムおよび方法は、関連する原理を、有意義に限定された方法で利用するものでもある。
【0023】
学習システムの態様は、コンピュータ方法、コンピュータシステム、またはコンピュータプログラム製品、として具現化されてもよい。したがって、学習システムの態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード、などを含む)、または、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形態、をとってもよく、これらのすべては、本明細書において一般に「回路」、「モジュール」、または「システム」、と呼ばれることがある。さらに、学習システムの態様は、コンピュータ可読媒体(または媒体)上に具現化されたコンピュータ可読プログラムコード/命令を有するコンピュータ可読媒体(または媒体)に具現化されたコンピュータプログラム製品の形態をとることができる。
【0024】
コンピュータ可読媒体の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体および/またはコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、電子、磁気、光学、電磁気、赤外線、および/または半導体システム、装置、もしくはデバイス、またはこれらの任意の適切な組み合わせ、を備えていることができる。コンピュータ可読記憶媒体のより具体的な例としては、1つまたは複数のワイヤを有する電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、および/またはこれら等の任意の適切な組合せ、などが挙げられ得る。本開示の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイス、によってまたはそれらに関連して使用するためのプログラムを備えているかまたは記憶(格納)することができる、任意の適切な非一時的な有形媒体を備えていることができる。
【0025】
コンピュータ可読信号媒体は、コンピュータ可読プログラムコードがそこに具現化された伝搬データ信号を、例えばベースバンドで、または搬送波の一部として、備えていることができる。このような伝搬信号は、電磁気的、光学的、および/またはそれらの任意の適切な組み合わせ、を備えているが、これらに限定されない様々な形態のうちの任意の形態を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイス、によってまたはそれらに関連して使用するためのプログラムを、通信(伝達)、伝播、または搬送、することができる任意のコンピュータ可読媒体を備えてもよい。
【0026】
コンピュータ可読媒体に具現化されたプログラムコードは、無線、有線、光ファイバケーブル、RFなど、および/または、これらの任意の適切な組み合わせ、を含むがこれらに限定されない任意の適切な媒体を用いて、伝送(伝達)することができる。
【0027】
学習システムの態様のための動作を実行するためのコンピュータプログラムコードは、オブジェクト指向プログラミング言語(Java(登録商標)、C++など)、従来の手続き型プログラミング言語(Cなど)、および関数型プログラミング言語(Haskellなど)を含む、プログラミング言語の1つまたは任意の組み合わせで記述されてもよい。モバイルアプリは、先に述べたものだけでなく、Objective-C、Swift、C#、HTML5、などを含む、任意の適切な言語を用いて開発することができる。プログラムコードは、ユーザのコンピュータ上で完全に実行してもよいだけでなく、ユーザのコンピュータ上で部分的におよびスタンドアロンのソフトウェアパッケージとして実行してもよいし、ユーザのコンピュータ上で部分的におよびリモートコンピュータ上で部分的に、またはリモートコンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を備えている任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、および/または接続は、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)なされてもよい。
【0028】
学習システムの態様は、方法、装置(アパレイタス)、システム、および/またはコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して、以下に説明され得る。フローチャートおよび/またはブロック図における各ブロックおよび/またはブロックの組み合わせは、コンピュータプログラム命令によって実装されてもよい。コンピュータプログラム命令は、処理ロジック(例えば、汎用コンピュータ、特殊用途コンピュータ、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブルデータ処理装置のプロセッサ)にプログラムされるかまたは他の方法で提供されて機械を製造するだけでなく、処理ロジックを介して実行する(例えば、機械可読)命令によって、フローチャートおよび/またはブロック図のブロック(複数可)に規定された機能/行為を実施する手段を作成しても良い。
【0029】
さらに、または代替的に、これらのコンピュータプログラム命令は、処理ロジックおよび/または他の任意の適切なデバイスに特定の方法で機能するように指示することができるコンピュータ可読媒体に記憶されてもよく、その場合、コンピュータ可読媒体に記憶された命令は、フローチャートおよび/またはブロック図ブロック(複数可)において特定される機能/行為を実行する命令を備えている製造物品を生成するようにされる。
【0030】
コンピュータプログラム命令はまた、実行された命令がフローチャートおよび/またはブロック図ブロック(複数可)で指定された機能/行為を実施するための処理を提供するように、コンピュータ実装処理を生成するべく、一連の動作工程をデバイス上で実行させるべく、処理ロジックおよび/または他の任意の適切なデバイスにロードされ得る。
【0031】
図面における任意のフローチャートおよび/またはブロック図は、学習システムの態様によるシステム、方法、およびコンピュータプログラム製品、の可能な実装のアーキテクチャ、機能性、および/または動作、を説明することを意図している。この点に関して、各ブロックは、指定された論理機能(複数可)を実施するための1つまたは複数の実行可能にされている命令を構成する、コードのモジュール、セグメント、または部分、を表すことができる。いくつかの実施態様では、ブロックに記された機能は、図面に記された順序とは異なる順序で発生することがある。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されるかもしれないだけでなく、それらブロックは、関係する機能に応じて、時には逆の順序で実行されるかもしれない。各ブロックおよび/またはブロックの組み合わせは、指定された機能または行為を実行する特別な目的のハードウェアベースのシステム(または特別な目的のハードウェアとコンピュータ命令との組み合わせ)によって実施され得る。
【0032】
[実施例、構成要素、および代替案]
以下のセクションでは、例示的な学習システムの選択された態様、ならびに関連するシステムおよび/または方法、について説明する。これらのセクションの例は、説明のためのものであり、本開示の範囲を限定するものとして解釈されるべきではない。各セクションは、1つまたは複数の異なる実施形態または例、および/または、文脈的または関連する情報、機能、および/または構造、を備えていることができる。
【0033】
[A.例示的なハイブリッド人間-コンピュータ学習システム]
図1~
図3に示すように、本セクションでは、上述した学習システムの一例である例示的なハイブリッド人間-コンピュータ学習システム100を説明する。
【0034】
学習システム100は、ニューラルネットワークに構造および機能が類似したフレームワークを使用することで、ユーザから与えられたタスクに対する意味のある解決策を特定する。一般に、ニューラルネットワークは、例えば動物の脳に見られる生物学的な神経ネットワークに触発された、生物学的な神経ネットワークに類似した、コンピューティングシステムである。このようなシステムは、タスクのサンプルを考慮し、それらのサンプルに対する既知の解決策に到達するように学習することによって、そのようなタスクを解くことを学習するだけでなく、一般にタスク固有の規則がない。ニューラルネットワークの中には、複雑で一見無関係に見える情報の集合から結論を導き出すなど、サンプル無しに教師無し方式で自律的に学習できるものもある。
【0035】
図1に関して、ニューラルネットワークは通常、接続されたユニット(一般にノードまたはニューロンと呼ばれる)の集合体に基づいており、これは生物学的な脳の神経構造を緩やかにモデル化している可能性がある。各接続は、生物学的な脳のシナプスのように、他のノードに信号を送信することができる。信号を受け取ったノードは、その信号を処理するだけでなく、ノードに接続されているノードに信号を送ることができる。
【0036】
ノードは通常、層に配置または集約され、層には例えば、I1~INとラベル付けされた入力ノードからなる入力層と、H1
1~H1
Nとラベル付けされた第1隠れノードからなる第1隠れ層を備えている1つまたは複数の隠れ層と、およびO1~ONとラベル付けされた出力ノードからなる出力層と、が挙げられる。入力信号は、例えばユーザによって、入力層の各入力ノードに供給される。この信号は、入力層の各ノードによって処理された後、第1隠れ層の各ノードに伝搬される。この信号の伝搬と処理は、ネットワークを通じて最終出力層まで継続することができる。出力層は、信号を処理した後、1つまたは複数の信号を最終出力として出力する1つまたは複数のノードを備えている。出力は、ユーザに提供されるかもしれない。さらに、またはその代わりに、出力は再びシステムに、すなわち入力として供給されるかもしれない。信号が層を複数回横断する場合(出力から入力に戻るなど)、学習システム100はリカレントニューラルネットワークと呼ばれてもよい。さらに、ニューラルネットワークが複数の隠れ層を備えている場合、それは、例えば、ディープラーニングという用語のように、「深い」と称される。
【0037】
典型的なニューラルネットワークの実装では、各ノードの接続を介して伝搬される信号は実数である。各ノードは、その入力の集約を計算するときに、例えば、その入力の合計に対して非線形で微分可能な関数(別名、活性化関数)を利用する。いくつかの例では、活性化関数は単調でシグモイドである。多くのニューラルネットワークの実装では、各ノードは、関連する重みを有する。典型的には、各重み値は実数である。重みは、ネットワークにおけるそれぞれのノードの有効な影響力または強度を表すことができる。例えば、処理中、ノードは、出力を計算する際に、その実数入力にその関連する重みを掛ける(乗算)ことができる。重みが大きいノードは、重みが小さいノードよりもネットワーク全体の出力に影響を与える可能性がある。ニューラルネットワークには自律的に学習できるもの(例えば、教師無し学習)があるが、他のニューラルネットワークは、入力から出力への最適なマッピング(写像)を作成するべく、重みを更新したりネットワークアーキテクチャを修正(変更)したりするために(例えばラベル付きデータセットで)学習する必要がある(例えば、教師有り学習)。ニューラルネットワークの学習は、最適または準最適な重みセットを見つけるための最適化アルゴリズム(例えば、逆伝搬(バックプロパゲーション))の使用を備えてもよい。
【0038】
エキスパートは以前の経験に基づきタスクを実行するように選択されるので、ネットワークの学習は、学習システム100が機能するうえでは必要ではない。しかしながら、既知の結果を有するデータを目標値として使用するネットワーク学習は、特定のネットワークおよびタスク(例えば、研究および/または学習を必要とするもの)に対する性能(パフォーマンス)および/または精度を改善するべく利用され得る。学習システムの学習についてのより詳細な説明は、以下のセクションCに記載されている。
【0039】
図2および
図3に目を向けると、学習システム100は、ニューラルネットワークアーキテクチャを有するエキスパートネットワーク106を利用しており、ネットワークの各ノードは、エキスパート(別名、内容領域専門家(SME:サブジェクトマターエキスパート、主題専門家))と、付随するデバイス(例えば、モバイルデバイス)と、を備えて構成されている。各ノード接続を通じて伝搬される信号は、先行するノードのエキスパートによって提供される定性的および/または定量的分析である。
【0040】
ユーザ102は、タスクサーバ104を介して、学習システム100とで通信を行う。タスクサーバ104は、データ処理システムの一例である(後述のDセクションを参照)。タスクサーバ104は、タスクデータ120、エキスパートデータ122、およびネットワークデータ124、を有するデータベースを保持するメモリデバイスを備えている。データベースに記憶される全ての情報は、最良のセキュリティプラクティスを確保するべく暗号化/難読化されてもよい。
【0041】
タスクデータ120は、例えば、タスクの説明(例えば、質問、説明、メディア-写真、ビデオなど、タスクに適したエキスパートのエリア、および/または、タスクに関連する他の任意の追加情報)を備えている、タスクに関連する任意のデータを備えてもよい。いくつかの例では、タスクデータ120は、最大タスクタイムリミット(最大タスク時間制限)を備えている。いくつかの例では、タスクのタイムリミットは、5分のデフォルト値を有していてもよい。これは、ネットワークエラーが計算され、重みが調整され、出力が伝搬される前に、特定の層のすべてのエキスパートが応答する必要がある場合があるので、時間的に敏感なタスク(例えば、医療診断)にとって有用である場合がある。
【0042】
いくつかの例では、タスクデータ120は、報酬の記述を備えている。報酬は、他の要因のうち正確さおよび/または応答性に基づき、エキスパートに支払われ得る。報酬に応じて、タスクが適時に完了しない場合、適切であれば参考文献などの特定の情報をタスクが含まない場合、または様々な他の理由の場合、エキスパートはより少ない報酬(または全く報酬がない)を得るかもしれない。さらに、またはその代わりに、報酬は、個々のエキスパートに、またはエキスパートのグループに、提供されることができる。さらに、または代替的に、報酬は、ユーザ102によって要求されてもよく、エキスパートがタスクに参加するべく支払うことができるようにする。
【0043】
エキスパートデータ122は、各エキスパートの一意のID、各エキスパートの専門知識のカテゴリ的説明(例えば、医学、音楽、法律など)、および/または各エキスパートが提供し得る以前のタスク解決策に係る過去(履歴)データ、などのエキスパートに係る任意の適切なデータを備えてもよい。
【0044】
いくつかの例では、エキスパートデータ122は、各エキスパートに関連付けられている重み値を備えている。学習システム100において、重みは、過去の結果/性能のスピードおよび精度を表すことができる。上記の説明と同様に、学習システム100における重みは、エキスパートネットワーク106における有効な影響力または強さを表す。専門家の重みは、入力を増幅または減衰させたり、接続部における信号の強度を増加または減少させたりするべく学習システム100によって利用されるので、それによって、アルゴリズムが学習しようとしているタスクに関して入力に重要度を割り当てることができる。
【0045】
エキスパートデータ122はさらに、各エキスパートに関連付けられている信頼度レベルを備えてもよい。エキスパートは、例えば、-1~1の間の値、0~1の間の値、1~100の間の値、または星の数、または他の評価システムによって、自身の出力の信頼度レベルを評価してもよい。信頼度が低すぎる場合、出力はネットワーク内の他のノードに伝搬しない可能性がある(以下の活性化閾値の説明を参照)。さらに、いくつかの実施形態では、エキスパートは、他のエキスパートの出力を評価する。
【0046】
いくつかの例では、タスクサーバ104は、ネットワーク構成が決定されてネットワークデータ124に記憶され得るように、エキスパートデータ122を利用して、例えば、専門性、人口統計(デモグラフィクス)、精度、利用可能性(アベイラビリティ、可用性)、応答時間、コスト、などに基づきエキスパートを自動的に分類する。このようにして、登録されたオンコールエキスパートのネットワークが、学習システム100によって作成され維持される。
【0047】
いくつかの例では、ネットワークデータ124は、例えば学習処理中に、自動的に重みを調整するための学習率の値を備えている。いくつかの例では、学習率は、0.25%のデフォルト値を有する。ネットワークエラーは、学習率によって乗算され、それに応じて重みが調整される。いくつかの実施形態において、学習システム100は、シミュレーテッドアニーリングを利用しているので、学習率は、学習データセットが処理されるにつれて減少する。
【0048】
いくつかの例では、ネットワークデータ124は、ネットワークが出力をネットワークの入力にフィードバックできる最大回数(すなわち、エポック)を示す最大再入力(マキシマムリエントリー)値を備えている。出力を入力に戻すことは、ネットワークがコンセンサスを形成する(すなわち、収束する)ことを支援し得る。いくつかの例では、最大再入力値は、2エポックのデフォルトを有することができる。
【0049】
いくつかの例では、ネットワークデータ124は、次の層に出力を伝播する前に各エキスパートによってノートセクションにタイプ(入力)されなければならない最小の文字数を定義する最小コメント値を備えている。いくつかの例では、最小コメント値は、20文字のデフォルトを有する。最小コメント値は、エキスパートが自分の出力とタスク解決策全体にもっと貢献することを促すかもしれない。コメントは、彼らの出力をサポートする参照(レファレンス)を備えていることができる。
【0050】
いくつかの例では、ネットワークデータ124は、活性化閾値を備えている。エキスパートが自身の信頼度レベルを活性化閾値未満にランク付けした場合、その出力はエキスパートの次の層に伝搬しない(例えば、伝搬を防止することができる)。活性化閾値は0%から100%の間の任意の値に設定されており、いくつかの例では、0.1%のデフォルト値を有することができる。同じ層に位置する他のエキスパートからの出力が次の層に送られるように利用可能ではない場合、活性化閾値は無視されてもよいので、出力は次の層に送られ得る。
【0051】
いくつかの例では、ネットワークデータ124は、置換率(リプレイスレート)を備えている。誤った出力を提供するエキスパート、または性能が悪いために低い重みを有するエキスパート、は学習システム100によって自動的に置き換えられる場合がある。置換率は、エキスパートが置換される可能性のある確率を指定する。いくつかの例では、置換率は、0.1%のデフォルト値を有してよい。ネットワーク内の全てのエキスパートの重みは0と1の間で正規化されるとともに、特定のエキスパートの重みが置換率よりも小さい場合、そのエキスパートは削除されるとともに、別のエキスパート(すなわち、より正確な結果を提供する可能性がある人)とで置換されてもよい。
【0052】
タスクがエキスパートネットワーク106によって処理される前に、各エキスパートは、入力層108、隠れ層110、または出力層112、にグループ化されてもよい。エキスパートは、タスクサーバ104によって自動的に/動的に選択されグループ化されてもよく、および/または、エキスパートはユーザによって指定されてもよい。エキスパートは、彼らの以前の出力の精度から導出され得る、彼らの重みによってランク付けされてもよい。最も高い重みを有するエキスパートは、ネットワークにおいてより高く(すなわち、より早く)配置されてもよく、一方、より低い重みを有するエキスパートは、ネットワークにおいてより低く(すなわち、より遅く)配置されてもよい。学習システムの特定の層は、以下でより深く説明するように、層固有の規則によって動作してもよい。現在の例では、簡潔かつ単純化のために単一の隠れ層が議論されるが、学習システム100は、代替的に、より多くのまたはより少ない隠れ層を有するエキスパートネットワークを利用してもよい。
【0053】
図4に目を向けると、ユーザ102と、エキスパートネットワーク106の各エキスパートと、はネットワークの一般的なノード114の一例である。各ノード114は、人間116(ユーザまたはエキスパートのいずれか)とで通信するデバイス118を備えて構成されている。いくつかの実施形態では、デバイス118は、スマートフォンである。学習システム100のいくつかの実施形態では、デバイス118は、デスクトップコンピュータまたはラップトップコンピュータを備えている。デバイス118は、入力を受け取り、出力をタスクサーバ104に提供するように構成されている。人間116とデバイス118との間の通信は、任意の適切な人間-機械インタフェース(HMI)を用いて、例えばグラフィカルユーザインタフェース(GUI)を用いて、実現することができる。デバイス118は、タスクデータ120、エキスパートデータ122、およびネットワークデータ124、などそのデバイス118に記憶された動作のためのデータを有していてもよい。いくつかの例では、特定のノードのデバイスは、そこに記憶された部分的なデータを有しているので、例えば、特定のエキスパートノードは、そのデバイスに記憶されたタスクデータのみを有することができる。
【0054】
学習システム100のいくつかの実施形態は、デバイス118にインストールされたアプリ119(すなわち、ソフトウェアアプリケーション)を利用する。アプリ119は、人間116がエキスパートとして登録することで、タスクの解決に参加できるように構成されている。いくつかの例では、アプリ119は、人間116がユーザとして登録すること、例えば、自分のタスクを提出すること、を可能にするように構成されている。アプリ119の使用を通じて、エキスパートは、(例えば、手数料と引き換えに)参加のための新しいタスクの通知を提供するアラート、プッシュ通知、テキストメッセージ、および/またはそのようなもの、を受け取ってもよい。いくつかの例では、アプリ119は、ユーザ102が、例えば、新しいタスクと共に提出するべく、デバイス118上で写真またはビデオをキャプチャすることを可能にするように構成されている。
【0055】
人間116は、オプションで、例えば匿名で、利用可能性(アベイラビリティ、可用性)および位置情報を共有してもよい。このオプションは、デフォルトで無効にされてもよく、人間116によって意図的に有効にされた場合、デバイス118は、人間116が訪れた場所を、関連するタイムスタンプとともに記録してもよい。いくつかの例では、この位置データは、例えば、犯罪の解決または行方不明者の発見において、法執行機関を支援するべく利用され得る。
【0056】
図5に目を向けると、ユーザ102は、タスク103(および上述の関連タスクデータ120)を、タスクサーバ104に提出する。タスク103がタスクサーバ104によって受け取られた後、タスクサーバは、タスクの完了のためのコストおよび時間を推定する。タスクサーバ104は、(プッシュ通知、テキストメッセージ、電子メール、などを介して)各エキスパートのデバイスに連絡するだけでなく、現在のエキスパートネットワークに参加するべく現在利用可能な(または利用可能になり得る)特定のエキスパートを特定しようと試みることができる。タスクサーバ104は、その後、任意選択で、タスク103に前処理105の動作を実行してもよい。そうでなければ、タスク103はエキスパートネットワーク106にディスパッチ(急送)される。
【0057】
利用される場合、前処理105は、特定の領域(ドメイン)または専門分野(フィールド)のために学習システム100を調整(テイラー)するように構成されている。一例では、前処理105は、音楽アーティストが自分の音楽に対するフィードバックを受け取ることを支援するべく利用されてもよい。この例では、前処理105は、ファイルおよびタスクを提出する前に、オーディオファイルを圧縮または分割する工程、またはジャンルおよびスタイル分類、アーティスト識別、または音響分析を実行する工程を伴う場合がある。別の例では、前処理105は、株式または他の有価証券のニュース記事およびアナリストの意見に関する自然言語処理(NLP)モジュールを利用してもよい。この例では、株式の価格が上がるべきか下がるべきかというコンセンサスを受け取るべく、テキストの一部がセマンティックアナリシス(意味解析)のために学習システム100に提出されてもよい。さらに別の例では、前処理105は、医療エキスパートによって利用され、例えば、医療診断を提供するべく、患者のヘルスケアデータが分析のためにエキスパートネットワーク(エキスパートシステム)106によって摂取されることを可能にすることができる。この例では、エキスパートネットワークは、特定の医学的状態または問題の患者の症状について学習(訓練)され、かつ知識を有する医療エキスパートを備えて構成されてもよい。この構成は、救急医療、共同医学研究などに活用されてもよい。
【0058】
図5および
図6に示すように、入力層108は、タスクサーバ104からタスク103を受け取る。
図6に示すように、入力層108の各エキスパート(入力ノード1~Nと表示)は、対応するデバイスを介してタスクサーバ104からタスク103を受け取ることで、タスクタイムリミットによって指定されるように、解決策を処理し提出するための特定の時間が許可される。入力層108の各エキスパートは、タスク103に対する一意の主観的な解決策を出力として、関連する信頼度レベルと共に提供する。例えば、第1層のエキスパートは、テキスト、図面、写真、ビデオ、記録、計算、予測、コンピュータファイル、および/または、解決策を構成し得る他の任意の情報、として表される出力(アウトプット)を提供することができる。
【0059】
入力層108の各エキスパートからの出力の一部または全部は、入力層の出力としての入力層出力109に集約される。例えば、入力層108の各エキスパートからの出力は、各エキスパートによって提供された信頼度レベルによってソートされた解決策のリストにコンパイルされ得る。入力層出力109とタスク103は、次に隠れ層110に送られる。或る層から次の層への出力は、タスクサーバ104を介して、または代替的に後続の層のエキスパートに直接に、送信されてもよい。
【0060】
図5および
図7に示すように、隠れ層110は、入力層出力109およびタスク103を受け取る。隠れ層110の各ノード(隠れノード1~Nとラベル付けされる)は、入力層出力109とタスク103を(すなわち、関連するデバイスで)受け取る。いくつかの例では、隠れ層のノードは、入力層108からすべての解決策を受け取らないかもしれない。例えば、活性化閾値よりも低い信頼度レベルを割り当てられた解決策は、入力層出力109に含まれないかもしれない。隠れ層110の各エキスパートは、入力層出力109で提供された解決策から選択するだけでなく、同様に、選択に関連する信頼度レベルを割り当てることができる。選択と、選択に関連する信頼度レベルと、によって隠れ層の各ノードからの出力が形成される。いくつかの例では、隠れ層110の1人または複数のエキスパートは、複数の解決策を選択するだけでなく、各選択に付随する信頼度レベルを提供することが許可されるかまたは期待される。
【0061】
隠れ層110の各ノードからの出力の一部または全部は、隠れ層の出力としての隠れ層出力111に集約される。例えば、隠れ層110の各ノードからの出力は、各隠れ層エキスパートによって提供された信頼度レベルによってソートされた選択済解決策のリストにコンパイルされてもよい。隠れ層出力111は、出力層112に送られる。複数の隠れ層を有する例では、第1隠れ層出力は、同様の処理のために第2隠れ層に送られる。これは、すべての隠れ層がタスク103を処理するまで続けてもよい。
【0062】
図5および
図8に示すように、出力層112は、隠れ層出力111およびタスク103を受け取る。出力層112の各ノード(出力ノード1~Nとラベル付けされている)は、関連デバイスを介して、隠れ層出力111とタスク103とを受け取る。いくつかの例では、出力層のノードは、隠れ層110からすべての解決策を受け取らないことがある。例えば、活性化閾値よりも低い信頼度レベルを割り当てられた解決策は、隠れ層出力111に含まれなくてもよい。出力層112の各エキスパートは、隠れ層出力111で提供された解決策から選択するだけでなく、同様に、その選択に関連する信頼度レベルを割り当てることができる。選択と、選択に関連する信頼度と、は出力層の各ノードからの最終出力を形成する。いくつかの例では、出力層112における1人または複数のエキスパートは、複数の解決策を選択するだけでなく、各選択に付随する信頼度レベルを提供することが許可されるかまたは期待される場合がある。
【0063】
出力層112の各ノードからの出力の一部または全部は、出力層の出力としての出力層出力113に集約される。いくつかの例では、信頼度スコアは集約的であってもよい。すなわち、所与の解決策について各エキスパートによって供給された信頼度スコアは、累積、平均化、および/または他の方法、で結合されてもよい。
【0064】
いくつかの例では、出力層出力113は、信頼度によってランク付けされた解決策の単一のリストを備えている。いくつかの例では、出力層出力113は、信頼度によってランク付けされた追加のリストされた結果を備えている。例えば、隠れ層出力111は、出力層出力113とで組み合わされてもよい。
【0065】
図5に戻ると、後処理115は、ユーザ102に提供される前に、出力層出力113に適用されてもよい。利用される場合、後処理115は、特定の領域または専門分野のためにエキスパートネットワーク(エキスパートシステム)106の出力を調整(テイラー)するように構成されている。一例では、後処理115は、楽曲の商業的実行可能性を判定することで音楽アーティストを支援することができる。別の例では、後処理115は、株式および/または他の証券の売買および/またはポジションの管理で投資家を支援してもよい。さらに別の例では、後処理115は、エキスパートネットワーク106から受け取った診断に基づき、利用可能な治療選択肢を医師に通知してもよい。
【0066】
前処理105および後処理115は、エキスパートがネットワーク動作中にデータをさらに処理または変換することを可能にする。例えば、エキスパートが音楽を分析している場合、エキスパートは、タスクを完了するためにオーディオファイルを分析または変換するべく、1つまたは複数の提供されたソフトウェアユーティリティを実行することができる。
【0067】
ネットワークがリカレントである例では、出力層出力113はタスク103と共に、入力層108にフィードバックされる(上記の最大再入力を参照)。ネットワークがリカレントである場合、最終出力を第1層に送り返すことが適切かどうかを判定するべく、出力数と、結果のバリエーションと、を分析することができる。
【0068】
いくつかの例では、最終出力の期待数(予想数)は、max(1,[入力層エキスパートカウント]/[ネットワークの全エキスパートカウント])×[入力層エキスパートカウント]、によって決定される。最終出力数が期待数よりも大きく、ネットワークが最大再入力設定よりも多く循環していない場合、ネットワークは出力を再処理する。
【0069】
出力が入力層108にフィードバックされる場合、他のエキスパートによって再考のための追加のメモ、コメント、参照、または他のデータ、が追加または修正されない限り、所定のノードによって提供された元の解決策は、そのノードにフィードバックされないかもしれない。
【0070】
エキスパートがタスクタイムリミット前に応答(回答)しない場合、ネットワークはそのエキスパートの応答無しで継続することができる。後日、エキスパートから応答があり、その時点でまだネットワークが繰り返しネットワーク動作している場合、その出力はネットワークの次のパスで伝搬される可能性がある。
【0071】
ネットワークを通過するたびに、重みが調整され、オプションで保存される。いくつかの例では、競合学習処理の一部として、ノードは再配置される。
例えば、タスクサーバ104によるネットワークレイアウトの再順序付けは、ネットワークの各サイクル/エポックの後に発生してもよい。
【0072】
学習システム100のエラーは、学習システム100が学習中かどうかに応じて、1つまたは複数の方法で計算されてもよい。学習中のエラー計算については、以下のセクションCを参照されたい。いくつかの例では、いくつかのエラー計算が、学習システム100によって協調的におよび/または逐次的に利用されてもよい。
【0073】
いくつかの例では、学習システム100のエラーは、出力に割り当てられたすべてのエキスパートの信頼度ランク付けによって識別される。すべての出力に対するすべての信頼度スコアの平均が50%未満である場合(すなわち、最終解に対する全体的な信頼度が低い場合)、すべての重みから前記差を減算する。平均が50%以上であれば、前記差をすべての重みに加える(例えば、(1-0.5)*学習率)。
【0074】
いくつかの例では、学習システム100におけるエラーは、最終出力の数を期待出力の数とで比較することによって識別される。出力の数が、期待出力の数よりも大きいとき、ネットワークは収束しなかった。ネットワークが収束しなかったとき、補償パーセンテージが全ての重みから減算されてもよい。そうでなければ、補償パーセンテージをすべての重みに加えてもよい。
【0075】
重みが更新され、ネットワークが再配置された後、学習システム100は、指定された置換率以下であれば、オプションとして、最も低い重みのエキスパートのn%を削除および置換してもよい。置換率は、現在の全ての重みの正規化(例えば、0~1)された値とで比較されることがある。さらに、重みが更新された後、各エキスパートの重みは、エキスパートデータ122において更新されてもよい(いくつかの例では、複数の重みが、各エキスパートについて、それぞれの固有のタスクのために保存されてもよい)。
【0076】
いくつかの例では、最終ネットワーク構成は、ネットワークデータ124に保存される。例えば、後の時点で再び同じまたは類似のネットワークをロードおよび/または再構成することを容易にするべく、設定(例えば、エキスパートID、精度カウンタ値など)の1つまたは複数が保存されてもよい。
【0077】
いくつかの例では、重みは利用されない。その代わりに、エキスパートは完全に削除され、および/または、より正確な結果を提供する他のエキスパートとで置換されてもよい(例えば、元のエキスパートの出力が誤りである場合)。
【0078】
重みが使用されない場合、学習率は、エキスパートが置換されるカットオフ閾値を決定するべく利用されてもよい。いくつかの例では、エキスパートの交換は、ネットワーク全体のエラーに対するエキスパートの貢献度によって決定される。
【0079】
ある実施例では、重みを利用しないネットワークは、すべての出力に割り当てられたすべてのエキスパートの信頼度ランキングを利用する。例えば、すべての出力の信頼度スコアが平均50%以下であれば、すべての精度カウンタから前記差を減算する。50%以上であれば、前記差をすべての精度カウンタに加える。例えば、(1-0.5)×学習率。
【0080】
いくつかの例では、重みを利用しないネットワークは、最終出力の数を、期待される出力(期待出力)の数とで比較する。出力数が、期待される出力数よりも大きい場合(すなわち、ネットワークが収束しなかった場合)、すべての精度カウンタからパーセンテージを減算するか、そうでなければ加算する。
【0081】
精度カウンタが更新された後、各エキスパートの精度カウンタは、エキスパートがネットワークから除去されるべきかどうかを決定するべく使用されてもよい。学習システム100は、エキスパートの精度カウンタが置換率(リプレイスレート)を下回る場合、オプションでエキスパート(複数可)のn%を削除して置き換えてもよい。置換率は、現在のすべての精度カウンタの正規化された(例えば、0~1)値とで比較される。この処理は、リカレントネットワークを通過するたびに繰り返されるので、学習システム100が進行中に学習し改善すること、または(教師無し学習のように)重みを使用せずに自己適応すること、を可能にする。
【0082】
[B.タスクサーバの動作のための例示的方法]
本セクションは、本開示のタスクサーバ、例えば上述した学習システム100のタスクサーバ104、の動作のための例示的な方法200の工程を説明する;
図9を参照。上述した学習システムの態様は、以下に説明する方法工程において利用され得る。適切な場合、各工程を実施する際に使用され得る構成要素およびシステムに対して参照がなされ得る。これらの参照は説明のためのものであり、方法の任意の特定の工程を遂行する可能な方法を制限することを意図していない。
【0083】
図10は、例示的な方法で実行される工程を示すフローチャートであるので、完全な処理または方法のすべての工程を説明するものではない場合がある。方法200の様々な工程が以下に説明され、
図10に描かれているが、工程は必ずしも全て実行される必要はなく、場合によっては同時に実行されてもよいだけでなく、示される順序とは異なる順序で実行されてもよい。以下に提供される方法は、上述の学習システムに関連して、ユーザがタスクを提出するだけでなく、学習システムの層を介してエキスパートが提供するデータの伝搬によって、1つまたは複数の吟味された候補解決策を受け取ることを可能にする。
【0084】
方法200の工程202は、本開示の学習システムにおいて、ユーザが提出したタスクを受け取る工程を備えている。タスクは任意の形態を取り得るが、しかし、ほとんどのタスクは、回答するべく研究および/または人間の意見を必要とする、複雑で主観的な質問であることが予想される。タスクはまた、最初に共同研究を必要とする行動である可能性もある。例えば、エキスパートに行方不明の人や物の捜索を依頼したり、および/または人、場所、物の写真やビデオを撮影するだけでなく、その写真やビデオをユーザに送信するよう依頼されたりすることもある。
【0085】
タスクは明確な指示を有するだけでなく、サポートする電子ファイルが必要な場合、それらは小さく、送信しやすく、ウイルススキャンされるべきである(これは、学習システム100のサーバによって自動的に発生することもある)。オプションの前処理は、この時点で発生してもよい。
【0086】
タスクは、複数の要素または構成要素で構成されてもよく、学習システム100は、タスクを効果的な方法で配布するように構成されている。例えば、タスクが16個の質問または目的を備えて構成され、入力層が8個のエキスパートノードを有する場合、2個のアイテムが入力層内の各エキスパートに送信されてもよい。
【0087】
タスクおよびサポートファイル(もしあれば)が学習システム100に送信されると、エキスパートのパネル(選択済ネットワークのエキスパートを備えてもよい)は任意にタスクをレビューするだけでなく、適切であればタスクを変更するための提案を提供することができる。
【0088】
方法200の工程204は、学習システムのためのエキスパートのグループ(集団)を選択する工程を備えている。これは、タスク基準を分析した後に学習システム100によって自動的に実行されてもよいだけでなく、手動で、年齢、性別、場所、教育、収入、経験、適性試験結果、以前のタスク性能、精度、タスクを行うためのコスト、などの選択基準を指定できるユーザの裁量で実行されてもよい。
【0089】
エキスパートの選択処理の一部として、タスクの推定期間、タスクの完全な説明、課されたタイムリミット、またはその他の関連情報、に加えて、タスクを完了するためのオファー価格(指定または必要な場合)がエキスパートに提供される。エキスパートは、そのタスクに参加するかどうかを決めることができる。例えば、各エキスパートは、承諾、拒否、または逆提案(カウンターオファー)することができる。逆提案は、代替の開始時間、期間、またはオファー価格を提供することができる。ユーザまたはソフトウェアは、任意の逆提案を受け入れるか拒否するかを決定することができる。選択された数のエキスパートが招待を受け入れた後、または十分な数のエキスパートが招待を受け入れたとユーザが判断した後、処理を開始することができる。ユーザは、開始された進捗状況、推定期間などを通知されてもよいし、タスクの更新を継続的に受け取ってもよい。
【0090】
出力が信頼できることを保証するのに役立つコントロールサンプルの形態として、(ユーザの基準に基づき)資格を持たない1人または複数のエキスパート参加者が選択されるとともに、ネットワークに追加されるかもしれない。エキスパートが彼らの関心および利用可能性を確認すると、学習システム100は、エキスパートがタスクに効果的に参加するための彼らの関心および能力を確認できるように、テスト問題を提供してもよい。学習システム100がテスト問題を提供してもよいだけでなく、ユーザはテスト問題を提供してもよい。
【0091】
タスクを実行するのに十分な資格と関心を有するエキスパートが利用できない場合、学習システム100は、例えば、登録されたエキスパートが設定した利用可能時間および邪魔しない時間に基づき、または過去の利用可能性に基づきエキスパートの利用可能性を予測することによって、タスクを再実行しようとする代替時間および最適時間を提案してもよい。また、ユーザは、選択基準を変更して他のエキスパートを見つけることもできるだけでなく、後日、タスクを再試行することもできる。
【0092】
エキスパートが特定されるとともに、タスクにコミットされ、タスク開始時刻が判明すると、タスクに関する推定開始時刻、コスト、完了までの時間、および他の情報、を示すメッセージがユーザに表示または送信されてもよい。
【0093】
方法200の工程206は、選択されたエキスパートのためのエキスパート設定をロードする工程を備えている。エキスパート設定は、エキスパート重みおよび様々な他の設定を備えている、タスクを管理する学習システム(サーバ上および/またはエキスパートもしくはユーザが所有するコンピュータもしくはデバイス上に存在してもよい)にロードされるとともに、ネットワークレイアウトにロードされてもよい。いくつかの例では、以前に保存されたネットワークが、エキスパートID、各エキスパートの重み、信頼度レベル、レイアウト、および他の様々な設定、を含めて完全にロードされることによって、同じまたは同様のネットワークのロードまたは再構築を再度容易にすることができる。そのような例では、工程208はスキップされてもよい。
【0094】
方法200の工程208は、学習システムのレイアウト(配置)を決定する工程を備えている。学習システム100は、最適なレイアウト(層の数と、層ごとのエキスパートの数と)を自動的に決定してもよい。いくつかの例では、ユーザは、ネットワークレイアウトを指定してもよい。ネットワークレイアウトは、タスクの複雑さ、目的(オブジェクティブ)を備えているタスク要素、学習セッションが実施されるか否か、実施される場合には学習セッションのタスクと出力とのタイプおよび数、ならびに他の要素、に依存する。
【0095】
方法200の工程210は、学習システムを使用してタスクを処理する工程を備えている(例えば、ユーザによる最終承認の後)。この動作のより詳細な説明については、上記を参照されたい。
【0096】
方法200の工程212は、結果をユーザに通知する工程を備えている。これは、エキスパートからの1つまたは複数の出力だけでなく、任意の付随するファイル、メディア、データ、などを備えてもよい。
【0097】
[C.ハイブリッド人間-コンピュータ学習システムを学習するための例示的方法]
本セクションは、本開示の態様に従ってハイブリッド人間-コンピュータ学習システムを学習するための例示的な方法300の工程を説明する;
図10を参照。上述した学習システムの態様は、以下に説明する方法工程において利用され得る。適切な場合、各工程を実施する際に使用され得る構成要素およびシステムに対して参照がなされ得る。これらの参照は説明のためのものであるので、方法の任意の特定の工程を遂行する可能な方法を制限することを意図していない。
【0098】
一般に、ニューラルネットワークの学習には、最適化アルゴリズムを使用して、最適な重みのセットを見つけることが含まれる。ネットワークを学習する前に、ネットワークの初期化を行なう。初期化には、初期ネットワークレイアウトの作成、以前に保存したノードの重みのロード、さまざまな設定やパラメータの変更、が必要になる場合がある。
【0099】
ニューラルネットワークの学習には、逆伝播(バックプロパゲーション)という、勾配を計算して重みを調整する反復型教師有り学習アルゴリズムなど、さまざまなアルゴリズムが存在する。また、遺伝的アルゴリズムによって多項式ニューラルネットワークを進化させるモデルもあり、ここでは重みの評価とアーキテクチャの構築とが同時に行われる。自己組織化マップ(コホネンネットワーク)および他のタイプのニューラルネットワークは、様々な方法で学習されてもよい。
【0100】
本開示の学習システムは、最も価値のあるタイムリーな出力をネットワークに寄与するノードに報酬を与える方法で、そのネットワークアーキテクチャおよび重みを最適化してもよい。学習が行われる場合、学習データセットがラベル付けされるとともに、ネットワークがラベルとデータとの間の相関を学習するように知識がデータセットに伝達される。
【0101】
学習システム100、ユーザ、および/または第三者、はラベル付き学習データセットをネットワークに供給することができる。テキスト、図面、写真、ビデオ、記録、計算、予測、コンピュータファイル、またはエキスパートが応答または出力として提供する可能性がある他の何か、として表される可能性があるラベル(目標値としても知られている)は、既知の出力スコアを指定する不正解の「-1」から正解の「1」までの範囲の1つまたは複数の値を割り当てられる(他の範囲が使用されてもよい)。エキスパートは、単一または複数の選択肢から選択する正解および不正解の値を提示される場合がある。
【0102】
図10は、例示的な方法で実行される工程を示すフローチャートであり、完全な処理または方法のすべての工程を説明するものではない場合がある。方法300の様々な工程が以下に説明され、
図4に描かれているが、工程は必ずしも全て実行される必要はなく、場合によっては同時に実行されてもよいだけでなく、示された順序とは異なる順序で実行されてもよい。
【0103】
方法300の工程302は、学習システム100に学習データセットを提供する工程を備えている。学習データセット(別名、目標値)は、第1層または他の任意の層で始まるネットワークに供給されてもよい。タスクは、ユーザまたは学習システムの裁量で、非同期または同期で各層のエキスパートに送信されてもよく、サーバ上またはユーザのコンピュータまたはデバイス上で実行されてもよい。
【0104】
方法300の工程304は、第1層のエキスパートから出力を受け取ることを備えている。第1層におけるエキスパートは、タスクを提示されるだけでなく、タスクタイムリミットユーザ設定によって指定される、結果を処理および提出するための特定の時間を許可される。
【0105】
学習中、ネットワークの第1層のエキスパートは、学習サンプルからのN個の予め定義されラベル付けされた静的出力(正しさによって-1~1まで等級付けされるか、または別の範囲によって等級付けされる)のうちの1つから選択することのみを許可されてもよい。
【0106】
方法300の工程306は、投票(ボウティング)のために後続の層を介してそれらのエキスパートの結果を送信する工程を備えている。
方法300の工程308は、学習システム100におけるエラーを計算するだけでなく、エキスパートの重みを更新する工程を備えている。学習システム100におけるエラーは、1つまたは複数の方法で計算される。いくつかの例では、いくつかのエラーの計算は、学習システム100によって協調的におよび/または逐次的に利用されてもよい。
【0107】
例えば、各エキスパートの期待出力(予測出力)と実際出力との差は、学習中のエキスパートの重みに寄与してもよい。例えば、エキスパートが-0.5でスコアされた誤ったラベルを選択した場合、学習率の0.5%がエキスパートの重みから減算されることになる。
【0108】
さらに、または代替的に、学習システム100の全体出力と期待出力(すなわち、目標値)との差が、ネットワーク全体について特定されてもよい。例えば、全ての出力の平均が、全てのラベル付けされた出力に関して0.75であってよい場合、学習率の0.75%が全てのエキスパートの重みに加えられることになる。
【0109】
さらに、または代替的に、すべての出力に関するすべての信頼度スコアが平均50%以下である場合、前記差はすべてのエキスパートの重みから減算されるかもしれない。50%以上であれば、前記差をすべての重みに加える:(1-0.5)*学習率。
【0110】
さらに、または代替的に、学習システム100におけるエラーは、最終出力数と期待出力数とを比較することによって識別されてもよい。出力の数が、期待出力の数よりも大きい場合、ネットワークは収束しなかった。ネットワークが収束しなかった場合、補償パーセンテージをすべての重みから減算してもよく、そうでなければ補償パーセンテージをすべての重みに追加してもよい。
【0111】
方法300のオプションの工程310は、シミュレーテッドアニーリングがユーザによって有効化されるとともに、学習率が現在0%を超えている場合、学習率を減少させることを備えている。学習率は、現在の値に対する設定されたパーセンテージ(例えば、10%)だけ減少させてもよい。より詳細については、上記の前のセクションを参照されたい。
【0112】
方法300のオプションの工程312は、さらなる処理のために、出力層からの出力を入力層に送り返すことを備えている。この工程が実行される場合、方法は工程304に戻り、そうでない場合、方法は継続される。
【0113】
方法300のオプションの工程314は、例えば、「ネットワークは10%の精度を得ることによって、学習後に80%の精度になった」というような結果の通知をユーザに送ることを備えている。
【0114】
[D.例示的なデータ処理システム]
図6に示すように、本実施例は、本開示の態様に従ったデータ処理システム600(コンピュータ、コンピューティングシステム、および/またはコンピュータシステム、とも呼ばれる)を説明する。この実施例では、データ処理システム600は、上述した学習システムおよび関連する方法の態様を実施するのに適した例示的なデータ処理システムである。より具体的には、いくつかの例では、データ処理システムの実施形態であるデバイス(例えば、スマートフォン、タブレット、パーソナルコンピュータ)は、学習システムに係るデータをホストするだけでなく、学習システムの1つまたは複数のモジュールまたはソフトウェアプログラムを実行し、学習システムのユーザとエキスパートとの間のコミュニケーション(伝達、通信)を可能にするだけでなく、および/または学習システムによって取得、供給、または生成、されたデータに対して計算および/もしくは分析を実行し得る。
【0115】
この例示的な例では、データ処理システム600は、システムバス602(通信(伝達)フレームワークとも称される)を備えている。システムバス602は、プロセッサユニット604(1つのプロセッサまたは複数のプロセッサとも呼ばれる)、メモリ606、永続的ストレージ608、通信ユニット610、入出力(I/O、入/出力)ユニット612、コーデック630、および/またはディスプレイ614、間の通信(伝達)を提供してもよい。メモリ606、永続的ストレージ608、通信ユニット610、入出力(I/O)ユニット612、ディスプレイ614、およびコーデック630、はシステムバス602を介してプロセッサユニット604によってアクセス可能なリソースの一例である。
【0116】
プロセッサユニット604は、メモリ606にロードされ得る命令を実行するべく機能する。プロセッサユニット604は、特定の実装に応じて、多数のプロセッサ、マルチプロセッサコア、および/または特定のタイプのプロセッサまたは複数のプロセッサ(例えば、中央処理装置(CPU)、グラフィックス処理装置(GPU)等)、で構成されてもよい。さらに、プロセッサユニット604は、メインプロセッサが単一チップ上の二次プロセッサと共に存在する多数のヘテロジニアスプロセッサシステムを使用して実装されてもよい。別の例示的な例として、プロセッサユニット604は、同じタイプの複数のプロセッサを備えている対称的なマルチプロセッサシステムであってもよい。
【0117】
メモリ606および永続的ストレージ(永続記憶装置)608は、記憶装置616の一例である。記憶装置は、データ、機能的形態のプログラムコード、および/または他の適切な情報、などの情報(例えば、デジタル情報)を一時的または永続的に記憶することができる任意の適切なハードウェアを備えてもよい。
【0118】
記憶装置616はまた、コンピュータ可読記憶装置またはコンピュータ可読媒体と呼ばれることもある。メモリ606は、揮発性ストレージメモリ640および不揮発性メモリ642を備えてもよい。いくつかの例では、起動時など、データ処理システム600内の要素同士間で情報を転送するための基本ルーチンを備えている基本入出力システム(BIOS)が、不揮発性メモリ642に記憶されてもよい。永続的ストレージ608は、特定の実装に依存して、様々な形態をとることができる。
【0119】
永続的ストレージ608は、1つまたは複数の構成要素またはデバイスを備えてもよい。例えば、永続的ストレージ608は、磁気ディスクドライブ(ハードディスクドライブまたはHDDとも呼ばれる)、ソリッドステートディスク(SSD)、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、フラッシュメモリカード、メモリスティック、および/または同様のもの、あるいはこれらの任意の組み合わせ、などの1つまたは複数の装置(デバイス)を備えても良い。これらのデバイスの1つまたは複数は、取り外し可能および/または携帯可能であってもよく、例えば、取り外し可能なハードドライブである。永続的ストレージ608は、コンパクトディスクROM装置(CD-ROM)、CD記録可能ドライブ(CD-Rドライブ)、CD書き換え可能ドライブ(CD-RWドライブ)などの光ディスクドライブ、および/またはデジタル多用途ディスクROMドライブ(DVD-ROM)、などの1つまたは複数の記憶媒体を、別々にまたは他の記憶媒体との組み合わせで備えてもよい。永続的ストレージ608のシステムバス602への接続を容易にするべく、インタフェース628のような取り外し可能または非取り外し可能なインタフェースが典型的に使用される。
【0120】
入出力(I/O)ユニット612は、データ処理システム600に接続され得る他のデバイス(すなわち、入力デバイスおよび出力デバイス)とのデータの入力および出力を可能にする。例えば、入力デバイスは、キーボード、マウス、トラックボール、スタイラス、タッチパッドまたはタッチスクリーン、マイク、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナ、TVチューナーカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラ、および/または同様のもの、などの1つまたは複数のポインティングデバイスおよび/または情報入力デバイスを備えていることができる。これらおよび他の入力デバイスは、インタフェースポート(複数可)を介してシステムバス602を通じてプロセッサユニット604に接続することができる。適切なインタフェースポート(複数可)には、例えば、シリアルポート、パラレルポート、ゲームポート、および/またはユニバーサルシリアルバス(USB)、が含まれ得る。
【0121】
1つまたは複数の出力デバイスは、入力デバイス(複数可)と同じタイプのポートの一部、および場合によっては同じ実際のポートを使用することができる。例えば、USBポートは、データ処理システム600に入力を提供するべく、およびデータ処理システム600から出力デバイスに情報を出力するべく、使用されてもよい。1つまたは複数の出力アダプタは、特別なアダプタを必要とする特定の出力デバイス(例えば、モニタ、スピーカー、およびプリンタなど)のために提供されてもよい。適切な出力アダプタは、例えば、出力デバイスとシステムバス602との間の接続手段を提供するビデオカードおよびサウンドカードを備えてもよい。他のデバイス、および/またはデバイスのシステム、はリモートコンピュータ(複数可)660などの入力および出力機能の両方を提供してもよい。ディスプレイ614は、ユーザに情報を表示するように構成された任意の適切なヒューマンマシンインタフェースまたは他の機構、例えば、CRT、LED、またはLCDモニタまたはスクリーン、などを備えていることができる。
【0122】
通信ユニット610は、他のデータ処理システムまたは装置との通信(情報伝達)を提供するべく採用される任意の適切なハードウェアおよび/またはソフトウェアを指す。通信ユニット610は、データ処理システム600の内部に示されているが、いくつかの例では、データ処理システム600の少なくとも部分的に外部であってもよい。通信ユニット610は、内部および外部技術、例えば、モデム(通常の電話グレードのモデム、ケーブルモデム、およびDSLモデム、を備えている)、ISDNアダプタ、および/または有線および無線イーサネット(登録商標)カード、ハブ、ルータ、などを備えていることができる。データ処理システム600は、1つまたは複数のリモートコンピュータ660への論理接続を使用して、ネットワーク化された環境で動作してもよい。リモートコンピュータ(複数可)660は、パーソナルコンピュータ(PC)、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースのアプライアンス、ピアデバイス、スマートフォン、タブレット、別のネットワークノート、および/またはそのようなもの、を備えてもよい。リモートコンピュータ(複数可)660は、典型的には、データ処理システム600に関連して説明された要素の多くを備えている。リモートコンピュータ(単数または複数)660は、通信ユニット610を介してデータ処理システム600に接続されるネットワークインタフェース662を通じて、データ処理システム600に論理的に接続され得る。ネットワークインタフェース662は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびセルラーネットワーク、などの有線および/または無線通信ネットワークを包含する。LAN技術は、ファイバ分散データインタフェース(FDDI)、銅分散データインタフェース(CDDI)、イーサネット(登録商標)、トークンリング、および/またはそのようなもの、を備えていることができる。WAN技術は、ポイントツーポイントリンク、回線交換ネットワーク(例えば、統合サービスデジタルネットワーク(ISDN)およびその変形)、パケット交換ネットワーク、およびデジタル加入者線(DSL)、を備えている。
【0123】
コーデック630は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせ、からなるエンコーダ、デコーダ、またはその両方、を備えてもよい。コーデック630は、伝送および保存(記憶)のためにデータストリームまたは信号を符号化、圧縮、および/または暗号化、するだけでなく、データストリームまたは信号を復号化、解凍、および/または解読(例えば、ビデオの再生または編集のため)、するように構成された任意の適切な装置および/またはソフトウェアを備えてもよい。コーデック630は、別個の構成要素として描かれているが、コーデック630は、メモリ例えば不揮発性メモリ642に、含まれるかまたは実装されてもよい。
【0124】
不揮発性メモリ642は、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ等、またはこれらの任意の組合せ、を備えてもよい。揮発性ストレージメモリ640は、外部キャッシュメモリとして機能し得るランダムアクセスメモリ(RAM)を備えてもよい。RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR_SDRAM)、エンハンストSDRAM(ESDRAM)、および/または、これらの任意の組み合わせ、を備えて構成されてもよい。
【0125】
オペレーティングシステム、アプリケーション、および/またはプログラム、のための命令は、システムバス602を介してプロセッサユニット604とで通信している記憶装置(ストレージデバイス)616に配置されてもよい。これらの例示的な例では、命令は、永続的ストレージ608に機能的な形態で存在する。これらの命令は、プロセッサユニット604による実行のためにメモリ606にロードされてもよい。本開示の1つまたは複数の実施形態の処理は、プロセッサユニット604によって、メモリ606などのメモリに配置されてもよいコンピュータ実装された命令を用いて実行されてもよい。
【0126】
これらの命令は、プロセッサユニット604のプロセッサによって実行されるプログラム命令、プログラムコード、コンピュータ使用可能なプログラムコード、またはコンピュータ読み取り可能なプログラムコード、と称される。異なる実施形態におけるプログラムコードは、メモリ606または永続的ストレージ608などの異なる物理的またはコンピュータ可読記憶媒体上で具現化されてもよい。プログラムコード618は、選択的に取り外し可能なコンピュータ可読媒体620上に機能形態で位置するだけでなく、プロセッサユニット604による実行のためにデータ処理システム600上にロードまたは転送されてもよい。プログラムコード618およびコンピュータ可読媒体620は、これらの例において、コンピュータプログラム製品622を形成する。一実施例では、コンピュータ可読媒体620は、コンピュータ可読記憶媒体624またはコンピュータ可読信号媒体626を備えて構成されてもよい。
【0127】
コンピュータ可読記憶媒体624は、例えば、永続的ストレージ(永続記憶装置)608の一部であるハードディスクなどの記憶装置上に転送するべく永続的ストレージ608の一部であるドライブなどのデバイスに挿入または配置される光ディスクまたは磁気ディスクを備えてもよい。コンピュータ可読記憶媒体624はまた、データ処理システム600に接続されるハードドライブ、サムドライブ、またはフラッシュメモリ、などの永続記憶媒体の形態をとることもできる。いくつかの実施態様では、コンピュータ可読記憶媒体624は、データ処理システム600から取り外し可能ではない場合がある。
【0128】
これらの例では、コンピュータ可読記憶媒体624は、プログラムコード618を伝播または伝送する媒体よりもむしろ、プログラムコード618を記憶するべく用いられる非一時的、物理的、または有形、の記憶デバイスである。コンピュータ可読記憶媒体624は、コンピュータ可読有形記憶装置またはコンピュータ可読物理記憶装置とも称される。言い換えれば、コンピュータ可読記憶媒体624は、人が触れることができる媒体である。
【0129】
あるいは、プログラムコード618は、コンピュータ可読信号媒体626を用いて、データ処理システム600に、例えば、ネットワークを介して遠隔的に転送されてもよい。コンピュータ可読信号媒体626は、例えば、プログラムコード618を備えている伝搬されたデータ信号であってもよい。例えば、コンピュータ可読信号媒体626は、電磁信号、光信号、および/または任意の他の適切なタイプの信号、であってもよい。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、電線、および/または任意の他の好適なタイプの通信リンク、などの通信リンクを介して伝送されてもよい。言い換えれば、通信リンクおよび/または接続は、例示的な例では、物理的または無線的であってもよい。
【0130】
いくつかの例示的な実施形態では、プログラムコード618は、データ処理システム600内で使用するべく、コンピュータ可読信号媒体626を介して、別のデバイスまたはデータ処理システムから永続的ストレージ608に、ネットワークを介してダウンロードされてもよい。例えば、サーバデータ処理システム内のコンピュータ可読記憶媒体に記憶されたプログラムコードは、サーバからデータ処理システム600にネットワークを介してダウンロードされてもよい。プログラムコード618を提供するコンピュータは、サーバコンピュータ、クライアントコンピュータ、または、プログラムコード618を記憶し送信することができる他のデバイス、であってもよい。
【0131】
いくつかの例では、プログラムコード618は、オペレーティングシステム(OS)650を構成してもよい。オペレーティングシステム650は、永続的ストレージ608に記憶されてもよく、データ処理システム600のリソースを制御および割り当てる。1つまたは複数のアプリケーション652は、プログラムモジュール654と、記憶装置616に記憶されたプログラムデータ656と、を介してオペレーティングシステムのリソース管理を利用する。オペレーティングシステムOS650は、アプリケーション652による共有および使用のためにコンピュータ(600)のハードウェア資源を管理し公開するように構成された任意の適切なソフトウェアシステムを備えてもよい。いくつかの例では、オペレーティングシステムOS650は、異なるタイプのハードウェアの接続を容易にする、および/またはアプリケーション652にハードウェアおよびオペレーティングシステムOSサービスへのアクセスを提供する、アプリケーションプログラミングインタフェース(API)を提供する。いくつかの例では、特定のアプリケーション652は、例えば、いわゆる「ミドルウェア」の場合のように、他のアプリケーション652が使用するためのさらなるサービスを提供してもよい。本開示の態様は、様々なオペレーティングシステムまたはオペレーティングシステムの組み合わせに関して実施され得る。
【0132】
データ処理システム600について例示された異なる構成要素は、異なる実施形態が実装され得る方法に対するアーキテクチャ上の制限を提供することを意図していない。本開示の1つまたは複数の実施形態は、より少ない構成要素を備えているデータ処理システムにおいて実装されてもよいだけでなく、コンピュータ(600)について図示された構成要素に加えて、および/またはそれに代わる構成要素を備えているデータ処理システムにおいて実装されてもよい。
図6に示される他の構成要素は、描かれた例から変化させることができる。異なる実施形態は、プログラムコードを実行することができる任意のハードウェア装置またはシステムを用いて実装することができる。一例として、データ処理システム600は、無機構成要素と統合された有機構成要素を備えてもよく、および/または、(人間を除く)有機構成要素のみによって構成されてもよい。例えば、ストレージデバイスは、有機半導体で構成されてもよい。
【0133】
いくつかの例では、プロセッサユニット604は、特定の用途のために、または特定の結果もしくは進展をもたらすために特別に製造または構成されたハードウェア回路を有するハードウェアユニットの形態を取ってよい。このタイプのハードウェアは、動作を実行するように構成されるべくプログラムコード618が記憶装置からメモリにロードされることを必要とせずに、動作を実行することができる。例えば、プロセッサユニット604は、回路システム、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、または、多数の動作を実行するように構成された(例えば、事前に構成されたまたは再構成された)他の適切なタイプのハードウェア、であってよい。例えば、プログラマブルロジックデバイスでは、デバイスは、動作回数を実行するように構成され、後の時点で再構成されていることができる。プログラマブルロジックデバイスの例としては、プログラマブルロジックアレイ、フィールドプログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ(FPGA)、その他の適切なハードウェアデバイス、などがある。このタイプの実装では、実行可能命令(例えば、プログラムコード618)は、例えば、ハードウェア記述言語(HDL)を使用してFPGA構成を指定するだけでなく、次に、結果のバイナリファイルを使用してFPGAを(再)構成することによって、ハードウェアとして実装され得る。
【0134】
別の例では、データ処理システム600は、FPGAベース(または場合によってはASICベース)の、専用目的のステートマシン(例えば、有限状態マシン(FSM))のセットとして実装されてもよく、これによって、重要なタスクが分離されてカスタムハードウェア上で実行されることが可能になる場合がある。CPUなどのプロセッサは、提供された命令を実行する共有型の汎用ステートマシンと言えるが、FPGAベースのステートマシンは特別な目的のために構築されており、リソースを共有せずにハードウェアでコーディングされたロジックを実行することが可能にされている。このようなシステムは、安全関連タスクや、ミッションクリティカルなタスク、に利用されることが多い。
【0135】
さらに別の例示的な例では、プロセッサユニット604は、コンピュータに見られるプロセッサと、ハードウェアユニットと、の組合せを用いて実装されてもよい。プロセッサユニット604は、プログラムコード618を実行するように構成された多数のハードウェアユニットと多数のプロセッサを備えてもよい。この描かれた例では、処理のいくつかは多数のハードウェアユニットで実装されてもよく、他の処理は多数のプロセッサで実装されてもよい。
【0136】
別の例では、システムバス602は、システムバスまたは入出力バスなどの、1つまたは複数のバスで構成されてもよい。もちろん、バスシステムは、バスシステムに取り付けられた異なる構成要素またはデバイス同士間のデータの転送を提供する任意の適切なタイプのアーキテクチャを使用して実装されてもよい。システムバス602は、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および/または、任意の様々な利用可能なバスアーキテクチャ(例えば、工業規格アーキテクチャ(ISA)、マイクロチャネルアーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェントドライブエレクトロニクス(IDE)、VESAローカルバス(VLB)、周辺構成要素相互接続(PCI)、カードバス、汎用シリアルバス(USB)、先進グラフィックスポート(AGP)、パーソナルコンピュータメモリカード国際協会バス(PCMCIA)、Firewire(IEEE1394)、および小型コンピュータシステムインタフェース(SCSI))を使用するローカルバス、を備えているいくつかのタイプのバスアーキテクチャ(複数可)を備えてもよい。
【0137】
さらに、通信ユニット610は、データを送信する、データを受け取る、またはデータの送信および受信の両方を行う、多数のデバイスを備えてもよい。通信ユニット610は、例えば、モデムまたはネットワークアダプタ、2つのネットワークアダプタ、またはそれらの組み合わせ、であってもよい。さらに、メモリは、例えば、メモリ606であってもよいし、またはシステムバス602に存在し得るインタフェースおよびメモリコントローラハブに見られるようなキャッシュであってもよい。
【0138】
[E.例示的な分散型データ処理システム]
図7に示すように、この例は、コンピュータネットワーク、ネットワークシステム、分散データ処理システム、または分散ネットワーク、と交換可能に呼ばれる一般的なネットワークデータ処理システム700を説明するだけでなく、その態様は、上述した学習システムおよび/または関連方法の1つまたは複数の例示的実施形態に含まれ得る。例えば、学習システムのノード同士間の通信は、ネットワークデータ処理システム700の実施形態によって可能にされ、および/またはネットワークデータ処理システム700の実施形態として組織されてもよい。
【0139】
図7は、1つの実装の例示として提供され、異なる実施形態が実装され得る環境に関していかなる制限も示唆することを意図していないことを理解されたい。描かれた環境に対する多くの変更がなされ得る。
【0140】
ネットワークデータ処理システム700は、それぞれがデータ処理システム600の一例であってもよいデバイス(例えば、コンピュータ)、および他の構成要素、のネットワークである。ネットワークデータ処理システム700は、ネットワークデータ処理システム700内に接続された様々なデバイスおよびコンピュータ同士間の通信リンクを提供するように構成された媒体である、ネットワーク702を備えてもよい。ネットワーク702は、有線または無線通信リンク、光ファイバケーブル、および/または、ネットワークデバイス間でデータを送信および/もしくは通信(伝達)するための他の任意の適切な媒体、またはそれらの任意の組み合わせ、などの接続を備えてもよい。
【0141】
描かれた例では、第1ネットワークデバイス704と第2ネットワークデバイス706は、1つまたは複数のコンピュータ可読メモリまたは記憶装置708と同様に、ネットワーク702に接続する。第1および第2ネットワークデバイス704および706はそれぞれ、上述したデータ処理システム600の例である。描かれた例では、第1および第2ネットワークデバイス704および706は、サーバコンピュータとして示されており、これらはとりわけサーバコンピュータ(704および706)にローカルな情報を記憶するべく採用され得る1つまたは複数のサーバデータストア(複数可)722とで通信している。しかしながら、ネットワークデバイスは、限定されないが、1つまたは複数のパーソナルコンピュータや、パーソナルデジタルアシスタント(PDA)およびタブレットならびにスマートフォンなどのモバイルコンピューティングデバイス、携帯ゲームデバイス、装着可能デバイス、タブレットコンピュータ、ルータ、スイッチ、音声ゲート、サーバ、電子記憶装置、画像装置、メディアプレーヤー、および/または、機械機能もしくは他の機能を実行し得る他のネットワーク化されたツール、を備えていることができる。これらのネットワークデバイスは、有線、無線、光学、および他、の適切な通信リンクを通じて相互接続されてもよい。
【0142】
さらに、第1および第2クライアント電子デバイス710および712、ならびに/またはクライアントスマートデバイス714、はネットワーク702に接続されてもよい。これらのデバイスのそれぞれは、
図6に関して上述したデータ処理システム600の一例である。クライアント電子デバイス(710、712、および714)、は例えば、1つまたは複数のパーソナルコンピュータ、ネットワークコンピュータ、および/またはモバイルコンピューティングデバイス、などを備えてもよく、モバイルコンピューティングデバイスは、パーソナルデジタルアシスタント(PDA)、スマートフォン、携帯ゲーム機、ウェアラブルデバイス、および/またはタブレットコンピュータ、などである。描かれている例では、サーバ704は、ブートファイル、オペレーティングシステムイメージ、およびアプリケーション、などの情報をクライアント電子デバイス(710、712、および714)、のうちの1つまたは複数に提供する。クライアント電子デバイス(710、712、および714)、はサーバコンピュータ(704)などのサーバとの関係の文脈で「クライアント」と呼ばれることがある。クライアントデバイスは、クライアントにローカルな情報(例えば、クッキー(複数可)および/または関連するコンテキスト情報)を記憶するべく採用され得る、1つまたは複数のクライアントデータストア(複数可)720とで通信していてもよい。ネットワークデータ処理システム700は、より多くのまたはより少ないサーバおよび/またはクライアント(またはサーバまたはクライアント無し)、ならびに図示しない他のデバイスを備えてもよい。
【0143】
いくつかの例では、第1クライアント電子デバイス710は、符号化されたファイルをサーバ704に転送することができる。サーバ704は、ファイルを記憶するだけでなく、ファイルをデコードし、および/またはファイルを第2クライアント電子デバイス712に転送することができる。いくつかの例では、第1クライアント電子デバイス710は、非圧縮ファイルをサーバ704に転送してもよく、サーバ704は、そのファイルを圧縮してもよい。いくつかの例では、サーバ704は、テキスト、オーディオ、および/またはビデオ情報、をエンコードするだけでなく、ネットワーク702を介して1つまたは複数のクライアントに情報を送信してもよい。
【0144】
クライアントスマートデバイス714は、スマートフォンまたはタブレットなどの、無線通信およびソフトウェアの実行が可能な任意の適切な携帯電子デバイスを備えてもよい。一般に、「スマートフォン」という用語は、コンピュータの機能を実行するように構成された任意の適切な携帯電子デバイスを表す場合があり、典型的には、タッチスクリーンインタフェース、インターネットアクセス、およびダウンロードしたアプリケーションを実行することができるオペレーティングシステムを有する。スマートフォンは、(例えば、携帯電話ネットワークを介して)電話をかけることに加えて、電子メール、テキスト、およびマルチメディアメッセージの送受信、インターネットへのアクセス、および/またはWebブラウザとして機能することができる場合がある。スマートデバイス(例えば、スマートフォン)は、メディアプレーヤー、パーソナルデジタルアシスタント、デジタルカメラ、ビデオカメラ、および/または全地球測位システム(GPS)、などの他の既知の電子デバイスの機能を備えてもよい。スマートデバイス(例えば、スマートフォン)は、近距離無線通信(NFC)、BLUETOOTH(登録商標)、WiFi、またはモバイルブロードバンドネットワーク、などを通じて、他のスマートデバイス、コンピュータ、または電子デバイス、と無線で接続することが可能であってよい。スマートデバイス、スマートフォン、コンピュータ、および/または他のデバイス、の間で無線的に接続を確立することで、情報を交換できるモバイルネットワークを形成してもよい。
【0145】
ネットワークデータ処理システム700に配置されたデータおよびプログラムコードは、上述のように、ネットワーク接続された記憶装置708および/またはネットワークコンピュータの1つの永続的ストレージ608、などのコンピュータ可読記憶媒体の内または上に記憶されてもよく、使用のためにデータ処理システムまたは他のデバイスにダウンロードされてもよい。例えば、プログラムコードは、サーバコンピュータ(704)上のコンピュータ可読記憶媒体に記憶されるだけでなく、クライアント(710)上で使用するべくネットワーク702を介してクライアント(710)にダウンロードされてもよい。いくつかの例では、クライアントデータストア720およびサーバデータストア722は、1つまたは複数の記憶装置(708および/または608)上に存在する。
【0146】
ネットワークデータ処理システム700は、異なるタイプのネットワークのうちの1つまたは複数として実装されてもよい。例えば、ネットワークデータ処理システム700は、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはパーソナルエリアネットワーク(PAN)、を備えてもよい。いくつかの例では、ネットワークデータ処理システム700はインターネットを含み、ネットワーク702は、プロトコルの伝送制御プロトコル/インターネットプロトコル(TCP/IP)スイートを使用して互いに通信するネットワークおよびゲートウェイの世界的なコレクションを表している。インターネットの中心には、主要なノード同士またはホストコンピュータ同士間の高速データ通信回線のバックボーンがある。何千もの商業、政府、教育、および他、のコンピュータシステムは、データおよびメッセージをルーティングするべく利用され得る。いくつかの例では、ネットワーク702は、「クラウド」と呼ばれることがある。それらの例では、各サーバ704は、クラウドコンピューティングノードと呼ばれてもよく、クライアント電子デバイスは、クラウドコンシューマなどと呼ばれてもよい。
図7は、例として意図されており、任意の例示的な実施形態に対するアーキテクチャ上の制限として意図されていない。
【0147】
[F.例示的な組み合わせおよび追加的な例]
本セクションは、限定されることなく一連の項目(段落)として提示される学習システムの追加の態様および特徴を説明するだけでなく、その一部または全部は、明確性および効率性のために英数字で指定されてもよい。これらの項目のそれぞれは、1つまたは複数の他の項目と、および/または本願の他の場所からの開示と、任意の適切な方法で組み合わせることができる。以下の項目のいくつかは、他の項目を明示的に参照するだけでなく、さらに限定し、好適な組み合わせのいくつかの例を限定することなく提供する。
【0148】
(A0).ユーザが提供するタスクに対する解決策を提供するためのデータ処理システムとしてのシステムであって、前記システムはメモリと、1つまたは複数のプロセッサと、前記メモリに記憶されるとともに前記1つまたは複数のプロセッサによって実行可能にされている複数の命令と、を備えており、前記命令は、
選択済タスクに対応するタスク関連データを受け取る工程であって、タスクは1つまたは複数の専門領域のうちの選択済領域によって識別される、受け取る工程と、
複数のエキスパートから、選択済領域に関連付けられている第1エキスパートサブセットと、選択済領域に関連付けられている第2エキスパートサブセットと、を自動的に選択する工程と、
タスク関連データを複数の第1電子デバイスに伝達する工程であって、第1電子デバイスのそれぞれは第1エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、
前記第1電子デバイスを介して、前記第1エキスパートサブセットの各エキスパートから、それぞれのタスク解決策と、付随する第1信頼度スコアと、を受け取る工程と、
前記第1エキスパートサブセットから受け取ったタスク解決策に基づき、前記第1信頼度スコアによってソートされた第1タスク解決策セットを生成する工程と、
タスク関連データおよび第1タスク解決策セットを複数の第2電子デバイスに伝達する工程であって、第2電子デバイスのそれぞれは第2エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、
前記第2エキスパートサブセットの各エキスパートから、前記第2電子デバイスを介して、前記第1タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する第2信頼度スコアと、を示す情報を受け取る工程と、
選択済解決策を示す情報に基づき、第2信頼度スコアによってソートされた第2タスク解決策セットを生成する工程と、
第2タスク解決策セットに基づき予備出力を生成する工程と、および、
予備出力に基づく最終出力をユーザインタフェースに伝達する工程と、を実行可能にされている、
システム。
【0149】
(A1).前記命令はさらに、複数のエキスパートを1つまたは複数の専門領域に自動的に関連付ける工程を実行可能にされている、
項A0に記載のシステム。
【0150】
(A2).前記命令はさらに、
タスク関連データおよび予備出力を複数の第1電子デバイスに伝達する工程と、
前記第1サブセット内の各エキスパートから、前記第1電子デバイスを介して、前記予備出力から選択されたそれぞれの選択済解決策と、付随する第3信頼度スコアと、を示す情報を受け取る工程と、
前記第1電子デバイスから受け取った前記選択済解決策を示す情報に基づき、前記第3信頼度スコアによってソートされた第3タスク解決策セットを生成する工程と、
タスク関連データおよび第3タスク解決策セットを複数の第2電子デバイスに伝達する工程と、
前記第2エキスパートサブセット内の各エキスパートから、前記第2電子デバイスを介して、前記第3タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する第4信頼度スコアと、を示す情報を受け取る工程と、
前記第2電子デバイスからの前記選択済解決策を示す情報に基づき、前記第4信頼度スコアによってソートされた第4タスク解決策セットを生成する工程と、
最終出力をユーザインタフェースに伝達する前に、少なくとも第4タスク解決策セットに基づき予備出力を更新する工程と、を実行可能にされている、
項A0またはA1に記載のシステム。
【0151】
(A3).前記命令はさらに、
選択済領域に分類された第3エキスパートサブセットを自動的に選択する工程と、
タスク関連データおよび第2タスク解決策セットを複数の第3電子デバイスに伝達する工程であって、各第3電子デバイスは第3エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、
前記第3電子デバイスを介して、前記第3エキスパートサブセットの各エキスパートから、前記第2タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する第3信頼度スコアと、を示す情報を受け取る工程と、
前記第3電子デバイスから受け取った前記選択済解決策を示す情報に基づき、前記第3信頼度スコアによってソートされた第3タスク解決策セットを生成する工程と、
最終出力をユーザインタフェースに伝達する前に、第3タスク解決策セットに基づき予備出力を更新する工程と、を実行可能にされている、
項A0~A2のいずれか1項に記載のシステム。
【0152】
(A4).選択済解決策を示す情報に基づき第2タスク解決策セットを生成する工程は、第1信頼度スコアおよび第2信頼度スコアの集約によって第2タスク解決策セットをソートする工程を備えている、
項A0~A3のいずれか1項に記載のシステム。
【0153】
(A5).前記第1信頼度スコアおよび前記第2信頼度スコアの集約は、前記第1信頼度スコアおよび前記第2信頼度スコアの組み合わせの平均を計算する工程を備えている、
項A4に記載のシステム。
【0154】
(A6).前記第1信頼度スコアおよび前記第2信頼度スコアは、0%から100%までのパーセンテージである、
項A5に記載のシステム。
【0155】
(A7).前記命令はさらに、各エキスパートにそれぞれの重みを自動的に割り当てる工程を実行可能にされており、
各エキスパートのそれぞれの重みは、各エキスパートの性能に関する過去(履歴)データを使用して決定される、
項A0~A6のいずれか1項に記載のシステム。
【0156】
(A8).前記命令はさらに、
選択済閾値未満のそれぞれの重みを有するエキスパートを、第1エキスパートサブセットおよび第2エキスパートサブセットから自動的に削除する工程を実行可能にされている、
項A7に記載のシステム。
【0157】
(A9).最終出力は単一の解決策のみを備えている、
項A0~A8のいずれか1項に記載のシステム。
(B0).ユーザが提供するタスクに対する解決策を提供するためのデータ処理システムとしてのシステムであって、
前記システムはメモリと、1つまたは複数のプロセッサと、前記メモリに記憶されるとともに前記1つまたは複数のプロセッサによって実行可能にされている複数の命令と、を備えており、前記命令は、
選択済タスクに対応するタスク関連データを受け取る工程であって、前記選択済タスクは1つまたは複数の専門領域のうちの選択済領域によって識別される、受け取る工程と、
複数のエキスパートから、第1エキスパートサブセット、1つまたは複数の中間エキスパートサブセット、および最終エキスパートサブセット、を自動的に選択する工程であって、第1エキスパートサブセット、1つまたは複数の中間エキスパートサブセット、および最終エキスパートサブセット、のそれぞれは選択済領域に関連付けられている、選択する工程と、
タスク関連データを複数の第1電子デバイスに伝達する工程であって、第1電子デバイスのそれぞれは第1エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、
前記第1電子デバイスを介して、前記第1エキスパートサブセットの各エキスパートから、それぞれのタスク解決策と、付随する第1信頼度スコアと、を受け取る工程と、
前記第1エキスパートサブセットの各エキスパートから受け取ったタスク解決策に基づき、前記第1信頼度スコアによってソートされた中間タスク解決策セットを生成する工程と、
前記1つまたは複数の中間サブセットのそれぞれに関して、連続して(直列に)、
タスク関連データおよび中間タスク解決策セットを複数の電子デバイスに伝達する工程であって、前記電子デバイスのそれぞれは前記各中間エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、
前記各中間エキスパートサブセットの各エキスパートから、前記電子デバイスを介して、前記中間タスク解決策セットから選択されたそれぞれの解決策と、付随する中間信頼度スコアと、を示す情報を受け取る工程と、および、
選択済解決策を示す情報に基づき、中間信頼度スコアによってソートされた中間タスク解決策セットを更新する工程と、
中間タスク関連データを複数の最終電子デバイスに伝達する工程であって、最終電子デバイスのそれぞれは最終エキスパートサブセットの各エキスパートの1つに関連付けられている、伝達する工程と、
最終エキスパートサブセットの各エキスパートから、最終電子デバイスを介して、中間タスク解決策セットから選択されたそれぞれの選択済解決策と、付随する最終信頼度スコアと、を示す情報を受け取る工程と、および、
選択済解決策を示す情報に基づき、最終タスク解決策セットをユーザインタフェースに伝達する工程と、を備えている、
システム。
【0158】
(B1).前記最終タスク解決策セットは、単一の解決策のみを備えている、
項B0に記載のシステム。
(B2).前記最終タスク解決策セットは、前記第1信頼度スコア、前記中間信頼度スコア、および前記最終信頼度スコア、の集約によってソートされる、
項B0またはB1に記載のシステム。
【0159】
(B3).前記第1信頼度スコア、前記中間信頼度スコア、および前記最終信頼度スコア、の前記集約は、前記第1信頼度スコア、前記中間信頼度スコア、および前記最終信頼度スコア、の組み合わせの平均を計算することによって決定される、
項B2に記載のシステム。
【0160】
(B4).前記命令はさらに、
各エキスパートにそれぞれの重みを自動的に割り当てる工程を実行可能にされており、
各エキスパートのそれぞれの重みは、各エキスパートの性能に関する過去データを使用して決定される、
項B0~B3のいずれか1項に記載のシステム。
【0161】
(B5).前記命令は、前記第1エキスパートサブセット、前記1つまたは複数の中間エキスパートサブセット、および前記最終エキスパートサブセット、から選択済閾値未満のそれぞれの重みを有するエキスパートを自動的に除去する工程を実行可能にされている、
項B4に記載のシステム。
【0162】
(B6).前記命令はさらに、前記タスク関連データを前記複数の第1電子デバイスに伝達する前に、前記タスク関連データを自動的に前処理する工程を実行可能にされている、
項B0~B5のいずれか1項に記載のシステム。
【0163】
(B7).前記タスク関連データを前処理する工程は、前記タスク関連データの一部を暗号化する工程を備えている、
項B6に記載のシステム。
【0164】
(B8).前記第1信頼度スコア、前記中間信頼度スコア、および前記最終信頼度スコアは、0%から100%までの範囲のパーセンテージである、
項B0~B7のいずれか1項に記載のシステム。
【0165】
(B9).前記電子デバイスの1つまたは複数は、モバイルデバイスを備えている、
項B0~B8のいずれか1項に記載のシステム。
[利点、特徴、および利益]
本明細書で説明される学習システムの異なる実施形態および例は、困難な問題および/または主観的な問題を解決するための既知の解決策とで比較して、いくつかの利点を提供する。例えば、本明細書に記載された例示的な実施形態および例は、従来の計算方法の範囲外の問題に対する解決策を可能にする。
【0166】
さらに、および他の利点の中で、本明細書で説明される例示的な実施形態および例は、学習されたエキスパートのネットワークが、ユーザが提出したタスクに対する解決策を集合的にかつ効率的に提供することを可能にする。
【0167】
さらに、および他の利点の中で、本明細書に記載される例示的な実施形態および例は、学習されたエキスパートのネットワークが自動ピアレビュー(相互評価)を使用して、ユーザが提出したタスクに対する解決策を集合的にかつ効率的に提供することを可能にする。
【0168】
既知のシステムまたは装置は、これらの機能を実行することができない。しかしながら、本明細書で説明されるすべての実施形態および例が、同じ利点または同じ程度の利点を提供するわけではない。
【0169】
[結論]
上記に示された開示は、独立した有用性を有する複数の異なる例を包含することができる。これらのそれぞれは、その好ましい形態(複数可)で開示されているが、多数の変形が可能にされているので、本明細書に開示され図示されたその特定の実施形態は、限定的な意味で考慮されるべきでない。本開示内でセクションの見出しが使用される限り、そのような見出しは、組織的な目的だけのためである。本開示の主題は、本明細書に開示される様々な要素、特徴、機能、および/または特性、の全ての新規かつ非自明な組み合わせおよび下位組み合わせを備えている。以下の特許請求の範囲は、特に、新規かつ非自明とみなされる特定の組み合わせおよび下位組み合わせ(サブコンビネーション)を指摘している。特徴、機能、要素、および/または特性、の他の組み合わせおよび下位組み合わせは、本出願または関連出願からの優先権を主張する出願において請求され得る。このような請求項は、元の請求の範囲よりも広いか、狭いか、同等か、または異なるか、にかかわらず本開示の主題に含まれるものとみなされる。