(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-163623(P2018-163623A)
(43)【公開日】2018年10月18日
(54)【発明の名称】多重型学習システムおよび多重型学習プログラム
(51)【国際特許分類】
G06N 99/00 20100101AFI20180921BHJP
【FI】
G06N99/00 150
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【全頁数】12
(21)【出願番号】特願2017-62012(P2017-62012)
(22)【出願日】2017年3月28日
(71)【出願人】
【識別番号】713005473
【氏名又は名称】株式会社カブク
(74)【代理人】
【識別番号】100101982
【弁理士】
【氏名又は名称】久米川 正光
(72)【発明者】
【氏名】足立 昌彦
(57)【要約】
【課題】学習器のバージョンアップに関わりなく、従前の出力との同一性を確保する。
【解決手段】複数の学習器2a〜2cは、予め調整された内部パラメータを含む所定の関数に基づいて、m(m≧2の自然数)次元の要素よりなる入力データを入力として、n(n<m)次元の要素よりなる出力データを出力する。これらの学習器2a〜2cは、時系列的な順序で追加され、それぞれの関数または内部パラメータの値が互いに異なる。実績データベース6は、過去の実績として採用された入力データを含む実績データのそれぞれを、この実績データの処理を行った一の学習器(学習器2a〜2cのいずれか)と対応付けて記憶する。選択部3は、実績データベース6の記憶内容を参照して、今回の処理対象となる入力データの出力として、複数の学習器2a〜2cの出力データのいずれかを選択的に出力する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
多重型学習システムにおいて、
予め調整された内部パラメータを含む所定の関数に基づいて、m(m≧2の自然数)次元の要素よりなる入力データを共通の入力として、n(n<m)次元の要素よりなる出力データをそれぞれ出力すると共に、時系列的な順序で追加され、前記関数または前記内部パラメータの値が互いに異なる複数の学習器と、
過去に処理された実績がある入力データと、当該処理を行った一の学習器とを対応付けた実績データを記憶する実績記憶部と、
前記実績記憶部に記憶された実績データに基づいて、今回の処理対象となる入力データの出力として、前記複数の学習器の出力データのいずれかを選択する選択部と
を有することを特徴とする多重型学習システム。
【請求項2】
前記選択部は、今回の処理対象となる入力データが前記実績記憶部に実績データとして記憶されている場合、当該入力データの出力として、前記実績記憶部に記憶された前記一の学習器である第1の学習器の出力データを選択することを特徴とする請求項1に記載された多重型学習システム。
【請求項3】
前記選択部は、今回の処理対象となる入力データが前記実績記憶部に実績データとして記憶されていない場合、当該入力データの出力として、前記複数の学習器のうち、最も新しく追加された第2の学習器の出力データを選択することを特徴とする請求項2に記載された多重型学習システム。
【請求項4】
前記実績記憶部は、前記実績データとして、過去に処理された実績がある入力データに対応した出力データを含み、
前記第2の学習器は、前記第1の学習器よりも多数の前記実績データを用いた学習によって構築されることを特徴とする請求項3に記載された多重型学習システム。
【請求項5】
前記選択部によって出力データが選択される毎に、前記実績記憶部に新たな実績データを追加する実績更新部をさらに有することを特徴とする請求項1から4のいずれかに記載された多重型学習システム。
【請求項6】
前記実績更新部は、今回の処理対象となる入力データが前記実績記憶部に実績データとして記憶されており、かつ、当該入力データの出力として、前記実績記憶部に記憶された前記一の学習器の出力データと、前記複数の学習器のうち、最も新しく追加された最新の学習器の出力データとが一致する場合、当該実績データに対応付ける学習器を前記最新の学習器に集約することを特徴とする請求項5に記載された多重型学習システム。
【請求項7】
多重型学習プログラムにおいて、
予め調整された内部パラメータを含む所定の関数に基づいて、m(m≧2の自然数)次元の要素よりなる入力データを共通の入力として、n(n<m)次元の要素よりなる出力データをそれぞれ出力すると共に、時系列的な順序で追加され、前記関数または前記内部パラメータの値が互いに異なる複数の学習器を構築する第1のステップと、
過去に処理された実績がある入力データと、当該処理を行った一の学習器とを対応付けた実績データを実績記憶部に記憶する第2のステップと、
前記実績記憶部に記憶された実績データに基づいて、今回の処理対象となる入力データの出力として、前記複数の学習器の出力データのいずれかを選択する第3のステップと
を有する処理をコンピュータに実行させることを特徴とする多重型学習プログラム。
【請求項8】
前記第3のステップは、今回の処理対象となる入力データが前記実績記憶部に実績データとして記憶されている場合、当該入力データの出力として、前記実績記憶部に記憶された前記一の学習器である第1の学習器の出力データを選択するステップを含むことを特徴とする請求項7に記載された多重型学習プログラム。
【請求項9】
前記第3のステップは、今回の処理対象となる入力データが前記実績記憶部に実績データとして記憶されていない場合、当該入力データの出力として、前記複数の学習器のうち、最も新しく追加された第2の学習器の出力データを選択するステップを含むことを特徴とする請求項8に記載された多重型学習プログラム。
【請求項10】
前記実績記憶部は、前記実績データとして、過去に処理された実績がある入力データに対応した出力データを含み、
前記第2の学習器は、前記第1の学習器よりも多数の前記実績データを用いた学習によって構築されることを特徴とする請求項9に記載された多重型学習プログラム。
【請求項11】
前記第3のステップによって出力データが選択される毎に、前記実績記憶部に新たな実績データを追加する第4のステップをさらに有することを特徴とする請求項7から10のいずれかに記載された多重型学習プログラム。
【請求項12】
前記第4のステップは、今回の処理対象となる入力データが前記実績記憶部に実績データとして記憶されており、かつ、当該入力データの出力として、前記実績記憶部に記憶された前記一の学習器の出力データと、前記複数の学習器のうち、最も新しく追加された最新の学習器の出力データとが一致する場合、当該実績データに対応付ける学習器を前記最新の学習器に集約するステップを含むことを特徴とする請求項11に記載された多重型学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多重型学習システムおよび多重型学習プログラムに係り、特に、学習器のバージョンアップ対応に関する。
【背景技術】
【0002】
従来、複数の学習器を備えた処理システムが知られている。例えば、特許文献1には、与えられたタスクを達成するための行動方策を学習する並列学習装置が開示されている。具体的には、並列に設けられた複数の学習器は、センサ部によって検出された外界の状態に基づいて同時に学習した学習結果から、行動方策を個別に決定する。確率的選択器は、それぞれの学習器によって決定された複数の行動方策の中から、学習器毎の学習性能に基づいて、いずれかの行動方策を選択する。アクチュエータ部は、選択された行動方策に従って、行動を実行する。これにより、選択された学習器が決定した行動方策により得られた経験から、タスクを達成するための行動方策が全ての学習器で同時に学習される。その結果、複数の学習器の学習効率が高まり、タスクに適した構造を獲得するまでの学習時間の短縮を図ることができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−078516号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、学習器を備えた各種の処理システムでは、過去の処理実績の蓄積(サンプル数)が増加したことに伴い、これを用いた学習によって学習器を再構築し、従前の学習器を再構築されたものに置き換えることがある。このようなバージョンアップを行うことで、処理実績をより忠実に反映して、全体的な出力精度の向上が期待できる。しかしながら、バージョンアップ後の出力がバージョンアップ前の出力を包含することは保証されず、バージョンアップ前では正解とされたものが、バージョンアップ後では不正解とされる可能性がある。このような出力の不整合は、バージョンアップに際して、バージョンアップ前とは異なる関数(別のアルゴリズム)を新たに採用した場合においても生じ得る。
【0005】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、学習器のバージョンアップに関わりなく、従前の出力との同一性を確保することである。
【課題を解決するための手段】
【0006】
第1の発明は、複数の学習器と、実績記憶部と、選択部とを有する多重型学習システムを提供する。複数の学習器は、予め調整された内部パラメータを含む所定の関数に基づいて、m(m≧2の自然数)次元の要素よりなる入力データを共通の入力として、n(n<m)次元の要素よりなる出力データをそれぞれ出力する。また、これらの学習器は、時系列的な順序で追加され、関数または内部パラメータの値が互いに異なる。実績記憶部は、過去に処理された実績がある入力データと、この処理を行った一の学習器とを対応付けた実績データを記憶する。選択部は、実績記憶部に記憶された実績データに基づいて、今回の処理対象となる入力データの出力として、複数の学習器の出力データのいずれかを選択する。
【0007】
ここで、第1の発明において、上記選択部は、今回の処理対象となる入力データが実績記憶部に実績データとして記憶されている場合、この入力データの出力として、実績記憶部に記憶された一の学習器である第1の学習器の出力データを選択することが好ましい。この場合、上記選択部は、今回の処理対象となる入力データが実績記憶部に実績データとして記憶されていない場合、この入力データの出力として、複数の学習器のうち、最も新しく追加された第2の学習器の出力データを選択してもよい。また、上記実績記憶部は、実績データとして、過去に処理された実績がある入力データに対応した出力データを含み、上記第2の学習器は、第1の学習器よりも多数の実績データを用いた学習によって構築されることが好ましい。
【0008】
第1の発明において、選択部によって出力データが選択される毎に、実績記憶部に新たな実績データを追加する実績更新部をさらに設けてもよい。この場合、上記実績更新部は、今回の処理対象となる入力データが実績記憶部に実績データとして記憶されており、かつ、この入力データの出力として、実績記憶部に記憶された一の学習器の出力データと、複数の学習器のうち、最も新しく追加された最新の学習器の出力データとが一致する場合、この実績データに対応付ける学習器を最新の学習器に集約することが好ましい。
【0009】
第2の発明は、以下の第1から第3のステップを有する処理をコンピュータに実行させる多重型学習プログラムを提供する。第1のステップでは、予め調整された内部パラメータを含む所定の関数に基づいて、m(m≧2の自然数)次元の要素よりなる入力データを共通の入力として、n(n<m)次元の要素よりなる出力データをそれぞれ出力すると共に、時系列的な順序で追加され、関数または内部パラメータの値が互いに異なる複数の学習器を構築する。第2のステップでは、過去に処理された実績がある入力データと、この処理を行った一の学習器とを対応付けた実績データを実績記憶部に記憶する。第3のステップでは、実績記憶部に記憶された実績データに基づいて、今回の処理対象となる入力データの出力として、複数の学習器の出力データのいずれかを選択する。
【0010】
ここで、第2の発明において、上記第3のステップは、今回の処理対象となる入力データが実績記憶部に実績データとして記憶されている場合、この入力データの出力として、実績記憶部に記憶された一の学習器である第1の学習器の出力データを選択するステップを含むことが好ましい。この場合、上記第3のステップは、今回の処理対象となる入力データが実績記憶部に実績データとして記憶されていない場合、この入力データの出力として、複数の学習器のうち、最も新しく追加された第2の学習器の出力データを選択するステップを含んでいてもよい。また、上記実績記憶部は、実績データとして、過去に処理された実績がある入力データに対応した出力データを含み、上記第2の学習器は、第1の学習器よりも多数の実績データを用いた学習によって構築されることが好ましい。
【0011】
第2の発明において、第3のステップによって出力データが選択される毎に、実績記憶部に新たな実績データを追加する第4のステップをさらに設けてもよい。この場合、上記第4のステップは、今回の処理対象となる入力データが実績記憶部に実績データとして記憶されており、かつ、この入力データの出力として、実績記憶部に記憶された一の学習器の出力データと、複数の学習器のうち、最も新しく追加された最新の学習器の出力データとが一致する場合、この実績データに対応付ける学習器を最新の学習器に集約することが好ましい。
【発明の効果】
【0012】
本発明によれば、時系列的な順序で追加された複数の学習器を用いて学習器を多重化し、過去に処理された実績がある入力データについては、この入力データの処理を行った学習器と対応付けた上で、実績データとして実績記憶部に記憶しておく。そして、今回の処理対象となる入力データの出力としては、実績記憶部に記憶された実績データに基づいて、複数の学習器の出力データのいずれかが選択される。これにより、過去の実績と関連する入力データが今回の処理対象として入力された場合、過去の実績と同じ出力データが出力されるので、学習器をバージョンアップしても、従前の出力との同一性を確保できる。
【図面の簡単な説明】
【0013】
【
図3】バージョンアップ前における本学習システムの説明図
【
図4】1回目のバージョンアップ後における本学習システムの説明図
【
図5】1回目のバージョン後の学習器への実績データの集約を示す図
【
図6】2回目のバージョンアップ後における本学習システムの説明図
【
図7】2回目のバージョン後の学習器への実績データの集約を示す図
【
図8】変形例に係る多重型学習システムのブロック図
【発明を実施するための形態】
【0014】
図1は、本実施形態に係る多重型学習システムのブロック図である。多重型学習システム1は、同類の学習器を併存・重複させることによって一定の冗長性を有しており、画像認識、音声認識、自然言語処理、電子商取引とった様々な用途で使用可能である。この学習システム1は、特定の意味をなす入力データに対して、予測、分類、推論といった特定の目的に合致した出力データを出力する。入力データは、機械学習手法で取り扱うことができるように、特定の対象物や事象を特徴化・抽象化した構造データであって、m(m≧2の自然数)次元の要素を有する。例えば、入力が物体を三次元形状の場合、入力データとしては、SHOT(Signature of Histograms of OrienTations)、PFH(Point Feature Histograms)、PPF(Point Pair Feature)などが挙げられる。また、出力データは、用途に応じた有意なデータであって、入力データの次元数nよりも小さいm次元の要素を有する。
【0015】
多重型学習システム1は、学習部2と、選択部3と、実績更新部4と、学習処理部5と、実績データベース6とを主体に構成されている。このような学習システム1は、典型的には、コンピュータにインストールされた所定のコンピュータ・プログラムを実行することによって実現されるが、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などでハードウェア的に実現してもよい。
【0016】
学習部2は、並列に設けられた複数の学習器2a〜2cによって構成されており、それぞれの学習器2a〜2cが備える関数の内部パラメータの値は、事前の学習によって予め調整されている。これらの学習器2a〜2cは、外部から供給された入力データを共通の入力として、出力データを個別に出力する。学習器2a〜2cは、これらが連係して一つの有意なデータを出力するのではなく、それぞれが、特定の目的に合致した有意なデータを単独かつ独立して出力する。その意味において、それぞれの学習器2a〜2cは基本的に「同類」である。
【0017】
また、学習器2a〜2cは、自己が備える関数(アルゴリズム)、または、その関数の内部パラメータの値が互いに異なっている。前者の例としては、学習器2aがニューラルネットワーク、学習器2bがサポートベクターマシン、学習器2cが自己組織化マップ(SOM:Self-Organizing Map)といった如くである。ただし、学習器2a〜2cの関数は互いに相違している必要はなく、一部のみが相違していてもよいし、全てが同一であってもよい。また、後者の例としては、異なる教師データ群(教師データのサンプル数が時系列的に増加する場合を含む。)に基づいて、異なる学習タイミングで、学習器2a〜2cが独立して構築される形態が挙げられる。
【0018】
上述したように「同類」の学習器2a〜2cを併存・重複させることによって、学習部2を多重化した場合、学習部2の構成上の冗長性は増すことになるが、かかる構成を敢えて採用する理由は、学習部2をバージョンアップしても、従前の出力との同一性を確保するためである。本実施形態では、複数の学習器2a〜2cとして、時系列的な順序で追加された形態(バージョンアップ)を想定しており、バージョンアップに従って、複数の学習器2a〜2cが併存する点に構成上の特徴がある。以下、学習器2aから学習器2cに至る順で順次追加されたものとし、最も古いバージョンの学習器2aを「Ver1」、中間バージョンの学習器2bを「Ver2」、最も新しいバージョンの学習器2cを「Ver3」でそれぞれ識別することとする。なお、学習部2が備える学習器の数は、最低限2つであればよく、バージョンアップの回数に応じて随時増加していく。
【0019】
選択部3は、実績記憶部に相当する実績データベース6に記憶された実績データに基づいて、今回の処理対象となる入力データの出力として、複数の学習器2a〜2cの出力データのいずれかを選択する。本実施形態において、外部から供給された入力データは、学習部2の前段に設けられた選択部3によって、学習器2a〜2cのいずれかに振り分けられると共に、振り分けられた入力データに対して生成された一つの出力データが外部に出力される。
【0020】
図2は、実績データベース6の構成図である。この実績データベース6は、学習システム1において過去に処理された実績を記憶・管理する。具体的には、実績データベース6は、実績毎に設けられた実績レコード群によって構成されている、一つの実績レコード(実績データ)には、過去に処理された実績がある「入力データ」と、この入力データに対応して出力された「出力データ」と、この入力データの処理を行った「学習器」とが対応付けて記述されている。同図の例は、識別子「Ver1」で識別される学習器2aによって、入力データIN
1〜IN
3等の入力に対して、出力データOUT
1〜OUT
3等がそれぞれ出力された実績があること、識別子「Ver2」で識別される学習器2bによって、入力データIN
i等の入力に対して、出力データOUT
i等が出力された実績があること、および、識別子「Ver3」で識別される学習器2cによって、入力データIN
j等の入力に対して、出力データOUT
j等が出力された実績があることを示している。
【0021】
選択部3は、実績データベース6に記憶された実績データに基づいて、今回の処理対象となる入力データの出力として、複数の学習器2a〜2cの出力データのいずれかを選択する。本実施形態では、複数の学習器2a〜2cのいずれかを選択し、選択されたもののみに入力データを供給することによって、出力データの選択が等価的かつ結果的に行われる。なお、このような選択を可能にするためには、実績データベース6で管理すべき情報としては、少なくとも「入力データ」と「学習器」とで足り、「出力データ」を管理する必要はない。「出力データ」を管理する理由は、もっぱら、実績データベース6の実績を用いた学習によって、学習部2の再構築を行うためである。
【0022】
学習器2a〜2c(の出力データ)のを選択は、今回の処理対象となる入力データと、実績データベースに記憶された実績データとを比較することによって行われる。具体的には、入力データと同一の実績データが存在する場合、この実績データによって指定された一の学習器(学習器2a〜2cのいずれか)が選択される。一方、入力データと同一の実績データが存在しない場合、複数の学習器2a〜2cのうち、最も新しく追加された学習器2cが選択される。なお、入力データと実績データとが同一の場合のみならず、両者が類似する場合も、類似する実績データによって指定された一の学習器を選択するようにしてもよい。例えば、入力データと実績データとの類似度を所定の基準や数式で評価して、類似度が所定のしきい値以上の場合、両者が類似すると判定される。
【0023】
実績更新部4は、学習器2a〜2cのいずれかより出力データが選択的に出力される毎に、換言すれば、学習システム1による一つの出力毎に、実績データベース6に新たな実績データを追加して、実績データベース6を更新する。この更新は、学習システム1の出力をもって一律に行ってもよいが、例えば、出力データに対するユーザの承認を得ることといった如く、実績データベース6の更新に特定の条件を設けてもよい。
【0024】
学習処理部5は、実績データベース6の実績を用いた学習によって、学習部2の再構築を行う。学習部2の再構築は、従前の学習器を新たな学習器に置き換えるのではなく、従前の学習器と、新たな学習器とを併存・重複させる形、すなわち、多重化することによって行われる。
【0025】
つぎに、本学習システム1における学習部2のバージョンアップについて説明する。
図3は、バージョンアップ前における本学習システム1の説明図である。同図の状態において、識別子「Ver1」で識別される学習器2aは、唯一かつ最新のバージョンである。したがって、今回の処理対象となる入力データが実績データベース6に実績データとして記憶されているか否かに関わりなく、この入力データの出力として、識別子「Ver1」で識別される学習器2aの出力データが一律に選択される。そして、入力データが実績データベース6に記憶されていない場合、そのような入力データ(IN
1〜IN
3等)の処理が行われる毎に、「学習器」のフィールドに識別子「Ver1」が記述された実績レコードが随時追加されていくことになる。
【0026】
図4は、1回目のバージョンアップ後における本学習システム1の説明図である。バッチ処理にて行われるバージョンアップにより、当初の学習器2aに新たなバージョンの学習器2bが追加され、学習部2として2つの学習器2a,2bが併存する形になる。新たな学習器2bは、1回目のバージョンアップの時点で、実績データベース6に記憶されている実績データを用いた教師あり学習によって、当初の学習器2aとは関係なく初期状態から構築される。1回目のバージョンアップ時点で蓄積された実績(
図3の状態よりも更に多数のサンプルを有する。)に基づき構築された学習器2bを追加することで、本学習システム1における全体的な出力精度の向上が期待できる。なお、新たな学習器2bは、従前の学習器2aとは異なる関数(別のアルゴリズム)を採用してもよい。
【0027】
2つの学習器2a,2bが併存している状態において、新たな学習器2bの出力が当初の学習器2aの出力と整合するとは限らず、当初の学習器2aでは正解とされたものが新たな学習器2bでは不正解とされる可能性がある。これは、学習のたびに収束する解が一定になるとは限らないという現象、すなわち、局所解に収束することに由来する。周知のとおり、学習器2a,2bの学習過程には幾つかのランダム性が含まれており、例えば、初期値が異なれば、学習が進む方向も異なり、最終的に収束する解(局所解)も異なってくる。その結果、学習器2a,2bが備える関数自体に変わりはなくても、関数の内部パラメータの値に差異が生じ、学習器2a,2bの間で出力の不整合が生じ得るのである。この点は、学習器2a,2bにおいて関数(アルゴリズム)が異なる場合も同様である。
【0028】
そこで、従前の出力との同一性を確保すべく、今回の処理対象となる入力データが実績データベース6に実績データとして記憶されている場合、この実績データによって指定された学習器2a,2bのいずれかが選択される。具体的には、同図に示すように、入力データがIN
1〜IN
3等の場合、これに対応する実績データが識別子「Ver1」なので、これによって識別される学習器2aが選択される。これにより、過去の実績と同じ入力データ(IN
1〜IN
3等)については、学習器2aが動作して、過去の実績と同じ出力データ(OUT
1〜OUT
3等)が出力されることになる。
【0029】
一方、今回の処理対象となる入力データが実績データベース6に実績データとして記憶されていない場合、新しいバージョンを優先させるべく、最新の学習器2bを動作させる。そして、そのような入力データ(IN
i〜IN
i+2等)の処理が行われる毎に、「学習器」のフィールドに識別子「Ver2」が記述された実績レコードが随時追加されていく。同図の状態での稼働が更に進み、識別子「Ver2」と記述された実績データと同一の入力データが再度入力した場合には、実績データベース6の更新を行うことなく、識別子「Ver2」で識別される最新の学習器2bが動作する。
【0030】
図5は、1回目のバージョンアップ後の学習器2bへの実績データの集約を示す図である。実績更新部4は、今回の処理対象となる入力データ(例えばIN
1)が実績データベース6に実績データとして記憶されている場合、この実績データによって指定された「学習器」(すなわち、識別子「Ver1」で識別される学習器2a)の出力データOUT1と、最も新しく追加された学習器2bの出力データとを比較する。そして、両者が一致する場合には、この実績データにおける「学習器」のフィールドに記述される識別子を「Ver1」から「Ver2」(すなわち、最新の学習器2b)に更新する。このような更新が繰り返されることで、従前の出力との同一性を確保しつつ、実績データが最新の学習器2bに集約されていく。
【0031】
図6は、2回目のバージョンアップ後における本学習システム1の説明図である。バッチ処理にて行われるバージョンアップにより、従前の学習器2a,2bに新たな学習器2cが追加され、学習部2として3つの学習器2a〜2cが併存する形になる。新たな学習器2cは、2回目のバージョンアップの時点で、実績データベース6に記憶されている実績データを用いた教師あり学習によって、従前の学習器2aとは関係なく初期状態から構築される。2回目のバージョンアップ時点での実績(
図4の状態よりも更に多数のサンプルを有する。)に基づき構築された学習器2cを追加することで、本学習システム1における全体的な出力精度の向上が期待できる。なお、新たな学習器2cは、従前の学習器2a,2bとは異なる関数(別のアルゴリズム)を採用してもよい。
【0032】
今回の処理対象となる入力データが実績データベース6に実績データとして記憶されている場合、従前の出力との同一性を確保すべく、この実績データによって指定された学習器2a〜2cのいずれかが選択される。具体的には、同図に示すように、入力データがIN
1〜IN
3等の場合、これに対応する実績データが識別子「Ver1」なので、これによって識別される学習器2aが選択される。また、入力データがIN
i等の場合、これに対応する実績データが識別子「Ver2」なので、これによって識別される学習器2bが選択される。これにより、過去の実績と同じ入力データ(IN
1〜IN
3,IN
i等)の入力については、学習器2a,2bのいずれかが動作して、過去の実績と同じ出力データ(OUT
1〜OUT
3,OUT
i等)が出力されることになる。
【0033】
一方、今回の処理対象となる入力データが実績データベース6に実績データとして記憶されていない場合、新たしいバージョンを優先させるべく、最新の学習器2cを動作させる。そして、そのような入力データ(IN
j等)の処理が行われる毎に、「学習器」のフィールドに識別子「Ver3」が記述された実績レコードが随時追加されていく。同図の状態での稼働が更に進み、識別子「Ver3」が記述された実績データと同一の入力データが再度入力した場合には、実績データベース6の更新を行うことなく、識別子「Ver3」で識別される最新の学習器2cが動作する。
【0034】
図7は、2回目のバージョンアップ後の学習器2cへの実績データの集約を示す図である。実績更新部4は、今回の処理対象となる入力データ(例えばIN
k)が実績データベース6に実績データとして記憶されている場合、この実績データによって指定された「学習器」(すなわち、識別子「Ver1」で識別される学習器2a、または、識別子「Ver2」の学習器2b)の出力データOUTkと、最も新しく追加された学習器2cの出力データとを比較する。そして、両者が一致する場合には、この実績データにおける「学習器」のフィールドに記述される識別子を「Ver1」(または「Ver2」)から「Ver3」(すなわち、最新の学習器2c)に更新する。このような更新が繰り返されることで、従前の出力との同一性を確保しつつ、実績データが最新の学習器2cに集約される。
【0035】
3回目以降のバージョンアップについても同様で、以後、バージョンアップを行う度に新たな学習器が追加され、学習部2が多重化していく。
【0036】
図8は、変形例に係る多重型学習システム1のブロック図である。
図1に示した構成との相違は、選択部3が学習部2の前段ではなく、その後段に設けられている点である。この場合、入力データは、並列に設けられた学習器2a〜2cに共通して入力され、それぞれの学習器2a〜2cから出力データが個別に出力される。選択部3は、実績データベース6に記憶された実績データに基づいて、いずれかの出力データを選択して外部に出力する。それ以外の点は、
図1に示した構成と同様なので、同一の符号を付して、ここでの説明を省略する。なお、選択部3が学習部2の前後のどちらに設けようとも、選択部3によって、複数の学習器2a〜2cの出力データのいずれかが選択れるという点で変わりはない。
【0037】
このように、本実施形態によれば、時系列的な順序で追加された同類の学習器2a〜2cを用いて学習部2を多重化すると共に、過去に処理された実績がある入力データについては、この入力データの処理を行った学習器と対応付けて、実績データとして実績データベース6に記憶しておく。そして、今回の処理対象となる入力データの出力としては、実績データベース6に記憶された実績データに基づいて、複数の学習器2a〜2cの出力データのいずれかが選択される。これにより、過去の実績と関連する入力データが今回の処理対象として入力された場合、過去の実績と同じ出力データが出力されるので、学習部2をバージョンアップしても、従前の出力との同一性を確保できる。特に、バージョンアップの際、従来とは異なる関数(アルゴリズム)を採用した場合であっても、従前の出力との同一性を損なうことがないので、バージョンアップを柔軟に行うことが可能になる。
【0038】
また、本実施形態によれば、今回の処理対象となる入力データが実績データベース6に実績データとして記憶されており、かつ、この入力データの出力として、実績データベース6に記憶された一の学習器の出力データと、最も新しく追加された最新の学習器2cの出力データとが一致する場合、この実績データに対応付ける「学習器」を最新の学習器2cに更新する。これにより、従前の出力との同一性を確保しつつ、実績データベース6中の実績データが最新の学習器2cに集約される。これは、古くなった学習器2a,2bを最新の学習器2cに統合して、学習部2の構成が複雑化することを回避する上で有利である。
【0039】
さらに、本実施形態によれば、今回の処理対象となる入力データが実績データベース6に実績データとして記憶されていない場合、この入力データの出力として、最も新しく追加された最新の学習器2cの出力データが選択される。これにより、従前の出力との同一性を確保しつつ、実績データベース6中の実績データが最新の学習器2cに集約されることを促進することができる。
【0040】
なお、上述した実施形態では、今回の処理対象となる入力データが実績データベース6に実績データとして記憶されていない場合(実績の不存在時)、新しいバージョンが優先するように一の学習器を選択する例について説明した。しかしながら、新しいバージョンを優先する選択手法は、これに限定されるものではなく、様々なものが考えられる。例えば、k個の学習器が併存する場合、k個の学習器に同時に入力データを入力して、k個の出力データのうち、同一であるものの多数決を取る。そして、数が最も多い出力データを最終的な出力とする。この場合、実績データにおける「学習器」のフィールドには、多数を占めるグループのうち、最も新しい学習器の識別子が記述される。
【符号の説明】
【0041】
1 多重型学習システム
2 学習部
2a〜2c 学習器
3 選択部
4 実績更新部
5 学習処理部
6 実績データベース