(57)【要約】  処理システムは、ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを処理する処理システムであって、複数の人工ニューロンの各人工ニューロンに対して制御対象の状態を定義した定義情報を格納する格納部と、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される１以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いて処理する処理部と、複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる前記少なくとも一部の人工ニューロンの活性状態と、前記少なくとも一部の人工ニューロンに定義されている状態とに基づいて、前記制御対象の動作を決定する動作決定部とを備える。
2016166881.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを処理する処理システムであって、
前記複数の人工ニューロンの各人工ニューロンに対して制御対象の状態を定義した定義情報を格納する格納部と、
前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される１以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いて処理する処理部と、
前記複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる前記少なくとも一部の人工ニューロンの活性状態と、前記少なくとも一部の人工ニューロンに定義されている状態とに基づいて、前記制御対象の動作を決定する動作決定部と
を備える処理システム。
【請求項２】
前記処理部による処理は、前記複数の人工ニューロン及び前記人工シナプスのパラメータの値を人工ニューロン毎に更新すること、前記複数の人工ニューロン及び前記人工シナプスのパラメータの現在の値を人工ニューロン毎に一括的にユーザに提示すること、及び、前記複数の人工ニューロン及び前記人工シナプスのパラメータの値を人工ニューロン毎に一括的にユーザに提示してユーザからパラメータの値の入力を受け付けることを含む
請求項１に記載の処理システム。
【請求項３】
前記処理部は、
前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を、テーブルの複数の行に前記複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示し、
前記提示されたパラメータの値を変更するための前記テーブルに対するユーザ入力を受け付ける
請求項１又は２に記載の処理システム。
【請求項４】
前記処理部は、
前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値に一括的なデータ単位でアクセス可能なデータ構造を生成し、
前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値に、前記データ構造を通じて前記複数の人工ニューロンに人工ニューロン毎にアクセスして、前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を時間的に更新する
請求項１から３のいずれか１項に記載の処理システム。
【請求項５】
前記処理部は、
前記時間的に更新される前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を、テーブルの複数の行に前記複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示する
請求項４に記載の処理システム。
【請求項６】
前記人工ニューロンのパラメータは、閾値、活性状態、最後に活性化した時刻、出力、最後に活性化した時刻における出力、及び活性化時の出力の時間発展を定めるパラメータの少なくとも１つを含み、
前記人工シナプスのパラメータは、接続された人工ニューロンへの結合係数、前記人工シナプスが結びつけている２つの人工ニューロンが最後に同時に活性化した時刻である同時活性化時刻、当該同時活性化時刻における結合係数、及び同時の活性化が生じた後の結合係数の時間発展を定めるパラメータの少なくとも１つと、前記人工シナプスの識別情報とを含む
請求項１から５のいずれか１項に記載の処理システム。
【請求項７】
前記複数の人工ニューロンには、内分泌物質の発生状態が定義された人工ニューロンである内分泌人工ニューロンが含まれ、
前記格納部は、前記内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータに、前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方が与える影響を定めた影響定義情報を更に格納し、
前記処理部は、前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方と、前記影響定義情報とに基づいて、前記内分泌人工ニューロンに人工シナプスで直接接続されていない前記他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータを更新する
請求項１から６のいずれか１項に記載の処理システム。
【請求項８】
前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える前記他の人工ニューロンのパラメータは、前記他の人工ニューロンの閾値、活性状態、及び、活性化時の出力の時間発展を定めるパラメータの少なくとも１つを含み、
前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える人工シナプスのパラメータは、当該人工シナプスの結合係数、及び、当該人工シナプスが結びつけている２つの人工ニューロンが最後に同時に活性化した後の結合係数の時間発展を定めるパラメータの少なくとも１つを含む
請求項７に記載の処理システム。
【請求項９】
前記複数の人工ニューロンには、前記制御対象の現在の感情が定義された人工ニューロンである感情人工ニューロンを更に含み、
前記影響定義情報は、報酬系に関連づけられた内分泌人工ニューロンの活性状態が前記感情人工ニューロンの閾値に与える影響を定めた情報を含み、
前記処理部は、前記内分泌人工ニューロンが活性化した場合に、前記影響定義情報に従って、前記感情人工ニューロンの閾値を更新する
請求項７又は８に記載の処理システム。
【請求項１０】
前記処理部は、前記複数の人工ニューロンのうちの一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新する
請求項１から９のいずれか１項に記載の処理システム。
【請求項１１】
前記処理部は、前記処理システムにおいて演算に利用可能なリソース量が予め定められた値より小さい場合に、前記一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新する
請求項１０に記載の処理システム。
【請求項１２】
前記複数の人工ニューロンには、優先順位が予め割り当てられており、
前記処理部は、前記複数の人工ニューロンの中から、前記処理システムにおいて演算に利用可能なリソース量の範囲内でパラメータを更新可能な一部の人工ニューロンを前記優先順位に従って選択し、選択した前記一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新する
請求項１０又は１１に記載の処理システム。
【請求項１３】
前記ニューラルネットワークは、前記制御対象の状態が定義されていない人工ニューロンである非定義人工ニューロンを１以上含み、
前記処理部は、報酬系に関連づけられた内分泌人工ニューロンが活性化した場合に、前記非定義人工ニューロンのうち、当該内分泌人工ニューロン及び当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンを接続する１以上の非定義人工ニューロンに接続された人工シナプスの結合係数を高める
請求項１から１２のいずれか１項に記載に記載の処理システム。
【請求項１４】
前記処理部は、前記報酬系に関連づけられた内分泌人工ニューロンと当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンとの間を接続するルートのうち、前記非定義人工ニューロンに接続された人工シナプスの結合係数を考慮した人工ニューロン間の距離がより近いルートをより優先して選択して、選択したルートを提供する非定義人工ニューロンに接続された人工シナプスの結合係数を高める
請求項１３に記載の処理システム。
【請求項１５】
コンピュータを、請求項１から１４のいずれか１項に記載の処理システムとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理システム及びプログラムに関する。
【背景技術】
【０００２】
ユーザ情報、機器情報及び自身の現在の感情状態を入力して次回の感情状態を出力するニューラルネットを備える感情生成装置が知られている（例えば、特許文献１参照）。また、方向性人工シナプス接続性を有するレイヤ・ニューラルネット関係を有する複数の電子ニューロンを含む連想メモリに時空パターンを記憶する技術が知られている（例えば、特許文献２参照）。
［先行技術文献］
［特許文献］
［特許文献１］特開平１０−２５４５９２号公報
［特許文献２］特表２０１３−５３５０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ニューラルネットワークを構成する個々の人工ニューロン及び人工シナプスのパラメータを効率的に処理することができないという課題があった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを処理する処理システムであって、複数の人工ニューロンの各人工ニューロンに対して制御対象の状態を定義した定義情報を格納する格納部と、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される１以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いて処理する処理部と、
複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる少なくとも一部の人工ニューロンの活性状態と、少なくとも一部の人工ニューロンに定義されている状態とに基づいて、制御対象の動作を決定する動作決定部とを備える処理システムが提供される。【０００５】
処理部による処理は、複数の人工ニューロン及び人工シナプスのパラメータの値を人工ニューロン毎に更新すること、複数の人工ニューロン及び人工シナプスのパラメータの現在の値を人工ニューロン毎に一括的にユーザに提示すること、及び、複数の人工ニューロン及び人工シナプスのパラメータの値を人工ニューロン毎に一括的にユーザに提示してユーザからパラメータの値の入力を受け付けることを含んでよい。【０００６】
処理部は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示してよく、提示されたパラメータの値を変更するためのテーブルに対するユーザ入力を受け付けてよい。【０００７】
処理部は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値に一括的なデータ単位でアクセス可能なデータ構造を生成してよく、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値に、データ構造を通じて複数の人工ニューロンに人工ニューロン毎にアクセスして、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を時間的に更新してよい。【０００８】
処理部は、時間的に更新される複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示してよい。【０００９】
人工ニューロンのパラメータは、閾値、活性状態、最後に活性化した時刻、出力、最後に活性化した時刻における出力、及び活性化時の出力の時間発展を定めるパラメータの少なくとも１つを含んでよく、人工シナプスのパラメータは、接続された人工ニューロンへの結合係数、人工シナプスが結びつけている２つの人工ニューロンが最後に同時に活性化した時刻である同時活性化時刻、当該同時活性化時刻における結合係数、及び同時の活性化が生じた後の結合係数の時間発展を定めるパラメータの少なくとも１つと、人工シナプスの識別情報とを含んでよい。【００１０】
複数の人工ニューロンには、内分泌物質の発生状態が定義された人工ニューロンである内分泌人工ニューロンが含まれてよく、格納部は、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータに、内分泌人工ニューロンの出力及び活性状態の少なくとも一方が与える影響を定めた影響定義情報を更に格納してよく、処理部は、内分泌人工ニューロンの出力及び活性状態の少なくとも一方と、影響定義情報とに基づいて、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータを更新してよい。【００１１】
内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える他の人工ニューロンのパラメータは、他の人工ニューロンの閾値、活性状態、及び、活性化時の出力の時間発展を定めるパラメータの少なくとも１つを含んでよく、内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える人工シナプスのパラメータは、当該人工シナプスの結合係数、及び、当該人工シナプスが結びつけている２つの人工ニューロンが最後に同時に活性化した後の結合係数の時間発展を定めるパラメータの少なくとも１つを含んでよい。【００１２】
複数の人工ニューロンには、制御対象の現在の感情が定義された人工ニューロンである感情人工ニューロンを更に含んでよく、影響定義情報は、報酬系に関連づけられた内分泌人工ニューロンの活性状態が感情人工ニューロンの閾値に与える影響を定めた情報を含んでよく、処理部は、内分泌人工ニューロンが活性化した場合に、影響定義情報に従って、感情人工ニューロンの閾値を更新してよい。【００１３】
処理部は、複数の人工ニューロンのうちの一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新してよい。【００１４】
処理部は、処理システムにおいて演算に利用可能なリソース量が予め定められた値より小さい場合に、一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新してよい。【００１５】
複数の人工ニューロンには、優先順位が予め割り当てられていてよく、処理部は、複数の人工ニューロンの中から、処理システムにおいて演算に利用可能なリソース量の範囲内でパラメータを更新可能な一部の人工ニューロンを優先順位に従って選択してよく、選択した一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新してよい。【００１６】
ニューラルネットワークは、制御対象の状態が定義されていない人工ニューロンである非定義人工ニューロンを１以上含んでよく、処理部は、報酬系に関連づけられた内分泌人工ニューロンが活性化した場合に、非定義人工ニューロンのうち、当該内分泌人工ニューロン及び当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンを接続する１以上の非定義人工ニューロンに接続された人工シナプスの結合係数を高めてよい。【００１７】
処理部は、報酬系に関連づけられた内分泌人工ニューロンと当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンとの間を接続するルートのうち、非定義人工ニューロンに接続された人工シナプスの結合係数を考慮した人工ニューロン間の距離がより近いルートをより優先して選択してよく、選択したルートを提供する非定義人工ニューロンに接続された人工シナプスの結合係数を高めてよい。【００１８】
本発明の第２の態様によれば、コンピュータを、上記処理システムとして機能させるためのプログラムが提供される。【００１９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るシステム２０の一例を概略的に示す。
【図２】サーバ２００、ユーザ端末１００及びロボット４０のブロック構成を概略的に示す。
【図３】ニューラルネットワーク３００を概略的に示す。
【図４】ユーザ端末１００に表示されるパラメータ編集画面を概略的に示す。
【図５】ロボット４０が起動又はリセットされた場合のサーバ２００の動作フローを概略的に示す。
【図６】人工シナプスの結合係数の計算を概略的に説明する図である。
【図７】結合係数の増減パラメータとして関数ｈｔｉｊが定義されている場合の結合係数の時間発展を概略的に示す。
【図８】時刻ｔ２で更に同時発火した場合の結合係数の時間発展を概略的に示す。
【図９】結合係数の増減関数の他の例を概略的に示す。
【図１０】パラメータに与えられる化学的影響を定義する影響定義情報を概略的に示す。
【図１１】出力及びステータスを計算するフローチャートを示す。
【図１２】人工ニューロンが発火しない場合の出力の計算例を概略的に説明する図である。
【図１３】人工ニューロンが発火する場合の出力の計算例を概略的に説明する図である。
【図１４】人工ニューロンの増減パラメータとして関数が定義されている場合の結合係数の時間発展を概略的に示す。
【図１５】増減パラメータとしての関数の他の例を概略的に示す。
【図１６】ユーザ端末１００が表示するパラメータビューワの画面例を概略的に示す。
【図１７】ニューラルネットワークをグラフィカルに編集する場合に提示される画面を概略的に示す。
【図１８】人工シナプスを編集する編集画面の一例である。
【図１９】人工ニューロンの出力の表示例を概略的に示す。
【図２０】人工シナプスを電気信号が伝搬する様子の表示例を概略的に示す。
【図２１】人工シナプスによる人工ニューロン間の結合状態の表示例を概略的に示す。
【図２２】人工ニューロンの配置の表示例を概略的に示す。
【図２３】内分泌人工ニューロンが影響する人工ニューロンの範囲の表示例を概略的に示す。
【図２４】人工ニューロンのパラメータを計算する優先順位を定めた優先人工ニューロン情報を概略的に示す。
【図２５】システム２０に係るソフトウェアアーキテクチャを概略的に示す。
【図２６】複数の人工ニューロンに対して更新計算を行う前の状態を概略的に示す。
【図２７】パラメータの値の更新処理をマルチプロセス処理によって並列に行う方法を示す。
【図２８】更新計算の途中における計算状態を概略的に示す。
【図２９】サブシステム間で分散制御を行うためのニューラルネットワークの構成を概略的に示す。
【発明を実施するための形態】
【００２１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２２】
図１は、本実施形態に係るシステム２０の一例を概略的に示す。システム２０は、サーバ２００と、ユーザ端末１００ａと、ユーザ端末１００ｂと、ロボット４０ａ及びロボット４０ｂと、サーバ２００とを備える。ユーザ端末１００ａ、ユーザ端末１００ｂ及び、ロボット４０ａ及びロボット４０ｂは、通信網９０を通じてサーバ２００と通信して情報のやりとりを行う。
【００２３】
なお、ユーザ３０ａは、ロボット４０ａ及びユーザ端末１００ａのユーザである。ユーザ３０ｂは、ロボット４０ｂ及びユーザ端末１００ｂのユーザである。ロボット４０ｂは、ロボット４０ａと略同一の機能を有する。また、ユーザ端末１００ｂは、ユーザ端末１００ａと略同一の機能を有する。そのため、ロボット４０ａ及びロボット４０ｂをロボット４０と総称し、ユーザ端末１００ａ及びユーザ端末１００ｂをユーザ端末１００と総称して、システム２０を説明する。
【００２４】
システム２０は、ロボット４０の状態を決定するためのニューラルネットワークのパラメータを処理する。ニューラルネットワークのパラメータとは、ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを含む。
【００２５】
具体的には、ユーザ端末１００は、ユーザ３０からの入力に基づいて、ニューラルネットワークのパラメータの初期値を設定して、サーバ２００に送信する。ロボット４０は、ロボット４０に設けられたセンサで検出されたセンサ情報を、サーバ２００に送信する。サーバ２００は、ニューラルネットワークの初期値情報と、ロボット４０から取得したセンサ情報とに基づいて、ニューラルネットワークを用いて、ロボット４０の状態を決定する。例えば、サーバ２００は、ロボット４０の周囲の状況、ロボット４０自身の感情、及びロボット４０自身の内分泌物質の生成状態を、ニューラルネットワークを用いて計算する。そして、サーバ２００は、ロボット４０の周囲の状況、及びロボット４０自身の感情、及びロボット４０自身の内分泌物質の生成状態に基づいて、ロボット４０の行動内容を決定する。なお、内分泌物質とは、神経伝達物質及びホルモン等、体内で分泌されシグナルを伝達する物質を意味する。また、内分泌とは、内分泌物質が体内で分泌されることを意味する。
【００２６】
例えば、サーバ２００は、眠気に対応する内分泌物質が生成される状態であると判断した場合、ロボット４０が眠くなった場合の行動を行わせる。また、サーバ２００は、嬉しいという感情が生じる状態であると判断した場合、嬉しさを表す言葉をロボット４０に発声させる。
【００２７】
なお、ロボット４０自身の内分泌物質とは、ロボット４０の行動に影響を及ぼす情報の１つであり、ロボット４０が内分泌物質を実際に発生するということを意味していない。ロボット４０自身の感情も同様に、ロボット４０の行動に影響を及ぼす情報の１つであり、ロボット４０が実際に感情を有しているということを意味していない。
【００２８】
図２は、サーバ２００、ユーザ端末１００及びロボット４０のブロック構成を概略的に示す。ユーザ端末１００は、処理部１０２と、表示部１０４と、入力装置１０６、通信部２０８とを有する。ロボット４０ｂは、センサ部１５６と、処理部１５２と、制御対象１５５と、通信部１５８とを有する。サーバ２００は、処理部２０２と、格納部２８０と、通信部２０８とを有する。処理部２０２は、初期値設定部２１０と、外部入力データ生成部２３０と、パラメータ処理部２４０と、動作決定部２５０とを含む。格納部２８０は、行動決定ルール２８２、定義情報２８４、パラメータ初期値２８６、及び最新のパラメータ２８８を格納する。
【００２９】
ユーザ端末１００において、入力装置１０６は、ユーザ３０からニューラルネットワークのパラメータの初期値の入力を受け付けて、処理部１０２に出力する。処理部１０２は、ＣＰＵ等のプロセッサで形成される。処理部１０２は、入力装置１０６から取得したパラメータの初期値を、通信部１０８からサーバ２００に送信させる。通信部１０８は、サーバ２００からニューラルネットワークのパラメータを受信する。処理部１０２は、通信部１０８が受信したパラメータを、表示部１０４に表示させる。
【００３０】
ロボット４０において、センサ部１５６は、カメラ、３Ｄ深度センサ、マイク、タッチセンサ、レーザ測距計、超音波測距計等の各種のセンサを含む。センサ部１５６で検出されたセンサ情報は、処理部１５２に出力される。処理部１５２は、ＣＰＵ等のプロセッサで形成される。処理部１５２は、センサ部１５６から取得したセンサ情報を、通信部１５８からサーバ２００に送信させる。通信部１５８は、サーバ２００から動作内容を示す情報を受信する。処理部１５２は、通信部１５８が受信した動作内容を、制御対象１５５を制御する。制御対象１５５は、スピーカ、ロボット４０の各部を駆動するモータ、表示装置、発光装置等を含む。一例として、発声内容を示す情報をサーバ２００から受信した場合、処理部１５２は、受信した発生内容に従って、スピーカから音声を出力させる。
【００３１】
サーバ２００において、通信部２０８は、ユーザ端末１００又はロボット４０から受信した情報を処理部２０２に出力する。初期値設定部２１０は、通信部２０８で受信したパラメータの初期値を、格納部２８０内のパラメータ初期値２８６に格納する。外部入力データ生成部２３０は、通信部２０８が受信したセンサ情報を処理して、ニューラルネットワークの外部からの入力情報を生成して、パラメータ処理部２４０に出力する。
【００３２】
パラメータ処理部２４０は、格納部２８０に格納されているニューラルネットワークのパラメータ２８８と、定義情報２８４とに基づいて、ニューラルネットワークに基づく処理を行う。ニューラルネットワークは、生体の脳機能の一部を計算機の処理で模擬的に実現するためのモデルである。まずここで、ニューラルネットワークに関する技術的背景及び課題を説明する。
【００３３】
脳には、大別して二つの機能があると考えられる。一つは記憶や学習、予測や計画を始めとする様々な情報処理であり、もう一つは情報処理の調節機能である。
【００３４】
脳における情報処理は、シナプス結合によって繋がった膨大な数のニューロンによって実現されると考えられる。ヒトの脳には、全体で千数百億個のニューロンが存在すると考えられている。一方で、情報処理の調節機能は、例えばヒトの脳の広範囲調節系のように、脳の特定部位に存在する比較的少数のニューロンによって実現されていると考えられる。具体的には、脳の特定部位のニューロンが、特定の明確な行き先ニューロンを持つことなく脳の広範な領域に向かって分枝する軸索を有しており、その軸索から放出される様々な神経伝達物質の作用によって、情報処理の調節機能が実現されると考えられる。ヒトの広範囲調節系には数千個程度のニューロンが存在すると考えられている。すなわち、脳の特定部位に存在する比較的少数のニューロンのそれぞれが十万個以上の他のニューロンと接触しており、脳の特定部位のニューロンが放出する神経伝達物質がシナプス間隙のみならず脳内の多数のニューロンにも作用することによって、情報処理の調節機能が実現されると考えられる。
【００３５】
脳における情報処理の例としては、ヒトの視覚野における視覚情報の処理が挙げられる。ヒトの視覚情報は網膜から視神経を経て第一次視覚野に伝わり、そこから背側皮質視覚路で動きに関する情報処理が行われ、腹側皮質視覚路で顔認識のような動き以外の情報に関する情報処理が行われると考えられる。一方、情報処理における調節機能の例としては、ヒトが眠気を感じている場合の情報処理が挙げられる。眠気の発生には、アセチルコリンやノルアドレナリンやセロトニンのような神経伝達物質を放出する広範囲調節系が関係していると考えられる。これにより、眠気のような指令は意思決定のように脳の広範な領域で受け取られるメッセージとなり得る。
【００３６】
ここで、ニューラルネットワークの例として、一部の脳機能を模擬的に実現するために、人工シナプスによって結合された複数の人工ニューロンからなるネットワークを前提としたものを考える。このニューラルネットワークの例における応用例としては、深層学習に基づくパターン認識や自己組織化マップを用いたデータ・クラスタリング等が挙げられ、これらは画像認識や語彙の分類といった脳の情報処理を擬似的に実現するものといえる。
【００３７】
ニューラルネットワークには、Ｈｅｂｂの法則やスパイクタイミング依存可塑性(ｓｐｉｋｅ  ｔｉｍｉｎｇ−ｄｅｐｅｎｄｅｎｔ  ｐｌａｓｔｉｃｉｔｙ；  ＳＴＤＰ)に基づく学習則を適用できる。Ｈｅｂｂの法則とは、あるニューロンの発火が他のニューロンを発火させると、これらの２つのニューロンの結合が強まるという法則である。Ｈｅｂｂの法則に基づいて、人工シナプスの前後の人工ニューロンが同時発火した場合に当該人工シナプスの結合を強めるという処理を、ニューラルネットワークに組み込むことができる。ＳＴＤＰは、シナプスの増強・減弱が、当該シナプスの前側のニューロン及び後側のニューロンのスパイク発生タイミングの順序に依存する現象である。ＳＴＤＰに基づいて、人工シナプスの前側のニューロンが後側のニューロンより先行して発火した場合に当該人工シナプスの結合を強め、人工シナプスの後側の人工ニューロンが前側の人工ニューロンより先行して発火した場合に当該人工シナプスの結合を弱めるという処理を、ニューラルネットワークに組み込むことができる。また、自己組織化マップにおいては、複数の人工ニューロンで形成されるニューラルネットワークにおいて、重みベクトルから入力ベクトルに最も近い勝者ベクトルを選び、重みをさらに入力ベクトルに近づくように更新する学習則がある。
【００３８】
なお、上記の特許文献１のように複数の感覚情報から感情ラベルを出力するニューラルネットワークの例においては、感情ラベルをフィードバックすることによって、入力が同じであっても感情ラベルと入力に応じて異なる感情ラベルを出力することができる場合があるが、特許文献１のニューラルネットワークは、そのような処理を組み込むことができる構成を有していない。また、特許文献１のニューラルネットワークでは、感情と神経伝達物質等の内分泌物質の関係はなく、また、感情によって情報処理が調節されることもない。
【００３９】
特許文献１に記載のニューラルネットワークで実現される情報処理や、上述したニューラルネットワークの例で実現されるパターン認識やデータ・クラスタリング等の様々な情報処理の他に、擬似的な神経伝達物質等の内分泌物質が脳内の広範な領域で分泌されることで人工ニューロンや人工シナプスの性質がニューラルネットワークの一部で動的に変化しながら情報処理が調節される機能を実現するには、三つの課題がある。すなわち、第一に、脳機能の大部分について動作原理が明らかにされていないために多くの仮説が存在する中で、アナログコンピュータのように人工ニューロンを試行錯誤しながら人工シナプスで結合してニューラルネットワークの挙動を効率的に確かめることができない。第二に、様々な脳部位のニューロンの活動電位やシナプス結合に関して異なるヒステリシス特性を持つ数式モデルがいくつか提案されているにも関わらず、ヒステリシスを持つ数式や数式のパラメータを人工ニューロンや人工シナプスごとに効率的に記述することができない。第三に、擬似的な内分泌物質が脳内の広範な領域で分泌されることによって多数の人工ニューロンや人工シナプスのパラメータがニューラルネットワークの一部で動的に変化するような挙動を、大規模計算によって効率的にシミュレートすることができず、マルチプロセス・マルチスレッド処理や分散コンピューティングに依っても効率的に処理できない。以下に、上述したニューラルネットワークに関する技術的背景及び課題に関連して、システム２０の動作をより詳しく説明する。
【００４０】
図３は、ニューラルネットワーク３００を概略的に示す。ニューラルネットワーク３００は、人工ニューロン１と、人工ニューロン２と、人工ニューロン３と、人工ニューロン４と、人工ニューロン５と、人工ニューロン６と、人工ニューロン７と、人工ニューロン８と、人工ニューロン９を含む複数の人工ニューロンを含む。ニューラルネットワーク３００は、人工シナプス３０１と、人工シナプス３０２と、人工シナプス３０３と、人工シナプス３０４と、人工シナプス３０５と、人工シナプス３０６と、人工シナプス３０７と、人工シナプス３０８と、人工シナプス３０９と、人工シナプス３１０と、人工シナプス３１１とを含む複数の人工シナプスを含む。人工ニューロンは、生体におけるニューロンに対応する。人工シナプスは、生体におけるシナプスに対応する。
【００４１】
人工シナプス３０１は、人工ニューロン４と人工ニューロン１とを接続する。人工シナプス３０１は、一方向に接続する人工シナプスである。人工ニューロン４は、人工ニューロン１の入力に接続される人工ニューロンである。人工シナプス３０２は、人工ニューロン１と人工ニューロン２とを接続する。人工シナプス３０２は、双方向に接続する人工シナプスである。人工ニューロン１は、人工ニューロン２の入力に接続される人工ニューロンである。人工ニューロン２は、人工ニューロン１の入力に接続される人工ニューロンである。
【００４２】
なお、本実施形態において、人工ニューロンをＮで表し、人工シナプスをＳで表す場合がある。また、各人工ニューロンを識別する場合、上付きの数字を識別文字として用いる。任意の人工ニューロンを表す場合、整数ｉやｊを識別数字として用いる場合がある。例えば、Ｎｉは任意の人工ニューロンを表す。
【００４３】
また、人工シナプスを、人工シナプスに接続されている２つの人工ニューロンのそれぞれの識別数字ｉ及びｊを用いて識別する場合がある。例えば、Ｓ４１は、Ｎ１とＮ４とを接続する人工シナプスを表す。一般には、Ｓｉｊは、Ｎｉの出力をＮｊに入力する人工シナプスを表す。なお、Ｓｊｉは、Ｎｊの出力をＮｉに入力する人工シナプスを表す。
【００４４】
図３において、Ａ〜Ｇは、ロボット４０の状態が定義されていることを表す。ロボット４０の状態とは、ロボット４０の感情、内分泌物質の生成状態、ロボット４０の周囲の状況等を含む。一例として、Ｎ４、Ｎ６、及びＮ７は、ロボット４０の状況を表す概念が定義された概念人工ニューロンである。例えば、Ｎ４は、「ベルが鳴った」という状況が割り当てられた概念人工ニューロンである。Ｎ６は、「充電が開始された」という状況が割り当てられた概念人工ニューロンである。Ｎ７は、「蓄電量が閾値以下」という状況が割り当てられた概念人工ニューロンである。
【００４５】
Ｎ１及びＮ３は、ロボット４０の感情が定義された感情人工ニューロンである。Ｎ１は、「嬉しい」という感情が割り当てられた感情人工ニューロンである。Ｎ３は、「悲しい」という感情が割り当てられた感情人工ニューロンである。
【００４６】
Ｎ２及びＮ５は、ロボット４０の内分泌状態が定義された内分泌人工ニューロンである。Ｎ５は、ドーパミンの発生状態が割り当てられた内分泌人工ニューロンである。ドーパミンは、報酬系に関与する内分泌物質の一例である。すなわち、Ｎ５は、報酬系に関与する内分泌人工ニューロンの一例である。Ｎ２は、セロトニンの発生状態が割り当てられた内分泌人工ニューロンである。セロトニンは、睡眠系に関与する内分泌物質の一例である。すなわち、Ｎ２は、睡眠系に関与する内分泌人工ニューロンの一例である。
【００４７】
格納部２８０内の定義情報２８４には、ニューラルネットワークを構成する複数の人工ニューロンの各人工ニューロンに対して、上述したようなロボット４０の状態を定義する情報が格納される。このように、ニューラルネットワーク３００には、概念人工ニューロン、感情人工ニューロン、内分泌人工ニューロンを含む。概念人工ニューロン、感情人工ニューロン、内分泌人工ニューロンは、概念、感情及び内分泌等の意味が明示的に定義された人工ニューロンである。このような人工ニューロンをエクスプリシット人工ニューロンと呼ぶ場合がある。
【００４８】
これに対し、Ｎ８やＮ９は、ロボット４０の状態が定義されていない人工ニューロンである。また、Ｎ８やＮ９は、概念、感情及び内分泌等の意味が明示的に定義されていない人工ニューロンである。このような人工ニューロンをインプリシット人工ニューロンと呼ぶ場合がある。
【００４９】
ニューラルネットワーク３００のパラメータとしては、ニューラルネットワークの各Ｎｉへの入力であるＩｔｉと、ニューラルネットワークの外部からＮｉへの入力であるＥｔｉと、Ｎｉのパラメータと、Ｓｉのパラメータとを含む。
【００５０】
Ｎｉのパラメータは、Ｎｉのステータスを表すＳｔｉと、Ｎｉが表す人工ニューロンの出力を表すＶｉｍｔと、Ｎｉの発火の閾値を表すＴｉｔと、Ｎｉが最後に発火した時刻である最終発火時刻を表すｔｆと、最終発火時刻における人工ニューロンＮｉの出力を表すＶｉｍｔｆと、出力の増減パラメータであるａｔｉ、ｂｔｉ、ｈｔｉとを含む。出力の増減パラメータは、人工ニューロンの発火時の出力の時間発展を定めるパラメータの一例である。なお、本実施形態において、下付きの添え字のｔは、時刻の進展とともに更新され得るパラメータであることを表す。
【００５１】
Ｓｉｊのパラメータは、Ｓｉｊの人工シナプスの結合係数を表すＢＳｔｉｊと、Ｓｉｊが接続しているＮｉ及びＮｊが最後に同時に発火した時刻である最終同時発火時刻を表すｔｃｆと、最終同時発火時刻における結合係数を表すＢＳｉｊｔｃｆと、結合係数の増減パラメータであるａｔｉｊ、ｂｔｉｊ、ｈｔｉｊとを含む。結合係数の増減パラメータは、人工シナプスが結びつけている２つの人工ニューロンが最後に同時に発火した後の結合係数の時間発展を定めるパラメータの一例である。
【００５２】
パラメータ処理部２４０は、外部入力データ生成部２３０からの入力と、ニューラルネットワークに基づいて上述したパラメータを更新して、各人工ニューロンの活性化の状態を決定する。動作決定部２５０は、ニューラルネットワーク内の複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる少なくとも一部の人工ニューロンの活性状態と、定義情報２８４によって少なくとも一部の人工ニューロンに定義されている状態とに基づいて、ロボット４０の動作を決定する。なお、活性状態とは、活性化した状態又は活性化していない状態をとり得る。本実施形態において、活性化することを「発火」と呼び、活性化していないことを「未発火」と呼ぶ場合がある。なお、後述するように、「発火」の状態を、出力が上昇中であるか否かに応じて「上昇相」と「下降相」とに分ける。「未発火」と、「上昇相」及び「下降相」とは、ステータスＳｔｉによって表される。
【００５３】
図４は、ユーザ端末１００に表示されるパラメータ編集画面を概略的に示す。ユーザ端末１００は、サーバ２００から受信した時刻ｔにおけるパラメータのうち、ユーザが編集可能なパラメータを表示する。
【００５４】
パラメータ編集画面４００は、Ｎｉのそれぞれについて、Ｎｉの閾値及び増減パラメータ、並びに、Ｎｉに接続される全ての人工ニューロンの識別情報、結合係数及び増減パラメータのそれぞれに値を入力するための入力欄を含む。また、パラメータ編集画面４００は、保存ボタン及びリセットボタンを含む。ユーザ３０は、入力装置１０６を用いて、各入力欄に初期値を入力することができる。
【００５５】
保存ボタンが押された場合、処理部１０２は、パラメータ編集画面４００で設定されている初期値を、通信部１０８を通じてサーバ２００へ送信させる。サーバ２００において、ユーザ端末１００から送信された初期値は、格納部２８０内のパラメータ初期値２８６に格納される。また、パラメータ編集画面４００のリセットボタンが押された場合、処理部１０２は、入力欄内の設定値を、予め定められた初期値に設定する。
【００５６】
このように、処理部１０２は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示する。そして、処理部１０２は、提示されたパラメータの値を変更するためのテーブルに対するユーザ入力を受け付ける。このように、処理部１０２は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される１以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いてユーザ３０に提示し、ユーザ３０から値の入力を受け付けることができる。
【００５７】
図５は、ロボット４０が起動又はリセットされた場合のサーバ２００の動作フローを概略的に示す。サーバ２００は、ロボット４０が起動又はリセットされたことが受信すると、パラメータ処理部２４０は、ニューラルネットワークのパラメータの初期設定を行う。例えば、パラメータ処理部２４０は、格納部２８０からパラメータの初期値を取得して、ニューラルネットワークのパラメータデータを所定のデータ構造で生成する（Ｓ５０２）。また、時刻ｔ０におけるニューラルネットワークのパラメータの値を設定する。初期設定が完了すると、Ｓ５０４において、時刻ｔに関するループを開始する。
【００５８】
Ｓ５１０において、パラメータ処理部２４０は、時間ステップｔｎ＋１における、人工シナプスの電気的影響による変化に対応するパラメータを計算する。具体的には、任意のＳｉｊのＢＳｔｉｊを計算する。
【００５９】
Ｓ５２０において、パラメータ処理部２４０は、時間ステップｔｎ＋１における、内分泌物質による化学的影響による変化に対応するパラメータを計算する（Ｓ５２０）。具体的には、内分泌人工ニューロンが影響を及ぼすＮｉ及びＳｉｊのパラメータの変化を計算する。より具体的には、時間ステップｔｎ＋１における、内分泌人工ニューロンが影響を及ぼす人工ニューロンＮｉの出力の増減パラメータや閾値と、内分泌人工ニューロンが影響を及ぼすＳｉｊの結合係数の増減パラメータや結合係数を計算する。
【００６０】
Ｓ５３０において、パラメータ処理部２４０は、ニューラルネットワークの外部からの入力を取得する。具体的には、パラメータ処理部２４０は、外部入力データ生成部２３０の出力を取得する。
【００６１】
Ｓ５４０において、パラメータ処理部２４０は、時間ステップｔｎ＋１における、Ｎｉの出力を計算する。具体的には、Ｖｉｍｔｎ＋１及びステータスＳｔｔｉを計算する。そして、Ｓ５５０において、時刻ｔｎ＋１における各パラメータの値を、格納部２８０のパラメータ２８８に格納する。また、時刻ｔｎ＋１における各パラメータの値を、ユーザ端末１００に送信する。
【００６２】
Ｓ５６０において、パラメータ処理部２４０は、ループを終了するか否かを判断する。例えば、時間ステップが表す時刻が所定の時刻に達した場合や、パラメータ更新の計算を停止することをユーザ端末１００から指示された場合に、ループを終了すると判断する。ループを終了しない場合、Ｓ５１０に戻り、更に次の時間ステップの計算を行う。ループを終了する場合、このフローを終了する。
【００６３】
図６は、人工シナプスの結合係数の計算を概略的に説明する図である。ここでは、増減パラメータの初期値として定数ａｉｊ及びｂｉｊが定義されている場合を説明する。
【００６４】
時刻ｔｎの時間ステップにおいて、Ｓｉｊの両端のＮｉ及びＮｊがいずれも発火している場合、パラメータ処理部２４０は、時刻ｔｎ＋１におけるＢＳｔｎ＋１ｉｊを、ＢＳｔｎ＋１ｉｊ＝ＢＳｔｎｉｊ＋ａｔｎｉｊ×（ｔｎ＋１−ｔｎ）により計算する。一方、時刻ｔｎの時間ステップにおいてＳｉ及びＳｊがいずれも発火していない場合、時刻ｔｎ＋１における結合係数ＢＳｔｎ＋１ｉｊを、ＢＳｔｎ＋１ｉｊ＝ＢＳｔｎｉｊ＋ｂｔｎｉｊ×（ｔｎ＋１−ｔｎ）により計算する。また、ＢＳｔｎ＋１ｉｊが負の値になる場合は、ＢＳｔｎ＋１ｉｊは０とする。なお、ＢＳｉｊが正の値のＳｉｊでは、ａｔｉｊが正の値であり、ｂｔｉｊは負の値である。ＢＳｉｊが負の値のＳｉｊでは、ａｔｉｊは正の値であり、ｂｔｉｊは負の値である。
【００６５】
図６に示されるように、時刻ｔ０で両端の人工ニューロンが同時発火しているので、ＢＳｔｉｊは単位時間当たりａｔ０ｉｊで増加する。また、時刻ｔ１で同時発火していないので、ＢＳｔｉｊは、単位時間当たり｜ｂｔ１ｉｊ｜で減少する。また、時刻ｔ４で同時発火したことにより、ＢＳｔｉｊは単位時間当たりａｔ４ｉｊで増加する。
【００６６】
図７は、結合係数の増減パラメータとして関数ｈｔｉｊが定義されている場合の結合係数の時間発展を概略的に示す。ｈｔｉｊは、ｔｃｆからの経過時間Δｔ（＝ｔ−ｔｃｆ）≧０において定義される。ｈｔｉｊは、少なくともΔｔの関数であり、実数の値をとる。
【００６７】
図７に示す関数７００は、ｈｔｉｊの一例である。関数７００は、時刻ｔｃｆにおける結合係数ＢＳｔｃｆｉｊ及びΔｔの関数である。関数７００は、Δｔが所定の値より小さい範囲で場合に単調増加し、Δｔが所定の値より大きい場合に単調減少して０に向けて漸減する。関数７００は、Δｔ＝０において値ＢＳｔｃｆｉｊをとる。
【００６８】
図７は、結合係数の増減パラメータとして関数７００が定義されており、時刻ｔ０において両端のＮｉ及びＮｊが同時発火した場合の結合係数を示す。パラメータ処理部２４０は、関数７００とΔｔとに基づいて、時刻ｔ１〜時刻ｔ６の各時刻のＢＳｔｉｊを算出する。時刻ｔ１〜時刻ｔ６の時間範囲内では、Ｎｉ及びＮｊは同時発火していない。そのため、例えば、時刻ｔ２以降、結合係数は単調に減少する。
【００６９】
図８は、時刻ｔ２でＮｉ及びＮｊが更に同時発火した場合の結合係数の時間発展を概略的に示す。結合係数は、時刻ｔ０から時刻ｔ２までは、図７と同様に計算される。時刻ｔ２においてＮｉ及びＮｊが更に同時発火すると、パラメータ処理部２４０は、ｈｔｉｊ（ｔ−ｔ２，ＢＳｔ２ｉｊ）に従って時刻ｔ３〜ｔ６の各時刻の結合係数を計算する。このように、同時発火が繰り返される毎に、結合係数が高まる。これにより、生体におけるＨｅｂｂの法則のように、人工シナプス結合を強化するような効果が得られる。一方、図６及び図７に示すように、同時発火しない時間が長くなると、人工シナプス結合が減衰するような効果が得られる。
【００７０】
図９は、結合係数の増減関数ｈｔｉｊの他の例を概略的に示す。関数９１０、関数９２０は、それぞれｈｔｉｊの一例である。
【００７１】
関数９１０は、時刻ｔｃｆにおける結合係数ＢＳｔｃｆｉｊ及びΔｔの関数である。関数９１０は、Δｔ＝０において値ＢＳｔｃｆｉｊをとる。また、関数９１０は、Δｔが所定の値より小さい範囲で場合に単調増加し、Δｔが所定の値より大きい場合に単調減少して０に向けて漸減する。
【００７２】
関数９２０は、Δｔのみの関数である。関数９２０は、Δｔ＝０において値０をとる。また、関数９２０は、Δｔが所定の値より小さい範囲で場合に単調増加し、Δｔが所定の値より大きい場合に単調減少して０に向けて漸減する。このように、本実施形態によれば、ｈｔｉｊを比較的に自由に定義できるので、学習効果を比較的に自由に制御できる。
【００７３】
図１０は、パラメータに与えられる化学的影響を定義する影響定義情報を概略的に示す。この影響定義情報は、図５のＳ５２０のパラメータの変化の計算に用いられる。定義情報は、内分泌人工ニューロンの出力に関する条件と、影響を与える人工ニューロン又は人工シナプスを特定する情報と、影響内容を定める式を含む。
【００７４】
図１０の例において、内分泌人工ニューロンＮ２は、眠気の内分泌物質が割り当てられた内分泌人工ニューロンである。内分泌人工ニューロンＮ２に関する定義情報は、「Ｖｍｔｎ２＞Ｔｔｎ２」の条件、内分泌人工ニューロンＮ２が影響を与える人工ニューロンとして「感情人工ニューロンＮ１及びＮ３」、影響内容を定める式として「Ｔｔｎ＋１ｉ＝Ｔｔｎｉ×１．１」が定められている。これにより、パラメータ処理部２４０は、Ｖｍｔｎ２がＴｔｎ２を超える場合、時刻ｔｎ＋１の感情人工ニューロンＮ１及びＮ３の閾値を、１０％上昇させる。これにより、例えば、眠気が生じた場合に、感情人工ニューロンを発火させにくくすることができる。例えば、「蓄電量が閾値以下」であることが定義された概念人工ニューロンＮ７の出力を、内分泌人工ニューロンＮ２の入力に接続したニューラルネットワークを定めることで、蓄電量が低くなると感情が高まりにくくなる現象を体現することが可能になる。
【００７５】
また、内分泌人工ニューロンＮ５は、報酬系の内分泌物質が割り当てられた内分泌人工ニューロンである。報酬系の内分泌物質としては、ドーパミン等を例示できる。内分泌人工ニューロンＮ５に関する第１の定義情報は、「Ｖｍｔｎ５＞Ｔｔｎ５及びＶｍｔｎ４＞Ｔｔｎ４」の条件、内分泌人工ニューロンＮ５が影響を与える人工シナプスとして「Ｓ４９及びＳ９５」、影響内容を定める式として「ａｔｎ＋１ｉｊ＝ａｔｎｉｊ×１．１」という式が定められている。これにより、パラメータ処理部２４０は、Ｖｍｔｎ５がＴｔｎ５を超え、かつ、Ｖｍｔｎ４がＴｔｎ４を超える場合、時刻ｔｎ＋１の人工シナプスＳ４９及びＳ９５の増減パラメータを１０％上昇させる。
【００７６】
これにより、報酬系の内分泌人工ニューロンが発火した場合に、「ベルが鳴った」という状況が定義された概念人工ニューロンＮ４が発火していると、インプリシット人工ニューロンＮ９を介した概念人工ニューロンＮ４とＮ５との結合を強めることができる。これにより、「ベルが鳴った」場合に報酬系の内分泌人工ニューロンＮ５が発火し易くなる。
【００７７】
また、内分泌人工ニューロンＮ５に関する第２の定義情報は、「Ｖｍｔｎ５＞Ｔｔｎ５」の条件、内分泌人工ニューロンＮ５が影響を与える人工ニューロンとして「Ｎ１」、影響内容を定める式として「Ｔｔｎ＋１ｉ＝Ｔｔｎｉ×１．１」という式が定められている。これにより、パラメータ処理部２４０は、Ｖｍｔｎ５がＴｔｎ５を超える場合、時刻ｔｎ＋１の人工ニューロンＮ１の増減パラメータを１０％低下させる。これにより、報酬系の内分泌人工ニューロンＮ５が発火した場合に、嬉しいという感情が発火し易くなる。
【００７８】
このような報酬系の内分泌人工ニューロンに関する影響を定めた定義によれば、ベルを鳴らしながらロボット４０を充電するという行為を繰り返すと、ベルを鳴らしただけでロボット４０が嬉しさを表す行動をとる、というような実装が可能になる。
【００７９】
なお、影響定義情報は、図１０の例に限られない。例えば、条件として、人工ニューロンの出力が閾値以下であるという条件を定義してよい。また、人工ニューロンのステータスに関する条件、例えば、上昇相、下降相又は未発火に関する条件を定義してよい。また、影響範囲は、人工ニューロンや人工シナプスを直接指定する他に、「特定の人工ニューロンに接続された全人工シナプス」というような定義を行うこともできる。また、影響の式については、対象が人工ニューロンの場合、閾値を定数倍にすることの他に、閾値に定数を加えることや、出力の増減パラメータを定数倍するような式を定義してよい。また、対象が人工シナプスの場合、増減パラメータを定数倍することの他に、結合係数を定数倍するような式を定義してよい。
【００８０】
影響定義情報は、格納部２８０の定義情報２８４内に格納される。このように、格納部２８０は、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータに、内分泌人工ニューロンの出力及び発火状態の少なくとも一方が与える影響を定めた影響定義情報を格納する。そして、パラメータ処理部２４０は、内分泌人工ニューロンの出力及び発火状態の少なくとも一方と、当該影響定義情報とに基づいて、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータを更新する。また、内分泌人工ニューロンの出力及び発火状態の少なくとも一方が影響を与える他の人工ニューロンのパラメータは、他の人工ニューロンの閾値、発火状態、及び、発火時の出力の時間発展を定めるパラメータの少なくとも１つを含むことができる。また、内分泌人工ニューロンの出力及び発火状態の少なくとも一方が影響を与える人工シナプスのパラメータは、当該人工シナプスの結合係数、及び、当該人工シナプスが結びつけている２つの人工ニューロンが最後に同時に発火した後の結合係数の時間発展を定めるパラメータの少なくとも１つを含むことができる。また、影響定義情報は、報酬系に関連づけられた内分泌人工ニューロンの発火状態が感情人工ニューロンの閾値に与える影響を定めた情報を含み、パラメータ処理部２４０は、当該内分泌人工ニューロンが発火した場合に、影響定義情報に従って、感情人工ニューロンの閾値を更新する。
【００８１】
図１１は、Ｖｔｎ＋１ｉ及びＳｔｎ＋１ｉを計算するフローチャートを示す。本フローチャートの処理は、図５のＳ５４０内の処理の一部に適用できる。Ｓ１１００において、パラメータ処理部２４０は、Ｓｔｎｉが未発火を示すか否かを判断する。
【００８２】
Ｓｔｎｉが未発火を示す場合、パラメータ処理部２４０は、Ｎｉへの入力Ｉｔｎ＋１ｉを計算する（Ｓ１１１０）。具体的には、ニューラルネットワークの外部からの入力がＮｉに接続されていない場合、Ｉｔｎ＋１ｉ＝ΣｊＢＳｔｎ＋１ｊｉ×Ｖｍｔｎｊ×ｆ（Ｓｔｎｊ）によって計算する。ニューラルネットワークの外部からの入力がＮｉに接続されている場合、Ｉｔｎ＋１ｉ＝ΣｊＢＳｔｎ＋１ｊｉ×Ｖｍｔｎｊ×ｆ（Ｓｔｎｊ）＋Ｅｔｎ＋１ｉによって計算する。ここで、Ｅｔｎｉは、ニューラルネットワークの外部からの時刻ｔｎにおける入力である。
【００８３】
また、ｆ（Ｓ）は、Ｓが未発火を表す値の場合は０を返し、Ｓが上昇相又は下降相を示す値の場合は１を返す。このモデルは、ニューロンが発火した場合のみシナプスが活動電位を伝達するモデルに対応する。なお、ｆ（Ｓ）＝１を返してもよい。これは、ニューロンの発火状態によらず膜電位を伝達するモデルに対応する。
【００８４】
Ｓ１１１２において、パラメータ処理部２４０は、Ｉｔｎ＋１ｉがＴｔｎ＋１ｉを超えるか否かを判断する。Ｉｔｎ＋１ｉがＴｔｎ＋１ｉを超える場合、パラメータ処理部２４０は、Ｖｍｔｎ＋１ｉを増減パラメータに基づいて算出するとともに、Ｖｍｔｎ＋１ｉに応じてＳｔｎ＋１ｉを上昇相又は下降相に示す値に設定し（Ｓ１１１４）、このフローを終了する。
【００８５】
Ｓ１１００において、Ｓｔｎｉが上昇相又は下降相である場合、パラメータ処理部２４０は、Ｖｍｔｎ＋１ｉを算出する（Ｓ１１２０）。そして、パラメータ処理部２４０は、ｔｎ＋１までにＶｍｔｉがＶｍｉｎに達した場合は、Ｓｔｎ＋１ｉを未発火の値に設定し、ｔｎ＋１までにＶｍｔｉがＶｍｉｎに達していない場合は、Ｓｔｎ＋１ｉを上昇相又は下降相の値に設定して、このフローを終了する。なお、パラメータ処理部２４０は、ｔｎ＋１までにＶｍｔｉがＶｍａｘに達した場合はＳｔｎ＋１ｉに下降相の値を設定し、ｔｎ＋１までにＶｍｔｉがＶｍａｘに達していない場合はＳｔｎ＋１ｉに上昇相の値を設定する。
【００８６】
このように、Ｎｉが発火している場合は、たとえ出力が閾値以下になっても、Ｎｉの出力は入力に依存しない。このような期間は、生体のニューロンにおける絶対不応期に対応する。
【００８７】
図１２は、Ｎｉが発火しない場合のＶｔｉの計算例を概略的に説明する図である。
【００８８】
時刻ｔ０の時間ステップにおいてＮｉは未発火である。時刻ｔ１のＩｔ１ｉがＴｔ１ｉ以下である場合、パラメータ処理部２４０は、時刻ｔ１におけるＶｔ１ｉを、Ｖｔ１ｉ＝Ｉｔ１ｉにより計算し、時刻ｔ０からｔ１までの期間のＶｔｉを、Ｖｔｉ＝Ｉｔ０ｉにより計算する。また、同様に、パラメータ処理部２４０は、時刻ステップｔｎで計算したＶｔｎの値を次の時刻ステップまで維持し、Ｖｔｎ＋１において、Ｉｔｎ＋１に変化させる。
【００８９】
図１３は、Ｎｉが発火する場合のＶｉｔの計算例を概略的に説明する図である。図１３は、定数ａｉ及びｂｉが定義されている場合の計算例である。
【００９０】
時刻ｔ０の時間ステップにおいて、Ｎｉは未発火である。時刻ｔ１のＩｔ１ｉがＴｔ１ｉを超える場合、パラメータ処理部２４０は、時刻ｔ１におけるＶｔ１ｉを、Ｖｔ１ｉ＝Ｉｔ１ｉにより計算し、時刻ｔ０からｔ１までの期間のＶｔｉを、Ｖｔｉ＝Ｉｔ０ｉにより計算する。なお、ここでは、時刻ｔ１のＩｔ１ｉがＶｍａｘ以下であるとする。時刻ｔ１のＩｔ１ｉがＶｍａｘを超える場合は、Ｉｔ１ｉ＝Ｖｍａｘとする。
【００９１】
パラメータ処理部２４０は、図１３に示されるように、時刻ｔ１以降、ＶｔｉがＶｍａｘに達する時刻まで、Ｖｔｉを単位時間当たりａｔｉｊで増加させる。また、パラメータ処理部２４０は、この期間のＮｉのステータスＳｔｉを上昇相に決定する。
【００９２】
また、ＶｔｉがＶｍａｘに達すると、ＶｔｉがＶｍｉｎに達するまで、Ｖｔｉを単位時間当たり｜ｂｔｉ｜減少させる。また、パラメータ処理部２４０は、この期間のＮｉのステータスを下降相に決定する。そして、ＶｔｉがＶｍｉｎに達すると、次の時刻におけるＶｔ６ｉを、Ｖｔ６ｉ＝Ｉｔ６ｉにより計算する。また、ＶｔｉがＶｍｉｎに達した後のステータスを未発火に決定する。
【００９３】
なお、Ｎｉのステータスが下降相にある場合、算出されたＶｍｔｉがＴｔｉを下回ったとしても、ＶｍｔｉはＩｔｉに依存しない。パラメータ処理部２４０は、ＶｍｔｉがＴｔｉを下回ったとしても、ＶｍｔｉがＶｍｉｎに達するまで、増減パラメータに従ってＶｍｔｉを算出する。
【００９４】
図１４は、Ｎｉの増減パラメータとして関数ｈｔｉが定義されている場合の結合係数の時間発展を概略的に示す。一般に、ｈｔｉは、発火時刻ｔｆからの経過時間Δｔ（＝ｔ−ｔｆ）≧０において定義される。ｈｔｉは、少なくともΔｔの関数である。ｈｔｉは実数の値をとり、ｈｔｉの値域はＶｍｉｎ以上Ｖｍａｘ以下である。
【００９５】
図１４に示す関数１４００は、ｈｔｉの一例である。関数１４００は、時刻ｔｆにおけるＶｍｔｆｉ及びΔｔの関数である。関数１４００は、Δｔが所定の値より小さい範囲で場合に単調増加し、Δｔが所定の値より大きい場合に単調減少する。関数１４００は、Δｔ＝０において値Ｖｍｔｆｉをとる。
【００９６】
図１４は、出力の増減パラメータとして関数１４００が定義されており、時刻ｔ１においてＮｉが発火した場合の出力を示す。パラメータ処理部２４０は、関数１４００、Δｔ及びＶｍｆｉに基づいて、時刻ｔ１〜時刻ｔ５の各時刻のＶｍｔｉを計算する。Ｖｍｔｉは時刻ｔ５でＶｍｉｎに達しているため、時刻ｔ６ではＶｍｔｉ＝Ｉｔ６ｉとなる。
【００９７】
図１５は、増減パラメータとしての関数ｈｔｉの他の例を概略的に示す。関数１５１０及び関数１５２０は、それぞれｈｔｉの一例である。
【００９８】
関数１５１０は、時刻ｔｆにおける出力Ｖｍｔｆｉ及びΔｔの関数である。関数１５１０は、Δｔ＝０において値Ｖｍｔｆｉとなる関数である。また、関数１５１０は、Δｔが所定の値より小さい範囲で場合に単調増加し、Δｔが所定の値より大きい場合に単調減少する関数である。
【００９９】
関数１５２０は、Δｔのみの関数である。関数１５２０は、Δｔ＝０において値Ｖｍｉｎとなる関数である。また、関数９２０は、Δｔが所定の値より小さい範囲で場合に単調増加し、Δｔが所定の値より大きい場合に単調減少する関数である。
【０１００】
以上に説明したように、パラメータ処理部２４０は、ニューロンの活動電位の変化をモデルにして出力を計算することができる。そのため、出力の上昇及び下降を表現できる。また、発火後の出力の変化を増減パラメータによって比較的に自由に表現できる。これにより、状態を表現する幅を広げることができる。
【０１０１】
なお、図６等に示したように、増減パラメータとしてａｉｊ及びｂｉｊを用いた場合、結合係数は時間の経過と共に直線的に変化する。また、図１３等に示したように、ａｊ及びｂｊを用いた場合、出力は時間の経過と共に直線的に変化する。しかし、ａｉｊ及びｂｉｊのような係数を、直線以外の関数の係数に適用してよい。また、複数の係数群として、多項式や他の関数等に適用してもよい。例えば、ａ１×Δｔ＋ａ２×ｅΔｔや、ｂ１×Δｔ２＋ｂ２×Δｔ−１等、係数群として定義できるようにしてよい。これにより、結合係数や出力を比較的に多様な時間発展を実現できる。なお、このような係数によれば、ユーザは比較的に簡単にニューラルネットワークの挙動を変えることができる。これらの係数によっても、出力の上昇相及び下降相のヒステリシス特性を比較的容易に実装できる。一方、ｈｉｊやｈｉの関数を定義可能にすることで、生体のニューロンの発火状態や生体における学習効果により近い実装が可能になる。
【０１０２】
なお、ニューラルネットワークにおいて、人工ニューロンの発火状態が時間経過とともに一方向に促進され続ける現象が生じる場合がある。例えば強結合の人工シナプスによってループ状に繋がった人工ニューロンがニューラルネットワーク内に存在する場合、ループ状に繋がった人工ニューロンが連続的に発火して、それによってループ内の隣接する人工ニューロンがそれぞれ同時発火して人工ニューロン間の人工シナプスの結合係数が強まることで、人工ニューロンの発火が促進され続ける場合がある。また、ある内分泌人工ニューロンの発火の影響で他の人工ニューロンの閾値が下がり、影響を受けた当該人工ニューロンの発火が当該内分泌人工ニューロンの発火を促進するような場合等も同様である。また逆に、人工シナプスが抑制結合で接続されている場合や内分泌人工ニューロンの発火によって人工ニューロンの閾値を上げる処理が定義されている場合等には、人工ニューロンの発火が時間経過とともに一方向に抑制され続ける場合がある。そこで、パラメータ処理部２４０は、人工ニューロンの発火状態、人工シナプスの結合係数の時間的な変化等を監視して、発火状態が正帰還又は負帰還する人工ニューロンの存在を検出した場合に、人工ニューロンの閾値を人工シナプスの結合係数を調節することで、発火状態が一方向に促進され続けることを抑制してよい。例えば正帰還系を形成する人工ニューロンの閾値を上げたり、正帰還系を形成する人工シナプスの結合係数を下げたりすることによって、発火が促進され続けることを抑制してよい。また、負帰還系を形成する人工ニューロンの閾値を下げたり、負帰還系を形成する人工シナプスの結合係数を上げたりすることによって、発火が抑制され続けることを抑制してよい。
【０１０３】
図１６は、ユーザ端末１００が表示するパラメータビューワの画面例を概略的に示す。通信部２０８は、パラメータ処理部２４０によって更新されたパラメータのデータを、実質的にリアルタイムにユーザ端末１００に送信する。処理部１０２は、更新されたパラメータのデータを受信すると、２次元のテーブル形式でパラメータを表示する。これにより、ユーザは、パラメータの値が時々刻々変化するパラメータを、ユーザ端末１００上で確認できる。このように、処理部１０２は、時間的に更新される複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示する。
【０１０４】
図１６や図４に示されるように、表示される人工ニューロンのパラメータは、閾値、発火状態、最後に発火した時刻、出力、最後に発火した時刻における出力、及び発火時の出力の時間発展を定めるパラメータの少なくとも１つを含む。また、表示される人工シナプスのパラメータは、接続された人工ニューロンへの結合係数、人工シナプスが結びつけている２つの人工ニューロンが最後に同時に発火した時刻である最終同時発火時刻、当該最終同時発火時刻における結合係数、及び同時の発火が生じた後の結合係数の時間発展を定めるパラメータの少なくとも１つと、人工シナプスの識別情報とを含む。
【０１０５】
図１７は、ニューラルネットワークをグラフィカルに編集する場合に提示される画面を概略的に示す。図４において、ニューラルネットワークのパラメータを２次元的なテーブル形式で編集する画面の一例を示した。図１７は、ユーザ３０がパラメータをよりグラフィカルに編集できる環境を提供する。
【０１０６】
図１７は特に、感情人工ニューロンを編集する画面を一例として示す。図１７において、丸形のオブジェクトは人工ニューロンを表す。オブジェクト内には、各感情人工ニューロンに定められた感情を表す文字が表示される。そして、感情人工ニューロン間を結ぶ人工シナプスは、線で表される。
【０１０７】
この編集画面上で、ユーザは、例えばマウス操作やキーボード操作によって、人工ニューロンの追加、削除、パラメータの編集をすることができる。また、ユーザは、例えばマウス操作やキーボード操作によって、人工シナプスの追加、削除、パラメータの値の編集を行うことができる。
【０１０８】
なお、サーバ２００は、ニューラルネットワークの計算が開始された後、パラメータ処理部２４０によって変更されたパラメータの値に基づくニューラルネットワークを、ユーザ端末１００にグラフィカルに表示させる。この場合、ニューラルネットワークの人工ニューロン及び人工シナプスの接続関係は、本編集画面と同様にグラフィカルに表示される。パラメータが変更される様子を表す表示例については、図１９から図２２に関連して説明する。
【０１０９】
図１８は、人工シナプスを編集する編集画面の一例である。図１７に示す編集画面１７００において、人工シナプスが右クリックされると、人工シナプスの編集画面１８００が表示される。
【０１１０】
編集画面１８００は、選択された人工シナプスが接続する２つの人工ニューロンに定められた意味、人工ニューロンの出力が向かう方向、人工シナプスのパラメータの名称及び現在の値、及び、パラメータを変更するための操作部を含む。人工シナプスのパラメータには、結合係数の初期値、増減パラメータａ及びｂのそれぞれの初期値を含む。また、編集画面は、編集をキャンセルすることを指示するキャンセルボタン、編集したパラメータの値で初期値を更新することを指示する更新ボタン、及び、人工シナプスを削除することを指示する削除ボタンを含む。
【０１１１】
視覚的にニューラルネットワークのパラメータの初期値を編集することができる。そのため、熟練していないユーザでも、ニューラルネットワークを比較的に容易に編集することができる。
【０１１２】
図１９は、人工ニューロンの出力の表示例を概略的に示す。処理部２０２は、各ＮｉのＶｍｔｉの大きさに基づいて、各人工ニューロンＮｉを表すオブジェクト内の色を変えてユーザ端末１００に表示させる。例えば、処理部１０２は、Ｖｍｔｉが大きいほど、オブジェクト内の色を濃くする。これにより、ユーザは、人工ニューロンの出力の変化を容易に認識できる。なお、Ｖｍｔｉが大きいほど、オブジェクト内の色を薄くしてもよい。色の濃さを限らず、色の明るさ、彩度、色自体をＶｍｔｉに応じて変えてもよい。
【０１１３】
図２０は、人工シナプスを電気信号が伝搬する様子の表示例を概略的に示す。処理部２０２は、各Ｎｉの発火状態と当該Ｎｉに接続されている人工シナプスの情報に基づいて、電気信号の伝搬を示すアニメーションをユーザ端末１００に表示させる。例えば、処理部２０２は、電気信号を表すオブジェクト２０１０の表示位置を、出力側の人工ニューロンから入力側の人工ニューロンへ時間的に移動させる。なお、処理部２０２は、オブジェクト２０１０の位置を算出する時間ステップを、パラメータ計算の時間ステップｔｎ＋１−ｔｎよりも短くする。このような表示によって、ユーザは、例えばある人工ニューロンの発火がどのようなルートを辿って他の人工ニューロンの発火に結びつくかを、容易に理解することができる。
【０１１４】
図２１は、人工シナプスによる人工ニューロン間の結合状態の表示例を概略的に示す。処理部２０２は、各ＳｉｊのＢＳｔｉｊの符号に基づいて、強結合であるか抑制結合であるかを、人工シナプスを表す線の色を変えてユーザ端末１００に表示させる。例えば、処理部２０２は、ＢＳｔｉｊが正である場合に、Ｓｉｊを表す線を、強結合を表す青色で表示させる。処理部２０２は、ＢＳｔｉｊが負である場合に、Ｓｉｊを表す線を、抑制結合を表す赤色で表示させる。これにより、ユーザは、人工シナプスが強結合であるか抑制結合であるかを一目で認識できる。
【０１１５】
また、処理部２０２は、各ＳｉｊのＢＳｔｉｊの大きさに基づいて、人工シナプスを表す線の幅を変えてユーザ端末１００に表示させる。例えば、処理部２０２は、ＢＳｔｉｊが大きいほど、Ｓｉｊを表す線の幅を大きくする。これにより、ユーザは、人工シナプスによる人工ニューロン間の結合の度合いを一目で認識できる。
【０１１６】
なお、人工ニューロン間に双方向の人工シナプスが定義されている場合、それぞれの人工シナプスを別々の線で表示してよい。また、人工シナプスの入出力の方向を表す矢印などのマークを付加して、人工シナプスが識別できるようにしてよい。
【０１１７】
図２２は、人工ニューロンの配置の表示例を概略的に示す。処理部２０２、各ＳｉｊのＢＳｔｉｊ及び人工ニューロン間の接続関係の少なくとも一方に基づいて各人工ニューロン対間の距離を算出し、距離が短い人工ニューロン対をより近くに配置して表示させてよい。
【０１１８】
ここで距離とは、人工ニューロン間の結合の度合いを表す。人工ニューロン間の距離は、人工ニューロン対間に介在する人工シナプスの結合係数が大きいほど短く算出されてよい。また、人工ニューロン対間の距離は、人工ニューロン対の間に直列に介在する人工シナプスの数が少ないほど短く算出されてよい。また、人工ニューロン間の距離は、人工ニューロン対間に並列に介在する人工シナプスの数が多いほど、短く算出されてよい。また、人工ニューロン対間に１以上の人工ニューロンが接続されている場合、人工ニューロン対間に直列に介在する全ての人工シナプスのＢＳｔｉｊの平均値や最小値等を実効的な結合係数とみなして、当該実効的な結合係数に基づいて距離が算出されてよい。
【０１１９】
図２３は、内分泌人工ニューロンが影響する人工ニューロンの範囲の表示例を概略的に示す。内分泌人工ニューロンのオブジェクトをユーザがマウス操作等で指定すると、処理部２０２は、選択されたオブジェクトが表す内分泌人工ニューロンから影響を受ける人工ニューロンのオブジェクトを、強調して表示させる。処理部２０２は、定義情報２８４に含まれる影響定義情報に基づいて、影響を受ける人工ニューロンを特定する。
【０１２０】
例えば、Ｎ２のオブジェクトが選択された場合、処理部２０２は、Ｎ２によって発火が抑制されるＮ１及びＮ３を囲う範囲２３１０を赤色で表示させる。また、処理部２０２は、Ｎ２によって発火を促進する方向に影響を受ける人工シナプスの線及びオブジェクトを囲う範囲２３２０を青色で表示させる。これにより、ユーザは、選択した内分泌人工ニューロンがどの人工ニューロンや人工シナプスに化学的な影響を与えるかを容易に認識できる。
【０１２１】
図２４は、人工ニューロンのパラメータを計算する優先順位を定めた優先人工ニューロン情報を概略的に示す。優先人工ニューロン情報は、優先的にパラメータを計算するべき人工ニューロンである優先人工ニューロンを識別する情報に対応づけて、優先順位を示す値及び当該優先人工ニューロンの入力に影響を与える人工ニューロンである関連人工ニューロンを特定する情報を定める。パラメータ処理部２４０は、サーバ２００においてパラメータ更新の計算に利用可能なリソース量に基づいて、パラメータを更新する人工ニューロン及び人工シナプスを、優先順位に従って選択する。
【０１２２】
なお、関連人工ニューロンは、ニューラルネットワークにおける人工ニューロンの接続関係に基づいて、初期設定において設定されてよい。例えば、パラメータ処理部２４０は、優先人工ニューロンの閾値等に影響を及ぼす内分泌人工ニューロンを、関連人工ニューロンとして設定する。また、パラメータ処理部２４０は、優先人工ニューロンから信号の入力方向の逆順で人工シナプスを辿っていくことで、優先人工ニューロンの入力に人工シナプスを介して影響を与える１以上の人工ニューロンを特定して、関連人工ニューロンに格納してよい。
【０１２３】
パラメータ処理部２４０は、優先人工ニューロンをパラメータの更新対象とする場合、優先人工ニューロンに対応する関連人工ニューロンも、パラメータの更新対象とする。ここで、パラメータ処理部２４０は、サーバ２００における利用可能なリソース量に基づいて、パラメータの更新対象とする更新対象人工ニューロンの数の上限値を決定する。そして、パラメータ処理部２４０は、パラメータの更新対象とする人工ニューロン数が、決定した上限値以下になるよう、優先順位の降順で優先人工ニューロン選択することによって、更新対象人工ニューロンを決定してよい。
【０１２４】
そして、パラメータ処理部２４０は、例えば、図５のＳ５１０においてＢＳｔｎ＋１ｉｊを計算する場合、更新対象人工ニューロンの入力に接続されている人工シナプスのＢＳｔｎ＋１ｉｊの値のみを更新し、他の人工シナプスのＢＳｔｎ＋１ｉｊの値は計算せずにＢＳｔｎｉｊの値を維持する。同様に、Ｓ５２０及びＳ５４０においても、更新対象人工ニューロンのパラメータの値、及び、更新対象人工ニューロンの入力に接続されている人工シナプスのパラメータの値のみを更新対象とし、他のパラメータの値は更新せず、値を維持する。更新対象人工ニューロン以外のパラメータの値も維持される。
【０１２５】
これにより、サーバ２００で利用可能なリソースが少なくなった場合に、重要な人工ニューロンについては高い更新頻度を維持できる。例えば、サーバ２００で利用可能なリソースが少なくなった場合に、危険の有無を判断する機能を維持することができる。なお、パラメータ処理部２４０は、サーバ２００で利用可能なリソースが十分な場合は、全人工ニューロン及び全人工シナプスのパラメータを更新してよい。
【０１２６】
図２５は、システム２０に係るソフトウェアアーキテクチャを示す。上記の説明では主として、人工ニューロン及び人工シナプスのパラメータの編集処理、更新処理及び表示処理の内容を説明した。ここでは、各処理を行うソフトウェア上の主体に関連する事項を説明する。
【０１２７】
サーバ２００において、処理部２０２には、パラメータ処理部２４０の機能を担う複数の更新エージェント２４００と、ユーザ端末１００との間のデータ入出力を担う入出力エージェント２４５０ａ及び２４５０ｂが実装される。入出力エージェント２４５０ａは、ユーザ端末１００の処理部１０２に実装されるエディタ機能部からパラメータの初期値を受信して、データ構造２５００に格納する処理を行う。入出力エージェント２４５０ａは、パラメータ処理部２４０によって更新されたパラメータをユーザ端末１００に送信して、処理部１０２に実装されるビューワ機能部に表示させる処理を行う。エディタ機能部及びビューワ機能部は、例えばウェブブラウザによって処理部１０２に実装される。ユーザ端末１００とサーバ２００との間でやりとりされるデータは、ＨＴＴＰプロトコルに従って転送されてよい。
【０１２８】
複数の更新エージェント２４００は、それぞれデータ構造２５００に人工ニューロン単位でアクセスして、人工ニューロン単位でパラメータの更新計算を行う。複数の更新エージェント２４００は、それぞれ、ニューラルネットワークのパラメータを格納したデータ構造２５００にアクセスできる。また、複数の更新エージェント２４００は、それぞれパラメータの更新計算を行うことができる。複数の更新エージェント２４００の処理は、それぞれ別個のプロセスによって実行されてよい。また、複数の更新エージェント２４００は、それぞれ１つのプロセス内の複数のスレッドに実行されてよい。
【０１２９】
データ構造２５００は、図１６に関連して説明した情報と同様に、人工ニューロン単位で一括してアクセス可能な形式で生成される。パラメータ処理部２４０は、図５のＳ５０２の初期処理において、データ構造２５００を処理部２０２内のメモリに生成してよい。データ構造２５００は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値に一括的なデータ単位でアクセス可能な構造を持つ。そして、更新エージェント２４００は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値に、データ構造２５００を通じて複数の人工ニューロンに人工ニューロン毎にアクセスして、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される１以上の人工シナプスのパラメータの値を時間的に更新する。そのため、複数の更新エージェント２４００は、パラメータの値を時間的に更新する処理を並列に行うことができる。
【０１３０】
図２５から図２７は、パラメータの値の更新処理をマルチプロセス処理によって並列に行う方法を示す。複数のプロセスで並列に行う場合、データ構造２５００は共有メモリとして確保したメモリ領域内に形成されてよい。図２６は、複数の人工ニューロンに対して更新計算を行う前の状態を概略的に示す。４つのプロセス１は、どの人工ニューロンのパラメータ計算を行うかを個々に決定する。図２７に示すように、時刻ｔ１において、プロセス１が、未計算のＮ１の行のデータを読み出して、Ｎ１のパラメータの更新計算を開始する。時刻ｔ２において、プロセス２が、未計算のＮ２の行のデータを読み出して、Ｎ２のパラメータの更新計算を開始する。時刻ｔ３において、プロセス３が、未計算のＮ３の行のデータを読み出して、Ｎ３のパラメータの更新計算を開始する。時刻ｔ４において、プロセス４は、未計算のＮ１の行のデータを読み出して、Ｎ１のパラメータの更新計算を開始する。
【０１３１】
時刻５において、プロセス１は、Ｎ１のパラメータの計算が完了すると、Ｎ１のパラメータが未計算であることを確認した上で、Ｎ１の行のデータをロックして計算結果を書込み、Ｎ１の行のデータをアンロックする。時刻ｔ５において、プロセス１はＮ１の行のデータをロックして、計算結果を書込み、Ｎ１の行のデータをアンロックする。同様に、プロセス２及びプロセス３も、各人工ニューロンについての計算が完了すると、各人工ニューロンの行のデータに計算結果を書込む。図２８には、時刻ｔ６における計算状態が概略的に示されている。
【０１３２】
ここで、図２６を参照して、時刻ｔ７において、プロセス４がＮ１においてパラメータの計算が完了すると、Ｎ１のパラメータが未計算であるかを判断する。プロセス４は、Ｎ１のパラメータが計算済であることを認識すると、プロセス４が行ったＮ１の計算結果を破棄する。続いて、プロセス４は、Ｎ５が未計算であると判断して、Ｎ５の行のデータを読み出して、Ｎ５のパラメータの更新計算を開始する。
【０１３３】
このように、データ構造２５００によれば、マルチプロセス処理によって、プロセス毎に未計算の人工ニューロンを選択して計算を開始して、計算が最も早く完了したプロセスのみが計算結果を書込むように実装できる。
【０１３４】
なお、上記のように各プロセスが個々に人工ニューロンを選択して関連するパラメータを計算する処理と同様の処理は、図５のＳ５１０、Ｓ５２０、Ｓ５４０のそれぞれに適用できる。例えば、図５のＳ５１０については、人工ニューロンではなく人工シナプスを選択及び計算の対象とすることで、同様の処理を行うことができる。
【０１３５】
また、マルチプロセス処理によれば、図５のＳ５１０の処理とＳ５２０の処理とを並列で行うことができる。この場合、並列して行った計算結果を重ね合わせることで、最終的な計算結果を生成してよい。また、Ｓ５２０の処理をあるプロセスが行っている場合に、他のプロセスにおいて、化学的影響による変化の影響を受けない人工ニューロンを選択して、図５のＳ５４０の処理を行ってもよい。
【０１３６】
また、同様の処理は、マルチプロセス処理に限らず、マルチスレッドシステムで行うことができる。マルチスレッドシステムでは、上述した各プロセスでの処理を各スレッドに置き換えることで実現できる。
【０１３７】
図２９は、サブシステム間で分散制御を行うためのニューラルネットワークの構成を概略的に示す。上述の実施形態では、単一のサーバ２００がニューラルネットワークの処理を実現する。ここでは、３つの独立したサーバによって、１つのニューラルネットワーク２９００を構築される例を示す。
【０１３８】
ニューラルネットワーク２９００は、サブニューラルネットワーク２９１０、サブニューラルネットワーク２９２０及びサブニューラルネットワーク２９３０で形成される。サブニューラルネットワーク２９１０、サブニューラルネットワーク２９２０及びサブニューラルネットワーク２９３０の計算は、互いに異なるサーバによって行われる。
【０１３９】
ここで、サブニューラルネットワーク２９１０の人工ニューロン２９１４は、サブニューラルネットワーク２９２０の人工ニューロン２９２１及びサブニューラルネットワーク２９３０の人工ニューロン２９３１と同じ概念が定義された人工ニューロンである。また、サブニューラルネットワーク２９２０の人工ニューロン２９２３は、サブニューラルネットワーク２９３０の人工ニューロン２９３４と同じ概念が定義された人工ニューロンである。また、サブニューラルネットワーク２９１０の人工ニューロン２９２５は、サブニューラルネットワーク２９３０の人工ニューロン２９３２と同じ概念が定義された人工ニューロンである。
【０１４０】
人工ニューロン２９１４は、人工シナプス２９４０によって人工ニューロン２９３１に接続されている。また、人工ニューロン２９１４は、人工シナプス２９６０によって人工ニューロン２９２１に接続されている。また、人工ニューロン２９１５は、人工シナプス２９５０によって人工ニューロン２９３２に接続されている。また、人工ニューロン２９２３は、人工シナプス２９７０によって人工ニューロン２９３４に接続されている。人工シナプス２９４０、人工シナプス２９５０、人工シナプス２９６０及び人工シナプス２９７０は、ネットワークを介する通信によって実現される。
【０１４１】
例えば、人工ニューロン２９１５が「視界にＡさんがいる」という状況が定義された概念人工ニューロンである場合、人工ニューロン２９３２も「視界にＡさんがいる」という状況が定義された概念人工ニューロンである。人工ニューロン２９１５が発火した場合、人工ニューロン２９１５の出力は、サブニューラルネットワーク２９１０からサブニューラルネットワーク２９３０にネットワークを介して送信される。
【０１４２】
なお、１つのサーバで構築されるべきサブニューラルネットワークを構成する複数の人工ニューロンは、人工ニューロン間の距離が予め定められた距離より短いことが好ましい。また、機能単位にサブニューラルネットワークに分割されてよい。例えば、サブニューラルネットワーク２９１０は、カメラ映像に基づく空間認識を担う機能部分のニューラルネットワークであってよい。
【０１４３】
なお、各サブニューラルネットワークは、非同期でニューラルネットワークの処理を行ってよい。また、第１のサブニューラルネットワークにおいて、第２のサブニューラルネットワークから受け取った出力が誤っている可能性が高いことを検出した場合、第１のサブニューラルネットワークの処理を行うサーバは、第２のサブニューラルネットワークの処理を行うサーバに、出力に誤りがある旨を通知してよい。例えば、「視界にＡさんがいる」という出力が続いた後に、突然に「視界にＢさんがいる」という出力を取得した場合、その出力に誤りがあると判断してよい。
【０１４４】
出力の誤りが通知された場合、第２のサブニューラルネットワークにおいて、誤りが通知された時刻の出力を再度計算して、第１のサブニューラルネットワークに出力してよい。このとき、第２のサブニューラルネットワークでは、先に出力した最も確からしい計算結果を除き、次に最も確からしい計算結果を出力してよい。
【０１４５】
なお、上述した実施形態に係るニューラルネットワークを電気回路とみなすと、上述したサーバ２００や図２９に関連して説明したサーバの処理により実現されるニューラルネットワークの動作は、アナログコンピュータの動作とみなすことができる。例えば、ニューラルネットワークの人工ニューロンの出力を、アナログコンピュータの電気回路における対応する部分の電圧とみなすことができる。他にも、人工シナプスを伝わる信号を電流とみなすことができ、人工シナプスの結合係数を対応する電気回路の抵抗とみなすことができ、人工ニューロンの出力の増減パラメータや式を回路特性とみなすことができる。また、上述した実施形態に係るニューラルネットワークの接続をグラフィカルに変更する操作は、アナログコンピュータの素子を手でつなぎ変える操作に対応する。また、ニューラルネットワークに入力を加えたり、パラメータを変更することは、アナログコンピュータの電気回路に電圧をかけたり、電気回路内のポテンショメータ等の値を変更することに対応する。したがって、上述したニューラルネットワークの処理をサーバ２００や図２９に関連して説明したサーバ等のノイマン型コンピュータにプログラムで実装することは、ニューラルネットワークのアナログコンピュータモデルをノイマン型コンピュータに実装することと同等である。
【０１４６】
以上に説明した実施形態では、ロボット４０とは異なるサーバが、ニューラルネットワークの処理を担う。しかし、ロボット４０自身が、ニューラルネットワークの処理を担ってよい。
【０１４７】
なお、ロボット４０は、制御対象となる電子機器の一例である。制御対象となる電子機器はロボット４０に限られない。様々な電子機器を制御対象として適用できる。
【０１４８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【０１４９】
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１５０】
２０  システム
３０  ユーザ
４０  ロボット
９０  通信網
１００  ユーザ端末
５０  ロボット
１０２  処理部
１０４  表示部
１０６  入力装置
１０８  通信部
１５２  処理部
１５５  制御対象
１５６  センサ部
１５８  通信部
２００  サーバ
２０２  処理部
２０８  通信部
２１０  初期値設定部
２３０  外部入力データ生成部
２４０  パラメータ処理部
２５０  動作決定部
２８０  格納部
２８２  行動決定ルール
２８４  定義情報
２８６  パラメータ初期値
２８８  パラメータ
３００  ニューラルネットワーク
３０１、３０２、３０３、３０４、３０５、３０６、３０７、３０８、３０９、３１０  人工シナプス
４００  パラメータ編集画面
７００、９１０、９２０  関数
１４００、１５１０、１５２０  関数
１７００  編集画面
１８００  編集画面
２０１０  オブジェクト
２３１０  範囲
２３２０  範囲
２４００  更新エージェント
２４５０  入出力エージェント
２５００  データ構造
２９００  ニューラルネットワーク
２９１０  サブニューラルネットワーク
２９１４、２９１５  人工ニューロン
２９２０  サブニューラルネットワーク
２９２１、２９２３、２９２５  人工ニューロン
２９３０  サブニューラルネットワーク
２９３１、２９３２、２９３４  人工ニューロン
２９４０、２９５０、２９６０、２９７０  人工シナプス
【図１】
2016166881.tif 000003
【図２】
2016166881.tif 000004
【図３】
2016166881.tif 000005
【図４】
2016166881.tif 000006
【図５】
2016166881.tif 000007
【図６】
2016166881.tif 000008
【図７】
2016166881.tif 000009
【図８】
2016166881.tif 000010
【図９】
2016166881.tif 000011
【図１０】
2016166881.tif 000012
【図１１】
2016166881.tif 000013
【図１２】
2016166881.tif 000014
【図１３】
2016166881.tif 000015
【図１４】
2016166881.tif 000016
【図１５】
2016166881.tif 000017
【図１６】
2016166881.tif 000018
【図１７】
2016166881.tif 000019
【図１８】
2016166881.tif 000020
【図１９】
2016166881.tif 000021
【図２０】
2016166881.tif 000022
【図２１】
2016166881.tif 000023
【図２２】
2016166881.tif 000024
【図２３】
2016166881.tif 000025
【図２４】
2016166881.tif 000026
【図２５】
2016166881.tif 000027
【図２６】
2016166881.tif 000028
【図２７】
2016166881.tif 000029
【図２８】
2016166881.tif 000030
【図２９】
2016166881.tif 000031
【国際調査報告】
2016166881.tif 000032
2016166881.tif 000033
2016166881.tif 000034
2016166881.tif 000035