JPWO2016166881A1 - 処理システム及びプログラム - Google Patents

処理システム及びプログラム Download PDF

Info

Publication number
JPWO2016166881A1
JPWO2016166881A1 JP2017512163A JP2017512163A JPWO2016166881A1 JP WO2016166881 A1 JPWO2016166881 A1 JP WO2016166881A1 JP 2017512163 A JP2017512163 A JP 2017512163A JP 2017512163 A JP2017512163 A JP 2017512163A JP WO2016166881 A1 JPWO2016166881 A1 JP WO2016166881A1
Authority
JP
Japan
Prior art keywords
artificial
neuron
artificial neuron
neurons
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017512163A
Other languages
English (en)
Other versions
JP6446126B2 (ja
Inventor
筒井 多圭志
多圭志 筒井
康介 朝長
康介 朝長
悠磨 三平
悠磨 三平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SoftBank Robotics Corp
Original Assignee
Cocoro SB Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cocoro SB Corp filed Critical Cocoro SB Corp
Publication of JPWO2016166881A1 publication Critical patent/JPWO2016166881A1/ja
Application granted granted Critical
Publication of JP6446126B2 publication Critical patent/JP6446126B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Feedback Control In General (AREA)

Abstract

処理システムは、ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを処理する処理システムであって、複数の人工ニューロンの各人工ニューロンに対して制御対象の状態を定義した定義情報を格納する格納部と、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される1以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いて処理する処理部と、複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる前記少なくとも一部の人工ニューロンの活性状態と、前記少なくとも一部の人工ニューロンに定義されている状態とに基づいて、前記制御対象の動作を決定する動作決定部とを備える。

Description

本発明は、処理システム及びプログラムに関する。
ユーザ情報、機器情報及び自身の現在の感情状態を入力して次回の感情状態を出力するニューラルネットを備える感情生成装置が知られている(例えば、特許文献1参照)。また、方向性人工シナプス接続性を有するレイヤ・ニューラルネット関係を有する複数の電子ニューロンを含む連想メモリに時空パターンを記憶する技術が知られている(例えば、特許文献2参照)。
[先行技術文献]
[特許文献]
[特許文献1]特開平10−254592号公報
[特許文献2]特表2013−535067号公報
ニューラルネットワークを構成する個々の人工ニューロン及び人工シナプスのパラメータを効率的に処理することができないという課題があった。
本発明の第1の態様においては、ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを処理する処理システムであって、複数の人工ニューロンの各人工ニューロンに対して制御対象の状態を定義した定義情報を格納する格納部と、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される1以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いて処理する処理部と、
複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる少なくとも一部の人工ニューロンの活性状態と、少なくとも一部の人工ニューロンに定義されている状態とに基づいて、制御対象の動作を決定する動作決定部とを備える処理システムが提供される。
処理部による処理は、複数の人工ニューロン及び人工シナプスのパラメータの値を人工ニューロン毎に更新すること、複数の人工ニューロン及び人工シナプスのパラメータの現在の値を人工ニューロン毎に一括的にユーザに提示すること、及び、複数の人工ニューロン及び人工シナプスのパラメータの値を人工ニューロン毎に一括的にユーザに提示してユーザからパラメータの値の入力を受け付けることを含んでよい。
処理部は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示してよく、提示されたパラメータの値を変更するためのテーブルに対するユーザ入力を受け付けてよい。
処理部は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値に一括的なデータ単位でアクセス可能なデータ構造を生成してよく、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値に、データ構造を通じて複数の人工ニューロンに人工ニューロン毎にアクセスして、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を時間的に更新してよい。
処理部は、時間的に更新される複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示してよい。
人工ニューロンのパラメータは、閾値、活性状態、最後に活性化した時刻、出力、最後に活性化した時刻における出力、及び活性化時の出力の時間発展を定めるパラメータの少なくとも1つを含んでよく、人工シナプスのパラメータは、接続された人工ニューロンへの結合係数、人工シナプスが結びつけている2つの人工ニューロンが最後に同時に活性化した時刻である同時活性化時刻、当該同時活性化時刻における結合係数、及び同時の活性化が生じた後の結合係数の時間発展を定めるパラメータの少なくとも1つと、人工シナプスの識別情報とを含んでよい。
複数の人工ニューロンには、内分泌物質の発生状態が定義された人工ニューロンである内分泌人工ニューロンが含まれてよく、格納部は、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータに、内分泌人工ニューロンの出力及び活性状態の少なくとも一方が与える影響を定めた影響定義情報を更に格納してよく、処理部は、内分泌人工ニューロンの出力及び活性状態の少なくとも一方と、影響定義情報とに基づいて、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータを更新してよい。
内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える他の人工ニューロンのパラメータは、他の人工ニューロンの閾値、活性状態、及び、活性化時の出力の時間発展を定めるパラメータの少なくとも1つを含んでよく、内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える人工シナプスのパラメータは、当該人工シナプスの結合係数、及び、当該人工シナプスが結びつけている2つの人工ニューロンが最後に同時に活性化した後の結合係数の時間発展を定めるパラメータの少なくとも1つを含んでよい。
複数の人工ニューロンには、制御対象の現在の感情が定義された人工ニューロンである感情人工ニューロンを更に含んでよく、影響定義情報は、報酬系に関連づけられた内分泌人工ニューロンの活性状態が感情人工ニューロンの閾値に与える影響を定めた情報を含んでよく、処理部は、内分泌人工ニューロンが活性化した場合に、影響定義情報に従って、感情人工ニューロンの閾値を更新してよい。
処理部は、複数の人工ニューロンのうちの一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新してよい。
処理部は、処理システムにおいて演算に利用可能なリソース量が予め定められた値より小さい場合に、一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新してよい。
複数の人工ニューロンには、優先順位が予め割り当てられていてよく、処理部は、複数の人工ニューロンの中から、処理システムにおいて演算に利用可能なリソース量の範囲内でパラメータを更新可能な一部の人工ニューロンを優先順位に従って選択してよく、選択した一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新してよい。
ニューラルネットワークは、制御対象の状態が定義されていない人工ニューロンである非定義人工ニューロンを1以上含んでよく、処理部は、報酬系に関連づけられた内分泌人工ニューロンが活性化した場合に、非定義人工ニューロンのうち、当該内分泌人工ニューロン及び当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンを接続する1以上の非定義人工ニューロンに接続された人工シナプスの結合係数を高めてよい。
処理部は、報酬系に関連づけられた内分泌人工ニューロンと当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンとの間を接続するルートのうち、非定義人工ニューロンに接続された人工シナプスの結合係数を考慮した人工ニューロン間の距離がより近いルートをより優先して選択してよく、選択したルートを提供する非定義人工ニューロンに接続された人工シナプスの結合係数を高めてよい。
本発明の第2の態様によれば、コンピュータを、上記処理システムとして機能させるためのプログラムが提供される。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本実施形態に係るシステム20の一例を概略的に示す。 サーバ200、ユーザ端末100及びロボット40のブロック構成を概略的に示す。 ニューラルネットワーク300を概略的に示す。 ユーザ端末100に表示されるパラメータ編集画面を概略的に示す。 ロボット40が起動又はリセットされた場合のサーバ200の動作フローを概略的に示す。 人工シナプスの結合係数の計算を概略的に説明する図である。 結合係数の増減パラメータとして関数h ijが定義されている場合の結合係数の時間発展を概略的に示す。 時刻t2で更に同時発火した場合の結合係数の時間発展を概略的に示す。 結合係数の増減関数の他の例を概略的に示す。 パラメータに与えられる化学的影響を定義する影響定義情報を概略的に示す。 出力及びステータスを計算するフローチャートを示す。 人工ニューロンが発火しない場合の出力の計算例を概略的に説明する図である。 人工ニューロンが発火する場合の出力の計算例を概略的に説明する図である。 人工ニューロンの増減パラメータとして関数が定義されている場合の結合係数の時間発展を概略的に示す。 増減パラメータとしての関数の他の例を概略的に示す。 ユーザ端末100が表示するパラメータビューワの画面例を概略的に示す。 ニューラルネットワークをグラフィカルに編集する場合に提示される画面を概略的に示す。 人工シナプスを編集する編集画面の一例である。 人工ニューロンの出力の表示例を概略的に示す。 人工シナプスを電気信号が伝搬する様子の表示例を概略的に示す。 人工シナプスによる人工ニューロン間の結合状態の表示例を概略的に示す。 人工ニューロンの配置の表示例を概略的に示す。 内分泌人工ニューロンが影響する人工ニューロンの範囲の表示例を概略的に示す。 人工ニューロンのパラメータを計算する優先順位を定めた優先人工ニューロン情報を概略的に示す。 システム20に係るソフトウェアアーキテクチャを概略的に示す。 複数の人工ニューロンに対して更新計算を行う前の状態を概略的に示す。 パラメータの値の更新処理をマルチプロセス処理によって並列に行う方法を示す。 更新計算の途中における計算状態を概略的に示す。 サブシステム間で分散制御を行うためのニューラルネットワークの構成を概略的に示す。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係るシステム20の一例を概略的に示す。システム20は、サーバ200と、ユーザ端末100aと、ユーザ端末100bと、ロボット40a及びロボット40bと、サーバ200とを備える。ユーザ端末100a、ユーザ端末100b及び、ロボット40a及びロボット40bは、通信網90を通じてサーバ200と通信して情報のやりとりを行う。
なお、ユーザ30aは、ロボット40a及びユーザ端末100aのユーザである。ユーザ30bは、ロボット40b及びユーザ端末100bのユーザである。ロボット40bは、ロボット40aと略同一の機能を有する。また、ユーザ端末100bは、ユーザ端末100aと略同一の機能を有する。そのため、ロボット40a及びロボット40bをロボット40と総称し、ユーザ端末100a及びユーザ端末100bをユーザ端末100と総称して、システム20を説明する。
システム20は、ロボット40の状態を決定するためのニューラルネットワークのパラメータを処理する。ニューラルネットワークのパラメータとは、ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを含む。
具体的には、ユーザ端末100は、ユーザ30からの入力に基づいて、ニューラルネットワークのパラメータの初期値を設定して、サーバ200に送信する。ロボット40は、ロボット40に設けられたセンサで検出されたセンサ情報を、サーバ200に送信する。サーバ200は、ニューラルネットワークの初期値情報と、ロボット40から取得したセンサ情報とに基づいて、ニューラルネットワークを用いて、ロボット40の状態を決定する。例えば、サーバ200は、ロボット40の周囲の状況、ロボット40自身の感情、及びロボット40自身の内分泌物質の生成状態を、ニューラルネットワークを用いて計算する。そして、サーバ200は、ロボット40の周囲の状況、及びロボット40自身の感情、及びロボット40自身の内分泌物質の生成状態に基づいて、ロボット40の行動内容を決定する。なお、内分泌物質とは、神経伝達物質及びホルモン等、体内で分泌されシグナルを伝達する物質を意味する。また、内分泌とは、内分泌物質が体内で分泌されることを意味する。
例えば、サーバ200は、眠気に対応する内分泌物質が生成される状態であると判断した場合、ロボット40が眠くなった場合の行動を行わせる。また、サーバ200は、嬉しいという感情が生じる状態であると判断した場合、嬉しさを表す言葉をロボット40に発声させる。
なお、ロボット40自身の内分泌物質とは、ロボット40の行動に影響を及ぼす情報の1つであり、ロボット40が内分泌物質を実際に発生するということを意味していない。ロボット40自身の感情も同様に、ロボット40の行動に影響を及ぼす情報の1つであり、ロボット40が実際に感情を有しているということを意味していない。
図2は、サーバ200、ユーザ端末100及びロボット40のブロック構成を概略的に示す。ユーザ端末100は、処理部102と、表示部104と、入力装置106、通信部208とを有する。ロボット40bは、センサ部156と、処理部152と、制御対象155と、通信部158とを有する。サーバ200は、処理部202と、格納部280と、通信部208とを有する。処理部202は、初期値設定部210と、外部入力データ生成部230と、パラメータ処理部240と、動作決定部250とを含む。格納部280は、行動決定ルール282、定義情報284、パラメータ初期値286、及び最新のパラメータ288を格納する。
ユーザ端末100において、入力装置106は、ユーザ30からニューラルネットワークのパラメータの初期値の入力を受け付けて、処理部102に出力する。処理部102は、CPU等のプロセッサで形成される。処理部102は、入力装置106から取得したパラメータの初期値を、通信部108からサーバ200に送信させる。通信部108は、サーバ200からニューラルネットワークのパラメータを受信する。処理部102は、通信部108が受信したパラメータを、表示部104に表示させる。
ロボット40において、センサ部156は、カメラ、3D深度センサ、マイク、タッチセンサ、レーザ測距計、超音波測距計等の各種のセンサを含む。センサ部156で検出されたセンサ情報は、処理部152に出力される。処理部152は、CPU等のプロセッサで形成される。処理部152は、センサ部156から取得したセンサ情報を、通信部158からサーバ200に送信させる。通信部158は、サーバ200から動作内容を示す情報を受信する。処理部152は、通信部158が受信した動作内容を、制御対象155を制御する。制御対象155は、スピーカ、ロボット40の各部を駆動するモータ、表示装置、発光装置等を含む。一例として、発声内容を示す情報をサーバ200から受信した場合、処理部152は、受信した発生内容に従って、スピーカから音声を出力させる。
サーバ200において、通信部208は、ユーザ端末100又はロボット40から受信した情報を処理部202に出力する。初期値設定部210は、通信部208で受信したパラメータの初期値を、格納部280内のパラメータ初期値286に格納する。外部入力データ生成部230は、通信部208が受信したセンサ情報を処理して、ニューラルネットワークの外部からの入力情報を生成して、パラメータ処理部240に出力する。
パラメータ処理部240は、格納部280に格納されているニューラルネットワークのパラメータ288と、定義情報284とに基づいて、ニューラルネットワークに基づく処理を行う。ニューラルネットワークは、生体の脳機能の一部を計算機の処理で模擬的に実現するためのモデルである。まずここで、ニューラルネットワークに関する技術的背景及び課題を説明する。
脳には、大別して二つの機能があると考えられる。一つは記憶や学習、予測や計画を始めとする様々な情報処理であり、もう一つは情報処理の調節機能である。
脳における情報処理は、シナプス結合によって繋がった膨大な数のニューロンによって実現されると考えられる。ヒトの脳には、全体で千数百億個のニューロンが存在すると考えられている。一方で、情報処理の調節機能は、例えばヒトの脳の広範囲調節系のように、脳の特定部位に存在する比較的少数のニューロンによって実現されていると考えられる。具体的には、脳の特定部位のニューロンが、特定の明確な行き先ニューロンを持つことなく脳の広範な領域に向かって分枝する軸索を有しており、その軸索から放出される様々な神経伝達物質の作用によって、情報処理の調節機能が実現されると考えられる。ヒトの広範囲調節系には数千個程度のニューロンが存在すると考えられている。すなわち、脳の特定部位に存在する比較的少数のニューロンのそれぞれが十万個以上の他のニューロンと接触しており、脳の特定部位のニューロンが放出する神経伝達物質がシナプス間隙のみならず脳内の多数のニューロンにも作用することによって、情報処理の調節機能が実現されると考えられる。
脳における情報処理の例としては、ヒトの視覚野における視覚情報の処理が挙げられる。ヒトの視覚情報は網膜から視神経を経て第一次視覚野に伝わり、そこから背側皮質視覚路で動きに関する情報処理が行われ、腹側皮質視覚路で顔認識のような動き以外の情報に関する情報処理が行われると考えられる。一方、情報処理における調節機能の例としては、ヒトが眠気を感じている場合の情報処理が挙げられる。眠気の発生には、アセチルコリンやノルアドレナリンやセロトニンのような神経伝達物質を放出する広範囲調節系が関係していると考えられる。これにより、眠気のような指令は意思決定のように脳の広範な領域で受け取られるメッセージとなり得る。
ここで、ニューラルネットワークの例として、一部の脳機能を模擬的に実現するために、人工シナプスによって結合された複数の人工ニューロンからなるネットワークを前提としたものを考える。このニューラルネットワークの例における応用例としては、深層学習に基づくパターン認識や自己組織化マップを用いたデータ・クラスタリング等が挙げられ、これらは画像認識や語彙の分類といった脳の情報処理を擬似的に実現するものといえる。
ニューラルネットワークには、Hebbの法則やスパイクタイミング依存可塑性(spike timing−dependent plasticity; STDP)に基づく学習則を適用できる。Hebbの法則とは、あるニューロンの発火が他のニューロンを発火させると、これらの2つのニューロンの結合が強まるという法則である。Hebbの法則に基づいて、人工シナプスの前後の人工ニューロンが同時発火した場合に当該人工シナプスの結合を強めるという処理を、ニューラルネットワークに組み込むことができる。STDPは、シナプスの増強・減弱が、当該シナプスの前側のニューロン及び後側のニューロンのスパイク発生タイミングの順序に依存する現象である。STDPに基づいて、人工シナプスの前側のニューロンが後側のニューロンより先行して発火した場合に当該人工シナプスの結合を強め、人工シナプスの後側の人工ニューロンが前側の人工ニューロンより先行して発火した場合に当該人工シナプスの結合を弱めるという処理を、ニューラルネットワークに組み込むことができる。また、自己組織化マップにおいては、複数の人工ニューロンで形成されるニューラルネットワークにおいて、重みベクトルから入力ベクトルに最も近い勝者ベクトルを選び、重みをさらに入力ベクトルに近づくように更新する学習則がある。
なお、上記の特許文献1のように複数の感覚情報から感情ラベルを出力するニューラルネットワークの例においては、感情ラベルをフィードバックすることによって、入力が同じであっても感情ラベルと入力に応じて異なる感情ラベルを出力することができる場合があるが、特許文献1のニューラルネットワークは、そのような処理を組み込むことができる構成を有していない。また、特許文献1のニューラルネットワークでは、感情と神経伝達物質等の内分泌物質の関係はなく、また、感情によって情報処理が調節されることもない。
特許文献1に記載のニューラルネットワークで実現される情報処理や、上述したニューラルネットワークの例で実現されるパターン認識やデータ・クラスタリング等の様々な情報処理の他に、擬似的な神経伝達物質等の内分泌物質が脳内の広範な領域で分泌されることで人工ニューロンや人工シナプスの性質がニューラルネットワークの一部で動的に変化しながら情報処理が調節される機能を実現するには、三つの課題がある。すなわち、第一に、脳機能の大部分について動作原理が明らかにされていないために多くの仮説が存在する中で、アナログコンピュータのように人工ニューロンを試行錯誤しながら人工シナプスで結合してニューラルネットワークの挙動を効率的に確かめることができない。第二に、様々な脳部位のニューロンの活動電位やシナプス結合に関して異なるヒステリシス特性を持つ数式モデルがいくつか提案されているにも関わらず、ヒステリシスを持つ数式や数式のパラメータを人工ニューロンや人工シナプスごとに効率的に記述することができない。第三に、擬似的な内分泌物質が脳内の広範な領域で分泌されることによって多数の人工ニューロンや人工シナプスのパラメータがニューラルネットワークの一部で動的に変化するような挙動を、大規模計算によって効率的にシミュレートすることができず、マルチプロセス・マルチスレッド処理や分散コンピューティングに依っても効率的に処理できない。以下に、上述したニューラルネットワークに関する技術的背景及び課題に関連して、システム20の動作をより詳しく説明する。
図3は、ニューラルネットワーク300を概略的に示す。ニューラルネットワーク300は、人工ニューロン1と、人工ニューロン2と、人工ニューロン3と、人工ニューロン4と、人工ニューロン5と、人工ニューロン6と、人工ニューロン7と、人工ニューロン8と、人工ニューロン9を含む複数の人工ニューロンを含む。ニューラルネットワーク300は、人工シナプス301と、人工シナプス302と、人工シナプス303と、人工シナプス304と、人工シナプス305と、人工シナプス306と、人工シナプス307と、人工シナプス308と、人工シナプス309と、人工シナプス310と、人工シナプス311とを含む複数の人工シナプスを含む。人工ニューロンは、生体におけるニューロンに対応する。人工シナプスは、生体におけるシナプスに対応する。
人工シナプス301は、人工ニューロン4と人工ニューロン1とを接続する。人工シナプス301は、一方向に接続する人工シナプスである。人工ニューロン4は、人工ニューロン1の入力に接続される人工ニューロンである。人工シナプス302は、人工ニューロン1と人工ニューロン2とを接続する。人工シナプス302は、双方向に接続する人工シナプスである。人工ニューロン1は、人工ニューロン2の入力に接続される人工ニューロンである。人工ニューロン2は、人工ニューロン1の入力に接続される人工ニューロンである。
なお、本実施形態において、人工ニューロンをNで表し、人工シナプスをSで表す場合がある。また、各人工ニューロンを識別する場合、上付きの数字を識別文字として用いる。任意の人工ニューロンを表す場合、整数iやjを識別数字として用いる場合がある。例えば、Nは任意の人工ニューロンを表す。
また、人工シナプスを、人工シナプスに接続されている2つの人工ニューロンのそれぞれの識別数字i及びjを用いて識別する場合がある。例えば、S41は、NとNとを接続する人工シナプスを表す。一般には、Sijは、Nの出力をNに入力する人工シナプスを表す。なお、Sjiは、Nの出力をNに入力する人工シナプスを表す。
図3において、A〜Gは、ロボット40の状態が定義されていることを表す。ロボット40の状態とは、ロボット40の感情、内分泌物質の生成状態、ロボット40の周囲の状況等を含む。一例として、N、N、及びNは、ロボット40の状況を表す概念が定義された概念人工ニューロンである。例えば、Nは、「ベルが鳴った」という状況が割り当てられた概念人工ニューロンである。Nは、「充電が開始された」という状況が割り当てられた概念人工ニューロンである。Nは、「蓄電量が閾値以下」という状況が割り当てられた概念人工ニューロンである。
及びNは、ロボット40の感情が定義された感情人工ニューロンである。Nは、「嬉しい」という感情が割り当てられた感情人工ニューロンである。Nは、「悲しい」という感情が割り当てられた感情人工ニューロンである。
及びNは、ロボット40の内分泌状態が定義された内分泌人工ニューロンである。Nは、ドーパミンの発生状態が割り当てられた内分泌人工ニューロンである。ドーパミンは、報酬系に関与する内分泌物質の一例である。すなわち、Nは、報酬系に関与する内分泌人工ニューロンの一例である。Nは、セロトニンの発生状態が割り当てられた内分泌人工ニューロンである。セロトニンは、睡眠系に関与する内分泌物質の一例である。すなわち、Nは、睡眠系に関与する内分泌人工ニューロンの一例である。
格納部280内の定義情報284には、ニューラルネットワークを構成する複数の人工ニューロンの各人工ニューロンに対して、上述したようなロボット40の状態を定義する情報が格納される。このように、ニューラルネットワーク300には、概念人工ニューロン、感情人工ニューロン、内分泌人工ニューロンを含む。概念人工ニューロン、感情人工ニューロン、内分泌人工ニューロンは、概念、感情及び内分泌等の意味が明示的に定義された人工ニューロンである。このような人工ニューロンをエクスプリシット人工ニューロンと呼ぶ場合がある。
これに対し、NやNは、ロボット40の状態が定義されていない人工ニューロンである。また、NやNは、概念、感情及び内分泌等の意味が明示的に定義されていない人工ニューロンである。このような人工ニューロンをインプリシット人工ニューロンと呼ぶ場合がある。
ニューラルネットワーク300のパラメータとしては、ニューラルネットワークの各Nへの入力であるI と、ニューラルネットワークの外部からNへの入力であるE と、Nのパラメータと、Sのパラメータとを含む。
のパラメータは、Nのステータスを表すS と、Nが表す人工ニューロンの出力を表すVと、Nの発火の閾値を表すT と、Nが最後に発火した時刻である最終発火時刻を表すtと、最終発火時刻における人工ニューロンNの出力を表すVtfと、出力の増減パラメータであるa 、b 、h とを含む。出力の増減パラメータは、人工ニューロンの発火時の出力の時間発展を定めるパラメータの一例である。なお、本実施形態において、下付きの添え字のtは、時刻の進展とともに更新され得るパラメータであることを表す。
ijのパラメータは、Sijの人工シナプスの結合係数を表すBS ijと、Sijが接続しているN及びNが最後に同時に発火した時刻である最終同時発火時刻を表すtcfと、最終同時発火時刻における結合係数を表すBSij tcfと、結合係数の増減パラメータであるa ij、b ij、h ijとを含む。結合係数の増減パラメータは、人工シナプスが結びつけている2つの人工ニューロンが最後に同時に発火した後の結合係数の時間発展を定めるパラメータの一例である。
パラメータ処理部240は、外部入力データ生成部230からの入力と、ニューラルネットワークに基づいて上述したパラメータを更新して、各人工ニューロンの活性化の状態を決定する。動作決定部250は、ニューラルネットワーク内の複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる少なくとも一部の人工ニューロンの活性状態と、定義情報284によって少なくとも一部の人工ニューロンに定義されている状態とに基づいて、ロボット40の動作を決定する。なお、活性状態とは、活性化した状態又は活性化していない状態をとり得る。本実施形態において、活性化することを「発火」と呼び、活性化していないことを「未発火」と呼ぶ場合がある。なお、後述するように、「発火」の状態を、出力が上昇中であるか否かに応じて「上昇相」と「下降相」とに分ける。「未発火」と、「上昇相」及び「下降相」とは、ステータスS によって表される。
図4は、ユーザ端末100に表示されるパラメータ編集画面を概略的に示す。ユーザ端末100は、サーバ200から受信した時刻tにおけるパラメータのうち、ユーザが編集可能なパラメータを表示する。
パラメータ編集画面400は、Nのそれぞれについて、Nの閾値及び増減パラメータ、並びに、Nに接続される全ての人工ニューロンの識別情報、結合係数及び増減パラメータのそれぞれに値を入力するための入力欄を含む。また、パラメータ編集画面400は、保存ボタン及びリセットボタンを含む。ユーザ30は、入力装置106を用いて、各入力欄に初期値を入力することができる。
保存ボタンが押された場合、処理部102は、パラメータ編集画面400で設定されている初期値を、通信部108を通じてサーバ200へ送信させる。サーバ200において、ユーザ端末100から送信された初期値は、格納部280内のパラメータ初期値286に格納される。また、パラメータ編集画面400のリセットボタンが押された場合、処理部102は、入力欄内の設定値を、予め定められた初期値に設定する。
このように、処理部102は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示する。そして、処理部102は、提示されたパラメータの値を変更するためのテーブルに対するユーザ入力を受け付ける。このように、処理部102は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される1以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いてユーザ30に提示し、ユーザ30から値の入力を受け付けることができる。
図5は、ロボット40が起動又はリセットされた場合のサーバ200の動作フローを概略的に示す。サーバ200は、ロボット40が起動又はリセットされたことが受信すると、パラメータ処理部240は、ニューラルネットワークのパラメータの初期設定を行う。例えば、パラメータ処理部240は、格納部280からパラメータの初期値を取得して、ニューラルネットワークのパラメータデータを所定のデータ構造で生成する(S502)。また、時刻tにおけるニューラルネットワークのパラメータの値を設定する。初期設定が完了すると、S504において、時刻tに関するループを開始する。
S510において、パラメータ処理部240は、時間ステップtn+1における、人工シナプスの電気的影響による変化に対応するパラメータを計算する。具体的には、任意のSijのBS ijを計算する。
S520において、パラメータ処理部240は、時間ステップtn+1における、内分泌物質による化学的影響による変化に対応するパラメータを計算する(S520)。具体的には、内分泌人工ニューロンが影響を及ぼすN及びSijのパラメータの変化を計算する。より具体的には、時間ステップtn+1における、内分泌人工ニューロンが影響を及ぼす人工ニューロンNの出力の増減パラメータや閾値と、内分泌人工ニューロンが影響を及ぼすSijの結合係数の増減パラメータや結合係数を計算する。
S530において、パラメータ処理部240は、ニューラルネットワークの外部からの入力を取得する。具体的には、パラメータ処理部240は、外部入力データ生成部230の出力を取得する。
S540において、パラメータ処理部240は、時間ステップtn+1における、Nの出力を計算する。具体的には、Vtn+1及びステータスStt を計算する。そして、S550において、時刻tn+1における各パラメータの値を、格納部280のパラメータ288に格納する。また、時刻tn+1における各パラメータの値を、ユーザ端末100に送信する。
S560において、パラメータ処理部240は、ループを終了するか否かを判断する。例えば、時間ステップが表す時刻が所定の時刻に達した場合や、パラメータ更新の計算を停止することをユーザ端末100から指示された場合に、ループを終了すると判断する。ループを終了しない場合、S510に戻り、更に次の時間ステップの計算を行う。ループを終了する場合、このフローを終了する。
図6は、人工シナプスの結合係数の計算を概略的に説明する図である。ここでは、増減パラメータの初期値として定数aij及びbijが定義されている場合を説明する。
時刻tの時間ステップにおいて、Sijの両端のN及びNがいずれも発火している場合、パラメータ処理部240は、時刻tn+1におけるBStn+1 ijを、BStn+1 ij=BStn ij+atn ij×(tn+1−t)により計算する。一方、時刻tの時間ステップにおいてS及びSがいずれも発火していない場合、時刻tn+1における結合係数BStn+1 ijを、BStn+1 ij=BStn ij+btn ij×(tn+1−t)により計算する。また、BStn+1 ijが負の値になる場合は、BStn+1 ijは0とする。なお、BSijが正の値のSijでは、a ijが正の値であり、b ijは負の値である。BSijが負の値のSijでは、a ijは正の値であり、b ijは負の値である。
図6に示されるように、時刻tで両端の人工ニューロンが同時発火しているので、BS ijは単位時間当たりat0 ijで増加する。また、時刻t1で同時発火していないので、BS ijは、単位時間当たり|bt1 ij|で減少する。また、時刻tで同時発火したことにより、BS ijは単位時間当たりat4 ijで増加する。
図7は、結合係数の増減パラメータとして関数h ijが定義されている場合の結合係数の時間発展を概略的に示す。h ijは、tcfからの経過時間Δt(=t−tcf)≧0において定義される。h ijは、少なくともΔtの関数であり、実数の値をとる。
図7に示す関数700は、h ijの一例である。関数700は、時刻tcfにおける結合係数BStcf ij及びΔtの関数である。関数700は、Δtが所定の値より小さい範囲で場合に単調増加し、Δtが所定の値より大きい場合に単調減少して0に向けて漸減する。関数700は、Δt=0において値BStcf ijをとる。
図7は、結合係数の増減パラメータとして関数700が定義されており、時刻tにおいて両端のN及びNが同時発火した場合の結合係数を示す。パラメータ処理部240は、関数700とΔtとに基づいて、時刻t〜時刻tの各時刻のBS ijを算出する。時刻t〜時刻tの時間範囲内では、N及びNは同時発火していない。そのため、例えば、時刻t以降、結合係数は単調に減少する。
図8は、時刻tでN及びNが更に同時発火した場合の結合係数の時間発展を概略的に示す。結合係数は、時刻tから時刻tまでは、図7と同様に計算される。時刻tにおいてN及びNが更に同時発火すると、パラメータ処理部240は、h ij(t−t,BSt2 ij)に従って時刻t〜tの各時刻の結合係数を計算する。このように、同時発火が繰り返される毎に、結合係数が高まる。これにより、生体におけるHebbの法則のように、人工シナプス結合を強化するような効果が得られる。一方、図6及び図7に示すように、同時発火しない時間が長くなると、人工シナプス結合が減衰するような効果が得られる。
図9は、結合係数の増減関数h ijの他の例を概略的に示す。関数910、関数920は、それぞれh ijの一例である。
関数910は、時刻tcfにおける結合係数BStcf ij及びΔtの関数である。関数910は、Δt=0において値BStcf ijをとる。また、関数910は、Δtが所定の値より小さい範囲で場合に単調増加し、Δtが所定の値より大きい場合に単調減少して0に向けて漸減する。
関数920は、Δtのみの関数である。関数920は、Δt=0において値0をとる。また、関数920は、Δtが所定の値より小さい範囲で場合に単調増加し、Δtが所定の値より大きい場合に単調減少して0に向けて漸減する。このように、本実施形態によれば、h ijを比較的に自由に定義できるので、学習効果を比較的に自由に制御できる。
図10は、パラメータに与えられる化学的影響を定義する影響定義情報を概略的に示す。この影響定義情報は、図5のS520のパラメータの変化の計算に用いられる。定義情報は、内分泌人工ニューロンの出力に関する条件と、影響を与える人工ニューロン又は人工シナプスを特定する情報と、影響内容を定める式を含む。
図10の例において、内分泌人工ニューロンNは、眠気の内分泌物質が割り当てられた内分泌人工ニューロンである。内分泌人工ニューロンNに関する定義情報は、「Vmtn >Ttn 」の条件、内分泌人工ニューロンNが影響を与える人工ニューロンとして「感情人工ニューロンN及びN」、影響内容を定める式として「Ttn+1 =Ttn ×1.1」が定められている。これにより、パラメータ処理部240は、Vmtn がTtn を超える場合、時刻tn+1の感情人工ニューロンN及びNの閾値を、10%上昇させる。これにより、例えば、眠気が生じた場合に、感情人工ニューロンを発火させにくくすることができる。例えば、「蓄電量が閾値以下」であることが定義された概念人工ニューロンNの出力を、内分泌人工ニューロンNの入力に接続したニューラルネットワークを定めることで、蓄電量が低くなると感情が高まりにくくなる現象を体現することが可能になる。
また、内分泌人工ニューロンNは、報酬系の内分泌物質が割り当てられた内分泌人工ニューロンである。報酬系の内分泌物質としては、ドーパミン等を例示できる。内分泌人工ニューロンNに関する第1の定義情報は、「Vmtn >Ttn 及びVmtn >Ttn 」の条件、内分泌人工ニューロンNが影響を与える人工シナプスとして「S49及びS95」、影響内容を定める式として「atn+1 ij=atn ij×1.1」という式が定められている。これにより、パラメータ処理部240は、Vmtn がTtn を超え、かつ、Vmtn がTtn を超える場合、時刻tn+1の人工シナプスS49及びS95の増減パラメータを10%上昇させる。
これにより、報酬系の内分泌人工ニューロンが発火した場合に、「ベルが鳴った」という状況が定義された概念人工ニューロンNが発火していると、インプリシット人工ニューロンNを介した概念人工ニューロンNとNとの結合を強めることができる。これにより、「ベルが鳴った」場合に報酬系の内分泌人工ニューロンNが発火し易くなる。
また、内分泌人工ニューロンNに関する第2の定義情報は、「Vmtn >Ttn 」の条件、内分泌人工ニューロンNが影響を与える人工ニューロンとして「N」、影響内容を定める式として「Ttn+1 =Ttn ×1.1」という式が定められている。これにより、パラメータ処理部240は、Vmtn がTtn を超える場合、時刻tn+1の人工ニューロンNの増減パラメータを10%低下させる。これにより、報酬系の内分泌人工ニューロンNが発火した場合に、嬉しいという感情が発火し易くなる。
このような報酬系の内分泌人工ニューロンに関する影響を定めた定義によれば、ベルを鳴らしながらロボット40を充電するという行為を繰り返すと、ベルを鳴らしただけでロボット40が嬉しさを表す行動をとる、というような実装が可能になる。
なお、影響定義情報は、図10の例に限られない。例えば、条件として、人工ニューロンの出力が閾値以下であるという条件を定義してよい。また、人工ニューロンのステータスに関する条件、例えば、上昇相、下降相又は未発火に関する条件を定義してよい。また、影響範囲は、人工ニューロンや人工シナプスを直接指定する他に、「特定の人工ニューロンに接続された全人工シナプス」というような定義を行うこともできる。また、影響の式については、対象が人工ニューロンの場合、閾値を定数倍にすることの他に、閾値に定数を加えることや、出力の増減パラメータを定数倍するような式を定義してよい。また、対象が人工シナプスの場合、増減パラメータを定数倍することの他に、結合係数を定数倍するような式を定義してよい。
影響定義情報は、格納部280の定義情報284内に格納される。このように、格納部280は、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータに、内分泌人工ニューロンの出力及び発火状態の少なくとも一方が与える影響を定めた影響定義情報を格納する。そして、パラメータ処理部240は、内分泌人工ニューロンの出力及び発火状態の少なくとも一方と、当該影響定義情報とに基づいて、内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータを更新する。また、内分泌人工ニューロンの出力及び発火状態の少なくとも一方が影響を与える他の人工ニューロンのパラメータは、他の人工ニューロンの閾値、発火状態、及び、発火時の出力の時間発展を定めるパラメータの少なくとも1つを含むことができる。また、内分泌人工ニューロンの出力及び発火状態の少なくとも一方が影響を与える人工シナプスのパラメータは、当該人工シナプスの結合係数、及び、当該人工シナプスが結びつけている2つの人工ニューロンが最後に同時に発火した後の結合係数の時間発展を定めるパラメータの少なくとも1つを含むことができる。また、影響定義情報は、報酬系に関連づけられた内分泌人工ニューロンの発火状態が感情人工ニューロンの閾値に与える影響を定めた情報を含み、パラメータ処理部240は、当該内分泌人工ニューロンが発火した場合に、影響定義情報に従って、感情人工ニューロンの閾値を更新する。
図11は、Vtn+1 及びStn+1 を計算するフローチャートを示す。本フローチャートの処理は、図5のS540内の処理の一部に適用できる。S1100において、パラメータ処理部240は、Stn が未発火を示すか否かを判断する。
tn が未発火を示す場合、パラメータ処理部240は、Nへの入力Itn+1 を計算する(S1110)。具体的には、ニューラルネットワークの外部からの入力がNに接続されていない場合、Itn+1 =ΣBStn+1 ji×Vmtn ×f(Stn )によって計算する。ニューラルネットワークの外部からの入力がNに接続されている場合、Itn+1 =ΣBStn+1 ji×Vmtn ×f(Stn )+Etn+1 によって計算する。ここで、Etn は、ニューラルネットワークの外部からの時刻tにおける入力である。
また、f(S)は、Sが未発火を表す値の場合は0を返し、Sが上昇相又は下降相を示す値の場合は1を返す。このモデルは、ニューロンが発火した場合のみシナプスが活動電位を伝達するモデルに対応する。なお、f(S)=1を返してもよい。これは、ニューロンの発火状態によらず膜電位を伝達するモデルに対応する。
S1112において、パラメータ処理部240は、Itn+1 がTtn+1 を超えるか否かを判断する。Itn+1 がTtn+1 を超える場合、パラメータ処理部240は、Vmtn+1 を増減パラメータに基づいて算出するとともに、Vmtn+1 に応じてStn+1 を上昇相又は下降相に示す値に設定し(S1114)、このフローを終了する。
S1100において、Stn が上昇相又は下降相である場合、パラメータ処理部240は、Vmtn+1 を算出する(S1120)。そして、パラメータ処理部240は、tn+1までにVm がVminに達した場合は、Stn+1 を未発火の値に設定し、tn+1までにVm がVminに達していない場合は、Stn+1 を上昇相又は下降相の値に設定して、このフローを終了する。なお、パラメータ処理部240は、tn+1までにVm がVmaxに達した場合はStn+1 に下降相の値を設定し、tn+1までにVm がVmaxに達していない場合はStn+1 に上昇相の値を設定する。
このように、Nが発火している場合は、たとえ出力が閾値以下になっても、Nの出力は入力に依存しない。このような期間は、生体のニューロンにおける絶対不応期に対応する。
図12は、Nが発火しない場合のV の計算例を概略的に説明する図である。
時刻tの時間ステップにおいてNは未発火である。時刻tのIt1 がTt1 以下である場合、パラメータ処理部240は、時刻tにおけるVt1 を、Vt1 =It1 により計算し、時刻tからtまでの期間のV を、V =It0 により計算する。また、同様に、パラメータ処理部240は、時刻ステップtで計算したVtnの値を次の時刻ステップまで維持し、Vtn+1において、Itn+1に変化させる。
図13は、Nが発火する場合のV の計算例を概略的に説明する図である。図13は、定数a及びbが定義されている場合の計算例である。
時刻tの時間ステップにおいて、Nは未発火である。時刻tのIt1 がTt1 を超える場合、パラメータ処理部240は、時刻tにおけるVt1 を、Vt1 =It1 により計算し、時刻tからtまでの期間のV を、V =It0 により計算する。なお、ここでは、時刻tのIt1 がVmax以下であるとする。時刻tのIt1 がVmaxを超える場合は、It1 =Vmaxとする。
パラメータ処理部240は、図13に示されるように、時刻t以降、V がVmaxに達する時刻まで、V を単位時間当たりa ijで増加させる。また、パラメータ処理部240は、この期間のNのステータスS を上昇相に決定する。
また、V がVmaxに達すると、V がVminに達するまで、V を単位時間当たり|b |減少させる。また、パラメータ処理部240は、この期間のNのステータスを下降相に決定する。そして、V がVminに達すると、次の時刻におけるVt6 を、Vt6 =It6 により計算する。また、V がVminに達した後のステータスを未発火に決定する。
なお、Nのステータスが下降相にある場合、算出されたVmt がT を下回ったとしても、Vm はI に依存しない。パラメータ処理部240は、Vm がT を下回ったとしても、Vm がVminに達するまで、増減パラメータに従ってVm を算出する。
図14は、Nの増減パラメータとして関数h が定義されている場合の結合係数の時間発展を概略的に示す。一般に、h は、発火時刻tからの経過時間Δt(=t−t)≧0において定義される。h は、少なくともΔtの関数である。h は実数の値をとり、h の値域はVmin以上Vmax以下である。
図14に示す関数1400は、h の一例である。関数1400は、時刻tにおけるVmtf 及びΔtの関数である。関数1400は、Δtが所定の値より小さい範囲で場合に単調増加し、Δtが所定の値より大きい場合に単調減少する。関数1400は、Δt=0において値Vmtf をとる。
図14は、出力の増減パラメータとして関数1400が定義されており、時刻tにおいてNが発火した場合の出力を示す。パラメータ処理部240は、関数1400、Δt及びVm に基づいて、時刻t〜時刻tの各時刻のVm を計算する。Vm は時刻tでVminに達しているため、時刻t6ではVm =It6 となる。
図15は、増減パラメータとしての関数h の他の例を概略的に示す。関数1510及び関数1520は、それぞれh の一例である。
関数1510は、時刻tにおける出力Vmtf 及びΔtの関数である。関数1510は、Δt=0において値Vmtf となる関数である。また、関数1510は、Δtが所定の値より小さい範囲で場合に単調増加し、Δtが所定の値より大きい場合に単調減少する関数である。
関数1520は、Δtのみの関数である。関数1520は、Δt=0において値Vminとなる関数である。また、関数920は、Δtが所定の値より小さい範囲で場合に単調増加し、Δtが所定の値より大きい場合に単調減少する関数である。
以上に説明したように、パラメータ処理部240は、ニューロンの活動電位の変化をモデルにして出力を計算することができる。そのため、出力の上昇及び下降を表現できる。また、発火後の出力の変化を増減パラメータによって比較的に自由に表現できる。これにより、状態を表現する幅を広げることができる。
なお、図6等に示したように、増減パラメータとしてaij及びbijを用いた場合、結合係数は時間の経過と共に直線的に変化する。また、図13等に示したように、a及びbを用いた場合、出力は時間の経過と共に直線的に変化する。しかし、aij及びbijのような係数を、直線以外の関数の係数に適用してよい。また、複数の係数群として、多項式や他の関数等に適用してもよい。例えば、a×Δ+a×eΔtや、b×Δ +b×Δt−1等、係数群として定義できるようにしてよい。これにより、結合係数や出力を比較的に多様な時間発展を実現できる。なお、このような係数によれば、ユーザは比較的に簡単にニューラルネットワークの挙動を変えることができる。これらの係数によっても、出力の上昇相及び下降相のヒステリシス特性を比較的容易に実装できる。一方、hijやhの関数を定義可能にすることで、生体のニューロンの発火状態や生体における学習効果により近い実装が可能になる。
なお、ニューラルネットワークにおいて、人工ニューロンの発火状態が時間経過とともに一方向に促進され続ける現象が生じる場合がある。例えば強結合の人工シナプスによってループ状に繋がった人工ニューロンがニューラルネットワーク内に存在する場合、ループ状に繋がった人工ニューロンが連続的に発火して、それによってループ内の隣接する人工ニューロンがそれぞれ同時発火して人工ニューロン間の人工シナプスの結合係数が強まることで、人工ニューロンの発火が促進され続ける場合がある。また、ある内分泌人工ニューロンの発火の影響で他の人工ニューロンの閾値が下がり、影響を受けた当該人工ニューロンの発火が当該内分泌人工ニューロンの発火を促進するような場合等も同様である。また逆に、人工シナプスが抑制結合で接続されている場合や内分泌人工ニューロンの発火によって人工ニューロンの閾値を上げる処理が定義されている場合等には、人工ニューロンの発火が時間経過とともに一方向に抑制され続ける場合がある。そこで、パラメータ処理部240は、人工ニューロンの発火状態、人工シナプスの結合係数の時間的な変化等を監視して、発火状態が正帰還又は負帰還する人工ニューロンの存在を検出した場合に、人工ニューロンの閾値を人工シナプスの結合係数を調節することで、発火状態が一方向に促進され続けることを抑制してよい。例えば正帰還系を形成する人工ニューロンの閾値を上げたり、正帰還系を形成する人工シナプスの結合係数を下げたりすることによって、発火が促進され続けることを抑制してよい。また、負帰還系を形成する人工ニューロンの閾値を下げたり、負帰還系を形成する人工シナプスの結合係数を上げたりすることによって、発火が抑制され続けることを抑制してよい。
図16は、ユーザ端末100が表示するパラメータビューワの画面例を概略的に示す。通信部208は、パラメータ処理部240によって更新されたパラメータのデータを、実質的にリアルタイムにユーザ端末100に送信する。処理部102は、更新されたパラメータのデータを受信すると、2次元のテーブル形式でパラメータを表示する。これにより、ユーザは、パラメータの値が時々刻々変化するパラメータを、ユーザ端末100上で確認できる。このように、処理部102は、時間的に更新される複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を、テーブルの複数の行に複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示する。
図16や図4に示されるように、表示される人工ニューロンのパラメータは、閾値、発火状態、最後に発火した時刻、出力、最後に発火した時刻における出力、及び発火時の出力の時間発展を定めるパラメータの少なくとも1つを含む。また、表示される人工シナプスのパラメータは、接続された人工ニューロンへの結合係数、人工シナプスが結びつけている2つの人工ニューロンが最後に同時に発火した時刻である最終同時発火時刻、当該最終同時発火時刻における結合係数、及び同時の発火が生じた後の結合係数の時間発展を定めるパラメータの少なくとも1つと、人工シナプスの識別情報とを含む。
図17は、ニューラルネットワークをグラフィカルに編集する場合に提示される画面を概略的に示す。図4において、ニューラルネットワークのパラメータを2次元的なテーブル形式で編集する画面の一例を示した。図17は、ユーザ30がパラメータをよりグラフィカルに編集できる環境を提供する。
図17は特に、感情人工ニューロンを編集する画面を一例として示す。図17において、丸形のオブジェクトは人工ニューロンを表す。オブジェクト内には、各感情人工ニューロンに定められた感情を表す文字が表示される。そして、感情人工ニューロン間を結ぶ人工シナプスは、線で表される。
この編集画面上で、ユーザは、例えばマウス操作やキーボード操作によって、人工ニューロンの追加、削除、パラメータの編集をすることができる。また、ユーザは、例えばマウス操作やキーボード操作によって、人工シナプスの追加、削除、パラメータの値の編集を行うことができる。
なお、サーバ200は、ニューラルネットワークの計算が開始された後、パラメータ処理部240によって変更されたパラメータの値に基づくニューラルネットワークを、ユーザ端末100にグラフィカルに表示させる。この場合、ニューラルネットワークの人工ニューロン及び人工シナプスの接続関係は、本編集画面と同様にグラフィカルに表示される。パラメータが変更される様子を表す表示例については、図19から図22に関連して説明する。
図18は、人工シナプスを編集する編集画面の一例である。図17に示す編集画面1700において、人工シナプスが右クリックされると、人工シナプスの編集画面1800が表示される。
編集画面1800は、選択された人工シナプスが接続する2つの人工ニューロンに定められた意味、人工ニューロンの出力が向かう方向、人工シナプスのパラメータの名称及び現在の値、及び、パラメータを変更するための操作部を含む。人工シナプスのパラメータには、結合係数の初期値、増減パラメータa及びbのそれぞれの初期値を含む。また、編集画面は、編集をキャンセルすることを指示するキャンセルボタン、編集したパラメータの値で初期値を更新することを指示する更新ボタン、及び、人工シナプスを削除することを指示する削除ボタンを含む。
視覚的にニューラルネットワークのパラメータの初期値を編集することができる。そのため、熟練していないユーザでも、ニューラルネットワークを比較的に容易に編集することができる。
図19は、人工ニューロンの出力の表示例を概略的に示す。処理部202は、各NのVm の大きさに基づいて、各人工ニューロンNを表すオブジェクト内の色を変えてユーザ端末100に表示させる。例えば、処理部102は、Vm が大きいほど、オブジェクト内の色を濃くする。これにより、ユーザは、人工ニューロンの出力の変化を容易に認識できる。なお、Vm が大きいほど、オブジェクト内の色を薄くしてもよい。色の濃さを限らず、色の明るさ、彩度、色自体をVm に応じて変えてもよい。
図20は、人工シナプスを電気信号が伝搬する様子の表示例を概略的に示す。処理部202は、各Nの発火状態と当該Nに接続されている人工シナプスの情報に基づいて、電気信号の伝搬を示すアニメーションをユーザ端末100に表示させる。例えば、処理部202は、電気信号を表すオブジェクト2010の表示位置を、出力側の人工ニューロンから入力側の人工ニューロンへ時間的に移動させる。なお、処理部202は、オブジェクト2010の位置を算出する時間ステップを、パラメータ計算の時間ステップtn+1−tよりも短くする。このような表示によって、ユーザは、例えばある人工ニューロンの発火がどのようなルートを辿って他の人工ニューロンの発火に結びつくかを、容易に理解することができる。
図21は、人工シナプスによる人工ニューロン間の結合状態の表示例を概略的に示す。処理部202は、各SijのBS ijの符号に基づいて、強結合であるか抑制結合であるかを、人工シナプスを表す線の色を変えてユーザ端末100に表示させる。例えば、処理部202は、BS ijが正である場合に、Sijを表す線を、強結合を表す青色で表示させる。処理部202は、BS ijが負である場合に、Sijを表す線を、抑制結合を表す赤色で表示させる。これにより、ユーザは、人工シナプスが強結合であるか抑制結合であるかを一目で認識できる。
また、処理部202は、各SijのBS ijの大きさに基づいて、人工シナプスを表す線の幅を変えてユーザ端末100に表示させる。例えば、処理部202は、BS ijが大きいほど、Sijを表す線の幅を大きくする。これにより、ユーザは、人工シナプスによる人工ニューロン間の結合の度合いを一目で認識できる。
なお、人工ニューロン間に双方向の人工シナプスが定義されている場合、それぞれの人工シナプスを別々の線で表示してよい。また、人工シナプスの入出力の方向を表す矢印などのマークを付加して、人工シナプスが識別できるようにしてよい。
図22は、人工ニューロンの配置の表示例を概略的に示す。処理部202、各SijのBS ij及び人工ニューロン間の接続関係の少なくとも一方に基づいて各人工ニューロン対間の距離を算出し、距離が短い人工ニューロン対をより近くに配置して表示させてよい。
ここで距離とは、人工ニューロン間の結合の度合いを表す。人工ニューロン間の距離は、人工ニューロン対間に介在する人工シナプスの結合係数が大きいほど短く算出されてよい。また、人工ニューロン対間の距離は、人工ニューロン対の間に直列に介在する人工シナプスの数が少ないほど短く算出されてよい。また、人工ニューロン間の距離は、人工ニューロン対間に並列に介在する人工シナプスの数が多いほど、短く算出されてよい。また、人工ニューロン対間に1以上の人工ニューロンが接続されている場合、人工ニューロン対間に直列に介在する全ての人工シナプスのBS ijの平均値や最小値等を実効的な結合係数とみなして、当該実効的な結合係数に基づいて距離が算出されてよい。
図23は、内分泌人工ニューロンが影響する人工ニューロンの範囲の表示例を概略的に示す。内分泌人工ニューロンのオブジェクトをユーザがマウス操作等で指定すると、処理部202は、選択されたオブジェクトが表す内分泌人工ニューロンから影響を受ける人工ニューロンのオブジェクトを、強調して表示させる。処理部202は、定義情報284に含まれる影響定義情報に基づいて、影響を受ける人工ニューロンを特定する。
例えば、Nのオブジェクトが選択された場合、処理部202は、Nによって発火が抑制されるN及びNを囲う範囲2310を赤色で表示させる。また、処理部202は、Nによって発火を促進する方向に影響を受ける人工シナプスの線及びオブジェクトを囲う範囲2320を青色で表示させる。これにより、ユーザは、選択した内分泌人工ニューロンがどの人工ニューロンや人工シナプスに化学的な影響を与えるかを容易に認識できる。
図24は、人工ニューロンのパラメータを計算する優先順位を定めた優先人工ニューロン情報を概略的に示す。優先人工ニューロン情報は、優先的にパラメータを計算するべき人工ニューロンである優先人工ニューロンを識別する情報に対応づけて、優先順位を示す値及び当該優先人工ニューロンの入力に影響を与える人工ニューロンである関連人工ニューロンを特定する情報を定める。パラメータ処理部240は、サーバ200においてパラメータ更新の計算に利用可能なリソース量に基づいて、パラメータを更新する人工ニューロン及び人工シナプスを、優先順位に従って選択する。
なお、関連人工ニューロンは、ニューラルネットワークにおける人工ニューロンの接続関係に基づいて、初期設定において設定されてよい。例えば、パラメータ処理部240は、優先人工ニューロンの閾値等に影響を及ぼす内分泌人工ニューロンを、関連人工ニューロンとして設定する。また、パラメータ処理部240は、優先人工ニューロンから信号の入力方向の逆順で人工シナプスを辿っていくことで、優先人工ニューロンの入力に人工シナプスを介して影響を与える1以上の人工ニューロンを特定して、関連人工ニューロンに格納してよい。
パラメータ処理部240は、優先人工ニューロンをパラメータの更新対象とする場合、優先人工ニューロンに対応する関連人工ニューロンも、パラメータの更新対象とする。ここで、パラメータ処理部240は、サーバ200における利用可能なリソース量に基づいて、パラメータの更新対象とする更新対象人工ニューロンの数の上限値を決定する。そして、パラメータ処理部240は、パラメータの更新対象とする人工ニューロン数が、決定した上限値以下になるよう、優先順位の降順で優先人工ニューロン選択することによって、更新対象人工ニューロンを決定してよい。
そして、パラメータ処理部240は、例えば、図5のS510においてBStn+1 ijを計算する場合、更新対象人工ニューロンの入力に接続されている人工シナプスのBStn+1 ijの値のみを更新し、他の人工シナプスのBStn+1 ijの値は計算せずにBStn ijの値を維持する。同様に、S520及びS540においても、更新対象人工ニューロンのパラメータの値、及び、更新対象人工ニューロンの入力に接続されている人工シナプスのパラメータの値のみを更新対象とし、他のパラメータの値は更新せず、値を維持する。更新対象人工ニューロン以外のパラメータの値も維持される。
これにより、サーバ200で利用可能なリソースが少なくなった場合に、重要な人工ニューロンについては高い更新頻度を維持できる。例えば、サーバ200で利用可能なリソースが少なくなった場合に、危険の有無を判断する機能を維持することができる。なお、パラメータ処理部240は、サーバ200で利用可能なリソースが十分な場合は、全人工ニューロン及び全人工シナプスのパラメータを更新してよい。
図25は、システム20に係るソフトウェアアーキテクチャを示す。上記の説明では主として、人工ニューロン及び人工シナプスのパラメータの編集処理、更新処理及び表示処理の内容を説明した。ここでは、各処理を行うソフトウェア上の主体に関連する事項を説明する。
サーバ200において、処理部202には、パラメータ処理部240の機能を担う複数の更新エージェント2400と、ユーザ端末100との間のデータ入出力を担う入出力エージェント2450a及び2450bが実装される。入出力エージェント2450aは、ユーザ端末100の処理部102に実装されるエディタ機能部からパラメータの初期値を受信して、データ構造2500に格納する処理を行う。入出力エージェント2450aは、パラメータ処理部240によって更新されたパラメータをユーザ端末100に送信して、処理部102に実装されるビューワ機能部に表示させる処理を行う。エディタ機能部及びビューワ機能部は、例えばウェブブラウザによって処理部102に実装される。ユーザ端末100とサーバ200との間でやりとりされるデータは、HTTPプロトコルに従って転送されてよい。
複数の更新エージェント2400は、それぞれデータ構造2500に人工ニューロン単位でアクセスして、人工ニューロン単位でパラメータの更新計算を行う。複数の更新エージェント2400は、それぞれ、ニューラルネットワークのパラメータを格納したデータ構造2500にアクセスできる。また、複数の更新エージェント2400は、それぞれパラメータの更新計算を行うことができる。複数の更新エージェント2400の処理は、それぞれ別個のプロセスによって実行されてよい。また、複数の更新エージェント2400は、それぞれ1つのプロセス内の複数のスレッドに実行されてよい。
データ構造2500は、図16に関連して説明した情報と同様に、人工ニューロン単位で一括してアクセス可能な形式で生成される。パラメータ処理部240は、図5のS502の初期処理において、データ構造2500を処理部202内のメモリに生成してよい。データ構造2500は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値に一括的なデータ単位でアクセス可能な構造を持つ。そして、更新エージェント2400は、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値に、データ構造2500を通じて複数の人工ニューロンに人工ニューロン毎にアクセスして、複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を時間的に更新する。そのため、複数の更新エージェント2400は、パラメータの値を時間的に更新する処理を並列に行うことができる。
図25から図27は、パラメータの値の更新処理をマルチプロセス処理によって並列に行う方法を示す。複数のプロセスで並列に行う場合、データ構造2500は共有メモリとして確保したメモリ領域内に形成されてよい。図26は、複数の人工ニューロンに対して更新計算を行う前の状態を概略的に示す。4つのプロセス1は、どの人工ニューロンのパラメータ計算を行うかを個々に決定する。図27に示すように、時刻t1において、プロセス1が、未計算のNの行のデータを読み出して、Nのパラメータの更新計算を開始する。時刻t2において、プロセス2が、未計算のNの行のデータを読み出して、Nのパラメータの更新計算を開始する。時刻t3において、プロセス3が、未計算のNの行のデータを読み出して、Nのパラメータの更新計算を開始する。時刻t4において、プロセス4は、未計算のNの行のデータを読み出して、Nのパラメータの更新計算を開始する。
時刻5において、プロセス1は、Nのパラメータの計算が完了すると、Nのパラメータが未計算であることを確認した上で、Nの行のデータをロックして計算結果を書込み、Nの行のデータをアンロックする。時刻t5において、プロセス1はNの行のデータをロックして、計算結果を書込み、Nの行のデータをアンロックする。同様に、プロセス2及びプロセス3も、各人工ニューロンについての計算が完了すると、各人工ニューロンの行のデータに計算結果を書込む。図28には、時刻t6における計算状態が概略的に示されている。
ここで、図26を参照して、時刻t7において、プロセス4がNにおいてパラメータの計算が完了すると、Nのパラメータが未計算であるかを判断する。プロセス4は、Nのパラメータが計算済であることを認識すると、プロセス4が行ったNの計算結果を破棄する。続いて、プロセス4は、Nが未計算であると判断して、Nの行のデータを読み出して、Nのパラメータの更新計算を開始する。
このように、データ構造2500によれば、マルチプロセス処理によって、プロセス毎に未計算の人工ニューロンを選択して計算を開始して、計算が最も早く完了したプロセスのみが計算結果を書込むように実装できる。
なお、上記のように各プロセスが個々に人工ニューロンを選択して関連するパラメータを計算する処理と同様の処理は、図5のS510、S520、S540のそれぞれに適用できる。例えば、図5のS510については、人工ニューロンではなく人工シナプスを選択及び計算の対象とすることで、同様の処理を行うことができる。
また、マルチプロセス処理によれば、図5のS510の処理とS520の処理とを並列で行うことができる。この場合、並列して行った計算結果を重ね合わせることで、最終的な計算結果を生成してよい。また、S520の処理をあるプロセスが行っている場合に、他のプロセスにおいて、化学的影響による変化の影響を受けない人工ニューロンを選択して、図5のS540の処理を行ってもよい。
また、同様の処理は、マルチプロセス処理に限らず、マルチスレッドシステムで行うことができる。マルチスレッドシステムでは、上述した各プロセスでの処理を各スレッドに置き換えることで実現できる。
図29は、サブシステム間で分散制御を行うためのニューラルネットワークの構成を概略的に示す。上述の実施形態では、単一のサーバ200がニューラルネットワークの処理を実現する。ここでは、3つの独立したサーバによって、1つのニューラルネットワーク2900を構築される例を示す。
ニューラルネットワーク2900は、サブニューラルネットワーク2910、サブニューラルネットワーク2920及びサブニューラルネットワーク2930で形成される。サブニューラルネットワーク2910、サブニューラルネットワーク2920及びサブニューラルネットワーク2930の計算は、互いに異なるサーバによって行われる。
ここで、サブニューラルネットワーク2910の人工ニューロン2914は、サブニューラルネットワーク2920の人工ニューロン2921及びサブニューラルネットワーク2930の人工ニューロン2931と同じ概念が定義された人工ニューロンである。また、サブニューラルネットワーク2920の人工ニューロン2923は、サブニューラルネットワーク2930の人工ニューロン2934と同じ概念が定義された人工ニューロンである。また、サブニューラルネットワーク2910の人工ニューロン2925は、サブニューラルネットワーク2930の人工ニューロン2932と同じ概念が定義された人工ニューロンである。
人工ニューロン2914は、人工シナプス2940によって人工ニューロン2931に接続されている。また、人工ニューロン2914は、人工シナプス2960によって人工ニューロン2921に接続されている。また、人工ニューロン2915は、人工シナプス2950によって人工ニューロン2932に接続されている。また、人工ニューロン2923は、人工シナプス2970によって人工ニューロン2934に接続されている。人工シナプス2940、人工シナプス2950、人工シナプス2960及び人工シナプス2970は、ネットワークを介する通信によって実現される。
例えば、人工ニューロン2915が「視界にAさんがいる」という状況が定義された概念人工ニューロンである場合、人工ニューロン2932も「視界にAさんがいる」という状況が定義された概念人工ニューロンである。人工ニューロン2915が発火した場合、人工ニューロン2915の出力は、サブニューラルネットワーク2910からサブニューラルネットワーク2930にネットワークを介して送信される。
なお、1つのサーバで構築されるべきサブニューラルネットワークを構成する複数の人工ニューロンは、人工ニューロン間の距離が予め定められた距離より短いことが好ましい。また、機能単位にサブニューラルネットワークに分割されてよい。例えば、サブニューラルネットワーク2910は、カメラ映像に基づく空間認識を担う機能部分のニューラルネットワークであってよい。
なお、各サブニューラルネットワークは、非同期でニューラルネットワークの処理を行ってよい。また、第1のサブニューラルネットワークにおいて、第2のサブニューラルネットワークから受け取った出力が誤っている可能性が高いことを検出した場合、第1のサブニューラルネットワークの処理を行うサーバは、第2のサブニューラルネットワークの処理を行うサーバに、出力に誤りがある旨を通知してよい。例えば、「視界にAさんがいる」という出力が続いた後に、突然に「視界にBさんがいる」という出力を取得した場合、その出力に誤りがあると判断してよい。
出力の誤りが通知された場合、第2のサブニューラルネットワークにおいて、誤りが通知された時刻の出力を再度計算して、第1のサブニューラルネットワークに出力してよい。このとき、第2のサブニューラルネットワークでは、先に出力した最も確からしい計算結果を除き、次に最も確からしい計算結果を出力してよい。
なお、上述した実施形態に係るニューラルネットワークを電気回路とみなすと、上述したサーバ200や図29に関連して説明したサーバの処理により実現されるニューラルネットワークの動作は、アナログコンピュータの動作とみなすことができる。例えば、ニューラルネットワークの人工ニューロンの出力を、アナログコンピュータの電気回路における対応する部分の電圧とみなすことができる。他にも、人工シナプスを伝わる信号を電流とみなすことができ、人工シナプスの結合係数を対応する電気回路の抵抗とみなすことができ、人工ニューロンの出力の増減パラメータや式を回路特性とみなすことができる。また、上述した実施形態に係るニューラルネットワークの接続をグラフィカルに変更する操作は、アナログコンピュータの素子を手でつなぎ変える操作に対応する。また、ニューラルネットワークに入力を加えたり、パラメータを変更することは、アナログコンピュータの電気回路に電圧をかけたり、電気回路内のポテンショメータ等の値を変更することに対応する。したがって、上述したニューラルネットワークの処理をサーバ200や図29に関連して説明したサーバ等のノイマン型コンピュータにプログラムで実装することは、ニューラルネットワークのアナログコンピュータモデルをノイマン型コンピュータに実装することと同等である。
以上に説明した実施形態では、ロボット40とは異なるサーバが、ニューラルネットワークの処理を担う。しかし、ロボット40自身が、ニューラルネットワークの処理を担ってよい。
なお、ロボット40は、制御対象となる電子機器の一例である。制御対象となる電子機器はロボット40に限られない。様々な電子機器を制御対象として適用できる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
20 システム
30 ユーザ
40 ロボット
90 通信網
100 ユーザ端末
50 ロボット
102 処理部
104 表示部
106 入力装置
108 通信部
152 処理部
155 制御対象
156 センサ部
158 通信部
200 サーバ
202 処理部
208 通信部
210 初期値設定部
230 外部入力データ生成部
240 パラメータ処理部
250 動作決定部
280 格納部
282 行動決定ルール
284 定義情報
286 パラメータ初期値
288 パラメータ
300 ニューラルネットワーク
301、302、303、304、305、306、307、308、309、310 人工シナプス
400 パラメータ編集画面
700、910、920 関数
1400、1510、1520 関数
1700 編集画面
1800 編集画面
2010 オブジェクト
2310 範囲
2320 範囲
2400 更新エージェント
2450 入出力エージェント
2500 データ構造
2900 ニューラルネットワーク
2910 サブニューラルネットワーク
2914、2915 人工ニューロン
2920 サブニューラルネットワーク
2921、2923、2925 人工ニューロン
2930 サブニューラルネットワーク
2931、2932、2934 人工ニューロン
2940、2950、2960、2970 人工シナプス

Claims (15)

  1. ニューラルネットワークを構成する複数の人工ニューロン及び複数の人工シナプスのパラメータを処理する処理システムであって、
    前記複数の人工ニューロンの各人工ニューロンに対して制御対象の状態を定義した定義情報を格納する格納部と、
    前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンの入力に接続される1以上の人工シナプスのパラメータの値を、人工ニューロン毎に一括的なデータ単位でアクセス可能なデータアクセス構造を用いて処理する処理部と、
    前記複数の人工ニューロンのうちの少なくとも一部の人工ニューロンのパラメータの値によって定められる前記少なくとも一部の人工ニューロンの活性状態と、前記少なくとも一部の人工ニューロンに定義されている状態とに基づいて、前記制御対象の動作を決定する動作決定部と
    を備える処理システム。
  2. 前記処理部による処理は、前記複数の人工ニューロン及び前記人工シナプスのパラメータの値を人工ニューロン毎に更新すること、前記複数の人工ニューロン及び前記人工シナプスのパラメータの現在の値を人工ニューロン毎に一括的にユーザに提示すること、及び、前記複数の人工ニューロン及び前記人工シナプスのパラメータの値を人工ニューロン毎に一括的にユーザに提示してユーザからパラメータの値の入力を受け付けることを含む
    請求項1に記載の処理システム。
  3. 前記処理部は、
    前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を、テーブルの複数の行に前記複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示し、
    前記提示されたパラメータの値を変更するための前記テーブルに対するユーザ入力を受け付ける
    請求項1又は2に記載の処理システム。
  4. 前記処理部は、
    前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値に一括的なデータ単位でアクセス可能なデータ構造を生成し、
    前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値に、前記データ構造を通じて前記複数の人工ニューロンに人工ニューロン毎にアクセスして、前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を時間的に更新する
    請求項1から3のいずれか1項に記載の処理システム。
  5. 前記処理部は、
    前記時間的に更新される前記複数の人工ニューロンの各人工ニューロンのパラメータの値及び各人工ニューロンに入力に接続される1以上の人工シナプスのパラメータの値を、テーブルの複数の行に前記複数の人工ニューロンの複数の行を対応づけた形式でユーザに提示する
    請求項4に記載の処理システム。
  6. 前記人工ニューロンのパラメータは、閾値、活性状態、最後に活性化した時刻、出力、最後に活性化した時刻における出力、及び活性化時の出力の時間発展を定めるパラメータの少なくとも1つを含み、
    前記人工シナプスのパラメータは、接続された人工ニューロンへの結合係数、前記人工シナプスが結びつけている2つの人工ニューロンが最後に同時に活性化した時刻である同時活性化時刻、当該同時活性化時刻における結合係数、及び同時の活性化が生じた後の結合係数の時間発展を定めるパラメータの少なくとも1つと、前記人工シナプスの識別情報とを含む
    請求項1から5のいずれか1項に記載の処理システム。
  7. 前記複数の人工ニューロンには、内分泌物質の発生状態が定義された人工ニューロンである内分泌人工ニューロンが含まれ、
    前記格納部は、前記内分泌人工ニューロンに人工シナプスで直接接続されていない他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータに、前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方が与える影響を定めた影響定義情報を更に格納し、
    前記処理部は、前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方と、前記影響定義情報とに基づいて、前記内分泌人工ニューロンに人工シナプスで直接接続されていない前記他の人工ニューロン及び人工シナプスの少なくとも一方のパラメータを更新する
    請求項1から6のいずれか1項に記載の処理システム。
  8. 前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える前記他の人工ニューロンのパラメータは、前記他の人工ニューロンの閾値、活性状態、及び、活性化時の出力の時間発展を定めるパラメータの少なくとも1つを含み、
    前記内分泌人工ニューロンの出力及び活性状態の少なくとも一方が影響を与える人工シナプスのパラメータは、当該人工シナプスの結合係数、及び、当該人工シナプスが結びつけている2つの人工ニューロンが最後に同時に活性化した後の結合係数の時間発展を定めるパラメータの少なくとも1つを含む
    請求項7に記載の処理システム。
  9. 前記複数の人工ニューロンには、前記制御対象の現在の感情が定義された人工ニューロンである感情人工ニューロンを更に含み、
    前記影響定義情報は、報酬系に関連づけられた内分泌人工ニューロンの活性状態が前記感情人工ニューロンの閾値に与える影響を定めた情報を含み、
    前記処理部は、前記内分泌人工ニューロンが活性化した場合に、前記影響定義情報に従って、前記感情人工ニューロンの閾値を更新する
    請求項7又は8に記載の処理システム。
  10. 前記処理部は、前記複数の人工ニューロンのうちの一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新する
    請求項1から9のいずれか1項に記載の処理システム。
  11. 前記処理部は、前記処理システムにおいて演算に利用可能なリソース量が予め定められた値より小さい場合に、前記一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新する
    請求項10に記載の処理システム。
  12. 前記複数の人工ニューロンには、優先順位が予め割り当てられており、
    前記処理部は、前記複数の人工ニューロンの中から、前記処理システムにおいて演算に利用可能なリソース量の範囲内でパラメータを更新可能な一部の人工ニューロンを前記優先順位に従って選択し、選択した前記一部の人工ニューロンのパラメータを、他の人工ニューロンのパラメータの更新頻度より高い頻度で更新する
    請求項10又は11に記載の処理システム。
  13. 前記ニューラルネットワークは、前記制御対象の状態が定義されていない人工ニューロンである非定義人工ニューロンを1以上含み、
    前記処理部は、報酬系に関連づけられた内分泌人工ニューロンが活性化した場合に、前記非定義人工ニューロンのうち、当該内分泌人工ニューロン及び当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンを接続する1以上の非定義人工ニューロンに接続された人工シナプスの結合係数を高める
    請求項1から12のいずれか1項に記載に記載の処理システム。
  14. 前記処理部は、前記報酬系に関連づけられた内分泌人工ニューロンと当該内分泌人工ニューロンと同時に活性状態にある他の人工ニューロンとの間を接続するルートのうち、前記非定義人工ニューロンに接続された人工シナプスの結合係数を考慮した人工ニューロン間の距離がより近いルートをより優先して選択して、選択したルートを提供する非定義人工ニューロンに接続された人工シナプスの結合係数を高める
    請求項13に記載の処理システム。
  15. コンピュータを、請求項1から14のいずれか1項に記載の処理システムとして機能させるためのプログラム。
JP2017512163A 2015-04-17 2015-04-17 処理システム及びプログラム Active JP6446126B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/061840 WO2016166881A1 (ja) 2015-04-17 2015-04-17 処理システム及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2016166881A1 true JPWO2016166881A1 (ja) 2018-02-22
JP6446126B2 JP6446126B2 (ja) 2018-12-26

Family

ID=57126435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017512163A Active JP6446126B2 (ja) 2015-04-17 2015-04-17 処理システム及びプログラム

Country Status (5)

Country Link
US (1) US20180039880A1 (ja)
EP (1) EP3276542A4 (ja)
JP (1) JP6446126B2 (ja)
CN (1) CN107924487A (ja)
WO (1) WO2016166881A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10562181B2 (en) 2017-07-03 2020-02-18 X Development Llc Determining and utilizing corrections to robot actions
US11106967B2 (en) 2017-07-03 2021-08-31 X Development Llc Update of local features model based on correction to robot action
JP6986503B2 (ja) * 2018-09-10 2021-12-22 日立Astemo株式会社 電子制御装置、ニューラルネットワーク更新システム
JP7242355B2 (ja) * 2019-03-13 2023-03-20 株式会社日立製作所 分散制御システムおよびそれを用いた作業機械
US20210081841A1 (en) * 2019-09-12 2021-03-18 Viani Systems, Inc. Visually creating and monitoring machine learning models
US11593627B2 (en) 2019-12-31 2023-02-28 X Development Llc Artificial neural network architectures based on synaptic connectivity graphs
US11625611B2 (en) 2019-12-31 2023-04-11 X Development Llc Training artificial neural networks based on synaptic connectivity graphs
US11593617B2 (en) 2019-12-31 2023-02-28 X Development Llc Reservoir computing neural networks based on synaptic connectivity graphs
US11631000B2 (en) 2019-12-31 2023-04-18 X Development Llc Training artificial neural networks based on synaptic connectivity graphs
US11620487B2 (en) 2019-12-31 2023-04-04 X Development Llc Neural architecture search based on synaptic connectivity graphs
US11568201B2 (en) * 2019-12-31 2023-01-31 X Development Llc Predicting neuron types based on synaptic connectivity graphs
KR102463143B1 (ko) * 2020-06-15 2022-11-04 세종대학교산학협력단 졸음 운전 감지 방법 및 그 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652140A (ja) * 1992-07-31 1994-02-25 Mikuni Corp ニューラルネットワークのデータ構造
JP2009522684A (ja) * 2006-01-05 2009-06-11 ヴィゼル、トーマス・エイ 人間の脳の電子的なエミュレーションに心理学的な気質を取り入れるための方法
JP2010287062A (ja) * 2009-06-11 2010-12-24 Honda Motor Co Ltd ニューラルネットワーク・シミュレーション演算方法
JP2013529342A (ja) * 2010-05-19 2013-07-18 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア ニューラル処理ユニット

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100509308C (zh) * 2002-03-15 2009-07-08 索尼公司 用于机器人的行为控制***和行为控制方法及机器人装置
US10095718B2 (en) * 2013-10-16 2018-10-09 University Of Tennessee Research Foundation Method and apparatus for constructing a dynamic adaptive neural network array (DANNA)
CN103926832A (zh) * 2014-04-18 2014-07-16 哈尔滨工程大学 一种神经网络跟踪控制的自适应学习率调节方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652140A (ja) * 1992-07-31 1994-02-25 Mikuni Corp ニューラルネットワークのデータ構造
JP2009522684A (ja) * 2006-01-05 2009-06-11 ヴィゼル、トーマス・エイ 人間の脳の電子的なエミュレーションに心理学的な気質を取り入れるための方法
JP2010287062A (ja) * 2009-06-11 2010-12-24 Honda Motor Co Ltd ニューラルネットワーク・シミュレーション演算方法
JP2013529342A (ja) * 2010-05-19 2013-07-18 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア ニューラル処理ユニット

Also Published As

Publication number Publication date
US20180039880A1 (en) 2018-02-08
CN107924487A (zh) 2018-04-17
EP3276542A1 (en) 2018-01-31
EP3276542A4 (en) 2018-04-11
WO2016166881A1 (ja) 2016-10-20
JP6446126B2 (ja) 2018-12-26

Similar Documents

Publication Publication Date Title
JP6446126B2 (ja) 処理システム及びプログラム
Sagar et al. Creating connection with autonomous facial animation
US8965834B2 (en) Particle methods for nonlinear control
JP2021515930A (ja) 人工ニューラル・ネットワークにおける不確実性をシミュレートするためのコンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム
US20160086366A1 (en) Social Identity Models for Automated Entity Interactions
Khashman Application of an emotional neural network to facial recognition
JP2011020258A (ja) 感性モデル装置、感性モデルの性向学習装置及び方法
Wang et al. Handshake: Realistic human-robot interaction in haptic enhanced virtual reality
Alaliyat et al. Optimisation Of Boids Swarm Model Based On Genetic Algorithm And Particle Swarm Optimisation Algorithm (Comparative Study).
US20220309364A1 (en) Human-like non-player character behavior with reinforcement learning
WO2018095041A1 (zh) 机器人及其动作控制方法和装置
CN101140636A (zh) 产生机器人基因组的***和方法
CN108229640B (zh) 情绪表达的方法、装置和机器人
KR101851374B1 (ko) 입력 데이터를 학습하는 방법 및 학습 장치
TW202232284A (zh) 用於在虛擬實境環境中三維人類姿勢之模擬控制
Bogdanovych et al. Formalising believability and building believable virtual agents
US9117168B2 (en) Apparatus and method for calculating internal state for artificial emotion
CN107798384A (zh) 可进化脉冲神经网络构建方法和装置
JP6199927B2 (ja) 制御システム、システム及びプログラム
KR101284642B1 (ko) 로봇의 감정 생성 장치
JP5927797B2 (ja) ロボット制御装置、ロボットシステム、ロボット装置の行動制御方法、及びプログラム
KR101579447B1 (ko) 생체신호전달 네트워크 분석방법
Bosse et al. Development of virtual agents with a theory of emotion regulation
CN113887712A (zh) 仿生动态神经网络及其学习方法和应用
Morales-Rodríguez et al. Emotional conversational agents in clinical psychology and psychiatry

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181130

R150 Certificate of patent or registration of utility model

Ref document number: 6446126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250