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

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

▶ ゼファー ソリューションズ ゲー・エム・ベー・ハーの特許一覧

特許7567039データ処理及び計算のためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】データ処理及び計算のためのシステム及び方法
(51)【国際特許分類】
   G06N 3/02 20060101AFI20241007BHJP
【FI】
G06N3/02
【請求項の数】 37
(21)【出願番号】P 2023514064
(86)(22)【出願日】2021-08-12
(65)【公表番号】
(43)【公表日】2023-09-13
(86)【国際出願番号】 EP2021072528
(87)【国際公開番号】W WO2022043086
(87)【国際公開日】2022-03-03
【審査請求日】2023-03-27
(31)【優先権主張番号】20193672.1
(32)【優先日】2020-08-31
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】523069463
【氏名又は名称】ゼファー ソリューションズ ゲー・エム・ベー・ハー
【氏名又は名称原語表記】Xephor Solutions GmbH
【住所又は居所原語表記】Konstantin Walz-Gasse 37, 3002 Purkersdorf, Austria
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】コンスタンティン オップル
【審査官】渡辺 順哉
(56)【参考文献】
【文献】欧州特許出願公開第02980701(EP,A1)
【文献】特開2019-133610(JP,A)
【文献】国際公開第2019/067229(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
データ処理装置(1)であって、
入力データ(ID)を受信するための少なくとも1つの第1のインタフェース(2)と、
出力データ(OD)を出力するための少なくとも1つの第2のインタフェース(3)と、
データを書き込み可能であり、データを読み出し可能である少なくとも1つの共有メモリデバイス(4)と、
前記少なくとも1つの第1のインタフェース(2)、前記少なくとも1つの第2のインタフェース(3)及び前記少なくとも1つの共有メモリデバイス(4)が接続された少なくとも1つの計算デバイス(5)と、
を含み、前記計算デバイス(5)は、
前記少なくとも1つの第1のインタフェース(2)から入力データ(ID)を受信し、
前記少なくとも1つの第2のインタフェース(3)に出力データ(OD)を送信し、
前記少なくとも1つの共有メモリデバイス(4)からデータを読み出し、前記少なくとも1つの共有メモリデバイス(4)にデータを書き込むように構成されている、データ処理装置(1)において、
前記少なくとも1つの計算デバイス(5)は、複数のプロセスを並列に実行するように構成されており、前記複数のプロセスは、少なくとも:
前記少なくとも1つの第1のインタフェース(2)及び/又は前記少なくとも1つの共有メモリデバイス(4)から入力データ(ID)を受信する少なくとも1つのデータハブプロセス(6)であって、前記入力データ(ID)のデータセグメント(Si)にキー(Ki)を提供してキー付きデータセグメント(KSi)を作成する少なくとも1つのキーイングサブプロセス(62)を含み、前記キー付きデータセグメント(KSi)を前記少なくとも1つの共有メモリデバイス(4)に共有キー付きデータセグメント(KSi)として格納する少なくとも1つのデータハブプロセス(6)と、
複数の計算モジュール(7)の形態の複数のプロセスと、
を含み、
各前記計算モジュール(7)は、
前記計算モジュール(7)の少なくとも1つに固有である少なくとも1つのキー(Ki)を用いてキーイングされる共有キー付きデータセグメント(KSi)であるモジュール固有のデータセグメントを検索するために、前記少なくとも1つの共有メモリデバイス(4)にアクセスし、
少なくとも1つの人工ニューロンネットワーク(71)を使用したデータ解釈及び分類方法を含む機械学習方法を前記モジュール固有のデータセグメントで実行し、
実行された前記機械学習方法の結果を、前記少なくとも1つの共有メモリデバイス(4)及び少なくとも1つの他の計算モジュール(7)のうちの少なくとも1つに出力する
ように構成されている、
ことを特徴とするデータ処理装置(1)。
【請求項2】
前記複数の計算モジュール(7)の少なくとも一部は、層(I~VI)を有する階層的垂直構造を有する計算モジュール(7)によって形成され、及び/又は、前記複数の計算モジュール(7)の少なくとも一部は、計算グループ(16)を用いた水平構造に形成される、
請求項1に記載のデータ処理装置(1)
【請求項3】
前記計算モジュール(7)の少なくとも1つによって提供される出力を少なくとも1つの他の計算モジュール(7)及び/又は前記共有メモリデバイス(4)に向ける少なくとも1つのルーティングプロセス(28)が提供される、
請求項1又は2に記載のデータ処理装置(1)
【請求項4】
前記少なくとも1つのデータハブプロセス(6)は、入力データ(ID)をデータセグメント(Si)にセグメント化し、どの共有キー付きデータセグメント(KSi)が同一の入力データ(ID)からセグメント化されたかに関する情報を保持する少なくとも1つのセグメント化サブプロセス(61)を含む、
請求項1から3までのいずれか1項に記載のデータ処理装置(1)
【請求項5】
前記少なくとも1つのデータハブプロセス(6)は、前記少なくとも1つの共有メモリデバイス(4)に前記キー付きデータセグメント(KSi)を共有キー付きデータセグメント(KSi)として格納し、どの共有キー付きデータセグメント(KSi)が同一の入力データ(ID)から機械学習技術を用いてセグメント化されたかに関する情報を保持する、
請求項4に記載のデータ処理装置(1)。
【請求項6】
前記機械学習技術は、ニューロンネットワークである、請求項5に記載のデータ処理装置(1)。
【請求項7】
前記データ処理装置(1)は、前記複数の計算モジュール(7)の少なくとも一部のニューロンネットワーク(71)のシナプス(24)の重み(w)を繰り返し検査して、それらに発散がないことを確認するように構成されている、
請求項1からまでのいずれか1項に記載のデータ処理装置(1)
【請求項8】
前記データ処理装置(1)は、前記複数の計算モジュール(7)の全部のニューロンネットワーク(71)のシナプス(24)の重み(w)を繰り返し検査して、それらに発散がないことを確認するように構成されている、
請求項7に記載のデータ処理装置(1)。
【請求項9】
前記複数の計算モジュール(7)の少なくとも一部は、圏構築要素に関する演算を実行する、
請求項1からまでのいずれか1項に記載のデータ処理装置(1)
【請求項10】
前記圏構築要素が、少なくとも、対象、射、関手、可換図式、非可換射若しくは関手、自然変換、引き戻し、押し出し、射影極限、帰納極限、部分対象分類子を含むグループから選択された圏構築要素である、請求項9に記載のデータ処理装置(1)。
【請求項11】
前記データ処理装置(1)は、教師なし学習を、可換図式を使用して未知の対象及び/又は射を決定することによって行うように構成されている、
請求項9又は10に記載のデータ処理装置(1)
【請求項12】
前記データ処理装置(1)は、空間及び/又は時間における方向感覚を、非可換射又は非可換関手を使用することによって作成するように構成されている、
請求項9から11までのいずれか1項に記載のデータ処理装置(1)
【請求項13】
ランダム信号発生器(27)は、ランダム信号(RANDOM)を、前記計算モジュール(7)の少なくとも一部のニューロンネットワーク(71)の少なくとも1つの人工ニューロン(21)の少なくとも一部に入力するように構成されている、
請求項9から12までのいずれか1項に記載のデータ処理装置(1)
【請求項14】
前記ランダム信号(RANDOM)は、新しい概念を作成するために使用される、請求項13に記載のデータ処理装置(1)。
【請求項15】
前記ランダム信号(RANDOM)は、前記新しい概念を、射影極限を使用することによって作成するために使用される、請求項14に記載のデータ処理装置(1)。
【請求項16】
前記ランダム信号発生器(27)の前記ランダム信号(RANDOM)は、射影極限を表す計算モジュール(7)のグループのニューロンネットワーク(71)の少なくとも1つの人工ニューロン(21)の少なくとも一部に入力され、仮説をテストし自然論理の普遍量化子(∀)を近似的にシミュレートするために使用されるランダムデータセットを生成する、
請求項13から15までのいずれか1項に記載のデータ処理装置(1)
【請求項17】
前記データ処理装置(1)は、同一の自然言語記述を、同一の対象を示す異なる画像の一部に帰属させるように構成されている、
請求項9から16までのいずれか1項に記載のデータ処理装置(1)
【請求項18】
前記データ処理装置(1)は、
教師あり学習及び教師なし学習を行い、
ランダム信号(RANDOM)を使用することによって作成された新しい概念を前記教師あり学習及び前記教師なし学習において使用するように構成されている、
請求項9から17までのいずれか1項に記載のデータ処理装置(1)
【請求項19】
データを処理するためのコンピュータ実装された方法であって、
入力データ(ID)を受信し、出力データ(OD)を出力し、少なくとも1つの共有メモリデバイス(4)にデータを書き込み、前記少なくとも1つの共有メモリデバイス(4)からデータを読み出す少なくとも1つの計算デバイス(5)を動作させるステップを含む、方法において、
前記少なくとも1つの計算デバイス(5)は、複数のプロセスを並列に実行し、
前記複数のプロセスは、
入力データ(ID)を受信する少なくとも1つのデータハブプロセス(6)であって、前記入力データ(ID)のデータセグメントにキー(Ki)を提供してキー付きデータセグメント(KSi)を作成する少なくとも1つのキーイングサブプロセス(62)を含み、前記キー付きデータセグメント(KSi)を前記少なくとも1つの共有メモリデバイス(4)に共有キー付きデータセグメント(KSi)として格納する少なくとも1つのデータハブプロセス(6)と、
計算モジュール(7)の形態の複数のプロセスと、
を含み、
各計算モジュール(7)は、
前記計算モジュール(7)の少なくとも1つに固有である少なくとも1つのキー(Ki)を用いてキーイングされる共有キー付きデータセグメント(KSi)であるモジュール固有のデータセグメントを検索するために、前記少なくとも1つの共有メモリデバイス(4)にアクセスし、
モジュール固有のデータセグメントが存在する場合、少なくとも1つの人工ニューロンネットワーク(71)を使用したデータ解釈及び分類方法を含む機械学習方法を前記モジュール固有のデータセグメントで実行し、モジュール固有のデータセグメントが存在しない場合はアイドル状態を実行し、
実行された前記機械学習方法の結果を、前記少なくとも1つの共有メモリデバイス(4)及び少なくとも1つの他の計算モジュール(7)のうちの少なくとも1つに出力する、
ことを特徴とする方法。
【請求項20】
前記複数の計算モジュール(7)の少なくとも一部は、層(I~VI)を有する階層的垂直構造を有する計算モジュール(7)によって形成され、及び/又は、前記複数の計算モジュール(7)の少なくとも一部は、計算グループ(16)を用いた水平構造に形成される、
請求項19に記載の方法。
【請求項21】
前記計算モジュール(7)の少なくとも1つによって提供される出力を少なくとも1つの他の計算モジュール(7)及び/又は前記共有メモリデバイス(4)に向ける少なくとも1つのルーティングプロセス(28)が提供される、
請求項19又は20に記載の方法。
【請求項22】
前記少なくとも1つのデータハブプロセス(6)は、入力データ(ID)をデータセグメント(Si)にセグメント化し、どの共有キー付きデータセグメント(KSi)が同一の入力データ(ID)からセグメント化されたかに関する情報を保持する少なくとも1つのセグメント化サブプロセス(61)を含む、
請求項19から21までのいずれか1項に記載の方法。
【請求項23】
前記少なくとも1つのデータハブプロセス(6)は、前記少なくとも1つの共有メモリデバイス(4)に前記キー付きデータセグメント(KSi)を共有キー付きデータセグメント(KSi)として格納し、どの共有キー付きデータセグメント(KSi)が同一の入力データ(ID)から機械学習技術を用いてセグメント化されたかに関する情報を保持する、
請求項22に記載の方法。
【請求項24】
前記機械学習技術は、ニューロンネットワークである、請求項23に記載の方法。
【請求項25】
前記複数の計算モジュール(7)の少なくとも一部のニューロンネットワーク(71)のシナプス(24)の重み(w)は、繰り返し検査され、それらに発散がないことが確認される、
請求項19から24までのいずれか1項に記載の方法。
【請求項26】
前記複数の計算モジュール(7)の全部のニューロンネットワーク(71)のシナプス(24)の重み(w)は、繰り返し検査され、それらに発散がないことが確認される、
請求項25に記載の方法。
【請求項27】
前記複数の計算モジュール(7)の少なくとも一部は、圏構築要素に関する演算を実行する、
請求項19から26までのいずれか1項に記載の方法。
【請求項28】
前記圏構築要素が、少なくとも、対象、射、関手、可換図式、非可換射若しくは関手、自然変換、引き戻し、押し出し、射影極限、帰納極限、部分対象分類子を含むグループから選択された圏構築要素である、請求項27に記載の方法。
【請求項29】
教師なし学習は、可換図式を使用して未知の対象及び/又は射を決定することによって行われる、
請求項27又は28に記載の方法。
【請求項30】
空間及び/又は時間における方向感覚は、非可換射又は非可換関手を使用することによって作成される、
請求項27から29までのいずれか1項に記載の方法。
【請求項31】
ランダム信号発生器(27)は、ランダム信号(RANDOM)を、前記計算モジュール(7)の少なくとも一部のニューロンネットワーク(71)の少なくとも1つの人工ニューロン(21)の少なくとも一部に入力する、
請求項27から30までのいずれか1項に記載の方法。
【請求項32】
前記ランダム信号(RANDOM)は、新しい概念を作成するために使用される、請求項31に記載の方法。
【請求項33】
前記ランダム信号(RANDOM)は、前記新しい概念を、射影極限を使用することによって作成するために使用される、請求項32に記載の方法。
【請求項34】
前記ランダム信号発生器(27)の前記ランダム信号(RANDOM)は、射影極限を表す計算モジュール(7)のグループのニューロンネットワーク(71)の少なくとも1つの人工ニューロン(21)の少なくとも一部に入力され、仮説をテストし自然論理の普遍量化子(∀)を近似的にシミュレートするために使用されるランダムデータセットを生成する、
請求項31から33までのいずれか1項に記載の方法。
【請求項35】
同一の自然言語記述は、同一の対象を示す異なる画像の一部に帰属する、
請求項27から34までのいずれか1項に記載の方法。
【請求項36】
教師あり学習及び教師なし学習が行われ、
ランダム信号(RANDOM)を使用することによって作成された新しい概念が前記教師あり学習及び前記教師なし学習において使用される、
請求項27から35までのいずれか1項に記載の方法。
【請求項37】
コンピュータプログラムであって、当該コンピュータプログラムがデータ処理装置(1)によって実行されるときに、請求項1から18までのいずれか1項に記載のデータ処理装置(1)に、請求項19から36までのいずれか1項に記載の方法を実施させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理及び機械学習の分野に関し、特に、あらゆる種類のデータ、例えば、テキストを表すデータ、写真や映画などのグラフィックデータ又は音声言語(言語理解及び言語作成)などの音声データ並びに特に組み合わせられたグラフィックデータ及びテキストなどの複合型データを処理する機械学習方法を取り入れたデータ処理に関し、より一般的には、請求項1の上位概念の特徴を有するデータ処理装置、請求項14の上位概念の特徴を有する方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
背景技術
米国特許第6,879,946号明細書は、対象のモデル化、変換、及び操作のための属性付きハイパーグラフ表現(AHR)を使用したインテリジェント2D及び3D対象及びシーンのモデル化、変換、及び操作のためのコンピュータ化された方法を開示している。3D対象又はシーンの特徴を考慮してAHRを構築する手順は、関手を使用して相互に異なる圏をマッピングすることに対応する。様々な圏は、例えば、3D対象又はシーンの幾何学的、物理的、及びグラフ表現を表す。
【0003】
米国特許第6,964,037号明細書は、遺伝図の余極限を決定するためのコンピュータ実装された方法を開示している。余極限演算は、共有サブ概念に沿って共有ユニオンに概念を接合する。
【0004】
米国特許第7,319,951号明細書は、圏論及び認知科学を使用してコンテンツデータの意味論的記述を設計するための方法を開示している。
【0005】
米国特許第10,360,503号明細書は、圏論からの概念を使用してオントロジーを導出するためのシステムを開示している。
【0006】
これらの文献では、機械学習方法としてニューロンネットワークを使用していないが、通常、巨大なデータベースを使用している。ただし、この巨大なデータベースの実装には、非常に集約的ハードウェアとしての問題がある。
【0007】
Tai-Danae Bradleyによる文献「What is applied category theory?」(cf.arXiv:1809.05923v2)は、ある意味での圏論の自然言語処理への応用を扱っている。このアプローチは、統計的手法(3.2章参照)を用いるが、これは自然言語を簡単に扱うのに最良のツールではない。なぜなら、このアプローチは、ある意味で「柔らかい」自然言語を扱うのには表現が硬すぎ、多くのトレーニングを必要とするからである。
【0008】
ここで必要とされるのは、例えば、グラフィックデータ、テキスト、自然言語、及び複合型データなど異なるタイプのデータを扱うことにより良好に適し、そのため、より良好な結果を提供し、従来技術よりも低いハードウェア要件を有するデータ処理装置及びデータ処理方法である。
【先行技術文献】
【特許文献】
【0009】
【文献】米国特許第6,879,946号明細書
【文献】米国特許第6,964,037号明細書
【文献】米国特許第7,319,951号明細書
【文献】米国特許第10,360,503号明細書
【非特許文献】
【0010】
【文献】Tai-Danae Bradleyによる文献「What is applied category theory?」(cf.arXiv:1809.05923v2)
【発明の概要】
【発明が解決しようとする課題】
【0011】
発明の概要
本発明の課題は、異なるタイプのデータ、特に複合型データを、好適には少なくとも部分的に監視のない方式で処理することができ、従来技術よりも低いハードウェア要件を有するデータ処理装置及びデータ処理方法を提供することである。
【課題を解決するための手段】
【0012】
本開示の1つの課題は、コンピュータビジョン(画像認識)、自然言語処理(音声認識)、ロボットや車両などのコンピュータ制御されたハンドリング、及び例えばテキストと組み合わせられたグラフィックデータなどの複合型データの処理などの認知コンピューティングの他の分野などの深層学習の異なる態様のために構成することができる、請求項1によるデータ処理装置に関する。
【0013】
本発明のさらに別の課題は、コンピュータビジョン(画像認識)、自然言語処理(音声認識)、ロボットや車両などのコンピュータ制御されたハンドリング、及び例えばテキストと組み合わせられたグラフィックデータなどの複合型データの処理などの認知コンピューティングの他の分野などの深層学習の異なる態様を実現することができる、請求項14による方法に関する。
【0014】
本発明のさらに別の課題は、請求項27に記載のコンピュータプログラムに関しており、このコンピュータプログラムは、当該コンピュータプログラムがデータ処理装置によって実行されるときに、請求項1に記載のように又は請求項1に直接若しくは間接に従属するいずれかの請求項に記載のように構成されたデータ処理装置に、請求項14に記載の方法を実施させるためのものである。
【0015】
本発明の実施形態は、従属請求項に定義されている。
【0016】
本発明では、高いハードウェア要件なしで可能になる多数の計算モジュールの使用が提案される。なぜなら、通常、任意の所与の時点ですべての計算モジュールのうちの一部のみがアクティブとなり、関連するCPU処理能力量が消費されるからである。アイドル状態の計算モジュールは、非常に僅かなCPU処理能力しか消費しない。個々の計算モジュール又は計算モジュールのグループは、異なるタイプのデータ(例えばグラフィックデータ又は自然言語データなど)に関してのみならず、さらには異なるサブタイプのデータ(例えば、異なる幾何学的対象の形態のグラフィックデータ、異なる自然言語…など)に関しても特化することができるため、多数の計算モジュールは、所与のデータ処理装置を柔軟に使用することができる。
【0017】
各計算モジュールは、例えば、1つ又は複数の人工ニューロンネットワーク及び入力及び出力インタフェースのみを有する簡素な構成であり得るが、いくつかの実施形態では、例えば、データ処理に関して異なる機能を有する階層的層を含むより複雑な構成が、存在し得る。
【0018】
いくつかの実施形態における圏構築要素の使用は、データ処理装置による少なくとも部分的に教師なし学習を可能にする。なぜなら、少なくとも一部の未知の概念は、交換図などの圏構築要素の使用によって、論理的に導出することができるからである。
【0019】
いくつかの実施形態では、ランダム信号を、少なくとも一部の計算モジュールの少なくとも1つのニューロンネットワークの1つ又は複数の人工ニューロンに入力することによって、新しい概念をデータ処理装置によって思考することができる。これらの新しい概念は、データ処理装置により、圏構築要素の使用によって、及び/又は、教師による確認や外部データベースからの情報の抽出など外部情報を使用することによって、内部的に検証することができる。新しい概念が検証されると、この新しい概念は、データ処理装置によって、データの分析及び/又は教師なし学習のために使用することができる。
【0020】
実施形態の説明
用語の説明:
「データ処理」という用語は、あらゆる種類の目的のためのデータの捕捉、データ分析の実行、及びデータの出力のうちの少なくとも1つを包含することを意味するものと理解される。
【0021】
「データ分析」という用語は、あらゆる種類の目的のためのデータの検査、変換、モデル化、解釈、分類、可視化を包含することを意味するものと理解される。
【0022】
この開示の文脈において使用される「処理エンティティ」という用語は、プログラム命令を独立して読み出し、実行することができるCPUの最小のエンティティを記述する。各処理エンティティは、オペレーティングシステムにとって並列方式でアドレス指定できる独立したプロセッサとして見えるようになる。各CPUは、少なくとも1つの処理エンティティを提供するが、高性能コンピューティングの文脈では、最新のコンピュータシステムは通常、複数の処理エンティティを有している。例えば、CPUは、複数のコアを有するマルチコアプロセッサであり得る。コアは、CPUの他のコアから独立してプログラム命令を読み出し、実行することができるCPU内の独立した実際の処理ユニットである。さらに、各コアは、時折、「ハードウェアスレッド」とも称されるマルチスレッド化を、すなわち、1つの物理コアがオペレーティングシステムにとって複数の処理エンティティとして見えるようになることを可能にすることができる。他の場合では、CPUの各コアは、単一の処理エンティティであり得るか、又はCPU自体が単一の処理エンティティであり得る。さらに、CPUという用語は、GPUの包含を仮定していることが理解されよう。
【0023】
「機械学習」という用語は、が、明示的にプログラムされた命令に従う必要性なしでデータに触れることによって少なくとも部分的に所期の性能を達成するデータ処理装置の能力、例えば代替的にパターン及び/又は推論に依存する能力の表明を意味するものである。機械学習方法には、人工ニューロンネットワーク(本開示ではニューロンネットワークとも称される)の使用が含まれる。
【0024】
本開示の文脈において、「異なる」ニューロンネットワークとは、タイプ(例えば、古典的又は一般的な量子ANN、又は多層フィードフォワードNNなどのより特定のANN、LSTMなどのRNNなど…)において、及び/又は、ネットワークの特定の設定(例えば、ニューロンの数、層の数、層のタイプ、層毎のニューロンの数、ニューロン間の接続、ネットワークの他のパラメータなど…)において異なっているネットワークを意味し得るものであることが理解されよう。
【0025】
「ランダム信号」という用語は、任意の所与の時点の瞬間にランダムな値を取り、確率的にのみモデル化できる信号を意味することを意味したものである。
【0026】
圏論の数学的言語に関して、通常の用語が適用される。圏論の文献については、例えば、以下のテキストが参照され得る:Saunders Mac Lane, “Categories for the Working Mathematician”, Second Edition,1998 Springer, Robert Goldblatt, “Topoi”, revised edition, 2006 Dover Publications, David I. Spivak,“Category Theory for the Sciences”, 2014 The MIT Pressなど。
【0027】
データ処理装置の構成及び構造:
データ処理装置は、
入力データを受信するための少なくとも1つの第1のインタフェースと、
出力データを出力するための少なくとも1つの第2のインタフェースと、
データを書き込むことができ、データを読み出すことができる少なくとも1つの共有メモリデバイスと、
少なくとも1つの第1のインタフェース、少なくとも1つの第2のインタフェース、及び少なくとも1つの共有メモリデバイスが接続された少なくとも1つの計算デバイスとを含み、該計算デバイスは、
少なくとも1つの第1のインタフェースから入力データを受信し、
少なくとも1つの第2のインタフェースに出力データを送信し、
少なくとも1つの共有メモリデバイスからデータを読み出し、少なくとも1つの共有メモリデバイスにデータを書き込むように構成されている。
【0028】
例として、少なくとも1つの第1のインタフェースは、データを捕捉するためのセンサ(例えば、カメラのような光学センサ、マイクロフォンのような音響センサ…など)に接続可能に構成され得るものであり、又は、少なくとも1つのそのようなセンサを含み得るものである。処理可能であるあらゆる種類のデータ、例えば、絵文字又はビデオデータ、音声データ…などを本発明に関連して使用することが考えられる。付加的又は代替的に、少なくとも1つの第1のインタフェースは、予め格納されたデータ又は他の手段、例えばインタネットを介して提供されるデータストリームを受信するように構成することができる。
【0029】
例として、少なくとも1つの第2のインタフェースは、データを出力するための出力装置(例えば、光学データを表示するためのディスプレイ、音を出力するためのラウドスピーカー…など)に接続可能に構成され得るか、又は少なくとも1つのそのような出力装置を含む。付加的又は代替的に、少なくとも1つの第2のインタフェースは、出力データをストレージ装置に、又は例えばインタネットを介してデータストリームとして提供するように構成することができる。出力データの内容に関して、出力データは、例えば、明瞭な形式の又は符号化された会話言語、絵文字又はビデオデータを含むことができる。いくつかの実施形態では、付加的又は代替的に、出力データを読み出す装置による動作を命じるために使用できる、例えば、ロボットアームなどの動作を引き起こすコマンド信号を出力することができる。例として、複数のサイクルの後、データ処理装置は、入力データがコマンドを含むことを認識し、少なくとも1つの第2のインタフェースを介して前述のコマンドを実行することができよう。
【0030】
データが書き込まれ、そこから読み出すことができる少なくとも1つの共有メモリデバイス(略して共有メモリ)は、任意の適当なコンピュータメモリであり得る。このメモリは、異なるプロセス又はスレッドが同一のデータにアクセスするときはいつでも使用される。いくつかの実施形態では、データ処理装置のすべてのコンポーネントは、共有メモリにアクセスし得る。
【0031】
データ処理装置の少なくとも1つの計算デバイスは、1つ又は複数のCPUを含むことができ、ここで、各CPUは、データ処理装置のオペレーティングシステムに複数の処理エンティティを提供することを理解されたい。
【0032】
データ処理装置の初期構成、すなわち、説明された機能性を有するコンポーネントのすべてを提供することは、データ処理装置上で実行されるときにデータ処理装置を所期の手法で構成するコンピュータプログラムを(例えば、構成ファイルを使用して)提供することによって行うことができ、あるいは構成が例えばASICSの形態のハードウェアにおいて符号化されて提供され得る。もちろん、構成のいくつかはソフトウェアによって行われ、他の部分は符号化されたハードウェアであるアプローチも想定可能である。
【0033】
本発明の実施のために可能なハードウェアは、米国特許出願公開第2019/243795号明細書に教示されており、その内容は、参照によりその全体が本明細書に組み込まれる。
【0034】
少なくとも1つの計算デバイスは、複数のプロセスを並列に実行するように構成され、少なくとも、少なくとも1つのデータハブプロセスと、計算モジュールの形態の複数のプロセスとを含んでいる。
【0035】
データ処理装置は、所定の数の計算モジュール(通常は少なくとも数百の量であるが、好適には数千、数万、数十万、又は数百万の計算モジュールの量)を備えて構成され、これは、データ処理装置によって処理されるデータの予想複雑さに依存して選択することができ、あるいはデータ処理装置に入力されると合理的に予想できるあらゆる種類のデータを処理できるように十分大きくすることができる。一般に、より複雑なデータが予想されるほど、十分な計算能力を提供するためにも計算モジュールの数はより多くすべきである。
【0036】
計算モジュールに関して、どの水平計算グループ及び/又は垂直論理層(以下で説明される)が存在するかが予め決定される。
【0037】
また、どの計算モジュールにどのニューロンネットワークがいくつ存在し、各ニューロンネットワークがどのように構築されるかが予め決定される。
【0038】
さらに、いくつかの実施形態では、(以下で説明するように)圏構築要素の対象及び射をモデル化するために、複数の圏構築要素又は(可換図式、射影極限…などの)構築が、計算モジュールを使用して構築可能である。
【0039】
いくつかの実施形態では、ランダム信号発生器は、データ処理装置の教師なし学習能力を高めるために、計算モジュールの少なくとも一部の人工ニューロンの少なくとも一部にランダム信号を供給するように構成することができる。
【0040】
少なくとも1つのデータハブプロセス及び計算モジュールの形態の複数のプロセス(以下、略して「計算モジュール」)に関して、以下のことを述べることができる。
【0041】
データハブプロセス:
データハブプロセスは、データ処理装置へのデータフローに関して重要な役割を有する。従来技術では、入力データが線形的に処理されるのが一般的であり、すなわち、入力データは、いくつかの並列的サブプロセス及び逐次的サブプロセスを含むことができるプロセスに入力され、プロセスの出力は、他のプロセスの入力として使用することができるか、又はインタフェースを介して出力されることができる。そのような複数の線形プロセスは、並列的に実行される場合がある。データハブプロセスの異なるサブプロセス(構造)は、より大きい構造のサブプロセス、すなわちデータハブプロセスのサブプロセスに代わって、それ自体プロセスとみなせるように相互に完全に独立して実行可能なことが理解されよう。
【0042】
本発明に係るデータ処理装置では、入力データは、少なくとも1つのデータハブプロセスによってレビューされ、-入力データがデータセグメントの形態(例えば、ビデオストリームの個々のビデオフレームなど)で既に存在しない場合-、入力データをデータセグメントにセグメント化する少なくとも1つのセグメント化サブプロセスが使用され、これらのデータは、キー付きデータセグメントを作成する少なくとも1つのキーイングサブプロセスによるキーを用いて提供される。キー付きデータセグメントは、少なくとも1つの共有メモリデバイスに格納される(任意の所与の時点で、存在しない可能性又は単一のセグメント化サブプロセス若しくはキーイングサブプロセス若しくは複数のセグメント化サブプロセス若しくはキーイングサブプロセスが存在した可能性があり、又は、異なる数のセグメント化若しくはキーイングサブプロセスが異なる時点で存在した可能性がある)。
【0043】
セグメント化された入力データを作成するための入力データのセグメント化は、入力データがセグメント化された形態で既に存在しない場合、例えば、1つ又は複数のニューロンネットワークの教師あり学習を使用して異なる手法で行うことができる。例として、入力データが(書きことば又は話しことばの形態の)自然言語である場合、データハブプロセスのニューロンネットワークが、(書きことば又は話しことばの形態の)個々の単語又は文字間で区別を行い、それに応じて入力データをセグメント化する教師あり学習によって、例えば、文章の各単語(入力データ)がセグメント化された入力データを形成するようにトレーニングされる場合、有利になる可能性がある。この種のセグメント化は、インドゲルマン語族に属する言語などのアルファベットに基づく言語に関して有利となる。書きことばの形態のためにアルファベット体系に代えて連字体系を使用する言語(例えば、中国語など)に関しては、連字要素に従ったセグメント化が有利であろう。
【0044】
データ処理装置の実施形態を、可能な入力データに関連してどの程度特定化すべきかに依存して、キーの生成は、多かれ少なかれ特定化することが可能である。
【0045】
例として、キーの生成は、存在する計算モジュールの数及び/又は計算モジュールの計算グループの数に依存して、1つの特定のキーが、各計算モジュール又は計算グループのための少なくとも1つのデータハブプロセスによって計算され、データセグメントがこれらのキーのうちの1つを用いてランダムに提供されるように行うことが可能である。これは最も効率的な方法ではないが、いくつかの実施形態については十分になる場合があることは容易に理解できる。
【0046】
好適な例として、キーの生成は、いくつかの実施形態では、ニューロンネットワークのような機械学習技術を取り入れた、より特定的な方法によって行われる。これらの実施形態では、トレーニング中、少なくとも1つのデータハブプロセスは、異なる入力データの形態でトレーニングデータを提示され、入力データに依存して異なるキーを学習する。いくつかの実施形態では、入力データは、「ボックス」、「ボール」、「猫」…などの異なる種類の対象を表す視覚データの形態である場合があり、少なくとも1つのデータハブプロセスは、「ボックス」キー、「ボール」キー、「猫」キー…などを計算する場合がある。これらの実施形態では、第1の計算モジュール又は計算モジュールの計算グループは、第1の形態(例えば、「ボール」の形態)の対象を認識するように(教師ありの方法及び/又は教師なしの方法によって)トレーニングされているであろうし、異なる計算モジュール又は計算モジュールの計算グループは、第2の形態(例えば、「ボックス」の形態)の対象を認識するように(教師ありの方法及び/又は教師なしの方法によって)トレーニングされているであろう…。いくつかの実施形態では、1つ又は複数のARTネットワーク(適応共鳴理論ネットワーク)が、少なくとも1つのデータハブプロセスにおける機械学習技術として使用され得る。
【0047】
キー付きデータセグメントが1つ又は複数の計算モジュールによってロードされると、それはメモリ空間の節約のために共有メモリデバイスから削除することができる。キー付けデータセグメントが削除された場合でも、データハブプロセスでは、どのキー付きデータセグメントが同一の入力データからセグメント化されたかに関する情報は保持されることに留意しなければならない。
【0048】
キーは、特徴的なコードとして存在する必要がないことに留意すべきである。キーは、データセグメント自体に存在する場合、データセグメントの構造によって表される場合、又は入力データと個々のデータセグメントとの間の射によって表される場合もある。したがって、「キー付き」データセグメントという用語は、少なくとも1つの計算モジュールによってモジュール固有のものとして認識することができるデータセグメントを意味するものと理解されたい。
【0049】
いくつかの実施形態では、特定の計算モジュール及び/又は計算グループ及び/又はメタグループについてキーが少なくともほぼ一致するときを決定するために、許容パラメータを付与することができる。いくつかの実施形態では、これらの許容パラメータは、ルーティングプロセスによって提供することができる。
【0050】
少なくとも1つのデータハブプロセスは、セグメント化がデータ処理装置内で発生した場合、どの共有キー付きデータセグメントが同一の入力データからセグメント化されたか(これは、異なる方法、例えば、キーを用いて、又は別個の識別子によって、あるいは射影極限などの圏構築要素の使用によって行うことができる)に関する情報を保持する。キー自体は、特徴的なコードとして存在する場合、小さくすることができる(例えば、僅か数ビットのみ、例えば30~40ビットになる)。
【0051】
いくつかの実施形態では、少なくとも1つのルーティングプロセスが存在し(これは、サブプロセスとしてデータハブプロセスの一部を形成することができ、又はデータハブプロセスとは別に提供することができる)、これは、計算モジュールの少なくとも1つによって提供される出力を少なくとも1つの他の計算モジュールに向ける。換言すれば、計算モジュールのプロセス出力は、この出力に最良に対処することができる他の計算モジュールに向けることができる。
【0052】
いくつかの実施形態では、ルーティングプロセスは、計算モジュールのニューロンネットワークに許容誤差パラメータを提供するために使用することができる。
【0053】
いくつかの実施形態では、ルーティングプロセスは、計算モジュールのニューロンネットワークのシナプスの重みを繰り返し検査して、それらに発散がないことを確認するために使用することができる(例えば、それらが所定の所期の分布を有する[-1,1]などの区間に存在するかどうか、又はその分布からそれらに発散があるかどうかなど)。計算モジュールの1つ又は複数のニューロンネットワークに発散があることが分かった場合(この計算モジュールに問題がある場合)、問題のある計算モジュールによって実行されているプロセスを異なる計算モジュールに転送することができ、問題のある計算モジュールの重みをリセットすることができる。この目的のために、ルーティングプロセスがリアルタイムクロックを備えていると有意である。いくつかの実施形態では、シナプスの重みの検査は、データ処理装置の別のコンポーネント又は専用の重み分析デバイスによって実行することができる。
【0054】
計算モジュール:
計算モジュールは、すべての入力データを無差別に受信するのではなく、所与の計算モジュールに固有のキーを用いてキーイングされたデータ(モジュール固有のデータセグメント)のみを処理することを知らせるように構成されている。計算モジュールは、共有メモリデバイスに格納されている任意のモジュール固有のデータセグメントが存在するかどうかを繰り返し検査する(これは同期方式又は非同期方式で行うことができる)。適合キーを有するデータセグメント、すなわちモジュール固有のデータセグメントが検出されると、計算モジュールは、モジュール固有のキー付きデータセグメントをロードし、そのように構成されたデータ分析プロセスを開始する。このようにして、モジュール固有データを検査するために実行される複数のスレッド又はサブプロセスが存在しているが、ニューロンネットワークの計算プロセスなどの計算集約型タスクは、モジュール固有のデータセグメントが検出された場合にのみ開始され、そうでなければ計算モジュールはアイドル状態にとどまることができる。
【0055】
例として、計算モジュールは、データセグメントが、例えば、孔部を有する本体を示す絵文字データを表すことを識別し、そのような絵文字データが他の計算モジュールの特定のグループにマッピングされなければならないことを知っていることが可能である。別の例として、計算モジュールは、データセグメントが言語を表すことを識別し、そのような言語データは、次いで、言語データの意味を理解することができる他の計算モジュールの特定のグループにマップされなければならないことを知っている場合がある。さらに別の例として、計算モジュールは、そのモジュール固有のデータが動物を表すものと解釈し、データを目、手足、尾…などのデータ成分に分離し、異なる成分を異なる計算モジュールに送信する場合があり、この計算モジュールは、次いで、当該データ成分をさらに分析することができる。
【0056】
いくつかの実施形態では、1つの計算モジュールから別の計算モジュールへのデータの送信を、計算モジュール間の接続(これらは単純な信号接続であり得るか、それ自体が1つ又は複数の計算モジュールを含み得る)を介して直接行うことができ、及び/又は、データハブプロセスの1つを介して及び/又はルーティングプロセスを介して及び/又は共有メモリを介して行うことができる。情報の観点から見れば、異なる圏間の接続は、ファイバー圏、すなわち、ベース圏又はインデックス圏に接続された圏の概念を使用することによって考察することができる。2つの圏は、それらのベース圏又はインデックス圏を接続することによって接続可能である。
【0057】
計算モジュール内部のデータ分析は、少なくとも1つの人工ニューロンネットワークの形態で機械学習方法を使用して実行される。当該技術分野で公知のあらゆる種類のニューロンネットワークが、所与の計算モジュールにおいて構成される場合があり、異なる計算モジュールは、異なって構成されたニューロンネットワークを有することができる。特定の計算モジュールの出力は、他の計算モジュールに入力することができ、及び/又は、データハブプロセスに送信することが可能である。本発明の利点として言えることは、通常、計算モジュールに取り入れられるニューロンネットワークを、小から中程度の数の層、例えば、10~15の層を含むという意味では比較的浅く構築することができ、総数においても比較的少ない人工ニューロンを、例えば、層毎に5~150ニューロン、いくつかの実施形態では1000までのニューロンを含むことができる。
【0058】
以下の説明では、言語が、時折、生物学的概念を使用して説明されることを強調しておく必要がある。ただし、これは、説明を容易にするために役立たせるだけのものである。実際には、以下のすべての概念は、CPUによる実行のためのコンピュータコードとして構成されており、シナプス、軸索、ニューロン本体…などの以下で説明する概念は、例えば、C++やJavaなどの対象に基づくプログラミング言語のクラスであり得る。
【0059】
単一の計算モジュールは、複数の人工ニューロンを含む任意の既知のタイプ(MfNN、RNN、LSTM…など)の少なくとも1つの人工ニューロンネットワークを含む。各人工ニューロン(以下、略して「ニューロン」)は、信号を取得するための少なくとも1つ(通常は複数)のシナプスと、信号を送信するための少なくとも1つの軸索(いくつかの実施形態では、単一の軸索が複数の分岐を有し得る)とを有する。通常、各ニューロンは、複数のシナプスを介して他のニューロン又はニューロンネットワークの入力インタフェースから複数の信号を取得し、単一の信号を複数の他のニューロン又はニューロンネットワークの出力インタフェースに送信する。ニューロン本体は、シナプスと軸索との間に配置され、少なくとも、取得した信号を積分するための当該技術分野による積分関数と、取得した信号に応じて当該ニューロンにより信号を送信すべきかどうかを決定するための当該技術分野による活性化関数とを含んでいる。ステップ関数、シグモイド関数…などの当該技術分野の任意の活性化関数を使用することができる。
【0060】
当該技術分野で公知のように、シナプスを介して取得された信号は、重み係数によって重み付け可能である。個々の重み係数は、単一の計算モジュールの一部を形成するか、又は計算モジュールとは別個に構成され得る重みストレージによって提供することができ、後者の場合、個々の重みを、例えば、共有メモリ及び/又はルーティングプロセスを介して、計算モジュールの複数のニューロンネットワーク(また場合によってはすべて)に提供することができる。これらの重みは、当技術分野で公知のように、例えば、トレーニング段階の間、所期の結果がニューロンネットワークによって要求される精度で与えられるように、予め与えられた重みのセットを修正することによって決定することができる。他の技術も使用することができる。
【0061】
当該技術分野で公知のように、入力信号と重み及び出力信号は、スカラー形式である必要はないが、ベクトル又は高次元テンソルとして定義することができる。
【0062】
いくつかの実施形態では、ニューロン本体は、ニューロンネットワークの外部で(好適には、計算モジュールの外部で)生成されるランダム信号を取得するためのレセプタを含むことができる。このランダム信号は、本開示の後半に記載される新しい概念の作成に関連して使用することができる。
【0063】
ニューロンネットワークのニューロンは、層に配置することができる(計算モジュールが階層的アーキテクチャを有する場合、計算モジュールの垂直層(図3を参照)と混同されないようにする)。
【0064】
いくつかの実施形態では、ニューロンネットワークの層は、完全に接続されない。
【0065】
1つの実施形態では、計算グループ自体がメタグループに編成され得る。いくつかの実施形態では、これらのデータセグメントがメタグループにとって固有であることを示すデータセグメント用のキーが存在し得る。そのようなキーは、個々の計算モジュールにとって固有であるこれらのキー及び/又は個々の計算グループにとって固有であるこれらのキーに付加的に提供され得る。
【0066】
数学的には、計算グループは、計算モジュールCk,lの数n×mの十進積
【数1】
で表すことができ、ここで、例えば、第1の計算グループは、k=1…n-p及びl=1…m-qによって与えられ、別の計算グループは、k=n-p+1…n及びl=m-q+1…mによって与えられる。計算グループがメタグループに編成されている場合、これらのメタグループも、数学的に十進積で表すことできる。
【0067】
所与の種類のデータのための計算モジュールの構成は、例えば、使用されるニューロンネットワークの種類(例えば、古典的又は量子一般ANN、又は絵文字又はビデオデータのためのMfNN-多層フィードフォワードNNのようなより特殊なANN、音データの分析のためのLSTMなどのRNN…など)及び/又は使用されるニューロンネットワークの固有の設定(例えば、これはトレーニングデータ、ニューロンネットワークがトレーニングに用いる、ニューロンネットワークの層の数、ニューロンの数…など)を選択することによって行うことができる。
【0068】
いくつかの実施形態では、計算モジュールは、(垂直タイプの編成を形成する)階層的構造を有することができ、これは、計算モジュールが、(垂直方向に積層されたものと考えることができる)機能固有層を有することができることを意味する。すべての計算モジュール及び/又は所与の計算グループ若しくはメタグループの計算モジュールが同様の階層的構造を有すること、及び/又は、階層的構造が計算グループ毎及び/又はメタグループ毎に変化することがあり得る。
【0069】
例として、階層的構造の(スタックの最上部から数えて)第1の層は、モジュール固有のデータを受信し、このデータを、計算モジュールに固有の機械学習方法のために準備すべく処理するために使用することができる。この第1の層に(場合によっては、第1の層及び場合によっては中間層)からデータを受信するような1つ又は複数の中間層を用いて)接続される別の層は、第1の層(及び場合によっては中間層)によって提供されるデータを処理し、実行された機械学習方法の結果を少なくとも1つの共有メモリデバイス及び/又は少なくとも1つの他の計算モジュール及び/又は少なくとも1つのデータハブプロセス及び/又はルーティングプロセスに出力する少なくとも1つのニューロンネットワークを含むことができる。少なくとも1より多い層を、少なくとも1つのニューロンネットワークを含む層の後に提供することができ、これは、(例えば、ニューロンネットワークの形態の)機械学習方法を使用して、先行の層の少なくとも1つのニューロンネットワークによって処理されたデータがどこに送信されるべきかを決定することが可能である。
【0070】
いくつかの実施形態では、第1の層は、トポロジカルダウン変換プロセスを適用することによってモジュール固有のデータを処理するために使用することができる。初期構成後、ニューロンネットワークは、一定のサイズの入力データ、例えば、サイズ10.000の入力ベクトルを要求する。従来技術では、入力ベクトルが比較的大きければカットオフされ、比較的小さければパディングが使用される可能性があった。これに対して、トポロジカルダウン変換は、与えられたニューロンネットワークに対して適正なサイズを有する入力を提供する。
【0071】
いくつかの実施形態では、計算モジュールは、例えば、データ分析及び対話に関する以下の機能を有する少なくとも6つの層I~VIを有することができる(注、圏構成が使用されている場合、層は射を介して一緒に接続可能である)。
【0072】
層Iは、ターゲットベクターなどの共有メモリ及び/又はデータハブプロセスから取得されたモジュール固有のキー付きデータセグメントを処理するように構成されている。この層は、少なくとも1つのニューロンネットワークによる、例えばトポロジカルダウン変換による処理により良好に適すべきデータを準備することができる。この層は、このデータを層II及び層IIIに送信することができる。
【0073】
層II及びIIIは、それぞれ少なくとも1つのニューロンネットワークを含むことができ、これらのニューロンネットワークの各々は、層Iから、及び場合によっては他の計算モジュールから取得されたデータを処理する。これらは、一般的なANNやMfNN、LSTM…などのようなより特殊なANNなどの十分に公知の逆伝播ニューロンネットワークを使用して、データ分析中にデータを認知的に処理するために機械学習を行うことができる層である(ここでは、画像、単語…などの学習のためにシナプスの重みがトレーニング中に変更される)。いくつかの実施形態では、これらの層も、少なくとも1つの他の計算モジュールからの、例えば、少なくとも1つの他の計算モジュールの層V又は層VIからの情報を受信することができる。いくつかの実施形態では、層IIIは、以下で説明するように、ランダム信号を受信する少なくとも1つのニューロンネットワークを含む。
【0074】
層IVは、少なくとも1つのニューロンネットワークを含むことができる。ただし、この層は、認知データ処理には使用されないが、データハブプロセス又は共有メモリからの入力ベクトルなどのデータを、例えばトポロジカルダウン変換によって変換するのに使用される。この層は、このデータを層II及び層IIIに送ることができる。
【0075】
層V及び層VIには、データによって表される情報が異なる計算モジュールにおいて処理されるのにより良好に適しているかどうかを学習するために使用でき、このデータをデータハブプロセス及び/又は共有メモリ及び/又はルーティングプロセスに適宜送信するために、及び/又は、このデータを入力することができる場所、例えば層II又は層IIIの別の計算モジュールに直接送信するために使用できる(例えば、層II及び層IIIに存在する一般タイプの)ニューロンネットワークが存在し得る。
【0076】
計算モジュールの垂直編成は、水平編成と一緒に存在することができ、又は水平編成が存在しない場合も存在することができる。
【0077】
計算モジュールは、並列計算が計算モジュールにおいて行われ得るという意味で、場合によっては複数の層又はすべての層の少なくとも1つにおいて、1つ又は複数のサブモジュールで構成され得る。例として、1つの計算モジュールは、1よりも多いサブモジュールを含むことができ、ここで、各サブモジュールは、異なるニューロンネットワークを含む。異なるサブモジュールは、並列にアクティブになり得るか、又は例えば、モジュール固有のデータセグメントがそれを呼び出す場合、所与の時点でサブモジュールの1つのみか、又は複数がアクティブになる場合がある。
【0078】
プログラマの観点からみれば、計算モジュールは、コンピュータプログラムをプログラミングするプログラミング言語の所定の構造であることが理解されよう。例として、C++が言語として使用される場合、計算モジュールは、他の計算モジュール、データハブプロセス…などを表す他のC++クラスへのポインタを有するC++クラス(データ容器としてではなく、プロセスを符号化するもの)であり得る。計算モジュールを表す各C++クラスは、計算モジュールのニューロンネットワークなど、計算モジュールのコンポーネントを表す他のC++クラスを含むことができる。プログラムを開始した後、計算モジュールを符号化するプロセス、データハブプロセス、及び可能な他のコンポーネントは、少なくとも1つの第1のインタフェースを介して入力データが提供されるまで、何もせずに実行される。
【0079】
データ処理装置の少なくとも1つの計算デバイスによる計算モジュールの実行に関しては、実施形態に関連して、各計算モジュールにより1つのスレッドが形成されることが提供可能である。単一の計算モジュールに関しては、ニューロンネットワークなどのその計算モジュールの各計算エンティティが提供され、このエンティティは、エンティティの複雑さに依存して、単一のCPU若しくはCPUのコアによって又は複数のCPU若しくは1つ以上のCPUのコアによって実行することができる。
【0080】
本発明の可能な実施形態の簡単な説明:
入力データは、データ捕捉デバイスによって、例えば、画像、言語、音などの形態で提供される。この入力データは、少なくとも1つの第1のインタフェースを介して、いくつかの実施形態では共有メモリを介して、少なくとも1つのデータハブプロセスに提供され、このデータハブプロセスは、入力データをキー付きデータセグメントにセグメント化する。複数の計算モジュールは、任意のデータがデータハブプロセス及び/又は共有メモリに存在するかどうかをマッチングキーを用いて繰り返し検査する(許容パラメータは、キーが少なくともほぼ一致するときを決定するために与えることができる)。イエスであれば、このキーを用いてキー付きデータセグメントは、フィッティング計算モジュールにロードされる。ロードされたキー付きデータセグメントに依存して、いくつかの実施形態では、要求された許容誤差で、計算モジュールは、少なくとも1つの機械学習方法を使用して出力を生成し、この出力は、例えば、ロードされたキー付きデータセグメントに関する分類結果である。少なくとも1つの他の計算モジュールは、出力をロードし(両方の計算モジュールは、直接及び/又は共有メモリを介して及び/又は少なくとも1つのデータハブプロセスを介して及び/又はルーティングプロセスを介して接続され、「他方の」計算モジュールは、接続された計算モジュール及び/又は共有メモリ及び/又は少なくとも1つのデータハブプロセス及び/又は介在的ルーティングプロセスを常に検査する)、少なくとも1つの機械学習方法によって入力をこの計算モジュール固有の出力に写像する(計算モジュールは、トレーニング中にこのマッピングを行うようにトレーニングされている)。複数のサイクルの後、データ処理装置は、少なくとも1つの第2のインタフェースを介してデータを出力し、例えば、いくつかの(場合によってはグループの)計算モジュールは、入力データがコマンドを含むことを認識し、当該コマンドを少なくとも1つの第2のインタフェースを介して出力する場合がある。
【0081】
例として、データ処理装置は、所定の形状(例えば、ボックス形状)を有する対象は掴むが、異なる形状(例えば、ボール形状)の対象は掴まないと仮定するロボットアームを制御するために使用することができる。これらの対象は、コンベアによって搬送され、さらにこれらの対象は、異なる向きでコンベア上に配置されており、多かれ少なかれ破損している場合がある。入力データは、少なくとも1つの第1のインタフェースに接続された1つ又は複数のカメラによってデータ処理装置に提供される。少なくとも1つの第2のインタフェースを介したデータ処理装置の出力は、ロボットアームに所定の対象を掴ませるか否かのコマンドである。これを可能にするために、データ処理装置は、特定の向きでコンベア上に提供された特定の対象から、所定の形状(例えば、ボックス形状)を有する対象のクラスまで一般化する必要がある。
【0082】
この例では、カメラ信号は、少なくとも1つの第1のインタフェースを介してデータ処理装置に入力され、入力データをセグメント化し、入力データにキーを提供するデータハブプロセスに利用できるようにされる。入力データのセグメント化は、例えば、コンベアベルトを表す入力データを、コンベアベルト上の対象、例えばコンベアベルト上のボックスを表す入力データからセグメント化するために、カメラ画像内に存在する構造の識別及び分類を可能にする、十分に確立された機械学習方法を使用したデータハブプロセスによる画像解釈及び分類に基づいて発生し得る。
【0083】
異なる例では、自然言語解釈に関し、入力データは、例えば、個々の音素、音節、単語、フレーズ、又は句など、オーディオストリーム内に存在する構造の識別及び分類を可能にさせる十分に確立された機械学習方法を使用したデータハブプロセスによってセグメント化することができる。
【0084】
一般に、データハブプロセスによってキー付きデータセグメントを作成するデータセグメントに提供されるキーは、データハブプロセスによって決定されることになる。なぜなら、データセグメントの処理に特に適しているそれらの計算モジュールが、この特定のキー付きデータセグメントを見つけることができ、データセグメントの処理に適していない他の計算モジュールは、このデータセグメントを無視することが知られているので、データセグメントの処理に要する時間の短縮につながるからである。
【0085】
コンベア上のボックス形状の対象を用いた例では、ボックス、ボール…などの異なる種類の対象を表すデータを処理するように構成された複数の異なる計算モジュールが存在することになる。この例では、キーの1つは、「ボックス」又は「ボックス形状」を意味し、別のキーは「ボール」又は「ボール形状」などを意味することができるようになる。
【0086】
データ分析の過程では、データハブプロセスにとって、好適には、1つ又は複数の計算モジュールによって提供される付加的情報を考慮して、キー付きデータセグメントのキーを変更する必要性が生じる場合がある。例として、入力データは、データハブプロセスにより「ボール」としてキーイングされる。なぜなら、カメラ画像に表示されているボックスがある程度ボールに似て見えるように破損しているためデータハブプロセスがこのデータセグメントに「ボール」キーを提供したからである。「ボール」用に構成された計算モジュールは、データをロードし、キーを削除し、機械学習方法を適用して、対象がボールではないことを確かめる。計算モジュールは、このデータセグメントに「ボールではない」という付加的情報を付けて共有メモリに戻すか、又は直接データハブプロセスに戻す。データハブプロセスは、「ボールではない」という付加的情報を考慮して異なるキー、例えば「ボックス」を意味するキーを計算し、自身が責任を負うべき対象かもしれないとの見解を持ったすべての計算モジュールは、それが実際にそのような対象であるかどうかを検査する。
【0087】
計算モジュールの1つが、対象が破損したボックスであることを認識した場合、このモジュールは、「破損したボックス」を他の計算モジュールに出力する。最終的には、専門化された計算モジュールのグループが、この情報に基づいて行動し、ロボットアームにこの破損したボックスを掴ませる。
【0088】
特定の実施形態に制限されることなく一般的に言えば、計算モジュールは、計算グループに編成することができ、ここで、各計算グループは、所与の種類のデータを分析するように及び/又は特定のタスクを実行するように構成されている数百、数千、数万、又はそれ以上の計算モジュールを含んでいる。例として、そのような計算グループの1つは、絵文字又はビデオデータを分析するように構成された計算モジュールで構成することができ、別のグループは、音を分析するように構成された計算モジュールで構成され、さらに別のグループは、データ処理装置によって制御されるデバイスの制御コマンドを生成するように構成された計算モジュールで構成される場合がある。データハブプロセスは、どのキー付きデータセグメントがどの計算グループに属するかが明確になるように、キー付きデータセグメントを準備することができる。このような編成の仕方は、モジュールが同一の階層レベルにあるため、モジュールの水平編成と称することができる。
【0089】
いくつかの実施形態では、データセグメントに対して、これらのデータセグメントが計算グループに固有であることを意味するキーが存在し得る。そのようなキーは、個々の計算モジュールに固有であるそれらのキーに加えて提供され得る。
【0090】
データ処理装置による圏構築要素の表現:
本発明の好適な実施形態では、計算モジュールは、圏論を使用して数学的にモデル化することができる構造を表すために使用される。圏論の言語では、1つ又は複数の計算モジュールは、1つ又は複数の圏、圏の対象、又は圏の射を表すことができる。また、1つ又は複数の計算モジュールは、関手(圏間の写像)、自然変換(関手間の写像)、普遍対象(射影極限、引き戻し、押し出し…など)を表すことができる。圏構築要素の使用の大きい利点は、データ処理装置が内部データベースを含む必要がないことである(ただし、いくつかの実施形態では、データ処理装置は、例えば、データ処理装置によって作成された新しい概念を検証するために、又は教師あり学習のステップのための教示を取得するために外部データベースにアクセスすることが可能である)。大規模なデータベースは、ハードウェアに負荷がかかりやすく、処理すべきデータが複雑であるほど、より詳細でかつひいては大規模なデータベースを必要とする。圏構築要素を、一緒に実行される複数の計算モジュールに関連して使用することで、データベースが使用された場合に存在するようなハードウェア要件を持たなくても複雑なデータの処理が可能になる。さらに、圏構築要素を使用することで、論理的な接続を表すことが可能になる。情報の流れは、圏構築要素によってモデル化可能な接続を使用して効率的な方法により処理することができる。データベース以外に、いくつかの実施形態では、データ処理装置は、新しい概念を作成し、学習することができる。
【0091】
射の合成は、プロセス及び/又は概念を逐次的に表すために使用することができる。
【0092】
テンソル積は、プロセス及び/又は概念を並列的に表すために使用することができる。
【0093】
関手は、1つの圏から別の圏に構造及び/又は概念を写像するために使用することができる。
【0094】
自然変換は、1つの関手を別の関手に写像するために使用することができる。
【0095】
可換図式は、可換図式の他の要素が十分に知られている場合、可換図式の一部を形成する未知の概念を(教師あり又は教師なしで)学習するために使用することができる。
【0096】
射、テンソル積、関手、自然変換、可換図式、及び/又は本開示に記載の他の圏構築要素の組合せ及び/又は合成は、図式のネットワークを使用することによって新しい概念を(教師あり又は教師なしで)学習するために使用することができる。
【0097】
例として、データ処理装置は、複数の圏が存在するように構成することができ、ここで、各圏は、複数の相互接続された計算モジュール又は単一の計算モジュールによって表される。相互接続は、射又は関手の合成によって(直接的に、又はファイバー圏の場合、それらのベース圏を介して)行うことができ、このことは、プログラミング言語では、選択されたプログラミング言語における計算モジュールを表す言語構築要素が、例えばクラス間のポインタを使用するなど、選択した言語により提供される手段によって適当に相互接続されることを意味している。
【0098】
例えばルーティングプロセスなどのデータハブプロセスの構造は、例えば、計算モジュール又は計算モジュールのグループによって、及び/又は、データハブプロセスの他の構造によって、順番にモデル化される圏間の射又は関手としてモデル化することが可能である。
【0099】
例として、圏構築要素を使用したデータ分析は、以下の方法によって行うことができる。
【0100】
入力データID及びIDがセグメント化された形態
【数2】
及び
【数3】
で存在し、そのようなデータセグメント
【数4】
が共有メモリ内の(少なくとも1つのデータハブプロセスによって作成されるか、又は入力データ中にセグメント化された形態で既に存在する)計算モジュール
【数5】
の第1/第2のグループに固有のものであると仮定する。第1のグループの計算モジュール
【数6】
は、共有メモリの内容を検査すると、キー付きデータセグメント
【数7】
を確認してそれを抽出し、第2のグループの計算モジュール
【数8】
は、共有メモリの内容を検査すると、キー付きデータセグメント
【数9】
を確認してそれを抽出し、第3のグループの計算モジュール
【数10】
は、共有メモリの内容を検査すると、モジュール固有のデータが存在しないことを確認する。簡素化のために、この例では、キー付きデータセグメントは、計算モジュールの単一のグループにのみ固有であることが想定されるが、ほとんどの実施形態では、それは、一緒に、対象又は射などの圏構築要素を表す場合もある計算モジュールの複数のグループに固有な場合もある。付加的又は代替的に、計算モジュールのグループだけでなく、単一の計算モジュールにも固有である、より固有のキーが使用される可能性もある。
【0101】
モジュール固有のデータセグメント
【数11】
が計算モジュール
【数12】
によってロードされると、この計算モジュールは、例えば、このデータセグメントが、この計算モジュールによって表される圏Aの対象Aに対応するかどうかを検査することができる。
【0102】
計算モジュール
【数13】
(又は時折、複数の計算モジュール)は、圏Aの対象Aを表すと言われ、この意味において、データセグメントKS…KSが異なるバージョンで提供される場合、これらは、例えば、異なる角度で見たときにすべてがボックス形状の対象を表し、及び/又は、例えば、ボックス形状の対象が多少変形したためにボックス形状からの逸脱が存在する場合、計算モジュールは、これらのデータセグメントのすべてを、「理想的な対象」A(所与の例では「ボックス形状の対象」)を基準として認識するようにトレーニングすることができる。同様の意味において、別の計算モジュールは、圏Bの対象Bを表すと言われる。
【0103】
計算モジュール
【数14】
は、データセグメントKSが、この計算モジュールによって表される圏Aの対象Aに対応することを識別すると、対象Aの識別時のその動作が何であるかは、構成(初期構成又はトレーニング後の構成のいずれか)に依存する。例として、別の計算モジュール
【数15】
に単にメッセージを送信することができ、それによって、他の計算モジュールは適当な動作を取ることができ、及び/又は、データハブプロセスにメッセージを送信することができ、データハブプロセスは、このメッセージを順番に別の計算モジュール
【数16】
に再ルーティングすることができる。
【0104】
例えば、所与の圏Aの2つの異なる対象A,Aを表す少なくとも2つの計算モジュールが存在する場合、第3の計算モジュールは、この圏Aにおいて2つの対象A,Aの間で射aを以下のように、
【数17】
表すために使用することができる。別の計算モジュールは、この圏の別の対象Aと射とを以下のように、
【数18】
表すことができる。別の計算モジュールは、さらなる射を以下のように、
【数19】
表すことができ、したがって、aoa=aとの可換図式が完成する。データ処理装置は、可換図式(対象又は射)の一部を除くすべてを学習したときはいつでも、例えば、射aが未知、又は対象Aが未知の場合、可換性を使用して不足部分を見つけることができる。ある意味で、可換図式は、方程式の不足変数の計算を可能にする方程式であると理解することができる(もちろん、この初歩的な可換図式を使用してより複雑な可換図式を構築することも可能である)。
【0105】
例として、Aが人物「アン」を表し、Aが「学校」を表し、Aが「生徒」を表し、aが「通っている」を表し、aが「によって通われている」を表すならば、データ処理装置は、「アン」が「生徒」であるという概念を学習することが可能である。なぜなら、aoa=aは、「学校は、生徒によって通われている」o「アンは学校に通っている」=「アンは生徒である」、すなわち、a=「である」という結論を与えるからである。
【0106】
圏Aにある対象A,A及び射
【数20】
と、圏Bにある対象B,B及び射
【数21】
とによって表される2つの圏A,Bが存在するならば、圏Aからの対象及び射を圏Bの対象及び射にマッピングする、以下のように、
【数22】
表される関手
【数23】
によって表される少なくとも3つの圏を有することが可能となる。このようにして、全部で少なくとも9つの計算モジュールを使用することにより、単純な可換図式を構築することができ、ここでは、1つの計算モジュールが、対象A,A,B,B及び射f,g毎に使用され、さらに3つの計算モジュールが、当然ながら以下の関手条件
【数24】
を有する関手
【数25】
について使用される。
【0107】
圏構築要素が、データ処理装置の初期構成中に構築される場合、例えば、以下のような方法によって新しい概念を学習するための教師なし学習ステップにおいてデータ処理装置により使用可能な複数の圏構築要素が存在する。
【0108】
上記で与えられた例示的な可換図式に関して、圏Aが「ボックス形状」の対象の圏を表し、圏Bが「四面体」の圏を表すと仮定すれば、A,Aは、射fによって表される回転によって相互に接続される2つのボックスであり、換言すれば、データ処理装置は、回転されたボックスが依然として同一のボックスであることを学習している。関手
【数26】
を用いることにより、この概念は、「四面体」の圏に写像することができ、これが意味することは、データ処理装置が「四面体」の圏において「幾何学的対象の回転」という概念を再学習する必要はないということである。
【0109】
上記で与えられた例示的な関手に関して、第1の圏が、Aの対象が「猫」を表すという意味で、「猫」圏であり(例えば、Aは画像内に示された固有の猫を表す)、Aは「猫の赤ちゃん」を表し、fは、「猫が誕生を授かる」というマッピングを表し、また、第2の圏は、Bの対象、例えば、Bが異なる種類の「哺乳類」を表し、Bは「哺乳類の赤ちゃん」を表すという意味で「哺乳類」圏であり、関手
【数27】
は「猫」圏から「哺乳類」圏に写像するものと仮定する。さらに、射gが、情報処理装置にはまだ未知であることを想定しておくとすれば、可換図式では、合成
【数28】
は、合成、
【数29】
と同一の結果、すなわちBを与える必要があるため、データ処理装置は、射gが「哺乳類が誕生を授かる」ことを表していることを学習することができる。
【0110】
代替的に、Bのみが未知であったが、射f,gの両方が既知であった場合、データ処理装置は、Bが「哺乳類」を表す必要があることを結論付けたであろう。
【0111】
(場合によっては非常に複雑な)可換図式の一部を形成する未知の量化子を見つける技術は、時折、口語的に「図式チェイシング」とも称される。
【0112】
上記の例は、本発明にとって興味深いものではあるが、もちろん非常に簡素なものである。より複雑な圏構築要素、例えば、引き戻し又は押し出し、射影極限(時折、射影極限は、逆極限若しくは間接極限とも称される)又は帰納極限(時折、直極限とも称される)、又は、部分対象分類子などを使用することも可能である。
【0113】
1つ及びいくつかの圏構築要素は、異なる機能のために使用することができ(ここでは各機能は計算モジュールの異なるグループによって表される)、例えば、射影極限は、データ処理ユニット内で異なる構造にデータを分配(ルーティング)するために、ランダム信号を使用した新しい概念を作成するために、及び/又は、普遍量化子を近似的に表すために使用することができる。
【0114】
例えば、データハブプロセスのルーティングプロセス及び/又は個々の計算モジュールによるルーティングプロセス及び/又は計算モジュールのグループによるルーティングプロセスに関して、それを異なる計算モジュールに送信することによってデータを分析するために、射影極限を、例えば、以下のように使用することが可能である。
【0115】
解釈されるべきデータは、以下のように、
【数30】
データセグメントのシーケンスで構成されると解釈されるデータの射影極限を表すものと解釈される(実際には、多くの場合、データの複雑さに依存して計算モジュールのグループでなければならない)計算モジュールに入力される。射影極限は、射πを伴い、シーケンスAn=1…An=kがそのi番目のメンバーAn=iに射影されることを意味する対象
【数31】
である。データXがどのようにセグメント化されたかは、例えば、射影射π及び射aの使用によって記憶させることができる。
【0116】
例として、データ処理装置が、いくつかのデータXの意味を解釈する必要があると想定する。データXの複雑さに依存して、単一の計算モジュールでは、データXの意味を計算するのに十分な複雑さを有さない。したがって、データXは、異なる計算モジュール(又は計算モジュールのグループ)に送信され、各計算モジュールは、データXの意味を知っているかどうかを見つけようと試みる。計算モジュールがデータX(の少なくとも一部)を知っていることが見つかった場合、この情報を、最初にデータXを送信した計算モジュールか、又は好適にはルーティングプロセスなどの異なる計算モジュールの応答を収集できる構造に提供することができる。計算モジュールがデータXを知らないことが見つかった場合、データXを、異なるグループの計算モジュール(又は単一の計算モジュール)に送信して、データXを検査させることができる。
【0117】
このプロセスは、データXを射影極限
【数32】
として解釈することによって容易化することができ、ここでは、射影射πは、データXをセグメントAn=iの形態で異なる計算モジュールに分配するために使用することができ、異なるデータセグメント間の論理結合は、射aによって保存される。データが、圏Aから圏Cのように異なる圏の計算モジュールに送信される場合、これらの圏間の関手
【数33】
を表す計算モジュールを使用することができる。
【0118】
計算モジュールが、いくつかのデータ又はデータセグメントを知っているかどうかをどのように見つけ出すことができるかについては、計算モジュールが圏A内の対象Aを表すこと、したがって、計算モジュールによって含有されるニューロンネットワークにより、データXがその計算モジュールによって表される対象Aに対して少なくとも同型(すなわち、類似、換言すれば、ほぼ同じ)であるかどうかを比較できることを覚えておくことによって理解することができる。
【0119】
階層的垂直構造を有する計算モジュールが使用される場合、他の対象へのデータセグメントの射影は、例えば、層V及び層VIにおいて行うことができる。
【0120】
好適な実施形態では、データ処理装置は、(例えば、2つの八面体の融合物又は孔部を有するボールである)例えば新しい幾何学的対象又は「猫が米国大統領選挙に勝つ」といった文章などの新しい概念自体を作成することを可能にする。このような新しい概念は、与えられた例示的文章から明らかなように、必ずしも意味を持つ必要はない。しかしながら、新しい概念を、データ情報処理装置によって理にかなっていることを既に知っている概念、例えば、異なる形状の幾何学的対象又は猫に関する異なる文章などを用いて検査することにより、新しい概念が意味を持つかどうかを自ら判断できることが多い。ただし、いくつかのケースでは、新しい概念が意味を持つかどうかを判断するために、例えば、データ処理装置の操作者に問い合わせたり、外部データベースにアクセスしたりすることによって、外部入力の取得を必要とする場合もある。換言すれば、「新しい概念自体の作成」とは、これらの新しい概念が入力データから、あるいは入力データの分析から論理的に導き出されることを意味する。
【0121】
いくつかの実施形態では、新しい概念を作成することは、ランダム信号発生器によって生成されたランダム信号をニューロンのレセプタに入力することによって行うことができる。このランダム信号は、積分関数の結果に入力することができ、この結果が修正(例えば、加算又は乗算)され、それによって活性化関数が修正された結果に基づいて動作する。このようにして、情報を入力されたニューロンネットワークは、入力された情報だけでなく、修正された結果に基づいてその計算を行うようになる。このようなメカニズムにより、ニューロンネットワークによって表される情報又は概念は、予期せぬ仕方で変化していく。多くの場合、変更された情報は間違っているか、役に立たないものであったりする。ただし、いくつかのケースでは、新しい情報又は概念は、例えば新しい圏構築要素を作成するために有用であると考えられる。ランダム信号発生器は、確かに可能ではあるが、データ処理装置の一部を形成する必要はなく、データ処理装置に接続可能な外部装置であり得る。いくつかの実施形態では、ランダム信号発生器は、所定の間隔、例えば、[0,1]から取られた乱数の形態でランダム信号を生成させるであろう。好適には、ランダム信号は、規則的な時間間隔ではなく、ポアソン分布に従って送信される。
【0122】
新しい概念が有用であることが判明した場合、データ処理装置は、この新しい概念を学習するために1つ又は複数の計算モジュールをトレーニングすることができる。この新しい概念は、1つ又は複数の計算モジュールがトレーニングされるまで、ルーティングプロセスによって格納することができる。
【0123】
いくつかの実施形態では、ニューロンネットワークのニューロンの一部のみがランダム信号を提供され、好適には、ニューロンネットワークにおける情報の流れの方向に関してより上流にあるそれらのニューロンが提供される。例として、層状のニューロンネットワークでは、ニューロンネットワークの入力インタフェースの後方の第1の層又は第1及び第2の層に、ランダム信号が提供され、それに対して残余の層のニューロンは、当技術分野において公知の方法により、すなわちランダム信号の入力なしで作業する場合がある。
【0124】
ランダム信号をニューロン本体に入力するという概念は、ニューロンのシナプスの重みにランダム信号を入力(例えば、加算又は乗算)するという概念と混同されるべきではない。この概念は、ランダム信号をニューロン本体に入力するかどうかの問題にかかわらず、本発明に関しても適用することができる。
【0125】
いくつかの実施形態では、ランダム信号を使用することによる新しい概念の作成は、射影極限を表す少なくとも1つの複数の計算モジュールによって行われる。
【0126】
新しい概念を作成するためにランダム信号の使用するそれらの実施形態では、少なくとも2つの異なる複数の計算モジュールが存在する:複数の計算モジュールの少なくとも1つはデータを分析するために使用され、複数の計算モジュールの少なくとも1つは新しい概念を作成するために使用される。前者の複数のサイズは、後者の複数のサイズよりも大きくなる。それに対してデータを分析するために使用される複数の計算モジュールの少なくとも1つは、ほとんどの時間、何もせずに実行され、モジュール固有のデータが存在する場合にのみ計算作業を行うが、新しい概念を作成するために使用される複数の計算モジュールの少なくとも1つは、多かれ少なかれ連続的な作業を行うだろう。したがって、いくつかの実施形態では、新たに学習された概念を他の計算モジュールに転送してそれらを新しい概念の作成のために使用されるそれらの計算モジュールを解放するために格納することは利点となる場合がある。
【0127】
データ処理装置のトレーニング:
構成後のデータ処理装置のトレーニングは、部分的に教師ありの方法により行われ、いくつかの実施形態(例えば、圏構築要素を有する実施形態)では、部分的に教師なしの方法により行われ、いくつかの実施形態では、新しい概念の作成を使用して行われる。トレーニングは、いくつかの実施形態では、以下で説明するように、データ処理装置の推論動作前に部分的に行われ、推論動作中に部分的に行われ得る。
【0128】
教師ありトレーニングステップは、第1の態様では、少なくとも一部のニューロンネットワークに関して通常の方法によりトレーニングデータを提供し、生成された出力を目標出力と比較し、所期の精度レベルに達するまで、ニューロンネットワークを例えば逆伝播を用いて作成された出力によってより良好に近似する目標出力に調整することにより行うことができる。これは通常、データ処理装置の推論動作前に行われる。セグメント化及び/又はキーイング及び/又はルーティングに関して少なくとも1つのデータハブプロセスをトレーニングすることも、この段階中に行うことができる。
【0129】
第2の態様では、教師ありトレーニングを従来技術とは異なった方法により行うことができる。例として、「ジョンはここで働く」という文章が第1のインタフェースを介して入力されると想定する。データ処理装置は、名前及び場所についての圏を有しており、例えば、「名前」圏では、異なる名前が「メアリー」、「ジム」などの対象によって表され、それに対して「場所」圏では、異なる場所が「会社A」、「会社B」、「メアリーの家」、「ジムの家」などの対象によって表される。動詞「働く」は、「名前」圏の対象と、会社を表す「場所」圏の対象との間の第1の関手と、「名前」圏と、その対象が「マネージャー」、「アシスタント」など会社内での異なる地位を表す圏との間の第2の関手とによって表すことができる。
【0130】
その対象が文章である文章の圏も存在する。同一の圏の対象間の接続は、射によって表され、それに対して異なる圏間の接続は、関手によって表される。例えば、関手は、対象「メアリー」を「メアリーの家」に接続し、他の圏の「メアリー」に関するさらなる情報に接続する場合があり、また関手間の接続は、圏論において十分に公知の自然変換によって表される。「名前」圏は、名前に接続される場合がある可能な属性、例えば、男性名と女性名との間の区別などを有する別の圏に接続される場合がある。関手は、自然変換を使用して相互に写像することができる。
【0131】
データ処理装置が、「ジョン」の意味及び「ここで」の意味をまだ学習していないことに想定しておくことにする。「ジョン」と「ここで」とを文章の圏に写像する関手(実際には複合関手)に入力することによって、「ジョンはここで働く」との文章の意味を解決しようと試みた場合、「ジョン」は男性の名前であり、「働く」は特定の会社の特定の地位に何かつながるものであり、「ここで」は、場所の圏における特定の対象であることが認識されるが、「ジョン」がどんな地位を有し、「ここで」がどの会社を意味するのかは分からない。このことは、データ処理装置に、第2のインタフェースを介して2つの質問、すなわち、「ジョンはどこの会社で働いていますか?」及び「ジョンは社内でどのような地位を持っていますか?」の出力を促すことになる。これらの質問に、人間の管理者によって、又は外部データベースの助言によって回答が得られると(例えば、「ジョンはB社のマネージャーです」など)、データ処理装置は、新たに学習した情報を適正な圏の対象及び射の形態で格納するために必要な数の計算モジュールを構成する。別の質問は、「ジョンはどこに住んでいますか?」である場合もある。「ジョン」に関する質問に回答が得られると、データ分か装置は、「働く」を表す関手と「住んでいる」を表す関手との間の自然変換をトレーニングすることができる。なぜなら、両方の概念は、「ジョン」に関して意味を持つものだからである。
【0132】
教師なしトレーニングは、いくつかの実施形態では、上述した方法により計算モジュールによって表される可換図式を使用して発生する可能性がある。いくつかの実施形態では、教師なしトレーニングは、ランダム信号の入力及び上述したような新しい概念の作成によって発生する可能性もある。
【0133】
例として、1つの計算モジュール又は計算モジュールの計算グループは、以下の方法により、第1の種類の対象(例えば「ボックス」など)を認識するようにトレーニングすることができる。
【0134】
第1の種類の対象の異なる実施形態を示す学習データは、少なくとも1つの第1のインタフェースを介してデータハブプロセスに入力され、いくつかの実施形態では、共有メモリを介してデータハブプロセスに入力され、この共有メモリは、必要に応じて、入力データをキー付きデータセグメントにセグメント化する。複数の計算モジュールは、データハブプロセス及び/又は共有メモリ内にある任意のデータが一致するキーを伴って存在するかどうかを繰り返し検査する(許容パラメータは、キーが少なくともほぼ一致する場合を決定するために与えることができる)。モジュール固有のデータセグメントが存在する場合、このキーでキー付けされたデータセグメントが適合する計算モジュールにロードされる。ロードされたキー付きデータセグメントに依存して、いくつかの実施形態では要求された許容範囲で、計算モジュールが少なくとも1つの機械学習方法を使用して出力を生成する。この出力は、例えばロードされたキー付きデータセグメントに対する分類結果である。この出力データは、計算モジュールのニューロンネットワークによる教師あり学習の通常の方法によって使用され、逆伝播などの当技術分野で公知の技術によりニューロンネットワークをトレーニングする。
【0135】
別の計算モジュール又は計算モジュールの計算グループを、第2の種類の対象(例えば、「ボール形状の対象」)を認識するようにトレーニングすることも同様の方法によって行うことができる。
【0136】
もちろん、同様のトレーニングは、例えば自然言語を表すデータなど、他の種類のデータについて行うことができ、ここで、第1の計算モジュール又は計算モジュールの計算グループは、第1の言語構造を認識するようにトレーニングすることができ、第2の計算モジュール又は計算モジュールの計算グループは、第2の言語構造を認識するようにトレーニングすることができ…などである。
【0137】
少なくとも1つの他の計算モジュールは、出力をロードし(両方の計算モジュールは、直接及び/又は共有メモリを介して及び/又は少なくとも1つのデータハブプロセスを介して接続され、「他の」計算モジュールは、接続された計算モジュール及び/又は共有メモリ及び/又は少なくとも1つのデータハブプロセスを常に検査し)、少なくとも1つの機械学習方法によってこの入力を、この計算モジュールに固有の出力に写像する(計算モジュールは、トレーニング中にこのマッピングを行うようにトレーニングされている)。
【0138】
いくつかの実施形態では、データ処理装置の少なくとも1つの計算デバイスによって実行される複数のプロセスは、異なる種類のデータに対して異なる場合がある学習パラメータニューロンネットワークを提供する少なくとも1つの補助プロセスを含むことができる。また、トレーニング中、計算モジュールには、計算モジュール内に存在するニューロンネットワークのための許容パラメータ(出力の精度を決定するn…n)が提供される。
【0139】
いくつかの実施形態では、教師なしトレーニングステップは、予め構築された圏構築要素の数に関して発生する。これは、データ処理装置の推論動作の前及び/又は最中に発生する可能性がある。
【0140】
いくつかの実施形態では、各計算モジュールは、ロードされた入力がこの計算モジュールによって表される出力に写像される特定のマッピングを行うように予めトレーニングされる。
【0141】
いくつかの実施形態では、各計算モジュールは、モジュール固有のデータセグメントで機械学習方法を実行するように構成され、前述の機械学習方法は、少なくとも1つの予めトレーニングされたニューロンネットワークを使用したデータ解釈及び分類方法を含む。少なくとも1つのニューロンネットワークのトレーニングは、入力データがトレーニングベクトルとして提供され、少なくとも1つのニューロンネットワークのパラメータは、出力データが受け入れ可能な許容誤差範囲内で期待出力に対応するまで、又は上述の他の方法により変更される、教師あり学習による通常の方法により行うことができる。
【0142】
データ処理装置が誤った概念を学習することが発生する場合もあるので、いくつかの実施形態では、例えば、データ処理装置に「人はどこに住めるか」などの質問を投げかけたり、データ処理装置の回答に「人は会社に住む」などの間違った回答が含まれている場合に、データ処理装置にこの誤った情報の削除を指示したりするなどで、データ処理装置が何を学習したかを時折検査することが有意となる場合がある。
【0143】
圏構築要素、すなわち射影極限を使用することにより、いくつかの実施形態では、分離されたニューロンネットワークを使用する従来技術では行うことができなかった普遍量化子∀を近似的に表すことが可能になる。
【0144】
射影極限は、複数の計算モジュールによって表される。ランダム信号は、ランダム信号発生器によって生成され、射影極限の計算モジュールのニューロンネットワークの少なくとも一部によってテストデータの形態で新しい概念を生成するために使用される。もちろん、∀のような量化子を正確に表すことは不可能であり、この量化子は、定義上、有限系の無限要素の数に対して真を維持する必要がある。したがって、無限大は、ランダム信号を入力することによってテストデータを確率的に作成することでシミュレートしているのだが、これは、近似的に、そこから要素を選択できるテストデータの数が無限にある場合と同様の効果を有するものと考えることができる。この意味では、ランダムに(確率的に)生成されるテストデータは、以下のような意味で普遍量化子∀をシミュレートしていると考えることができる。
【0145】
射影極限を表す計算モジュールが、例えば、仮説(例えば、すべての自然数に対して、より大きい素数である自然数が存在する)を定式化するために使用する素数に関するいくつかの事実を学習したと仮定すれば、確率的に生成された多数のテストデータを使用することにより、それらは、所与の述語に関して仮説が真であるかどうか、例えば、テストデータの各自然数に対して、より大きい素数である自然数が存在することが真であるかどうかを検査することができる。もちろん、これは、伝統的な意味での数学的証明ではない。むしろ、これは、ある仮説を非常に多くのテストデータに対して検査し、これらのテストデータの各々に対して真を保持するのであれば、それはすべての可能なデータに対して真であると考えられるかもしれないという推論である。
【0146】
このようにして、いくつかの実施形態では、人間の操作者や外部データベースなどの外部基準を用いた検査をしなくても教師なし学習を行うことができる。この検査は、例えば、他の計算モジュール、特に自然論理の存在量化子∃とみなすことができる帰納極限を「ともに」表す計算モジュールを使用して行うことができる(図22bを参照)。
【0147】
仮説が任意の適当な方法によって検査されると、それは、他の仮説を検査するための計算モジュールの計算能力を解放するために、計算モジュールの別のグループに表現のために送信することができる。
【0148】
非可換射又は関手を使用することにより、データ処理装置は、時間的及び/又は空間的向きの感覚を作成することができる。
【0149】
例えば、データ処理装置に入力される時間的順序のあるイベントに関するデータは、適当な数の圏によって表すことができる(これは情報的観点であり、技術的観点では適当な数の計算モジュールを構成する必要がある)。いくつかの実施形態では、予め決定可能な時間間隔、例えば0.1秒~0.5秒の間に次々と入力されるイベントは、圏のベース圏を非可換関手で接続することによって接続された形式で表現される。代替的に、データ処理装置にこれらのイベントを接続するよう明示的に命令することも可能である。どちらにせよ、因果関係や、「以前の」、「後の」などの時間的概念は、例えば、圏間の関手によって符号化することができる。
【0150】
また、「私は、明日学校に行きます」などの時間的文章は、データ処理装置が、「行きます」や「明日」に現在や未来の存在があることの意味を認識するようにトレーニングされていれば分析することが可能になる。この時間的順序は、上述したようにそれらのベースを介して接続された圏によって表すことができる。
【0151】
同様に、画像などにおける対象の空間的関係を推定することができ、これらの関係の圏表現は、それらの対象を表す圏のベース圏間の非可換関手を使用することによってこれらの対象間の空間的関係を符号化することにより、データ処理装置によって構築することができる。
【0152】
いくつかの実施形態で使用できる圏構築要素の別の興味深い例は、所与の対象がより大きい対象の一部であるかどうかをデータ処理装置に推定又は決定できるようにさせる部分対象分類子の例である。
【0153】
一般事項として、データ処理装置の動作中、同一の圏対象を、異なる計算モジュールによって表すことができることに留意すべきである。
【図面の簡単な説明】
【0154】
図1】本発明の一実施形態によるデータ処理装置を示した概略図である。
図2】計算デバイスの内部構造と、そのコンポーネントとデータ処理装置の他のコンポーネントとの間の対話とを示した概略図である。
図3】計算モジュールの内部構造と、それらのコンポーネントとデータ処理装置の他のコンポーネントとの間の対話とを示した概略図である。
図4】データハブプロセスの内部構造を示した概略図である。
図5】本発明の一実施形態によるステップを示した概略図である。
図6】圏構築要素を表す計算モジュールを示した概略図である。
図7】構造認識を含む例を示した概略図である。
図8図7の例に関する詳細を示した概略図である。
図9図7の例に関する詳細を示した概略図である。
図10図7の例に関する詳細を示した概略図である。
図11】データ処理を含む例を示した概略図である。
図12】圏構築要素を使用した図11の例を示した概略図である。
図13】ランダム信号のレセプタを有する単一の人工ニューロンを示す例を示した概略図である。
図14図13に示すような複数のニューロンを有するニューロンネットワークの例を示した概略図である。
図15】計算モジュールと圏構築要素との間の対応を示した概略図である。
図16】本発明に係るデータ処理装置の動作における異なる段階を示した概略図である。
図17】計算モジュールの可能な階層的垂直編成を示した概略図である。
図18】データ処理装置に作用するための概念を定義するために、圏構築要素「引き戻し」を使用する例を示した概略図である。
図19】圏構築要素を使用することによる教師なし学習を含む例を示した概略図である。
図20】データタイプの組合せの分析を含む例を示した概略図である。
図21】自然言語の分析を含む別の例を示した概略図である。
図22】自然論理における全称量化子と存在量化子の近似的な定義を示す例を示した概略図である。
図23】データ処理装置が時間内の向きの感覚をどのように構築できるかの例を示した概略図である。
図24】データ処理装置が空間内の向きの感覚をどのように構築できるかの例を示した概略図である。
図25】部分対象分類子をどのように構築して使用できるかの例を示した概略図である。
【発明を実施するための形態】
【0155】
図面に示される構成要素の数は、例示的に理解すべきであり、限定と理解すべきではないことに留意すべきである。特に、計算モジュール7に関しては、実際には、図に示されているよりも多くのインスタンスが存在することを想定すべきである。破線は、データ処理装置1のコンポーネント間の対話の少なくとも一部を示しているが、すべての対話を示しているわけではない。また、計算モジュール7などのエンティティのグラフィカルな表現、又はそのようなエンティティに関連して示される対象の画像(例えば、幾何学的本体)は、本発明の理解を深めるために描かれているが、データ処理装置1に関しては、コンピュータコードに符号化されて実行中にインスタンス化されるエンティティ(技術的観点)又はカテゴリ的表現(情報的観点)であることに留意すべきである。
【0156】
データ処理装置1の物理的観点と情報的観点との間には違いが存在する。前者の観点に関しては、複数の計算モジュール7は、個々の各計算モジュール7が例えばCk,lのようなインデックスによってアドレス指定される行列(又は高次元テンソル)として見ることができる。後者の観点に関しては、1つ又は複数の計算モジュール7によって表される圏構築要素が存在する。例として、1000の対象及び/又は射を含む圏は、例えば、50×4の計算モジュール7の行列によって表される場合がある。換言すれば、計算モジュール7と圏構築要素との間の1:1の対応は、存在する必要はなく、ほとんどの実施形態において、存在しないであろう。
【0157】
図1は、入力データIDを受信するための少なくとも1つの第1のインタフェース2と、出力データODを出力するための少なくとも1つの第2のインタフェース3と、データの書き込み、読み出しが可能な少なくとも1つの共有メモリデバイス4と、少なくとも1つの計算デバイス5とを含んだデータ処理装置1の実施形態を示す。少なくとも1つの計算デバイス5には、少なくとも1つの第1のインタフェース2、少なくとも1つの第2のインタフェース3、及び少なくとも1つの共有メモリデバイス4が接続されており、少なくとも1つの計算デバイス5は、少なくとも1つの第1のインタフェース2から入力データIDを受信し、出力データODを少なくとも1つの第2のインタフェース3に送信し、少なくとも1つの共有メモリデバイス4からデータを読み出し、少なくとも1つの共有メモリデバイス4にデータを書き込むように構成されている。
【0158】
図2は、複数の計算モジュール7を示しており、これらの複数の計算モジュール7は、いくつかの実施形態では、論理計算グループ16(論理メタグループに編成することもできるが、これは図には示されていない)に編成され、共有メモリデバイス4を介して少なくとも1つのデータハブプロセス6と対話する。入力データIDは、少なくとも1つの第1のインタフェース2を介して共有メモリデバイス4及び/又は少なくとも1つのデータハブプロセス6に入力される。出力データODは、少なくとも1つの第1のインタフェース2を介して共有メモリデバイス4及び/又は少なくとも1つのデータハブプロセス6から出力される。
【0159】
図3は、一実施形態の計算モジュール7の内部構造を示し、この実施形態では、計算モジュール7は、例えば6つの異なる層I,II,III,IV,V,VIを備えている(層の数は、計算モジュール7毎に異なる可能性がある)。構造などを使用してデータを分析するステップは、図17にも示されており、ルーティングプロセス28が存在することも分かる(この実施形態では、データハブプロセス6とは別個であるが、いくつかの実施形態ではデータハブプロセス6の一部を形成することができる)。このルーティングプロセス28は、どの計算モジュール7がデータ処理装置1の他のどのコンポーネントと接続されなければならないかを知っている。
【0160】
いくつかの実施形態では、層Iは、共有メモリ4又はデータハブプロセス6から取得された(目標ベクトルなどの)モジュール固有のキー付きデータセグメントKSを処理するように構成される場合がある。この層は、少なくとも1つのニューロンネットワーク71による、例えば当技術分野で公知のトポロジカルダウン変換による処理により良好に適すべきデータを準備することができる。
【0161】
いくつかの実施形態では、層II及び/又は層IIIは、層Iから取得されたデータ、及び場合によっては例えばニューロンネットワーク71(例としてANNが示されている)を介して他の計算モジュール7から得られたデータを処理するように構成される場合がある。これらは、データ分析中にデータを認知的に処理するために機械学習が行われる層である。いくつかの実施形態では、これらの層は、他の計算モジュール7から、例えば、これらの他の計算モジュール7の層V又は層VIから情報を受信することも可能である。
【0162】
いくつかの実施形態では、層IVは、少なくとも1つのニューロンネットワーク71を含むように構成される場合があり、ただし、このニューロンネットワーク71は、認知データ処理には使用されないが、例えば、トポロジカルダウン変換によって層II及び層IIIのためにデータハブプロセス6又は共有メモリ4からのデータ(入力ベクトルなど)を変換するために使用される。
【0163】
いくつかの実施形態では、層V及び/又は層VIは、ニューロンネットワーク71を含むように構成される場合があり、このニューロンネットワーク71は、データによって表される情報が異なる計算モジュール7において処理されるのにより良好に適しているかどうかを学習するために使用することができ、このデータを、(好適にはルーティングプロセス28を介して)データハブプロセス6及び/又は共有メモリデバイス4及び/又はこのデータが例えば層II又は層IIIに入力され得る少なくとも1つの他の計算モジュール7に適宜送信することができる。
【0164】
図4は、一実施形態による、場合によっては複数のデータハブプロセス6のうちの1つの内部構造を示しており、ここで、
入力データIDは、場合によっては複数のセグメント化サブプロセス61のうちの1つによって、データセグメントS…Sにセグメント化され、
キーK…Kが、場合によっては複数のキーイングサブプロセス62の1つによって決定され(いくつかの実施形態では、少なくとも1つのARTネットワークがこの目的のために使用される場合がある)、
これらのキーK…Kは、場合によっては複数のキーイングサブプロセス62の1つによってキー付きデータセグメントKS…KSを作成するためにデータセグメントS…Sに割り当てられ、
これらのキー付きデータセグメントKS…KSは、共有メモリデバイス4に書き込まれ、
計算モジュール7の少なくとも1つによって提供される出力を少なくとも1つの他の計算モジュール7に向けるここではサブプロセスとしての任意選択的な少なくとも1つのルーティングプロセス28であって、当該少なくとも1つのルーティングプロセス28は、共有メモリデバイス4にアクセスする。
【0165】
図5は、少なくとも1つのデータハブプロセス6と少なくとも1つの計算モジュール7とによって実行される可能なステップを示しており、ここで、
入力データIDは、少なくとも1つの第1のインタフェース2を介して捕捉され、
キーKは、場合によっては複数のキーイングサブプロセス62の1つによって決定され、
入力データIDは、場合によっては複数のセグメント化サブプロセス61の1つによってデータセグメントSにセグメント化され、
キー付きデータセグメントKSは、場合によっては複数のキーイングサブプロセス62の1つによって作成され、
キー付きデータセグメントKSは、共有メモリデバイス4に提供され、
計算モジュール7は、モジュール固有のキー付きデータセグメントKSについて共有メモリデバイス4を繰り返し検査し、
計算モジュール7は、いずれかが存在する場合はモジュール固有のキー付きデータセグメントKSをロードし、そうでない場合はアイドル状態を維持し、計算モジュール7は、モジュール固有のキー付きデータセグメントKSに対してデータ分析を開始し、
計算モジュール7は、それらの出力を共有メモリデバイス4及び/又は少なくとも1つのデータハブプロセス6及び/又は少なくとも1つの他の計算モジュール7に提供する。
【0166】
図5は、いくつかの実施形態において、計算モジュール7及びそれらの対話によってどのように圏構築要素を表すことができるかを示している。計算グループ16毎の計算モジュール7の数は、計算グループ16間で異なる可能性があり、計算モジュール7による圏構築要素の表現は、計算グループ16の存在又は計算モジュール7の内部構造に全く依存しないことに留意すべきである。
【0167】
いくつかの実施形態では、異なる計算グループ16は、異なる圏A,B,C,Dを表すことができ、ここで、各計算モジュール7は、対象A,B,C,D又は射a,b,c,dを表し、他の計算グループ16は、異なる圏の間の関手
【数34】
例えば、
【数35】
及び
【数36】
を表すことができ、それによって、圏の対象については
【数37】
となり、圏の射については
【数38】
となる。
【0168】
射影極限
【数39】
又は自然変換などのより複雑な圏構築要素の異なる例と、それらの可能な使用については既に上記で説明したが、さらなる例については次の図面に関連して説明する。
【0169】
圏構築要素を含む本発明のこれらの実施形態の利点は、計算モジュール7によって教師ありの方法によって学習された概念が、データ処理装置1により、少なくとも部分的に学習なしの方法での関連する概念の学習に使用できる点にある。
【0170】
図7は、幾何学的対象の色、回転状態、又は可能な変形に関係なく、四面体、八面体、又はボックスの形状の幾何学的対象を認識できるようにさせるための構造認識を行うように構成されている複数の計算モジュール7の例を示している。データ処理装置1は、出力データODを第2のインタフェース3を介してロボットコマンドの形態でロボット20に提供することによって、ロボット20にコンベアベルト9からいくつかの幾何学的対象を移動させるが、他のものは移動させないように配置することができる。
【0171】
異なる対象(四面体17、八面体18、及びボックス19)がそれらを搬送するコンベアベルト9上に配置され、画像捕捉デバイス8(ここでは光学カメラの形態)を通過し、この画像捕捉デバイス8は、データハブプロセス6によってロードすることができる入力データIDとしてのビデオストリーム又は一連の画像を提供するために第1のインタフェース2に接続されている。入力データIDは、上述したように、セグメント化され、キーが作成される。本例では、セグメント化サブプロセス61は、入力データID内の個々の対象の存在を認識し、データセグメントS1,S2,S3を(対象のタイプの認識なしで)作成するように従来技術に従ってトレーニングされ、キーイングサブプログラム62は、異なる対象についてのキーK1,K2,K3を作成し、それによって、データハブプロセス6がキー付きデータセグメントKS,KS,KSを作成してそれらを共有メモリデバイス4に提供できるように従来技術に従ってトレーニングされていることが仮定されている。
【0172】
図8に転じれば、圏Aを表す複数の計算モジュール7が示されている。これらの計算モジュール7の数は象徴的なものであると理解され、実際には、図示の4つの計算モジュール7よりも多くなるであろう。第1の計算モジュール7は、対象Aを表し、共有メモリデバイス4に繰り返しアクセスして対象を表すキー付きデータセグメントKSを検索するようにトレーニングされている。このグループの計算モジュール7は、四面体17を分析するために特別にトレーニングされているが、対象を表すものとしてキーイングされているすべてのキー付きデータセグメントKS,KS,KSがロードされることになる。分析中に、ロードされたキー付きデータセグメントKS,KSが四面体17を表していないことが分かった場合、このキー付きデータセグメントKS,KSは、このグループの計算モジュール7によって再びロードされることがないように、「四面体17ではない」という付加的情報を付けて共有メモリデバイス4に戻すことができる。キー付きデータセグメントKSが、対象Aを表す計算モジュール7によってロードされると、分析が開始される。この計算モジュール7は、(陰影によって象徴される)対象の色、対象の向き、又は可能な変形に関係なく、四面体17を認識するようにトレーニングされている。出力として、それは、陰影のない四面体17を示すボックスによって象徴され、付加的情報「TETRA」が提供されるように、A=「四面体」を表すデータが作成される。この出力は、このグループの他の計算モジュール7に直接送信するか、又は共有メモリデバイス4に格納することができる。ここでは、共有メモリデバイス4に格納され、対象Aを表す計算モジュール7がこの情報をロードすることが想定されている。対象Aを表す計算モジュール7は、四面体17が(対象Aによって表される正規化された状態に対して)回転状態にあることを認識するようにトレーニングされており、この情報をA=「TETRA,ROT,α,β,γ」として出力する。ただし、この計算モジュール7は、必ずしも回転グループSO(3)を符号化する必要がない点に留意すべきである。なぜなら、当該計算モジュール7にとってα,β,γの正確な値を知る必要はないからである。計算モジュール7は、入力としてA及びA受信し、これらの2つの入力を比較することによって四面体17の回転状態を認識し、この情報、すなわち、射a:A→Aが「TETRA,ROT,α,β,γ」として表されることが理解できる情報を出力するようにトレーニングされている。
【0173】
もちろん、回転以外の他のタイプの変換、例えば、並進、反射…などを表すことも可能である。いくつかの実施形態では、射aは、各射が1つ又は複数の計算モジュール7によって符号化される複数の射a=a11o…oa1k、例えば、各射が単一軸周りの回転又は単一方向に沿った並進を符号化する3つの射a11,a12,a13から構成される場合もあることが理解されよう。
【0174】
図9の計算モジュール7のグループは、図8に示されているものと同様である。関手
【数40】
の圏構築要素を使用することにより、圏Aの対象及び射は、この例では八面体18を表す圏Cの対象及び射に写像することができる。このようにして、圏Aの計算モジュール7のトレーニングが完了したら、圏Cの計算モジュール7をトレーニングする必要はない。なぜなら、すべての必要な概念は、関手
【数41】
によって圏Aから圏Cに写像され、図10の結果が得られるからである(もちろん、同様のことは、ボックスを表す圏に関する異なる関手によって行うことができる)。この例では、関手
【数42】
は、異なる幾何学的対象、すなわち四面体17及びボックス19の回転状態を、これらの回転状態が学習された後で比較することによって学習されている。
【0175】
図10は、圏Cを表す複数の計算モジュール7を示す。これらの計算モジュール7の数は象徴的なものであると理解され、実際には、図示の4つの計算モジュール7よりも多くなるであろう。第1の計算モジュール7は、対象Cを表し、共有メモリデバイス4に繰り返しアクセスして対象を表すキー付きデータセグメントKSを検索するようにトレーニングされている。このグループの計算モジュール7は、八面体18を分析するために特別にトレーニングされているが、対象を表すものとしてキーイングされているすべてのキー付きデータセグメントKS,KS,KSがロードされることになる。分析中に、ロードされたキー付きデータセグメントKS,KSが八面体18を表していないことが分かった場合、このキー付きデータセグメントKS,KSは、このグループの計算モジュール7によって再びロードされることがないように、「八面体18ではない」という付加的情報を付けて共有メモリデバイス4に戻すことができる。キー付きデータセグメントKSが、対象Cを表す計算モジュール7によってロードされると、分析が開始される。この計算モジュール7は、(陰影によって象徴される)対象の色、対象の向き、又は可能な変形に関係なく、八面体18を認識するようにトレーニングされている。出力として、それは、陰影のない八面体18を示すボックスによって象徴され、付加的情報「OCTO」が提供されるように、C=「八面体」を表すデータを作成する。この出力は、このグループの他の計算モジュール7に直接送信するか、又は共有メモリデバイス4に格納することができる。ここでは、共有メモリデバイス4に格納され、対象Cを表す計算モジュール7がこの情報をロードすることが想定されている。対象Cを表す計算モジュール7は、八面体18が(対象Cによって表される正規化された状態に対して)回転状態にあることを認識するようにトレーニングされており、この情報をC=「OCTO,ROT,α,β,γ」として出力する。計算モジュール7は、入力としてC及びC受信し、これらの2つの入力を比較することによって八面体18の回転状態を認識し、射c:C→Cを「OCTO,ROT,α,β,γ」として表すと理解できるこの情報を出力するようにトレーニングされている。
【0176】
図11は、いくつかの実施形態において、データ処理装置1が、特定のデータを認識するようにそれぞれトレーニングされている異なる計算モジュール7を使用することによってどのように複雑なデータを分析することができるかを示している。いくつかのデータXがルーティングプロセス28(又は、計算モジュール7の十分に複雑な配置などの異なる構造)に入力され、このルーティングプロセス28は、このデータを異なる計算モジュール7に送信する。各計算モジュール7は、AがデータXの一部を形成しているかどうか(ここでは「~の部分集合である」ことを表す数学記号によって表される)を検査することによって、それがデータX(~の少なくとも一部)を知っているかどうかを検査する。回答が「イエス」である場合、この回答をサブプロセス63に折り返し報告する。回答が「ノー」である場合、この回答をサブプロセス63に折り返し報告するか、又は少なくとも一部の計算モジュール7に関して好適な実施形態では、データ(セグメント)を(例えばこのデータを認識するのにより良好に適している場合がある圏の一部を形成できる)少なくとも1つの他の計算モジュール7に送信することが可能である。例として、データXは、八面体のようないくつかの幾何学的対象、又は「猫が赤ちゃんの誕生を授かる」のような文章(の一部)を表す場合がある。
【0177】
第1の例では、第1の圏Aの計算モジュール7は、異なって変形又は回転した四面体の形態での幾何学的対象を表す対象Aを表す場合があり、それに対して、第2の圏Cの計算モジュール7は、異なって変形又は回転した八面体の形態での対象Cを表す場合がある。第1の圏Aの計算モジュール7は、(四面体を知っているため)八面体の形態でのデータXを認識することができず、この情報をルーティングプロセス28に与えるか、又はこの図に示されているように、データXを認識することができる第2の圏Cの計算モジュール7にこのデータXを送信することができる。
【0178】
第2の例では、第1の圏Aの計算モジュール7は、第1のトピック(例えば、「猫」)に関連する名詞(例えば、「猫」、「誕生」)又は動詞(例えば、「授かる」)を表す対象Aを表す場合があり、それに対して、第2の圏Cの計算モジュール7は、第2のトピック(例えば、「犬」)に関連する名詞(例えば、「犬」、「誕生」)又は動詞(例えば、「授かる」)を表す対象Cを表す場合がある。第1の圏Aの計算モジュール7は、「猫」に関する文章の形態でのデータXを認識することができ、この情報をルーティングプロセス28に与えるか、又はこのデータXをさらなる処理のために異なる圏の計算モジュール7に送信することができる。
【0179】
好適な実施形態では、データ処理装置1は、所定のニューロン21が発火するか否かを決定するニューロンネットワーク71の既知の種類の活性化関数によって使用されるニューロンの入力が積分後に変更されるように、計算モジュール7のニューロンネットワーク71の少なくとも1つの層にランダム信号RANDOMを入力することによって、新しい概念自体(図13を参照)を作成することができるようになる。このようにして、幾何学的対象に関する情報を入力されたニューロンネットワーク71は、自身の計算を、入力された情報だけではなく、ランダム信号によって変更された入力情報にも基づかせることになる。図11では、このことが、「RANDOM」と記された信号線路で示されている。いくつかの実施形態では、階層的に構造化された計算モジュール7が使用される場合、このランダム信号RANDOMは、層IIIに存在する少なくとも1つのニューロンネットワーク71に提供することができる。
【0180】
図12は、図11で説明した、例えばデータハブプロセス6のルーティングプロセス28による、及び/又は、個々の計算モジュール7による、及び/又は、計算モジュール7のグループ16によるプロセスのために、どのように射影極限を使用することができるかを示しており:解釈されるべきデータXは、データセグメント
【数43】
のシーケンスからなると解釈されデータXの射影極限を表すと解釈される計算モジュール7に入力される(データの複雑性に依存して、実際には、多くが計算モジュール7のグループ16でなければならないだろう)。射影極限は、射πとともに対象
【数44】
であり、これはシーケンスAn=1…An=kがそのi番目のメンバーAn=iに射影されることを意味する。データ処理装置1は、例えば、射影射π及び射aを使用することによってどのようにデータXがセグメント化されたかを記憶することができる。図12には示されていないが、ランダム信号RANDOMの入力も存在することができる。
【0181】
図13は、人工ニューロンネットワーク71の単一の人工ニューロン21を示す。この人工ニューロン21(以下では、略して「ニューロン21」)は、信号を取得するための少なくとも1つの(通常は複数の)シナプス24と、信号を送信するための少なくとも1つの軸索(いくつかの実施形態では、単一の軸索は複数の分岐25を有し得る)とを有する。通常、各ニューロン21は、複数のシナプス24を介して他のニューロン21又はニューロンネットワーク71の入力インタフェースから複数の信号を取得し、単一の信号を複数の他のニューロン21又はニューロンネットワーク71の出力インタフェースに送信する。ニューロン本体は、シナプス24と軸索との間に配置され、少なくとも、当技術分野に従って取得された信号を積分するための積分関数22と、このニューロン21によって信号が送信されるかどうかを決定するための活性化関数23とを含む。当技術分野の任意の活性化関数23は、ステップ関数、シグモイド関数…などを使用することができる。当技術分野で公知のように、シナプス24を介して取得された信号は、重み係数wによって重み付けすることができる可能である。これらは、単一の計算モジュール7の一部を形成する場合がある、又は計算モジュール7とは別個に構成でき、計算モジュール7のニューロンネットワーク71の複数(又は場合により全て)に個々の重みwを提供できる重みストレージ26によって提供することが可能である。これらの重みwは、当技術分野で公知のように、例えば、トレーニング段階の間、所期の結果が所期の精度でニューロンネットワーク71によって与えられるように、予め与えられた重みwのセットを修正することによって取得することができる。
【0182】
いくつかの実施形態では、ニューロン本体は、ニューロンネットワーク71の外部(及び好適には、計算モジュール7の外部)で生成されるランダム信号RANDOMを取得するためのレセプタ29を含むことができる。このランダム信号RANDOMは、データ処理装置1による新しい概念の自律的な作成に関連して使用することができる。
【0183】
ニューロンネットワーク71のニューロン21は、層L2,L3に配置することができる(これらの層は、計算モジュール7が階層的アーキテクチャを有する場合、計算モジュール7の層I~VIと混同されてはならない)。
【0184】
いくつかの実施形態では、層L1,L2,L3は、完全には接続されない。
【0185】
図14は、ニューロンネットワーク71の一部を形成するニューロン21の3つの層L1,L2,L3を示す。ニューロン21の間の接続のすべてが示されているわけではない。ニューロン21のいくつかは、ランダム信号RANDOMを取得するためのレセプタ29を備えている。
【0186】
図15は、例として、テンソルの一部(ここでは2×2行列)を形成する複数の計算モジュール7(選択数が4であるのは例示にすぎない)C11,C12,C21,C22が、単一の圏εを表すためにどのように使用され、情報的観点では、この圏が関手φ(ε)を介してベース又はインデックス圏Bにどのように接続され、ファイバー圏とみなすができるか、それに対して、物理的観点では、4つの計算モジュール7がルーティングプロセス28を介してデータハブプロセス6にどのように接続されているかを示す。ルーティングプロセス28及び/又はデータハブプロセス6は、計算モジュール7によって提供された情報がどこに送信されなければならないかを知っている。
【0187】
図16が示していることは、近似的に言えば、本発明に係るデータ処理装置1の実施形態の動作においては異なる段階が存在していると考えることができ、これらの段階の少なくとも一部は、一時的に重複するか、又は周期的な形態で存在していると考えることができることである。
【0188】
第1の段階は、「構成」と記されている。この段階では、データ処理装置1の基本構造が、データハブプロセス6の存在、計算モジュール7の存在、圏構造の構成、補助プロセスの構成などで構成されている。
【0189】
この第1の段階が終了すると、データ処理装置1は、教師ありトレーニングを開始することができる。このトレーニングは、当技術分野で公知のように(トレーニングデータをニューロンネットワークに提供し、所期の結果が所期の精度で達成されるまで重みを調整することによって)行われる必要はないが、これを行うことも可能である。本発明によれば、データ処理装置1が、例えばセンサを用いて、又は外部データベースにアクセスすることによって入力データIDを受信し、この入力データIDを計算モジュール7を使用して分析し、外部の教師、例えば人間の操作者又は外部データベースなどによって分析結果が満足できるものであるかどうか及び/又は有用であるかどうかを折り返し検査することも(付加的又は代替的に)可能である。そうであれば、教師あり学習は成功し、そうでなければ、別の学習ループを行うことができる。
【0190】
この教師あり学習に加えて、教師なし学習が、対象、射、可換図式、関手、自然変換、引き戻し、押し出し、射影極限…などの圏構築要素を使用して、上述した方法によりデータ処理装置1によって開始される。
【0191】
教師あり学習及び教師なし学習の段階に加えて、所定の知識レベルがデータ処理装置1によって達成されると、新しい概念、すなわち考察の作成を、上述したようなランダム信号RANDOMの入力を使用して行うことができる。新しい概念が意味を持ち及び/又は有用である(すなわち、論理的に適正で及び/又はデータ分析に有用である)ことが検査されると、この新しい概念は、(教師なし及び/又は教師ありの)学習と考察との間で(データ処理装置1の全動作中に使用可能である)ループが存在し得るように、教師あり学習及び教師なし学習のプロセスで使用することができる。
【0192】
図17は、計算モジュール7の少なくとも一部が、例えば6つの層I~VIを有する階層的垂直編成を有する実施形態を示す。矢印は、情報の流れを示す。
【0193】
層Iは、共有メモリ4から取得されたモジュール固有のキー付きデータセグメントを処理するように構成されている。この層は、少なくとも1つのニューロンネットワーク71による、例えばトポロジカルダウン変換による処理により良好に適すべきデータを準備することができる。このデータは、例えば、層II及び層IIIのニューロンネットワーク71のための目標ベクトルを含むことができる。
【0194】
層II及び層IIIは、それぞれ少なくとも1つのニューロンネットワーク71を含むことができ、これらのニューロンネットワーク71の各々は、層Iから、及び場合によっては他の計算モジュール7から取得されたデータを処理する。これらは、一般的なANN、又はMfNN、LSTM…などのようなより特殊なANNなどの十分公知のニューロンネットワークを使用して、データ分析中にデータを認知的に処理するために機械学習を行うことができる層である(ここでは、画像、単語…などの学習のためにシナプスの重みwがトレーニング中に変更される)。いくつかの実施形態では、これらの層も、少なくとも1つの他の計算モジュール7からの、例えば、少なくとも1つの他の計算モジュール7の層V又は層VIからの情報を受信することができる。いくつかの実施形態では、層IIIは、上述のようにランダム信号RANDOMを受信する少なくとも1つのニューロンネットワーク71を含む。
【0195】
層IVは、少なくとも1つのニューロンネットワーク71を含むことができる。ただし、この層は、認知データ処理には使用されないが、層II及び層IIIのためのデータを、例えばトポロジカルダウン変換によって変換するのに使用される。このデータは、例えば、層II及び層IIIのニューロンネットワーク71のための入力ベクトルを含むことができる。
【0196】
層V及び層VIには、データによって表される情報が異なる計算モジュール7において処理されるのにより良好に適しているかどうかを学習するために使用でき、このデータをデータハブプロセス6及び/又は共有メモリ4及び/又はルーティングプロセス28に適宜送信するために、及び/又は、このデータを入力することができる場所、例えば層II又は層IIIの別の計算モジュール7に直接送信するために使用できるニューロンネットワーク71が存在し得る。
【0197】
図18は、図7に示されているロボット20を制御するデータ処理装置1に作用する概念を定義するために圏構築要素「引き戻し」を使用する例を示す(圏対象Aは、C→D←Bの引き戻し、すなわち、C×Bであり、これはAの右下に配置された小さい」によって記されている):
圏対象Xは、「ボックス形態の認識可能な幾何学的形状を有する幾何学的対象はロボットによって掴まれるべきである」を表す。
圏対象Aは、「ロボットによって掴まれるべき幾何学的対象」を表す。
圏対象Bは、「ボックス形態の認識可能な形状」を表す。
圏対象Cは、「認識可能な形状を有する幾何学的対象」を表す。
圏対象Dは「認識可能な形状」を表す。
関手φは、「認識可能な形状として有する」を表す。
関手φは、「である」を表す。
関手φは、「有する」を表す。
関手φは、「である」を表す。
関手Ψは、「である対象」を表す。
関手Ψは、「である」を表す。
関手Ψは、「幾何学的対象の形態として有する」を表す。
【0198】
圏対象A,B,C,Dによって形成される図式は可換であり、これは矢印
【数45】
によって記されている。圏論では、関手Ψが一意であることを証明することができる。換言すれば、Xによって表されるコマンドと、Aによって表される引き戻しとの曖昧さのない割り当てが存在し、これが順次、圏対象C,B,Dに接続される。ビデオ捕捉デバイス8によって提供されたデータの処理中に、データのいずれかがこれらの圏対象の1つ以上を表すものとして解釈することができるかどうかは、圏対象を表す異なる計算モジュール7、又は計算モジュール7の計算グループ16によって検査することができる。これらの圏対象のすべてが処理されたデータに存在する場合(すなわち、データを処理することにより、以下のこと、すなわち「形状が認識できる」、「形状が幾何学的対象に関して認識できる」、「形状がボックス形態である」のすべてが確認できる場合)、Xで表されるコマンドは、コンベアベルト9上に配置される可能性のあるすべての可能な幾何学的対象のうち、形状が認識可能で、その形状がボックス19であることが判明したものだけをロボット20によって掴ませるという効果で実行されることを結論付けることができる。
【0199】
図19は、圏構築要素を使用することによって新しい概念を学習する教師なし学習を含んだ例を示す。
【0200】
例として、図19aは、(
【数46】
によって記されている)可換図式を示す。Aが人物「アン」を表し、Aが「学校」を表し、Aが「生徒」を表し、aが「通っている」を表し、aが「によって通われている」を表すならば、データ処理装置は、「アン」が「生徒」であるという概念を学習することが可能である。なぜなら、aoa=aは、「学校は、生徒によって通われている」o「アンは学校に通っている」=「アンは生徒である」、すなわち、a=「である」という結論を与えるからである。
【0201】
図19bの例は、(」によって記されている)引き戻しの圏構築要素を使用した自然言語の分析を示し、ここで、「猫が肉を食べる」及び「犬が肉を食べる」という知識は、図示の可換図式(圏対象A,Aはそれぞれ「猫」及び「犬」を表し、射a,aは「食べる」を表す)によって表され、引き戻しCとして「犬や猫が食べる」(射a及びaは射影である)を有しており、次いで、このことは、例えば哺乳類へ抽象化することが可能である。人間の操作者又は外部データベースを含むデータ処理装置1による検査では、すべての哺乳類が肉を食べるわけではないので、この一般化は適正ではないことが分かり、それらの間の接続は再トレーニングが必要であろう。
【0202】
引き戻しが、それらを表す可換図式の結合によって追加可能であることは圏論において公知である。
【0203】
図19cの例で、Αは「ボックス形状の対象」の圏を表し、圏Βは「四面体」の圏を表し、そのためA,Aは、射fによって表される回転によって相互に接続された2つのボックスであり、B,Bは2つの四面体であると仮定する。換言すれば、情報処理装置1は、回転したボックスがまだ同一のボックスであるということを学習している。関手
【数47】
を使用することにより、この概念を「四面体」の圏Bに写像することができ、これは、データ処理装置1にとって、「四面体」の圏においてgで表される「幾何学的対象の回転」の概念を再学習する必要がないことを意味する。
【0204】
図20aは、自然言語で与えられる画像固有の記述で提供された画像中の対象のデータタイプの組合せの分析を含んだ例を示す。別の例は、音声とともに提供される画像であろう。同様のデータタイプを含む他の例は、画像の組合せであろう。図20の描写は、情報的観点に関する。2つのファイバー圏、すなわち、ベース圏
【数48】
を有するε及びベース圏
【数49】
を有する
【数50】
は、画像(例えば、家の中で示される猫)と、自然言語で与えられ、孤立した猫の画像に関連する記述(これは、例えば、猫を認識するように計算モジュール7又は複数の計算モジュール7を教え込むことによって行うことができる)、すなわち、画像において猫が家の中に位置しているという事実とは無関係な記述(例えば、猫は哺乳類であり、魚や肉を食べる…など)をそれぞれ表すために使用される。画像と記述の両方は、それら自体、一意の識別子を、例えばキー若しくはアドレスの形態で有し、又は、図示のように、ベース圏によるものを有している。データ処理装置1は、所定の記述が所定の画像に固有であり、その意味において、これらが一緒に属していることを学習するためにトレーニングすることができる。この事実は、インデックス圏の間の関手によって学習することができる。
【0205】
図20bは、異なる画像に対して同一の記述で特定すべきことが重要である例を示す。人間にとって、例えば、木の上に座り、木から飛び降り、家の中に入る猫は、常に同一の生き物であることは直感的に明らかである。ただしこれは計算モジュール7において情報を認知的に分析するために使用されるニューロンネットワーク71にとって、それ自体明確ではなく、教師ありの方法により教え込まなければならない。データ処理装置1は、移動した猫がまだ同一の対象であることを学習したら、同一の記述を2つの異なる画像に関連付けること、ここでは、一方の画像は家の中の猫を示し、他方の画像は木の上の同一の猫を示すことを教師なしの方法により(ランダム信号を必要とすることなく可換性のみを使用して)学習することが可能である。これは、「家の中の猫」圏及び「木の上の猫」圏の両方が同一のベース圏
【数51】
を指し示すことによって示されている。破線の矢印は、「木の上の猫」圏と「猫の記述」圏との間の教師なし学習による接続を示す。したがって、データ処理装置1は、いくつかの実施形態では、同一の自然言語記述を、同一の対象を示す異なる画像の一部に帰属させるように構成されている。
【0206】
図21は、言語における概念の生成に使用することができる複数の計算モジュール7C,C…Cによって表される射影極限
【数52】
を情報的観点及び物理的観点の組合せで示している。ランダム信号発生器27は、「人間が犬を食べる」、「犬が猫を食べる」、「猫が猫を食べる」などの新しい言語概念を生成するために、計算モジュール7のニューロンネットワーク71(これらは猫及び犬に関して既にトレーニングされている)のレセプタ29に結合されている。「犬」及び「猫」を含んだ情報を認識するようにトレーニングされた計算モジュール7のグループは、これらの文章をロードし、例えば、「犬が猫を食べる」という文章を、そのコンポーネント「犬」、「食べる」、「猫」に分解することによって分析することが可能である。情報的視点で示されるように、この文章は、犬を表す圏Dと猫を表す圏Dとの間で動詞「食べる」を表すトレーニングされた関手
【数53】
を使用することによって分析することが可能である。物理的観点では、これらは、ベース圏I,I,Iを有する複数のファイバー圏A,A,Aに対応する。この文章が既知であるかどうかを内部的に検査するために、帰納極限
【数54】
を表す異なる複数の計算モジュール7E,E…Eが、文章全体の分析のために使用可能である。文章が内部的に見つからない場合、この概念が意味を持つかどうか分からないことを認識する別の射影極限を表す別の計算モジュール7のグループ(図示せず)によって分析することが可能である。したがって、データ処理装置1は、この概念が意味を持つかどうかを人間の操作者又は外部のデータベースに問い合わせる。外部からのフィードバックが「真でない」となれば、この概念は削除される。
【0207】
図22aには、ランダム信号RANDOMが入力される射影極限
【数55】
の異なる使用、すなわち、普遍量化子∀をどのように近似的に表すかが示されている(射影極限
【数56】
は計算モジュール7によって表される)。
【0208】
ランダム信号RANDOMは、ランダム信号発生器27によって入力され、テストデータの形態での新しい概念の生成のために使用される。もちろん、有限系において無限数の要素に対して真を維持しなければならない∀のような量化子を正確に表すことは不可能である。したがって、絶えず新しいテストデータ(例えば、n-組(x,x…x),(x’,x’…x’),(x’’,x’’…x’’)のようなテストデータの集合)を確率的に生成するランダム信号RANDOMを入力することによって無限大がシミュレートされている。これは、要素を選択できるテストデータが無数にある場合とほぼ同様の効果があると考えることができる。この意味において、ランダムに(確率的に)生成されるテストデータは、以下のような意味で普遍量化子∀をシミュレートしていると考えることができる。射影極限
【数57】
を表す計算モジュール7が、例えば素数に関するいくつかの事実を学習し、ある仮説(例えば、すべての自然数nに対して、より大きい素数の自然数mが存在する)を立てるためにそれらを使用すると仮定する。次いで、確率的に生成された多数のテストデータを使用することにより、それらは、この仮説が与えられた述語に関して適正であるかどうか、例えば、テストデータの各自然数に対して、より大きい素数の自然数が存在することが適正であるかどうかを検査することができる。もちろん、これは伝統的な意味での数学的証明ではない。むしろ、これは、ある仮説が非常に多くのテストデータに対して検査され、テストデータの各々に対して真であることが維持されれば、それはすべての可能なデータに対して真とみなせる場合がある、という推論である。別の例では、「人は皆、死すべき運命にある」ということである。テストデータに、複数の人間に関する情報が含まれており、データ処理装置は、これらの人間の各々について、その人間が死んでいるかどうかを検査するであろう。
【0209】
このようにして、教師なし学習は、いくつかの実施形態では、人間の操作者又は外部データベースなどの外部参照による検査なしであっても行うことができる。検査は、例えば、他の計算モジュール7(E,E…E)、特に、自然論理の存在量化子∃とみなすことができる帰納極限
【数58】
を一緒になって表す計算モジュール7を使用して行うことができる(図22bを参照)。仮説が検査されると、それは別の計算モジュール7のグループに対して計算モジュール7C,C…Cが他の仮説の検査のために解放されることを表すために送信することができる。
【0210】
図23及び図24は、データ処理装置1が、時間及び/又は空間のための座標系を提供することによってではなく、時間的及び空間的関係を非共役射又は関手で符号化することによって、時間及び/又は空間における向きの感覚をどのように構築できるかを示した例である。
【0211】
図23では、異なる時間間隔の間に生じた3つのイベントE,E,E(例えば、動画のフレーム又はセンサへの入力)が例として示されている。これらのイベントに関連するデータは、データ処理装置1に入力され、例えば、3つのイベントE,E,Eの各々についての圏A,A,Aによって表される。いくつかの実施形態では、予め決定可能な時間間隔内、例えば0.1秒~0.5秒の間で相次いで入力されるイベントが、圏A,A,Aのベース圏I,I,Iを非可換関手φ,φ(すなわち、φoφ≠φoφ)で接続することによる接続手法で表される。代替的に、データ処理装置1が、これらのイベントの接続を明示的に指示することも可能であろう。いずれの手法においても、因果関係及び「以前」や「以降」などの時間的概念は、例えば、圏A,A,A間の関手によって符号化することができる。
【0212】
また、「私は、明日学校に行きます」などの時間的文章は、データ処理装置が、「行きます」や「明日」に現在や未来の存在があることの意味を認識するようにトレーニングされていれば、図23に示されている概念を使用して分析することが可能になる。この時間的順序は、上述したようにそれらのベースを介して接続された圏によって表すことができる。
【0213】
図24には、屋根で覆われた1階建ての家が建つ地面と、その家の片側に浮かぶ風船とが描かれている画像が示されている。データ処理装置1は、この画像を分析し、異なる対象、すなわち、「地面」、「家の階層」、「屋根」、及び「風船」を抽出する。これらの対象間の空間的関係は、圏A,A,A,Gのベース圏I,I,I,Iの間の非可換関手φ,φによって符号化されている。これらは、例えば、家は地面の上に建ち、逆方向はないので非可換である。したがって、図24の例では、圏が右方にあるほど、その圏によって表される対象は画像内で高く配置される。
【0214】
この例では、ベース圏がファイバー圏である可能性もあり、この例において風船が家の片側にあることを符号化するのに使用されているベース圏(I)自体を有していることが分かる。
【0215】
図25aは、例えばトポスである圏Cのための部分対象分類子の構築を示す。これは、終対象1から対象Qへの射t:1→Ωに加えて、図25aに示される図式が引き戻しとなるように、C内の任意の単射f:I→Jに対して、一意の射char(f):j→Ω(特性関数と称する)が存在する特性を備えた対象Qである。
【0216】
図25bは、この概念を、所定の幾何学的対象、ここでは立方体又はボックスが、(ボールの存在によって象徴されているようにすべての幾何学的形状の部分圏を形成する)多面体の部分圏に属するかどうかを決定するために使用することができる例を示す。この事実を圏的手法で符号化するために、部分対象分類子Ω(ここでは2要素集合)が、終対象1(ここでは圏集合における単一集合)からΩへの射t:1→Ωとともに使用される。立方体又はボックスは、char(f)によって要素1(又は「真」)に送信され、それに対して、ボールは、要素0(又は「偽」)に送信される。
【符号の説明】
【0217】
1 データ処理装置
2 第1のインタフェース
3 第2のインタフェース
4 共有メモリデバイス
5 計算デバイス
6 データハブプロセス
61 セグメント化サブプロセス
62 キーイングサブプロセス
7 計算モジュール
71 ニューロンネットワーク
8 ビデオ捕捉デバイス
9 コンベアベルト
10 層I
11 層II
12 層III
13 層IV
14 層V
15 層VI
16 計算グループ
17 四面体
18 八面体
19 ボックス
20 ロボット
21 人工ニューロン
22 積分関数
23 活性化関数
24 人工ニューロンのシナプス
25 人工ニューロンの軸索の分岐
26 重みストレージ
27 ランダム信号発生器
28 ルーティングプロセス
29 ランダム信号のレセプタ
ID 入力データ
OD 出力データ
i番目のキー
i番目のデータセグメント
KS i番目のキー付きデータセグメント
i番目のニューロンネットワーク層
RANDOM ランダム信号
【数59】
射影極限
【数60】
帰納極限
Ω 部分対象分類子
∀ 普遍量化子
∃ 存在量化子
」 引き戻し
【数61】
可換図式
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19a
図19b
図19c
図20
図21
図22a
図22b
図23
図24
図25a
図25b