(57)【要約】【課題】小規模なハードウェアでも実現可能な人工ニューラルネットワークを提供すること。【解決手段】複数のパーセプトロンによる処理が連結された人工ニューラルネットワークシステムであって、パーセプトロンに入力するための入力情報を含む処理対象バケットを取得し、取得された処理対象バケットを入力するためのパーセプトロンを識別するパーセプトロン識別子を処理対象バケットから取得し、取得したパーセプトロン識別子に基づいてパーセプトロンの振る舞いを特定する人工ニューラルネットワーク設定情報を取得し、取得された人工ニューラルネットワーク設定情報に基づいてパーセプトロンを動作させ、取得された処理対象バケットに含まれる入力情報に基づいて処理を実行させ、入力情報に基づいてパーセプトロンに処理を実行させた結果の情報を処理対象バケットに記述することを特徴とする。【選択図】図４
2018135002.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーセプトロンによる処理が連結された人工ニューラルネットワークシステムであって、
前記パーセプトロンに入力するための入力情報を含む処理対象バケットを取得する処理対象バケット取得部と、
取得された前記処理対象バケットを入力するための前記パーセプトロンを識別するパーセプトロン識別子を前記処理対象バケットから取得し、取得した前記パーセプトロン識別子に基づいて前記パーセプトロンの振る舞いを特定する人工ニューラルネットワーク設定情報を取得する設定情報取得部と、
取得された前記人工ニューラルネットワーク設定情報に基づいて前記パーセプトロンを動作させ、取得された前記処理対象バケットに含まれる前記入力情報に基づいて処理を実行させる実行制御部と、
前記入力情報に基づいて前記パーセプトロンに処理を実行させた結果の情報を前記処理対象バケットに記述する処理結果更新部とを含むことを特徴とする人工ニューラルネットワークシステム。
【請求項２】
前記人工ニューラルネットワーク設定情報は、前記パーセプトロンの処理結果に応じて前記処理対象バケットを次に入力するべきパーセプトロンを識別する次段パーセプトロン識別子の情報を含み、
前記処理結果更新部は、前記入力情報に基づいて前記パーセプトロンに処理を実行させた結果の情報を前記処理対象バケットに記述すると共に、取得された前記人工ニューラルネットワーク設定情報に含まれる前記次段パーセプトロン識別子を用いて、前記処理対象バケットに記述された前記パーセプトロン識別子を更新することを特徴とする請求項１に記載の人工ニューラルネットワークシステム。
【請求項３】
前記人工ニューラルネットワーク設定情報は、前記パーセプトロンの振る舞いを特定するための情報として、入力情報に適用する重み値及び重みづけされた値に対して適用する閾値の情報を含むことを特徴とする請求項１に記載の人工ニューラルネットワークシステム。
【請求項４】
前記処理結果更新部は、前記パーセプトロンを動作させるために用いられた前記人工ニューラルネットワーク設定情報を特定するための前記パーセプトロン識別子を、複数のパーセプトロンによる処理の履歴を示す情報として前記処理対象バケットに記述することを特徴とする請求項１に記載の人工ニューラルネットワークシステム。
【請求項５】
前記処理結果更新部は、前記パーセプトロンを動作させるために用いられた前記人工ニューラルネットワーク設定情報を特定するための前記パーセプトロン識別子を、人工ニューラルネットワークを構成する複数のパーセプトロンの階層別に前記処理対象バケットに記述することを特徴とする請求項４に記載の人工ニューラルネットワークシステム。
【請求項６】
前記人工ニューラルネットワークシステム全体の動作を制御するコントロールサーバーおよび前記コントロールサーバーからの要求に応じて少なくともパーセプトロン１つ分の処理を実行する人工ニューラルネットワーククライアントによって構成され、
前記処理対象バケット取得部は、前記コントロールサーバーにおいて動作すると共に、取得した前記処理対象バケットを前記人工ニューラルネットワーククライアントに送信し、
前記設定情報取得部、前記実行制御部、前記処理結果更新部は、前記人工ニューラルネットワーククライアントにおいて動作し、
前記人工ニューラルネットワーククライアントは、前記パーセプトロンに処理を実行させた結果の情報が記述された前記処理対象バケットを前記コントロールサーバーに送信する処理結果送信部を含むことを特徴とする請求項１に記載の人工ニューラルネットワークシステム。
【請求項７】
前記コントロールサーバーは、
前記処理対象バケットを送信する対象のクライアントとして、前記人工ニューラルネットワーククライアントを識別するクライアント識別子を記憶媒体に記憶させるクライアント登録部と、
前記クライアント識別子を記憶媒体に記憶させた前記人工ニューラルネットワーククライアントに対して、処理対象バケットを処理するためのパーセプトロンの振る舞いを特定するために用いられる可能性のある複数の人工ニューラルネットワーク設定情報を送信する設定情報送信部とを含み、
前記設定情報取得部は、前記コントロールサーバーから受信した複数の前記人工ニューラルネットワーク前記設定情報の中から、取得した前記パーセプトロン識別子に基づいて前記パーセプトロンの振る舞いを特定する人工ニューラルネットワーク設定情報を取得する事を特徴とする請求項６に記載の人工ニューラルネットワークシステム。
【請求項８】
前記処理対象バケットは、異なる複数のバケットであって単一のパーセプトロンに対して入力する複数のバケットを識別するグループ識別子を含み、
前記処理対象バケット取得部は、前記グループ識別子に基づいて複数の前記処理対象バケットを取得することを特徴とする請求項１に記載の人工ニューラルネットワークシステム。
【請求項９】
複数のパーセプトロンによる処理が連結された人工ニューラルネットワークの制御方法であって、
前記パーセプトロンに入力するための入力情報を含む処理対象バケットを取得し、
取得された前記処理対象バケットを入力するための前記パーセプトロンを識別するパーセプトロン識別子を前記処理対象バケットから取得し、
取得した前記パーセプトロン識別子に基づいて前記パーセプトロンの振る舞いを特定する人工ニューラルネットワーク設定情報を取得し、
取得された前記人工ニューラルネットワーク設定情報に基づいて前記パーセプトロンを動作させ、取得された前記処理対象バケットに含まれる前記入力情報に基づいて処理を実行させ、
前記入力情報に基づいて前記パーセプトロンに処理を実行させた結果の情報を前記処理対象バケットに記述することを特徴とする人工ニューラルネットワークの制御方法。
【請求項１０】
複数のパーセプトロンによる処理が連結された人工ニューラルネットワークのためのデータ構造であって、
前記パーセプトロンに処理を実行させるために前記パーセプトロンの振る舞いを特定するための人工ニューラルネットワーク設定情報および複数の前記パーセプトロンによって繰り返し処理される処理対象バケットを含み、
前記人工ニューラルネットワーク設定情報は、前記人工ニューラルネットワークを構成する複数のパーセプトロンを識別するパーセプトロン識別子と、
前記パーセプトロン識別子によって識別されるパーセプトロンの振る舞いを特定するための情報と、
前記パーセプトロン識別子によって識別されるパーセプトロンの処理の結果を次に入力するべき他のパーセプトロンを識別する次段パーセプトロン識別子とを含み、
前記処理対象バケットは、
前記パーセプトロンに入力するための入力情報と、
前記入力情報を入力するための前記パーセプトロンを識別するパーセプトロン識別子と、
前記パーセプトロン識別子によって識別されるパーセプトロンの処理の結果である処理結果とを含み、
前記処理対象バケットにおける前記パーセプトロン識別子は、そのパーセプトロン識別子によって識別される前記人工ニューラルネットワーク設定情報に記述された前記次段パーセプトロン識別子に基づいて更新されることを特徴とする人工ニューラルネットワークのためのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人工ニューラルネットワークシステム、人工ニューラルネットワークの制御方法および人工ニューラルネットワークのためのデータ構造に関する。
【背景技術】
【０００２】
ＡＮＮ（Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：人工ニューラルネットワーク）を用いて膨大な量のデータを処理することにより、画像のパターン認識や市場のデータマイニング等を高精度化することが行われている。そのようなＡＮＮによるデータ処理においては、処理の高速化やハードウェア面における制約の解消等の発展が望まれる。【０００３】
並列演算を行うＡＮＮの稼働率を向上させるため、ｎ番目の処理と、その処理結果を用いるｎ＋１番目の処理とを並列して行い、ｎ番目の処理の結果に基づいてｎ＋１番目の処理の再計算が必要だと判断した場合にのみｎ＋１番目の処理を再計算する方法が提案されている（例えば、特許文献１参照）。特許文献１に開示された技術によれば、本来は順番に処理されなければならない各ノードの処理を並列化することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２８７０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、ＡＮＮシステムに対して、ハードウェア面における制約を解消することが望まれている。ＡＮＮの多くは膨大な数のパーセプトロンのネットワークによって構成される。そのため、ハードウェアによってＡＮＮを実現する場合には膨大な数のパーセプトロンに対応した回路が必要となるし、ソフトウェアによって実現する場合でも、パーセプトロンの数に対応したプログラムをロードするためのメモリ領域が必要となる。即ち、ＡＮＮの実現に際しては依然としてハードウェア面での制約が大きい。【０００６】
特許文献１に開示された技術は処理の並列性を向上することにより処理効率を向上する事を目的としたものであり、ＡＮＮの実現に際してのハードウェア面での制約の解消を目的とする本件とはその趣旨が異なる。【０００７】
本発明は、上記実情を考慮してなされたものであり、小規模なハードウェアでも実現可能な人工ニューラルネットワークを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様は、複数のパーセプトロンによる処理が連結された人工ニューラルネットワークシステムであって、前記パーセプトロンに入力するための入力情報を含む処理対象バケットを取得する処理対象バケット取得部と、取得された前記処理対象バケットを入力するための前記パーセプトロンを識別するパーセプトロン識別子を前記処理対象バケットから取得し、取得した前記パーセプトロン識別子に基づいて前記パーセプトロンの振る舞いを特定する人工ニューラルネットワーク設定情報を取得する設定情報取得部と、取得された前記人工ニューラルネットワーク設定情報に基づいて前記パーセプトロンを動作させ、取得された前記処理対象バケットに含まれる前記入力情報に基づいて処理を実行させる実行制御部と、前記入力情報に基づいて前記パーセプトロンに処理を実行させた結果の情報を前記処理対象バケットに記述する処理結果更新部とを含むことを特徴とする。
を特徴とする。
【発明の効果】
【０００９】
本発明によれば、小規模なハードウェアでも実現可能な人工ニューラルネットワークを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】一般的なＡＮＮの全体構成を示す図である。
【図２】本発明の実施形態に係るＡＮＮシステムを構成するための１つのパーセプトロンの処理を概念的に示す図である。
【図３】本発明の実施形態に係るＡＮＮシステムのハードウェア構成を示すブロック図である。
【図４】本発明の実施形態に係るＡＮＮシステムの機能構成を示すブロック図である。
【図５】本発明の実施形態に係るＡＮＮ設定情報の例を示す図である。
【図６】本発明の実施形態に係るバケットに含まれる情報の例を示す図である。
【図７】本発明の実施形態に係るバケットに含まれるＰｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙの情報の例を示す図である。
【図８】本発明の実施形態に係るＡＮＮシステムの動作を示すフローチャートである。
【図９】本発明の実施形態に係るＡＮＮシステムにおける情報の流れを示す図である。
【図１０】本発明の実施形態に係るＡＮＮシステムにおいて処理が複数に分岐する場合のパーセプトロンの連結状態の例を示す図である。
【図１１】本発明の実施形態に係るＡＮＮシステムにおいて処理が複数に分岐する場合にＡＮＮ設定情報に記述される情報の例を示す図である。
【図１２】本発明の実施形態に係るＡＮＮシステムにおいて処理が複数に分岐する場合にあるパーセプトロンによって処理された後のバケットの内容を示す図である。
【図１３】本発明の実施形態に係るＡＮＮシステムにおいて処理が複数に分岐する場合にあるパーセプトロンによって処理された後のバケットの内容を示す図である。
【図１４】本発明の実施形態に係るＡＮＮシステムにおいて処理が複数に分岐する場合にあるパーセプトロンによって処理された後のバケットの内容を示す図である。
【図１５】本発明の実施形態に係るＡＮＮシステムにおいて異なる複数のパーセプトロンによって処理されたバケットが単一のパーセプトロンに入力される場合のパーセプトロンの連結状態の例を示す図である。
【図１６】本発明の実施形態に係るＡＮＮシステムにおいて異なる複数のパーセプトロンによって処理されたバケットが単一のパーセプトロンに入力される場合のバケットの内容を示す図である。
【図１７】本発明の実施形態に係るＡＮＮシステムにおいて異なる複数のパーセプトロンによって処理されたバケットが単一のパーセプトロンに入力される場合のバケットの内容を示す図である。
【図１８】本発明の実施形態に係るＡＮＮシステムにおいて異なる複数のパーセプトロンによって処理されたバケットが単一のパーセプトロンに入力される場合のバケットの内容を示す図である。
【図１９】本発明の実施形態に係るＡＮＮシステムにおいて異なる複数のパーセプトロンによって処理されたバケットが単一のパーセプトロンに入力される場合にあるパーセプトロンによって処理された後のバケットの内容を示す図である。
【図２０】処理に応じて選択されるＡＮＮの経路の例を示す図である。
【図２１】処理に応じて選択されるＡＮＮの経路の例を示す図である。
【図２２】本発明の他の実施形態に係るＡＮＮシステムの構成を示すブロック図である。
【図２３】本発明の他の実施形態に係るＡＮＮシステムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施の形態１．
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、膨大な数のパーセプトロンの組み合わせによって構成されるＡＮＮ（Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：人工ニューラルネットワーク）を、小容量のメモリによって実現するための構成について説明する。本実施形態に係るＡＮＮシステムは、少なくとも１つ分のパーセプトロンを構成するためのプログラムと、パーセプトロンの振る舞いを特定するためのＡＮＮ設定情報と、ＡＮＮによって処理される情報が格納されるバケットとを含み、ＡＮＮ設定情報を切り替えて繰り返し処理を行う事により、膨大な数のパーセプトロンによって構成されるＡＮＮを小容量のメモリによって実現する。
【００１２】
図１は、膨大な数のパーセプトロンのネットワークとして構成されるＡＮＮの例を示す図である。図１に示すように、ＡＮＮにおいては膨大な数のパーセプトロンがネットワークを構成し、あるパーセプトロンの出力が他のパーセプトロンに入力されることにより処理が繰り返し実行される。このようなＡＮＮを構成するためには、膨大な数のパーセプトロンに対応するプログラムを構築して実行することとなり、そのために必要となるメモリ容量もまた膨大なものとなる。
【００１３】
これに対して、少なくとも１つ分のパーセプトロンに対応するプログラムをベースとして、パーセプトロンの振る舞い方を切り替えて繰り返し処理を実行することにより、小容量のメモリによって膨大な数のパーセプトロンによって構成されるＡＮＮと同様の処理結果を実現することが本実施形態に係る要旨である。１つのＡＮＮを構成するパーセプトロンの数はシステムの目的によって様々であるが、例えば数万〜数億個である。即ち、従来技術においては数万〜数億個のパーセプトロンに対応したメモリ空間が必要であったが、本実施形態に係るシステムによればそのメモリ空間をパーセプトロン１つ分に圧縮することが可能となる。
【００１４】
図２は、本実施形態に係るＡＮＮの概念を示す図である。図２に示すように、１つ分のパーセプトロンに対してデータが入力され、通常のパーセプトロンの処理と同様に重みづけ処理及び閾値判断がされ、その結果が出力される。その出力を再度入力として用いることにより、ＡＮＮを実現するが、重みづけ処理や閾値判断のための設定値が目的に応じて切り替えられることにより、目的に応じたＡＮＮと同様の処理結果を得る事が可能となる。
【００１５】
図３は、本実施形態に係るシステムのハードウェア構成を示す図である。本実施形態に係るシステムは一般的な情報処理機器のハードウェア構成によって実現可能であり、図３に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０及びＩ／Ｆ５０がバス７０を介して接続されている。
【００１６】
ＣＰＵ１０は演算手段であり、システムの基本的な動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。図１に示すようなＡＮＮをそのまま実現する場合、膨大な数のパーセプトロンに対応したプログラムをロードする領域が必要であるため、ＲＡＭ２０に要求される容量が膨大なものとなる。これに対して、図２において説明した構成によりＲＡＭ２０に要求される容量を小容量化することが本実施形態に係る要旨である。
【００１７】
ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納されている。尚、ＨＤＤではなくＳＳＤやＮＶ−ＲＡＭ等の不揮発性記憶媒体を用いても良い。
【００１８】
Ｉ／Ｆ５０は、バス７０と各種のハードウェアデバイスやネットワーク等を接続し制御する。Ｉ／Ｆ５０に接続される他のデバイスとしては、例えばスマートホンに搭載された加速度センサ、光学センサであるカメラ、音声センサであるマイク等のセンサ類や、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）及びタッチパネル等の入出力デバイスである。
【００１９】
このようなハードウェア構成において、ＲＯＭ３０に格納されているプログラムや、ＨＤＤ４０若しくは図示しない光学ディスク等の記録媒体からＲＡＭ２０に読み出されたプログラムに従ってＣＰＵ１０が演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係るＡＮＮシステムの機能を実現する機能ブロックが構成される。
【００２０】
図３において説明したように、本実施形態に係るＡＮＮシステムは、特別なハードウェアを必要とすることなく一般的な情報処理装置のハードウェア構成によって実現可能である。また、上述したように、ＲＡＭ２０に対して要求される容量も大きなものではないので、家庭用、個人用のＰＣ（Ｐｅｒｓｏｎｌ  Ｃｏｍｐｕｔｅｒ）やスマートホン等の携帯端末でも実現可能である。
【００２１】
次に、本実施形態に係るＡＮＮシステムの機能構成について図４を参照して説明する。図４に示すように、本実施形態に係るＡＮＮシステムは、プロセスマネージャー１０１、単位パーセプトロン１０２、処理対象バケット１０３、処理対象データ１０４、ＡＮＮ設定情報１０５を含む。プロセスマネージャー１０１は、本実施形態に係るＡＮＮシステムの動作を制御する制御部であり、ＲＡＭ２０にロードされたプログラムに従ってＣＰＵ１０が演算を行う事により構成される。
【００２２】
単位パーセプトロン１０２は、ＡＮＮの処理単位であるパーセプトロン１つ分に相当する。単位パーセプトロン１０２はパーセプトロンのフレームワークとしての機能によって構成されており、処理の際には詳細な振る舞いを特定するためのパラメータが与えられる。処理対象バケット１０３は単位パーセプトロン１０２によって処理されるデータである。
【００２３】
単位パーセプトロン１０２および処理対象バケット１０３は、ＲＡＭ２０上に確保された作業領域２０ａにロードされて処理される。上述したように、この作業領域２０ａを小容量化できることが本実施形態に係る主な効果である。具体的には、数万〜数億個分の単位パーセプトロン１０２をロードするための容量が必要であった従来技術に対し、本実施形態においては、図４に示すように１つ分の要領で実現可能である。
【００２４】
処理対象データ１０４は、処理対象バケット１０３として処理されるデータが記憶されている記憶領域である。処理対象データ１０４として記憶されている複数のバケットのうち処理対象のバケットが、プロセスマネージャー１０１によって処理対象バケット１０３として作業領域２０ａにロードされる。
【００２５】
ＡＮＮ設定情報１０５は、上述したように１つ分のパーセプトロンの処理を繰り返し実行する上で、各回のパーセプトロンの振る舞いを特定するための情報である。処理対象バケット１０３に記述されている情報によってＡＮＮ設定情報が特定され、プロセスマネージャー１０１によって読み出されて単位パーセプトロンの振る舞いを特定するためのパラメータとして用いられる。処理対象データ１０４およびＡＮＮ設定情報１０５は、ＨＤＤ４０に記憶されている。
【００２６】
図５は、ＡＮＮ設定情報の内容を示す図である。図５に示すように、ＡＮＮ設定情報１０５は、「ＡＮＮ  ＩＤ」、「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」、「Ｂｉａｓ  Ｖａｌｕｅ」、「ｗｅｉｇｈｔ  ｖａｌｕｅ」および「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」を含む。
【００２７】
「ＡＮＮ  ＩＤ」は、ＡＮＮを特定するための識別子である。「ＡＮＮ  ＩＤ」が情報として含まれていることにより、異なるＡＮＮをそれぞれ識別して処理することが可能となるため、あるＡＮＮの処理によって出力されたデータを別のＡＮＮの入力データとして用いるような運用が可能となる。
【００２８】
「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」は、ＡＮＮを構成するそれぞれのパーセプトロンを特定するためのパーセプロトン識別子である。「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」によって特定されるＡＮＮ設定情報がプロセスマネージャー１０１によって読みだされ、単位パーセプトロン１０２の振る舞いを指定するためのパラメータとして用いられる。
【００２９】
「Ｂｉａｓ  Ｖａｌｕｅ」は、単位パーセプトロン１０２の振る舞いのうち、閾値を特定するパラメータである。「ｗｅｉｇｈｔ  ｖａｌｕｅ」は、単位パーセプトロン１０２の振る舞いのうち、それぞれのインプットに適用される重み値を特定するパラメータである。
【００３０】
「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」は、単位パーセプトロン１０２の振る舞い委のうち、結果として得られる出力を入力する次のパーセプトロンを指定するパラメータ、即ち、次段パーセプトロン識別子である。図５に示す情報がＡＮＮを構成するすべてのパーセプトロンについて記述されることにより、図１に示すようなＡＮＮの構成が記述される。図５においては「Ｂｉａｓ  Ｖａｌｕｅ」は単体で示されているが、システムの構成によっては、それぞれの「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」ごとに個別に指定される場合もあり得る。
【００３１】
図６は、１つ分のバケットの内容を示す図である。処理の実行に際して、処理すべき情報を含むバケットが処理対象データ１０４としてＨＤＤ４０に格納され、処理の段階に応じて処理対象バケット１０３として作業領域２０ａにロードされる。図６に示すように、１つ分のバケットは、「Ｈｅａｄｅｒ」、「ＤＡＴＡ」および「ＴＡＧ」の情報を含む。
【００３２】
「Ｈｅａｄｅｒ」は、それぞれのバケットにおいて不変の情報であり、「Ｏｗｎｅｒ」、「Ｐｒｉｏｒｉｔｙ」、「ＡＮＮ  ＩＤ」、「Ｇｒｏｕｐ  ＩＤ」の情報を含む。「Ｏｗｎｅｒ」は、タスクオーナーを識別する情報である。
【００３３】
「Ｐｒｉｏｒｉｔｙ」は、処理の優先度を示す情報である。プロセスマネージャー１０１が、ＨＤ４０から処理対象バケット１０３として読み出すべきバケットを選択する際に参照する情報の１つとして「Ｐｒｉｏｒｉｔｙ」が参照される。
【００３４】
「ＡＮＮ  ＩＤ」は、そのバケットが処理されるＡＮＮを特定するための識別子であり、図５において説明した「ＡＮＮ  ＩＤ」に対応している。「Ｇｒｏｕｐ  ＩＤ」は、同時に処理されるべきバケットのグループを特定する情報である。ＡＮＮの構成によっては、１つのパーセプトロンへの入力として複数のバケットに記述された情報が用いられる場合もあり得る。「Ｇｒｏｕｐ  ＩＤ」は、そのようなバケットのグループを特定するための情報、即ちグループ識別子として用いられる。
【００３５】
「ＤＡＴＡ」は、それぞれのバケットにおいて処理される対象のデータであり、「Ｖａｌｕｅ  １」、「Ｖａｌｕｅ  ２」、・・・「Ｖａｌｕｅ  ｎ」のように、ｉｎｐｕｔとして用いられる値、即ち入力情報が記述されている。また、それぞれのパーセプトロンによる振る舞いに応じて、処理の結果の出力値が新たな「Ｖａｌｕｅ」として記述される。
【００３６】
「ＴＡＧ」は、それぞれのパーセプトロンによって処理が行われた後に付与される情報であり、「ＳＴＥＰ  ＮＯ」、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」および「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」の情報を含む。「ＳＴＥＰ  ＮＯ」は、処理を行った回数を示す情報であり、それぞれのパーセプトロンによって処理が行われる度に値がインクリメントされる。
【００３７】
「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」は、あるパーセプトロンによって処理された後、次に処理されるパーセプトロンを特定するための識別子である。バケット内の「ＴＡＧ」における「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」は、パーセプトロンによる処理の結果に応じて、図５において説明した「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」に基づき記述される。
【００３８】
「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」は、処理を行ったパーセプトロンの履歴が記述される情報である。本実施形態に係る「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」は、図５において説明した「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」及びそれぞれのパーセプトロンにおける処理の結果を示す情報が処理の順番に記述された情報である。
【００３９】
図７は、「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」の記述態様の例を示す図である。図７に示すように、本実施形態に係る「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」においては、「ｃｌａｓｓ  １」、「ｃｌａｓｓ  ２」、「ｃｌａｓｓ  ３」、・・・「ｃｌａｓｓ  ｎ」、のように、記述されている。ここでいうｃｌａｓｓとは、ＡＮＮにおけるパーセプトロンの階層を示す値である。つまり、本実施形態に係る「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」においては、パーセプトロンの処理履歴が階層別に記述されている。
【００４０】
次に、本実施形態に係るＡＮＮシステムの動作及び情報の流れについて、図８および図９を参照して説明する。図８は、本実施形態に係るＡＮＮシステムの動作を示すフローチャートである。また、図９は、１つ分のパーセプトロンに対する処理対象バケット１０３及びＡＮＮ設定情報１０５の情報の流れを示す情報である。
【００４１】
図８に示すように、本実施形態に係るＡＮＮシステムが動作を開始する際、まずはプロセスマネージャー１０１がＨＤＤ４０の処理対象データ１０４から処理対象のバケットを取得し、作業領域２０ａに処理対象バケット１０３としてロードする（Ｓ８０１）。これにより、図９下部に示すバケットが特定されて設定される。即ち、Ｓ８０１においてはプロセスマネージャー１０１が、処理対象バケット取得部として機能する。
【００４２】
処理対象バケット１０３がロードされると、プロセスマネージャー１０１は、ロードされた処理対象バケット１０３の「Ｈｅａｄｅｒ」に記述された「ＡＮＮ  ＩＤ」及び「ＴＡＧ」に記述された「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」を参照し、それにより特定されるＡＮＮ設定情報１０５をＨＤＤ４０から読み出す（Ｓ８０２）。これにより、図９上部に示すＡＮＮ設定情報が特定されて設定される。即ち、Ｓ８０２においては、プロセスマネージャー１０１が設定情報取得部として機能する。
【００４３】
Ｓ８０２の処理によりＡＮＮ設定情報１０５が取得されることにより、図９に示すようにＡＮＮ設定情報１０５に記述されている「Ｂｉａｓ  Ｖａｌｕｅ」及び「ｗｅｉｇｈｔ  ｖａｌｕｅ」が単位パーセプトロン１０２の振る舞いを特定するためのパラメータとして用いられる。これにより、単位パーセプトロン１０２が、「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」に記述された情報に応じて振る舞う事となる。
【００４４】
ＡＮＮ設定情報を取得して単位パーセプトロン１０２の振る舞いを設定したのち、プロセスマネージャー１０１は、単位パーセプトロン１０２に対して処理の実行命令を行う（Ｓ８０３）。即ち、Ｓ８０３においてはプロセスマネージャー１０１が実行制御部として機能する。これにより、図９に示すように、処理対象バケット１０３の「ＤＡＴＡ」に記述された「Ｖａｌｕｅ  １」、「Ｖａｌｕｅ  ２」、・・・「Ｖａｌｕｅ  ｎ」がインプットとして単位パーセプトロン１０２に入力され、「ｗｅｉｇｈｔ  ｖａｌｕｅ」に応じた重みづけの上で「Ｂｉａｓ  Ｖａｌｕｅ」に応じた閾値判断が行われる。
【００４５】
単位パーセプトロン１０２による処理が完了すると、プロセスマネージャー１０１は、データ更新を行う（Ｓ８０４）。Ｓ８０４においては、ｏｕｔｐｕｔの値の「ＤＡＴＡ」への追記および「ＴＡＧ」の更新が行われる。即ち、Ｓ８０４においてはプロセスマネージャー１０１が処理結果更新部として機能する。
【００４６】
ｏｕｔｐｕｔの値の「ＤＡＴＡ」への追記処理は、図９に示すように、単位パーセプトロン１０２の閾値判断の結果、すなわちｏｕｔｐｕｔの値がバケットの「ＤＡＴＡ」のＶａｌｕｅの新たな値として記述される処理である。ここで、ｏｕｔｐｕｔの値の追記処理は、作業領域２０ａにロードされた処理対象バケット１０３およびＨＤＤ４０に記憶されている処理対象データ１０４の両方に対して行ってもよいし、ＨＤＤ４０に記憶されている処理対象データ１０４に対してのみ行ってもよい。
【００４７】
また、「ＴＡＧ」の更新処理においては、「ＳＴＥＰ  ＮＯ」、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」、「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」がそれぞれ更新される。「ＳＴＥＰ  ＮＯ」は単純にインクリメントされることによって更新される。「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」は、単位パーセプトロン１０２の処理の結果に応じたｏｕｔｐｕｔに基づき、参照中のＡＮＮ設定情報１０５における「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」が参照されて更新される。
【００４８】
「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」は、参照中のＡＮＮ設定情報１０５における「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」及び閾値判断の結果に基づいて更新される。参照中のＡＮＮ設定情報１０５が、処理の終点に対応したパーセプトロンの振る舞いを記述するものであった場合、ＡＮＮ設定情報１０５内にその旨の情報が記述されている。その情報は、例えば「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」に記述することができるが、他の情報でも良い。
【００４９】
プロセスマネージャー１０１は、ＡＮＮの終了を記述する情報に基づいてＡＮＮが終了したか否か判断する（Ｓ８０５）。その結果、ＡＮＮの終点でなければ（Ｓ８０５／ＮＯ）、プロセスマネージャー１０１は、再度ＨＤ４０の処理対象データ１０４から処理対象バケット１０３となる情報を読み出し、Ｓ８０１からの処理を繰り返す。
【００５０】
他方、ＡＮＮが終了であれば（Ｓ８０５／ＹＥＳ）、プロセスマネージャー１０１は、ＡＮＮ処理を終了する。これにより、あるＡＮＮによって処理された結果の情報が処理対象データ１０４に記述されることとなる。このような処理により、本実施形態に係るＡＮＮシステムの処理が完了する。
【００５１】
このように、ＡＮＮ設定情報１０５によってＡＮＮの構造を記述し、ＡＮＮを構成するそれぞれのパーセプトロンにおいて処理される情報として図６に示すようなデータ構造を用いることにより、膨大な数のパーセプトロンに応じたプログラムを予め構築することなく、単一のパーセプトロンの振る舞いを変えながら処理を繰り返すことによって、膨大な数のパーセプトロンによって構成されるＡＮＮと同一の処理結果を得る事が可能となる。従って、小規模なハードウェアでも実現可能な人工ニューラルネットワークを提供することができる。
【００５２】
次に、ＡＮＮにおいて経路が分岐する場合のバケットへの情報の記述態様及び処理の詳細について説明する。図１０は、処理の分岐の例を示す図である。図１０の例においては、まずＰＴ００１のパーセプトロンによる処理が実行され、その処理結果がＰＴ００２およびＰＴ００３双方に入力されるように分岐し、ＰＴ００２およびＰＴ００３の処理結果がＰＴ００４への入力として用いられる。
【００５３】
図１１は、ＰＴ００１のＡＮＮ設定情報を示す図である。図１１に示すように、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」としてＰＴ００２およびＰＴ００３が指定されている。図１２は、図１１に示すＡＮＮ設定情報がパラメータとして設定された単位パーセプトロン１０２、すなわち、図１０に示すＰＴ００１によって処理された後のバケットの内容を示す図である。
【００５４】
図１２に示すように、ＰＴ００１の２つのｏｕｔｐｕｔが「ＰＴ００１  ｏｕｔ１」、「ＰＴ００２  ｏｕｔ」として追記されると共に、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」として「ＰＴ００２」、「ＰＴ００３」が指定されている。これにより、次は「ＰＴ００２」によって処理されることとなる。また、「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」として、「ｃｌａｓｓ  １：ＰＴ００１」が記述されている。ＰＴ００２においては、図１２に示す「ＤＡＴＡ」のうち、「ＰＴ００１  ｏｕｔ１」が用いられることとなる。
【００５５】
図１３は、図１０のＡＮＮにおいてＰＴ００１の次にＰＴ００２によって処理された後のバケットの内容を示す図である。図１２に示す状態に加えて、「ＰＴ００２  ｏｕｔ」が追記されると共に、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」として「ＰＴ００２」が消去されて「ＰＴ００３」が繰り上がると共に新たに「ＰＴ００４」が記述されている。これにより、次は「ＰＴ００３」によって処理されることとなる。また、「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」として、「ｃｌａｓｓ  ２：ＰＴ００２」が追記されている。
【００５６】
図１４は、図１０のＡＮＮにおいてＰＴ００２の次にＰＴ００３によって処理された後のバケットの内容を示す図である。図１３に示す状態に加えて、「ＰＴ００３  ｏｕｔ」が追記されると共に、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」として「ＰＴ００３」が消去されて「ＰＴ００４」が繰り上がっている。これにより、次は「ＰＴ００４」によって処理されることとなる。また、「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」として、「ｃｌａｓｓ  ２：ＰＴ００３」が追記されている。
【００５７】
図１４に示すようなバケットがＰＴ００４によって処理される際には、「ＤＡＴＡ」に記述された「ＰＴ００２  ｏｕｔ」および「ＰＴ００３  ｏｕｔ」が用いられる。これにより、ＰＴ００２の出力及びＰＴ００３の出力がＰＴ００４によって処理されることとなる。
【００５８】
次に、バケットの「Ｈｅａｄｅｒ」に記述された「Ｇｒｏｕｐ  ＩＤ」が用いられる場合の処理について説明する。図１５は、「Ｇｒｏｕｐ  ＩＤ」が用いられる場合の例として、異なるバケットが異なるパーセプトロンによって処理され、それぞれの処理結果が１つのパーセプトロンによって処理される場合のＡＮＮを示す図である。
【００５９】
図１６は、図１５のＰＴ００１によって処理されるバケットの記述を示す図である。図１６に示すように、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」として「ＰＴ００１」が指定されているともに、「Ｇｒｏｕｐ  ＩＤ」として「Ｇｒ００１」が指定されている。
【００６０】
図１７は、図１６に示すバケットが図１５に示すＰＴ００１によって処理された後のバケットの内容を示す図である。図１７に示すように、「ＤＡＴＡ」として「ＰＴ００１  ｏｕｔ」が追記されると共に、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」として「ＰＴ００３」が指定されている。また、「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」として「ｃｌａｓｓ１：ＰＴ００１」が追記されている。
【００６１】
図１８は、図１５のＰＴ００２によって処理されるバケットの記述を示す図である。図１８に示すように、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」として「ＰＴ００２」が指定されているともに、「Ｇｒｏｕｐ  ＩＤ」として図１６と同様に「Ｇｒ００１」が指定されている。
【００６２】
図１９は、図１８に示すバケットが図１５に示すＰＴ００２によって処理された後のバケットの内容を示す図である。図１９に示すように、「ＤＡＴＡ」として「ＰＴ００２  ｏｕｔ」が追記されると共に、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」として「ＰＴ００３」が指定されている。また、「Ｐｅｒｃｅｐｔｒｏｎ  Ｈｉｓｔｏｒｙ」として「ｃｌａｓｓ１：ＰＴ００２」が追記されている。
【００６３】
このようにして図１７および図１９に示すバケットが処理対象データ１０４としてＨＤＤ４０に格納されることとなる。プロセスマネージャー１０１は、「Ｇｒｏｕｐ  ＩＤ」が指定されているバケットを読み出す際、「Ｎｅｘｔ  Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」が同一のバケットがある場合にはそれらをすべて処理対象バケット１０３として読み出す。これにより、異なる複数のバケットの情報が単一のパーセプトロンによって処理されることとなる。
【００６４】
従来のＡＮＮの場合、膨大な数のパーセプトロンが組み合わされて構成されたＡＮＮのプログラムが用意され、その中でそれぞれのパーセプトロンの処理結果に応じた経路で処理が実行されることとなる。即ち、膨大な数のパーセプトロンのうち、処理過程に応じた経路外のパーセプトロンは処理が行われないが、プログラムとしてはメモリ上にロードされるため、メモリ空間の浪費となる。
【００６５】
図２０は、そのような状態を例示する図である。図２０の例においては、ＡＮＮに入力されたＤＡＴＡがパーセプトロンにおいて処理された結果、太線で示された上側の経路のみが計算される。従って、太線で示された経路以外のパーセプトロンを構成するためのプログラムがロードされたメモリ領域は無駄な領域となる。
【００６６】
これに対して、本実施形態に係るＡＮＮシステムによれば、処理経路に応じたパーセプトロンがＡＮＮ設定情報１０５によって構成されて処理が実行されるため、従来のようなメモリ空間の非効率な利用も解決する事が可能である。図２１はそのような効果を概念的に示すである。図２１の例においては、図２０と同様のＡＮＮにおいて、図２０と同様の経路のみが計算される場合を示す。
【００６７】
本実施形態に係るＡＮＮシステムにおいては、ＡＮＮの構成はＡＮＮ設定情報として保存されており、ＡＮＮを構成するパーセプトロンに対応するプログラムがすべてメモリ上にロードされるわけではない。そのため、図２１に破線で示す経路及びパーセプトロンに対応するメモリ領域を削減することができる。
【００６８】
尚、本実施形態においては、図４に示す単位パーセプトロン１０２がプログラムによって実現される場合を例として説明したが、例えば単位パーセプトロン１０２をＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の専用のハードウェア回路によって実現する場合であっても、同様に効果を得る事が可能である。即ち、本実施形態を適用することにより、単位パーセプトロン１０２の１つ分のＡＳＩＣがあれば実現可能であり、ＡＮＮを構成する膨大な数のパーセプトロンに対応したＡＳＩＣを用意する必要がないため、ハードウェア規模を削減することが可能となる。
【００６９】
実施の形態２．
次に、ＡＮＮ設定情報およびバケットを用いた本実施形態に係るＡＮＮのアーキテクチャを用いて、分散処理を行う態様について説明する。尚、実施の形態１と同様の符号を付す構成については同一、または相当部を示すものとし、詳細な説明を省略する。本実施形態に係るＡＮＮシステムにおいては、図４において説明したＡＮＮシステムのうち、プロセスマネージャー１０１およびＨＤＤ４０に相当する部分をコントロールサーバー１が担い、作業領域２０ａにロードされたプログラムやデータに相当する部分をＡＮＮクライアント２が担う。ＡＮＮクライアント２は、ＰＣやスマートホンなどの一般的な情報処理装置によって実現される。
【００７０】
図２２は、本実施形態に係るＡＮＮシステムの全体構成を示すブロック図である。本実施形態に係るＡＮＮシステムは分散処理を実現するシステムであり、コントロールサーバー１及びＡＮＮクライアント２がネットワークを介して接続されて構成される。図２２においてはＡＮＮクライアント２を１つのみ示しているが、複数のＡＮＮクライアント２がシステムを構成する。
【００７１】
図２２に示すように、コントロールサーバー１は、プロセスマネージャー１０１およびＨＤＤ４０を含む。それぞれの機能は概ね実施の形態１と同様であるが、本実施形態に係るプロセスマネージャー１０１は、ネットワークを介してＡＮＮクライアント２に情報を送信すると共にＡＮＮクライアント２から情報を受け取る機能を有する。
【００７２】
また、本実施形態に係るＨＤＤ４０は実施の形態１において説明した情報に加えて、クライアントリスト１０６を記憶している。クライアントリスト１０６は、ネットワークを介して通信可能なＡＮＮクライアント２のリストの情報であり、識別子やネットワークアドレスの情報などを含む。
【００７３】
ＡＮＮクライアント２は、クライアントマネージャー２０１および作業領域２０ａにロードされたプログラムによって構成される単位パーセプトロン１０２、処理対象バケット１０３及びクライアント用ＡＮＮ設定情報１０６を含む。クライアントマネージャー２０１は、ＡＮＮクライアント２側においてプロセスマネージャー１０１に準ずる機能を担う。
【００７４】
単位パーセプトロン１０２および処理対象バケット１０３は実施の形態１と同様である。クライアント用ＡＮＮ設定情報１０５ａは、コントロールサーバー１においてＨＤＤ４０に記憶されているＡＮＮ設定情報１０５から複製されてＡＮＮクライアント２側において記憶されたＡＮＮ設定情報であり、内容は図５において説明したものと同一である。
【００７５】
次に、図２３を参照して本実施形態に係る分散型のＡＮＮシステムの動作について説明する。図２３に示すように、まずはＡＮクライアント２においてクライアントソフトが起動する（Ｓ２３０１）。ここでいうクライアントソフトとは、図２２において説明したＡＮＮクライアント２の機能を実現するためのソフトウエアプログラムであり、クライアントマネージャー２０１および単位パーセプトロン１０２の機能を実現するためのプログラムである。処理対象バケット１０３及びクライアント用ＡＮＮ設定情報１０５ａは、動作の過程でコントロールサーバー１から受信する。
【００７６】
クライアントソフトが起動すると、クライアントマネージャー２０１は、ネットワークを介してコントロールサーバー１に対してクライアント登録申請を行う（Ｓ２３０２）。ＡＮＮクライアント２からクライアント登録申請を受けると、コントロールサーバー１においては、プロセスマネージャー１０１がクライアントリスト１０６に登録を行う（Ｓ２３０３）。これにより、コントロールサーバー１がＡＮＮによる処理を実行する際に処理を分散する先のＡＮＮクライアントとして、登録されることとなる。即ち、Ｓ２３０３においてはプロセスマネージャー１０１がクライアント登録部として機能する。
【００７７】
クライアントリスト１０６を登録すると、プロセスマネージャー１０１は、登録したＡＮＮクライアント２に対してＡＮＮ設定情報を送信する（Ｓ２３０４）。即ち、Ｓ２３０４においては、プロセスマネージャー１０１が設定情報送信部として機能する。これにより、ＡＮＮクライアント２において、クライアントマネージャー２０１が、クライアント用ＡＮＮ設定情報１０５ａを保存する（Ｓ２３０５）。
【００７８】
Ｓ２３０４において送信されるＡＮＮ設定情報１０５は、コントロールサーバー１が記憶しているすべてのＡＮＮ設定情報であってもよいし、図５において説明した「ＡＮＮ  ＩＤ」によって特定された一部のＡＮＮ設定情報であってもよい。特定のＡＮＮ設定情報のみを送信する場合、例えばＳ２３０２においてクライアント登録申請を受けた際に、コントロールサーバー１のプロセスマネージャー１０１が、分散処理を割り当てるＡＮＮ  ＩＤを決定し、クライアントリスト１０６のへの登録の際にＡＮＮクライアント２の識別子とＡＮＮ  ＩＤとを関連付けて保存する。これにより、プロセスマネージャー１０１は、Ｓ２３０４において特定のＡＮＮ  ＩＤに関してのＡＮＮ設定情報のみを送信することができる。
【００７９】
このようにしてＡＮＮクライアント２において分散処理を受け付けるための準備が完了した後に、コントロールサーバー１側においてＡＮＮの処理が発生すると、プロセスマネージャー１０１は、実施の形態１の図８におけるＳ８０１と同様に、処理対象データ１０４から処理対象バケット１０３としてセットするためのバケットを取得し、ネットワークを介してＡＮＮクライアント２に送信する（Ｓ２３０６）。
【００８０】
バケットを受信したＡＮＮクライアント２においては、クライアントマネージャー２０１が作業領域２０ａに処理対象バケット１０３をセットする（Ｓ２３０７）。そして、クライアントマネージャー２０１は、図８のＳ８０２と同様に、処理対象バケット１０３に記述された「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」に基づいてＡＮＮ設定情報を取得する（Ｓ２３０８）。そして、クライアントマネージャー２０１が、図８のＳ８０３と同様に単位パーセプトロン１０２に対して処理の実行命令を行う（Ｓ２３０９）。
【００８１】
これにより、図９において説明したように、処理対象バケット１０３の「ＤＡＴＡ」に記述された「Ｖａｌｕｅ  １」、「Ｖａｌｕｅ  ２」、・・・「Ｖａｌｕｅ  ｎ」がインプットとして単位パーセプトロン１０２に入力され、「ｗｅｉｇｈｔ  ｖａｌｕｅ」に応じた重みづけの上で「Ｂｉａｓ  Ｖａｌｕｅ」に応じた閾値判断が行われる。
【００８２】
単位パーセプトロン１０２による処理が完了すると、クライアントマネージャー２０１は、図８のＳ８０４と同様にデータ更新を行う（Ｓ２３１０）。Ｓ２３１０のデータ更新処理においてクライアントマネージャー２０１は、作業領域２０ａに記憶されている処理対象バケット１０３に対してデータの更新処理を行う。
【００８３】
データ更新処理が完了すると、クライアントマネージャー２０１は、Ｓ２３０６の通信に対する返信処理として、更新後のバケットをコントロールサーバー１に対して返信する（Ｓ２３１１）。即ち、Ｓ２３１１においてクライアントマネージャー２０１が処理結果送信部として機能する。これにより、コントロールサーバー１においては、プロセスマネージャー１０１が返信されたバケットを受信し、処理対象データ１０４に保存されているバケットのうち対応するバケットの情報を更新する（Ｓ２３１２）。Ｓ２３０６〜Ｓ２３１２までの処理が繰り返されることにより、分散処理によるＡＮＮシステムが実現される。
【００８４】
本実施形態に係る分散型のＡＮＮシステムにおいては、バケットのやり取りのみで処理が完了する。バケットの内容は図６において説明したようなものであり、情報量は限られたものである。従って、パケット通信における通信パケットに入れ込んで通信を行うだけで分散型のＡＮＮを実現することが可能である。
【００８５】
以上説明したように、本実施形態においては、実施の形態１において説明したＡＮＮシステムを応用することによって容易に分散型のＡＮＮシステムを実現することが可能である。
【００８６】
尚、本実施形態においては、図２３のＳ２３０４、Ｓ２３０５において説明したように、ＡＮＮクライアント２が分散処理を請け負うクライアントとしてシステムに参加する際にＡＮＮ設定情報を取得する場合を例として説明した。これにより、Ｓ２３０６〜Ｓ２３１２までの処理を繰り返す際には、バケットのやり取りのみで処理を繰り返し実行することが可能である。
【００８７】
しかしながらこれは一例であり、例えばプロセスマネージャー１０１がＳ２３０６においてバケットを送信する際、送信対象のバケットに記述された「Ｐｅｒｃｅｐｔｒｏｎ  ＩＤ」によって特定されるＡＮＮ設定情報を付加してもしくは別途送信してもよい。これにより、ＡＮＮクライアント２に送信されるＡＮＮ設定情報は、処理対象バケット１０３を処理するためのＡＮＮ設定情報のみとなり、通信量を削減することができる。
【符号の説明】
【００８８】
１  コントロールサーバー
２  ＡＮＮクライアント
１０  ＣＰＵ
２０  ＲＡＭ
２０ａ  作業領域
３０  ＲＯＭ
４０  ＨＤＤ
５０  Ｉ／Ｆ
６０  専用デバイス
７０  バス
１０１  プロセスマネージャー
１０２  単位パーセプトロン
１０３  処理対象バケット
１０４  処理対象データ
１０５  ＡＮＮ設定情報
１０５ａ  クライアント用ＡＮＮ設定情報
１０６  クライアントリスト
２０１  クライアントマネージャー
【図１】
2018135002.tif 000003
【図２】
2018135002.tif 000004
【図３】
2018135002.tif 000005
【図４】
2018135002.tif 000006
【図５】
2018135002.tif 000007
【図６】
2018135002.tif 000008
【図７】
2018135002.tif 000009
【図８】
2018135002.tif 000010
【図９】
2018135002.tif 000011
【図１０】
2018135002.tif 000012
【図１１】
2018135002.tif 000013
【図１２】
2018135002.tif 000014
【図１３】
2018135002.tif 000015
【図１４】
2018135002.tif 000016
【図１５】
2018135002.tif 000017
【図１６】
2018135002.tif 000018
【図１７】
2018135002.tif 000019
【図１８】
2018135002.tif 000020
【図１９】
2018135002.tif 000021
【図２０】
2018135002.tif 000022
【図２１】
2018135002.tif 000023
【図２２】
2018135002.tif 000024
【図２３】
2018135002.tif 000025
【国際調査報告】
2018135002.tif 000026
2018135002.tif 000027
2018135002.tif 000028
2018135002.tif 000029