(57)【要約】【課題】共通モデルから派生した個別モデルにおいて、個別モデルと新しい共通モデルを比較して再学習することで、個別学習に用いたサンプルデータを保持することなく、新しいモデルに個別学習の結果を反映、統合することを実現するモデル統合装置、モデル統合システム、方法およびプログラムを提供する。【解決手段】複数のニューラルネットワークモデルを統合するモデル統合装置１０であって、同一の入力を受け付けた、１つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力を、それぞれ第１の出力、第２の出力、第３の出力として取得する出力取得部１２と、前記取得された各出力のうち、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、いずれか１つを選択して出力するセレクタ１４と、を備える。【選択図】図４
2018147261.tif 000002
【特許請求の範囲】
【請求項１】
複数のニューラルネットワークモデルを統合するモデル統合装置であって、
同一の入力を受け付けた、１つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力を、それぞれ第１の出力、第２の出力、第３の出力として取得する出力取得部と、
前記取得された各出力のうち、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、いずれか１つを選択して出力するセレクタと、を備えることを特徴とするモデル統合装置。
【請求項２】
前記共通モデルに基づいて学習を進めた新たな共通モデルに基づき、入力に対して判定結果を出力するモデル判定部と、
前記選択された１つの出力に基づいて、前記新たな共通モデルに再学習を実施する再学習部と、を備え、
前記新たな共通モデルに再学習が実施された場合、
前記モデル判定部は、再学習された共通モデルに基づき、入力に対して判定結果を出力し、
前記出力取得部は、再学習された共通モデルの出力を第３の出力として取得することを特徴とする請求項１記載のモデル統合装置。
【請求項３】
前記新たな共通モデルに基づいて学習を進めた第３の共通モデルの有無を判断し、前記第３の共通モデルがある場合は前記第３の共通モデルを取り込み、前記新たな共通モデルと置き換える更新部を備え、
前記第３の共通モデルが取り込まれた場合、
前記モデル判定部は、前記第３の共通モデルに基づき、入力に対して判定結果を出力し、
前記出力取得部は、同一の入力を受け付けた、前記新たな共通モデル、前記再学習されたモデル、および前記第３の共通モデルからの出力をそれぞれ第１の出力、第２の出力、第３の出力として取得し、
前記再学習部は、前記選択された１つの出力に基づいて、前記第３の共通モデルに再学習を実施することを特徴とする請求項２記載のモデル統合装置。
【請求項４】
前記再学習部は、前記第２の出力と前記第３の出力とが、予め定められた閾値以上の割合で一致したときに再学習を停止することを特徴とする請求項２または請求項３記載のモデル統合装置。
【請求項５】
前記出力取得部は、同一の入力を受け付けた、前記共通モデルとは異なる１以上のその他の共通モデルからの出力を更に取得し、
前記セレクタは、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、前記出力取得部が取得したすべての出力のうちいずれか１つを選択して出力することを特徴とする請求項１から４のいずれかに記載のモデル統合装置。
【請求項６】
複数のニューラルネットワークモデルを統合するモデル統合システムであって、
共通モデルを管理し、学習を進めることにより精度を向上させる共通モデルサーバと、
請求項３に記載のモデル統合装置と、を備え、
前記共通モデルサーバは、学習を進めた新たな共通モデルを定期的に公開し、
前記モデル統合装置は、前記新たな共通モデルを定期的に取り込むことを特徴とするモデル統合システム。
【請求項７】
複数のニューラルネットワークモデルを統合するモデル統合方法であって、
同一の入力を受け付けた、１つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力をそれぞれ第１の出力、第２の出力、第３の出力として取得するステップと、
前記それぞれの出力のうち、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、いずれか１つを選択して出力するステップと、を含むことを特徴とする方法。
【請求項８】
複数のニューラルネットワークモデルを統合するモデル統合プログラムであって、
同一の入力を受け付けた、１つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力をそれぞれ第１の出力、第２の出力、第３の出力として取得する処理と、
前記それぞれの出力のうち、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、いずれか１つを選択して出力する処理と、の一連の処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のニューラルネットワークモデルを統合するモデル統合装置、モデル統合システム、方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ニューラルネットワークを活用した深層学習により、これまで機械的な判断では難しかった画像からの人物の動きなど、高度なコンテキスト理解が可能になっている。ただし、この深層学習による画像認識では、従来の手動で設計する特徴点に基づいた認識技術と異なり、自動的に特徴を抽出することができるが、精度を上げるためには大量のサンプル画像を用いて学習し、そのモデルを作成することが必要となる。
【０００３】
また、一般的にサンプル数が多いほど精度が向上するため、一度モデル化をした後もサンプルを収集し、モデルを更新、精度を上げつづけるシステムを構築することは、深層学習を用いたシステムにおいては重要である。例えば、写真のストレージサービスなどを無料利用可能な代わりにそのデータをサンプルとして学習に使用する（例：https://www.google.com/intl/ja/policies/terms/）ようなエコシステムの構築や、自社のシステムで利用可能なモデルや技術を広めるために、学習済みモデルの公開やオープンソース化（非特許文献１）が行われている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Abadi, Martin, et al. "Tensorflow: Large-scale machine learning on heterogeneous distributed systems." arXiv preprint arXiv:1603.04467 (2016).
【非特許文献２】R. Girshick, J. Donahue, T. Darrell, U. C. Berkeley, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In Proc. IEEE CVPR, 2014.
【非特許文献３】Jeffrey Dean, Gregory S. Corrado, Rajat Monga, Kai Chen, Matthieu Devin, Quoc V. Le, Mark Z. Mao, Marc’Aurelio Ranzato, Andrew Senior, Paul Tucker, 17 Ke Yang, and Andrew Y. Ng. Large scale distributed deep networks. In NIPS, 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように多くのサンプルを集めることで精度が高くなるが、判断内容はいわゆる多数決で決めるような平均的な回答に近づいていく。一方で、各家庭では独自の文化があるように、深層学習においてもパーソナライズ化が必要とされており、各家庭の個別のサンプルを用いて学習を行った方が各家庭に適した判断ができるようになる。前者を共通モデル、後者を個別モデルと呼ぶとすると、個別モデルは一部の領域において高い精度を出すが、それ以外については共通モデルの方が優れることになる。
【０００６】
一部について個別化したモデルを作るためには、ベースとなるモデルに基づいて再学習を行うＦｉｎｅ  Ｔｕｎｉｎｇ（非特許文献２）という手法が確立しており、共通モデルをベースとして各家庭に個別化した学習ができる。しかしながら、前記したようにこのベースとなる共通モデルもその後学習が進み、より精度の高いものに進化してしまう。そのため、個別化されたモデルもそれに基づいて更新を行うことが考えられる。しかしながら、学習した個別モデルを新しい共通モデルに置き換えて再度学習をやり直しては、これまで各ユーザ、家庭で学習してきた内容が消えてしまい、ユーザの利用感にギャップが生じてしまう。
【０００７】
そこで、新しい共通モデルと個別モデルをギャップなく統合する必要性が出てくる。各モデルのパラメタを計算式で統合することは学習結果の意味を失うため行われておらず、また共通モデルのニューラルネットワーク自体が変わってしまっている場合もあり困難である。一方で個別モデルの学習に用いたサンプルデータを、改めて新しい共通モデルに与えてＦｉｎｅ  Ｔｕｎｉｎｇをやり直すことは可能であるが、これらのサンプルデータはパーソナライズ化が進むにつれて膨大になるため、常時保持しておくことは難しい。複数の機材で並行して学習を行う並行学習の手法（非特許文献３）もあるが、これらは一つの学習モデルをタスク分散して生成する方式であって、個別に学習、また異なるネットワークモデルを持つ学習済みモデルを統合することはできない。
【０００８】
定期的に更新される学習済みの共通モデルがあり、これから派生した個別モデルにおいては、この更新された共通モデルと統合する必要がある。今までは、共通モデルをベースとして、個別モデルの学習に使用したサンプルデータを用いて再学習させる必要があった。しかしながら、学習が進むほどサンプルデータの量は多くなり、統合のために保持し続けることは難しくなる。
【０００９】
本発明は、このような事情に鑑みてなされたものであり、共通モデルから派生した個別モデルにおいて、この個別モデルと新しい共通モデルを比較して再学習することにより、個別学習に用いたサンプルデータを保持することなく、新しいモデルに個別学習の結果を反映、統合することを実現するモデル統合装置、モデル統合システム、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
（１）上記の目的を達成するため、本発明は、以下のような手段を講じた。すなわち、本発明のモデル統合装置は、複数のニューラルネットワークモデルを統合するモデル統合装置であって、同一の入力を受け付けた、１つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力を、それぞれ第１の出力、第２の出力、第３の出力として取得する出力取得部と、前記取得された各出力のうち、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、いずれか１つを選択して出力するセレクタと、を備える。
【００１１】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【００１２】
（２）また、本発明のモデル統合装置は、前記共通モデルに基づいて学習を進めた新たな共通モデルに基づき、入力に対して判定結果を出力するモデル判定部と、前記選択された１つの出力に基づいて、前記新たな共通モデルに再学習を実施する再学習部と、を備え、前記新たな共通モデルに再学習が実施された場合、前記モデル判定部は、再学習された共通モデルに基づき、入力に対して判定結果を出力し、前記出力取得部は、再学習された共通モデルの出力を第３の出力として取得する。
【００１３】
これにより、個別モデルを生成したデータが無くとも、新しいデータに対してその判定結果を利用することで、新たな共通モデルに基づいた新たな個別モデルを漸次に生成できる。また、新たな共通モデルで精度が向上した部分についても、取り入れることができる。
【００１４】
（３）また、本発明のモデル統合装置は、前記新たな共通モデルに基づいて学習を進めた第３の共通モデルの有無を判断し、前記第３の共通モデルがある場合は前記第３の共通モデルを取り込み、前記新たな共通モデルと置き換える更新部を備え、前記第３の共通モデルが取り込まれた場合、前記モデル判定部は、前記第３の共通モデルに基づき、入力に対して判定結果を出力し、前記出力取得部は、同一の入力を受け付けた、前記新たな共通モデル、前記再学習されたモデル、および前記第３の共通モデルからの出力をそれぞれ第１の出力、第２の出力、第３の出力として取得し、前記再学習部は、前記選択された１つの出力に基づいて、前記第３の共通モデルに再学習を実施する。
【００１５】
これにより、新たな共通モデルに対してより精度を向上させた第３の共通モデルに基づいて、新たな個別モデルを生成できる。また、第３の共通モデルで精度が向上した部分についても、取り入れることができる。
【００１６】
（４）また、本発明のモデル統合装置において、前記再学習部は、前記第２の出力と前記第３の出力とが、予め定められた閾値以上の割合で一致したときに再学習を停止する。
【００１７】
これにより、十分に再学習がされたモデルに対して、繰り返し再学習されることがなくなり、無駄な処理を行わない。
【００１８】
（５）また、本発明のモデル統合装置において、前記出力取得部は、同一の入力を受け付けた、前記共通モデルとは異なる１以上のその他の共通モデルからの出力をさらに取得し、前記セレクタは、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、前記出力取得部が取得したすべての出力のうちいずれか１つを選択して出力する。
【００１９】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルまたはその他の共通モデルの出力結果を利用することができる。
【００２０】
（６）また、本発明のモデル統合システムは、複数のニューラルネットワークモデルを統合するモデル統合システムであって、共通モデルを管理し、学習を進めることにより精度を向上させる共通モデルサーバと、（３）に記載のモデル統合装置と、を備え、前記共通モデルサーバは、学習を進めた新たな共通モデルを定期的に公開し、前記モデル統合装置は、前記新たな共通モデルを定期的に取り込む。
【００２１】
これにより、サーバが公開した新たな共通モデルに基づいた新たな個別モデルを定期的に生成できる。なお、共通モデルサーバが管理する共通モデルには、学習済みの共通モデル、新たな共通モデル、第３の共通モデル、その他の共通モデルなど様々な共通モデルが含まれる。
【００２２】
（７）また、本発明のモデル統合方法は、複数のニューラルネットワークモデルを統合するモデル統合方法であって、同一の入力を受け付けた、１つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力をそれぞれ第１の出力、第２の出力、第３の出力として取得するステップと、前記それぞれの出力のうち、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、いずれか１つを選択して出力するステップと、を含む。
【００２３】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【００２４】
（８）また、本発明のモデル統合プログラムは、複数のニューラルネットワークモデルを統合するモデル統合プログラムであって、同一の入力を受け付けた、１つの学習済みの共通モデル、前記共通モデルに基づいて学習を進めた個別モデル、および前記共通モデルに基づいて学習を進めた新たな共通モデルからの出力をそれぞれ第１の出力、第２の出力、第３の出力として取得する処理と、前記それぞれの出力のうち、少なくとも前記第１の出力の精度と前記第２の出力の精度とに基づいた前記第２の出力を優先する基準に従って、いずれか１つを選択して出力する処理と、の一連の処理をコンピュータに実行させる。
【００２５】
これにより、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【発明の効果】
【００２６】
本発明によれば、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【図面の簡単な説明】
【００２７】
【図１】モデルの利用構成を示す概念図である。
【図２】モデルの発展の経時的な流れを示す概念図である。
【図３】モデルの発展の経時的な流れを示す概念図である。
【図４】第１の実施形態に係るモデル統合装置の構成の一例を示すブロック図である。
【図５】モデル判定機能により入力に対して判定結果として出力された情報の一例を示す表である。
【図６】第１の実施形態に係るモデル統合装置の構成の一例を示すブロック図である。
【図７】第１の実施形態に係るモデル統合装置の構成の一例を示すブロック図である。
【図８】個別モデルと新たな共通モデルを統合する動作を示すフローチャートである。
【図９】第２の実施形態に係るモデル統合装置の構成の一例を示すブロック図である。
【図１０】第２の実施形態に係るモデル統合装置の構成の一例を示すブロック図である。
【図１１】（ａ）は、共通モデルに基づいて個別モデルを生成するまでの動作を示すフローチャートである。（ｂ）は、個別モデルを生成した後、個別モデルと新たな共通モデルを統合すると共に、新たな共通モデルに基づいて新たな個別モデルを生成するまでの動作を示すフローチャートである。
【図１２】第３の実施形態に係るモデル統合装置およびモデル統合システムの構成の一例を示すブロック図である。
【図１３】モデルが置き換えられた後の、第３の実施形態に係るモデル統合装置およびモデル統合システムの構成の一例を示すブロック図である。
【図１４】モデルを置き換えるまでの動作を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下に本願での用語の定義を説明する。特記される場合を除き、以下の定義により解釈されるものとする。
【００２９】
（１）共通モデルは、不特定多数の人やノードなどから収集したデータをサンプルデータとして学習をした、ニューラルネットワークモデルである。学習済みの共通モデルは、通常の使用ができる程度まで学習された共通モデルである。
【００３０】
（２）個別モデルは、特定少数の人やノード（特定の個人や家庭、会社など）から収集したデータをサンプルデータとして、共通モデルを基にさらに学習をした、ニューラルネットワークモデルである。サンプルデータの偏りによって、一部の領域の入力に対しては、基となった共通モデルよりも高い精度の出力が得られる。
【００３１】
（３）学習は、問題の最適解を求める過程で、試行錯誤と結果のフィードバックによってよりよい解法へ近づいていくことである。ニューラルネットワークモデルは、学習によって通常は精度が向上する。
【００３２】
（４）共通学習とは、共通モデルを得るため、または、共通モデルの精度を上げるために、不特定多数の人やノードなどから収集したデータをサンプルデータとして学習をすることである。
【００３３】
（５）個別に学習する（個別学習）とは、共通モデルに基づいて個別モデルを得るため、または、個別モデルの精度を上げるために、特定少数の人やノードから収集したデータをサンプルデータとして、学習をすることである。再学習も同じ意味で使用する。また、モデル統合装置の出力を利用して、自動で行うことも、ユーザのフィードバックの入力により行うことも含む。
【００３４】
次に、本発明の実施の形態について、図面を参照しながら説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては同一の参照番号を付し、重複する説明は省略する。
【００３５】
（モデルの利用構成）
本発明が想定するモデルの利用構成を図１に示す。一般的に深層学習などによるモデルは、大量のサンプルデータに基づいて作成される。これは一度作成されるだけではなく、継続的なサンプルデータの収集に基づいて常に更新し続ける。例えば、各家庭で収集したデータをクラウド上に集めて学習する、スマートフォンで収集したデータをクラウド上に集めて学習するなどが行われている。この学習によって生成されたモデルは汎用的な共通モデルであり、幅広く使用することができる。一方で、各家庭、各スマートフォンでも個別に学習が進んでいる。例えば、特定の発音、特定の操作、個人の画像などその利用者、利用環境にあった内容によって学習される。この場合、サンプルデータが少なくなりやすいことから、前記した共通モデルに基づき再学習して利用されることが多い。そのため、図１に示すようにサンプルデータの収集と共通モデルの学習、それに基づく個別の学習やその個別モデルの利用の関係が成り立つ。
【００３６】
（モデルの発展の流れ）
次に、モデルの発展の経時的な流れを図２に示す。ある時点で既に存在する学習済みの共通モデルを「モデルＡ１」、これを複製したものを「モデルＺ１」、これに基づいて個別に学習したモデルを「モデルＺ１’」とする。一方で、「モデルＡ１」は時間経過と共にさらに学習を重ね「モデルＡ２」が生成される。この「モデルＡ２」は「モデルＡ１」よりも基本的には精度が高く、より広い判定ができるものとなっている。しかし、一般的な判断をするものであり、「モデルＺ１’」を使用した方がよい場合がある。そこで、モデル統合装置を用いることで、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合することができる。
【００３７】
また、再度「モデルＡ２」に基づいて個別に学習したモデル「モデルＺ２’」を生成したい。しかしながら、「モデルＺ２’」は、一般的に「モデルＺ１’」や「モデルＡ２」から計算により求めることができない。そこで、モデル統合装置の出力を用いて、「モデルＡ２」を複製した「モデルＺ２」に基づいて再学習したモデル「モデルＺ２’」を漸次に生成する。
【００３８】
また、図３に示すように、途中でほかの共通モデルでも合わせて取り込むことも可能にする。これは個別に学習した「モデルＺ１’」を新しい共通モデルに適用させる際に、元となった「モデルＡ」以外の共通モデルを統合するものである。この統合する共通モデルは、Ｂ、Ｃ、Ｄ、Ｅ、…とＮ個取り扱うことができる。
【００３９】
［第１の実施形態］
（モデル統合装置の構成）
図４は、本実施形態に係るモデル統合装置１０の構成の一例を示すブロック図である。モデル統合装置１０は、出力取得部１２とセレクタ１４とから構成されている。モデル統合装置１０は、出力取得部１２により取得された３以上の出力のうち、セレクタ１４が１つを選択して出力する。
【００４０】
出力取得部１２は、少なくとも、同一の入力を受け付けた、「モデルＺ１」（学習済みの共通モデル）、「モデルＺ１’」（個別モデル）、および「モデルＡ２」を複製した「モデルＺ２」（新たな共通モデル）からの出力を、それぞれ第１の出力、第２の出力、第３の出力として取得する。モデルの出力とは、モデル判定部１６により入力に対して判定結果として出力された情報であり、学習内容のモデルによって異なるが、例えば椅子や机などのモノの判定。人物やペットなどの判定。また話しかけに対する対応タスクの選択などがあり得る。例えば、図５の表のような情報である。出力取得部１２は、この出力のうち、例えば、「ClassID_X_k」（モデルＸに基づいた、ｋ番目に精度が高い判定内容）および「Confidence_X_k」（モデルＸに基づいた、ｋ番目の判定内容の精度）などの必要な情報を取り込む。なお、ｋ＝１のときは、「_k」を省略して表す。モデル判定部１６はモデル毎にあるが、基とするモデルが異なるだけで、機能は同じである。
【００４１】
モデルＺ１判定部１６ａは、「モデルＺ１」に基づき、入力に対して判定結果を出力する機能を有する。出力内容は、判定内容を示す「ClassID_Z1_k」とその確からしさを示す精度「Confidence_Z1_k」の組からなる表である。例えば、入力は静止画映像で、「ClassID_Z1」は「テーブル」、「Confidence_Z1」は０．７８８などである。
【００４２】
モデルＺ１’判定部１６ｂは、前記したモデルＺ１判定部１６ａと同等の機能を持つが、判定に使用する学習モデルは個別に学習を進めたモデルであることが異なる。出力は、判定内容の「ClassID_Z1’_k」と、その精度「Confidence_Z1’_k」の組からなる表となる。
【００４３】
モデルＺ２判定部１６ｃは、前記したモデルＺ１判定部１６ａと同等の機能を持つが、判定に使用する学習モデルは精度が上がった共通モデルであることが異なる。出力は、判定内容の「ClassID_Z2_k」と、その精度「Confidence_Z2_k」の組からなる表となる。
【００４４】
セレクタ１４は、出力取得部１２が取得した、少なくとも「モデルＺ１」、「モデルＺ１’」、および「モデルＺ２」の出力を入力とし、いずれか１つを選択して出力する。この処理は、例えば、次のような基準に従って選択させることができる。
Confidence_Z1’＞Confidence_Z1であれば、ClassID_Z1’を出力とする。
それ以外は、ClassID_Z2を出力とする。
【００４５】
これを詳細に場合分けすると次のようになる。
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を出力とする。
【００４６】
モデル統合装置１０は、図６に示すように、Ｎ個の共通モデルを統合して、出力を選択してもよい。図４と比較して、次の機能ブロックが異なる。
【００４７】
モデルＢ２判定部１６ｅは、前記したモデルＺ１判定部１６ａと同等の機能を持つが、判定に使用する学習モデルが「モデルＢ２」であることが異なる。出力は、判定内容の「ClassID_B2_k」と、その精度「Confidence_B2_k」の組からなる表となる。同様に、モデルＣ２判定部、モデルＤ２判定部とＮ個の判定部がある。
【００４８】
セレクタ１４は、「モデルＺ１」、「モデルＺ１’」、「モデルＺ２」、「モデルＢ２」…の判定結果の出力を入力とし、いずれか１つを選択して出力する。この処理は、例えば、次のような基準に従って選択させることができる。
Confidence_Z1’＞Confidence_Z1であれば、ClassID_Z1’を出力とする。
それ以外は、「モデルＺ１」「モデルＺ１’」を除く尤も精度の高いClassIDを出力とする。
【００４９】
なお、本実施形態に係るモデル統合装置１０は、図４および図６のようにモデル判定部１６を備えない装置について説明したが、図７のように、モデル毎のモデル判定部１６の一部またはすべてを備えていてもよい。
【００５０】
（モデル統合装置の動作）
次に、モデル統合装置１０の動作について説明する。図８は、個別モデル「モデルＺ１’」と新たな共通モデル「モデルＺ２」を統合する動作を示すフローチャートである。
【００５１】
出力取得部１２は、少なくとも、同一の入力を受け付けた、「モデルＺ１」、「モデルＺ１’」、および「モデルＡ２」を複製した「モデルＺ２」からの出力を、それぞれ第１の出力、第２の出力、第３の出力として取得し、その他の出力があるときはその他の出力も取得する（ステップＳ１）。次に、出力取得部１２は、取得した第１から第３の出力、およびその他の出力があるときはその他の出力をセレクタ１４に入力する（ステップＳ２）。そして、セレクタ１４は、上記のような、少なくとも第１の出力の精度と第２の出力の精度とに基づいた第２の出力を優先する基準に従って、いずれか１つを選択して出力する（ステップＳ３）。このような動作により、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合した判定結果を出力することができる。
【００５２】
［第２の実施形態］
第１の実施形態では、モデル統合装置１０が、学習済みの共通モデルから派生した個別モデルにおいて、その個別に学習した結果を失うことなく、新たな共通モデルと統合した判定結果を出力する構成としているが、その統合した判定結果を利用して、新たな共通モデルに再学習をさせることにより、新たな共通モデルに基づいた個別モデルを生成できる構成にしてもよい。
【００５３】
（モデル統合装置の構成）
図９は、本実施形態に係るモデル統合装置１０の構成の一例を示すブロック図である。モデル統合装置１０は、第１の実施形態にも示した出力取得部１２とセレクタ１４の構成以外に、モデルＺ１判定部１６ａ、モデルＺ１’判定部１６ｂ、モデルＺ２’判定部１６ｄ、および再学習部２０から構成されている。モデル統合装置１０は、出力取得部１２により取得された３以上の出力のうち、セレクタ１４が１つを選択して出力すると共に、再学習部２０がセレクタ１４が選択した出力に基づいて「モデルＺ２’」に再学習を実施し、「モデルＺ２」に基づいた新たな個別モデルを漸次に生成する。なお、ブロック図において、黒矢印は、学習によってモデルの中身が変化することを示す。「モデルＺ２’」の初期値は、「モデルＺ２」であり、これが学習によって「モデルＺ２’」に変化する。
【００５４】
モデルＺ１判定部１６ａ、モデルＺ１’判定部１６ｂ、モデルＺ２’判定部１６ｄは、それぞれ、「モデルＺ１」、「モデルＺ１’」、「モデルＺ２’」に基づいて、入力に対して判定結果を出力する。出力取得部１２、セレクタ１４、の機能は、第１の実施形態と同様である。ただし、出力取得部１２は、第３の出力をモデルＺ２’判定部１６ｄから取得する。また、セレクタ１４の出力選択の判定基準は、上記基準のＺ２をＺ２’に置き換えたものとする。
【００５５】
再学習部２０は、セレクタ１４の出力が「ClassID_Z2’」でなかった場合、その入力と出力をサンプルデータとして、「モデルＺ２’」に対して再学習を行う機能である。この再学習を繰り返すことで、「モデルＺ２’」の中身は漸次に個別学習されたものへと変化する。
【００５６】
モデルＺ２’判定部１６ｄは、「モデルＺ２’」に基づいて、入力に対して判定結果を出力するが、「モデルＺ２’」が再学習される前は、「モデルＺ２」に基づいた判断結果となる。また、モデルＺ２’判定部１６ｄは、「モデルＺ２’」が再学習により漸次に変化するのに従い、再学習後は、再学習された「モデルＺ２’」に基づいて、入力に対して判定結果を出力する。
【００５７】
なお、本実施形態に係るモデル統合装置１０は、図９のように、モデルＺ２’判定部１６ｄ以外のモデル毎のモデル判定部１６も備えた装置について説明したが、図１０のように、モデルＺ２’判定部１６ｄのみ備えた装置であってもよい。
【００５８】
（モデル統合装置の動作）
次に、モデル統合装置１０の動作について説明する。図１１（ａ）は、共通モデル「モデルＡ１」を複製した「モデルＺ１」に基づいて個別モデル「モデルＺ１’」を生成するまでの動作を示すフローチャートである。図１１（ｂ）は、個別モデル「モデルＺ１’」を生成した後、「モデルＺ１’」と新たな共通モデルである「モデルＡ２（Ｚ２）」を統合すると共に、「モデルＺ２」に基づいて新たな個別モデル「モデルＺ２’」を生成するまでの動作を示すフローチャートである。
【００５９】
モデル統合装置１０は、共通学習された「モデルＡ１」をダウンロードして取り込む。これを後に参考するために、複製して「モデルＺ１」として保存しておく。また、これとは別に、個別に学習させるモデルのベースとして別途複製して保持し、これを「モデルＺ１’」とする（ステップＴ１）。各ノードで実際に利用されると映像や音声などのデータが与えられ、このデータと「モデルＺ１’」に基づき判定される（ステップＴ２）。初期状態では「モデルＺ１」と「モデルＺ１’」の差分はないが学習が進むと差異が生じる。判定結果が出力され、各ノードの機能としてそのまま利用される（ステップＴ３）。このフェーズでは共通モデルの学習結果を利用することが可能であり、共通モデルに基づくサービスが提供できる。
【００６０】
一方で出力された結果に対して、別途表示ディスプレイや音声などのユーザインタフェース（ＵＩ）を通してユーザよりフィードバックを得る。例えば、間違った出力判定に対して、訂正を入力される、もしくは出力が不明なため答えを問い合わせるなどが行われる（ステップＴ４）。フィードバックされた結果に基づいて、「モデルＺ１’」の再学習を行う（ステップＴ５）。これは特定の映像や言葉など、各家庭や、ユーザの個別学習になる。
【００６１】
モデル統合装置１０は、定期的な、またはユーザの指示による更新として、新たな共通モデルである「モデルＡ２」をダウンロードして取り込む。これを後で参考とするために複製して、「モデルＺ２」として保存する。また、これとは別に、個別に学習させるモデルのベースとして別途複製して保存し、これを「モデルＺ２’」とする（ステップＴ６）。このフェーズでも、各ノードで実際に利用されると映像や音声などのデータが与えられる。このデータが「モデルＺ１」、「モデルＺ１’」および「モデルＺ２’」（再学習される前は、中身は「モデルＺ２」）に基づき判定され、セレクタ１４により選択される（ステップＴ７）。例えば、映像を入力して、「モデルＺ１」ではαさん、精度０．７７、「モデルＺ１’」ではβさん、精度０．８９、「モデルＺ２’」ではαさん、精度０．９０となった場合、セレクタ１４によって出力されるのは「モデルＺ１’」によるβさんである。新たな共通モデルの結果よりも、個別に学習した結果が優先され、利用者にとって更新時のギャップがなくなる。この選択結果は、各ノードの機能としてそのまま利用され、これに基づくサービスが同様に提供できる（ステップＴ８）。
【００６２】
このフェーズでも同様に、出力された結果に対して、ＵＩを通してユーザよりフィードバックを得る。例えば、間違った出力判定に対して、訂正を入力される、もしくは出力が不明なため答えを問い合わせるなどが行われる（ステップＴ９）。フィードバックされた結果に基づいて、「モデルＺ２’」の再学習を行う（ステップＴ１０）。これは特定の映像や言葉など、各ユーザ独自の学習になる。ステップＴ１〜ステップＴ５までのフェーズと異なるのは、「モデルＺ２’」の再学習においては、ユーザのフィードバックが無くても、セレクタ１４により選択された出力を正解とみなして再学習を行うことである。これにより、データが繰り返し与えられると、「モデルＺ２’」の内容は、「モデルＺ１’」で個別に学習した内容に近づく。
【００６３】
上記の動作により、「モデルＺ１’」を生成したデータが無くとも、新しいデータに対してその判定結果を利用することで、新たな共通モデル「モデルＺ２」に基づいた個別モデル「モデルＺ２’」を漸次に生成できる。また、「モデルＺ２」で新しく精度が向上した部分についても、「モデルＺ１」と「モデルＺ１’」の精度を確認することで、古い判定に引きずられることを避けている。なお、複数の共通モデルを統合する場合は、ステップＴ６でその他の共通モデルも取り込んで保存しておき、セレクタ１４に基づく判定出力を得るときに使用する。
【００６４】
なお、セレクタ１４の入力を「モデルＺ１’」および「モデルＺ２’」の出力２つとし、精度の高い方をセレクタ１４の出力として、再学習してもよい。この場合、高い精度の誤りデータは残り続けるため、ユーザによるフィードバックがされないときは、再学習の精度は落ちる。また、セレクタ１４の機能として自動的に選択するのではなく、画面表示などがある機器であれば、ＵＩを通していずれを選択するかをユーザに問い合わせてもよい。その選択結果を出力として学習する。再学習は、リアルタイムに行ってもよい。また夜間など処理量が少ないときにまとめてバッチ処理にて行ってもよい。
【００６５】
セレクタ１４において「ClassID_Z2’」の結果を出力することが多数（例えば９８％など）になると、統合のための再学習を止めることが好ましい。十分に再学習がされたモデルに対して、繰り返し再学習されることがなくなり、無駄な処理を行わないからである。この場合は、再学習された「モデルＺ２’」のみを使用する。また、再学習された「モデルＺ２’」、「モデルＺ２」、および図２に示す新たに精度の向上した「モデルＡ３」を使用して、同様の学習を繰り返してもよい。
【００６６】
なお、セレクタ１４は、少なくとも「モデルＺ１」と「モデルＺ１’」の出力の精度を比較することにより、個別に学習した結果を優先して出力する機能ブロックであるが、「モデルＺ１」と「モデルＺ１’」の出力の精度の比較方法は上記の方法に限られない。例えば、次のような基準を用いてもよい。
Confidence_Z1’−Confidence_Z1＞τ
これは「モデルＺ１’」の出力の精度がある一定（τ）以上、「モデルＺ１」よりも大きいことを条件とするものである。
また、「モデルＺ１」の２番目に精度の高い出力を「Confidence_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
などとしてもよい。
【００６７】
［第３の実施形態］
第２の実施形態では、モデル統合装置１０が、統合した判定結果を利用して、新たな共通モデルに再学習をさせることにより、新たな共通モデルに基づいた個別モデルを生成できる構成であったが、新たな共通モデルも順次発展すると考えられるため、第２の実施形態の構成に加えて、新たな共通モデルに基づいて学習を進めた第３の共通モデルの有無を判断し、第３の共通モデルがある場合は前記第３の共通モデルを取り込み、新たな共通モデルと置き換える構成としてもよい。
【００６８】
（モデル統合装置の構成）
図１２は、本実施形態に係るモデル統合装置１０およびモデル統合システム１００の構成の一例を示すブロック図である。モデル統合装置１０は、第２の実施形態に示した構成以外に、「モデルＡ２」（新たな共通モデル）に基づいて学習を進めた「モデルＡ３」（第３の共通モデル）の有無を判断し、「モデルＡ３」がある場合は「モデルＡ３」を取り込み、「モデルＺ２’」と置き換える更新部２２を備える。更新部２２以外の機能は第２の実施形態と同様なので省略する。
【００６９】
更新部２２は、定期的にまたはユーザの指示により、「モデルＡ２」に基づいて学習を進めた「モデルＡ３」の有無を判断し、「モデルＡ３」がある場合は「モデルＡ３」を取り込み、これを複製した「モデルＺ３’」と「モデルＺ２’」とを置き換える。
【００７０】
「モデルＡ３」が取り込まれ、「モデルＺ２’」と「モデルＺ３’」とが置き換えられた場合、各モデル判定部１６は、基とするモデルを変更し、「モデルＺ２」（新たな共通モデル）、「モデルＺ２’」（再学習されたモデル）、および「モデルＺ３’」（第３の共通モデル）に基づき、同一の入力を受け付けて、判定結果を出力する。
【００７１】
また、出力取得部１２は、各モデル判定部１６により出力された「モデルＺ２」、「モデルＺ２’」、および「モデルＺ３’」からの出力をそれぞれ第１の出力、第２の出力、第３の出力として取得する。「モデルＺ２’」と「モデルＺ３’」とが置き換えられた後のモデル統合装置１０の構成の一例は、図１３に示されるとおりである。
【００７２】
なお、本実施形態に係るモデル統合装置１０は、図１２および図１３のような、モデルＺ２’判定部１６ｄ（更新部により置き換えられた後は、モデルＺ３’判定部１６ｆとなる。）以外のモデル毎のモデル判定部１６も備えた装置について説明したが、第２の実施形態の図１０のように、モデルＺ２’判定部１６ｄのみ備えた装置であってもよい。
【００７３】
（モデル統合装置の動作）
次に、モデル統合装置１０の動作について説明する。図１４は、モデルを置き換えるまでの動作を示すフローチャートである。まず、更新部２２は、定期的にまたはユーザの指示により、「モデルＡ２」に基づいて学習を進めた「モデルＡ３」の有無を判断する（ステップＵ１）。そして、「モデルＡ３」がある場合は「モデルＡ３」を取り込み、これを複製した「モデルＺ３’」と「モデルＺ２’」とを置き換える（ステップＵ２）。一方、「モデルＡ３」がない場合は終了する。次に、各モデル判定部１６は、基とするモデルを置き換える（ステップＵ３）。このような動作により、最新の共通モデルを取得する。
【００７４】
モデルを置き換えた後の動作は、基とするモデルが異なるだけで、第２の実施形態で示した図１１（ｂ）の動作と同様である。このような動作により、新たな共通モデルに対してより精度を向上させた第３の共通モデルに基づいて、新たな個別モデルを生成できる。また、第３の共通モデルで精度が向上した部分についても、取り入れることができる。
【００７５】
（モデル統合システムの構成）
本実施形態に係るモデル統合装置１０は、学習を進めた共通モデルが定期的に公開される共通モデルサーバ５０と組み合わせて、モデル統合システム１００として構成できる。共通モデルサーバ５０は、一連の共通モデルを管理し、学習を進めることにより精度を向上させる。また、共通モデルサーバ５０は、学習を進めた共通モデルを定期的に公開する。
【００７６】
モデル統合装置１０は、定期的に公開される共通モデルを定期的に取り込み、最新の共通モデルに基づいて新たな個別モデルを生成する。これにより、共通モデルサーバ５０が公開した新たな共通モデルに基づいた新たな個別モデルを定期的に生成できる。
【符号の説明】
【００７７】
１０  モデル統合装置
１２  出力取得部
１４  セレクタ
１６、１６ａ〜１６ｆ  モデル判定部
２０  再学習部
２２  更新部
５０  共通モデルサーバ
１００  モデル統合システム
【図１】
2018147261.tif 000003
【図２】
2018147261.tif 000004
【図３】
2018147261.tif 000005
【図４】
2018147261.tif 000006
【図５】
2018147261.tif 000007
【図６】
2018147261.tif 000008
【図７】
2018147261.tif 000009
【図８】
2018147261.tif 000010
【図９】
2018147261.tif 000011
【図１０】
2018147261.tif 000012
【図１１】
2018147261.tif 000013
【図１２】
2018147261.tif 000014
【図１３】
2018147261.tif 000015
【図１４】
2018147261.tif 000016