IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧 ▶ 国立大学法人京都大学の特許一覧

<>
  • 特許-推定システム、推定装置および推定方法 図1
  • 特許-推定システム、推定装置および推定方法 図2
  • 特許-推定システム、推定装置および推定方法 図3
  • 特許-推定システム、推定装置および推定方法 図4
  • 特許-推定システム、推定装置および推定方法 図5
  • 特許-推定システム、推定装置および推定方法 図6
  • 特許-推定システム、推定装置および推定方法 図7
  • 特許-推定システム、推定装置および推定方法 図8
  • 特許-推定システム、推定装置および推定方法 図9
  • 特許-推定システム、推定装置および推定方法 図10
  • 特許-推定システム、推定装置および推定方法 図11
  • 特許-推定システム、推定装置および推定方法 図12
  • 特許-推定システム、推定装置および推定方法 図13
  • 特許-推定システム、推定装置および推定方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-26
(45)【発行日】2023-06-05
(54)【発明の名称】推定システム、推定装置および推定方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230529BHJP
【FI】
G06N20/00 130
【請求項の数】 7
(21)【出願番号】P 2019206383
(22)【出願日】2019-11-14
(65)【公開番号】P2021081794
(43)【公開日】2021-05-27
【審査請求日】2022-05-24
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(73)【特許権者】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】橋本 敦史
(72)【発明者】
【氏名】飯山 将晃
(72)【発明者】
【氏名】▲高▼橋 龍平
(72)【発明者】
【氏名】薗頭 元春
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2019-159835(JP,A)
【文献】米国特許出願公開第2019/0244107(US,A1)
【文献】国際公開第2019/087987(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
推定システムであって、
正解が付与された複数のサンプルデータを含む第1のデータセット、および、正解が付与されていない複数のサンプルデータを含む第2のデータセットを用いて、推定モデルを生成する学習部と、
前記第2のデータセットに属し得る推定対象データを前記推定モデルに入力して、推定結果を決定する推定部とを備え、
前記推定モデルは、サンプルデータから、前記第1のデータセットおよび前記第2のデータセットに非依存の第1の特徴量、および、前記第1のデータセットまたは前記第2のデータセットに依存する第2の特徴量、を算出するエンコーダを含み、
前記学習部は、前記第1のデータセットに含まれる第1のサンプルデータと、前記第2のデータセットに含まれる、前記第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、前記第1のサンプルデータおよび前記第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるように前記エンコーダを学習するように構成されている、推定システム。
【請求項2】
前記学習部は、敵対的ネットワークである学習用ネットワークにより、前記推定モデルを生成するように構成されている、請求項1に記載の推定システム。
【請求項3】
前記学習用ネットワークは、
第1のエンコーダおよび第1のデコーダからなる第1のエンコーダ・デコーダと、
第2のエンコーダおよび第2のデコーダからなる第2のエンコーダ・デコーダとを含み、
前記学習部による学習において、
前記第1のデータセットに含まれるサンプルは、前記第1のエンコーダ・デコーダおよび前記第2のエンコーダ・デコーダの順で配置された第1のネットワークに入力され、
前記第2のデータセットに含まれるサンプルは、前記第2のエンコーダ・デコーダおよび前記第1のエンコーダ・デコーダの順で配置された第2のネットワークに入力される、請求項2に記載の推定システム。
【請求項4】
前記学習部は、
前記第1のデータセットに含まれるサンプルを第1のネットワークに入力することで、前記第1のエンコーダから出力される前記第1の特徴量と、前記第2のエンコーダから出力される第1の疑似特徴量との誤差が最小化するように、前記第1のエンコーダ、前記第1のデコーダ、前記第2のエンコーダおよび前記第2のデコーダのモデルパラメータを最適化するように構成されており、
前記第2のデータセットに含まれるサンプルを第2のネットワークに入力することで、前記第2のエンコーダから出力される前記第1の特徴量と、前記第1のエンコーダから出力される第1の疑似特徴量との誤差が最小化するように、前記第1のエンコーダ、前記第1のデコーダ、前記第2のエンコーダおよび前記第2のデコーダのモデルパラメータを最適化するように構成されている、請求項3に記載の推定システム。
【請求項5】
前記学習部は、前記エンコーダからの出力が入力される識別器を、前記第1のデータセットに含まれるサンプルデータおよび対応する正解に基づいて学習するようにさらに構成されており、
前記推定モデルは、前記識別器をさらに含む、請求項1~4のいずれか1項に記載の推定システム。
【請求項6】
正解が付与された複数のサンプルデータを含む第1のデータセット、および、正解が付与されていない複数のサンプルデータを含む第2のデータセットを用いた学習によって生成された推定モデルを保持する記憶部と、
前記第2のデータセットに属し得る推定対象データを前記推定モデルに入力して、推定結果を決定する推定部とを備え、
前記推定モデルは、サンプルデータから、前記第1のデータセットおよび前記第2のデータセットに非依存の第1の特徴量、および、前記第1のデータセットまたは前記第2のデータセットに依存する第2の特徴量、を算出するエンコーダを含み、
前記エンコーダは、前記第1のデータセットに含まれる第1のサンプルデータと、前記第2のデータセットに含まれる、前記第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、前記第1のサンプルデータおよび前記第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるように学習されている、推定装置。
【請求項7】
正解が付与された複数のサンプルデータを含む第1のデータセット、および、正解が付与されていない複数のサンプルデータを含む第2のデータセットを用いて、推定モデルを生成するステップと、
前記第2のデータセットに属し得る推定対象データを前記推定モデルに入力して、推定結果を決定するステップとを備え、
前記推定モデルは、サンプルデータから、前記第1のデータセットおよび前記第2のデータセットに非依存の第1の特徴量、および、前記第1のデータセットまたは前記第2のデータセットに依存する第2の特徴量、を算出するエンコーダを含み、
前記推定モデルを生成するステップは、前記第1のデータセットに含まれる第1のサンプルデータと、前記第2のデータセットに含まれる、前記第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、前記第1のサンプルデータおよび前記第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるように前記エンコーダを学習するステップを含む、推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、実運用に適合可能な機械学習方法に関する。
【背景技術】
【0002】
近年のコンピューティング能力の飛躍的な向上によって、様々な分野に、コンピューティング能力を利用したAI(Artificial Intelligence)と称されるソリューションが実現されつつある。
【0003】
このような取り組みの一つに、サイバーフィジカルシステム(CPS:Cyber Physical System)がある。サイバーフィジカルシステムは、現実の世界との関わりを意識し、コンピューティング能力を利用して、社会的な課題を解決しようとする様々な試みを包含するものである。
【0004】
サイバーフィジカルシステムの実現には、様々な要素技術が必要であるが、その一つにUnsupervised Domain Adaptation問題が知られている。非特許文献1、非特許文献2および非特許文献3には、Unsupervised Domain Adaptation問題に対して、cycleGANと呼ばれる手法を適用することが開示されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】Judy Hoffman, Eric Tzeng, Taesung Park, Jun-Yan Zhu, Phillip Isola, Kate Saenko, Alexei Efros, Trevor Darrell, "CyCADA: Cycle-Consistent Adversarial Domain Adaptation," Proceedings of the 35th International Conference on Machine Learning," PMLR 80:1989-1998, 2018, [2019年11月8日検索], インターネット<URL:https://github.com/jhoffman/cycada_release>
【文献】Paolo Russo, Fabio M. Carlucci, Tatiana Tommasi, Barbara Caputo, "From Source to Target and Back: Symmetric Bi-Directional Adaptive GAN," The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018, pp.8099-8108, [2019年11月8日検索], インターネット<URL:http://openaccess.thecvf.com/content_cvpr_2018/html/Russo_From_Source_to_CVPR_2018_paper.html>
【文献】Ashish Shrivastava, Tomas Pfister, Oncel Tuzel, Joshua Susskind, Wenda Wang, Russell Webb, "Learning From Simulated and Unsupervised Images Through Adversarial Training," The IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017, pp. 2107-2116, [2019年11月8日検索], インターネット<URL:https://arxiv.org/abs/1612.07828>
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、非特許文献1、非特許文献2および非特許文献3に開示される従来手法に比較して、より推定性能を高めた学習済みモデルを生成できる技術を提供することを一つの目的とする。
【課題を解決するための手段】
【0007】
本発明の一例に従う推定システムは、正解が付与された複数のサンプルデータを含む第1のデータセット、および、正解が付与されていない複数のサンプルデータを含む第2のデータセットを用いて、推定モデルを生成する学習部と、第2のデータセットに属し得る推定対象データを推定モデルに入力して、推定結果を決定する推定部とを含む。推定モデルは、サンプルデータから、第1のデータセットおよび第2のデータセットに非依存の第1の特徴量、および、第1のデータセットまたは第2のデータセットに依存する第2の特徴量、を算出するエンコーダを含む。学習部は、第1のデータセットに含まれる第1のサンプルデータと、第2のデータセットに含まれる、第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、第1のサンプルデータおよび第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるようにエンコーダを学習するように構成されている。
【0008】
この構成によれば、各データセットに含まれるサンプルデータから、第1のデータセットおよび第2のデータセットに非依存の第1の特徴量、および、第1のデータセットまたは第2のデータセットに依存する第2の特徴量、を算出するようなエンコーダを用いる。そして、第2の特徴量ではなく、第1の特徴量に着目して、第2のデータセットの分布の形状を知ることなく、推定モデルの推定精度を高めることができる。
【0009】
学習部は、敵対的ネットワークである学習用ネットワークにより、推定モデルを生成するように構成されていてもよい。この構成によれば、敵対的ネットワークにより効率的に推定モデルを学習できる。
【0010】
学習用ネットワークは、第1のエンコーダおよび第1のデコーダからなる第1のエンコーダ・デコーダと、第2のエンコーダおよび第2のデコーダからなる第2のエンコーダ・デコーダとを含んでいてもよい。学習部による学習において、第1のデータセットに含まれるサンプルは、第1のエンコーダ・デコーダおよび第2のエンコーダ・デコーダの順で配置された第1のネットワークに入力され、第2のデータセットに含まれるサンプルは、第2のエンコーダ・デコーダおよび第1のエンコーダ・デコーダの順で配置された第2のネットワークに入力されてもよい。この構成によれば、第1のエンコーダ・デコーダおよび第2のエンコーダ・デコーダは共通化しつつ配置順序を異ならせることで、敵対的ネットワークにより効率的に推定モデルを学習できる。
【0011】
学習部は、第1のデータセットに含まれるサンプルを第1のネットワークに入力することで、第1のエンコーダから出力される第1の特徴量と、第2のエンコーダから出力される第1の疑似特徴量との誤差が最小化するように、第1のエンコーダ、第1のデコーダ、第2のエンコーダおよび第2のデコーダのモデルパラメータを最適化するように構成されており、第2のデータセットに含まれるサンプルを第2のネットワークに入力することで、第2のエンコーダから出力される第1の特徴量と、第1のエンコーダから出力される第1の疑似特徴量との誤差が最小化するように、第1のエンコーダ、第1のデコーダ、第2のエンコーダおよび第2のデコーダのモデルパラメータを最適化するように構成されていてもよい。この構成によれば、サンプルから算出される第1の特徴量と、当該第1の特徴量からデコーダおよびエンコーダを通じて算出される第1の疑似特徴量との誤差を最小化することで、推定モデルのモデルパラメータを効率的に学習できる。
【0012】
学習部は、エンコーダからの出力が入力される識別器を、第1のデータセットに含まれるサンプルデータおよび対応する正解に基づいて学習するようにさらに構成されていてもよい。推定モデルは、識別器をさらに含んでいてもよい。この構成によれば、推定モデルによる推定(識別)についての学習を効率的に行うことができる。
【0013】
本発明の別の一例に従う推定装置は、正解が付与された複数のサンプルデータを含む第1のデータセット、および、正解が付与されていない複数のサンプルデータを含む第2のデータセットを用いた学習によって生成された推定モデルを保持する記憶部と、第2のデータセットに属し得る推定対象データを推定モデルに入力して、推定結果を決定する推定部とを含む。推定モデルは、サンプルデータから、第1のデータセットおよび第2のデータセットに非依存の第1の特徴量、および、第1のデータセットまたは第2のデータセットに依存する第2の特徴量、を算出するエンコーダを含む。エンコーダは、第1のデータセットに含まれる第1のサンプルデータと、第2のデータセットに含まれる、第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、第1のサンプルデータおよび第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるように学習されている。
【0014】
本発明のさらに別の一例に従う推定方法は、正解が付与された複数のサンプルデータを含む第1のデータセット、および、正解が付与されていない複数のサンプルデータを含む第2のデータセットを用いて、推定モデルを生成するステップと、第2のデータセットに属し得る推定対象データを推定モデルに入力して、推定結果を決定するステップとを含む。推定モデルは、サンプルデータから、第1のデータセットおよび第2のデータセットに非依存の第1の特徴量、および、第1のデータセットまたは第2のデータセットに依存する第2の特徴量、を算出するエンコーダを含む。推定モデルを生成するステップは、第1のデータセットに含まれる第1のサンプルデータと、第2のデータセットに含まれる、第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、第1のサンプルデータおよび第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるようにエンコーダを学習するステップを含む。
【発明の効果】
【0015】
本発明によれば、従来手法に比較して、より推定性能を高めた学習済みモデルを生成できる。
【図面の簡単な説明】
【0016】
図1】本実施の形態に係るロボットシステムの構成例を示す模式図である。
図2】本実施の形態に係る推定モデルの構築および運用に係る処理手順を示す模式図である。
図3】本実施の形態に係るロボットシステムのハードウェア構成例を示す模式図である。
図4】本発明の関連技術に従うUnsupervised Domain Adaptation問題の解決手法の一例を説明するための図である。
図5】本実施の形態に係るcycleGANによりエンコーダを構築するための学習用ネットワークの一例を示す模式図である。
図6図5に示すcycleGANによるエンコーダの構築を概念的に説明するための図である。
図7】本実施の形態に係るcycleGANによりエンコーダを構築するための学習用ネットワークの一例を示す模式図である。
図8図7に示される学習用ネットワークを利用した主目的識別器を構築する方法の一例を示す模式図である。
図9図7に示される学習用ネットワークを利用して構築されたエンコーダの運用フェーズでのネットワークの一例を示す模式図である。
図10】本実施の形態に係る推定モデルを生成するための処理手順を示すフローチャートである。
図11】本実施の形態に係る推定モデルにおけるモデルパラメータ共有の一例を説明するための図である。
図12】本実施の形態に係る推定モデルの性能結果の実験例を説明するための模式図である。
図13図12に示す実験における性能評価の一例を示す図である。
図14】本実施の形態に係る推定モデルを利用する推定システムの構成例を示す模式図である。
【発明を実施するための形態】
【0017】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0018】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
【0019】
図1は、本実施の形態に係るロボットシステム1の構成例を示す模式図である。図1を参照して、ロボットシステム1は、画像認識によってワーク8の位置および/または種類を特定し、アームの先端に配置されたハンド6によりワーク8を把持して、必要な操作を行う。
【0020】
ロボット2は、一例として、多関節型ロボットであり、関節に相当する複数の軸4を有しており、それぞれの軸4が回転または移動することによって、先端に配置されたハンド6を任意の位置および任意の姿勢に配置できる。ハンド6の近傍にカメラ20が配置されており、カメラ20により撮像された画像に対して認識処理が行われることで、ワーク8の位置および/または種類などが特定(推定)される。
【0021】
本実施の形態に係るロボットシステム1では、後述するような機械学習によって事前に構築された学習済みモデルである推定モデルが用いられる。推定モデルの推定精度を高めるためには、多数の教師データを含む学習用データセットを用いて機械学習を行う必要がある。
【0022】
一方で、教師データには正解(ラベル)を予め付与しておく必要があり、多数の教師データを用意することは容易ではない。そのため、シミュレーション上で予め位置および種類(すなわち、正解)が既知のワークを配置するとともに、当該ワークを仮想的に撮像(レンダリングあるいはビジュアライゼーション)することで、正解が付与された画像(すなわち、教師データ)を多数用意するような手法が用いられることが多い。
【0023】
このようなシミュレーションにより生成された多数の教師データを用いて、推定モデルを構築することで、推定精度を高めることができる。
【0024】
しかしながら、実際の運用においては、カメラ20でワーク8が撮像される。シミュレーションにより生成された画像とカメラ20で実際に撮像された画像とは、撮像条件などが全く同一ではないので、シミュレーションにより生成された多数の教師データを用いて構築した推定モデルをそのまま実運用に用いることはできない場合が多い。
【0025】
本実施の形態は、ある条件下で生成された教師データを用いて構築した推定モデルを必ずしも同一とは限らない条件下で運用することが可能な構成を提供する。
【0026】
図2は、本実施の形態に係る推定モデルの構築および運用に係る処理手順を示す模式図である。図2を参照して、まず、シミュレーション装置200が生成した画像を含むデータセット(以下、「ソースデータセット30」とも称す。)を用いて、推定モデル40を構築する。
【0027】
この構築された推定モデル40を、実際の運用で用いられる画像を含むデータセット(以下、「ターゲットデータセット50」とも称す。)を用いて適合化することで、推定モデル60を生成する。実際の運用では、この生成された推定モデル60に対して、データ(以下、「推定対象データ70」とも称す。)が入力されることで、推定結果62が出力される。推定対象データ70は、ターゲットデータセット50に属し得るサンプルデータに相当する。
【0028】
なお、必ずしも推定モデル40を構築する必要はなく、ソースデータセット30およびターゲットデータセット50から、推定モデル60を直接構築してもよい。
【0029】
以下、本発明の具体的な応用例であるロボットシステム1の詳細な構成および処理について説明する。
【0030】
<B.ロボットシステムのハードウェア構成>
次に、図1に示すロボットシステム1のハードウェア構成の一例について説明する。
【0031】
図3は、本実施の形態に係るロボットシステム1のハードウェア構成例を示す模式図である。図3を参照して、ロボットシステム1は、ロボット2およびロボット2を制御するロボットコントローラ100を含む。
【0032】
ロボット2は、カメラ20に加えて、サーボドライバ12およびモータ14のセットを軸の数だけ有している。
【0033】
ロボットコントローラ100は、本実施の形態に係る推定システムを構成する装置であり、カメラ20で撮像された画像に基づいて、ロボット2を制御する。より具体的には、ロボットコントローラ100は、カメラ20から撮像された画像に対して認識処理を行い、その認識結果に応じて、1または複数のサーボドライバ12へ指令を出力する。サーボドライバ12の各々が指令に従って電力を供給することで、対応付けられているモータ14が回転駆動され、モータ14と機械的に結合されているロボット2の関節あるいはアームが動作する。
【0034】
ロボットコントローラ100は、典型的には、汎用的なアーキテクチャに従うコンピュータ(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現される。
【0035】
ロボットコントローラ100は、コンポーネントとして、プロセッサ102と、メインメモリ104と、ストレージ110と、通信インターフェイス122と、入力部124と、出力部126と、カメラインターフェイス128と、モータインターフェイス130とを含む。
【0036】
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。
【0037】
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。プロセッサ102は、ストレージ110に格納された各種プログラムを読出して、メインメモリ104に展開して実行することで、後述するような各種処理を実現する。
【0038】
ストレージ110には、基本的な機能を実現するためのOS112に加えて、機械学習プログラム114と、推定モデルを規定するモデルパラメータ116と、ロボット2を制御するための制御アプリケーション118とが格納されている。ストレージ110は、推定モデルを保持する記憶部に相当する。また、ストレージ110には、ソースデータセット30が格納されることもある。
【0039】
プロセッサ102が機械学習プログラム114を実行することで、学習処理を実行して、推定モデル60を生成する。また、プロセッサ102が制御アプリケーション118を実行することで、推定対象データ70を推定モデル60に入力して、推定結果を決定する推定部として機能する。
【0040】
通信インターフェイス122は、任意のネットワークを介して他の装置との間のデータの遣り取りを仲介する。
【0041】
入力部124は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部126は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ102からの処理結果などを出力する。
【0042】
カメラインターフェイス128は、カメラ20により撮像された画像を受信するとともに、カメラ20に対して必要な指令を出力する。
【0043】
モータインターフェイス130は、プロセッサ102からの指示に従って、サーボドライバ12へ必要な指令を出力する。
【0044】
ロボットコントローラ100のプログラムは、コンピュータ読み出し可能な記録媒体(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るロボットコントローラ100が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0045】
図3には、プロセッサ102がプログラムを実行することで、ロボットコントローラ100として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
【0046】
<C.Unsupervised Domain Adaptation問題>
先に、Unsupervised Domain Adaptation問題について説明する。図1および図2を参照して説明したように、互いに異なるバイアス(傾向)をもつデータセット(ソースデータセット30およびターゲットデータセット50)が存在するとする。ここで、バイアスとは、典型的には、ソースデータセット30が取得された環境(以下、「ソースドメイン」とも称す。)と、ターゲットデータセット50が取得された環境(以下、「ターゲットドメイン」とも称す。)との相違などによるものである。
【0047】
ソースデータセット30は、基本的には、正解が付与された複数のサンプルデータから構成される。但し、ソースデータセット30には、正解が付与されていないサンプルデータが含まれていてもよい。ソースデータセット30は、正解が付与された複数のサンプルデータを含む第1のデータセットに相当する。
【0048】
ターゲットデータセット50は、基本的には、正解が付与されていない複数のサンプルデータから構成される。但し、ターゲットデータセット50には、正解が付与されたサンプルデータが含まれていてもよい。ターゲットデータセット50は、正解が付与されていない複数のサンプルデータを含む第2のデータセットに相当する。
【0049】
図1および図2に示す例を参照すると、シミュレーションにより生成するという環境がソースドメインであり、カメラ20により実際に撮像するという環境がターゲットドメインに相当する。
【0050】
ソースドメインの学習用データセットは(x,y)の組で与えられ、ターゲットドメインの学習用データセットは(x)のみで与えられるとする。ここで、xおよびxは、ソースドメインおよびターゲットドメインに含まれるサンプルデータの入力ベクトルをそれぞれ示し、tは、対応するtに付与された正解(ラベル)を意味する。すなわち、ターゲットドメインに含まれるサンプルデータには、正解(ラベル)が付与されていないとする。
【0051】
このような前提において、ターゲットドメインに属するサンプルデータ群Xに付与されるべき正解Yを推定できる学習済みモデルを構築することが、Unsupervised Domain Adaptation問題の目標である。すなわち、正解Yが存在しない状態で、分布Pr(y|X)を算出できる学習済みモデルを構築することが目標となる。
【0052】
関連技術に従うUnsupervised Domain Adaptation問題の解決手法は、同じ推定値となるサンプルデータx~Xとサンプルデータx~Xとを同じ特徴量zに射影するエンコーダE(z|x)を構築するというものである。
【0053】
ここで、同じ推定値となるペア(x,x)は特定できない、すなわちいずれのペア(x,x)が同じ推定値となるのかは未知である。そのため、個々のペアが同じ特徴量となるように、エンコーダを学習するのではなく、群として同じ特徴量となるように、エンコーダを学習する。すなわち、群として、分布Pr(y|x~X)と分布Pr(y|x~X)との形状が一致するように、エンコーダを学習する。
【0054】
図4は、本発明の関連技術に従うUnsupervised Domain Adaptation問題の解決手法の一例を説明するための図である。図4を参照して、ソースデータセット30およびターゲットデータセット50を想定する。ソースデータセット30とターゲットデータセット50との間には、未知のバイアス(あるいは、未知のバイアス差)が存在している。
【0055】
ソースデータセット30(サンプルデータ群X)は、第1の正解(ラベル)が付与されている1または複数のサンプルデータ32と、第2の正解(ラベル)が付与されている1または複数のサンプルデータ34とを含むものとする。
【0056】
一方、ターゲットデータセット50(サンプルデータ群X)は、第1の正解(ラベル)が付与されるべき1または複数のサンプルデータ52と、第2の正解(ラベル)が付与されるべき1または複数のサンプルデータ54とを含むものとする。但し、ターゲットデータセット50に含まれるサンプルデータの正解は未知である。
【0057】
ここで、ソースデータセット30およびターゲットデータセット50に含まれるサンプルデータをエンコーダによる特徴量空間に射影したときの分布に着目する。ソースデータセット30に含まれるサンプルデータ32および34は、それぞれ領域36および38に投影され、ターゲットデータセット50に含まれるサンプルデータ52および54は、それぞれ領域56および58に投影されたとする。
【0058】
エンコーダは、領域36および38の分布と領域56および58の分布との形状が一致するように学習される。その上で、第1の正解(ラベル)に対応する領域36および38と、第2の正解(ラベル)が付与されている領域56および58とを識別する主目的識別器64も学習される。エンコーダおよび主目的識別器64から推定モデル60(図6参照)が生成される。
【0059】
正解が付与されているサンプルデータを含むソースデータセット30が存在していても、異なるバイアスをもつデータについては、推定精度が低下するが、上述したような手法によって構築されたエンコーダを適用することで、このような推定精度の低下を防止できる。
【0060】
<D.解決手段>
(d1:課題の発見)
本願発明者らは、鋭意研究の結果、上述したような手法における本質的な課題およびそれに対する解決手段を見出した。すなわち、上述した手法は、暗黙的に分布Pr(y|x~X)と分布Pr(y|x~X)との形状が一致していることを仮定としているが、実際の正解Yは未知であるので、このような仮定は、特殊な状況を除いて、偶然でしか成り立たないという本質的な問題がある。
【0061】
例えば、上述の図1および図2を参照して説明したように、シミュレーションにより生成された画像とカメラ20で実際に撮像された画像との間で、正解の頻度分布を一致させるようなことは困難である。
【0062】
その結果、図4に示すように、本来、領域56に射影されなければならないサンプルデータ52のうち、誤って領域58に射影されてしまうもの(誤射影サンプルデータ53)が発生したり、領域58に射影されなければならないサンプルデータ54のうち、誤って領域56に射影されてしまうもの(誤射影サンプルデータ55)が発生したりし得る。なお、ターゲットデータセット50に含まれるサンプルデータには正解が付与されていないので、このような誤った射影を検出することは理論上不可能である。
【0063】
(d2:解決手段の概要)
本実施の形態に係る解決手段においては、分布Pr(y|x~X)と分布Pr(y|x~X)との形状が一致しているかどうかにかかわらず、サンプルデータx~Xおよびサンプルデータx~Xを同じ特徴量zに射影するエンコーダE(z|x)を学習により構築する。
【0064】
より具体的には、cycleGANと呼ばれる手法を用いて、擬似的にサンプルデータxと同じ推定値yとなるであろう1次疑似サンプルデータx’を生成する。そして、サンプルデータxから算出した特徴量zと1次疑似サンプルデータx’から算出した特徴量z’とが類似した値を示すように、誤差を最小化する。
【0065】
本手法においては、同じ推定値となるペアを一致させることを目的にエンコーダを学習する。すなわち、同じ推定値となるサンプルデータx~Xとサンプルデータx~Xとが同じ特徴量zに射影されるようになることを目的にエンコーダを学習する。このような学習方法を採用することで、分布Pr(y|x~X)と分布Pr(y|x~X)との形状が異なっていても推定精度を高めることができる。
【0066】
(d3:基本学習用ネットワーク)
図5は、本実施の形態に係るcycleGANによりエンコーダを構築するための学習用ネットワーク80の一例を示す模式図である。図5を参照して、学習用ネットワーク80は、一種の敵対的ネットワークであり、2種類のエンコーダとデコーダとの組を互いに組み合わせたものである。より具体的には、学習用ネットワーク80は、エンコーダ82とデコーダ84との組、および、エンコーダ86とデコーダ88との組を含む。
【0067】
エンコーダ82は、ソースデータセット30に含まれるサンプルデータから特徴量を算出するための学習済みモデル(StoZ)であり、デコーダ84は、特徴量からターゲットデータセット50に含まれるサンプルデータを推定するための学習済みモデル(ZtoT)である。
【0068】
同様に、エンコーダ86は、ターゲットデータセット50に含まれるサンプルデータから特徴量を算出するための学習済みモデル(TtoZ)であり、デコーダ88は、特徴量からソースデータセット30に含まれるサンプルデータを推定するための学習済みモデル(ZtoS)である。
【0069】
ソースデータセット30に含まれるサンプルデータx~Xは、エンコーダ82とデコーダ84との組に入力され、その出力結果は、エンコーダ86とデコーダ88との組に入力される。
【0070】
同様に、ターゲットデータセット50に含まれるサンプルデータx~Xは、エンコーダ86とデコーダ88との組に入力され、その出力結果は、エンコーダ82とデコーダ84との組に入力される。
【0071】
なお、学習用ネットワーク80は、エンコーダ82,86およびデコーダ84,88の各々を2個ずつ含んでいるが、各々はモデルパラメータを共有している。そのため、同一の参照符号が付されているエンコーダおよびデコーダ同士は、同一のモデルである。
【0072】
ソースデータセット30に含まれるサンプルデータxがエンコーダ82に入力されることで、サンプルデータxの特徴量zが算出される。特徴量zがデコーダ84に入力されることで、ターゲットデータセット50に属するサンプルデータに模した1次疑似サンプルデータx’が算出される。
【0073】
さらに、1次疑似サンプルデータx’がエンコーダ86に入力されることで、1次疑似サンプルデータx’の特徴量z’が算出される。特徴量z’がデコーダ88に入力されることで、ソースデータセット30に属するサンプルデータを模した2次疑似サンプルデータx”が算出される。
【0074】
一方、ターゲットデータセット50に含まれるサンプルデータxがエンコーダ86に入力されることで、サンプルデータxの特徴量ztが算出される。特徴量ztがデコーダ88に入力されることで、ソースデータセット30に属するサンプルデータに模した1次疑似サンプルデータx’が算出される。
【0075】
さらに、1次疑似サンプルデータx’がエンコーダ82に入力されることで、1次疑似サンプルデータx’の特徴量z’が算出される。特徴量z’がデコーダ84に入力されることで、ターゲットデータセット50に属するサンプルデータを模した2次疑似サンプルデータx”tが算出される。
【0076】
このような敵対的ネットワークである学習用ネットワーク80は、以下のような手順(1-1),(1-2),(2-1),(2-2),(3-1),(3-2)で学習される。なお、手順(3-1),(3-2)の実行は任意である。
【0077】
(1-1)ソースデータセット30に属するサンプルデータxと算出される2次疑似サンプルデータx”との誤差を第1-1の損失関数とし、第1-1の損失関数の値が最小化するようにエンコーダ82,86およびデコーダ84,88のモデルパラメータを最適化する。
【0078】
(1-2)ターゲットデータセット50に属するサンプルデータxと算出される2次疑似サンプルデータx”tとの誤差を第1-2の損失関数とし、第1-2の損失関数の値が最小化するようにエンコーダ82,86およびデコーダ84,88のモデルパラメータを最適化する。
【0079】
(2-1)図示しない識別器(Discriminator)を用いて、ソースデータセット30に属するサンプルデータxと1次疑似サンプルデータx’とを区別できることを第2-1の損失関数とし、第2-1の損失関数の値が最小化するように(すなわち、見分けがつかないように)、minmax戦略により、エンコーダ82,86およびデコーダ84,88のモデルパラメータを最適化する。
【0080】
(2-2)(2-1)と同様の識別器を用いて、ターゲットデータセット50に属するサンプルデータxと1次疑似サンプルデータx’とを区別できることを第2-2の損失関数とし、第2-2の損失関数の値が最小化するように(すなわち、見分けがつかないように)、minmax戦略により、エンコーダ82,86およびデコーダ84,88のモデルパラメータを最適化する。
【0081】
ここで、同一性損失(identity loss)を損失関数として、さらにモデルパラメータを最適化してもよい。より具体的には、以下のような手順(3-1)および(3-2)で学習されてもよい。
【0082】
(3-1)ソースデータセット30に含まれるサンプルデータxと、そのサンプルデータxをエンコーダ86およびデコーダ88に入力して算出される1次疑似サンプルデータx’との間の誤差を第3-1の損失関数とし、第3-1の損失関数の値が最小化するようにエンコーダ86およびデコーダ88のモデルパラメータを最適化する。
【0083】
(3-2)ターゲットデータセット50に含まれるサンプルデータxと、そのサンプルデータxをエンコーダ82およびデコーダ84に入力して算出される1次疑似サンプルデータx’との間の誤差を第3-2の損失関数とし、第3-2の損失関数の値が最小化するようにエンコーダ82およびデコーダ84のモデルパラメータを最適化する。
【0084】
以上の手順によって、敵対的ネットワークである学習用ネットワーク80の各モデルパラメータが最適化される。
【0085】
図6は、図5に示すcycleGANによるエンコーダの構築を概念的に説明するための図である。図6を参照して、ソースデータセット30およびターゲットデータセット50を想定する。ソースデータセット30とターゲットデータセット50との間には、未知のバイアス(あるいは、未知のバイアス差)が存在している。
【0086】
ソースデータセット30(サンプルデータ群X)は、第1の正解(ラベル)が付与されている1または複数のサンプルデータ32と、第2の正解(ラベル)が付与されている1または複数のサンプルデータ34とを含むものとする。
【0087】
一方、ターゲットデータセット50(サンプルデータ群X)は、第1の正解(ラベル)が付与されるべき1または複数のサンプルデータ52と、第2の正解(ラベル)が付与されるべき1または複数のサンプルデータ54とを含むものとする。但し、ターゲットデータセット50に含まれるサンプルデータの正解は未知である。
【0088】
ここで、ソースデータセット30およびターゲットデータセット50に含まれるサンプルデータのうち、第1の正解(ラベル)を推定値とするサンプルデータ32とサンプルデータ52とのペアが同じ特徴量66となるように、エンコーダを学習する。
【0089】
同様に、ソースデータセット30およびターゲットデータセット50に含まれるサンプルデータのうち、第2の正解(ラベル)を推定値とするサンプルデータ34とサンプルデータ54とのペアが同じ特徴量68となるように、エンコーダを学習する。
【0090】
すなわち、図5に示される学習用ネットワーク80は、ソースデータセット30に含まれるサンプルデータとターゲットデータセットに含まれるサンプルデータとのペアに着目して、一方のサンプルデータから出発して特徴量空間を経て他方の疑似サンプルデータ(1次疑似サンプルデータ)を算出するとともに、当該他方の疑似サンプルデータ(1次疑似サンプルデータ)から出発して特徴量空間を経て一方の疑似サンプルデータ(2次疑似サンプルデータ)を算出する。このような双方向の射影(すなわち、双方向の経路に沿った算出)によっても、いずれかのデータセットに含まれるサンプルデータと対応する2次疑似サンプルデータとが同一であることなどを目的として、敵対的な学習が実行される。
【0091】
このように、図5に示される学習用ネットワーク80においては、同じ推定値となるペアを一致させることを目的にエンコーダを学習する。すなわち、同じ推定値となるサンプルデータx~Xとサンプルデータx~Xとが同じ特徴量zに射影されるようになることを目的にエンコーダを学習する。このような学習方法を採用することで、分布Pr(y|x~X)と分布Pr(y|x~X)との形状の一致を前提とすることなく、精度の高いエンコーダを構築できる。
【0092】
(d4:改良学習用ネットワーク)
本願発明者らは、さらなる鋭意研究の結果、図5に示される学習用ネットワーク80は、以下のような点においてさらなる改良が可能であることを見出した。
【0093】
図7は、本実施の形態に係るcycleGANによりエンコーダを構築するための学習用ネットワーク90の一例を示す模式図である。図7を参照して、学習用ネットワーク90は、一種の敵対的ネットワークであり、2種類のエンコーダとデコーダとの組を互いに組み合わせたものである。敵対的ネットワークである学習用ネットワーク90により、推定モデル60を生成する。
【0094】
より具体的には、学習用ネットワーク90は、エンコーダ92とデコーダ94との組(エンコーダ・デコーダ)、および、エンコーダ96とデコーダ98との組(エンコーダ・デコーダ)を含む。
【0095】
図7に示す学習用ネットワーク90は、図5に示す学習用ネットワーク80に比較して、エンコーダ92,96が2種類の特徴量zおよび特徴量ζを出力する点が異なっている。エンコーダ92,96によるエンコード結果を2種類の特徴量zおよび特徴量ζとしたのは、以下のような理由による。
【0096】
変数aから変数bを推定する問題を、変数bを教師データとして学習した場合、本来的に変数aと変数bとの間の依存関係の有無にかかわらず、変数aは変数bに依存するようになる。図5に示す学習用ネットワーク80についてみれば、特徴量zは、ソースドメインおよびターゲットドメインの別によらず、同じ値をもつべきであるが、実際には、特徴量zからサンプルデータxおよびサンプルデータxを予測する部分があるため、予測経路に応じて、サンプルデータxまたはサンプルデータxに依存してしまう。
【0097】
そのため、この依存関係を保持する特徴量ζと、予測経路に非依存な特徴量zとに分離することで、全体としてみた(z,ζ)はドメインに依存するものの、特徴量z単体ではドメイン非依存にすることができる。これによって、以下に説明するような第4-1および第4-2の損失関数の最小化においてドメイン非依存を実現できる。
【0098】
言い換えれば、特徴量ζがコンテンツの情報を示し、特徴量zがドメイン別の情報を示すと考えることもできる。
【0099】
このように、エンコーダ92,96は、サンプルデータから、ソースデータセット30およびターゲットデータセット50に非依存の特徴量z(特徴量zおよびz)、および、ソースデータセット30またはターゲットデータセット50に依存する特徴量ζを算出する。
【0100】
そして、ソースデータセット30に含まれるサンプルデータxと、ターゲットデータセット50に含まれる、サンプルデータxとに付与されている正解と同じ正解が付与されるべき(すなわち、同じ推定値となる)サンプルデータxとのペアについて、サンプルデータxおよびサンプルデータxのいずれからも同じ特徴量z(非依存の特徴量zおよびz)が算出されるように、エンコーダ92,96を学習する。
【0101】
すなわち、同じ推定値となるサンプルデータx~Xとサンプルデータx~Xとが同じ特徴量z(非依存の特徴量zおよびz)に射影されるようになることを目的にエンコーダを学習する。
【0102】
このように、学習用ネットワーク90においては、ソースデータセット30およびターゲットデータセット50に非依存の特徴量z(特徴量zおよびz)に着目して、モデルパラメータを最適化する。
【0103】
より具体的には、cycleGANと呼ばれる手法を用いて、擬似的にサンプルデータxと同じ推定値yとなるであろう1次疑似サンプルデータx’を生成する。そして、サンプルデータxから算出した特徴量zと1次疑似サンプルデータx’から算出した特徴量z’とが類似した値を示すように、誤差を最小化する。
【0104】
学習用ネットワーク90を用いた学習においては、ソースデータセット30に含まれるサンプルデータxは、エンコーダ92とデコーダ94との組(第1のエンコーダ・デコーダ)、および、エンコーダ96とデコーダ98との組(第2のエンコーダ・デコーダ)の順で配置されたネットワーク(第1のネットワーク)に入力される。
【0105】
一方、ターゲットデータセット50に含まれるサンプルデータxは、エンコーダ96とデコーダ98との組(第2のエンコーダ・デコーダ)、および、エンコーダ92とデコーダ94との組(第1のエンコーダ・デコーダ)の順で配置されたネットワーク(第2のネットワーク)に入力される。
【0106】
図7に示す敵対的ネットワークである学習用ネットワーク90は、以下のような手順(1-1),(1-2),(2-1),(2-2),(3-1),(3-2),(4-1),(4-2),(5)で学習される。なお、手順(3-1),(3-2)の実行は任意である。
【0107】
(1-1)ソースデータセット30に属するサンプルデータxと算出される2次疑似サンプルデータx”との誤差を第1-1の損失関数とし、第1-1の損失関数の値が最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する。
【0108】
(1-2)ターゲットデータセット50に属するサンプルデータxと算出される2次疑似サンプルデータx”tとの誤差を第1-2の損失関数とし、第1-2の損失関数の値が最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する。
【0109】
(2-1)図示しない識別器を用いて、ソースデータセット30に属するサンプルデータxと1次疑似サンプルデータx’とを区別できることを第2-1の損失関数とし、第2-1の損失関数の値が最小化するように(すなわち、見分けがつかないように)、minmax戦略により、エンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する。
【0110】
(2-2)(2-1)と同様の識別器を用いて、ターゲットデータセット50に属するサンプルデータxと1次疑似サンプルデータx’とを区別できることを第2-2の損失関数とし、第2-2の損失関数の値が最小化するように(すなわち、見分けがつかないように)、minmax戦略により、エンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する。
【0111】
ここで、同一性損失(identity loss)を損失関数として、さらにモデルパラメータを最適化してもよい。より具体的には、以下のような手順(3-1)および(3-2)で学習されてもよい。
【0112】
(3-1)ソースデータセット30に含まれるサンプルデータxと、そのサンプルデータxをエンコーダ96およびデコーダ98に入力して算出される1次疑似サンプルデータx’との間の誤差を第3-1の損失関数とし、第3-1の損失関数の値が最小化するようにエンコーダ96およびデコーダ98のモデルパラメータを最適化する。
【0113】
(3-2)ターゲットデータセット50に含まれるサンプルデータxと、そのサンプルデータxをエンコーダ92およびデコーダ94に入力して算出される1次疑似サンプルデータx’との間の誤差を第3-2の損失関数とし、第3-2の損失関数の値が最小化するようにエンコーダ92およびデコーダ94のモデルパラメータを最適化する。
【0114】
次に、特徴量zに着目して学習される。
【0115】
(4-1)ソースデータセット30に属するサンプルデータxについて、エンコーダ92から出力される特徴量zと、後段にあるエンコーダ96から出力される疑似特徴量z’との誤差を第4-1の損失関数とし、第4-1の損失関数の値が最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する。
【0116】
(4-2)ターゲットデータセット50に属するサンプルデータxについて、エンコーダ96から出力される特徴量zと、後段にあるエンコーダ92から出力される疑似特徴量z’との誤差を第4-2の損失関数とし、第4-2の損失関数の値が最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する。
【0117】
さらに、主目的識別器64についての学習が行われる。
【0118】
(5)ソースデータセット30に属するサンプルデータxについて、エンコーダ92から出力される特徴量zを主目的識別器64に入力して出力される推定値yと、サンプルデータxの正解yとの誤差を第5の損失関数とし、第5の損失関数の値が最小化するようにエンコーダ92および主目的識別器64のモデルパラメータを最適化する。このように、エンコーダ92から出力される特徴量zが入力される主目的識別器64を、ソースデータセット30に含まれるサンプルデータxおよび対応する正解に基づいて学習する。
【0119】
なお、ターゲットデータセット50に含まれるサンプルデータxのうち正解が付与されているものを利用して、処理(5)を実行してもよい。すなわち、主目的識別器64は、各データセット(ソースデータセット30および/またはターゲットデータセット50)に含まれるサンプルデータおよび対応する正解に基づいて学習してもよい。
【0120】
図8は、図7に示される学習用ネットワーク90を利用した主目的識別器64を構築する方法の一例を示す模式図である。図8を参照して、処理(5)は、エンコーダ92および主目的識別器64に着目して実行される。
【0121】
以上の手順によって、敵対的ネットワークである学習用ネットワーク90の各モデルパラメータが最適化される。
【0122】
図9は、図7に示される学習用ネットワーク90を利用して構築されたエンコーダの運用フェーズでのネットワークの一例を示す模式図である。図9を参照して、運用フェーズにおいては、エンコーダ96および主目的識別器64からなるネットワークが推定モデルとして用いられる。すなわち、エンコーダ96に任意のサンプルデータxを入力して算出される特徴量z(特徴量ζは使用しない)を主目的識別器64に入力することで、推定値yが算出される。
【0123】
図10は、本実施の形態に係る推定モデルを生成するための処理手順を示すフローチャートである。図10に示す各ステップは、典型的には、プロセッサ102が機械学習プログラム114を実行することで実現される(図3参照)。
【0124】
図10を参照して、ソースデータセット30およびターゲットデータセット50が用意される(ステップS100)。
【0125】
プロセッサ102は、図7に示される学習用ネットワーク90を構成するエンコーダ92,96およびデコーダ94,98のモデルパラメータを初期化する(ステップS102)。そして、プロセッサ102は、以下のようなモデルパラメータの最適化処理を実行する。
【0126】
プロセッサ102は、ソースデータセット30に属するサンプルデータxと算出される2次疑似サンプルデータx”との誤差を最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する(ステップS104)。また、プロセッサ102は、ターゲットデータセット50に属するサンプルデータxと算出される2次疑似サンプルデータx”tとの誤差を最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する(ステップS106)。
【0127】
プロセッサ102は、ステップS104およびS106の最適化処理が予め定められた回数だけ繰り返し実行されたか否かを判断する(ステップS108)。ステップS104およびS106の最適化処理が予め定められた回数だけ繰り返し実行されていなければ(ステップS108においてNO)、ステップS104およびS106の処理が繰り返される。
【0128】
ステップS104およびS106の最適化処理が予め定められた回数だけ繰り返し実行されていれば(ステップS108においてYES)、プロセッサ102は、識別器を用いて、ソースデータセット30に属するサンプルデータxと1次疑似サンプルデータx’との間で見分けがつかないように、エンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する(ステップS110)。また、プロセッサ102は、識別器を用いて、ターゲットデータセット50に属するサンプルデータxと1次疑似サンプルデータx’との間で見分けがつかないように、エンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する(ステップS112)。
【0129】
プロセッサ102は、ステップS110およびS112の最適化処理が予め定められた回数だけ繰り返し実行されたか否かを判断する(ステップS114)。ステップS110およびS112の最適化処理が予め定められた回数だけ繰り返し実行されていなければ(ステップS114においてNO)、ステップS110およびS112の処理が繰り返される。
【0130】
ステップS110およびS112の最適化処理が予め定められた回数だけ繰り返し実行されていれば(ステップS114においてYES)、プロセッサ102は、ソースデータセット30に含まれるサンプルデータxと、そのサンプルデータxをエンコーダ96およびデコーダ98に入力して算出される1次疑似サンプルデータx’との間の誤差を最小化するようにエンコーダ96およびデコーダ98のモデルパラメータを最適化する(ステップS116)。また、プロセッサ102は、ターゲットデータセット50に含まれるサンプルデータxと、そのサンプルデータxをエンコーダ92およびデコーダ94に入力して算出される1次疑似サンプルデータx’との間の誤差を最小化するようにエンコーダ92およびデコーダ94のモデルパラメータを最適化する(ステップS118)。
【0131】
プロセッサ102は、ステップS116およびS118の最適化処理が予め定められた回数だけ繰り返し実行されたか否かを判断する(ステップS120)。ステップS116およびS118の最適化処理が予め定められた回数だけ繰り返し実行されていなければ(ステップS120においてNO)、ステップS116およびS118の処理が繰り返される。
【0132】
ステップS116およびS118の最適化処理が予め定められた回数だけ繰り返し実行されていれば(ステップS120においてYES)、プロセッサ102は、ソースデータセット30に属するサンプルデータxについて、エンコーダ92から出力される特徴量zと、後段にあるエンコーダ96から出力される疑似特徴量z’との誤差を最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する(ステップS122)。また、プロセッサ102は、ターゲットデータセット50に属するサンプルデータxについて、エンコーダ96から出力される特徴量zと、後段にあるエンコーダ92から出力される疑似特徴量z’との誤差を最小化するようにエンコーダ92,96およびデコーダ94,98のモデルパラメータを最適化する(ステップS124)。
【0133】
プロセッサ102は、ステップS122およびS124の最適化処理が予め定められた回数だけ繰り返し実行されたか否かを判断する(ステップS126)。ステップS122およびS124の最適化処理が予め定められた回数だけ繰り返し実行されていなければ(ステップS126においてNO)、ステップS122およびS124の処理が繰り返される。
【0134】
ステップS122およびS124の最適化処理が予め定められた回数だけ繰り返し実行されていれば(ステップS126においてYES)、プロセッサ102は、ソースデータセット30に属するサンプルデータxについて、エンコーダ92から出力される特徴量zを主目的識別器64に入力して出力される推定値yと、サンプルデータxの正解yとの誤差を最小化するようにエンコーダ92および主目的識別器64のモデルパラメータを最適化する(ステップS128)。
【0135】
プロセッサ102は、ステップS128の最適化処理が予め定められた回数だけ繰り返し実行されたか否かを判断する(ステップS130)。ステップS128の最適化処理が予め定められた回数だけ繰り返し実行されていなければ(ステップS130においてNO)、ステップS128の処理が繰り返される。
【0136】
ステップS128の最適化処理が予め定められた回数だけ繰り返し実行されていれば(ステップS130においてYES)、プロセッサ102は、エンコーダ96および主目的識別器64からなるネットワークが推定モデルとして出力する(ステップS132)。
【0137】
以上により、推定モデルの生成処理は終了する。そして、生成された推定モデルを用いた推定処理の運用が可能となる。
【0138】
(d5:モデルパラメータの共有)
推定モデル40(学習用ネットワーク90)のモデルパラメータの一部を共有してもよい。
【0139】
図11は、本実施の形態に係る推定モデルにおけるモデルパラメータ共有の一例を説明するための図である。図11を参照して、例えば、エンコーダ92とデコーダ94との組(エンコーダ・デコーダ)、および、エンコーダ96とデコーダ98との組(エンコーダ・デコーダ)の間で、特徴量ζの算出に係るモデルパラメータを共有してもよい。なお、説明の便宜上、特徴量zの算出に係る部分は図示していない。
【0140】
図11(A)に示す例においては、エンコーダ92とエンコーダ96との間でモデルパラメータの一部が共有されている。
【0141】
より具体的には、エンコーダ92は、入力側の内部処理を規定する共有パラメータ921と、出力側の内部処理を規定する個別パラメータ922とを含む。同様に、エンコーダ96は、入力側の内部処理を規定する共有パラメータ961と、出力側の内部処理を規定する個別パラメータ962とを含む。
【0142】
エンコーダ92およびエンコーダ96をニューラルネットワークで構成した場合には、個別パラメータ922および個別パラメータ962は、最終層における特徴量ζ(ζ,ζ)の出力を規定する部分に相当する。個別パラメータ922および個別パラメータ962は、エンコーダ92およびエンコーダ96でそれぞれ個別の値を有している。一方、入力側の共有パラメータ921および共有パラメータ961は、互いに共有されている。
【0143】
また、図11(A)に示す例において、デコーダ94とデコーダ98との間でもモデルパラメータの一部が共有されていてもよい。
【0144】
より具体的には、デコーダ94は、入力側の内部処理を規定する個別パラメータ941と、出力側の内部処理を規定する共有パラメータ942とを含む。同様に、デコーダ98は、入力側の内部処理を規定する個別パラメータ981と、出力側の内部処理を規定する共有パラメータ982とを含む。
【0145】
デコーダ94およびデコーダ98をニューラルネットワークで構成した場合には、個別パラメータ941および個別パラメータ981は、入力される特徴量ζ(ζ,ζ)の差異を吸収する部分に相当する。個別パラメータ941および個別パラメータ981は、デコーダ94およびデコーダ98でそれぞれ個別の値を有している。一方、出力側の共有パラメータ942および共有パラメータ98は、互いに共有されている。
【0146】
図11(B)に示す例においては、デコーダ94とデコーダ98との間で特徴量ζ(ζ,ζ)に関するモデルパラメータが共有されている。より具体的には、デコーダ94は、共有パラメータ944を有しており、デコーダ98は、共有パラメータ984を有している。共有パラメータ944および共有パラメータ984は、互いに共有されている。共有パラメータ944および共有パラメータ984は、特徴量ζ,ζのうちいずれか一方を受け取るように適合化されたものとなる。すなわち、図11(B)に示す構成は、図11(A)に示す構成において、個別パラメータ941および個別パラメータ981についても互いに共有するように変形したものに相当する。
【0147】
このように、特徴量ζに関するモデルパラメータを共有することで、推定モデルの学習をより効率的に行うことができる。
【0148】
また、モデルパラメータを共有することで、特徴量ζ(ζ,ζ)の出力の決定に用いられる情報量を増加させることができる。その結果、同じ推定値yを有している入力について、同じ特徴量zを出力し易くなる。
【0149】
<E.性能結果の実験例>
次に、本実施の形態に係る推定モデルの性能結果の実験例について説明する。
【0150】
図12は、本実施の形態に係る推定モデルの性能結果の実験例を説明するための模式図である。図12に示す実験例においては、人物姿勢の推定タスクを対象とした。人物姿勢の推定タスクは、画像からの回帰タスクの一種である。
【0151】
具体的には、既知のモーションキャプチャデータセット302に含まれる任意の姿勢を、レンダリング(304)することで生成したDepth画像をソースデータセット308として用いた。各Depth画像には、人手で関節位置の正解306(ラベル)を付与した。Panoptic Segmentationタスクとしての推定結果は、入力された画像に含まれる関節位置の種類およびその位置となる。
【0152】
一方、ターゲットデータセット314は、立体視カメラ312でユーザ310を実際に撮像して得られたDepth画像により構成した。
【0153】
Panoptic Segmentationタスクに応じた推定モデルを構築した。
【0154】
図13は、図12に示す実験における性能評価の一例を示す図である。図13に示す性能評価は、推定対象データを推定モデルに入力し、その入力された推定対象データに対する推定結果(関節位置)が正解に対して2次元空間内で10ピクセル以内に位置している確率を示す。図13に示す性能評価は、画像上でのずれ(2Dpose)を評価したものである。
【0155】
図13に示す性能評価においては、非特許文献1に開示される「CyCADA」という手法をベースラインとした。図13を参照して、本実施の形態に係る推定モデルは、ベースラインに比較して、いずれの部位についてもより高い推定精度を有していることが分かる。
【0156】
このように、本実施の形態に係る推定モデルおよびその学習方法を採用することによって、関連技術に比較して、より高い推定性能を実現できていることが分かる。
【0157】
<F.変形例>
(f1:分散配置)
上述の実施の形態に係るロボットコントローラ100が、ターゲットデータセット50を収集する処理および推定モデル60を生成する処理を実行する構成を例示したが、このような構成に限られず、任意の構成を採用できる。
【0158】
図14は、本実施の形態に係る推定モデルを利用する推定システムの構成例を示す模式図である。
【0159】
図14(A)には、ロボットコントローラ100がソースデータセット30およびターゲットデータセット50を収集する処理150と、推定モデル60を生成する処理160と、推定モデル60を用いた推定処理とを実行する構成例を示す。
【0160】
図14(B)には、ロボットコントローラ100とサーバなどの外部装置250とが連係する構成例を示す。この構成例においては、ロボットコントローラ100がソースデータセット30およびターゲットデータセット50を収集する処理150と、推定モデル60を用いた推定処理とを実行し、外部装置250が推定モデル60を生成する処理160を実行する。
【0161】
図14(C)にも、ロボットコントローラ100とサーバなどの外部装置250とが連係する構成例を示す。この構成例においては、外部装置250がソースデータセット30およびターゲットデータセット50を収集する処理150と、推定モデル60を生成する処理160とを実行し、ロボットコントローラ100が推定モデル60を用いた推定処理を実行する。
【0162】
なお、図14には典型的ないくつかの構成例を示すものであり、本発明の技術的範囲は、これらの構成例に限定されるものではない。要求される要件、仕様および目的などに応じて、任意の実装形態を採用できる。
【0163】
(f2:データセットおよび推定対象データ)
図1および図2に示すロボットシステムにおいては、シミュレーションにより生成された画像(CG画像)からソースデータセットを生成し、カメラで実際に撮像された画像(実写画像)からターゲットデータセットを生成する例を示すがこれに限られず、任意の情報をデータセットとして用いることができる。また、複数のソースデータセット、および/または、複数のターゲットデータセットを用いてもよい。
【0164】
例えば、CG画像および実写画像のいずれについても、2Dカラー画像(以下、「RGB画像」とも称す。)およびDepth画像の両方または一方を生成または取得することもできる。この場合、CGのRGB画像(正解が付与されている)からなる第1のソースデータセットと、CGのDepth画像(正解が付与されている)からなる第2のソースデータセットとを用意できるとともに、実写のRGB画像(正解無し)からなる第1のターゲットデータセットと、実写のDepth画像(正解無し)からなる第2のソースデータセットとを用意できる。
【0165】
このようなソースデータセットおよびターゲットデータセットを用いて、推定対象データとして、実写のRGB画像またはDepth画像を入力して、認識結果を出力するような推定モデルを構築できる。
【0166】
さらに、RGB情報およびDepth情報を含むCGの3D画像(正解が付与されている)からなる第3のソースデータセットと、実写の3D画像(正解無し)からなる第3のターゲットデータセットとを用意できる。
【0167】
なお、ソースデータセットに正解が付与されていないデータが含まれていてもよいし、ターゲットデータセットに正解が付与されているデータが含まれていてもよい。
【0168】
(f3:多数のデータセットに応じた学習用ネットワーク)
より多くのソースデータセットおよびターゲットデータセットを用いる場合には、用いるデータセットの数に応じて、エンコーダとデコーダとの組(エンコーダ・デコーダ)を適宜増加させるとともに、任意のデータセット間で敵対的ネットワークを構成できるように、エンコーダ・デコーダ同士を接続した、学習用ネットワークを採用すればよい。
【0169】
(f4:エンコーダ・デコーダのネットワーク構造)
エンコーダとデコーダとの組(エンコーダ・デコーダ)は、入力されるサンプルデータの次元数および含まれる情報の種類などに応じたデータ構造のネットワークを採用できる。そのため、ソースデータセットのサンプルデータが入力されるエンコーダ・デコーダとターゲットデータセットのサンプルデータが入力されるエンコーダ・デコーダとは、同一のネットワーク構造が採用されてもよいし、異なるネットワーク構造が採用されてもよい。
【0170】
例えば、RGB画像が入力されるエンコーダ・デコーダと、Depth画像が入力されるエンコーダ・デコーダとは、画素毎のチャネル数が異なっているため、入力層をはじめとする各層での次元数などが異なったものとなる。あるいは、画像データからなるソースデータセットを用いるとともに、テキストデータからなるターゲットデータセットを用いる場合には、アルゴリズム自体を異ならせてもよい。具体的には、画像データが入力されるエンコーダ・デコーダにはCNNを採用し、テキストデータが入力されるエンコーダ・デコーダにはRNNあるいは1D-CNNなどを採用してもよい。
【0171】
<G.応用例>
上述の説明においては、シミュレーションにより生成された画像(CG画像)とカメラで実際に撮像された画像(実写画像)との間のバイアス差を吸収する例について説明したが、本実施の形態に係る推定モデルは、この実装例に限らず任意のアプリケーションに適用可能である。すなわち、「環境」あるいは「ドメイン」は、可能な限り広く解釈できる。
【0172】
任意のセンシングデバイスで観測される任意の情報は、観測条件や観測環境が異なっていても、本実施の形態に係る手法により適用が可能である。例えば、FA(Factory Automation)の技術分野においては、本実施の形態に係る学習方法を適用することで、適用先の工場や設備などの環境差を埋め合わせることができる。
【0173】
具体的な適用例としては、人手でアノテーションした画像データを用いて学習した欠陥検査モデルにおいて、現場で収集された正解ラベル(欠陥の有無)が付与されていない画像データをターゲットデータセットとして追加的に学習することで、当該現場に適応された欠陥検査モデルを生成してもよい。あるいは、ある製品を撮像し画像データ(正解ラベル付与)をソースデータセットとし、当該製品に比較して外観がわずかに変化しただけの同系統の製品を撮像した画像データをターゲットデータセットとして、当該同系統の製品にも適用可能な欠陥検査モデルを生成してもよい。
【0174】
また、本実施の形態に係る手法は、作業者の姿勢を推定する推定モデルを生成する場合にも適用できる。例えば、作業者の行動を把握しようとする場合に、その作業者の正面にカメラを配置することができない場合も多い。このような場合には、作業者の上方にカメラを配置して、その作業者を真上から撮像せざるを得ない。カメラを作業者の上方に配置した場合には、カメラの視野内に写らない作業者の関節の位置などを適切にアノテーションすることは難しい。しかしながら、本実施の形態に係る手法によれば、実際にカメラを配置した位置に対応する視野におけるCG画像(ソースデータセット)を生成できるので、このように生成されたソースデータセットを用いて、姿勢推定モデルを生成することで、実際にカメラで撮像された画像から、作業者の姿勢を容易に推定できる。
【0175】
さらに、シミュレーションの結果をソースデータセットとして用いることで、現実には存在しないセンサを仮想的に実現することもできる。例えば、シミュレーションによって生成されたCG画像に、画像内の座標系と位置合わせできた状態の力場データを正解ラベルとして付与したものをソースデータセットとする。また、カメラなどにより撮像された画像データ(観測データ)(正解ラベルなし)をターゲットドメインとする。このようなソースデータセットとターゲットデータセットとを用いて力場推定モデルを生成するとともに、任意のタイミングで撮像された画像データを推定対象データとして力場推定モデルに入力することで、任意の位置に生じる力場を推定できる。
【0176】
シミュレーションにおいては、物体同士が接触して、作用力・反作用力が生じている箇所について、生じている力を力場として表現することができる(このような力場を推定対象となる)。一方、このような力場を現実に測定することは困難である。
【0177】
本実施の形態に係る手法により生成された力場推定モデルを用いることで、従来は、画像のみでは観測できなかった力場を推定できるようになる。すなわち、現実には存在しないセンサを仮想的に実現することもできる。
【0178】
さらに、センシングデバイスで観測される物理的な情報だけではなく、例えば、EC(electronic commerce)サイトでの販売実績といった人為的な情報にも適用可能である。例えば、あるECサイトでの販売実績に基づいて、他のECサイトでの販売実績を推定するといったアプリケーションが想定される。
【0179】
このように、本実施の形態に係る学習方法およびその学習方法により生成される推定モデルの応用先は、現実の世界に存在する様々な観測可能な情報に適用できる。
【0180】
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
推定システム(1)であって、
正解が付与された複数のサンプルデータを含む第1のデータセット(30)、および、正解が付与されていない複数のサンプルデータを含む第2のデータセット(50)を用いて、推定モデル(60)を生成する学習部(102;114)と、
前記第2のデータセットに属し得る推定対象データ(70)を前記推定モデルに入力して、推定結果(62)を決定する推定部(102;118)とを備え、
前記推定モデルは、サンプルデータから、前記第1のデータセットおよび前記第2のデータセットに非依存の第1の特徴量、および、前記第1のデータセットまたは前記第2のデータセットに依存する第2の特徴量、を算出するエンコーダ(96)を含み、
前記学習部は、前記第1のデータセットに含まれる第1のサンプルデータと、前記第2のデータセットに含まれる、前記第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、前記第1のサンプルデータおよび前記第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるように前記エンコーダを学習するように構成されている、推定システム。
[構成2]
前記学習部は、敵対的ネットワークである学習用ネットワーク(90)により、前記推定モデルを生成するように構成されている、構成1に記載の推定システム。
[構成3]
前記学習用ネットワークは、
第1のエンコーダ(92)および第1のデコーダ(94)からなる第1のエンコーダ・デコーダと、
第2のエンコーダ(96)および第2のデコーダ(98)からなる第2のエンコーダ・デコーダとを含み、
前記学習部による学習において、
前記第1のデータセットに含まれるサンプルは、前記第1のエンコーダ・デコーダおよび前記第2のエンコーダ・デコーダの順で配置された第1のネットワーク(92,94,96,98)に入力され、
前記第2のデータセットに含まれるサンプルは、前記第2のエンコーダ・デコーダおよび前記第1のエンコーダ・デコーダの順で配置された第2のネットワーク(96,98,92,94)に入力される、構成2に記載の推定システム。
[構成4]
前記学習部は、
前記第1のデータセットに含まれるサンプルを第1のネットワークに入力することで、前記第1のエンコーダから出力される前記第1の特徴量と、前記第2のエンコーダから出力される第1の疑似特徴量との誤差が最小化するように、前記第1のエンコーダ、前記第1のデコーダ、前記第2のエンコーダおよび前記第2のデコーダのモデルパラメータを最適化するように構成されており、
前記第2のデータセットに含まれるサンプルを第2のネットワークに入力することで、前記第2のエンコーダから出力される前記第1の特徴量と、前記第1のエンコーダから出力される第1の疑似特徴量との誤差が最小化するように、前記第1のエンコーダ、前記第1のデコーダ、前記第2のエンコーダおよび前記第2のデコーダのモデルパラメータを最適化するように構成されている、構成3に記載の推定システム。
[構成5]
前記学習部は、前記エンコーダからの出力が入力される識別器(64)を、前記第1のデータセットに含まれるサンプルデータおよび対応する正解に基づいて学習するようにさらに構成されており、
前記推定モデルは、前記識別器をさらに含む、構成1~4のいずれか1項に記載の推定システム。
[構成6]
正解が付与された複数のサンプルデータを含む第1のデータセット(30)、および、正解が付与されていない複数のサンプルデータを含む第2のデータセット(50)を用いた学習によって生成された推定モデル(60)を保持する記憶部(110)と、
前記第2のデータセットに属し得る推定対象データ(70)を前記推定モデルに入力して、推定結果(62)を決定する推定部(102;118)とを備え、
前記推定モデルは、サンプルデータから、前記第1のデータセットおよび前記第2のデータセットに非依存の第1の特徴量、および、前記第1のデータセットまたは前記第2のデータセットに依存する第2の特徴量、を算出するエンコーダ(96)を含み、
前記エンコーダは、前記第1のデータセットに含まれる第1のサンプルデータと、前記第2のデータセットに含まれる、前記第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、前記第1のサンプルデータおよび前記第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるように学習されている、推定装置。
[構成7]
正解が付与された複数のサンプルデータを含む第1のデータセット(30)、および、正解が付与されていない複数のサンプルデータを含む第2のデータセット(50)を用いて、推定モデル(60)を生成するステップと、
前記第2のデータセットに属し得る推定対象データ(70)を前記推定モデルに入力して、推定結果(62)を決定するステップとを備え、
前記推定モデルは、サンプルデータから、前記第1のデータセットおよび前記第2のデータセットに非依存の第1の特徴量、および、前記第1のデータセットまたは前記第2のデータセットに依存する第2の特徴量、を算出するエンコーダ(96)を含み、
前記推定モデルを生成するステップは、前記第1のデータセットに含まれる第1のサンプルデータと、前記第2のデータセットに含まれる、前記第1のサンプルデータに付与されている正解と同じ正解が付与されるべき第2のサンプルデータとのペアについて、前記第1のサンプルデータおよび前記第2のサンプルデータのいずれからも同じ第1の特徴量が算出されるように前記エンコーダを学習するステップを含む、推定方法。
【0181】
<I.効果>
本実施の形態によれば、より推定性能を高めた学習済みモデルを生成できる。
【0182】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0183】
1 ロボットシステム、2 ロボット、4 軸、6 ハンド、8 ワーク、12 サーボドライバ、14 モータ、20 カメラ、30,308 ソースデータセット、32,34,52,54 サンプルデータ、36,56,58 領域、40,60 推定モデル、50,314 ターゲットデータセット、53,55 射影サンプルデータ、62 推定結果、64 主目的識別器、66,68 特徴量、70 推定対象データ、80,90 学習用ネットワーク、82,86,92,96 エンコーダ、84,88,94,98 デコーダ、100 ロボットコントローラ、102 プロセッサ、104 メインメモリ、110 ストレージ、114 機械学習プログラム、116 モデルパラメータ、118 制御アプリケーション、122 通信インターフェイス、124 入力部、126 出力部、128 カメラインターフェイス、130 モータインターフェイス、150,160 処理、200 シミュレーション装置、250 外部装置、302 モーションキャプチャデータセット、306 正解、310 ユーザ、312 立体視カメラ、921,942,944,961,982,984 共有パラメータ、922,941,962,981 個別パラメータ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14