(57)【要約】【課題】誤差を適切に考慮した処理を行う。【解決手段】本体学習モジュール１０１は、データDを学習する。誤差学習モジュール１０２は、データDと、本体学習モジュール１０１がデータDを再構成した再構成データDRとの誤差ΔDを学習する。また、本体学習モジュール１０１は、データDの入力があると、そのデータDを再構成して、再構成データDRを出力し、誤差学習モジュール１０２は、データDと、再構成データDRとの誤差データΔDを再構成して、再構成誤差データΔDRを出力する。そして、学習モジュール１００は、再構成データDRと、再構成誤差データΔDRをとを加算して出力する。本発明は、例えば、ロボット等に適用できる。【選択図】図１
2009043122.tif 000002
【特許請求の範囲】
【請求項１】
データを学習する学習処理を行うデータ処理装置において、
データを学習する本体学習モジュールと、
前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュールと
を有する学習モジュールを備える
データ処理装置。
【請求項２】
前記本体学習モジュールは、入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行い、
前記誤差学習モジュールは、前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差である入力誤差が所定の次元毎あるいは時間毎に分割されている入力分割誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差である出力誤差が所定の次元毎あるいは時間毎に分割されている出力分割誤差の学習を行う
請求項１に記載のデータ処理装置。
【請求項３】
前記本体学習モジュールは、
前記入力データの学習用のSOM(Self-Organization Map)である入力本体SOMと、前記出力データの学習用のSOMである出力本体SOMとのノードどうしが結合された本体入出力関係モデルを有し、
前記入力本体SOMの自己組織的な学習を、前記入力データを用いて行い、
前記出力本体SOMの自己組織的な学習を、前記出力データを用いて行い、
前記入力本体SOMを構成する複数のノードのうちの、前記入力データに対する勝者ノードと、前記出力本体SOMを構成する複数のノードのうちの、前記出力データに対する勝者ノードとの結合の度合いを強めるように、ノードどうしの結合の度合いを表す結合重みを更新し、
前記誤差学習モジュールは、
前記分割入力誤差の学習用のSOMである分割入力誤差SOMと、前記分割出力誤差の学習用のSOMである分割出力誤差SOMとのノードどうしが結合された誤差入出力関係モデルを有し、
前記分割入力誤差SOMの自己組織的な学習を、前記分割入力誤差を用いて行い、
前記分割出力誤差SOMの自己組織的な学習を、前記分割出力誤差を用いて行い、
前記分割入力誤差SOMを構成する複数のノードのうちの、前記分割入力誤差に対する勝者ノードと、前記分割出力誤差SOMを構成する複数のノードのうちの、前記分割出力誤差に対する勝者ノードとの結合の度合いを強めるように、ノードどうしの結合の度合いを表す結合重みを更新する
請求項２に記載のデータ処理装置。
【請求項４】
前記本体学習モジュールは、さらに、
前記入力本体SOMを構成する複数のノードの中から、前記入力データに対する勝者ノードを決定し、
前記入力本体SOMの勝者ノードを用いて、前記入力データを再構成して、前記再構成入力データを出力し、
前記入力本体SOMの勝者ノードとの結合が最も強い前記出力本体SOMのノードを用いて、前記入力データに対して出力すべき前記出力データを再構成して、前記再構成出力データを出力し、
前記誤差学習モジュールは、さらに、
前記分割入力誤差SOMを構成する複数のノードの中から、前記分割入力誤差に対する勝者ノードを決定し、
前記分割入力誤差SOMの勝者ノードとの結合が最も強い前記分割出力誤差SOMのノードを用いて、前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定する部分補正データとを加算して出力する
請求項３に記載のデータ処理装置。
【請求項５】
前記本体学習モジュールは、
前記入力データの学習用のSOM(Self-Organization Map)である入力本体SOMと、前記出力データの学習用のSOMである出力本体SOMとのノードどうしが結合された本体入出力関係モデルを有し、
前記入力本体SOMを構成する複数のノードの中から、前記入力データに対する勝者ノードを決定し、
前記入力本体SOMの勝者ノードを用いて、前記入力データを再構成して、前記再構成入力データを出力し、
前記入力本体SOMの勝者ノードとの結合が最も強い前記出力本体SOMのノードを用いて、前記入力データに対して出力すべき前記出力データを再構成して、前記再構成出力データを出力し、
前記分割誤差学習モジュールは、
前記分割入力誤差の学習用のSOMである分割入力誤差SOMと、前記分割出力誤差の学習用のSOMである分割出力誤差SOMとのノードどうしが結合された誤差入出力関係モデルを有し、
前記分割入力誤差SOMを構成する複数のノードの中から、前記分割入力誤差に対する勝者ノードを決定し、
前記分割入力誤差SOMの勝者ノードとの結合が最も強い前記分割出力誤差SOMのノードを用いて、前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記本体学習モジュールは、
前記入力本体SOMの自己組織的な学習を、前記再構成出力データと前記分割再構成出力誤差に基づいて決定する前記部分補正データとを加算した加算データに対応する入力データである対応データを用いて行い、
前記出力本体SOMの自己組織的な学習を、前記加算データを用いて行い、
前記入力本体SOMを構成する複数のノードのうちの、前記対応データに対する勝者ノードと、前記出力本体SOMを構成する複数のノードのうちの、前記加算データに対する勝者ノードとの結合の度合いを強めるように、前記本体入出力関係モデルの前記結合重みを更新し、
前記誤差学習モジュールは、
前記分割入力誤差SOMの自己組織的な学習を、前記対応データと、前記本体学習モジュールが前記対応データを再構成した再構成対応データとの誤差が所定の次元毎あるいは時間毎に分割されているものを、前記分割入力誤差として用いて行い、
前記分割出力誤差SOMの自己組織的な学習を、前記加算データと、前記本体学習モジュールが前記加算データを再構成した再構成加算データとの誤差が所定の次元毎あるいは時間毎に分割されているものを、前記分割出力誤差として用いて行い、
前記分割入力誤差SOMを構成する複数のノードのうちの、前記分割入力誤差に対する勝者ノードと、前記分割出力誤差SOMを構成する複数のノードのうちの、前記分割出力誤差に対する勝者ノードとの結合の度合いを強めるように、前記誤差入出力関係モデルの前記結合重みを更新する
請求項２に記載のデータ処理装置。
【請求項６】
前記対応データが、前記再構成出力データに対応する入力データよりも、目標とする入力データに類似している場合、
前記本体学習モジュールは、前記入力本体SOMの自己組織的な学習、前記出力本体SOMの自己組織的な学習、及び、前記本体入出力関係モデルの前記結合重みの更新を行い、
前記誤差学習モジュールは、前記分割入力誤差SOMの自己組織的な学習、前記分割出力誤差SOMの自己組織的な学習、及び、前記誤差入出力関係モデルの前記結合重みの更新を行う
請求項５に記載のデータ処理装置。
【請求項７】
前記本体学習モジュールは、さらに、
前記入力データを再構成して、前記再構成入力データを出力し、
前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、
前記誤差学習モジュールは、さらに、
前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定する部分補正データとを加算して出力する
請求項２に記載のデータ処理装置。
【請求項８】
前記本体学習モジュールは、
前記入力データを再構成して、前記再構成入力データを出力し、
前記入力データに対して出力すべき前記出力データを再構成して、前記再構成出力データを出力し、
前記誤差学習モジュールは、
前記入力データと、前記本体学習モジュールが出力する前記再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記本体学習モジュールは、
前記入力データの学習として、前記再構成出力データと前記分割再構成出力誤差に基づいて決定する部分補正データとを加算した加算データに対応する入力データである対応データの学習を行い、
前記入力データの学習として、前記加算データの学習を行い、
前記誤差学習モジュールは、
前記分割入力誤差の学習として、前記対応データと、前記本体学習モジュールが前記対応データを再構成した再構成対応データとの誤差が所定の次元毎あるいは時間毎に分割されているものの学習を行い、
前記出力誤差の学習として、前記加算データと、前記本体学習モジュールが前記加算データを再構成した再構成加算データとの誤差が所定の次元毎あるいは時間毎に分割されているものの学習を行う
請求項２に記載のデータ処理装置。
【請求項９】
前記本体学習モジュールは、
前記データの学習用のSOM(Self-Organization Map)である本体SOMを有し、
前記本体SOMの自己組織的な学習を、前記データを用いて行い、
前記誤差学習モジュールは、
前記分割誤差の学習用のSOMである分割誤差SOMを有し、
前記分割誤差SOMの自己組織的な学習を、前記分割誤差を用いて行う
請求項１に記載のデータ処理装置。
【請求項１０】
前記本体学習モジュールは、さらに、
前記本体SOMを構成する複数のノードの中から、前記データに対する勝者ノードを決定し、
前記本体SOMの勝者ノードを用いて、前記データを再構成して、前記再構成データを出力し、
前記誤差学習モジュールは、さらに、
前記分割誤差SOMを構成する複数のノードの中から、前記分割誤差に対する勝者ノードを決定し、
前記分割誤差SOMの勝者ノードを用いて、前記分割誤差を再構成して、分割再構成誤差を出力し、
前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する
請求項９に記載のデータ処理装置。
【請求項１１】
前記本体学習モジュールは、さらに、前記データを再構成して、前記再構成データを出力し、
前記誤差学習モジュールは、さらに、前記データと、前記本体学習モジュールが出力する前記再構成データとの前記誤差が所定の次元毎あるいは時間毎に分割されている前記分割誤差を再構成して、分割再構成誤差を出力し、
前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する
請求項１に記載のデータ処理装置。
【請求項１２】
データを学習する学習処理を行うデータ処理装置のデータ処理方法において、
データを学習する本体学習モジュールにおいて、前記データを学習し、
前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュールにおいて、前記分割誤差を学習する
ステップを含むデータ処理方法。
【請求項１３】
データを学習する学習処理を行うデータ処理装置として、コンピュータを機能させるプログラムにおいて、
データを学習する本体学習モジュールと、
前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの
誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュールと
を有する学習モジュールを備える
データ処理装置として、コンピュータを機能させるプログラム。
【請求項１４】
データを出力するデータ処理装置において、
入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュールと、
前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュールと
を有する学習モジュールを備え、
前記本体学習モジュールは、
前記入力データを再構成して、前記再構成入力データを出力し、
前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、
前記誤差学習モジュールは、
前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力する
データ処理装置。
【請求項１５】
前記本体学習モジュールは、
前記入力データの学習用のSOM(Self-Organization Map)である入力本体SOMと、前記出力データの学習用のSOMである出力本体SOMとのノードどうしが結合された本体入出力関係モデルを有し、
前記入力本体SOMを構成する複数のノードの中から、前記入力データに対する勝者ノードを決定し、
前記入力本体SOMの勝者ノードを用いて、前記入力データを再構成して、前記再構成入力データを出力し、
前記入力本体SOMの勝者ノードとの結合が最も強い前記出力本体SOMのノードを用いて、前記入力データに対して出力すべき前記出力データを再構成して、前記再構成出力データを出力し、
前記誤差学習モジュールは、
前記分割入力誤差の学習用のSOMである分割入力誤差SOMと、前記分割出力誤差の学習用のSOMである分割出力誤差SOMとのノードどうしが結合された誤差入出力関係モデルを有し、
前記分割入力誤差SOMを構成する複数のノードの中から、前記分割入力誤差に対する勝者ノードを決定し、
前記分割入力誤差SOMの勝者ノードとの結合が最も強い前記分割出力誤差SOMのノードを用いて、前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力する
請求項１４に記載のデータ処理装置。
【請求項１６】
データを出力するデータ処理装置のデータ処理方法において、
前記データ処理装置は、
入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュールと、
前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュールと
を有する学習モジュールを備え、
前記本体学習モジュールにおいて、
前記入力データを再構成して、前記再構成入力データを出力し、
前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、
前記誤差学習モジュールにおいて、
前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記学習モジュールにおいて、前記分割再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力する
ステップを含むデータ処理方法。
【請求項１７】
データを出力するデータ処理装置として、コンピュータを機能させるプログラムにおいて、
入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュールと、
前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュールと
を有する学習モジュールを備え、
前記本体学習モジュールは、
前記入力データを再構成して、前記再構成入力データを出力し、
前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、
前記誤差学習モジュールは、
前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、
前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力する
データ処理装置として、コンピュータを機能させるプログラム。
【請求項１８】
データを出力するデータ処理装置において、
データを学習した本体学習モジュールと、
前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュールと
を有する学習モジュールを備え、
前記本体学習モジュールは、前記データを再構成して、前記再構成データを出力し、
前記誤差学習モジュールは、前記分割誤差を再構成して、分割再構成誤差を出力し、
前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する
データ処理装置。
【請求項１９】
前記本体学習モジュールは、
前記データの学習用のSOM(Self-Organization Map)である本体SOMを有し、
前記本体SOMを構成する複数のノードの中から、前記データに対する勝者ノードを決定し、
前記本体SOMの勝者ノードを用いて、前記データを再構成して、前記再構成データを出力し、
前記誤差学習モジュールは、
前記分割誤差の学習用のSOMである分割誤差SOMを有し、
前記分割誤差SOMを構成する複数のノードの中から、前記分割誤差に対する勝者ノードを決定し、
前記分割誤差SOMの勝者ノードを用いて、前記分割誤差を再構成して、分割再構成誤差を出力し、
前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する
請求項１８に記載のデータ処理装置。
【請求項２０】
データを出力するデータ処理装置のデータ処理方法において、
前記データ処理装置は、
データを学習した本体学習モジュールと、
前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュールと
を有する学習モジュールを備え、
前記本体学習モジュールにおいて、前記データを再構成して、前記再構成データを出力し、
前記誤差学習モジュールにおいて、前記分割誤差を再構成して、分割再構成誤差を出力し、
前記学習モジュールにおいて、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する
ステップを含むデータ処理方法。
【請求項２１】
データを出力するデータ処理装置として、コンピュータを機能させるプログラムにおいて、
データを学習した本体学習モジュールと、
前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュールと
を有する学習モジュールを備え、
前記本体学習モジュールは、前記データを再構成して、前記再構成データを出力し、
前記誤差学習モジュールは、前記分割誤差を再構成して、分割再構成誤差を出力し、
前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する
データ処理装置として、コンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、及びプログラムに関し、特に、誤差を適切に考慮した処理を行うデータ処理装置、データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
例えば、自律的にタスクを行うロボットは、入力データの入力に対して、その入力データに対して出力すべき出力データを出力する入出力システムを利用して実現することができる。
【０００３】
ここで、入力データと出力データとは、観測することができれば、どのような物理量でもよい。
【０００４】
例えば、センサを用いて、ある物理量を検知し、その検知結果に応じたアクション（行動）を起こすロボットに利用される入出力システムでは、センサが物理量を検知して出力する、その物理量を表すセンサデータ等が入力データとなり、ロボットのアクションに必要なアクチュエータ等を駆動するために、そのアクチュエータ等に供給されるアクションデータ等が出力データとなる。
【０００５】
より具体的には、例えば、音声を認識し、その認識結果に応じた合成音（音声に対する応答としての合成音）を出力する場合、音声を集音するマイクロフォン（センサ）が出力する音声データや、その音声データから抽出されるケプストラムその他の特徴パラメータ等が入力データとなり、認識結果に応じた合成音の生成（音声合成）に用いられるパラメータ等が出力データとなる。
【０００６】
さらに例えば、音声や画像を認識し、その認識結果に応じて、ロボットの腕や頭などを動かす場合、音声を集音するマイクロフォンが出力する音声データや、その音声データの特徴パラメータ、及び、画像を撮像するカメラが出力する画像データや、その画像データから検出される動きベクトルその他の特徴量等が入力データとなり、認識結果に応じて腕や頭を駆動するアクチュエータを制御する制御データ等が出力データとなる。
【０００７】
また、入力データと出力データとは、上述したセンサデータとアクションデータのような異なるモダリティ(modality)のデータである必要はない。
【０００８】
すなわち、例えば、データの系列を所定の長さの区間に区切ったときの、各区間をフレームと称するとともに、先頭からt番目（時刻t）のフレームを、フレーム#tと称するとする場合、入出力システムでは、フレーム#tのセンサデータを入力データとするとともに、フレーム#t+1のセンサデータを出力データとすることができる。
【０００９】
この場合、入出力システムでは、入力データとしてのフレーム#tのセンサデータから、入力データと同一のモダリティの出力データとしての、次のフレーム#t+1のセンサデータが予測されることになる。
【００１０】
また、例えば、入力データとしては、異なるモダリティのデータを組み合わせである、フレーム#tのセンサデータと、フレーム#tのアクションデータとの組み合わせを採用し、出力データとしては、フレーム#t+1のセンサデータと、フレーム#t+1のアクションデータとの組み合わせを採用することができる。
【００１１】
この場合、入出力システムでは、フレーム#tのセンサデータ及びアクションデータの方から、次のフレーム#t+1のセンサデータ及びアクションデータの両方が予測されることになる。
【００１２】
ところで、入出力システムでは、入力データに対し、その入力データに対して出力すべき出力データを出力する必要がある。
【００１３】
すなわち、例えば、上述したように、音声を認識し、その認識結果に応じて、ロボットの腕を動かす場合において、音声データを入力データとするとともに、腕を駆動するアクチュエータを制御する制御データを出力データとするときには、音声データの入力に対して、その音声データを音声認識（識別）し、さらに、その音声認識結果に応じた腕の動きを実行するための制御データを生成する（取得する）必要がある。
【００１４】
また、例えば、上述したように、フレーム#tのセンサデータ及びアクションデータを、入力データとするとともに、フレーム#t+1のセンサデータ及びアクションデータを、出力データとするときには、フレーム#tのセンサデータ及びアクションデータの入力に対して、そのフレーム#tのセンサデータ及びアクションデータを認識（識別）し、さらに、その認識結果から次のフレームt+1のセンサデータ及びアクションデータ（の予測値）を生成する必要がある。
【００１５】
以上のように、入出力システムには、入力データの認識（識別）と、その入力データに対して出力すべき出力データを取得（生成）して出力すること（以下、適宜、認識生成と称する）が要求される。
【００１６】
入出力システムが、入力データの入力に対応し、その入力データを用いて認識生成を行い、その入力データに対して出力すべき出力データを出力することができるようになるためには、例えば、入力データ（となるべきデータ）と、その入力データに対して出力すべき出力データ（となるべきデータ）とのセット（以下、適宜、教示データと称する）を多数用意して、その教示データを用いて、入力データ及び出力データの学習、並びに、入力データと、その入力データに対して出力すべき出力データとの関係の学習を行う必要がある。
【００１７】
そこで、本件出願人は、入力データ用のSOM（Self-Organization Map：自己組織化マップ。以下、適宜、入力SOMと称する）のノードと、出力データ用のSOM（以下、適宜、出力SOMと称する）のノードとが結合された入出力関係モデルを用いて、入力データ及び出力データの学習、並びに、入力データと、その入力データに対して出力すべき出力データとの関係の学習を、いわゆる教師なし学習で行う方法を先に提案している（例えば、特許文献１参照）。
【００１８】
また、本件出願人は、入出力関係モデルにおける出力SOMのノードのパラメータを変更し、その変更後のパラメータから、出力データとしての音声データを生成し、その音声データを、入力データとして、入力SOMで認識することを、その認識結果が、外部から与えられた音声データの入力SOMでの認識結果に一致するまで繰り返すことにより、外部から未知の音声データの入力があったときに、その音声データを真似た音声データを、出力データとして出力する、いわば聞き真似を行うための学習（以下、適宜、聞き真似学習とも称する）を、教師なし学習で行う方法を先に提案している（例えば、特許文献２参照）。
【００１９】
ここで、パターンを学習して認識を行うパターン認識(pattern recognition)における学習は、教師あり学習(supervised learning)と、教師なし学習(unsupervised learning)とに分けることができる。
【００２０】
教師あり学習の学習方法としては、例えば、テンプレートマッチング、NN(Neural Network)、HMM（Hidden Markov Model）などの学習モデルを用いた学習方法がある。教師あり学習では、各パターンの学習データ（学習に利用されるデータ）がどのクラスに属するかの正解ラベルと呼ばれる情報を与えて、各クラス毎に、そのクラスに属する（属させる）カテゴリの学習データの学習が行われる。
【００２１】
すなわち、教師あり学習では、学習に利用する学習データが、あらかじめ決められたカテゴリ（例えば、各音素のカテゴリや、各音韻のカテゴリ、各単語のカテゴリなど）毎に用意されるとともに、学習に利用する学習モデル（各カテゴリの学習データを学習させる学習モデル）も、あらかじめ決められたクラス毎に用意される。
【００２２】
そして、教師あり学習では、正解ラベルが表すクラスの学習モデルの学習が、そのクラスに属する（属させる）カテゴリの学習データのみを用いて行われ、その結果、正解ラベルに基づき、クラス毎のテンプレート（正解ラベルが表すクラスの学習モデル）を得ることができる。
【００２３】
したがって、教師あり学習によって得られた学習モデルを用いたパターン認識では、ある認識対象のデータに対し、その認識対象のデータに最も適合するテンプレート（尤度が最も高いテンプレート）の正解ラベルを、認識結果として出力することができる。
【００２４】
一方、教師なし学習の学習方法としては、NNやSOMなどを用いた学習方法がある。そして、教師なし学習は、正解ラベルが与えられないという点で、教師あり学習とは大きく異なる。
【００２５】
すなわち、教師なし学習は、自己組織化(self-organization)（自己組織的な学習）とも称され、各パターンの学習データに正解ラベルが与えられない状況で行われる。教師なし学習によれば、例えば、パターンが類似する学習データのクラス（学習データのカテゴリが属するクラス）どうしは、クラスどうしの距離を定義することができる空間において近い位置にされる。
【００２６】
なお、パターン認識は、そのパターン認識によって認識しようとする認識対象のデータ（信号）が観測される信号空間の量子化と見ることができる。
【００２７】
【特許文献１】特開２００６−１６２８９８号公報
【特許文献２】特開２００６−２０１６６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
先に提案されている入出力関係モデルの学習では、入力SOMで、教示データを構成する入力データを学習して、その入力SOMの各ノードで、入力データのパターンを獲得するとともに、出力SOMで、教示データを構成する出力データを学習して、その出力SOMの各ノードで、出力データのパターンを獲得する。さらに、教示データを構成する入力データを入力SOMに与えた（入力した）ときに勝者ノードとなる入力SOMのノードと、その入力データとセットになっている出力データ（その入力データとともに教示データを構成する出力データ）を出力SOMに与えたときに勝者ノードとなる出力SOMのノードとの結合が強められる。
【００２９】
そして、認識生成では、入力SOMのノードの中から、入力データに対する勝者ノードを決定し、その勝者ノードを、入力データの認識結果とする認識処理と、その認識結果としての勝者ノードとの結合が最も強い出力SOMのノードを、入力データに対して出力すべき出力データを生成するのに用いるノード（以下、適宜、生成ノードと称する）に決定し、その生成ノードが獲得しているパターンの出力データの推定値を取得（生成）する生成処理とが行われる。
【００３０】
なお、入出力関係モデルは、入力SOMと出力SOMとの２つのSOMで構成されるが、認識生成は、そのような２つのSOMで構成される入出力関係モデルではなく、１つのSOMを用いて行うことも可能である。
【００３１】
すなわち、１つのSOMを用いての認識生成では、データの入力に対して、勝者ノードを決定することが、認識処理として行われ、さらに、その勝者ノードが獲得しているパターンのデータを取得（生成）することが、生成処理として行われる。
【００３２】
ここで、２つのSOMで構成される入出力関係モデルを用いての認識生成では、認識処理で認識される入力データと、生成処理で取得（生成）される出力データとは、同一のモダリティのデータであってもよいし、異なるモダリティのデータであってもよい。
【００３３】
これに対して、１つのSOMを用いての認識生成では、認識処理で認識されるデータと、生成処理で取得（生成）されるデータとは、同一のモダリティのデータ（同一の物理量のデータ）となる。
【００３４】
いま、説明を簡単にするために、１つのSOMを用いての認識生成を例にすると、認識処理では、データの入力に対して、有限個のノードの中から勝者ノードが決定され、生成処理では、その勝者ノードが獲得しているパターンのデータが出力されるが、この、勝者ノードが獲得しているパターンのデータは、認識処理で認識されたデータを再構成した再構成データと称することができる。
【００３５】
さらに、説明を簡単にするために、SOMの各ノードのパラメータとして、ベクトルが与えられていることを仮定すると、認識処理において勝者ノードを決定することは、（ベクトル）量子化と等価であり、生成処理において勝者ノードが獲得しているパターンのデータを出力することは、（ベクトル）逆量子化と等価である。したがって、認識生成処理によれば、いわゆる量子化誤差が生じる。
【００３６】
量子化誤差は、例えば、SOMの大きさを大きくすること、つまり、SOMを構成するノードの数を増加することや、SOMのトポロジの次元を大きくすること、つまり、SOMのノードを配置する次元数を増加することによって、等価的に、いわゆる量子化ステップ（の幅）を小さくすることにより低減することができる。
【００３７】
しかしながら、例えば、SOMを構成するノードの数を増加しても、量子化誤差を考慮した再構成データの数が、増加分のノードの数だけ増加するだけであり、すなわち、SOMのノードの数を、N1個からN2個だけ増加して(N1+N2)個にしたとすると、N1通りの量子化誤差を含む再構成データしか出力することができなかったものが、N2通りだけ増加した(N1+N2)通りの（小さな）量子化誤差を含む再構成データ（(N1+N2)通りの量子化誤差を考慮した再構成データ）を出力することができるようになるだけであり、量子化誤差が適切に考慮されているとは言い難い。
【００３８】
本発明は、このような状況に鑑みてなされたものであり、誤差を適切に考慮した処理を行うことができるようにするものである。
【課題を解決するための手段】
【００３９】
本発明の第１の側面であるデータ処理装置は、データを学習する学習処理を行うデータ処理装置において、データを学習する本体学習モジュールと、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュールとを有する学習モジュールを備える。
【００４０】
本発明の第１の側面であるデータ処理方法は、データを学習する学習処理を行うデータ処理装置のデータ処理方法において、データを学習する本体学習モジュールにおいて、前記データを学習し、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュールにおいて、前記分割誤差を学習するステップを含む。
【００４１】
本発明の第１の側面であるプログラムは、データを学習する学習処理を行うデータ処理装置として、コンピュータを機能させるプログラムにおいて、データを学習する本体学習モジュールと、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュールとを有する学習モジュールを備えるデータ処理装置として、コンピュータを機能させる。
【００４２】
本発明の第１の側面においては、データを学習する本体学習モジュールにより、データが学習され、誤差学習モジュールにより、前記データと、前記本体学習モジュールによって前記データが再構成された再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差が学習される。
【００４３】
本発明の第２の側面であるデータ処理装置は、データを出力するデータ処理装置において、入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュールと、前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュールとを有する学習モジュールを備え、前記本体学習モジュールは、前記入力データを再構成して、前記再構成入力データを出力し、前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、前記誤差学習モジュールは、前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力する。
【００４４】
本発明の第２の側面であるデータ処理方法は、データを出力するデータ処理装置のデータ処理方法において、前記データ処理装置は、入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュールと、前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュールとを有する学習モジュールを備え、前記本体学習モジュールにおいて、前記入力データを再構成して、前記再構成入力データを出力し、前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、前記誤差学習モジュールにおいて、前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、前記学習モジュールにおいて、前記分割再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力するステップを含む。
【００４５】
本発明の第２の側面であるプログラムは、データを出力するデータ処理装置として、コンピュータを機能させるプログラムにおいて、入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュールと、前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュールとを有する学習モジュールを備え、前記本体学習モジュールは、前記入力データを再構成して、前記再構成入力データを出力し、前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、前記誤差学習モジュールは、前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力するデータ処理装置として、コンピュータを機能させる。
【００４６】
本発明の第２の側面においては、本体学習モジュールにより、前記入力データが再構成されて前記再構成入力データが出力され、前記入力データに対して出力すべき出力データが再構成されて前記再構成出力データが出力される。また、誤差学習モジュールにおいて、前記分割入力誤差に対応する前記分割出力誤差が再構成されて分割再構成出力誤差が出力され、前記学習モジュールにおいて、前記分割再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとが加算されて出力される。
【００４７】
本発明の第３の側面であるデータ処理装置は、データを出力するデータ処理装置において、データを学習した本体学習モジュールと、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュールとを有する学習モジュールを備え、前記本体学習モジュールは、前記データを再構成して、前記再構成データを出力し、前記誤差学習モジュールは、前記分割誤差を再構成して、分割再構成誤差を出力し、前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する。
【００４８】
本発明の第３の側面であるデータ処理方法は、データを出力するデータ処理装置のデータ処理方法において、前記データ処理装置は、データを学習した本体学習モジュールと、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュールとを有する学習モジュールを備え、前記本体学習モジュールにおいて、前記データを再構成して、前記再構成データを出力し、前記誤差学習モジュールにおいて、前記分割誤差を再構成して、分割再構成誤差を出力し、前記学習モジュールにおいて、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力するステップを含む。
【００４９】
本発明の第３の側面であるプログラムは、データを出力するデータ処理装置として、コンピュータを機能させるプログラムにおいて、データを学習した本体学習モジュールと、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュールとを有する学習モジュールを備え、前記本体学習モジュールは、前記データを再構成して、前記再構成データを出力し、前記誤差学習モジュールは、前記分割誤差を再構成して、分割再構成誤差を出力し、前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力するデータ処理装置として、コンピュータを機能させる。
【００５０】
本発明の第３の側面においては、本体学習モジュールにより、前記データが再構成されて前記再構成データが出力され、誤差学習モジュールにより、前記分割誤差が再構成されて分割再構成誤差が出力され、前記学習モジュールにより、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとが加算されて出力される。
【００５１】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して提供することができる。
【００５２】
また、データ処理装置は、独立した装置であってもよいし、独立した装置を構成している内部ブロックであってもよい。
【発明の効果】
【００５３】
本発明の第１乃至第３の側面によれば、誤差を適切に考慮した処理を行うことができる。
【発明を実施するための最良の形態】
【００５４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。したがって、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００５５】
本発明の第１の側面であるデータ処理装置は、データを学習する学習処理を行うデータ処理装置（例えば、図１の入出力システム）において、データを学習する本体学習モジュール（例えば、図４の本体学習モジュール１０１）と、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュール（例えば、図４の誤差学習モジュール１０２）とを有する学習モジュールを備える。
【００５６】
本発明の第１の側面であるデータ処理方法は、データを学習する学習処理を行うデータ処理装置（例えば、図１の入出力システム）のデータ処理方法において、データを学習する本体学習モジュールにおいて、前記データを学習し（例えば、図１６のステップＳ１３１）、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュールにおいて、前記分割誤差を学習する（例えば、図１６のステップＳ１３５）ステップを含む。
【００５７】
本発明の第１の側面であるプログラムは、データを学習する学習処理を行うデータ処理装置（例えば、図１の入出力システム）として、コンピュータを機能させるプログラムにおいて、データを学習する本体学習モジュール（例えば、図４の本体学習モジュール１０１）と、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習する誤差学習モジュール（例えば、図４の誤差学習モジュール１０２）とを有する学習モジュールを備えるデータ処理装置として、コンピュータを機能させる。
【００５８】
本発明の第２の側面であるデータ処理装置は、データを出力するデータ処理装置（例えば、図１の入出力システム）において、入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュール（例えば、図１８の本体学習モジュール１０１）と、前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュール（例えば、図１８の誤差学習モジュール１０２）とを有する学習モジュールを備え、前記本体学習モジュールは、前記入力データを再構成して、前記再構成入力データを出力し、前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、前記誤差学習モジュールは、前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力する。
【００５９】
本発明の第２の側面であるデータ処理方法は、データを出力するデータ処理装置のデータ処理方法において、前記データ処理装置は、入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュール（例えば、図１８の本体学習モジュール１０１）と、前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュール（例えば、図１８の誤差学習モジュール１０２）とを有する学習モジュールを備え、前記本体学習モジュールにおいて、前記入力データを再構成して、前記再構成入力データを出力し（例えば、図２７のステップＳ２８３）、前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し（例えば、図２７のステップＳ２８７）、前記誤差学習モジュールにおいて、前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し（例えば、図２７のステップＳ２８８）、前記学習モジュールにおいて、前記分割再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力する（例えば、図２７のステップＳ２９０）ステップを含む。
【００６０】
本発明の第２の側面であるプログラムは、データを出力するデータ処理装置として、コンピュータを機能させるプログラムにおいて、入力データの学習、及び、前記入力データに対して出力すべき出力データの学習を行った前記本体学習モジュール（例えば、図１８の本体学習モジュール１０１）と、前記入力データと、前記本体学習モジュールが前記入力データを再構成した再構成入力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割入力誤差の学習、及び、前記出力データと、前記本体学習モジュールが前記出力データを再構成した再構成出力データとの誤差が所定の次元毎あるいは時間毎に分割されている分割出力誤差の学習を行った誤差学習モジュール（例えば、図１８の誤差学習モジュール１０２）とを有する学習モジュールを備え、前記本体学習モジュールは、前記入力データを再構成して、前記再構成入力データを出力し、前記入力データに対して出力すべき出力データを再構成して、前記再構成出力データを出力し、前記誤差学習モジュールは、前記分割入力誤差に対応する前記分割出力誤差を再構成して、分割再構成出力誤差を出力し、前記学習モジュールは、前記再構成出力データと、前記分割再構成出力誤差に基づいて決定される部分補正データとを加算して出力するデータ処理装置として、コンピュータを機能させる。
【００６１】
本発明の第３の側面であるデータ処理装置は、データを出力するデータ処理装置において、データを学習した本体学習モジュール（例えば、図４の本体学習モジュール１０１）と、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュール（例えば、図４の誤差学習モジュール１０２）とを有する学習モジュールを備え、前記本体学習モジュールは、前記データを再構成して、前記再構成データを出力し、前記誤差学習モジュールは、前記分割誤差を再構成して、分割再構成誤差を出力し、前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する。
【００６２】
本発明の第３の側面であるデータ処理方法は、データを出力するデータ処理装置のデータ処理方法において、前記データ処理装置は、データを学習した本体学習モジュール（例えば、図４の本体学習モジュール１０１）と、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュール（例えば、図４の誤差学習モジュール１０２）とを有する学習モジュールを備え、前記本体学習モジュールにおいて、前記データを再構成して、前記再構成データを出力し（例えば、図１７のステップＳ１４２）、前記誤差学習モジュールにおいて、前記分割誤差を再構成して、分割再構成誤差を出力し（例えば、図１７のステップＳ１４５）、前記学習モジュールにおいて、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力する（例えば、図１７のステップＳ１４７）ステップを含む。
【００６３】
本発明の第３の側面であるプログラムは、データを出力するデータ処理装置として、コンピュータを機能させるプログラムにおいて、データを学習した本体学習モジュール（例えば、図４の本体学習モジュール１０１）と、前記データと、前記本体学習モジュールが前記データを再構成した再構成データとの誤差が所定の次元毎あるいは時間毎に分割されている分割誤差を学習した誤差学習モジュール（例えば、図４の誤差学習モジュール１０２）とを有する学習モジュールを備え、前記本体学習モジュールは、前記データを再構成して、前記再構成データを出力し、前記誤差学習モジュールは、前記分割誤差を再構成して、分割再構成誤差を出力し、前記学習モジュールは、前記再構成データと、前記分割再構成誤差に基づいて決定される部分補正データとを加算して出力するデータ処理装置として、コンピュータを機能させる。
【００６４】
以下、図面を参照して、本発明の実施の形態について説明する。
【００６５】
図１は、本発明を適用したデータ処理装置としての入出力システムの一実施の形態の構成例を示すブロック図である。
【００６６】
図１の入出力システムは、データを学習する学習処理、さらには、データの学習結果に基づいて、データを認識し、その認識結果に応じて、データを出力する認識生成（認知行動）処理を行うようになされており、例えば、外部から受ける刺激（例えば、人からの話しかけ等）等に対応して自律的に行動するロボットや、ユーザの操作等を学習して、その学習結果に応じて処理を行うAV(Audio Visual)機器に代表される家庭電化製品等に適用することができる。
【００６７】
図１の入力システムは、学習モジュール１００から構成され、学習モジュール１００は、本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３から構成される。
【００６８】
本体学習モジュール１０１には、学習処理の対象となるデータDや、認識生成処理のうちの認識処理の対象となるデータDが供給される。
【００６９】
本体学習モジュール１０１は、学習処理の対象となるデータDを学習する。また、本体学習モジュール１０１は、学習結果に応じ、認識処理の対象となるデータDの入力に対して、そのデータDを再構成し、その結果得られる再構成データDRを出力する。
【００７０】
誤差学習モジュール１０２には、本体学習モジュール１０１に供給されるデータDと、本体学習モジュール１０１が、供給されたデータDに対して出力する再構成データDRとの誤差である誤差データ△D(=D-DR)が供給される。
【００７１】
誤差学習モジュール１０２は、誤差データ△Dを学習する。また、誤差学習モジュール１０２は、学習結果に応じ、誤差データ△Dの入力に対して、その誤差データ△Dを再構成し、その結果得られる再構成誤差データ△DRを出力する。
【００７２】
制御部１０３は、本体学習モジュール１０１、及び誤差学習モジュール１０２を、必要に応じて制御する。また、制御部１０３は、本体学習モジュール１０１や、誤差学習モジュール１０２に与えるべきデータを、必要に応じて生成し、本体学習モジュール１０１や、誤差学習モジュール１０２に供給する。
【００７３】
すなわち、例えば、制御部１０３は、本体学習モジュール１０１に供給されるデータDと、そのデータDに対して、本体学習モジュール１０１が出力する再構成データDRとを用いて、誤差データ△Dを生成し、誤差学習モジュール１０２に供給する。
【００７４】
以上のように構成される図１の入出力システムでは、上述したように、データを学習する学習処理と、データの学習結果に基づいて、データを認識し、その認識結果に応じて、データを出力する認識生成処理とが行われる。
【００７５】
図１の入出力システムが行う学習処理について、図２のフローチャートを参照して説明する。
【００７６】
この学習処理は、学習モジュール１００の本体学習モジュール１０１に対して、学習処理の対象となるデータDが供給されたことに対応して開始される。
【００７７】
本体学習モジュール１０１は、ステップＳ１０１において、供給されたデータDの学習（データDを用いた学習モデルの学習）を行う。
【００７８】
ステップＳ１０２において、本体学習モジュール１０１は、直前のステップＳ１０１で学習に用いたデータDを再構成することにより再構成データDRを生成して出力する。
【００７９】
ステップＳ１０３において、制御部１０３は、直前のステップＳ１０１で本体学習モジュール１０１に供給されたデータDと、そのデータDに対して、直前のステップＳ１０２で本体学習モジュール１０１が出力した再構成データDRとを用いて、誤差データ△D＝D-DRを算出し、算出結果である誤差データ△Dを誤差学習モジュール１０２に供給する。
【００８０】
ステップＳ１０４において、誤差学習モジュール１０２は、制御部１０３から供給された誤差データ△Dの学習（誤差データ△Dを用いた学習モデルの学習）を行う。以上で、学習処理は終了される。
【００８１】
なお、図２の学習処理は、例えば、学習モジュール１００に対して、学習処理の対象となるデータDが入力される度に行われる。
【００８２】
次に、図１の入出力システムが行う認識生成処理について、図３のフローチャートを参照して説明する。
【００８３】
この認識生成処理は、学習モジュール１００の本体学習モジュール１０１に対して、認識処理の対象となるデータDが入力されたことに対応して開始される。
【００８４】
本体学習モジュール１０１は、ステップＳ１１１において、供給されたデータDを、図２の学習処理の学習結果に基づいて認識する認識処理を行う。
【００８５】
ステップＳ１１２において、本体学習モジュール１０１は、直前のステップＳ１１１で認識したデータDの認識結果に基づき、そのデータDを再構成することによって再構成データDRを生成して出力する。
【００８６】
ステップＳ１１３において、制御部１０３は、直前のステップＳ１１１で本体学習モジュール１０１に供給されたデータDと、そのデータDに対して、直前のステップＳ１１２で本体学習モジュール１０１が出力した再構成データDRとを用いて、誤差データ△D＝D-DRを算出し、算出結果である△Dを誤差学習モジュール１０２に供給する。
【００８７】
ステップＳ１１４において、誤差学習モジュール１０２は、制御部１０３からの誤差データ△Dを、図２の学習処理の学習結果に基づいて認識する認識処理を行う。ステップＳ１１５において、誤差学習モジュール１０２は、直前のステップＳ１１４で認識した誤差データ△Dの認識結果に基づき、その誤差データ△Dを再構成した再構成誤差データ△DRを生成して出力する。
【００８８】
ステップＳ１１６において、制御部１０３は、本体学習モジュール１０１が出力した再構成データDRと、誤差学習モジュール１０２が出力した再構成誤差データ△DRとを加算することにより、本体学習モジュール１０１が出力した再構成データDRを補正して出力する。
【００８９】
すなわち、制御部１０３は、本体学習モジュール１０１が出力した再構成データDRと、誤差学習モジュール１０２が出力した再構成誤差データ△DRとを加算した加算データDR+△DRを求め、その加算データを、本体学習モジュール１０１が出力した再構成データDRを補正した、いわば最終的な再構成データとして出力する。以上で、認識生成処理は終了される。
【００９０】
以上のように、本体学習モジュール１０１において、データDを学習し、誤差学習モジュール１０２において、データDの学習とは別に、データDとそのデータDを再構成した再構成データDRとの誤差データ△Dを学習する。さらに、本体学習モジュール１０１において、データDを再構成して、再構成データDRを出力し、誤差学習モジュール１０２において、データDと再構成データDRとの誤差データ△Dを再構成して、再構成誤差データ△DRを出力する。そして、制御部１０３において、再構成データDRと、再構成誤差データ△DRとを加算し、その結果得られる加算データを出力する。したがって、誤差を適切に考慮した処理、すなわち、再構成データDRに生じているであろうと推定される誤差を、再構成誤差データ△DRにより補正した加算データDR＋△DRを求めることができる。
【００９１】
なお、図２の学習処理と、図３の認識生成処理とについては、データDの入力に対して、両方を行うこともできるし、いずれか一方だけを行うこともできる。
【００９２】
次に、図４は、図１の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３の第１の構成例を示している。
【００９３】
図４において、本体学習モジュール１０１は、演算部１２１及び本体モデル記憶部１２２から、誤差学習モジュール１０２は、演算部１２３及び分割誤差モデル記憶部１２４から、制御部１０３は、誤差算出部１２５、データ分割部１２６、補正データ生成部１２７及び加算部１２８から、それぞれ構成されている。
【００９４】
演算部１２１には、例えば、外部から、データDが供給される。このデータDは、ｎ次元ベクトルあるいは時系列データであるとする。演算部１２１は、そこに供給されるデータDの学習を行う。すなわち、演算部１２１は、そこに供給されるデータDを用いて、本体モデル記憶部１２２に記憶されている本体モデルの学習を行う。
【００９５】
また、演算部１２１は、供給されるデータDを、本体モデル記憶部１２２に記憶されている本体モデルを用いて認識し、その認識結果に基づいて、データDを再構成し、その結果得られる再構成データDRを出力する。演算部１２１が出力する再構成データDRは、制御部１０３の誤差算出部１２５及び加算部１２８に供給される。
【００９６】
本体モデル記憶部１２２は、データを学習するモデル（学習モデル）としての本体モデルを記憶している。本体モデルとしては、教師なし学習が可能な、例えば、SOMやNN、その他の学習モデルを採用することができる。
【００９７】
誤差学習モジュール１０２の演算部１２３には、制御部１０３のデータ分割部１２６から分割誤差データ△D1，△D2，・・・，ΔDnが供給される。演算部１２３は、データ分割部１２６からの分割誤差データ△D1，（ｉ＝１，２，・・・，ｎ）の学習を行う。すなわち、演算部１２３は、データ分割部１２６からの分割誤差データ△Diを用いて、分割誤差モデル記憶部１２４に記憶されている誤差モデルの学習を行う。
【００９８】
また、演算部１２３は、データ分割部１２６からの分割誤差データ△Diを、分割誤差モデル記憶部１２４に記憶されている分割誤差モデルを用いて認識し、その認識結果に基づいて、分割誤差データ△Diを再構成し、その結果得られる分割再構成誤差データ△DR1，△DR2，・・・，ΔDRnを出力する。演算部１２３が出力する分割再構成誤差データ△DRi（ｉ＝１，２，・・・，ｎ）は、制御部１０３の補正データ生成部１２７に供給される。
【００９９】
分割誤差モデル記憶部１２４は、データを学習するモデルとしての分割誤差モデルを記憶している。分割誤差モデルとしては、教師なし学習が可能な、例えば、SOMやNN、その他の学習モデルを採用することができる。
【０１００】
制御部１０３の誤差算出部１２５には、上述したように、演算部１２１から再構成データDRが供給される他、演算部１２１に供給されるデータDと同一のデータDが外部から供給される。
【０１０１】
誤差算出部１２５は、外部からのデータDと、再構成データDRとの差分D-DRを求め、誤差データ△Dとして、データ分割部１２６に供給する。上述したように、データDがｎ次元ベクトルあるいは時系列データである場合、誤差データ△Dもｎ次元ベクトルあるいは時系列データとなる。
【０１０２】
データ分割部１２６は、ｎ次元ベクトルあるいは時系列データである誤差データ△Dを、予め決定されている所定の次元毎あるいは所定の時間毎に分割し、その結果得られる分割誤差データ△Diを出力する。例えば、誤差データ△Dが、２次元ベクトルである場合、誤差データ△Dを、△D1と△D2に分割する。また、例えば、誤差データ△Dが、100ステップの時系列データである場合、誤差データ△Dを、1ステップから50ステップまでの△D1と51ステップから100ステップまでの△D2に分割する。なお、分割する数ｎは、誤差データ△Dの次元数やステップ数に拘わりなく任意である。データ分割部１２６が出力する分割誤差データ△Diは、演算部１２３及び補正データ生成部１２７に供給される。
【０１０３】
補正データ生成部１２７は、データ分割部１２６からの分割誤差データ△Diに基づいて再構成データDRの補正すべき次元または時間を決定し、決定結果に従い、分割された所定の次元毎あるいは時間毎の補正重みを決定して、演算部１２３からの分割再構成誤差データ△DRiにそれぞれ補正重みを乗算することにより、部分補正データ△DRjを生成し、加算部１２８に供給する。
【０１０４】
加算部１２８は、演算部１２１から供給される再構成データDRと、補正データ生成部１２７から供給される部分補正データ△DRjとを加算し、その結果得られる加算データDR+△DRjを、再構成データDRを補正した、最終的な再構成データ（以下、適宜、最終再構成データとも称する）として出力する。
【０１０５】
ここで、図４において、本体モデル記憶部１２２に記憶されている本体モデルと、分割誤差モデル記憶部１２４に記憶されている誤差モデルとしては、同一の学習モデルを採用することもできるし、異なる学習モデルを採用することもできる。
【０１０６】
ただし、ここでは、説明を簡単にするために、本体モデルと誤差モデルとしては、同一の学習モデルを採用することとする。
【０１０７】
なお、本体モデルは、本来学習すべきデータを対象として学習を行う学習モデルであることに対して、分割誤差モデルは、データを学習した本体モデルを用いて、あるデータDを再構成して得られる再構成データDRと、データDとの誤差（誤差データ△D）を算出し、さらに所定の次元毎あるいは時間毎に分割した分割誤差データを対象として学習を行う学習モデルである。したがって、本体モデルと分割誤差モデルとは、学習の対象が異なるだけで、学習モデルとしての本質的な違いはない。
【０１０８】
次に、本体モデル及び分割誤差モデルとしては、上述したように、例えば、SOMを採用することができる。
【０１０９】
そして、本体モデル及び分割誤差モデルとしては、ノードにベクトルが与えられており、固定長のパターン（長さが一定のパターン）のみを獲得することができる一般的なSOMは勿論、固定長のパターンの他、時系列パターン等の可変長のパターン（長さが一定でないパターン）をも獲得することができるSOM（以下、適宜、パターン記憶SOMと称する）を採用することができる。
【０１１０】
そこで、まず、パターン記憶SOMについて説明する。
【０１１１】
図５は、パターン記憶SOMの例を模式的に示している。
【０１１２】
パターン記憶SOMは、複数のノードから構成され、自己組織的な学習を行うことができる点で、一般的なSOMと共通し、したがって、SOMの範疇に含まれるので、SOMの一種であると称することができる。
【０１１３】
ただし、パターン記憶SOMは、ノードが、時系列パターン等の可変長のパターンを学習することができるHMMや、NN，SVR、その他の、パターンを獲得することができる学習モデル（以下、適宜、パターン記憶モデルと称する）を有し、そのパターン記憶モデルによって時系列パターン等を保持することができる点で、ノードにベクトルが与えられている一般的なSOMとは異なる。
【０１１４】
パターン記憶SOMは、以上のように、可変長のパターンを獲得（表現）することができるパターン記憶モデルを有する複数のノードから構成されるSOMであり、ノードの数だけの（クラス分けを行う）パターンを記憶することができる。
【０１１５】
図５においては、パターン記憶SOMは、ノードN1乃至N6の６つのノードから構成されて
いる。
【０１１６】
パターン記憶SOMを構成する各ノードNi（図５では、ｉ＝１，２，・・・，６）は、例えば、時系列パターンを表現するパターン記憶モデルを有する。また、ノードNiは、他のノードNj（図５では、ｊ＝１，２，・・・，６）と結合関係を持つことができる。この結合関係をリンクと呼ぶ。図５では、例えば、ノードN1は、ノードN2，N3と直接の結合関係を有している。また、例えば、ノードN3は、ノードN1，N2，N5，N6と直接の結合関係を有しており、したがって、ノードN5とN6は、ノードN3を介して、ノードN1と間接的な結合関係を有している。なお、２つのノードNiとNjとの結合関係とは、その２つのノードNiとNjとの最短の結合関係を意味する。
【０１１７】
パターン記憶SOMの学習（パターン記憶SOMに時系列パターンを記憶（獲得）させる学習）では、時系列データが、学習用の学習データとして行われる。また、学習データとしては、カテゴリの種類や、カテゴリの数が未知の時系列データを用いることができる。したがって、パターン記憶SOMの学習としては、教師なし学習を行うことができる。
【０１１８】
なお、パターン記憶SOMの学習は、ある１つのノードが、必ずしもある１つのカテゴリに対応するように行われるとは限らない。即ち、パターン記憶SOMにおいては、１つのノードが１つのカテゴリに対応するように学習が行われる場合もあるし、複数のノードが１つのカテゴリに対応するように学習が行われる場合もある。さらに、１つのノードが複数のカテゴリに対応するように学習が行われる場合もある。したがって、仮に、学習データが、明確にカテゴリ分けすることができないものであっても、パターン記憶SOMによる学習は行うことができる。
【０１１９】
次に、図６は、パターン記憶SOMのノードNiの構成例を模式的に示している。
【０１２０】
ノードNiは、時系列パターン等の可変長のパターンを表現することが可能なパターン記憶モデル２１と、そのパターン記憶モデル２１の学習に用いる学習データを記憶する学習データ記憶部２２とから構成される。
【０１２１】
ここで、図６では、パターン記憶モデル２１として、状態確率遷移モデルの１つであるHMM（連続HMM）が採用されている。また、図６では、HMMは、自己ループと次状態（右隣の状態）への状態遷移だけを有するleft-to-right型の３状態S1，S2，S3を有する。なお、図６のパターン記憶モデル２１における丸印は状態を表し、矢印は状態遷移を表している。なお、パターン記憶モデル２１としてのHMMは、left-to-right型や、３状態のもの等に限定されない。
【０１２２】
パターン記憶モデル２１が、図６に示したようなHMMである場合、そのパターン記憶モデル２１としてのHMMは、状態遷移確率と出力確率密度関数（HMMが離散HMMである場合には、スカラ量である離散的なシンボルが出力される確率）とで定義される。
【０１２３】
状態遷移確率は、HMMにおいて、状態が遷移する確率で、図６のパターン記憶モデル２１における矢印で示した状態遷移それぞれに対して与えられる。出力確率密度関数は、状態遷移時に、HMMから観測される値の確率密度を表す。出力確率密度関数としては、例えば、混合正規分布などが採用される。これらのHMMのパラメータ（状態遷移確率と出力確率密度関数）は、例えば、Baum-Welch 法によって学習（推定）することができる。
【０１２４】
ノードNiでは、学習データ記憶部２２に記憶された学習データの統計的な特性、即ち、学習データ記憶部２２に記憶された学習データのパターンが、パターン記憶モデル２１において学習され、これにより、パターン記憶モデル２１と、学習データ記憶部２２に記憶された学習データとが、対応関係を持つことになる。
【０１２５】
なお、パターン記憶SOMの学習、ひいては、ノードNiのパターン記憶モデル２１の学習は、パターン記憶SOMに対して、学習の対象となるデータが与えられる毎に学習を行うオンライン学習によって行われる。したがって、パターン記憶SOMのパラメータ、つまり、ノードNiのパターン記憶モデル２１のパラメータ（パターン記憶モデル２１がHMMである場合には、上述したように、状態遷移確率と出力確率密度関数）は、パターン記憶SOMに対して、学習の対象となるデータが与えられる度に、少しずつ更新される。
【０１２６】
すなわち、後述するように、パターン記憶SOMの学習が進むにつれ、学習データ記憶部２２に記憶される学習データは、パターン記憶SOMに与えられたデータによって更新され、これにより、少しずつ変化する。そして、その少しずつ変化する学習データによって、パターン記憶モデル２１の学習が行われることにより、そのパターン記憶モデル２１のパラメータも、少しずつ変化していく。
【０１２７】
図７は、パターン記憶SOMの他の例を模式的に示している。
【０１２８】
図７では、パターン記憶SOMは、９個のノードN1乃至N9で構成されており、この９個のノードN1乃至N9は、２次元的に配置されている。すなわち、図７では、９個のノードN1乃至N9が、２次元平面上に、横×縦が３×３となるように配置されている。
【０１２９】
さらに、図７では、２次元的に配置された９個のノードN1乃至N9の、横方向に隣接するノードどうしと、縦方向に隣接するノードどうしに対して、リンク（結合関係）が与えられている。なお、このようなリンクを与えることによって、パターン記憶SOMを構成するノードには、空間的に、２次元的に配置される配置構造が与えられている。
【０１３０】
パターン記憶SOMでは、リンクによって与えられる空間的なノードの配置構造に基づき、その空間上でのある２つのノードどうしの距離を定義することができ、この２つのノードどうしの距離は、その２つのノードそれぞれが有するパターン記憶モデル２１が表現するパターンのパターン間距離（パターンどうしの類似性）として用いることができる。
【０１３１】
２つのノードどうしの距離としては、例えば、その２つのノードどうしを結ぶ最短のパスを構成するリンクの数を採用することができる。この場合、あるノードに注目すると、その注目ノードとの直接のリンクを有するノード（図７では、注目ノードの横方向や縦方向に隣接するノード）は、注目ノードとの距離が最も近く、注目ノードとの直接のリンクを有するノードから先のリンクを辿っていくことで到達することができるノードは、到達するのに辿るリンクの数が多いほど、注目ノードとの距離が遠くなっていく。
【０１３２】
なお、ノードに与えるリンクは、図５や図７に示したものに限定されるものではない。また、図５や図７に示したリンクは、ノードに対して、２次元的な配置構造を与えるが、リンクは、その他、１次元的な配置構造や３次元以上の配置構造等を与えるリンクであってもよい。
【０１３３】
次に、図８は、パターン記憶SOMの学習を行う学習装置の構成例を示している。
【０１３４】
図８において、学習装置は、スコア計算部４１、勝者ノード決定部４２、重み決定部４３、学習データ更新部４４、及びモデル学習部４５から構成されている。
【０１３５】
学習装置には、学習の対象となる時系列データが外部から入力され、この、外部からの時系列データは、スコア計算部４１、重み決定部４３、及び学習データ更新部４４に供給される。
【０１３６】
スコア計算部４１は、パターン記憶SOMを構成する各ノードについて、そのノードが、外部からの時系列データ（の観測値）に適合する度合いをスコアとして求め、勝者ノード決定部４２に供給する。すなわち、ノードが有するパターン記憶モデル２１が、例えば、図６に示したようにHMMである場合には、スコア計算部４１は、ノードが有するパターン記憶モデル２１としてのHMMから、外部からの時系列データが観測される尤度を求め、そのノードのスコアとして、勝者ノード決定部４２に供給する。
【０１３７】
勝者ノード決定部４２は、パターン記憶SOMにおいて、外部からの時系列データに最も適合するノードを求め、そのノードを、勝者ノードに決定する。
【０１３８】
すなわち、勝者ノード決定部４２は、パターン記憶SOMを構成するノードのうちの、スコア計算部４１からのスコアが最も高いノードを勝者ノードに決定する。そして、勝者ノード決定部４２は、勝者ノードを表す情報を、重み決定部４３に供給する。
【０１３９】
ここで、パターン記憶SOMを構成するノードには、各ノードを識別するためのラベルであるノードラベルを付しておくことができる。そして、勝者ノードを表す情報、その他のノード表す情報としては、ノードラベルを採用することができる。なお、ノードラベルは、ノード自体を識別するラベルであり、正解が何であるかを表す正解ラベルとは、何ら関係がない。
【０１４０】
重み決定部４３は、勝者ノード決定部４２から供給されるノードラベルが表す勝者ノードに基づき、パターン記憶SOMを構成する各ノードについて、後述する更新重みを決定し、学習データ更新部４４に供給する。
【０１４１】
すなわち、重み決定部４３は、パターン記憶SOMを構成する各ノード（勝者ノードを含む）の更新重みを、そのノードと、勝者ノードとのパターン間距離に基づいて決定し、学習データ更新部４４に供給する。
【０１４２】
ここで、ノードが有するパターン記憶モデル２１（図６）は、外部から供給される（新たな）時系列データを用いて更新されるが、ノードの更新重みとは、そのノードが有するパターン記憶モデル２１の更新によって、そのパターン記憶モデル２１が受ける外部からの時系列データの影響の度合いを表す。したがって、ノードの更新重みが０であれば、そのノードが有するパターン記憶モデル２１は、外部からの時系列データの影響を受けない（更新されない）。
【０１４３】
学習データ更新部４４は、パターン記憶SOMの各ノードが有する学習データ記憶部２２（図６）に記憶された学習データを更新する。
【０１４４】
すなわち、学習データ更新部４４は、ノードが有する学習データ記憶部２２に既に記憶されている学習データと、外部からの時系列データとを、重み決定部４３からの、対応するノードの更新重みにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部２２に記憶させることで、その学習データ記憶部２２の記憶内容を更新する。
【０１４５】
学習データ更新部４４は、以上のように、学習データ記憶部２２（図６）に記憶された学習データを、更新重みにしたがって更新すると、その更新が終了した旨の終了通知を、モデル学習部４５に供給する。
【０１４６】
モデル学習部４５は、学習データ更新部４４から終了通知を受けると、その学習データ更新部４４による更新後の学習データ記憶部２２（図６）に記憶された学習データを用いて、各ノードが有するパターン記憶モデル２１の学習を行うことにより、そのパターン記憶モデル２１を更新する。
【０１４７】
したがって、モデル学習部４５による、ノードが有するパターン記憶モデル２１の更新は、そのノードが有する学習データ記憶部２２（図６）に記憶されていた学習データ（の一部）と、外部からの新たな時系列データとに基づいて行われる。
【０１４８】
次に、図９は、図８の重み決定部４３において更新重みを決定する決定方法を示している。
【０１４９】
重み決定部４３は、例えば、図９に示すような、勝者ノードとのパターン間距離dの増加に対して更新重みαが減少する関係を表す曲線（以下、距離／重み曲線と称する）にしたがって、ノードに対する更新重み（ノードの更新重み）αを決定する。距離／重み曲線によれば、勝者ノードとのパターン間距離dが近いノードほど、大きな更新重みαが決定され、パターン間距離dが遠いノードほど、小さな更新重みαが決定される。
【０１５０】
図９の距離／重み曲線において、横軸（左から右方向）は、更新重みαを示しており、縦軸（上から下方向）は、パターン間距離dを示している。
【０１５１】
図９では、縦軸に沿って、パターン記憶SOMを構成する６つのノードN1乃至N6が、各ノードNiと勝者ノードとのパターン間距離dに対応する位置（縦軸の位置）に記載されている。
【０１５２】
図９では、パターン記憶SOMを構成する６つのノードN1乃至N6が、その順で、勝者ノードとのパターン間距離dが近くなっている。パターン記憶SOMを構成する６つのノードN1乃至N6のうち、勝者ノードとのパターン間距離dが最も近いノード、すなわち、勝者ノードとのパターン間距離dが０のノードであるノードN1は、勝者ノード（となっているノード）である。
【０１５３】
ここで、パターン記憶SOMが、例えば、図７に示したような２次元的な配置構造を有し、勝者ノードが、例えば、ノードN6であった場合、勝者ノードN6とノードN6との距離は最も（１番）近い０であり、ノードN6と勝者ノードN6とのパターン間距離dも０となる。また、勝者ノードN6と、ノードN3，N5、またはN9それぞれとの距離は２番目に近い１であり、ノードN3，N5、またはN9それぞれと勝者ノードN6とのパターン間距離dも１となる。
【０１５４】
さらに、勝者ノードN6と、ノードN2，N4、またはN8それぞれとの距離は３番目に近い２であり、ノードN2，N4、またはN8それぞれと勝者ノードN6とのパターン間距離dも２となる。また、勝者ノードN6と、ノードN1またはN7それぞれとの距離は最も遠い（４番目に近い）３であり、ノードN1またはN7それぞれと勝者ノードN6とのパターン間距離dも３となる。
【０１５５】
次に、更新重みαとパターン間距離dとの関係を表す、例えば、図９に示したような距離／重み曲線は、例えば、式（１）によって与えられる。
【０１５６】
α=G×γ(d/△)
・・・（１）
【０１５７】
ここで、式（１）において、係数Gは、勝者ノードの更新重みを表す定数であり、係数γは、０＜γ＜１の範囲の定数である。また、係数Δは、いわゆる近傍学習において、新たなデータ（ここでは、外部からの新たな時系列データ）を影響させるノードの範囲を調整する係数（以下、適宜、減衰係数と称する）である。
【０１５８】
上述したように、勝者ノードとなっているノードのパターン間距離dとして、０が与えられ、以下、他のノードのパターン間距離dとして、勝者ノードとの距離にしたがって、１，２，・・・が与えられる場合、式（１）において、例えば、G=8，γ=0.5，Δ=1であれば、勝者ノードとなっているノードの更新重みαとして、８(=G)が求められる。以下、勝者ノードとの距離が大になるにしたがって、ノードの更新重みαとしては、４，２，１，・・・と小さくなる値が求められる。
【０１５９】
ここで、式（１）における減衰係数Δが大きな値である場合には、パターン間距離dの変化に対する更新重みαの変化は緩やかになり、逆に、減衰係数Δが０に近い値である場合には、パターン間距離dの変化に対する更新重みαの変化は急峻になる。
【０１６０】
したがって、減衰係数Δを、例えば、上述した１から少しずつ０に近づけていくように調整すると、パターン間距離dの変化に対する更新重みαの変化は急峻になっていき、更新重みαは、パターン間距離dが大きくなるにしたがって、より小さい値となる。そして、減衰係数Δが０に近くなると、勝者ノード（となっているノード）以外のノードの更新重みαは、ほとんど０となる。
【０１６１】
減衰係数△は、例えば、パターン記憶SOMの更新（学習）の開始時は大きな値にし、時間の経過とともに、すなわち、更新の回数が増加するにしたがって小さな値にくなるようにすることができる。この場合、パターン記憶SOMの更新の開始時は、パターン間距離dの変化に対する更新重みαの変化が緩やかな距離／重み曲線にしたがって、パターン記憶SOMの各ノードの更新重みαが決定され、更新（学習）が進む（進行する）につれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく距離／重み曲線にしたがって、パターン記憶SOMの各ノードの更新重みαが決定される。
【０１６２】
すなわち、この場合、勝者ノード（が有するパターン記憶モデル２１）の更新は、学習（更新）の進行に拘わらず、新たな時系列データの影響を強く受けるように行われる。一方、勝者ノード以外のノード（が有するパターン記憶モデル２１）の更新は、学習の開始時は、比較的広い範囲のノードに亘って（勝者ノードとのパターン間距離dが小さいノードから、ある程度大きいノードまで）、新たな時系列データの影響を受けるように行われる。そして、学習が進行するにつれ、勝者ノード以外のノードの更新は、徐々に狭い範囲のノードについてのみ、新たな時系列データの影響を受けるように行われる。
【０１６３】
図８の重み決定部４３は、以上のようにして、パターン記憶SOMの各ノードの更新重みαを決定し、学習データ更新部４４では、各ノードが有する学習データ記憶部２２に記憶される学習データが、そのノードの更新重みαに基づいて更新される。
【０１６４】
次に、ノードが有する学習データ記憶部２２に記憶される学習データを更新する更新方法について、図１０を参照して説明する。
【０１６５】
いま、あるノードNiが有する学習データ記憶部２２には、学習データが既に記憶されており、ノードNiのパターン記憶モデル２１は、学習データ記憶部２２に既に記憶されている学習データを用いた学習が済んでいることとする。
【０１６６】
学習データ更新部４４は、例えば、ノードNiが有する学習データ記憶部２２に既に記憶されている学習データ（以下、適宜、旧学習データと称する）と、外部からの新たな時系列データとを、重み決定部４３からのノードNiの更新重みαにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部２２に記憶させることで、その学習データ記憶部２２の記憶内容を、新たな学習データに更新する。
【０１６７】
すなわち、学習データ更新部４４は、旧学習データに対して、新たな時系列データを追加することで、旧学習データと新たな時系列データとを混合した新たな学習データとするが、旧学習データに対する新たな時系列データの追加（旧学習データと新たな時系列データとの混合）は、ノードNiの更新重みαに対応する比にしたがって行われる。
【０１６８】
ここで、ノードNiのパターン記憶モデル２１（図６）の更新は、新たな学習データを用いた学習によって行われるため、新たな時系列データと旧学習データとを混合する比率を変えることによって、更新によりパターン記憶モデル２１が受ける新たな時系列データの影響の度合い（強さ）を変えることができる。
【０１６９】
ノードNiにおいて、新たな時系列データと旧学習データとを混合する比率としては、ノードNiの更新重みαに対応した値が採用され、例えば、更新重みαが大であるほど、新たな時系列データの比率が大となる（旧学習データの比率が小となる）ような値とされる。
【０１７０】
具体的には、ノードNiの学習データ記憶部２２には、一定の数の時系列データ（学習データ）が記憶されることとし、その一定の数をHとする。この場合、ノードNiのパターン記憶モデル２１の学習は、常に、H個の学習データ（時系列データ）を用いて行われる。
【０１７１】
学習データ記憶部２２に、常に、一定の数Hの学習データが記憶される場合、新たな時系列データと旧学習データとの混合によって得られる新たな学習データの個数は、H個である必要があり、そのような、新たな時系列データと旧学習データとの混合を、ノードNiの更新重みαに対応した比率で行う方法としては、新たな時系列データと旧学習データとを、比率α:H-αで混合する方法がある。
【０１７２】
新たな時系列データと旧学習データとを、比率α:H-αで混合する具体的な方法としては、図１０に示すように、H個の旧学習データのうちのH-α個の旧学習データに対して、α個の新たな時系列データを追加することにより、H個の新たな学習データを得る方法がある。
【０１７３】
この場合、学習データ記憶部２２に記憶される時系列データの数Hが、例えば、１００であり、ノードNiの更新重みαが、例えば、８であれば、学習データ記憶部２２の記憶内容は、１００個の旧学習データのうちの９２個の旧学習データに対して、８個の新たな時系列データを追加することによって得られる１００個の新たな学習データに更新される。
【０１７４】
H個の旧学習データのうちのH-α個の旧学習データに対する、α個の新たな時系列データの追加は、α個の新たな時系列データが得られた後に行う方法があるが、この方法では、１個の新たな時系列データが得られる毎に、学習データ記憶部２２の記憶内容を更新することができない。
【０１７５】
そこで、学習データ記憶部２２の記憶内容の更新は、１個の新たな時系列データが得られる毎に、その新たな時系列データをα個だけ、H-α個の旧学習データに追加することにより行うことができる。すなわち、１個の新たな時系列データをコピーしてα個の新たな時系列データとし、そのα個の新たな時系列データを、H個の旧学習データから古い順にα個を除外して残ったH-α個の旧学習データに追加することにより、学習データ記憶部２２の記憶内容の更新を行う。これにより、１個の新たな時系列データが得られる毎に、学習データ記憶部２２の記憶内容を更新することができる。
【０１７６】
以上のように、学習データ記憶部２２の記憶内容の更新を行うことにより、学習データ記憶部２２には、常に、新しい順のＨ個の時系列データだけが、学習データとして保持されることになり、その学習データに占める新たな時系列データの割合（比率）は、更新重みαによって調整されることになる。
【０１７７】
次に、図８の学習装置によって行われる、パターン記憶SOMの学習を行う学習処理について、図１１のフローチャートを参照して説明する。
【０１７８】
ステップＳ１において、学習部４（図１０）の学習装置は、パターン記憶SOMのパラメータ、すなわち、パターン記憶SOMの各ノードが有するパターン記憶モデル２１（図６）としての、例えばHMMのパラメータを初期化する初期化処理を行う。この初期化処理により、HMMのパラメータ（状態遷移確率と出力確率密度関数）として、適切な初期値が与えられる。なお、初期化処理において、HMMのパラメータとして、どのように初期値を与えるかは、特に限定されるものではない。
【０１７９】
ステップＳ１の後、処理は、ステップＳ２に進み、外部から、例えば、１の音声区間の音声データ（から抽出された特徴パラメータ）等の新たな時系列データが、図８の学習装置に入力されると、処理は、ステップＳ３乃至Ｓ７に順次進み、学習装置は、その新たな時系列データを用いて、パターン記憶SOMを、自己組織的に更新する、自己組織的な学習を行う。
【０１８０】
すなわち、ステップＳ３では、スコア計算部４１が、パターン記憶SOMを構成する各ノードについて、そのノードが、外部からの新たな時系列データに適合する度合いを表すスコアを求める。
【０１８１】
具体的には、ノードが有するパターン記憶モデル２１（図６）が、例えばHMMである場合には、そのHMMから、新たな時系列データが観測される対数尤度が、スコアとして求められる。ここで、対数尤度の計算方法としては、例えば、ビタビアルゴリズム(Viterbi algorithm)を採用することができる。
【０１８２】
スコア計算部４１は、パターン記憶SOMが有するすべてのノードについて、新たな時系列データに対するスコアを計算すると、その各ノードについてのスコアを、勝者ノード決定部４２に供給して、処理は、ステップＳ３からステップＳ４に進む。
【０１８３】
ステップＳ４では、勝者ノード決定部４２は、パターン記憶SOMを構成するノードのうちの、スコア計算部４１からのスコアが最も高いノードを求め、そのノードを勝者ノードに決定する。そして、勝者ノード決定部４２は、勝者ノードを表す情報としてのノードラベルを、重み決定部４３に供給し、処理は、ステップＳ４からステップＳ５に進む。
【０１８４】
ステップＳ５では、重み決定部４３は、勝者ノード決定部４２からのノードラベルが表す勝者ノードを、いわば基準として、パターン記憶SOMを構成する各ノードの更新重みを決定する。
【０１８５】
すなわち、重み決定部４３は、図９で説明したように、パターン記憶SOMの更新（学習）が進むにつれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく、式（１）で表される距離／重み曲線にしたがって、パターン記憶SOMの各ノードの更新重みαを決定し、学習データ更新部４４に供給して、処理は、ステップＳ５からステップＳ６に進む。
【０１８６】
ステップＳ６では、学習データ更新部４４は、ステップＳ６において、パターン記憶SOMの各ノードが有する学習データ記憶部２２（図６）に記憶された学習データを、重み決定部４３からの、対応するノードの更新重みにしたがって更新する。すなわち、学習データ更新部４４は、図１０で説明したように、外部からの新たな時系列データと、ノードの学習データ記憶部２２に記憶されている旧学習データとを、そのノードの更新重みαに対応した比率α:H-αで混合することにより、H個の新たな学習データを得て、そのH個の新たな学習データによって、学習データ記憶部２２の記憶内容を更新する。
【０１８７】
学習データ更新部４４は、パターン記憶SOMのノードすべての学習データ記憶部２２（図６）の記憶内容を更新すると、その更新が終了した旨の終了通知を、モデル学習部４５に供給し、処理は、ステップＳ６からステップＳ７に進む。
【０１８８】
ステップＳ７では、モデル学習部４５は、学習データ更新部４４からの終了通知に応じて、パターン記憶SOMのパラメータを更新する。
【０１８９】
すなわち、モデル学習部４５は、パターン記憶SOMの各ノードについて、学習データ更新部４４による更新後の学習データ記憶部２２に記憶された新たな学習データを用いて、パターン記憶モデル２１の学習を行うことにより、そのパターン記憶モデル２１を更新する。
【０１９０】
具体的には、ノードが有するパターン記憶モデル２１が、例えばHMMである場合には、そのノードが有する学習データ記憶部２２に記憶された新たな学習データを用いて、HMMの学習が行われる。この学習では、例えば、HMMの現在の（旧学習データを用いた学習により得られた）状態遷移確率と出力確率密度関数を初期値とし、新たな学習データを用いて、Baum-Welch法により、新たな状態遷移確率と出力確率密度関数がそれぞれ求められる。そして、その新たな状態遷移確率と出力確率密度関数によって、HMMの状態遷移確率と出力確率密度関数がそれぞれ更新される。
【０１９１】
その後、処理は、ステップＳ７からステップＳ２に戻り、次の新たな時系列データが、外部から学習装置に入力されることを待って、以下、同様の処理が繰り返される。
【０１９２】
次に、図１２は、パターン記憶SOMを用いて、認識生成処理を行う認識生成装置の構成例を示している。
【０１９３】
図１２において、認識生成装置は、スコア計算部５１、勝者ノード決定部５２、及び再構成部５３から構成され、スコア計算部５１及び勝者ノード決定部５２が、データを認識する認識処理を行い、再構成部５３が、その認識処理によって認識されたデータを再構成したデータ（再構成データ）を取得（生成）する生成処理を行う。
【０１９４】
すなわち、認識生成装置には、認識の対象となるデータとしての、例えば、時系列データが外部から入力されて、当該時系列データは、スコア計算部５１に供給される。
【０１９５】
スコア計算部５１は、学習装置（図８）のスコア計算部４１と同様に、パターン記憶SOMを構成する各ノードについて、そのノードが、外部からの時系列データ（の観測値）に適合する度合いを表すスコアを求め、勝者ノード決定部５２に供給する。
【０１９６】
勝者ノード決定部５２は、学習装置（図８）の勝者ノード決定部４２と同様に、パターン記憶SOMにおいて、外部からの時系列データに最も適合するノードを求め、そのノードを、勝者ノードとして決定する。
【０１９７】
すなわち、勝者ノード決定部５２は、パターン記憶SOMを構成するノードのうちの、スコア計算部５１からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部５２は、勝者ノードを表す情報としてのノードラベルを、外部からの時系列データの認識結果として、再構成部５３に供給する。
【０１９８】
再構成部５３は、勝者ノード決定部５２からのノードラベルに基づき、外部からの時系列データを再構成して出力する。
【０１９９】
すなわち、再構成部５３は、勝者ノード決定部５２からのノードラベルが表すノード（勝者ノード）を、外部からの時系列データを再構成した再構成データを生成するのに用いる生成ノードとして、その生成ノードが有するパターン記憶モデル２１（図６）に基づいて、再構成データを取得（生成）して出力する。
【０２００】
具体的には、パターン記憶モデル２１が、例えば、HMMである場合には、再構成部５３は、例えば、生成ノードが有するパターン記憶モデル２１としてのHMMにおいて時系列データが観測される尤度を表す出力確率を最大にする時系列データを生成する。
【０２０１】
なお、HMMを用いて時系列データを生成する方法については、例えば、K. Tokuda, T. Yoshimura, T. Masuko, T. Kobayashi, T. Kitamura,  "SPEECH PARAMETER GENERATION ALGORITHMS FOR HMM-BASED SPEECH SYNTHESIS",  Proc. of ICASSP 2000, vol.3, pp.1315-1318, June 2000や、稲邑哲也、谷江博昭、中村仁彦、「連続分布型隠れマルコフモデルを用いた時系列データのキーフレーム抽出とその復元」、日本機械学会ロボティクス・メカトロニクス講演会2003講演論文集、2P1-3F-C6，2003等に記載されている。
【０２０２】
ここで、例えば、時系列データが音声データ（から抽出された特徴パラメータ）であり、再構成部５３において、生成ノードが有するパターン記憶モデル２１としてのHMMを用いて、時系列データが観測される尤度を表す出力確率を最大にする時系列データとしての音声データを生成する場合、音声データに、波形が不連続になる歪み（以下、適宜、生成なまりと称する）が生じることがある。
【０２０３】
そこで、再構成部５３では、生成ノードが有する学習データ記憶部２２に記憶された学習データとしての時系列データをランダムに選択することにより取得し、その時系列データを再構成データとして出力することができる。
【０２０４】
生成ノードが有する学習データ記憶部２２に記憶された学習データとしての時系列データからランダムに選択される時系列データは、生成ノードが有する学習データ記憶部２２に記憶された学習データの確率分布に従うので、期待値の観点からは、その生成ノードが有するパターン記憶モデル２１としてのHMMを用いて生成された時系列データとみなすことができ、さらに、上述の生成なまりを有しない。
【０２０５】
次に、図１２の認識生成装置による、時系列データを認識する認識処理（以下、認識生成処理と称する）について、図１３のフローチャートを参照して説明する。
【０２０６】
ステップＳ２１において、外部から、例えば、１の音声区間の音声データ（から抽出された特徴パラメータ）等の時系列データが、図１２の認識生成装置に入力されると、処理は、ステップＳ２２，Ｓ２３に順次進み、外部からの時系列データを認識する認識処理が行われる。
【０２０７】
すなわち、ステップＳ２２において、スコア計算部５１が、パターン記憶SOMを構成する各ノードが、外部からの時系列データに適合する度合いを表すスコアを求め、勝者ノード決定部５２に供給して、処理は、ステップＳ２３に進む。
【０２０８】
ステップＳ２３では、勝者ノード決定部５２は、パターン記憶SOMを構成するノードのうちの、スコア計算部５１からのスコアが最も高いノードを求め、そのノードを勝者ノードとして決定する。そして、勝者ノード決定部５２は、勝者ノードを表す情報としてのノードラベルを、外部からの時系列データの認識結果として、再構成部５３に供給する。
【０２０９】
ステップＳ２３の後、処理は、ステップＳ２４に進み、再構成部５３は、ステップＳ２３で得られた認識結果に基づいて、外部からの時系列データの再構成を行い、その結果得られた再構成データを出力する。
【０２１０】
すなわち、ステップＳ２４では、再構成部５３は、勝者ノード決定部５２からの認識結果としてのノードラベルが表すノードを、生成ノードとして、その生成ノードを用いて、その生成ノードが獲得しているパターンの時系列データを、上述したようにして取得して、外部からの時系列データを再構成した再構成データとして出力する。以上で、認識生成処理は終了される。
【０２１１】
なお、以上のような認識生成処理において取得される再構成データによれば、例えば、認識生成装置それ自身が、外部からの時系列データを、どのように認識しているのかを確認することができる。
【０２１２】
次に、図１４は、本体モデル及び分割誤差モデルとして、パターン記憶SOMが採用されている場合の、図４の本体モデル記憶部１２２と分割誤差モデル記憶部１２４の記憶内容を、模式的に示している。
【０２１３】
図１４において、本体モデル記憶部１２２には、本体モデルとしてのパターン記憶SOMが記憶されており、分割誤差モデル記憶部１２４には、分割誤差モデルとしてのパターン記憶SOMが記憶されている。
【０２１４】
ここで、以下、適宜、本体モデルとしてのパターン記憶SOMを、本体SOMとも称し、分割誤差モデルとしてのパターン記憶SOMを、分割誤差SOMとも称する。
【０２１５】
図１５は、図１４の本体SOM及び分割誤差SOMに対して入出力することができるデータを説明する図である。
【０２１６】
本体SOMに対しては、学習の対象となるデータD、及び認識の対象となるデータDが入力（供給）される。また、本体SOMからは、そこに入力されるデータDに対して、そのデータDを再構成した再構成データDRを出力することができる。
【０２１７】
分割誤差SOMに対しては、本体SOMに入力されるデータDと、そのデータDに対して本体SOMから出力される再構成データDRとの誤差である誤差データ△Dが所定の次元毎あるいは時間毎に分割された分割誤差データ△Di（ｉ＝１，・・・，ｎ）が入力される。また、分割誤差SOMからは、そこに入力される分割誤差データ△Diに対して、その分割誤差データ△Diを再構成した分割再構成誤差データ△DRi（ｉ＝１，・・・，ｎ）を出力することができる。
【０２１８】
次に、図１４及び図１５に示されたように、本体モデル及び分割誤差モデルとして、パターン記憶SOMが採用されている場合の、図４の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３による学習処理について、図１６のフローチャートを参照して説明する。
【０２１９】
この学習処理では、学習処理の対象となるデータDが、外部から、演算部１２１と誤差算出部１２５に供給される。
【０２２０】
そして、学習処理では、ステップＳ１３１において、演算部１２１が、そこに供給されるデータDの学習、すなわち、データDを用いて、本体モデル記憶部１２２に記憶された本体SOMを自己組織的に更新する、本体SOMの自己組織的な学習を、図１１のステップＳ３乃至Ｓ７で説明したように行う。
【０２２１】
ステップＳ１３２では、演算部１２１が、本体モデル記憶部１２２に記憶された本体SOMを構成するノードの中から、データDに対する勝者ノードを決定する。ここでは、本体SOMを構成するノードのうちの、データDに対するスコアが最も高いノードが、データDに対する勝者ノードに決定される。
【０２２２】
なお、データDに対する勝者ノードは、ステップＳ１３１の自己組織的な学習で決定されるので、ステップＳ１３２では、その勝者ノードをそのまま採用することができる。ただし、ステップＳ１３２では、ステップＳ１３１とは別に、本体SOMを構成する各ノードについて、データDに対するスコアを求め、そのスコアの最も高いノードを、データDに対する勝者ノードに決定することができる。
【０２２３】
ステップＳ１３３において、演算部１２１は、ステップＳ１３２で決定された勝者ノードを用いて、データDを再構成することにより再構成データDRを生成する生成処理を、図１３のステップＳ２４で説明したように行う。そして、演算部１２１は、生成された再構成データDRを、誤差算出部１２５及び加算部１２８に供給する。
【０２２４】
ステップＳ１３４において、誤差算出部１２５は、外部からのデータDと、演算部１２１からの再構成データDRとの差分である誤差データ△Dを算出し、データ分割部１２６に供給する。データ分割部１２６は、ｎ次元ベクトルあるいは時系列データである誤差データ△Dを、予め決定された所定の次元毎あるいは所定の時間毎に分割し、その結果得られる分割誤差データ△Di（ｉ＝１，・・・，ｎ）を演算部１２３及び補正データ生成部１２７に供給する。
【０２２５】
ステップＳ１３５において、演算部１２３は、そこに供給される分割誤差データ△Diの学習、すなわち、分割誤差データ△Diを用いて、分割誤差モデル記憶部１２４に記憶された分割誤差SOMを自己組織的に更新する、分割誤差SOMの自己組織的な学習を、図１１のステップＳ３乃至Ｓ７で説明したように行う。以上で、学習処理は終了される。
【０２２６】
以上のように、図１６の学習処理では、本体SOMにおいて、本来学習すべきデータDの学習が行われ、分割誤差SOMにおいて、データDと、そのデータDを本体SOMが再構成することにより得られる再構成データDRとの誤差である誤差データ△Dを分割した分割誤差データ△Diの学習が行われる。
【０２２７】
なお、図１６の学習処理は、例えば、学習処理の対象となるデータDが入力される度に行われる。
【０２２８】
次に、図１４及び図１５に示したように、本体モデル及び分割誤差モデルとして、パターン記憶SOMが採用されている場合の、図４の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３による認識生成処理について、図１７のフローチャートを参照して説明する。
【０２２９】
この認識生成処理では、認識の対象となるデータDが、外部から、演算部１２１と誤差算出部１２５に供給される。
【０２３０】
ステップＳ１４１において、演算部１２１が、そこに供給されるデータDを、図１６の学習処理の学習結果に基づいて認識する認識処理を行う。
【０２３１】
すなわち、演算部１２１は、本体モデル記憶部１２２に記憶された本体SOMを構成するノードの中から、データDに対する勝者ノードを決定し、その勝者ノード（を表すノードラベル）を、データDの認識結果とする。
【０２３２】
ステップＳ１４２において、演算部１２１は、直前のステップＳ１４１でのデータDの認識結果に基づき、そのデータDを再構成することにより再構成データDRを生成する。すなわち、演算部１２１は、データDの認識結果としての、そのデータDに対する勝者ノードを用いて、データDを再構成した再構成データDRを生成し、誤差算出部１２５及び加算部１２８に供給する。
【０２３３】
ここで、再構成データDRは、図１２を参照して上述したようにして取得することができる。すなわち、再構成データDRは、データDに対する勝者ノード（図６）が有するパターン記憶モデル２１を用いて生成することができる。また、再構成データDRは、データDに対する勝者ノード（図６）が有する学習データ記憶部２２に記憶されている学習データのうちの１つを選択することで取得することができる。
【０２３４】
ステップＳ１４３では、誤差算出部１２５が、外部から供給されたデータDと、そのデータDに対して演算部１２１が再構成した再構成データDRとの誤差データ△Dを算出してデータ分割部１２６に供給する。データ分割部１２６は、ｎ次元ベクトルあるいは時系列データである誤差データ△Dを、予め決定された所定の次元毎あるいは所定の時間毎に分割し、その結果得られる分割誤差データ△Di（ｉ＝１，・・・，ｎ）を演算部１２３及び補正データ生成部１２７に供給する。
【０２３５】
ステップＳ１４４において、演算部１２３は、供給された分割誤差データ△Diを、図１６の学習処理の学習結果に基づいて認識する認識処理を行う。すなわち、演算部１２３は、分割誤差モデル記憶部１２４に記憶された誤差SOMを構成するノードの中から、分割誤差データ△Diに対する勝者ノードを決定し、その勝者ノード（を表すノードラベル）を、分割誤差データ△Diの認識結果とする。
【０２３６】
ステップＳ１４５において、演算部１２３は、直前のステップＳ１４４での分割誤差データ△Diの認識結果に基づき、その分割誤差データ△Diを再構成した分割再構成誤差データ△DRi（ｉ＝１，・・・，ｎ）を生成して補正データ生成部１２７に供給する。すなわち、演算部１２３は、分割誤差データ△Diの認識結果としての、その分割誤差データ△Diに対する勝者ノードを用いて、分割誤差データ△Diを再構成した分割再構成誤差データ△DRiを生成し、補正データ生成部１２７に供給する。
【０２３７】
ここで、再構成誤差データ△DRは、再構成データDRと同様に、誤差データ△Dに対する勝者ノード（図６）が有するパターン記憶モデル２１を用いて生成し、あるいは、誤差データ△Dに対する勝者ノードが有する学習データ記憶部２２に記憶されている学習データのうちの１つを選択することで取得することができる。
【０２３８】
ステップＳ１４６では、補正データ生成部１２７が、データ分割部１２６からの分割誤差データ△Diに基づいて再構成データDRの補正すべき次元または時間を決定（例えば、誤差の大きい方から所定数の次元だけを補正するように決定）、さらに、この決定結果に基づいて各次元毎あるいは時間毎の補正重みを決定し、演算部１２３からの分割再構成誤差データ△DRiに補正重みを乗算することにより、部分補正データ△Djを生成し、加算部１２８に供給する。
【０２３９】
ステップＳ１４７において、加算部１２８は、演算部１２１からの再構成データDRと、補正データ生成部１２７からの部分補正データ△Djとを加算し、その結果得られた加算データDR+△DRjを、再構成データDRを補正した最終再構成データとして出力する。以上で、認識生成処理は終了される。
【０２４０】
以上説明したように、学習処理において、データDを、本体SOMで学習するとともに、データDと本体SOMを用いてデータDを再構成した再構成データDRとの誤差データ△Dを算出し、さらに分割した分割誤差データ△Diを分割誤差SOMで学習し、認識生成処理において、本体SOMを用いてデータDを再構成した再構成データDRを、分割誤差SOMを用いて再構成した分割再構成誤差データ△DRiに基づいて生成した部分補正データ△DRjを加算することにより補正し、その結果得られる加算データDR+△DRjを、データDを再構成した最終的な再構成データ（最終再構成データ）として出力するので、所定の次元毎あるいは所定の時間毎の誤差を適切に考慮した処理が行われ、その結果、量子化誤差を低減することができる。
【０２４１】
すなわち、認識生成処理において、本体SOMを構成するノードの中から、データDに対する勝者ノードを決定する認識処理は、データDを、本体SOMを構成する有限個のノードのうちの、データDのパターンに最も類似するパターンを獲得しているノードに変換する処理であり、データDを量子化することと等価である。
【０２４２】
さらに、認識生成処理において、本体SOMを構成するノードのうちの、データDに対する勝者ノードを用いて、データDを再構成した再構成データDRを生成する生成処理は、データDの量子化結果である勝者ノードを、その勝者ノードが獲得しているパターンのデータに変換することであり、勝者ノードを逆量子化することと等価である。
【０２４３】
したがって、認識生成処理によれば、量子化及び逆量子化を行った場合と同様に、量子化誤差が生じる。
【０２４４】
そこで、学習処理において、量子化及び逆量子化で生じる量子化誤差である誤差データ△Dを所定の次元あるいは時間毎に分割して、分割誤差SOMで学習し、認識生成処理において、本体SOMを用いてデータDを再構成した再構成データDRと、分割誤差SOMを用いて再構成した分割再構成誤差データ△DRiに基づいて生成した部分補正データ△DRjとを加算した加算データDR+△DRjを、データDを再構成した最終的な再構成データとすることにより、量子化誤差を効率的に低減することができる。
【０２４５】
すなわち、SOMを構成するノードの数がN1個である場合において、そのSOMのノードの数を、N2個だけ増加して、(N1+N2)個にすると、N1通りの量子化誤差を含む再構成データしか出力することができなかったのが、N2通りだけ増加した(N1+N2)通りの量子化誤差を含む再構成データ（N1+N2通りの量子化誤差を考慮した再構成データ）を出力することができるようになる。したがって、SOMのノードの数をN2個だけ増加すると、出力が可能な再構成データの数が、ノードの増加分であるN2個だけ増加するにすぎない。
【０２４６】
これに対して、本体SOMをN1個のノードで構成するとともに、分割誤差SOMをN2個のノードで構成し、本体SOMを用いてデータDを再構成した再構成データDRと、分割誤差SOMを用いて再構成した分割再構成誤差データ△DRiに基づいて生成した部分補正データ△DRjとを加算した加算データDR+△DRjを、データDを再構成した最終的な再構成データとする場合には、N1×N2通りの最終的な再構成データを出力することができる。
【０２４７】
具体的には、ノードの数N1及びN2を、例えば、いずれも10とすると、SOMを構成するノードの数を増加する場合には、出力が可能な再構成データの数が20(=10+10)であるのに対して、本体SOM及び分割誤差SOMを用いる場合には、出力が可能な再構成データの数が100(=10×10)となる。したがって、本体SOM及び分割誤差SOMを用いる場合には、SOMを構成するノードの数を増加する場合に比較して、量子化誤差を、より低減することができる。
【０２４８】
すなわち、SOMを構成するノードの数を増加する場合には、各ノードに、量子化誤差を考慮した再構成データのパターンが保持されるため、１つのノードに対して、１通りの量子化誤差を考慮した再構成データしか得ることができない。
【０２４９】
これに対して、本体SOM及び分割誤差SOMを用いる場合には、分割誤差SOMにおいて、本体SOMの各ノードから得られる再構成データDRを補正するのに共通して用いることができる分割再構成誤差データ△DRi（分割誤差データ△DRi）のパターンが記憶されるので、本体SOMの１つのノードに対して、分割誤差SOMを構成するノードの数の数倍（補正データ生成分割１２７で決定される補正重みの種類の数）だけの量子化誤差を考慮した最終再構成データとしての加算データDR+△DRjを得ることができ、その結果、量子化誤差を、より低減することができる。
【０２５０】
ここで、SOMを構成するノードの数を増加することにより、本体SOM及び分割誤差SOMを用いる場合と同一の数だけの再構成データを出力するには、上述の例では、SOMを構成するノードの数を100個にする必要がある。そして、SOMを記憶するのに必要なメモリ等の記憶容量は、SOMを構成するノードの数に比例するから、本体SOM及び分割誤差SOMを用いる場合には、SOMを構成するノードの数を増加する場合に比較して、量子化誤差を同程度に低減するのに、SOM（本体SOM及び誤差SOM）を記憶するメモリ等の記憶容量が少なくて済む。つまり、メモリを効率的に使用しつつ、量子化誤差を低減することができる。
【０２５１】
なお、図１６の学習処理と、図１７の認識生成処理とについては、データDの入力に対して、両方を行うこともできるし、いずれか一方だけを行うこともできる。
【０２５２】
次に、図１８は、図１の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３の第２の構成例を示している。
【０２５３】
図１８において、本体学習モジュール１０１は、演算部２０１及び本体モデル記憶部２０２から、誤差学習モジュール１０２は、演算部２０３及び分割誤差モデル記憶部２０４から、制御部１０３は、誤差算出部２０５、データ分割部２０６、補正データ生成部２０７及び加算部２０８から、それぞれ構成されている。
【０２５４】
本体学習モジュール１０１の演算部２０１には、例えば、外部から、入力データSや出力データAが、図１におけるデータDとして供給される。
【０２５５】
ここで、入力データS及び出力データAとしては、例えば、前述したように、センサデータやアクションデータを採用することができる。入力データS及び出力データAは、ｎ次元ベクトルあるいは時系列データであるとする。
【０２５６】
すなわち、例えば、入力データSとしては、音声データや画像データ（から抽出された特徴パラメータ）を採用し、出力データAとしては、入力データSとしての音声データ及び画像データに応じてロボットの腕を駆動するアクチュエータを制御する制御データや、入力データSとしての音声データ及び画像データに応じて合成音を生成（音声合成）するためにに用いられるパラメータを採用することができる。
【０２５７】
また、例えば、入力データSとしては、フレーム#tのセンサデータを採用し、出力データAとしては、フレーム#t+1のセンサデータを採用することができる。さらに、例えば、入力データSとしては、フレーム#tのセンサデータと、フレーム#tのアクションデータとの組み合わせを採用し、出力データAとしては、フレーム#t+1のセンサデータと、フレーム#t+1のアクションデータとの組み合わせを採用することができる。
【０２５８】
なお、学習時には、入力データSと、その入力データSに対して出力すべき出力データAとをセットにした教示データが、演算部２０１（及び誤差算出部２０５）に供給され、認識生成時には、入力データSだけが、演算部２０１に供給される。
【０２５９】
ここで、例えば、図１の入出力システムが、ロボットに適用される場合において、そのロボットに、目の前にあるボールを左右に転がすタスクを学習させるときには、ユーザがロボットの前にボールをおき、ロボットの腕を持って、ボールを左右に転がすように、腕を動かす。
【０２６０】
この場合、左右に転がるボールの状態を撮影（検知）した画像データを、入力データSとして採用することとすると、その入力データSに対して出力すべき出力データAとしては、ロボットの腕を、ユーザが動かしているように駆動するための、アクチュエータを制御する制御データを採用することができる。
【０２６１】
以上のような入力データSと出力データAとのセットである教示データを入出力システムに与えて学習処理を行った後、認識生成処理において、左右に転がるボールの状態を撮影した画像データを、入力データSとして入出力システムに与えると、入出力システムからは、ボールの状態に応じて、ロボットの腕を駆動するように、アクチュエータを制御する制御データが出力される。
【０２６２】
演算部２０１は、そこに供給される入力データS及び出力データAの学習を行う。すなわち、演算部２０１は、そこに供給される入力データS及び出力データAを用いて、本体モデル記憶部２０２に記憶されている本体モデルの学習を行う。
【０２６３】
また、演算部２０１は、そこに供給される入力データSに対して、本体モデル記憶部２０２に記憶されている本体モデルを用いて、入力データSを再構成し、その結果得られる再構成入力データSRを出力する。さらに、演算部２０１は、本体モデル記憶部２０２に記憶されている本体モデルを用いて、そこに供給される入力データSに対して出力すべき出力データAを再構成し、その結果得られる再構成出力データARを出力する。また、演算部２０１は、そこに供給される出力データAに対して、本体モデル記憶部２０２に記憶されている本体モデルを用いて、出力データAを再構成し、その結果得られる再構成出力データARを出力する。
【０２６４】
演算部２０１が出力する再構成入力データSRは、制御部１０３の誤差算出部２０５に供給され、演算部２０１が出力する再構成出力データARは、制御部１０３の誤差算出部２０５及び加算部２０８に供給される。
【０２６５】
本体モデル記憶部２０２は、データを学習するモデルとしての本体モデルを記憶している。本体モデルとしては、教師なし学習が可能な、例えば、SOMやNN、その他の学習モデルを採用することができる。
【０２６６】
誤差学習モジュール１０２の演算部２０３には、制御部１０３のデータ分割部２０６から分割入力誤差データ△Si（ｉ＝１，２，・・・，ｎ）及び分割出力誤差データ△A i（ｉ＝１，２，・・・，ｎ）が、図１における誤差データ△Dとして供給される。
【０２６７】
演算部２０３は、データ分割部２０６から分割入力誤差データ△Si及び分割出力誤差データ△A iの学習を行う。すなわち、演算部２０３は、データ分割部２０６からの分割入力誤差データ△Si及び分割出力誤差データ△Aiを用いて、分割誤差モデル記憶部２０４に記憶されている誤差モデルの学習を行う。
【０２６８】
また、演算部２０３は、分割誤差モデル記憶部２０４に記憶されている分割誤差モデルを用いて、そこに供給される分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成し、その結果得られる分割再構成出力誤差データ△AR i（ｉ＝１，２，・・・，ｎ）を出力する。
【０２６９】
ここで、分割入力誤差データ△Siに対応する分割出力誤差データ△Aiとは、分割入力誤差データ△Siが得られる入力データSに対して出力すべき出力データAから得られる分割出力誤差データ△Aiを意味する。
【０２７０】
さらに、演算部２０３は、そこに供給される分割出力誤差データ△Aiに対して、分割誤差モデル記憶部２０４に記憶されている分割誤差モデルを用いて、分割出力誤差データ△Aiを再構成し、その結果得られる分割再構成出力誤差データ△ARiを出力する。
【０２７１】
演算部２０３が出力する分割再構成出力誤差データ△ARiは、制御部１０３の補正データ生成部２０７に供給される。
【０２７２】
分割誤差モデル記憶部２０４は、データを学習するモデルとしての誤差モデルを記憶している。分割誤差モデルとしては、教師なし学習が可能な、例えば、SOMやNN、その他の学習モデルを採用することができる。
【０２７３】
制御部１０３の誤差算出部２０５には、上述したように、演算部２０１から再構成入力データSR及び再構成出力データARが供給される他、演算部２０１に供給される入力データS及び出力データAと同一の入力データS及び出力データAが外部から供給される。
【０２７４】
誤差算出部２０５は、外部からの入力データSと、演算部２０１からの再構成入力データSRとの差分S-SRを求め、入力誤差データ△Sとして、データ分割部２０６に供給する。
【０２７５】
また、誤差算出部２０５は、外部からの出力データAと、演算部２０１からの再構成出力データARとの差分A-ARを求め、出力誤差データ△Aとして、データ分割部２０６に供給する。
【０２７６】
データ分割部２０６は、ｎ次元ベクトルあるいは時系列データである入力誤差データ△S及び出力誤差データ△Aを、それぞれ、予め決定された所定の次元毎あるいは所定の時間毎に分割し、その結果得られる分割入力誤差データ△Si及び分割出力誤差データ△Aiを出力する。
【０２７７】
例えば、入力誤差データ△S及び出力誤差データ△Aが、２次元ベクトルである場合、入力誤差データ△Sを△S1と△S2に分割し、出力誤差データ△Aを△A1と△A2に分割する。また、例えば、入力誤差データ△S及び出力誤差データ△Aが、100ステップの時系列データである場合、入力誤差データ△S及び出力誤差データ△Aを、1ステップから50ステップまでの△S1及び△A1と51ステップから100ステップまでの△S2及び△A2に分割する。なお、分割する数ｎは、入力誤差データ△Sや出力誤差データ△Aの次元数、ステップ数に拘わりなく任意である。
【０２７８】
分割入力誤差データ△Siは、演算部２０３及び補正データ生成部２０７に供給され、分割出力誤差データ△Aiは、演算部２０３に供給される。
【０２７９】
補正データ生成部２０７は、データ分割部２０６からの分割入力誤差データ△Siに基づいて再構成出力データSRの補正すべき次元または時間を決定し、あるいはランダムに決定し、決定結果に従い、分割された所定の次元毎あるいは時間毎の補正重みを決定して、演算部２０３からの分割再構成出力誤差データ△ARiにそれぞれ補正重みを乗算することにより、部分補正データ△ARjを生成し、加算部２０８に供給する。
【０２８０】
加算部２０８は、演算部２０１から供給される再構成出力データARと、補正データ生成部２０７から供給される部分補正データ△ARjとを加算し、その結果得られる加算データAR'＝AR+△ARjを、再構成出力データARを補正した、最終的な再構成出力データ（以下、適宜、最終再構成出力データともいう）として出力する。
【０２８１】
ここで、図１８において、本体モデル記憶部２０２に記憶されている本体モデルと、分割誤差モデル記憶部２０４に記憶されている分割誤差モデルとしては、図４の場合と同様に、同一の学習モデルを採用することもできるし、異なる学習モデルを採用することもできるが、ここでは、説明を簡単にするために、本体モデルと誤差モデルとしては、同一の学習モデルを採用することとする。
【０２８２】
また、図１８において、本体モデルは、本来学習すべきデータである入力データS、及び、出力データSを対象として学習を行う学習モデルであるのに対して、分割誤差モデルは、データを学習した本体モデルを用いて、ある入力データSとその入力データSを再構成して得られる再構成入力データSRとの誤差（入力誤差データ△S）を所定の次元毎あるいは所定の時間毎に分割した分割入力誤差データ△Si、及び、ある出力データAとその出力データAを再構成して得られる再構成出力データARとの誤差（出力誤差データ△A）を所定の次元毎あるいは所定の時間毎に分割した分割出力誤差データ△Aiを対象として学習を行う学習モデルである。したがって、図１８でも、図４と同様に、本体モデルと分割誤差モデルとは、学習の対象が異なるだけで、学習モデルとしての本質的な違いはない。
【０２８３】
入力データS及び出力データAを学習する本体モデル、並びに、分割入力誤差データ△Si及び分割出力誤差データ△Aiを学習する分割誤差モデルとしては、例えば、パターン記憶SOMを含むSOMを利用した入出力関係モデルを採用することができる。
【０２８４】
ここで、図１９乃至図２３を参照して、入出力関係モデルについて説明する。
【０２８５】
図１９は、パターン記憶SOMを利用した入出力関係モデルの構成例を模式的に示している。
【０２８６】
図１９において、入出力関係モデルは、２つのパターン記憶SOM#1及び#2を有している。さらに、入出力関係モデルは、パターン記憶SOM#1の各ノードNi（i＝１，２，・・・，ノードの総数）と、パターン記憶SOM#2の各ノードN'j（j＝１，２，・・・，ノードの総数）とが結合されている。
【０２８７】
ここで、図１９において、パターン記憶SOM#1のノードNiと、パターン記憶SOM#2のノードN'jとの間の矢印が、そのノードNiとN'jとの結合を表している。
【０２８８】
なお、パターン記憶SOM#1及び#2は、同一の数のノードと同一のリンクを有するものであってもよいし、異なる数のノードまたは異なるリンクを有するものであってもよい。また、パターン記憶SOM#1のノードNiが有するパターン記憶モデル２１（図６）と、パターン記憶SOM#2のノードが有するパターン記憶モデル２１も、同一のパターン記憶モデルであってもよいし、異なるパターン記憶モデルであってもよい。
【０２８９】
次に、図２０は、入出力関係モデルを用いて、学習処理を行う学習装置と、認識生成処理を行う認識生成装置との構成例を示している。
【０２９０】
図２０において、学習装置は、学習部２２１及び結合重み更新部２２２から構成され、認識生成装置は、スコア計算部２３１、勝者ノード決定部２３２、生成ノード決定部２３３、及び再構成部２３４から構成される。
【０２９１】
学習装置には、学習の対象となる入力データ（の観測値）と、その入力データに対して出力すべき出力データ（の観測値）とのセットである教示データが供給される。学習装置は、そこに供給される教示データを用いて、入出力関係モデル（図１９）を構成するパターン記憶SOM#1及び#2の自己組織的な更新、並びに、パターン記憶SOM#1及び#2のノードどうしの結合関係を更新する。
【０２９２】
すなわち、図２０の学習装置において、学習部２２１は、図８に示した学習装置と同様に構成され、学習装置に供給される教示データのうちの入力データを用いて、入出力関係モデル（図１９）におけるパターン記憶SOM#1を、図８の学習装置における場合と同様に、自己組織的に更新する。また、学習部２２１は、学習部２２１に供給される教示データのうちの出力データ（教示データにおいて、入力データとセットになっている出力データ）を用いて、入出力関係モデル（図１９）におけるパターン記憶SOM#2を、図８の学習装置における場合と同様に、自己組織的に更新する。
【０２９３】
さらに、学習部２２１は、パターン記憶SOM#1を更新するときに勝者ノードとなった、そのパターン記憶SOM#1のノードNiのノードラベル（以下、適宜、入力ラベルと称する）と、パターン記憶SOM#2を更新するときに勝者ノードとなった、そのパターン記憶SOM#2のノードN'jのノードラベル（以下、適宜、出力ラベルと称する）とをセットにしたラベルセットを、結合重み更新部２２２に供給する。
【０２９４】
結合重み更新部２２２は、学習部２２１から供給されるラベルセットに基づき、入出力関係モデル（図１９）におけるパターン記憶SOM#1のノードNiと、パターン記憶SOM#2のノードN'jとの結合関係を更新する。
【０２９５】
ここで、学習部２２１から結合重み更新部２２２に供給されるラベルセットは、入力ラベルと出力ラベルとのセットであり、入力ラベルは、教示データのうちの入力データを用いてパターン記憶SOM#1を更新するときに勝者ノードとなった、そのパターン記憶SOM#1のノードNiのノードラベルであるから、パターン記憶SOM#1において、入力データに最も適合するノードNiのノードラベルである。
【０２９６】
同様に、出力ラベルは、教示データのうちの出力データを用いてパターン記憶SOM#2を更新するときに勝者ノードとなった、そのパターン記憶SOM#2のノードN'jのノードラベルであるから、パターン記憶SOM#2において、出力データに最も適合するノードN'jのノードラベルである。
【０２９７】
結合重み更新部２２２では、パターン記憶SOM#1のノードのうち、教示データにおける入力データに最も適合するノードである勝者ノードNiと、パターン記憶SOM#2の各ノードとの結合関係が更新されるとともに、パターン記憶SOM#2のノードのうち、教示データにおける出力データに最も適合するノードである勝者ノードN'jと、パターン記憶SOM#1の各ノードとの結合関係が更新される。
【０２９８】
ここで、入出力関係モデルにおけるパターン記憶SOM#1のノードと、パターン記憶SOM#2のノードとの間の結合関係は、その結合の度合いが強いほど、大きな値となる結合重みによって表されるようになっており、ノードどうしの結合関係の更新とは、結合重みの更新を意味する。結合重み更新部２２２によるノードどうしの結合関係の更新の方法についての詳細は、後述する。
【０２９９】
認識生成装置には、入力データが供給される。認識生成装置は、入出力関係モデルにおけるパターン記憶SOM#1において、入力データに最も適合する勝者ノードNiを決定し、その勝者ノードNiとの結合重みが最も強い、パターン記憶SOM#2のノードを、その入力データに対して出力すべき出力データを再構成した再構成出力データ（出力データの推定値）を生成する生成ノードN'jに決定する。さらに、認識生成装置は、生成ノードN'jが有するパターン記憶モデル２１（図６）を用いて、入力データに対して出力すべき出力データを再構成した再構成出力データを生成して出力する。
【０３００】
すなわち、図２０の認識生成装置において、スコア計算部２３１は、認識生成装置に供給される入力データに対して、入出力関係モデルを構成するパターン記憶SOM#1の各ノードNiが適合する度合いであるスコアを、図１２の認識生成装置のスコア計算部５１における場合と同様にして計算し、勝者ノード決定部２３２に供給する。
【０３０１】
勝者ノード決定部２３２は、図１２の認識生成装置の勝者ノード決定部５２における場合と同様に、スコア計算部２３１から供給されるスコアが最も高いパターン記憶SOM#1のノードNiを勝者ノードに決定し、その勝者ノードを表すノードラベル（入力ラベル）を、生成ノード決定部２３３に供給する。
【０３０２】
生成ノード決定部２３３は、入出力関係モデルを構成するパターン記憶SOM#2のノードの中で、勝者ノード決定部２３２からの入力ラベルが表すノードNiとの結合重みが最も強い（最強の）ノードN'jを生成ノードとして決定し、その生成ノードN'jを表す出力ラベルを、再構成部２３４に供給する。
【０３０３】
再構成部２３４は、入出力関係モデルを構成するパターン記憶SOM#2のノードのうちの、生成ノード決定部２３３からの出力ラベルが表すノードN'jが有するパターン記憶モデル２１（図６）に基づいて、認識生成装置に供給された入力データに対して出力すべき出力データを再構成した再構成出力データを、例えば、図１２の認識生成装置の再構成部５３における場合と同様にして取得（生成）して出力する。
【０３０４】
次に、図２０の学習装置で行われる入出力関係モデルの学習処理について、図２１のフローチャートを参照して説明する。
【０３０５】
ステップＳ２０１において、入力データと出力データとのセットである教示データが、図２０の学習装置に入力されると、その教示データは、学習部２２１に供給され、処理は、ステップＳ２０２に進む。
【０３０６】
ステップＳ２０２において、学習部２２１は、教示データのうちの入力データを用いて、入出力関係モデル（図１９）におけるパターン記憶SOM#1を、自己組織的に更新する。ステップＳ２０３において、学習部２２１は、教示データのうちの出力データを用いて、入出力関係モデルにおけるパターン記憶SOM#2を、自己組織的に更新する。
【０３０７】
そして、学習部２２１は、パターン記憶SOM#1を更新するときに勝者ノードとなった、そのパターン記憶SOM#1のノードNiの入力ラベルと、パターン記憶SOM#2を更新するときに勝者ノードとなった、そのパターン記憶SOM#2のノードN'jの出力ラベルとのセットであるラベルセットを、結合重み更新部２２２に供給する。
【０３０８】
ステップＳ２０４では、結合重み更新部２２２が、学習部２２１から供給されるラベルセットに基づき、入出力関係モデル（図１９）におけるパターン記憶SOM#1の各ノードと、パターン記憶SOM#2の各ノードとの結合重みを更新して、ステップＳ２０１に戻り、次の教示データが入力されるのを待って、以下、同様の処理が繰り返される。
【０３０９】
なお、ステップＳ２０２とＳ２０３の処理は、並列して行うこともできるし、図２１の場合と逆順で行うこともできる。
【０３１０】
次に、結合重み更新部２２２（図２０）が、図２１のステップＳ２０４で行う結合重み（ノードどうしの結合関係）の更新について、図２２を参照して説明する。
【０３１１】
なお、以下、適宜、入出力関係モデルにおいて、入力データが与えられるパターン記憶SOM、つまり、入力データを用いて学習が行われ、入力データのパターンを獲得するパターン記憶SOM（パターン記憶SOM#1）を、入力SOMともいい、出力データが与えられるパターン記憶SOM、つまり、出力データを用いて学習が行われ、出力データのパターンを獲得するパターン記憶SOM（パターン記憶SOM#2）を、出力SOMともいう。
【０３１２】
さらに、以下、適宜、入力SOMのノードを入力ノードとも称し、出力SOMのノードを出力ノードとも称する。
【０３１３】
図２２は、図１９に示したように、入力SOM#1の入力ノードと、出力SOM#2の出力ノードとが結合している入出力関係モデルを示している。
【０３１４】
すなわち、図２２左側では、入出力関係モデルは、入力SOM#1と、出力SOM#2とを有し、入力SOM#1の各入力ノードと、出力SOM#2の各出力ノードとが結合している。なお、図２２では、入力SOM#1、及び出力SOM#2のいずれも、８つのノードで構成されている。
【０３１５】
図２２左側では、入力SOM#1の各入力ノードは、出力SOM#2のすべての出力ノードと結合しており（したがって、出力SOM#2の各出力ノードも、入力SOM#1のすべての入力ノードと結合している）、入力SOM#1の入力ノードと、出力SOM#2の出力ノードとのすべての組み合わせについて、結合重みwが存在する。
【０３１６】
いま、ノードどうしが結合している２つのパターン記憶SOMについて、そのうちの一方のパターン記憶SOMのノードを各行に対応させるとともに、他方のパターン記憶SOMのノードを各列に対応させ、第i行第j列の要素に、一方のパターン記憶SOMのi番目のノードと、他方のパターン記憶SOMのj番目のノードとの結合重みwを配置した行列を、結合重み行列MTXと称することにすると、結合重み更新部２２２（図２０）は、この結合重み行列MTXの各要素である結合重みwを更新する。
【０３１７】
図２２右側は、図２２左側の入出力関係モデルについての結合重み行列MTXを示している。
【０３１８】
図２２右側の結合重み行列MTXでは、入力ノードを各行に対応させるとともに、出力ノードを各列に対応させ、第i行第j列の要素に、i番目の入力ノードと、j番目の出力ノードとの結合重みwが配置されている。結合重み更新部２２２（図２０）は、この結合重み行列MTXの各要素である結合重みwを更新する。
【０３１９】
すなわち、結合重み更新部２２２は、例えば、最初に電源がオンにされたとき等に、結合重み行列MTXにおけるすべての結合重みwを、初期値（例えば、0）に初期化する。そして、結合重み更新部２２２は、図２０の学習装置に対して、教示データ、つまり、入力データと出力データとのセットが入力され、これにより、入力SOM#1における勝者ノードを表す入力ラベルと、出力SOM#2における勝者ノードを表す出力ラベルとのラベルセットが、学習部２２１から与えられる度に、それらの勝者ノードどうしの結合を、いわば中心として、結合重みを更新する。
【０３２０】
具体的には、結合重み更新部２２２は、例えば、式（２）にしたがって、結合重み行列MTXの結合重みwを更新する。
【０３２１】
w=(1-β)w+β△w
・・・（２）
【０３２２】
ここで、βは、結合重みwを更新する程度の表す学習率であり、0から1の範囲で与えられる。学習率βを小さくするほど、結合重みwは、あまり変化しなくなり、学習率βが0である場合には、結合重みwは変化しない。一方、学習率βを大きくするほど、結合重みwも、大きく変化し、学習率βが1である場合には、結合重みwは、更新の基準値△wに更新される。
【０３２３】
また、基準値△wは、例えば、式（３）で与えられる。
【０３２４】
△w=1/(1+d)
・・・（３）
【０３２５】
ここで、dは、式（１）における場合と同様に、勝者ノードとのパターン間距離を表し、勝者ノードとなっているノードについては、d=0である。したがって、勝者ノード（となっているノード）については、基準値△wは1となり、勝者ノードからのパターン間距離dが大のノードほど、基準値△wは0に近づく。
【０３２６】
いま、学習部２２１（図２０）から結合重み更新部２２２に供給される入力ラベルが表す入力ノード、すなわち、入力SOM#1における勝者ノードを、入力ノードNiと表すとともに、学習部２２１（図２０）から結合重み更新部２２２に供給される出力ラベルが表す出力ノード、すなわち、出力SOM#2における勝者ノードを、出力ノードN'jと表すと、結合重み更新部２２２（図２０）は、式（２）（及び式（３））にしたがい、以下のように、結合重み行列MTXの結合重みwを更新する。
【０３２７】
すなわち、結合重み更新部２２２は、出力SOM#2の各出力ノードについて、出力SOM#2における勝者ノードである出力ノードN'jとのパターン間距離dを用い、式（３）にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式（２）にしたがって、入力SOM#1の勝者ノードであるi番目の入力ノードNiとの結合重みwを更新する。
【０３２８】
これにより、入力SOM#1の勝者ノードである入力ノードNiに対応する、結合重み行列MTXの第i行の（各列の）結合重みwが更新される。
【０３２９】
また、結合重み更新部２２２は、入力SOM#1の各入力ノードについて、入力SOM#1における勝者ノードである入力ノードNiとのパターン間距離dを用い、式（３）にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式（２）にしたがって、出力SOM#2の勝者ノードであるj番目の出力ノードN'jとの結合重みwを更新する。
【０３３０】
これにより、出力SOM#2の勝者ノードである出力ノードN'jに対応する、結合重み行列MTXの第j列の（各行の）結合重みwが更新される。
【０３３１】
したがって、入力SOM#1の勝者ノードNiと、出力SOM#2の勝者ノードN'jとの結合重みが、結合の度合いを最も強めるように更新される。
【０３３２】
なお、入力SOM#1の勝者ノードである入力ノードNiと、出力SOM#2の勝者ノードである出力ノードN'jとの結合重みwの更新は、出力SOM#2の各出力ノードについての、勝者ノードである入力ノードNiとの結合重みwの更新時か、または、入力SOM#1の各入力ノードについての、勝者ノードである出力ノードN'jとの結合重みwの更新時のいずれか一方においてのみ行われる。
【０３３３】
以上のような結合重みw（結合重み行列MTX）の更新は、教示データとしての入力データと出力データとのセットが、図２０の学習装置に対して入力される度に行われる。
【０３３４】
さらに、入出力関係モデルが有する入力SOM#1の入力データを用いた学習、及び出力SOM#2の出力データを用いた学習も、教示データとしての入力データと出力データとのセットが、図２０の学習装置に対して入力される度に行われる。
【０３３５】
なお、入力SOM#1、及び出力SOM#2の学習が進むと、入力ノードが有するパターン記憶モデル２１が、ある特定のパターンを表現（獲得）し、また、出力ノードが有するパターン記憶モデル２１も、他の特定のパターンを表現するようになる。
【０３３６】
その結果、ある特定のパターンの入力データと、他の特定のパターンの出力データとの間に、何らかの関係性がある場合、そのような入力データと出力データとのセット（教示データ）が与えられると、入力SOM#1においてある特定のパターンを表現するパターン記憶モデル２１を有する入力ノードが勝者ノードとなるとともに、出力SOM#2において他の特定のパターンを表現するパターン記憶モデル２１を有する出力ノードが勝者ノードとなる。
【０３３７】
さらに、上述したように、入力SOM#1の勝者ノードを、いわば中心として、入力SOM#1の各入力ノードと、出力SOM#2の勝者ノードとの結合重みが更新されるとともに、出力SOM#2の勝者ノードを中心として、出力SOM#2の各出力ノードと、入力SOM#1の勝者ノードとの結合重みが更新される。
【０３３８】
すなわち、入力SOM#1の各入力ノードと、出力SOM#2の勝者ノードとの結合重みは、入力SOM#1の勝者ノードとのパターン間距離dが近い入力ノードほど強くなる（強化する）ように更新される。また、出力SOM#2の各出力ノードと、入力SOM#1の勝者ノードとの結合重みは、出力SOM#2の勝者ノードとのパターン間距離dが近い出力ノードほど強くなるように更新される。
【０３３９】
逆に言えば、入力SOM#1の各入力ノードと、出力SOM#2の勝者ノードとの結合重みは、入力SOM#1の勝者ノードとのパターン間距離dが遠い入力ノードほど弱くなる（弱化する）ように更新される。また、出力SOM#2の各出力ノードと、入力SOM#1の勝者ノードとの結合重みも、出力SOM#2の勝者ノードとのパターン間距離dが遠い出力ノードほど弱くなるように更新される。
【０３４０】
多数の教示データが与えられ、入力SOM#1、及び出力SOM#2の学習が進み、さらに、結合重みの更新が進むと、その結合重みによって、入力データ（のパターン）と出力データ（のパターン）とを関係付ける入出力関係モデルを獲得することができる。
【０３４１】
そして、入力データと出力データとを関係付ける入出力関係モデルによれば、ある入力データが与えられた場合に、入力SOM#1において、その入力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みが最強の出力SOM#2の出力ノードを決定することができる。さらに、その出力ノード（が有するパターン記憶モデル２１）を用いて、入力データに対して出力すべき出力データを再構成した再構成出力データを得ることができる。
【０３４２】
次に、図２９の認識生成装置において、入力データを認識し、その認識結果に基づき、その入力データに対して出力すべき出力データを再構成した再構成出力データを生成する認識生成処理について、図２３のフローチャートを参照して説明する。
【０３４３】
この認識生成処理では、ステップＳ２１１において、入力データが、図２０の認識生成装置に入力され、認識生成装置が入力データを認識する。
【０３４４】
すなわち、入力データは、スコア計算部２３１に供給され、スコア計算部２３１は、ステップＳ２１２において、入力データに対して、入出力関係モデルを構成するパターン記憶SOM#1の各ノードNiのスコアを計算し、勝者ノード決定部２３２に供給する。
【０３４５】
ステップＳ２１３において、勝者ノード決定部２３２は、入出力関係モデルを構成するパターン記憶SOM#1のノードの中で、スコア計算部２３１からのスコアが最も高いノードを、勝者ノードNiに決定し、その勝者ノードNiを表す入力ラベルを、入力データの認識結果として、生成ノード決定部２３３に供給する。
【０３４６】
ステップＳ２１４において、生成ノード決定部２３３が、入出力関係モデルを構成するパターン記憶SOM#2のノードの中で、勝者ノード決定部２３２からの認識結果としての入力ラベルが表すノードNiとの結合重みが最も強いノードN'jを生成ノードに決定し、その生成ノードN'jを表す出力ラベルを再構成部２３４に供給する。
【０３４７】
ステップＳ２１５において、再構成部２３４は、入出力関係モデルを構成するパターン記憶SOM#2のノードのうちの、生成ノード決定部２３３からの出力ラベルが表すノードN'j、つまり、生成ノードを用い、認識生成装置に供給された入力データに対して出力すべき出力データの推定値としての、その出力データを再構成した再構成出力データを、図１２の再構成部５３と同様にして取得（生成）して出力する。以上で、認識生成処理は終了される。
【０３４８】
次に、図２４は、本体モデル及び分割誤差モデルとして、入出力関係モデルが採用されている場合の、図１８の本体モデル記憶部２０２と分割誤差モデル記憶部２０４の記憶内容を、模式的に示している。
【０３４９】
図２４において、本体モデル記憶部２０２には、本体モデルとしての入出力関係モデルが記憶されており、分割誤差モデル記憶部２０４には、分割誤差モデルとしての入出力関係モデルが記憶されている。
【０３５０】
ここで、以下、適宜、本体モデルとしての入出力関係モデルを、本体入出力関係モデルとも称し、分割誤差モデルとしての入出力関係モデルを、誤差入出力関係モデルとも称する。
【０３５１】
本体入出力関係モデル、及び誤差入出力関係モデルは、２つのパターン記憶SOMを有し、その２つのSOMのノードどうしが結合された入出力関係モデルである。
【０３５２】
すなわち、本体入出力関係モデルは、入力データSの学習用のパターン記憶SOMと、出力データAの学習用のパターン記憶SOMとを有する。そして、入力データSの学習用のパターン記憶SOMと、出力データAの学習用のパターン記憶SOMを、それぞれ、入力本体SOMと出力本体SOMと称することにすると、本体入出力関係モデルでは、入力本体SOMと出力本体SOMとのノードどうしが結合されており、入力本体SOMと出力本体SOMとのノードどうしの結合の強さは、結合重みによって表される。
【０３５３】
ここで、以下、適宜、本体入出力関係モデルの結合重みを、本体結合重みともいう。
【０３５４】
誤差入出力関係モデルは、分割入力誤差データ△Siの学習用のパターン記憶SOMと、分割出力誤差データ△Aiの学習用のパターン記憶SOMとを有する。そして、分割入力誤差データ△Siの学習用のパターン記憶SOMと、分割出力誤差データ△Aiの学習用のパターン記憶SOMを、それぞれ、分割入力誤差SOMと分割出力誤差SOMと称することにすると、誤差入出力関係モデルでは、分割入力誤差SOMと分割出力誤差SOMとのノードどうしは結合されており、分割入力誤差SOMと分割出力誤差SOMとのノードどうしの結合の強さは、結合重みによって表される。
【０３５５】
以下、適宜、誤差入出力関係モデルの結合重みを、誤差結合重みともいう。
【０３５６】
図２５は、図２４の本体入出力関係モデル及び誤差入出力関係モデルに対して入出力することができるデータを説明する図である。
【０３５７】
本体入出力関係モデルの入力本体SOMに対しては、学習の対象となる入力データS（教示データを構成する入力データS）、及び認識の対象となる入力データSが入力される。また、入力本体SOMからは、そこに入力される入力データSに対して、その入力データSを再構成した再構成入力データSRを出力することができる。
【０３５８】
本体入出力関係モデルの出力本体SOMに対しては、学習の対象となる出力データA（入力本体SOMに入力される入力データSとともに教示データを構成する出力データA）が入力される。また、出力本体SOMからは、そこに入力される出力データAや、入力本体SOMに入力される入力データSに対して出力すべき出力データAを再構成した再構成出力データARを出力することができる。
【０３５９】
誤差入出力関係モデルの分割入力誤差SOMに対しては、入力本体SOMに入力される入力データSと、その入力データSに対して入力本体SOMから出力される再構成入力データSRとの誤差である分割入力誤差データ△Sを所定の次元毎あるいは所定の時間毎に分割した分割入力誤差データ△Siが入力される。
【０３６０】
誤差入出力関係モデルの分割出力誤差SOMに対しては、出力本体SOMに入力される出力データAと、その出力データAに対して出力本体SOMから出力される再構成出力データARとの誤差である分割出力誤差データ△Aを所定の次元毎あるいは所定の時間毎に分割した分割出力誤差データ△Aiが入力される。また、分割出力誤差SOMからは、そこに入力される分割出力誤差データ△Aiや、分割入力誤差SOMに入力される分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを出力することができる。
【０３６１】
ここで、分割入力誤差データ△Siに対応する分割出力誤差データ△Aiとは、上述したように、分割入力誤差データ△Siが得られる入力データSに対して出力すべき出力データAから得られる分割出力誤差データ△Aiを意味する。
【０３６２】
次に、図２４及び図２５に示したように、本体モデル及び分割誤差モデルとして、入出力関係モデルが採用されている場合の、図１８の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３による学習処理について、図２６のフローチャートを参照して説明する。
【０３６３】
この学習処理では、学習処理の対象となる入力データS及び出力データAのセットである教示データが、外部から、演算部２０１と誤差算出部２０５に供給される。
【０３６４】
ステップＳ２５１において、演算部２０１は、供給された教示データを構成する入力データSの学習、すなわち、入力データSを用いて、本体モデル記憶部２０２に記憶された本体入出力関係モデルの入力本体SOMを自己組織的に更新する、入力本体SOMの自己組織的な学習を、図１１のステップＳ３乃至Ｓ７で説明したように行う。
【０３６５】
ステップＳ２５２において、演算部２０１は、供給された教示データを構成する出力データA（ステップＳ２５１で学習がされた入力データSに対して出力すべき出力データA）の学習、すなわち、出力データAを用いて、本体モデル記憶部２０２に記憶された本体入出力関係モデルの出力本体SOMを自己組織的に更新する、出力本体SOMの自己組織的な学習を、図１１のステップＳ３乃至Ｓ７で説明したように行う。
【０３６６】
ステップＳ２５３において、演算部２０１は、本体モデル記憶部２０２に記憶された本体入出力関係モデルの入力本体SOMを構成するノードの中から、入力データSに対する勝者ノードを決定する。ここでは、入力本体SOMを構成するノードのうちの、入力データSに対するスコアが最も高いノードが、入力データSに対する勝者ノードに決定される。
【０３６７】
なお、入力データSに対する勝者ノードは、ステップＳ２５１の自己組織的な学習で決定されるので、ステップＳ２５３では、その勝者ノードをそのまま採用することができる。ただし、ステップＳ２５３では、ステップＳ２５１とは別に、入力本体SOMを構成する各ノードについて、入力データSに対するスコアを求め、そのスコアの最も高いノードを、入力データSに対する勝者ノードに決定することができる。
【０３６８】
ステップＳ２５４において、演算部２０１は、本体モデル記憶部２０２に記憶された本体入出力関係モデルの出力本体SOMを構成するノードの中から、出力データAに対する勝者ノードを決定する。ここでは、ステップＳ２５３と同様に、ステップＳ２５２の自己組織的な学習で決定される勝者ノードをそのまま採用することもできるし、ステップＳ２５２とは別に、出力本体SOMを構成する各ノードについて、出力データAに対するスコアを求め、そのスコアの最も高いノードを、出力データAに対する勝者ノードに決定することもできる。
【０３６９】
ステップＳ２５５において、演算部２０１は、結合重み更新部２２２（図２０）と同様に、ステップＳ２５３で得られた入力本体SOMの勝者ノードを中心として、入力本体SOMの各ノードと、ステップＳ２５４で得られた出力本体SOMの勝者ノードとの本体結合重みを更新するとともに、出力本体SOMの勝者ノードを中心として、出力本体SOMの各ノードと、入力本体SOMの勝者ノードとの本体結合重みを更新する。
【０３７０】
ステップＳ２５６において、演算部２０１は、ステップＳ２５３で決定された入力本体SOMの勝者ノードを用いて、入力データSを再構成した再構成入力データSRを、図１２の再構成部５３と同様にして生成（取得）し、誤差算出部２０５に供給する。
【０３７１】
ステップＳ２５７において、誤差算出部２０５は、外部からの入力データSと、その入力データSに対して演算部２０１が出力した再構成入力データSRとを用いて、入力誤差データ△S＝S-SRを算出し、データ分割部２０６に供給する。データ分割部２０６は、入力誤差データ△Sを、予め決定されている所定の次元毎あるいは所定の時間毎に分割し、その結果得られた分割入力誤差データ△Siを演算部２０３に供給する。
【０３７２】
ステップＳ２５８において、演算部２０３は、データ分割部２０６からの分割入力誤差データ△Siの学習、すなわち、分割入力誤差データ△Siを用いて、分割誤差モデル記憶部２０４に記憶された誤差入出力関係モデルの分割入力誤差SOMを自己組織的に更新する、分割入力誤差SOMの自己組織的な学習を、図１１のステップＳ３乃至Ｓ７で説明したように行う。
【０３７３】
ステップＳ２５９において、演算部２０１は、ステップＳ２５４で決定された出力本体SOMの勝者ノードを用いて、出力データAを再構成した再構成出力データARを、図１２の再構成部５３と同様にして生成（取得）し、誤差算出部２０５及び加算部２０８に供給する。
【０３７４】
ステップＳ２６０において、誤差算出部２０５は、外部からの出力データAと、その出力データAに対して演算部２０１が出力した再構成出力データARとを用いて、出力誤差データ△A、すなわち、ステップＳ２５７で算出した分割入力誤差データ△Sに対応する出力誤差データ△A＝A-ARを算出し、データ分割部２０６に供給する。データ分割部２０６は、出力誤差データ△Aを、予め決定されている所定の次元毎あるいは所定の時間毎に分割し、その結果得られた分割出力誤差データ△Aiを演算部２０３に供給する。
【０３７５】
ステップＳ２６１において、演算部２０３は、データ分割部２０６からの分割出力誤差データ△Aiの学習、すなわち、分割出力誤差データ△Aiを用いて、分割誤差モデル記憶部２０４に記憶された誤差入出力関係モデルの分割出力誤差SOMを自己組織的に更新する、分割出力誤差SOMの自己組織的な学習を、図１１のステップＳ３乃至Ｓ７で説明したように行う。
【０３７６】
ステップＳ２６２において、演算部２０３は、分割誤差モデル記憶部２０４に記憶された誤差入出力関係モデルの分割入力誤差SOMを構成するノードの中から、分割入力誤差データ△Siに対する勝者ノードを決定する。ここでは、ステップＳ２５３と同様に、ステップＳ２５８の自己組織的な学習で決定される勝者ノードをそのまま採用することもできるし、ステップＳ２５８とは別に、分割入力誤差SOMを構成する各ノードについて、分割入力誤差データ△Siに対するスコアを求め、そのスコアの最も高いノードを、分割入力誤差データ△Siに対する勝者ノードに決定することもできる。
【０３７７】
ステップＳ２６３において、演算部２０３は、分割誤差モデル記憶部２０４に記憶された誤差入出力関係モデルの分割出力誤差SOMを構成するノードの中から、分割出力誤差データ△Aiに対する勝者ノードを決定する。ここでは、ステップＳ２５３と同様に、ステップＳ２６１の自己組織的な学習で決定される勝者ノードをそのまま採用することもできるし、ステップＳ２６１とは別に、分割出力誤差SOMを構成する各ノードについて、分割出力誤差データ△Aiに対するスコアを求め、そのスコアの最も高いノードを、分割出力誤差データ△Aiに対する勝者ノードに決定することもできる。
【０３７８】
ステップＳ２６４において、演算部２０３は、結合重み更新部２２２（図２０）と同様に、ステップＳ２６２で得られた分割入力誤差SOMの勝者ノードを中心として、分割入力誤差SOMの各ノードと、ステップＳ２６３で得られた分割出力誤差SOMの勝者ノードとの誤差結合重みを更新するとともに、分割出力誤差SOMの勝者ノードを中心として、分割出力誤差SOMの各ノードと、分割入力誤差SOMの勝者ノードとの誤差結合重みを更新する。以上で、学習処理は終了される。
【０３７９】
以上のように、図２６の学習処理では、本体入出力関係モデルにおいて、本来学習すべき入力データS及び出力データAの学習が行われるとともに、本体入出力関係モデルの入力本体SOMと出力本体SOMとのノードどうしを結合する本体結合重みの更新が行われる。さらに、図２６の学習処理では、誤差入出力関係モデルにおいて、教示データを構成する入力データSと、その入力データSを本体入出力関係モデルが再構成することにより得られる再構成入力データSRとの誤差である入力誤差データ△S、及び、教示データを構成する出力データAと、その出力データSを本体入出力関係モデルが再構成することにより得られる再構成出力データARとの誤差である出力誤差データ△A（入力誤差データ△Sに対応する出力誤差データ△A）をそれぞれ所定の次元毎あるいは所定の時間毎に分割した分割入力誤差データ△Siと分割出力誤差データ△Aiとの学習が行われるとともに、誤差入出力関係モデルの分割入力誤差SOMと分割出力誤差SOMとのノードどうしを結合する誤差結合重みの更新が行われる。
【０３８０】
すなわち、図２６の学習処理では、入力データS及び出力データAの学習、並びに、それらの入力データSと出力データAとを関係付ける本体結合重みの更新の他に、その入力データSを再構成した再構成入力データSRの誤差である入力誤差データ△Sを分割した分割入力誤差データ△Siと、その入力データSに対して出力すべき出力データAを再構成した再構成出力データARの誤差である出力誤差データ△Aを分割した分割出力誤差データ△Aiとの学習、並びに、それらの分割入力誤差データ△Siと分割出力誤差データ△Aiとを対応付ける誤差結合重みの更新が行われる。
【０３８１】
分割入力誤差データ△Siと分割出力誤差データ△Aiとは、認識生成処理で等価的に行われる量子化及び逆量子化によって生じる量子化誤差に相当し、学習処理において、この量子化誤差を、誤差入出力関係モデルで学習しておくことにより、認識生成処理では、この量子化誤差を適切に考慮した処理を行うことができ、その結果、認識生成処理で生じる量子化誤差を効率的に低減することができる。
【０３８２】
なお、図２６の学習処理は、例えば、学習処理の対象となる入力データS及び出力データAのセットである教示データが入力される度に行われる。
【０３８３】
また、図２６の学習処理を、ある程度の数の教示データをあらかじめ用意して行う場合において、入力データS及び出力データAの学習、並びに、本体結合重みの更新（以下、適宜、本体学習と称する）と、分割入力誤差データ△Si及び分割出力誤差データ△Aiの学習、並びに、誤差結合重みの更新（以下、適宜、誤差学習と称する）とは、同時に行ってもよし、個別に行ってもよい。
【０３８４】
すなわち、学習処理では、あらかじめ用意された教示データが１つ与えられる度に、本体学習及び誤差学習の両方を行ってもよいし、あらかじめ用意された教示データすべてを用いて、本体学習を行い、その後、あらかじめ用意された教示データすべてを用いて、誤差学習を行ってもよい。
【０３８５】
次に、図２４及び図２５に示したように、本体モデル及び分割誤差モデルとして、入出力関係モデルが採用されている場合の、図１８の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３による認識生成処理について、図２７のフローチャートを参照して説明する。
【０３８６】
この認識生成処理では、認識の対象となる入力データSが、外部から、演算部２０１と誤差算出部２０５に供給される。
【０３８７】
ステップＳ２８１において、演算部２０１は、供給された入力データSを、図２６の学習処理の学習結果に基づいて認識する認識処理を行う。すなわち、演算部２０１は、本体モデル記憶部２０２に記憶された本体入出力関係モデルの入力本体SOMを構成するノードの中から、入力データSに対する勝者ノードを決定し、その勝者ノード（を表すノードラベル）を、入力データSの認識結果とする。
【０３８８】
ステップＳ２８２において、演算部２０１は、入力データSの認識結果に基づき、その入力データSに対して出力すべき出力データAを再構成した再構成出力データARを生成（取得）するのに用いる生成ノードを、出力本体SOMを構成するノードの中から決定する。すなわち、演算部２０１は、入力データSの認識結果としてのノードラベルが表す入力本体SOMの勝者ノードとの本体結合重みが最も強い出力本体SOMのノードを検出し、そのノードを、入力データSに対して出力すべき出力データAを再構成した再構成出力データARを生成するのに用いる生成ノードに決定する。
【０３８９】
ステップＳ２８３において、演算部２０１は、ステップＳ２８１での入力データSの認識結果に基づき、その入力データSを再構成した再構成入力データSRを生成して、誤差算出部２０５に供給する。すなわち、演算部２０１は、入力データSの認識結果としての、その入力データSに対する勝者ノードを用いて、入力データSを再構成した再構成入力データSRを、図１２の再構成部５３と同様にして生成（取得）し、誤差算出部２０５に供給する。
【０３９０】
ステップＳ２８４において、誤差算出部２０５は、供給された入力データSと、その入力データSに対して演算部２０１がステップＳ２８３で再構成した再構成入力データSRとの入力誤差データ△Sを算出し、データ分割部２０６に供給する。データ分割部２０６は、入力誤差データ△Sを、予め決定された所定の次元毎あるいは所定の時間毎に分割し、その結果得られた分割入力誤差データ△Siを演算部２０３及び補正データ生成部２０７に供給する。
【０３９１】
ステップＳ２８５において、演算部２０３は、データ分割部２０６からの分割入力誤差データ△Siに基づき、図２６の学習処理の学習結果に基づいて認識する認識処理を行う。すなわち、演算部２０３は、分割誤差モデル記憶部２０４に記憶された誤差入出力関係モデルの分割入力誤差SOMを構成するノードの中から、分割入力誤差データ△Siに対する勝者ノードを決定し、その勝者ノード（を表すノードラベル）を、分割入力誤差データ△Siの認識結果とする。
【０３９２】
ステップＳ２８６において、演算部２０３は、分割入力誤差データ△Siの認識結果に基づき、その分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを生成（取得）するのに用いる生成ノードを、分割出力誤差SOMを構成するノードの中から決定する。すなわち、演算部２０３は、分割入力誤差データ△Siの認識結果としてのノードラベルが表す分割入力誤差SOMの勝者ノードとの誤差結合重みが最も強い分割出力誤差SOMのノードを検出し、そのノードを、分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを生成するのに用いる生成ノードに決定する。
【０３９３】
ステップＳ２８７において、演算部２０１は、ステップＳ２８２で、入力データSに対して出力すべき出力データAを再構成した再構成出力データARを生成するのに用いる生成ノードに決定した出力本体SOMのノードを用い、入力データSに対して出力すべき出力データAを再構成して、その結果得られる再構成出力データARを出力する。
【０３９４】
すなわち、演算部２０１は、入力データSに対する入力本体SOMの勝者ノードとの本体結合重みが最も強い出力本体SOMのノードを用い、入力データSに対して出力すべき出力データAを再構成した再構成出力データARを、図１２の再構成部５３（図２０の再構成部２３４）と同様にして取得（生成）して出力する。演算部２０１が出力する再構成出力データARは、誤差算出部２０５及び加算部２０８に供給される。
【０３９５】
ステップＳ２８８において、演算部２０３は、ステップＳ２８６で、分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを生成するのに用いる生成ノードに決定した分割出力誤差SOMのノードを用い、入力データSから得られた入力誤差データ△Sに対応する分割出力誤差データ△Aiを再構成して、その結果得られる分割再構成出力誤差データ△ARiを出力する。
【０３９６】
すなわち、演算部２０３は、入力データSから得られた分割入力誤差データ△Siに対する分割入力誤差SOMの勝者ノードとの誤差結合重みが最も強い分割出力誤差SOMのノードを用い、入力データSから得られた分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを、図１２の再構成部５３（図２０の再構成部２３４）と同様にして取得（生成）して出力する。演算部２０３が出力する分割再構成出力データARiは、補正データ生成部２０７に供給される。
【０３９７】
ステップＳ２８９において、補正データ生成部２０７は、ステップＳ２８４でデータ分割部２０６から入力された分割入力誤差データ△Siに基づき、再構成出力データSRの補正すべき次元または時間を決定し、決定結果に従い、分割された所定の次元毎あるいは時間毎の補正重みを決定して、演算部２０３からの分割再構成出力誤差データ△ARiにそれぞれ補正重みを乗算することにより、部分補正データ△ARjを生成し、加算部２０８に供給する。
【０３９８】
ステップＳ２９０において、加算部２０８は、演算部２０１からの再構成出力データARと、補正データ生成部２０７からの部分補正データ△ARjとを加算した加算データAR'＝AR+△ARjを算出し、再構成出力データARを補正した最終再構成出力データとして出力する。以上で、認識生成処理は終了される。
【０３９９】
以上のように、学習処理において、本体学習と誤差学習を行い、認識生成処理において、本体入出力関係モデルを用いて入力データSに対して出力すべき出力データAを再構成した再構成出力データARを、誤差入出力関係モデルを用いて分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiに基づいて生成される部分補正データ△ARjと加算することにより補正し、その結果得られる加算データAR+△ARjを、入力データSに対して出力すべき出力データAを再構成した最終的な再構成出力データ（最終再構成出力データ）として出力するので、誤差を適切に考慮した処理が行われ、その結果、図１６及び図１７で説明したのと同様に、量子化誤差を低減することができる。
【０４００】
ところで、以上のような、本来学習すべき入力データ及び出力データの学習（本体学習）を行う本体入出力関係モデルと、入力データ及び出力データとそれらを再構成したデータとの誤差を分割した分割入力誤差データ及び分割出力誤差データの学習（誤差学習）を行う誤差入出力関係モデルとは、入出力関係モデルを利用することができる技術に対し、その入出力関係モデルに代えて利用することができる。
【０４０１】
入出力関係モデルを利用することができる技術としては、例えば、前述した聞き真似学習がある。そこで、以下では、（１つの）入出力関係モデルに代えて、本体入出力関係モデル及び誤差入出力関係モデルを利用した聞き真似学習について説明するが、その前段階の準備として、入出力関係モデルを利用した聞き真似学習について、簡単に説明する。
【０４０２】
２つのSOMである入力SOM及び出力SOMを有する１つの入出力関係モデルを利用した聞き真似学習では、例えば、入出力関係モデルにおける出力SOMのノードのパラメータを変更し、その変更後のパラメータから、出力データとしての音声データを生成するための調音パラメータを生成し、その音声データから抽出された特徴パラメータとしての音響パラメータを、入力データとして、入力SOMで認識することを、その認識結果が、外部からの音声データの入力SOMでの認識結果に一致するまで繰り返すことにより、外部から未知の音声データの入力があったときに、その音声データを真似た音声データを生成するための調音パラメータを、出力データとして出力することが可能となる。
【０４０３】
具体的には、例えば、入出力関係モデルの入力SOMにおいて、音韻「あ」、「い」、「う」の音声データの音響パラメータの学習が行われ、その音響パラメータのパターンが獲得されているとともに、出力SOMでも、音韻「あ」、「い」、「う」の音声データを生成するための調音パラメータの学習が行われ、その調音パラメータのパターンが獲得されている場合において、ユーザから、未知の音韻「え」の音声データが与えられると、聞き真似学習では、出力SOMのあるノードが獲得しているパターンが僅かに変更され、その変更後のパターンの調音パラメータから音声データが生成される。
【０４０４】
さらに、その音声データから音響パラメータが抽出され、その音響パラメータが、ユーザから与えられた未知の音韻「え」の音声データの音響パラメータと近い場合には、入力SOMにおいて、ユーザから与えられた未知の音韻「え」の音声データの音響パラメータの学習が行われるとともに、出力SOMにおいて、変更後のパターンの調音パラメータの学習が行われる。
【０４０５】
ユーザから、未知の音韻「え」の音声データが与えられる度に、以上の処理が行われることで、入力SOMでは、未知であった音韻「え」の音声データの音響パラメータのパターンが獲得されていくとともに、出力SOMでも、未知でった音韻「え」の音声データを生成するための調音パラメータのパターンが獲得されていく。
【０４０６】
図２８は、入出力関係モデルを利用した聞き真似学習の概要を示している。
【０４０７】
外部からの音声データは、特徴抽出装置３０１に供給される。特徴抽出装置３０１は、外部からの音声データを解析することにより音響パラメータを抽出し、その音響パラメータの時系列を、入力データSとして出力する。
【０４０８】
特徴抽出装置３０１が出力する入力データSは、入出力関係モデルの入力SOMとしてのパターン記憶SOM#1に入力される。そして、パターン記憶SOM#1を構成する各ノードについて、入力データSに対するスコアが計算され、最も高いスコアのノードNが、入力データSに対する勝者ノードに決定される。
【０４０９】
すなわち、パターン記憶SOM#1において、入力データSが、その入力データSに対するスコアが最も高いノード（勝者ノード）Nに抽象化（量子化）され、その勝者ノードNと称する、いわば、入出力関係モデルの内部表現で表される。
【０４１０】
さらに、聞き真似学習では、入出力関係モデルの出力SOMとしてのパターン記憶SOM#2のノードの中から、パターン記憶SOM#1の勝者ノードNとの結合重みが最強のノードN'が検出され、そのノードN'が、入力データSに対して出力すべき出力データAを再構成した再構成出力データARを生成（取得）するために用いる生成ノードに決定される。
【０４１１】
そして、聞き真似学習では、パターン記憶SOM#2の生成ノードを用いて、入力データSに対して出力すべき出力データAを再構成した再構成出力データARとしての、音声データの生成（音声合成）に用いられる調音パラメータの時系列が生成される。
【０４１２】
再構成出力データARとしての調音パラメータ（の時系列）は、音声合成装置３０２に供給される。音声合成装置３０２は、再構成出力データARとしての調音パラメータを用いて音声合成を行い、その結果得られる音声データである合成音声データを出力する。
【０４１３】
音声合成装置３０２が出力する合成音声データは、特徴抽出装置３０１に供給される。
【０４１４】
特徴抽出装置３０１は、音声合成装置３０２からの合成音声データを解析して音響パラメータを抽出し、その音響パラメータの時系列を、新たな入力データSとして出力する。
【０４１５】
特徴抽出装置３０１が出力する新たな入力データSは、入出力関係モデルの入力SOMとしてのパターン記憶SOM#1に入力される。そして、パターン記憶SOM#1を構成する各ノードについて、新たな入力データSに対するスコアが計算され、最も高いスコアのノードが、新たな入力データSに対する勝者ノードに決定される。
【０４１６】
合成音声データから得られた新たな入力データSに対するパターン記憶SOM#1の勝者ノードが、外部からの音声データから得られた入力データSに対する勝者ノードNに一致しない場合（認識結果が一致していない場合）、すなわち、合成音声データが、外部からの音声データに似ていない場合、生成ノードN'が有するパターン記憶モデル２１（図６）のパラメータが変更される。
【０４１７】
具体的には、例えば、パターン記憶モデル２１がHMMである場合には、そのHMMのパラメータとしての状態遷移確率や出力確率密度関数が、ある変更分だけ変更される。
【０４１８】
そして、その変更後のパラメータを用いて、入力データSに対して出力すべき出力データAを再構成した再構成出力データARとしての調音パラメータの時系列が再度生成され、音声合成装置３０２に供給される。音声合成装置３０２は、再構成出力データARとしての調音パラメータを用いて音声合成を行い、新たな合成音声データを出力する。
【０４１９】
音声合成装置３０２が出力する新たな合成音声データは、特徴抽出装置３０１に供給され、特徴抽出装置３０１では、音声合成装置３０２からの新たな合成音声データが解析されて音響パラメータが抽出され、さらに新たな入力データSとして出力される。
【０４２０】
特徴抽出装置３０１が出力するさらに新たな入力データSは、入出力関係モデルの入力SOMとしてのパターン記憶SOM#1に入力され、その入力データSに対する勝者ノードが決定される。
【０４２１】
そして、合成音声データから得られた入力データS（さらに新たな入力データS）に対するパターン記憶SOM#1の勝者ノードが、外部からの音声データから得られた入力データSに対する勝者ノードNに一致しない場合には、生成ノードN'が有するパターン記憶モデル２１（図６）のパラメータが再度変更され、以下、同様の処理が繰り返される。
【０４２２】
また、合成音声データから得られた入力データSに対するパターン記憶SOM#1の勝者ノードが、外部からの音声データから得られた入力データSに対する勝者ノードNに一致した場合、すなわち、合成音声データが、外部からの音声データに似ており、したがって、外部からの音声データを真似た合成音声データを出力することができた場合、パターン記憶SOM#1が、外部からの音声データ（又は、外部からの音声データに似ている合成音声データ）から得られた音響パラメータとしての入力データSを用いて自己組織的に更新されるとともに、パターン記憶SOM#2が、外部からの音声データに似ている合成音声データが得られた調音パラメータとしての再構成出力データARを用いて自己組織的に更新される。
【０４２３】
さらに、外部からの音声データから得られた音響パラメータとしての入力データSに対するパターン記憶SOM#1の勝者ノード、及び、外部からの音声データに似ている合成音声データが得られた調音パラメータとしての再構成出力データARに対するパターン記憶SOM#2の勝者ノードを中心として、入出力関係モデルの結合重みが更新される。
【０４２４】
すなわち、外部からの音声データから得られた音響パラメータとしての入力データSに対するパターン記憶SOM#1の勝者ノードを中心として、パターン記憶SOM#1の各ノードと、外部からの音声データに似ている合成音声データが得られた調音パラメータとしての再構成出力データARに対するパターン記憶SOM#2の勝者ノードとの結合重みが更新される。
【０４２５】
さらに、外部からの音声データに似ている合成音声データが得られた調音パラメータとしての再構成出力データARに対するパターン記憶SOM#2の勝者ノードを中心として、パターン記憶SOM#2の各ノードと、外部からの音声データから得られた音響パラメータとしての入力データSに対するパターン記憶SOM#1の勝者ノードとの結合重みが更新される。
【０４２６】
以上で、入出力関係モデルを利用した聞き真似学習の概要の説明を終了する。
【０４２７】
ところで、上述したような、入出力関係モデルを利用した聞き真似学習では、外部からの音声データに似た合成音声データを得るために、調音パラメータを変更するが、この調音パラメータの変更は、外部からの音声データから得られた音響パラメータに似た音響パラメータが得られる合成音声データが生成される調音パラメータ（以下、適宜、目標調音パラメータと称する）を探索することに他ならない。
【０４２８】
目標調音パラメータを探索する探索方法としては、例えば、調音パラメータをランダムに変更するランダム探索を行う方法がある。
【０４２９】
しかしながら、音声合成に用いられる調音パラメータは、時系列データであるから、必ずしも一定のフレーム数ではない複数のフレームからなる。さらに、調音パラメータは、一般に多次元であり、多次元の調音パラメータが取り得る値の数は、極めて多いから、そのような取り得る値の数の多い調音パラメータを、フレーム毎に、ランダム探索によって変更しても、変更後の調音パラメータが、目標調音パラメータに近づく可能性は低く、目標調音パラメータの探索に、多大な時間を要することがあり得る。
【０４３０】
そこで、勾配法を利用して、過去の探索の結果から、目標調音パラメータに近づく方向に、調音パラメータを変更することにより、目標調音パラメータを探索する探索方法が考えられる。
【０４３１】
勾配法を利用する場合、変更後の調音パラメータから生成される合成音声データの音響パラメータと、外部からの音声データの音響パラメータとの間の誤差を少なくする方向に、調音パラメータを変更する必要がある。
【０４３２】
しかしながら、音声データを解析することによって抽出される音響パラメータ、つまり、図２８においてパターン記憶SOM#1に入力される入力データSと、音声合成に用いられる調音パラメータ、つまり、図２８においてパターン記憶SOM#2から出力される再構成出力データAR（出力データA）とのモダリティが異なる場合（例えば、音響パラメータがケプストラム係数であり、調音パラメータが線形予測係数である場合など）には、変更後の調音パラメータから生成される合成音声データの音響パラメータと、外部からの音声データの音響パラメータとの間の誤差の変化を、音響パラメータとモダリティが異なる調音パラメータを変更する方向を決める勾配として用いることは困難である。
【０４３３】
ところで、調音パラメータの空間（調音パラメータ空間）において、調音パラメータを、どの方向に変更すると、その変更後の調音パラメータから生成される合成音声データの音響パラメータが、目標とする音響パラメータ、つまり、外部からの音声データの音響パラメータに近づくのかが分かれば、目標調音パラメータを、迅速に探索することができる。
【０４３４】
すなわち、現在の調音パラメータから生成される合成音声データの音響パラメータと、外部からの音声データの音響パラメータとの間の、音響パラメータの空間（音響パラメータ空間）における音響パラメータの勾配から、現在の調音パラメータと、目標調音パラメータとの間の、調音パラメータ空間における調音パラメータの勾配を求めることができれば、目標調音パラメータを、迅速に探索することができる。
【０４３５】
本体入出力関係モデル及び誤差入出力関係モデルを利用した聞き真似学習（以下、適宜、新聞き真似学習とも称する）では、音響パラメータ空間における勾配から、調音パラメータ空間における勾配が、誤差入出力関係モデルを用いて近似的に求められ、これにより、目標調音パラメータが、迅速に探索される。
【０４３６】
図２９は、新聞き真似学習を行う図１の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３の構成例（第３の構成例）を示している。
【０４３７】
なお、図中、図１８の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０４３８】
本体学習モジュール１０１は、本体モデル記憶部２０２を有する点で、図１８の場合と共通するが、演算部２０１に代えて、演算部３２１が設けられている点で、図１８の場合と異なる。
【０４３９】
誤差学習モジュール１０２は、分割誤差モデル記憶部２０４を有する点で、図１８の場合と共通するが、演算部２０３に代えて、演算部３２３が設けられている点で、図１８の場合と異なる。
【０４４０】
制御部１０３は、誤差算出部２０５、データ分割部２０６、補正データ生成部２０７及び加算部２０８を有する点で、図１８の場合と共通するが、さらに、聞き真似制御部３２７が設けられている点で、図１８の場合と異なる。
【０４４１】
本体学習モジュール１０１の演算部３２１には、例えば、外部または聞き真似制御部３２７から、入力データSや出力データAが、図１におけるデータDとして供給される。
【０４４２】
演算部３２１は、図１８の演算部２０１と同様の処理を行う。すなわち、演算部３２１は、供給される入力データS及び出力データAを用いて、本体モデル記憶部２０２に記憶されている本体モデルの学習を行う。さらに、演算部３２１は、供給される入力データSに対して、本体モデル記憶部２０２に記憶されている本体モデルを用いて、入力データSを再構成した再構成入力データSRを生成して出力する。また、演算部３２１は、本体モデル記憶部２０２に記憶されている本体モデルを用いて、供給される入力データSに対して出力すべき出力データAを再構成した再構成出力データARを生成して出力する。さらに、演算部３２１は、供給される出力データAに対して、本体モデル記憶部２０２に記憶されている本体モデルを用いて、出力データAを再構成した再構成出力データARを生成して出力する。
【０４４３】
また、演算部３２１は、その他、聞き真似制御部３２７から供給される制御情報に従った処理を行う。
【０４４４】
誤差学習モジュール１０２の演算部３２３は、図１８の演算部２０３と同様の処理を行う。すなわち、演算部３２３には、データ分割部２０６から分割入力誤差データ△Si及び分割出力誤差データ△Aiが、図１における誤差データ△Dとして供給される。
【０４４５】
演算部３２３は、データ分割部２０６から分割入力誤差データ△Si及び分割出力誤差データ△Aiを用いて、分割誤差モデル記憶部２０４に記憶されている分割誤差モデルの学習を行う。また、演算部３２３は、分割誤差モデル記憶部２０４に記憶されている分割誤差モデルを用いて、データ分割部２０６から供給される分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを生成して出力する。さらに、演算部３２３は、データ分割部２０６から供給される分割出力誤差データ△Aiに対して、分割誤差モデル記憶部２０４に記憶されている分割誤差モデルを用いて、分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを生成して出力する。
【０４４６】
また、演算部３２３は、聞き真似制御部３２７から供給される制御情報に従った処理を行う。
【０４４７】
聞き真似制御部３２７は、新聞き真似学習を行うための各種の処理を行う。すなわち、聞き真似制御部３２７には、演算部３２１が出力する再構成入力データSR、加算部２０８が出力する加算データAR+△ARj、及び目標とする入力データT等が供給される。
【０４４８】
なお、目標とする入力データTは、図２８で説明した聞き真似学習における、外部からの音声データの音響パラメータ（目標とする音響パラメータ）に相当する。
【０４４９】
ここで、説明を簡単にするため、ある入力データSと、その入力データSに対して出力すべき出力データAとの間に、ある関数g()を用いた式S=g(A)に従った関係があるとする。ここで、例えば、図２８に示したように、入力データSが音響パラメータであり、出力データAが調音パラメータであれば、関数g()は、調音パラメータAを用いて音声合成を行い、その結果得られる合成音声データから、音響パラメータSを抽出することに相当する。
【０４５０】
関数値S=g(A)を、出力データAに対応する入力データと称することにすると、新聞き真似学習では、最終的な再構成出力データである加算データAR'＝AR+△ARjに対応する入力データg(AR')が、目標とする入力データTに近くなるような（理想的には一致するような）、加算データAR'を探索することになる。
【０４５１】
この探索のため、聞き真似制御部３２７には、加算部２０８が出力する加算データAR'、目標とする入力データT、及び再構成入力データSRが供給される。聞き真似制御部３２７は、加算データAR'に対応する入力データg(AR')が、目標とする入力データTに近づいたか否かを判定する。
【０４５２】
具体的には、加算データAR'に対応する入力データg(AR')と、目標とする入力データTとの差が、目標とする入力データTが入力データSとして演算部３２１に供給され、それに対応して演算部３２１から出力される再構成入力データSRと目標とする入力データTとの差よりも小さくなった場合、加算データAR'に対応する入力データg(AR')が、目標とする入力データTに近づいたと判定する。
【０４５３】
そして、聞き真似制御部３２７は、加算データAR'に対応する入力データg(AR')が、目標とする入力データTに近づいたと判定した場合、本体モデル及び分割誤差モデルの学習を行うために、入力データTに近い入力データg(AR')を新たな入力データSとし、それに対応する新たな出力データAとして加算データAR'を演算部３２１等に供給する。
【０４５４】
さらに、聞き真似制御部３２７は、新聞き真似学習に必要な処理を、演算部３２１、演算部３２３及び補正データ部２０７に行わせるために、演算部３２１、演算部３２３及び補正データ部２０７を制御するための制御情報を、演算部３２１、演算部３２３及び補正データ部２０７に供給する。
【０４５５】
次に、図２９の本体学習モジュール１０１、誤差学習モジュール１０２、及び制御部１０３による新聞き真似学習の処理について、図３０のフローチャートを参照して説明する。
【０４５６】
なお、ここでは、図２４及び図２５に示したように、本体モデル記憶部２０２に記憶されている本体モデルとして、入出力関係モデルである本体入出力関係モデルが採用されているとともに、分割誤差モデル記憶部２０４に記憶されている分割誤差モデルとして、入出力関係モデルである誤差入出力関係モデルが採用されていることとする。
【０４５７】
また、本体入出力関係モデル、及び、誤差入出力関係モデルについては、ある程度の数の教示データを用いた図２６の学習処理が行われ、本体入出力関係モデル、及び、誤差入出力関係モデルは、その本体入出力関係モデル、及び、誤差入出力関係モデルが獲得しうるパターンの少なくとも一部を既に獲得していることとする。
【０４５８】
この新聞き真似学習では、ステップＳ３０１において、例えば、外部から、目標とする入力データT（以下、適宜、目標データTとも称する）が供給される。聞き真似制御部３２７は、供給された目標データTを入力データSとして、演算部３２１及び誤差算出部２０５に供給するとともに、認識生成処理を行うように、演算部３２１及び演算部３２３を制御する。
【０４５９】
聞き真似制御部３２７からの制御に応じ、演算部３２１では、目標データTを入力データSとする、図２７で説明した認識生成処理が行われる。
【０４６０】
すなわち、ステップＳ３０２において、演算部３２１は、図２７で説明したように、演算部３２１は、本体モデル記憶部２０２に記憶された本体入出力関係モデルの入力本体SOMを構成するノードの中から、入力データS（ここでは、目標データT）に対する勝者ノードを決定し、その勝者ノード（を表すノードラベル）を、入力データSの認識結果とする。
【０４６１】
ステップＳ３０３において、演算部３２１は、入力データSの認識結果としてのノードラベルが表す入力本体SOMの勝者ノードとの本体結合重みが最も強い出力本体SOMのノードを検出し、そのノードを、入力データSに対して出力すべき出力データAを再構成した再構成出力データARを生成するのに用いる生成ノードに決定する。
【０４６２】
ステップＳ３０４において、演算部３２１は、入力データSの認識結果としての、その入力データSに対する勝者ノードを用いて、入力データSを再構成した再構成入力データSRを、図１２の再構成部５３と同様にして生成し、誤差算出部２０５及び聞き真似制御部３２７に供給する。
【０４６３】
ステップＳ３０５において、誤差算出部２０５は、聞き真似制御部３２７からの入力データS（ここでは、目標データT）と、その入力データSに対して演算部３２１が再構成した再構成入力データSRとの入力誤差データ△Sを算出してデータ分割部２０６に供給する。データ分割部２０６は、入力誤差データ△Sを、予め決定された所定の次元毎あるいは所定の時間毎に分割し、その結果得られた分割入力誤差データ△Siを演算部３２３及び補正データ生成部２０７に供給する。
【０４６４】
ステップＳ３０６において、演算部３２３は、分割誤差モデル記憶部２０４に記憶された誤差入出力関係モデルの分割入力誤差SOMを構成するノードの中から、データ分割部２０６からの分割入力誤差データ△Siに対する勝者ノードを決定し、その勝者ノード（を表すノードラベル）を、分割入力誤差データ△Siの認識結果とする。
【０４６５】
ステップＳ３０７において、演算部３２３は、分割入力誤差データ△Siの認識結果としてのノードラベルが表す分割入力誤差SOMの勝者ノードとの誤差結合重みが最も強い分割出力誤差SOMのノードを検出し、そのノードを、分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを生成するのに用いる生成ノードに決定する。
【０４６６】
ステップＳ３０８において、演算部３２１は、ステップＳ３０３で決定した、聞き真似制御部３２７からの入力データS（ここでは、目標データT）に対する入力本体SOMの勝者ノードとの本体結合重みが最も強い出力本体SOMの生成ノードを用い、聞き真似制御部３２７からの入力データSに対して出力すべき出力データAを再構成した再構成出力データARを、図１２の再構成部５３（図２０の再構成部２３４）と同様にして生成し、誤差算出部２０５及び加算部２０８に供給する。
【０４６７】
ステップＳ３０９において、演算部３２３は、ステップＳ３０７で決定した、分割入力誤差データ△Siに対する分割入力誤差SOMの勝者ノードとの誤差結合重みが最も強い分割出力誤差SOMの生成ノードを用い、分割入力誤差データ△Siに対応する分割出力誤差データ△Aiを再構成した分割再構成出力誤差データ△ARiを、図１２の再構成部５３（図２０の再構成部２３４）と同様にして生成し、補正データ生成部２０７に供給する。
【０４６８】
ステップＳ３１０において、補正データ生成部２０７は、ステップＳ３０５でデータ分割部２０６から入力された分割入力誤差データ△Siに基づき、再構成出力データSRの補正すべき次元または時間を決定し、決定結果に従い、分割された所定の次元毎あるいは時間毎の補正重みを決定する。
【０４６９】
ステップＳ３１１において、補正データ生成部２０７は、演算部２０３からの各分割再構成出力誤差データ△ARiに、先ほど決定した、分割された所定の次元毎あるいは時間毎の補正重みを乗算することにより、部分補正データ△ARjを生成し、加算部２０８に供給する。
【０４７０】
ステップＳ３１２においては、加算部２０８は、ステップＳ３０８で演算部３２１から供給された再構成出力データARと、ステップＳ３１１で補正データ生成部２０７から供給された部分補正データ△ARjとを加算し、その結果得られた加算データA'R＝AR+△ARjを、再構成出力データARを補正した最終再構成出力データとして算出し、聞き真似制御部３２７に供給する。
【０４７１】
以上のように、聞き真似制御部３２７には、加算部２０８から最終再構成出力データAR'が、演算部３２１から再構成入力データSRが供給されて、処理はステップＳ３１３に進められる。
ステップＳ３１３において、聞き真似制御部３２７は、最終再構成出力データAR'によって合成される音声の音響パラメータ系列が、目標とする入力データTに近づいたか否かを判定する。
【０４７２】
具体的には、聞き真似制御部３２７は、加算部２０８から供給された最終再構成出力データAR'を、その最終再構成出力データAR'に対応する入力データg(AR')（以下、対応データg(AR')とも称する）に変換し、入力データg(AR')と目標とする入力データTとの差が、目標とする入力データTが入力データSとして演算部３２１に供給され、それに対応して演算部３２１から出力される再構成入力データSRと目標とする入力データTとの差よりも小さい場合、最終再構成出力データAR'によって合成される音声の音響パラメータ系列が、目標とする入力データTに近づいたと判定する。
【０４７３】
ステップＳ３１３で、最終再構成出力データAR'によって合成される音声の音響パラメータ系列が、目標とする入力データTに近づいていないと判定された場合、処理はステップＳ３１４に進められる。ステップＳ３１４では、補正データ生成部２０７が、聞き真似制御部３２７からの制御情報に従い、部分補正データ△ARjとを生成するときに用いる補正重みをランダムに決定する。この後、処理は、ステップＳ３１１に戻り、それ以降の処理が繰り返される。そして、ステップＳ３１３で、最終再構成出力データAR'によって合成される音声の音響パラメータ系列が、目標とする入力データTに近づいたと判定された場合、処理はステップＳ３１５に進められる。
【０４７４】
ステップＳ３１５において、聞き真似制御部３２７は、最終再構成出力データAR'に対応する対応データg(AR')を、入力データSとして、演算部３２１及び誤差算出部２０５に供給するとともに、最終再構成出力データAR'を、出力データAとして、演算部３２１及び誤差算出部２０５に供給し、その入力データS及び出力データAのセットを教示データとして学習処理を行うように、演算部３２１及び演算部３２３を制御する。
【０４７５】
これにより、演算部３２１及び演算部３２３では、対応データg(AR')を、入力データSとするとともに、加算データAR'を、出力データAとして、図２６で説明した学習処理が行われる。
【０４７６】
この後、処理はステップＳ３０２に戻り、それ以降の処理が繰り返される。よって、本体入出力関係モデルの学習と、誤算入出力関係モデルの学習とが進められる。より精度の高い（よく似ている）聞き真似を行うことができるようになる。
【０４７７】
以上のように、本体モデルで学習されるデータと、本体モデルを用いてデータを再構成した再構成データとの誤差を、分割誤差モデルで学習するようにしたので、誤差を適切に考慮した処理を行うことができる。
【０４７８】
すなわち、上述したように、量子化誤差を低減した、精度のよいデータを再構成すること、ランダム探索よりも迅速に（効率的に）、目標データに似たデータを探索すること、及びメモリを効率的に使用することができる。
【０４７９】
特に、本体モデルを用いてデータを再構成した再構成データとの誤差を、所定の次元毎あるいは時間毎に分割して学習するようにしたので、より多様な補正を行うことができる。
【０４８０】
さらに、本体モデル及び分割誤差モデルとして、SOM（SOMを利用した入出力関係モデル）を採用する場合には、多次元の入力や、スケールを問わず同じシステムで扱うこと（データを、その粒度やダイナミックレンジ関係なく扱うこと）が可能となる。
【０４８１】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０４８２】
図３１は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０４８３】
このコンピュータ５００において、CPU(Central Processing Unit)５０１，ROM(Read Only Memory)５０２、RAM(Random Access Memory)５０３は、バス５０４により相互に接続されている。
【０４８４】
バス５０４には、さらに、入出力インタフェース５０５が接続されている。入出力インタフェース５０５には、キーボード、マウス、マイクロフォンなどよりなる入力部５０６、ディスプレイ、スピーカなどよりなる出力部５０７、ハードディスクや不揮発性のメモリなどよりなる記憶部５０８、ネットワークインタフェースなどよりなる通信部５０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア５１１を駆動するドライブ５１０が接続されている。
【０４８５】
以上のように構成されるコンピュータ５００では、CPU５０１が、例えば、記憶部５０８に記憶されているプログラムを、入出力インタフェース５０５及びバス５０４を介して、RAM５０３にロードして実行することにより、上述した一連の処理が行われる。
【０４８６】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【０４８７】
また、プログラムは、１台のコンピュータにより処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
【０４８８】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０４８９】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０４９０】
また、本発明は、ロボットの他、例えば、テレビジョン受像機やHDレコーダなどのAV(AudioVisual)機器、コンピュータ、その他の装置における、ユーザインタフェース（ヒューマンインタフェース）に適用することが可能である。
【図面の簡単な説明】
【０４９１】
【図１】本発明を適用した入出力システムの一実施の形態の構成例を示すブロック図である。
【図２】学習処理を説明するフローチャートである。
【図３】認識生成処理を説明するフローチャートである。
【図４】図１の入出力システムの第１の構成例を示すブロック図である。
【図５】パターン記憶SOMの第１の構成例を示す図である。
【図６】ノードの構成例を示す図である。
【図７】パターン記憶SOMの第２の構成例を示す図である。
【図８】学習装置の構成例を示すブロック図である。
【図９】更新重みを決定する決定方法を説明するための図である。
【図１０】学習データ記憶部２２に記憶させる学習データを更新する更新方法を説明するための図である。
【図１１】学習処理を説明するフローチャートである。
【図１２】認識生成装置の構成例を示すブロック図である。
【図１３】認識生成処理を説明するフローチャートである。
【図１４】パターン記憶SOMが採用された本体モデル及び分割誤差モデルを模式的に示す図である。
【図１５】本体SOM及び分割誤差SOMに対して入出力することができるデータを説明する図である。
【図１６】学習処理を説明するフローチャートである。
【図１７】認識生成処理を説明するフローチャートである。
【図１８】図１の入出力システムの第２の構成例を示すブロック図である。
【図１９】入出力関係モデルの構成例を示す図である。
【図２０】入出力関係モデルを用いた処理を行う学習装置と認識生成装置の構成例を示すブロック図である。
【図２１】入出力関係モデルの学習処理を説明するフローチャートである。
【図２２】結合重み行列を示す図である。
【図２３】入出力関係モデルを用いた認識生成処理を説明するフローチャートである。
【図２４】入出力関係モデルが採用された本体モデル及び誤差モデルを模式的に示す図である。
【図２５】本体入出力関係モデル、及び誤差入出力関係モデルに対して入出力することができるデータを説明する図である。
【図２６】学習処理を説明するフローチャートである。
【図２７】認識生成処理を説明するフローチャートである。
【図２８】聞き真似学習を説明するための図である。
【図２９】図１の入出力システムの第３の構成例を示すブロック図である。
【図３０】新聞き真似学習の処理を説明するフローチャートである。
【図３１】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０４９２】
２１  パターン記憶モデル，  ２２  学習データ記憶部，  ４１  スコア計算部，  ４２  勝者ノード決定部，  ４３  重み決定部，  ４４  学習データ更新部，  ４５  モデル学習部，  ５１  スコア計算部，  ５２  勝者ノード決定部，  ５３  再構成部，  １００  学習モジュール，  １０１  本体学習モジュール，  １０２  誤差学習モジュール，  １０３  制御部，  １２１  演算部，  １２２  本体モデル記憶部，  １２３  演算部，  １２４  分割誤差モデル記憶部，  １２５  誤差算出部，  １２６  データ分割部，  １２７  補正データ生成部，  １２８  加算部，  ２０１  演算部，  ２０２  本体モデル記憶部，  ２０３  演算部，  ２０４  分割誤差モデル記憶部，  ２０５  誤差算出部，  ２０６  データ分割部，  ２０７  補正データ生成部，  ２０８  加算部，  ２２１  学習部，  ２２２  結合重み更新部，  ２３１  スコア計算部，  ２３２  勝者ノード決定部，  ２３３  生成ノード決定部，  ２３４  再構成部，  ３０１  特徴抽出装置，  ３０２  音声合成装置，  ３２１，３２３  演算部，  ３２７  聞き真似制御部
【図１】
2009043122.tif 000003
【図２】
2009043122.tif 000004
【図３】
2009043122.tif 000005
【図４】
2009043122.tif 000006
【図５】
2009043122.tif 000007
【図６】
2009043122.tif 000008
【図７】
2009043122.tif 000009
【図８】
2009043122.tif 000010
【図９】
2009043122.tif 000011
【図１０】
2009043122.tif 000012
【図１１】
2009043122.tif 000013
【図１２】
2009043122.tif 000014
【図１３】
2009043122.tif 000015
【図１４】
2009043122.tif 000016
【図１５】
2009043122.tif 000017
【図１６】
2009043122.tif 000018
【図１７】
2009043122.tif 000019
【図１８】
2009043122.tif 000020
【図１９】
2009043122.tif 000021
【図２０】
2009043122.tif 000022
【図２１】
2009043122.tif 000023
【図２２】
2009043122.tif 000024
【図２３】
2009043122.tif 000025
【図２４】
2009043122.tif 000026
【図２５】
2009043122.tif 000027
【図２６】
2009043122.tif 000028
【図２７】
2009043122.tif 000029
【図２８】
2009043122.tif 000030
【図２９】
2009043122.tif 000031
【図３０】
2009043122.tif 000032
【図３１】
2009043122.tif 000033