(58)【調査した分野】(Int.Cl.,DB名)
前記新たな共通モデルに基づいて学習を進めた第3の共通モデルの有無を判断し、前記第3の共通モデルがある場合は前記第3の共通モデルを取り込み、前記新たな共通モデルと置き換える更新部を備え、
前記第3の共通モデルが取り込まれた場合、
前記モデル判定部は、前記第3の共通モデルに基づき、入力に対して判定結果を出力し、
前記出力取得部は、同一の入力を受け付けた、前記新たな共通モデル、前記再学習されたモデル、および前記第3の共通モデルからの出力をそれぞれ第1の出力、第2の出力、第3の出力として取得し、
前記再学習部は、前記選択された1つの出力に基づいて、前記第3の共通モデルに再学習を実施することを特徴とする請求項2記載のモデル統合装置。
前記再学習部は、前記第2の出力と前記第3の出力とが、予め定められた閾値以上の割合で一致したときに再学習を停止することを特徴とする請求項2または請求項3記載のモデル統合装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のように多くのサンプルを集めることで精度が高くなるが、判断内容はいわゆる多数決で決めるような平均的な回答に近づいていく。一方で、各家庭では独自の文化があるように、深層学習においてもパーソナライズ化が必要とされており、各家庭の個別のサンプルを用いて学習を行った方が各家庭に適した判断ができるようになる。前者を共通モデル、後者を個別モデルと呼ぶとすると、個別モデルは一部の領域において高い精度を出すが、それ以外については共通モデルの方が優れることになる。
【0006】
一部について個別化したモデルを作るためには、ベースとなるモデルに基づいて再学習を行うFine Tuning(非特許文献2)という手法が確立しており、共通モデルをベースとして各家庭に個別化した学習ができる。しかしながら、前記したようにこのベースとなる共通モデルもその後学習が進み、より精度の高いものに進化してしまう。そのため、個別化されたモデルもそれに基づいて更新を行うことが考えられる。しかしながら、学習した個別モデルを新しい共通モデルに置き換えて再度学習をやり直しては、これまで各ユーザ、家庭で学習してきた内容が消えてしまい、ユーザの利用感にギャップが生じてしまう。
【0007】
そこで、新しい共通モデルと個別モデルをギャップなく統合する必要性が出てくる。各モデルのパラメタを計算式で統合することは学習結果の意味を失うため行われておらず、また共通モデルのニューラルネットワーク自体が変わってしまっている場合もあり困難である。一方で個別モデルの学習に用いたサンプルデータを、改めて新しい共通モデルに与えてFine Tuningをやり直すことは可能であるが、これらのサンプルデータはパーソナライズ化が進むにつれて膨大になるため、常時保持しておくことは難しい。複数の機材で並行して学習を行う並行学習の手法(非特許文献3)もあるが、これらは一つの学習モデルをタスク分散して生成する方式であって、個別に学習、また異なるネットワークモデルを持つ学習済みモデルを統合することはできない。
【0008】
定期的に更新される学習済みの共通モデルがあり、これから派生した個別モデルにおいては、この更新された共通モデルと統合する必要がある。今までは、共通モデルをベースとして、個別モデルの学習に使用したサンプルデータを用いて再学習させる必要があった。しかしながら、学習が進むほどサンプルデータの量は多くなり、統合のために保持し続けることは難しくなる。
【0009】
本発明は、このような事情に鑑みてなされたものであり、共通モデルから派生した個別モデルにおいて、この個別モデルと新しい共通モデルを比較して再学習することにより、個別学習に用いたサンプルデータを保持することなく、新しいモデルに個別学習の結果を反映、統合することを実現するモデル統合装置、モデル統合システム、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
(1)上記の目的を達成するため、本発明は、以下のような手段を講じた。すなわち、本発明のモデル統合装置は、複数のニューラルネットワークモデルを統合するモデル統合装置であって、同一の入力を受け付けた、1つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力を、それぞれ第1の出力、第2の出力、第3の出力として取得する出力取得部と、前記取得された各出力のうち、少なくとも前記第1の出力の精度と前記第2の出力の精度とに基づいた前記第2の出力を優先する基準に従って、いずれか1つを選択して出力するセレクタと、を備える。
【0011】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【0012】
(2)また、本発明のモデル統合装置は、前記共通モデルに基づいて学習を進めた新たな共通モデルに基づき、入力に対して判定結果を出力するモデル判定部と、前記選択された1つの出力に基づいて、前記新たな共通モデルに再学習を実施する再学習部と、を備え、前記新たな共通モデルに再学習が実施された場合、前記モデル判定部は、再学習された共通モデルに基づき、入力に対して判定結果を出力し、前記出力取得部は、再学習された共通モデルの出力を第3の出力として取得する。
【0013】
これにより、個別モデルを生成したデータが無くとも、新しいデータに対してその判定結果を利用することで、新たな共通モデルに基づいた新たな個別モデルを漸次に生成できる。また、新たな共通モデルで精度が向上した部分についても、取り入れることができる。
【0014】
(3)また、本発明のモデル統合装置は、前記新たな共通モデルに基づいて学習を進めた第3の共通モデルの有無を判断し、前記第3の共通モデルがある場合は前記第3の共通モデルを取り込み、前記新たな共通モデルと置き換える更新部を備え、前記第3の共通モデルが取り込まれた場合、前記モデル判定部は、前記第3の共通モデルに基づき、入力に対して判定結果を出力し、前記出力取得部は、同一の入力を受け付けた、前記新たな共通モデル、前記再学習されたモデル、および前記第3の共通モデルからの出力をそれぞれ第1の出力、第2の出力、第3の出力として取得し、前記再学習部は、前記選択された1つの出力に基づいて、前記第3の共通モデルに再学習を実施する。
【0015】
これにより、新たな共通モデルに対してより精度を向上させた第3の共通モデルに基づいて、新たな個別モデルを生成できる。また、第3の共通モデルで精度が向上した部分についても、取り入れることができる。
【0016】
(4)また、本発明のモデル統合装置において、前記再学習部は、前記第2の出力と前記第3の出力とが、予め定められた閾値以上の割合で一致したときに再学習を停止する。
【0017】
これにより、十分に再学習がされたモデルに対して、繰り返し再学習されることがなくなり、無駄な処理を行わない。
【0018】
(5)また、本発明のモデル統合装置において、前記出力取得部は、同一の入力を受け付けた、前記共通モデルとは異なる1以上のその他の共通モデルからの出力をさらに取得し、前記セレクタは、少なくとも前記第1の出力の精度と前記第2の出力の精度とに基づいた前記第2の出力を優先する基準に従って、前記出力取得部が取得したすべての出力のうちいずれか1つを選択して出力する。
【0019】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルまたはその他の共通モデルの出力結果を利用することができる。
【0020】
(6)また、本発明のモデル統合システムは、複数のニューラルネットワークモデルを統合するモデル統合システムであって、共通モデルを管理し、学習を進めることにより精度を向上させる共通モデルサーバと、(3)に記載のモデル統合装置と、を備え、前記共通モデルサーバは、学習を進めた新たな共通モデルを定期的に公開し、前記モデル統合装置は、前記新たな共通モデルを定期的に取り込む。
【0021】
これにより、サーバが公開した新たな共通モデルに基づいた新たな個別モデルを定期的に生成できる。なお、共通モデルサーバが管理する共通モデルには、学習済みの共通モデル、新たな共通モデル、第3の共通モデル、その他の共通モデルなど様々な共通モデルが含まれる。
【0022】
(7)また、本発明のモデル統合方法は、複数のニューラルネットワークモデルを統合するモデル統合方法であって、同一の入力を受け付けた、1つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力をそれぞれ第1の出力、第2の出力、第3の出力として取得するステップと、前記それぞれの出力のうち、少なくとも前記第1の出力の精度と前記第2の出力の精度とに基づいた前記第2の出力を優先する基準に従って、いずれか1つを選択して出力するステップと、を含む。
【0023】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【0024】
(8)また、本発明のモデル統合プログラムは、複数のニューラルネットワークモデルを統合するモデル統合プログラムであって、同一の入力を受け付けた、1つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力をそれぞれ第1の出力、第2の出力、第3の出力として取得する処理と、前記それぞれの出力のうち、少なくとも前記第1の出力の精度と前記第2の出力の精度とに基づいた前記第2の出力を優先する基準に従って、いずれか1つを選択して出力する処理と、の一連の処理をコンピュータに実行させる。
【0025】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【発明の効果】
【0026】
本発明によれば、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【発明を実施するための形態】
【0028】
以下に本願での用語の定義を説明する。特記される場合を除き、以下の定義により解釈されるものとする。
【0029】
(1)共通モデルは、不特定多数の人やノードなどから収集したデータをサンプルデータとして学習をした、ニューラルネットワークモデルである。学習済みの共通モデルは、通常の使用ができる程度まで学習された共通モデルである。
【0030】
(2)個別モデルは、特定少数の人やノード(特定の個人や家庭、会社など)から収集したデータをサンプルデータとして、共通モデルを基にさらに学習をした、ニューラルネットワークモデルである。サンプルデータの偏りによって、一部の領域の入力に対しては、基となった共通モデルよりも高い精度の出力が得られる。
【0031】
(3)学習は、問題の最適解を求める過程で、試行錯誤と結果のフィードバックによってよりよい解法へ近づいていくことである。ニューラルネットワークモデルは、学習によって通常は精度が向上する。
【0032】
(4)共通学習とは、共通モデルを得るため、または、共通モデルの精度を上げるために、不特定多数の人やノードなどから収集したデータをサンプルデータとして学習をすることである。
【0033】
(5)個別に学習する(個別学習)とは、共通モデルに基づいて個別モデルを得るため、または、個別モデルの精度を上げるために、特定少数の人やノードから収集したデータをサンプルデータとして、学習をすることである。再学習も同じ意味で使用する。また、モデル統合装置の出力を利用して、自動で行うことも、ユーザのフィードバックの入力により行うことも含む。
【0034】
次に、本発明の実施の形態について、図面を参照しながら説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては同一の参照番号を付し、重複する説明は省略する。
【0035】
(モデルの利用構成)
本発明が想定するモデルの利用構成を
図1に示す。一般的に深層学習などによるモデルは、大量のサンプルデータに基づいて作成される。これは一度作成されるだけではなく、継続的なサンプルデータの収集に基づいて常に更新し続ける。例えば、各家庭で収集したデータをクラウド上に集めて学習する、スマートフォンで収集したデータをクラウド上に集めて学習するなどが行われている。この学習によって生成されたモデルは汎用的な共通モデルであり、幅広く使用することができる。一方で、各家庭、各スマートフォンでも個別に学習が進んでいる。例えば、特定の発音、特定の操作、個人の画像などその利用者、利用環境にあった内容によって学習される。この場合、サンプルデータが少なくなりやすいことから、前記した共通モデルに基づき再学習して利用されることが多い。そのため、
図1に示すようにサンプルデータの収集と共通モデルの学習、それに基づく個別の学習やその個別モデルの利用の関係が成り立つ。
【0036】
(モデルの発展の流れ)
次に、モデルの発展の経時的な流れを
図2に示す。ある時点で既に存在する学習済みの共通モデルを「モデルA1」、これを複製したものを「モデルZ1」、これに基づいて個別に学習したモデルを「モデルZ1’」とする。一方で、「モデルA1」は時間経過と共にさらに学習を重ね「モデルA2」が生成される。この「モデルA2」は「モデルA1」よりも基本的には精度が高く、より広い判定ができるものとなっている。しかし、一般的な判断をするものであり、「モデルZ1’」を使用した方がよい場合がある。そこで、モデル統合装置を用いることで、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【0037】
また、再度「モデルA2」に基づいて個別に学習したモデル「モデルZ2’」を生成したい。しかしながら、「モデルZ2’」は、一般的に「モデルZ1’」や「モデルA2」から計算により求めることができない。そこで、モデル統合装置の出力を用いて、「モデルA2」を複製した「モデルZ2」に基づいて再学習したモデル「モデルZ2’」を漸次に生成する。
【0038】
また、
図3に示すように、途中でほかの共通モデルでも合わせて取り込むことも可能にする。これは個別に学習した「モデルZ1’」を新しい共通モデルに適用させる際に、元となった「モデルA」以外の共通モデルを統合するものである。この統合する共通モデルは、B、C、D、E、…とN個取り扱うことができる。
【0039】
[第1の実施形態]
(モデル統合装置の構成)
図4は、本実施形態に係るモデル統合装置10の構成の一例を示すブロック図である。モデル統合装置10は、出力取得部12とセレクタ14とから構成されている。モデル統合装置10は、出力取得部12により取得された3以上の出力のうち、セレクタ14が1つを選択して出力する。
【0040】
出力取得部12は、少なくとも、同一の入力を受け付けた、「モデルZ1」(学習済みの共通モデル)、「モデルZ1’」(個別モデル)、および「モデルA2」を複製した「モデルZ2」(新たな共通モデル)からの出力を、それぞれ第1の出力、第2の出力、第3の出力として取得する。モデルの出力とは、モデル判定部16により入力に対して判定結果として出力された情報であり、学習内容のモデルによって異なるが、例えば椅子や机などのモノの判定。人物やペットなどの判定。また話しかけに対する対応タスクの選択などがあり得る。例えば、
図5の表のような情報である。出力取得部12は、この出力のうち、例えば、「ClassID_X_k」(モデルXに基づいた、k番目に精度が高い判定内容)および「Confidence_X_k」(モデルXに基づいた、k番目の判定内容の精度)などの必要な情報を取り込む。なお、k=1のときは、「_k」を省略して表す。モデル判定部16はモデル毎にあるが、基とするモデルが異なるだけで、機能は同じである。
【0041】
モデルZ1判定部16aは、「モデルZ1」に基づき、入力に対して判定結果を出力する機能を有する。出力内容は、判定内容を示す「ClassID_Z1_k」とその確からしさを示す精度「Confidence_Z1_k」の組からなる表である。例えば、入力は静止画映像で、「ClassID_Z1」は「テーブル」、「Confidence_Z1」は0.788などである。
【0042】
モデルZ1’判定部16bは、前記したモデルZ1判定部16aと同等の機能を持つが、判定に使用する学習モデルは個別に学習を進めたモデルであることが異なる。出力は、判定内容の「ClassID_Z1’_k」と、その精度「Confidence_Z1’_k」の組からなる表となる。
【0043】
モデルZ2判定部16cは、前記したモデルZ1判定部16aと同等の機能を持つが、判定に使用する学習モデルは精度が上がった共通モデルであることが異なる。出力は、判定内容の「ClassID_Z2_k」と、その精度「Confidence_Z2_k」の組からなる表となる。
【0044】
セレクタ14は、出力取得部12が取得した、少なくとも「モデルZ1」、「モデルZ1’」、および「モデルZ2」の出力を入力とし、いずれか1つを選択して出力する。この処理は、例えば、次のような基準に従って選択させることができる。
Confidence_Z1’>Confidence_Z1であれば、ClassID_Z1’を出力とする。
それ以外は、ClassID_Z2を出力とする。
【0045】
これを詳細に場合分けすると次のようになる。
a)ClassID_Z1、ClassID_Z1’、ClassID_Z2がいずれも等しい場合
ClassID_Z2を出力とする。
b)ClassID_Z1、ClassID_Z1’が等しく、ClassID_Z2が異なる場合
Confidence_Z1’>Confidence_Z1であれば、ClassID_Z1’を出力とする。
それ以外は、ClassID_Z2を出力とする。
c)ClassID_Z1、ClassID_Z2が等しく、ClassID_Z1’が異なる場合
Confidence_Z1’>Confidence_Z1であれば、ClassID_Z1’を出力とする。
それ以外は、ClassID_Z2を出力とする。
d)ClassID_Z1’、ClassID_Z2が等しく、ClassID_Z1が異なる場合
ClassID_Z2を出力とする。
e)ClassID_Z1、ClassID_Z1’、ClassID_Z2のいずれも異なる場合
Confidence_Z1’>Confidence_Z1であれば、ClassID_Z1’を出力とする。
それ以外は、ClassID_Z2を出力とする。
【0046】
モデル統合装置10は、
図6に示すように、N個の共通モデルを統合して、出力を選択してもよい。
図4と比較して、次の機能ブロックが異なる。
【0047】
モデルB2判定部16eは、前記したモデルZ1判定部16aと同等の機能を持つが、判定に使用する学習モデルが「モデルB2」であることが異なる。出力は、判定内容の「ClassID_B2_k」と、その精度「Confidence_B2_k」の組からなる表となる。同様に、モデルC2判定部、モデルD2判定部とN個の判定部がある。
【0048】
セレクタ14は、「モデルZ1」、「モデルZ1’」、「モデルZ2」、「モデルB2」…の判定結果の出力を入力とし、いずれか1つを選択して出力する。この処理は、例えば、次のような基準に従って選択させることができる。
Confidence_Z1’>Confidence_Z1であれば、ClassID_Z1’を出力とする。
それ以外は、「モデルZ1」「モデルZ1’」を除く尤も精度の高いClassIDを出力とする。
【0049】
なお、本実施形態に係るモデル統合装置10は、
図4および
図6のようにモデル判定部16を備えない装置について説明したが、
図7のように、モデル毎のモデル判定部16の一部またはすべてを備えていてもよい。
【0050】
(モデル統合装置の動作)
次に、モデル統合装置10の動作について説明する。
図8は、個別モデル「モデルZ1’」と新たな共通モデル「モデルZ2」を統合する動作を示すフローチャートである。
【0051】
出力取得部12は、少なくとも、同一の入力を受け付けた、「モデルZ1」、「モデルZ1’」、および「モデルA2」を複製した「モデルZ2」からの出力を、それぞれ第1の出力、第2の出力、第3の出力として取得し、その他の出力があるときはその他の出力も取得する(ステップS1)。次に、出力取得部12は、取得した第1から第3の出力、およびその他の出力があるときはその他の出力をセレクタ14に入力する(ステップS2)。そして、セレクタ14は、上記のような、少なくとも第1の出力の精度と第2の出力の精度とに基づいた第2の出力を優先する基準に従って、いずれか1つを選択して出力する(ステップS3)。このような動作により、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合した判定結果を出力することができる。
【0052】
[第2の実施形態]
第1の実施形態では、モデル統合装置10が、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合した判定結果を出力する構成としているが、その統合した判定結果を利用して、新たな共通モデルに再学習をさせることにより、新たな共通モデルに基づいた個別モデルを生成できる構成にしてもよい。
【0053】
(モデル統合装置の構成)
図9は、本実施形態に係るモデル統合装置10の構成の一例を示すブロック図である。モデル統合装置10は、第1の実施形態にも示した出力取得部12とセレクタ14の構成以外に、モデルZ1判定部16a、モデルZ1’判定部16b、モデルZ2’判定部16d、および再学習部20から構成されている。モデル統合装置10は、出力取得部12により取得された3以上の出力のうち、セレクタ14が1つを選択して出力すると共に、再学習部20がセレクタ14が選択した出力に基づいて「モデルZ2’」に再学習を実施し、「モデルZ2」に基づいた新たな個別モデルを漸次に生成する。なお、ブロック図において、黒矢印は、学習によってモデルの中身が変化することを示す。「モデルZ2’」の初期値は、「モデルZ2」であり、これが学習によって「モデルZ2’」に変化する。
【0054】
モデルZ1判定部16a、モデルZ1’判定部16b、モデルZ2’判定部16dは、それぞれ、「モデルZ1」、「モデルZ1’」、「モデルZ2’」に基づいて、入力に対して判定結果を出力する。出力取得部12、セレクタ14、の機能は、第1の実施形態と同様である。ただし、出力取得部12は、第3の出力をモデルZ2’判定部16dから取得する。また、セレクタ14の出力選択の判定基準は、上記基準のZ2をZ2’に置き換えたものとする。
【0055】
再学習部20は、セレクタ14の出力が「ClassID_Z2’」でなかった場合、その入力と出力をサンプルデータとして、「モデルZ2’」に対して再学習を行う機能である。この再学習を繰り返すことで、「モデルZ2’」の中身は漸次に個別学習されたものへと変化する。
【0056】
モデルZ2’判定部16dは、「モデルZ2’」に基づいて、入力に対して判定結果を出力するが、「モデルZ2’」が再学習される前は、「モデルZ2」に基づいた判断結果となる。また、モデルZ2’判定部16dは、「モデルZ2’」が再学習により漸次に変化するのに従い、再学習後は、再学習された「モデルZ2’」に基づいて、入力に対して判定結果を出力する。
【0057】
なお、本実施形態に係るモデル統合装置10は、
図9のように、モデルZ2’判定部16d以外のモデル毎のモデル判定部16も備えた装置について説明したが、
図10のように、モデルZ2’判定部16dのみ備えた装置であってもよい。
【0058】
(モデル統合装置の動作)
次に、モデル統合装置10の動作について説明する。
図11(a)は、共通モデル「モデルA1」を複製した「モデルZ1」に基づいて個別モデル「モデルZ1’」を生成するまでの動作を示すフローチャートである。
図11(b)は、個別モデル「モデルZ1’」を生成した後、「モデルZ1’」と新たな共通モデルである「モデルA2(Z2)」を統合すると共に、「モデルZ2」に基づいて新たな個別モデル「モデルZ2’」を生成するまでの動作を示すフローチャートである。
【0059】
モデル統合装置10は、共通学習された「モデルA1」をダウンロードして取り込む。これを後に参考するために、複製して「モデルZ1」として保存しておく。また、これとは別に、個別に学習させるモデルのベースとして別途複製して保持し、これを「モデルZ1’」とする(ステップT1)。各ノードで実際に利用されると映像や音声などのデータが与えられ、このデータと「モデルZ1’」に基づき判定される(ステップT2)。初期状態では「モデルZ1」と「モデルZ1’」の差分はないが学習が進むと差異が生じる。判定結果が出力され、各ノードの機能としてそのまま利用される(ステップT3)。このフェーズでは共通モデルの学習結果を利用することが可能であり、共通モデルに基づくサービスが提供できる。
【0060】
一方で出力された結果に対して、別途表示ディスプレイや音声などのユーザインタフェース(UI)を通してユーザよりフィードバックを得る。例えば、間違った出力判定に対して、訂正を入力される、もしくは出力が不明なため答えを問い合わせるなどが行われる(ステップT4)。フィードバックされた結果に基づいて、「モデルZ1’」の再学習を行う(ステップT5)。これは特定の映像や言葉など、各家庭や、ユーザの個別学習になる。
【0061】
モデル統合装置10は、定期的な、またはユーザの指示による更新として、新たな共通モデルである「モデルA2」をダウンロードして取り込む。これを後で参考とするために複製して、「モデルZ2」として保存する。また、これとは別に、個別に学習させるモデルのベースとして別途複製して保存し、これを「モデルZ2’」とする(ステップT6)。このフェーズでも、各ノードで実際に利用されると映像や音声などのデータが与えられる。このデータが「モデルZ1」、「モデルZ1’」および「モデルZ2’」(再学習される前は、中身は「モデルZ2」)に基づき判定され、セレクタ14により選択される(ステップT7)。例えば、映像を入力して、「モデルZ1」ではαさん、精度0.77、「モデルZ1’」ではβさん、精度0.89、「モデルZ2’」ではαさん、精度0.90となった場合、セレクタ14によって出力されるのは「モデルZ1’」によるβさんである。新たな共通モデルの結果よりも、個別に学習した結果が優先され、利用者にとって更新時のギャップがなくなる。この選択結果は、各ノードの機能としてそのまま利用され、これに基づくサービスが同様に提供できる(ステップT8)。
【0062】
このフェーズでも同様に、出力された結果に対して、UIを通してユーザよりフィードバックを得る。例えば、間違った出力判定に対して、訂正を入力される、もしくは出力が不明なため答えを問い合わせるなどが行われる(ステップT9)。フィードバックされた結果に基づいて、「モデルZ2’」の再学習を行う(ステップT10)。これは特定の映像や言葉など、各ユーザ独自の学習になる。ステップT1〜ステップT5までのフェーズと異なるのは、「モデルZ2’」の再学習においては、ユーザのフィードバックが無くても、セレクタ14により選択された出力を正解とみなして再学習を行うことである。これにより、データが繰り返し与えられると、「モデルZ2’」の内容は、「モデルZ1’」で個別に学習した内容に近づく。
【0063】
上記の動作により、「モデルZ1’」を生成したデータが無くとも、新しいデータに対してその判定結果を利用することで、新たな共通モデル「モデルZ2」に基づいた個別モデル「モデルZ2’」を漸次に生成できる。また、「モデルZ2」で新しく精度が向上した部分についても、「モデルZ1」と「モデルZ1’」の精度を確認することで、古い判定に引きずられることを避けている。なお、複数の共通モデルを統合する場合は、ステップT6でその他の共通モデルも取り込んで保存しておき、セレクタ14に基づく判定出力を得るときに使用する。
【0064】
なお、セレクタ14の入力を「モデルZ1’」および「モデルZ2’」の出力2つとし、精度の高い方をセレクタ14の出力として、再学習してもよい。この場合、高い精度の誤りデータは残り続けるため、ユーザによるフィードバックがされないときは、再学習の精度は落ちる。また、セレクタ14の機能として自動的に選択するのではなく、画面表示などがある機器であれば、UIを通していずれを選択するかをユーザに問い合わせてもよい。その選択結果を出力として学習する。再学習は、リアルタイムに行ってもよい。また夜間など処理量が少ないときにまとめてバッチ処理にて行ってもよい。
【0065】
セレクタ14において「ClassID_Z2’」の結果を出力することが多数(例えば98%など)になると、統合のための再学習を止めることが好ましい。十分に再学習がされたモデルに対して、繰り返し再学習されることがなくなり、無駄な処理を行わないからである。この場合は、再学習された「モデルZ2’」のみを使用する。また、再学習された「モデルZ2’」、「モデルZ2」、および
図2に示す新たに精度の向上した「モデルA3」を使用して、同様の学習を繰り返してもよい。
【0066】
なお、セレクタ14は、少なくとも「モデルZ1」と「モデルZ1’」の出力の精度を比較することにより、個別に学習した結果を優先して出力する機能ブロックであるが、「モデルZ1」と「モデルZ1’」の出力の精度の比較方法は上記の方法に限られない。例えば、次のような基準を用いてもよい。
Confidence_Z1’−Confidence_Z1>τ
これは「モデルZ1’」の出力の精度がある一定(τ)以上、「モデルZ1」よりも大きいことを条件とするものである。
また、「モデルZ1」の2番目に精度の高い出力を「Confidence_Z1_2」、同様に「モデルZ1’」の2番目に精度の出力を「Confidence_Z1’_2」とした場合に、
Confidence_Z1’−Confidence_Z1’_2>Confidence_Z1−Confidence_Z1_2
これは出力結果に対してほかに同精度の出力がないことを条件とするものである。次のようにも記述できる。
Confidence_Z1’/Confidence_Z1’_2>Confidence_Z1/Confidence_Z1_2
また、これらの考え方を組み合わせて、
Confidence_Z1’−Confidence_Z1’_2>τ かつ Confidence_Z1’>Confidence_Z1
などとしてもよい。
【0067】
[第3の実施形態]
第2の実施形態では、モデル統合装置10が、統合した判定結果を利用して、新たな共通モデルに再学習をさせることにより、新たな共通モデルに基づいた個別モデルを生成できる構成であったが、新たな共通モデルも順次発展すると考えられるため、第2の実施形態の構成に加えて、新たな共通モデルに基づいて学習を進めた第3の共通モデルの有無を判断し、第3の共通モデルがある場合は前記第3の共通モデルを取り込み、新たな共通モデルと置き換える構成としてもよい。
【0068】
(モデル統合装置の構成)
図12は、本実施形態に係るモデル統合装置10およびモデル統合システム100の構成の一例を示すブロック図である。モデル統合装置10は、第2の実施形態に示した構成以外に、「モデルA2」(新たな共通モデル)に基づいて学習を進めた「モデルA3」(第3の共通モデル)の有無を判断し、「モデルA3」がある場合は「モデルA3」を取り込み、「モデルZ2’」と置き換える更新部22を備える。更新部22以外の機能は第2の実施形態と同様なので省略する。
【0069】
更新部22は、定期的にまたはユーザの指示により、「モデルA2」に基づいて学習を進めた「モデルA3」の有無を判断し、「モデルA3」がある場合は「モデルA3」を取り込み、これを複製した「モデルZ3’」と「モデルZ2’」とを置き換える。
【0070】
「モデルA3」が取り込まれ、「モデルZ2’」と「モデルZ3’」とが置き換えられた場合、各モデル判定部16は、基とするモデルを変更し、「モデルZ2」(新たな共通モデル)、「モデルZ2’」(再学習されたモデル)、および「モデルZ3’」(第3の共通モデル)に基づき、同一の入力を受け付けて、判定結果を出力する。
【0071】
また、出力取得部12は、各モデル判定部16により出力された「モデルZ2」、「モデルZ2’」、および「モデルZ3’」からの出力をそれぞれ第1の出力、第2の出力、第3の出力として取得する。「モデルZ2’」と「モデルZ3’」とが置き換えられた後のモデル統合装置10の構成の一例は、
図13に示されるとおりである。
【0072】
なお、本実施形態に係るモデル統合装置10は、
図12および
図13のような、モデルZ2’判定部16d(更新部により置き換えられた後は、モデルZ3’判定部16fとなる。)以外のモデル毎のモデル判定部16も備えた装置について説明したが、第2の実施形態の
図10のように、モデルZ2’判定部16dのみ備えた装置であってもよい。
【0073】
(モデル統合装置の動作)
次に、モデル統合装置10の動作について説明する。
図14は、モデルを置き換えるまでの動作を示すフローチャートである。まず、更新部22は、定期的にまたはユーザの指示により、「モデルA2」に基づいて学習を進めた「モデルA3」の有無を判断する(ステップU1)。そして、「モデルA3」がある場合は「モデルA3」を取り込み、これを複製した「モデルZ3’」と「モデルZ2’」とを置き換える(ステップU2)。一方、「モデルA3」がない場合は終了する。次に、各モデル判定部16は、基とするモデルを置き換える(ステップU3)。このような動作により、最新の共通モデルを取得する。
【0074】
モデルを置き換えた後の動作は、基とするモデルが異なるだけで、第2の実施形態で示した
図11(b)の動作と同様である。このような動作により、新たな共通モデルに対してより精度を向上させた第3の共通モデルに基づいて、新たな個別モデルを生成できる。また、第3の共通モデルで精度が向上した部分についても、取り入れることができる。
【0075】
(モデル統合システムの構成)
本実施形態に係るモデル統合装置10は、学習を進めた共通モデルが定期的に公開される共通モデルサーバ50と組み合わせて、モデル統合システム100として構成できる。共通モデルサーバ50は、一連の共通モデルを管理し、学習を進めることにより精度を向上させる。また、共通モデルサーバ50は、学習を進めた共通モデルを定期的に公開する。
【0076】
モデル統合装置10は、定期的に公開される共通モデルを定期的に取り込み、最新の共通モデルに基づいて新たな個別モデルを生成する。これにより、共通モデルサーバ50が公開した新たな共通モデルに基づいた新たな個別モデルを定期的に生成できる。