(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-15
(45)【発行日】2024-04-23
(54)【発明の名称】推定システム、推定装置および推定方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20240416BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2019206384
(22)【出願日】2019-11-14
【審査請求日】2022-09-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】郁 青
(72)【発明者】
【氏名】牛久 祥孝
(72)【発明者】
【氏名】橋本 敦史
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2019/150813(WO,A1)
【文献】SAITO, Kuniaki ほか,Maximum Classifier Discrepancy for Unsupervised Domain Adaptation,arXiv[online],arXiv,2018年04月03日,[retrieved on 2021.01.07], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1712.02560v4.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
推定システムであって、
クラスが付与された複数のデータからなる第1のデータセット、および、クラスが付与されていない複数のデータからなる第2のデータセットを用いて、機械学習により推定モデルを生成する学習部と、
前記第2のデータセットに属し得る推定対象データを前記推定モデルに入力して、推定結果を決定する推定部とを備え、
前記推定モデルは、
入力されたデータから特徴量を算出するエンコーダと、
前記特徴量に基づいて、前記入力されたデータが第1のクラスである第1の確率を出力する第1の識別器と、
前記特徴量に基づいて、前記入力されたデータが第2のクラスである第2の確率を出力する第2の識別器とを含み、
前記学習部は、
前記第1のデータセットおよび前記第2のデータセットのいずれかに含まれるデータを前記推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて、識別の不一致を算出する算出手段と、
算出された識別の不一致の大きさに応じて、当該入力されたデータについての学習の優先度を決定する決定手段とを含む、推定システム。
【請求項2】
前記学習部は、前記エンコーダのモデルパラメータを固定した状態で、識別の不一致を最大化することを目的として、前記第1の識別器および前記第2の識別器のモデルパラメータを更新する第1のパラメータ更新手段をさらに含み、
前記決定手段は、前記第1のパラメータ更新手段に関して、算出される識別の不一致がより小さいデータに対して、より高い学習の優先度を決定する、請求項1に記載の推定システム。
【請求項3】
前記学習部は、前記第1の識別器および前記第2の識別器のモデルパラメータを固定した状態で、識別の不一致を最大化することを目的として、前記エンコーダのモデルパラメータを更新する第2のパラメータ更新手段をさらに含み、
前記決定手段は、前記第2のパラメータ更新手段に関して、算出される識別の不一致がより大きいデータに対して、より高い学習の優先度を決定する、請求項1または2に記載の推定システム。
【請求項4】
前記決定手段は、学習の優先度として、識別の不一致の大きさに応じて、前記推定モデルを逆伝搬させる誤差に乗じる重み係数を決定する、請求項1~3のいずれか1項に記載の推定システム。
【請求項5】
前記決定手段は、算出される識別の不一致の大きさが予め定められた条件を満たすデータのみを、モデルパラメータの更新に用いるデータとして決定する、請求項1~4のいずれか1項に記載の推定システム。
【請求項6】
前記決定手段は、複数のデータについてそれぞれ算出される識別の不一致をランキングした上で、予め定められた範囲にあるデータのみを、モデルパラメータの更新に用いるデータとして選択する、請求項1~5のいずれか1項に記載の推定システム。
【請求項7】
前記学習部は、前記第1のデータセットに含まれるデータに基づいて、前記エンコーダのモデルパラメータ、前記第1の識別器のモデルパラメータ、および前記第2の識別器のモデルパラメータを更新する第3のパラメータ更新手段をさらに含み、
前記第3のパラメータ更新手段は、前記推定モデルにデータを入力して前記第1の識別器および前記第2の識別器のうち一方から出力される誤差に基づいて、前記第1の識別器および前記第2の識別器のうち他方のモデルパラメータを更新する、請求項1~6のいずれか1項に記載の推定システム。
【請求項8】
前記推定部は、推定対象データを推定モデルに入力したときに出力される第1の確率および第2の確率が互いに整合するか否かに応じて、推定結果を出力する推定結果出力部を含む、請求項1~7のいずれか1項に記載の推定システム。
【請求項9】
クラスが付与された複数のデータからなる第1のデータセット、および、クラスが付与されていない複数のデータからなる第2のデータセットを用いた機械学習により生成された推定モデルを保持する記憶部と、
前記第2のデータセットに属し得る推定対象データを前記推定モデルに入力して、推定結果を決定する推定部とを備え、
前記推定モデルは、
入力されたデータから特徴量を算出するエンコーダと、
前記特徴量に基づいて、前記入力されたデータが第1のクラスである第1の確率を出力する第1の識別器と、
前記特徴量に基づいて、前記入力されたデータが第2のクラスである第2の確率を出力する第2の識別器とを含み、
前記推定モデルは、前記第1のデータセットおよび前記第2のデータセットのいずれかに含まれるデータを前記推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて算出される識別の不一致の大きさに応じて、当該入力されたデータについて決定された学習の優先度に基づいて学習されている、推定装置。
【請求項10】
コンピュータが実行する推定方法であって、前記推定方法は、
クラスが付与された複数のデータからなる第1のデータセット、および、クラスが付与されていない複数のデータからなる第2のデータセットを用いて、機械学習により推定モデルを生成する学習ステップと、
前記第2のデータセットに属し得る推定対象データを前記推定モデルに入力して、推定結果を決定する推定ステップとを備え、
前記推定モデルは、
入力されたデータから特徴量を算出するエンコーダと、
前記特徴量に基づいて、前記入力されたデータが第1のクラスである第1の確率を出力する第1の識別器と、
前記特徴量に基づいて、前記入力されたデータが第2のクラスである第2の確率を出力する第2の識別器とを含み、
前記学習ステップは、
前記第1のデータセットおよび前記第2のデータセットのいずれかに含まれるデータを前記推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて、識別の不一致を算出するステップと、
算出された識別の不一致の大きさに応じて、当該入力されたデータについての学習の優先度を決定するステップとを含む、推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、実用環境に適合可能な推定モデルの推定方法に関する。
【背景技術】
【0002】
近年のコンピューティング能力の飛躍的な向上によって、様々な分野に、コンピューティング能力を利用したAI(Artificial Intelligence)と称されるソリューションが実現されつつある。
【0003】
このようなソリューションは、入力された画像に含まれる物体の種類を認識するタスクや、入力された画像に含まれる物体が存在する領域を認識するタスクなどを含む。このような認識タスクを実現するためには、様々な要素技術が必要であるが、その一つに教師なしドメイン適応(UDA:Unsupervised Domain Adaptation)が知られている。教師なしドメイン適応を実用環境で(in the wild)実現する場合には、OpenSet問題、ノイズ問題、データ不均衡問題などの問題が生じ得ることが知られている。
【0004】
OpenSet問題に対する解決手段として、「OpenSet DA」という手法が提案されている(非特許文献1など参照)。ノイズ問題に対する解決手段として、「Weakly-Supervised DA」という手法が提案されている(非特許文献2など参照)。データ不均衡問題に対する解決手段として、「Partial DA」という手法が提案されている(非特許文献3など参照)。
【先行技術文献】
【非特許文献】
【0005】
【文献】Hong Liu1, Zhangjie Cao1, Mingsheng Long1, Jianmin Wang1, Qiang Yang, "Separate to Adapt: Open Set Domain Adaptation via Progressive Separation," Conference on Computer Vision and Pattern Recognition (CVPR), 2019, [2019年11月11日検索], インターネット<URL: http://openaccess.thecvf.com/content_CVPR_2019/papers/Liu_Separate_to_Adapt_Open_Set_Domain_Adaptation_via_Progressive_Separation_CVPR_2019_paper.pdf>
【文献】Feng Liu, Jie Lu, Bo Han, Gang Niu, Guangquan Zhang, Masashi Sugiyama, "Butterfly: Robust One-step Approach towards Wildly-unsupervised Domain Adaptation," arXiv:1905.07720v1, 19 May 2019, [2019年11月11日検索], インターネット<URL: https://arxiv.org/abs/1905.07720v1>
【文献】Jin Chen, Xinxiao Wu, Lixin Duan, Shenghua Gao, "Domain Adversarial Reinforcement Learning for Partial Domain Adaptation," arXiv:1905.04094v1 10 May 2019, [2019年11月11日検索], インターネット<URL: https://arxiv.org/abs/1905.04094v1>
【文献】Kuniaki Saito, Kohei Watanabe, Yoshitaka Ushiku, Tatsuya Harada, "Maximum Classifier Discrepancy for Unsupervised Domain Adaptation," The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018, pp. 3723-3732, [2019年11月11日検索], インターネット<URL: http://openaccess.thecvf.com/content_cvpr_2018/html/Saito_Maximum_Classifier_Discrepancy_CVPR_2018_paper.html>
【文献】Kuniaki Saito, Yoshitaka Ushiku, Tatsuya Harada, Kate Saenko, "Adversarial Dropout Regularization," arXiv:1711.01575v3 [cs.CV] 2 Mar 2018, [2019年11月11日検索], インターネット<URL: https://arxiv.org/abs/1711.0157>
【文献】Bo Han, Quanming Yao, Xingrui Yu1, Gang Niu, Miao Xu, Weihua Hu, Ivor W. Tsang, Masashi Sugiyama, "Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy Labels," arXiv:1804.06872v3 [cs.LG] 30 Oct 2018, [2019年11月11日検索], インターネット<URL: https://arxiv.org/abs/1804.06872>
【文献】Yaroslav Ganin, Evgeniya Ustinova, Hana Ajakan, Pascal Germain, Hugo Larochelle, et al., "Domain-Adversarial Training of Neural Networks," Journal of Machine Learning Research 17 (2016) 1-35, 2016, [2019年11月11日検索], インターネット<URL: http://www.jmlr.org/papers/volume17/15-239/15-239.pdf>
【文献】Eric Tzeng, Judy Hoffman, Kate Saenko, Trevor Darrell, "Adversarial Discriminative Domain Adaptation," The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017, pp. 7167-7176, 2017, [2019年11月11日検索], インターネット<URL: http://openaccess.thecvf.com/content_cvpr_2017/html/Tzeng_Adversarial_Discriminative_Domain_CVPR_2017_paper.html>
【文献】Yang Shu, Zhangjie Cao, Mingsheng Long, Jianmin Wang, "Transferable Curriculum for Weakly-Supervised Domain Adaptation," Proceedings of the Thirty-Third AAAI Conference on Artificial Intelligence Vol 33 (2019), 2019-07-17, [2019年11月11日検索], インターネット<URL: https://aaai.org/ojs/index.php/AAAI/article/view/4425>
【文献】Kuniaki Saito, Shohei Yamamoto, Yoshitaka Ushiku, Tatsuya Harada, "Open Set Domain Adaptation by Backpropagation," The European Conference on Computer Vision (ECCV), 2018, pp. 153-168, 2018, [2019年11月11日検索], インターネット<URL: http://openaccess.thecvf.com/content_ECCV_2018/html/Kuniaki_Saito_Adversarial_Open_Set_ECCV_2018_paper.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したような各解決手段は、特定の問題に注目したものであり、複数の問題を総合的に考慮した解決手段は提案されていない。
【0007】
本発明は、上述したような複数の問題を総合的に考慮した解決手段を提供できる教師なしドメイン適応に関する技術を提供することを一つの目的とする。
【課題を解決するための手段】
【0008】
本発明の一例に従う推定システムは、クラスが付与された複数のデータからなる第1のデータセット、および、クラスが付与されていない複数のデータからなる第2のデータセットを用いて、機械学習により推定モデルを生成する学習部と、第2のデータセットに属し得る推定対象データを推定モデルに入力して、推定結果を決定する推定部とを含む。推定モデルは、入力されたデータから特徴量を算出するエンコーダと、特徴量に基づいて、入力されたデータが第1のクラスである第1の確率を出力する第1の識別器と、特徴量に基づいて、入力されたデータが第2のクラスである第2の確率を出力する第2の識別器とを含む。学習部は、第1のデータセットおよび第2のデータセットのいずれかに含まれるデータを推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて、識別の不一致を算出する算出手段と、算出された識別の不一致の大きさに応じて、当該入力されたデータについての学習の優先度を決定する決定手段とを含む。
【0009】
この構成によれば、上述したような問題が生じても、それらの問題の影響を受けていないと考えられるデータを優先して学習に用いることができるので、クラスが付与されていない第2のデータセットも活用して、推定モデルの推定精度を維持または向上できる。
【0010】
学習部は、エンコーダのモデルパラメータを固定した状態で、識別の不一致を最大化することを目的として、第1の識別器および第2の識別器のモデルパラメータを更新する第1のパラメータ更新手段をさらに含んでいてもよい。決定手段は、第1のパラメータ更新手段に関して、算出される識別の不一致がより小さいデータに対して、より高い学習の優先度を決定するようにしてもよい。この構成によれば、より高い精度で、第1の識別器および第2の識別器のモデルパラメータを更新できる。
【0011】
学習部は、第1の識別器および第2の識別器のモデルパラメータを固定した状態で、識別の不一致を最大化することを目的として、エンコーダのモデルパラメータを更新する第2のパラメータ更新手段をさらに含んでいてもよい。決定手段は、第2のパラメータ更新手段に関して、算出される識別の不一致がより大きいデータに対して、より高い学習の優先度を決定するようにしてもよい。この構成によれば、より高い精度で、エンコーダのモデルパラメータを更新できる。
【0012】
決定手段は、学習の優先度として、識別の不一致の大きさに応じて、推定モデルを逆伝搬させる誤差に乗じる重み係数を決定するようにしてもよい。この構成によれば、モデルパラメータの更新幅を決定する重み係数を調整できるので、モデルパラメータをより高い精度で更新できる。
【0013】
決定手段は、算出される識別の不一致の大きさが予め定められた条件を満たすデータのみを、モデルパラメータの更新に用いるデータとして決定するようにしてもよい。この構成によれば、予め定められた条件を満たすデータにより生じた誤差のみがモデルパラメータの調整に用いられるので、モデルパラメータをより高い精度で更新できる。
【0014】
決定手段は、複数のデータについてそれぞれ算出される識別の不一致をランキングした上で、予め定められた範囲にあるデータのみを、モデルパラメータの更新に用いるデータとして選択するようにしてもよい。この構成によれば、予め定められたしきい値などの条件を設定しなくても、全体の分布の上位に存在するデータのみがモデルパラメータの調整に用いられるので、モデルパラメータをより高い精度で更新できる。
【0015】
学習部は、第1のデータセットに含まれるデータに基づいて、エンコーダのモデルパラメータ、第1の識別器のモデルパラメータ、および第2の識別器のモデルパラメータを更新する第3のパラメータ更新手段をさらに含んでいてもよい。第3のパラメータ更新手段は、推定モデルにデータを入力して第1の識別器および第2の識別器のうち一方から出力される誤差に基づいて、第1の識別器および第2の識別器のうち他方のモデルパラメータを更新するようにしてもよい。この構成によれば、共通の誤差の情報に基づいて、第1の識別器および第2の識別器のモデルパラメータを更新できるので、モデルパラメータをより高い精度で更新できる。
【0016】
推定部は、推定対象データを推定モデルに入力したときに出力される第1の確率および第2の確率が互いに整合するか否かに応じて、推定結果を出力する推定結果出力部を含んでいてもよい。この構成によれば、未知クラスに分類されるデータなどの推定も可能となる。
【0017】
本発明の別の一例に従う推定装置は、クラスが付与された複数のデータからなる第1のデータセット、および、クラスが付与されていない複数のデータからなる第2のデータセットを用いた機械学習により生成された推定モデルを保持する記憶部と、第2のデータセットに属し得る推定対象データを推定モデルに入力して、推定結果を決定する推定部とを含む。推定モデルは、入力されたデータから特徴量を算出するエンコーダと、特徴量に基づいて、入力されたデータが第1のクラスである第1の確率を出力する第1の識別器と、特徴量に基づいて、入力されたデータが第2のクラスである第2の確率を出力する第2の識別器とを含む。推定モデルは、第1のデータセットおよび第2のデータセットのいずれかに含まれるデータを推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて算出される識別の不一致の大きさに応じて、当該入力されたデータについて決定された学習の優先度に基づいて学習されている。
【0018】
本発明のさらに別の一例に従う推定方法は、クラスが付与された複数のデータからなる第1のデータセット、および、クラスが付与されていない複数のデータからなる第2のデータセットを用いて、機械学習により推定モデルを生成する学習ステップと、第2のデータセットに属し得る推定対象データを推定モデルに入力して、推定結果を決定する推定ステップとを含む。推定モデルは、入力されたデータから特徴量を算出するエンコーダと、特徴量に基づいて、入力されたデータが第1のクラスである第1の確率を出力する第1の識別器と、特徴量に基づいて、入力されたデータが第2のクラスである第2の確率を出力する第2の識別器とを含む。学習ステップは、第1のデータセットおよび第2のデータセットのいずれかに含まれるデータを推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて、識別の不一致を算出するステップと、算出された識別の不一致の大きさに応じて、当該入力されたデータについての学習の優先度を決定するステップとを含む。
【発明の効果】
【0019】
本発明によれば、上述したような複数の問題を総合的に考慮した解決手段を提供できる。
【図面の簡単な説明】
【0020】
【
図1】本実施の形態に係る適用例を示す模式図である。
【
図2】本実施の形態に係る教師なしドメイン適応のアプリケーション例を示す模式図である。
【
図3】本実施の形態に係る推定モデルの生成および運用に係る処理手順を示す模式図である。
【
図4】
図2に示す画像処理システムのハードウェア構成例を示す模式図である。
【
図5】MCD(Maximum Classifier Discrepancy)手法に従う教師なしドメイン適応(UDA)の解決手段の基本的な考え方を説明するための図である。
【
図6】MCD(Maximum Classifier Discrepancy)手法に従う学習方法を説明するための図である。
【
図7】MCD(Maximum Classifier Discrepancy)手法に従う学習方法を説明するための図である。
【
図8】MCD(Maximum Classifier Discrepancy)手法に従う学習方法を説明するための図である。
【
図9】本実施の形態に係る学習方法に用いられる学習用ネットワークの一例を示す模式図である。
【
図10】本実施の形態に係る学習方法の実装例を示す模式図である。
【
図11】本実施の形態に係る学習方法の概略の処理手順を示すフローチャートである。
【
図12】
図6をベースとしてLoss2の値が小さい入力データを説明するための概念図である。
【
図13】
図7をベースとしてLoss2の値が小さい入力データを説明するための概念図である。
【
図14】
図11に示す学習方法のステップS3におけるモデルパラメータの更新処理の一例を概略する図である。
【
図15】本実施の形態に係る推定モデルの運用時の実装例を示す模式図である。
【
図16】本実施の形態に係る学習方法のアプリケーションでの実装例を示す模式図である。
【発明を実施するための形態】
【0021】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0022】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
【0023】
図1は、本実施の形態に係る学習方法およびその学習方法によって生成される推定モデルの適用例を示す模式図である。
図1を参照して、学習用ネットワーク10を用いて、推定モデル60が機械学習により生成される。
【0024】
推定モデル60は、典型的には、エンコーダ70と、識別器72および識別器74とを含む。エンコーダ70は、入力されたデータ(データxs,データxt)から特徴量を算出する。識別器72は、エンコーダ70からの特徴量に基づいて、入力されたデータが第1のクラスである確率p1(y|x)を出力する。識別器74は、入力されたデータが第2のクラスである確率p2(y|x)を出力する。
【0025】
推定モデル60の学習においては、ソースデータセットおよびターゲットデータセットのいずれかに含まれるデータ(データxs,データxt)を推定モデル60に入力したときに出力される確率p1(y|x)および確率p2(y|x)に基づいて、識別の不一致(Classifier Discrepancy)が算出される。そして、算出された識別の不一致の大きさに応じて、当該入力されたデータについての学習の優先度が決定される。
【0026】
最終的に、決定された学習の優先度に応じて、識別器72または識別器74から出力された誤差を逆伝搬させて、学習用ネットワーク10(エンコーダ70、識別器72、および識別器74の少なくとも一つ)を規定するモデルパラメータを更新する。
【0027】
本実施の形態に係る学習方法においては、識別の不一致の大きさに応じて、学習の優先度が決定されるので、上述したような問題が生じても、推定精度を維持または向上できる。
【0028】
<B.アプリケーション例>
次に、本実施の形態に係る教師なしドメイン適応のアプリケーション例について説明する。
【0029】
図2は、本実施の形態に係る教師なしドメイン適応のアプリケーション例を示す模式図である。
図2には、アプリケーション例として画像処理システム1を示す。
【0030】
図2を参照して、画像処理システム1は、ロボット2のアームの先端に配置されたカメラ20によりワーク8を撮像して、撮像によって得られた画像を用いてワーク8の外観検査(例えば、欠陥の有無および欠陥の種類の認識)を行う。
【0031】
ロボット2は、一例として、多関節型ロボットであり、関節に相当する複数の軸4を有しており、それぞれの軸4が回転または移動することによって、先端に配置されたカメラ20を任意の位置および任意の姿勢に配置できる。
【0032】
画像処理システム1では、後述するような機械学習によって事前に生成された学習済みモデルである認識処理を実現するための推定モデルが用いられる。推定モデルの推定精度を高めるためには、多数の教師データを含む学習用データセットを用いて機械学習を行う必要がある。
【0033】
一方で、教師データには正解(例えば、欠陥の種類を示すラベル)を予め付与しておく必要がある。典型的には、アノテーションにより用意される。より具体的には、任意の方法で収集された画像に対して、人手で正解(ラベル)を付与する操作によって、教師データを生成できる。画像を収集する方法としては、任意の装置を用いて実際に撮像する方法でもよいし、シミュレータ上で仮想的に撮像する方法でもよい。さらに、ウェブサイトなどから必要な画像を収集するようにしてもよい。ウェブサイトから画像を収集する場合には、収集される画像には予め正解が付与されている場合もある。
【0034】
このような予め正解が付与された多数の教師データを用いて、推定モデルを生成することで、推定精度を高めることができる。
【0035】
しかしながら、実用環境においては、カメラ20でワーク8が撮像される。任意の手段で収集された画像とカメラ20で実際に撮像された画像とは、撮像条件などが全く同一ではない。そのため、事前に特定の環境で収集されたデータと、アノテーションなどにより取得された多数の教師データを用いて生成した推定モデルを、そのまま実用環境で用いることはできない場合が多い。そこで、教師なしドメイン適応を用いて、実用環境において運用可能な推定モデルを生成可能な手法を提供する。
【0036】
図3は、本実施の形態に係る推定モデルの生成および運用に係る処理手順を示す模式図である。
図3を参照して、まず、情報処理装置200により収集された画像からなるデータセット(以下、「ソースデータセット30」とも称す。)を用意する。また、カメラ20で実際に撮像することにより、実運用で用いられる画像からなるデータセット(以下、「ターゲットデータセット50」とも称す。)を用意する。
【0037】
ソースデータセット30およびターゲットデータセット50を用いて、機械学習40により推定モデル60を生成する。実運用では、この生成された推定モデル60に対して、データ(以下、「推定対象データ62」とも称す。)を入力することで、推定結果64を得る。なお、推定対象データ62は、ターゲットデータセット50に属し得るデータに相当する。
【0038】
次に、
図2に示す画像処理システム1のハードウェア構成の一例について説明する。
【0039】
図4は、
図2に示す画像処理システム1のハードウェア構成例を示す模式図である。
図4を参照して、画像処理システム1は、ロボット2およびロボット2を制御する画像処理装置100を含む。
【0040】
ロボット2は、カメラ20に加えて、サーボドライバ12およびモータ14のセットを軸の数だけ有している。
【0041】
画像処理装置100は、本実施の形態に係る推定システムを構成する装置であり、カメラ20で撮像された画像に基づいて、画像認識処理を行う。より具体的には、画像処理装置100は、カメラ20から撮像されたワーク8を被写体とする画像に対して画像認識処理を行い、ワーク2に欠陥が存在しているか否か、および、存在している場合には欠陥の種類を特定する。画像処理装置100は、ワーク8の到着に応じて、カメラ20を所定の位置および姿勢に位置付けるための指令を1または複数のサーボドライバ12へ出力する。サーボドライバ12の各々が指令に従って電力を供給することで、対応付けられているモータ14が回転駆動され、モータ14と機械的に結合されているロボット2の関節あるいはアームが動作する。
【0042】
画像処理装置100は、典型的には、汎用的なアーキテクチャに従うコンピュータ(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現される。
【0043】
画像処理装置100は、コンポーネントとして、プロセッサ102と、メインメモリ104と、ストレージ110と、通信インターフェイス122と、入力部124と、出力部126と、カメラインターフェイス128と、モータインターフェイス130とを含む。
【0044】
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。
【0045】
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。プロセッサ102は、ストレージ110に格納された各種プログラムを読出して、メインメモリ104に展開して実行することで、後述するような各種処理を実現する。
【0046】
ストレージ110には、基本的な機能を実現するためのOS112に加えて、機械学習プログラム114と、推定モデル60を規定するモデルパラメータ116と、画像認識処理を行うための認識アプリケーション118とが格納されている。ストレージ110は、推定モデル60を保持する記憶部に相当する。また、ストレージ110には、ソースデータセット30が格納されることもある。
【0047】
プロセッサ102が機械学習プログラム114を実行することで、学習処理により推定モデル60を生成する。また、プロセッサ102が認識アプリケーション118を実行することで、推定対象データ62を推定モデル60に入力して、推定結果を決定する推定部として機能する。
【0048】
通信インターフェイス122は、任意のネットワークを介して他の装置との間のデータの遣り取りを仲介する。
【0049】
入力部124は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部126は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ102からの処理結果などを出力する。
【0050】
カメラインターフェイス128は、カメラ20により撮像された画像を受信するとともに、カメラ20に対して必要な指令を出力する。
【0051】
モータインターフェイス130は、プロセッサ102からの指示に従って、サーボドライバ12へ必要な指令を出力する。
【0052】
画像処理装置100のプログラムは、コンピュータ読み出し可能な記録媒体(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る画像処理装置100が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0053】
図4には、プロセッサ102がプログラムを実行することで、画像処理装置100として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
【0054】
<C.教師なしドメイン適応>
次に、教師なしドメイン適応の概要および課題などについて説明する。
【0055】
教師なしドメイン適応は、互いに異なるバイアス(傾向)をもつ複数のデータセットについて、一方のソースデータセット30(クラスが付与された複数のデータからなる)がもつ正解の情報を、他方のターゲットデータセット50(クラスが付与されていない複数のデータからなる)に対しても利用できるようにする手法である。ここで、バイアスとは、典型的には、ソースデータセット30が取得された環境(以下、「ソースドメイン」とも称す。)と、ターゲットデータセット50が取得された環境(以下、「ターゲットドメイン」とも称す。)との相違などによるものである。
【0056】
上述の
図2および
図3に示すアプリケーション例においては、人手によるアノーテーションなどにより生成するという環境がソースドメインであり、カメラ20により実際に撮像するという環境がターゲットドメインに相当する。
【0057】
ソースドメインのデータは(xs,ys)の組で与えられ、ターゲットドメインのデータは(xt)のみで与えられるとする。ここで、xsおよびxtは、ソースドメインおよびターゲットドメインに含まれるデータの入力ベクトルをそれぞれ示し、ysは、対応するxsに付与された正解(クラス)を意味する。
【0058】
このような前提において、ターゲットドメインに属するデータxtに付与されるべき正解ytを推定できる学習済みモデルを生成することが、教師なしドメイン適応の目標である。
【0059】
教師なしドメイン適応を実用環境で(in the wild)実現する場合には、OpenSet問題、ノイズ問題、データ不均衡問題などの問題が生じ得ることが知られている。
【0060】
1番目のOpenSet問題は、ソースドメインに含まれていたデータに付与されているクラス以外のクラス(未知クラス)に分類されるデータがターゲットドメインに含まれることにより生じる推定精度の低下を意味する。
【0061】
2番目のノイズ問題は、様々な理由で生じる誤りや劣化による推定精度の低下を意味する。ノイズ問題で対象とするノイズは、典型的には、ラベルノイズおよび特徴ノイズである。ラベルノイズは、ソースドメインに含まれるデータに付与される正解に発生する誤りである。すなわち、間違ったクラスが正解として付与されてしまう問題である。また、特徴ノイズは、観測時に他のデータに生じたものとは異なるデータ劣化(ブラーなど)である。すなわち、データセットに含まれる一部のデータの対してのみ、他とは異なるデータ劣化が生じてしまう問題である。
【0062】
3番目のデータ不均衡問題は、データセットに含まれるデータの数の不均衡による推定精度の低下を意味する。データ不均衡問題は、典型的には、ソースドメインに含まれるデータの数と、ターゲットドメインに含まれるデータの数とが不均衡である状態と、ターゲットドメインに含まれるクラスごとのデータ間が不均衡である状態とがある。前者については、非特許文献4に開示されるMCD(Maximum Classifier Discrepancy)という手法において影響が大きい。また、後者については、MCDおよび特徴量の生成分布を一致させる手法において影響が大きい。
【0063】
本実施の形態に係る学習方法およびその学習方法によって生成される推定モデルは、上述した複数の問題を総合的に考慮した解決手段を提供する。より具体的には、本実施の形態に係る学習方法およびその学習方法によって生成される推定モデルは、基本的には、識別モデルベースの教師なしドメイン適応手法をベースとする。識別モデルベースの教師なしドメイン適応手法の典型例としては、非特許文献4に開示されるMCD(Maximum Classifier Discrepancy)という手法や、非特許文献5に開示されるADR(Adversarial Dropout Regularization)という手法などが挙げられる。
【0064】
以下では、識別モデルベースの教師なしドメイン適応手法の一例として、非特許文献4に開示されるMCDをベースとした手法について説明する。但し、本発明の技術的範囲は、MCDおよびADRといった手法に限定されるものではなく、以下の説明と同様の技術的思想に基づく手法を含むものである。
【0065】
図5は、MCD(Maximum Classifier Discrepancy)手法に従う教師なしドメイン適応(UDA)の解決手段の基本的な考え方を説明するための図である。
図5を参照して、適応前の状態として、ソースデータセット30およびターゲットデータセット50を想定する。
【0066】
ソースデータセット30は、正解として第1のクラスに分類される1または複数のデータ32と、正解として第2のクラスに分類される1または複数のデータ34とを含むものとする。
【0067】
一方、ターゲットデータセット50は、第1のクラスに分類されるべき1または複数のデータ52と、第2のクラスに分類されるべき1または複数のデータ54とを含むものとする。但し、ターゲットデータセット50に含まれるデータがいずれのクラスに分類されるのかは未知である。
【0068】
任意の特徴量空間において、ソースデータセット30およびターゲットデータセット50に含まれるデータに対して、第1のクラスに分類されるデータを識別するための第1のクラス識別面42と、第2のクラスに分類されるデータを識別するための第2のクラス識別面44とが存在するものとする。
【0069】
MCDなどの識別モデルベースの教師なしドメイン適応においては、ソースデータセット30とターゲットデータセット50との間でドメイン全体の分布を一致させることを目的に学習するのではなく、ソースデータセット30とターゲットデータセット50との間でクラス識別面を一致させることを目的に学習する。
【0070】
より具体的には、共通のクラス識別面を利用できるように、ソースデータセット30およびターゲットデータセット50から特徴量を抽出するようなエンコーダを学習により生成するとともに、共通に利用できるようなクラス識別面についても学習により生成する。
【0071】
図6~
図8は、MCD(Maximum Classifier Discrepancy)手法に従う学習方法を説明するための図である。
図6~
図8においては、ソースデータセット30に含まれる第1のクラスに分類されるデータ32からなる第1のソースデータ群301と、第2のクラスに分類されるデータ34からなる第2のソースデータ群302とを想定する。同様に、ターゲットデータセット50に含まれる第1のクラスに分類されるべきデータ52からなる第1のターゲットデータ群501と、第2のクラスに分類されるべきデータ54からなる第2のターゲットデータ群502とを想定する。
【0072】
MCD手法に従う学習方法においては、クラス識別面の学習と、特徴量を抽出するエンコーダの学習とが交互に行われる。
【0073】
まず、ソースデータセット30を用いた学習により、第1のクラス識別面42および第2のクラス識別面44が決定される。
図6に示すように、第1のクラス識別面42は、第1のソースデータ群301を横切ることはなく、第2のクラス識別面44は、第2のソースデータ群302を横切ることはない。
【0074】
しかしながら、第1のクラス識別面42が第1のターゲットデータ群501を横切ることもあるし、第2のクラス識別面44が第2のターゲットデータ群502を横切ることもある。すなわち、ソースデータセット30により決定された第1のクラス識別面42および/または第2のクラス識別面44は、ターゲットデータセット50に対して、不一致領域(Discrepancy Region)を生じる場合ある。
【0075】
図6において、不一致領域53は、第1のクラスに分類されるべきデータ52が第1のクラスには分類されないと誤って判断される領域を意味し、不一致領域55は、第2のクラスに分類されるべきデータ54が第2のクラスには分類されないと誤って判断される領域を意味する。
【0076】
そこで、不一致領域53および55を最小化することを目的として、第1のクラス識別面42および第2のクラス識別面44を更新する。このとき、エンコーダのモデルパラメータは固定される。
図6には、更新前の第1のクラス識別面42’と更新後の第1のクラス識別面42、ならびに、更新前の第2のクラス識別面44’と更新後の第2のクラス識別面44を模式的に示す。
【0077】
続いて、
図7に示すように、特徴量空間において、第1のクラスに分類されるデータ32からなる第1のソースデータ群301と、第1のクラスに分類されるべきデータ52からなる第1のターゲットデータ群501との間の分布は、可能な限り一致させることが好ましい。同様に、特徴量空間において、第2のクラスに分類されるデータ34からなる第2のソースデータ群302と、第2のクラスに分類されるべきデータ54からなる第2のターゲットデータ群502との間の分布は、可能な限り一致させることが好ましい。
【0078】
すなわち、特徴量空間において、同じクラスに分類されるデータ同士の不一致(Discrepancy)を最小化することを目的として、エンコーダのモデルパラメータを更新する。
【0079】
図6には、更新前の第1のターゲットデータ群501’と更新後の第1のターゲットデータ群501、ならびに、更新前の第2のターゲットデータ群502’と更新後の第2のターゲットデータ群502を模式的に示す。
【0080】
図6に示されるクラス識別面の更新、および、
図7に示されるエンコーダの更新が繰り返し実行されることで、
図8に示されるように、エンコーダおよびクラス識別面のモデルを決定できる。
【0081】
<D.解決手段>
本実施の形態においては、OpenSet問題、ノイズ問題、データ不均衡問題などが存在する場合でも、推定精度を維持または向上できる学習方法を提供する。
【0082】
図9は、本実施の形態に係る学習方法に用いられる学習用ネットワーク10の一例を示す模式図である。
図9を参照して、学習用ネットワーク10は、敵対的ネットワークの一種であり、典型的には、エンコーダ70と、識別器72および識別器74とを含む。
【0083】
エンコーダ70は、特徴量の生成部(G)に相当し、ソースデータセット30に含まれるデータxs(ベクトル)、および/または、ターゲットデータセット50に含まれるデータxt(ベクトル)から特徴量を算出する。なお、エンコーダ70には、複数のデータをまとめたミニバッチの形で入力が与えられることもある。
【0084】
識別器72および識別器74は、エンコーダ70から出力される特徴量に対して、クラス識別面を規定する。識別器72は、エンコーダ70に入力されたデータxの推定値yが第1のクラスである確率p1(y|x)を推定結果として出力し、識別器74は、エンコーダ70に入力されたデータxの推定値yが第2のクラスである確率p2(y|x)を推定結果として出力する。このように、識別器72は識別関数F1として機能し、識別器74は識別関数F2として機能する。
【0085】
図10は、本実施の形態に係る学習方法の実装例を示す模式図である。
図10に示す構成は、典型的には、プロセッサ102が機械学習プログラム114を実行することにより実現される。
【0086】
図10を参照して、学習用ネットワーク10の入力側に、入力データ選択部1141が配置されるとともに、学習用ネットワーク10の出力側に、Loss1演算部1142と、Loss2演算部1143と、誤差バッファ1144と、カリキュラム決定部1145と、パラメータ更新部1146とが配置される。
【0087】
入力データ選択部1141は、ソースデータセット30およびターゲットデータセット50に含まれるデータをサンプリングして、学習用ネットワーク10(エンコーダ70)に入力する1または複数のデータ(ミニバッチ)を生成する。入力データ選択部1141は、選択したデータの情報を誤差バッファ1144へ出力してもよい。また、入力データ選択部1141は、カリキュラム決定部1145からの指示に従って、選択するデータを決定してもよい。
【0088】
Loss1演算部1142は、識別器72および識別器74による識別誤差をLoss1として算出する。なお、Loss1は、正解が付与されているソースデータセット30に含まれるデータxsについてのみ算出可能である。
【0089】
Loss2演算部1143は、識別器72による推定結果と識別器74による推定結果との間の誤差をLoss2として算出する。Loss2は、識別の不一致(Classifier Discrepancy)を意味する。Loss2の算出方法としては、典型的には、MAE(Mean Absolute Error)やRMSE(Root Mean Squared Error)などを用いることができる。
【0090】
誤差バッファ1144は、Loss1演算部1142およびLoss2演算部1143により算出される誤差(Loss1およびLoss2)を一時的に格納する。誤差バッファ1144は、エンコーダ70に入力されるデータの情報と関連付けて、算出される誤差を格納してもよい。
【0091】
カリキュラム決定部1145は、Loss1演算部1142および/またはLoss2演算部1143により算出される誤差に基づいて、学習用ネットワーク10に対する学習のカリキュラムを決定する。より具体的には、カリキュラム決定部1145は、入力するデータの種類および順序、ならびに、学習用ネットワーク10(エンコーダ70、識別器72、および識別器74)を規定するモデルパラメータの更新対象および更新順序などを決定する。
【0092】
パラメータ更新部1146は、Loss1演算部1142および/またはLoss2演算部1143により算出される誤差を逆伝搬させて、学習用ネットワーク10(エンコーダ70、識別器72、および識別器74)を規定するモデルパラメータを更新する。
【0093】
本実施の形態に係る学習方法においては、
図9に示す学習用ネットワーク10に対して、順学習および敵対的学習を交互に繰り返し実行する。
【0094】
順学習においては、エンコーダ70のモデルパラメータは固定した状態で、識別器72および識別器74のモデルパラメータを最適化する。より具体的には、Loss2(識別器72による推定結果と識別器74による推定結果との間の誤差:識別の不一致)を最大化することを目的として、識別器72および識別器74のモデルパラメータを更新する。
【0095】
一方、敵対的学習においては、識別器72および識別器74のモデルパラメータは固定した状態で、エンコーダ70のモデルパラメータを最適化する。より具体的には、Loss2を最小化することを目的として、エンコーダ70のモデルパラメータを更新する。
【0096】
本実施の形態に係る学習方法においては、順学習および敵対的学習の少なくとも一方において、入力されるデータに対して算出されるLoss2の大きさに応じて、学習の優先度を調整することにより、上述したような各種問題(OpenSet問題、ノイズ問題、データ不均衡問題など)よる推定精度の低下を防止する。
【0097】
図11は、本実施の形態に係る学習方法の概略の処理手順を示すフローチャートである。
図11に示す処理は、典型的には、プロセッサ102が機械学習プログラム114を実行することにより実現される。
【0098】
図11を参照して、ソースデータセット30およびターゲットデータセット50が用意される(ステップS1)。
【0099】
まず、プロセッサ102は、エンコーダ70、識別器72、および識別器74のモデルパラメータを初期化する(ステップS2)。
【0100】
プロセッサ102は、ソースデータセット30に含まれる正解が付与された複数のデータに基づいて、エンコーダ70、識別器72、および識別器74のモデルパラメータを更新する(ステップS3)。このとき、Loss1(識別器72および識別器74による識別誤差)を最小化するように、エンコーダ70、識別器72、および識別器74のモデルパラメータを更新する。
【0101】
続いて、プロセッサ102は、ソースデータセット30およびターゲットデータセット50から順学習に用いるデータ(あるいは、複数のデータからなるミニバッチ)を選択する(ステップS4)。そして、プロセッサ102は、ステップS4において選択したデータを学習用ネットワーク10に入力して推定結果を算出する(ステップS5)とともに、算出した推定結果に基づいてLoss2を算出する(ステップS6)。
【0102】
そして、プロセッサ102は、算出したLoss2に基づいて学習の優先度を決定する(ステップS7)。最終的に、プロセッサ102は、ステップS7において決定した学習の優先度に基づいて、Loss2を最大化することを目的として、識別器72および識別器74のモデルパラメータを更新する(ステップS8)。ここで、エンコーダ70のモデルパラメータは固定される。
【0103】
プロセッサ102は、ステップS4~ステップS8の順学習の終了条件が成立したか否かを判断する(ステップS9)。ステップS4~ステップS8の順学習の終了条件が成立していなければ(ステップS9においてNO)、プロセッサ102は、ステップS4以下の処理を再度実行する。
【0104】
ステップS4~ステップS8の順学習の終了条件が成立していれば(ステップS9においてYES)、プロセッサ102は、ソースデータセット30およびターゲットデータセット50から敵対的学習に用いるデータ(あるいは、複数のデータからなるミニバッチ)を選択する(ステップS10)。そして、プロセッサ102は、ステップS10において選択したデータを学習用ネットワーク10に入力して推定結果を算出する(ステップS11)とともに、算出した推定結果に基づいてLoss2を算出する(ステップS12)。
【0105】
そして、プロセッサ102は、算出したLoss2に基づいて学習の優先度を決定する(ステップS13)。最終的に、プロセッサ102は、ステップS13において決定した学習の優先度に基づいて、Loss2を最小化することを目的として、エンコーダ70のモデルパラメータを更新する(ステップS14)。ここで、識別器72および識別器74のモデルパラメータは固定される。
【0106】
プロセッサ102は、ステップS10~ステップS14の敵対的学習の終了条件が成立したか否かを判断する(ステップS15)。ステップS10~ステップS14の敵対的学習の終了条件が成立していなければ(ステップS15においてNO)、プロセッサ102は、ステップS10以下の処理を再度実行する。
【0107】
ステップS10~ステップS14の敵対的学習の終了条件が成立していれば(ステップS15においてYES)、プロセッサ102は、学習処理の収束条件が成立したか否かを判断する(ステップS16)。学習処理の収束条件が成立していなければ(ステップS16においてNO)、プロセッサ102は、ステップS4以下の処理を再度実行する。
【0108】
学習処理の収束条件が成立していれば(ステップS16においてYES)、プロセッサ102は、現在のモデルパラメータによって規定されるエンコーダ70、識別器72および識別器74を含む推定モデルを学習結果として出力する(ステップS17)。そして、学習処理は終了する。
【0109】
なお、ステップS3を順学習の処理の一部に組み入れてもよい。
【0110】
<E.学習の優先度の調整>
次に、本実施の形態に係る学習方法の詳細について説明する。
【0111】
(e1:基本的な考え方)
上述の順学習(識別器72および識別器74のモデルパラメータの更新)は、Loss2を最大化することを目的として、モデルパラメータの更新が行われる。そのため、Loss2の値が小さい入力データほど、学習の優先度を高めるように設定することが好ましい。すなわち、順学習に関して、算出されるLoss2(識別の不一致)がより小さいデータに対して、より高い学習の優先度が決定される。
【0112】
Loss2は、識別器72による推定結果と識別器74による推定結果との間の誤差であり、Loss2の値が小さい入力データは、識別器72および識別器74により規定されるそれぞれのクラス識別面に対する距離に差がないことを意味する。
【0113】
図12は、
図6をベースとしてLoss2の値が小さい入力データを説明するための概念図である。
図12を参照して、Loss2の値が小さいデータは、例えば、第1のクラス識別面42までの距離と、第2のクラス識別面44までの距離との間の差が小さい領域56に存在する。領域56は、第1のターゲットデータ群501と第2のターゲットデータ群502との境界の近傍に位置しており、いずれのクラスに分類されるのかを識別するのが相対的に難しい領域である。このような領域56にあるデータを優先的に学習に用いることで、第1のクラス識別面42(識別器72)および第2のクラス識別面44(識別器74)を効率的に学習できる。
【0114】
上述の敵対的学習(エンコーダ70のモデルパラメータの更新)は、Loss2を最小化することを目的として、モデルパラメータの更新が行われる。そのため、Loss2の値が大きい入力データほど、学習の優先度を高めるように設定することが好ましい。すなわち、敵対的学習に関して、算出されるLoss2(識別の不一致)がより大きいデータに対して、より高い学習の優先度が決定される。
【0115】
Loss2は、識別器72による推定結果と識別器74による推定結果との間の誤差であり、Loss2の値が大きい入力データは、識別器72および識別器74により規定されるそれぞれのクラス識別面に対する距離の差が大きいことを意味する。
【0116】
図13は、
図7をベースとしてLoss2の値が小さい入力データを説明するための概念図である。
図13を参照して、Loss2の値が大きいデータは、例えば、第1のクラス識別面42までの距離と、第2のクラス識別面44までの距離との間の差が大きい領域57および領域58に存在する。領域57は、第1のクラス識別面42の近傍に位置しており、第1のクラスに分類されるのかを識別するのが相対的に難しい領域である。同様に、領域58は、第2のクラス識別面44の近傍に位置しており、第2のクラスに分類されるのかを識別するのが相対的に難しい領域である。このような領域57および領域58にあるデータを優先的に学習に用いることで、第1のターゲットデータ群501および第2のターゲットデータ群502が射影される領域(エンコーダ70)を効率的に学習できる。
【0117】
本実施の形態に係る「学習の優先度を調整する」あるいは「優先的に学習に用いる」ことは、各入力されるデータに対して割り当てられる重みの大きさを変化させることだけではなく、全く重みを割り当てない、すなわち算出された誤差を学習に使用しないことも含み得る。「学習の重みを調整する」方法のいくつかの実装例について以下説明する。
【0118】
(e2:Loss2の大きさに依存した重み係数)
学習の重みを調整する方法の一例として、学習用ネットワーク10を逆伝搬させる誤差に乗じる重み係数を、Loss2の大きさに依存させて決定するようにしてもよい。すなわち、学習の優先度として、Loss2(識別の不一致)の大きさに応じて、推定モデル60を逆伝搬させる誤差に乗じる重み係数を決定するようにしてもよい。
【0119】
例えば、順学習(識別器72および識別器74のモデルパラメータの更新)においては、Loss2の値が小さい入力データほど、学習の優先度を高めるように設定することが好ましい。そのため、モデルパラメータの更新に用いられる誤差に乗じられる重み係数を、Loss2に反比例させるなどして決定してもよい。すなわち、重み係数∝1/Loss2として決定してもよい。
【0120】
但し、Loss2に反比例させる場合に限らず、任意の方法で、Loss2の値が小さいほど重み係数を大きくするように決定すればよい。
【0121】
一方、敵対的学習に(エンコーダ70のモデルパラメータの更新)においては、Loss2の値が大きい入力データほど、学習の優先度を高めるように設定することが好ましい。そのため、モデルパラメータの更新に用いられる誤差に乗じられる重み係数を、Loss2に比例させるなどして決定してもよい。すなわち、重み係数∝Loss2として決定してもよい。
【0122】
但し、Loss2に比例させる場合に限らず、任意の方法で、Loss2の値が大きいほど重み係数を大きくするように決定すればよい。
【0123】
以上のように、学習の重みを調整する方法として、学習用ネットワーク10を逆伝搬させる誤差に乗じる重み係数を、Loss2の大きさに依存させて決定するようにしてもよい。
【0124】
(e3:学習の有効/無効)
上述したように、学習用ネットワーク10を逆伝搬させる誤差に乗じる重み係数を、Loss2の大きさに依存させて決定する方法の拡張として、優先度の大きさまたはランクに応じて、対象の誤差を学習に用いるか否かを決定するようにしてもよい。すなわち、算出されるLoss2(識別の不一致)の大きさが予め定められた条件を満たすデータのみを、モデルパラメータの更新に用いるデータとして決定するようにしてもよい。
【0125】
例えば、順学習(識別器72および識別器74のモデルパラメータの更新)においては、Loss2の値が小さい入力データほど、学習の優先度を高めるように設定することが好ましい。そのため、算出されるLoss2の値が予め定められたしきい値より小さい場合に限って、対応する誤差を用いてモデルパラメータを更新するようにしてもよい。逆に言えば、算出されるLoss2の値が予め定められたしきい値以上である場合には、対応する誤差は学習には用いないようにしてもよい。
【0126】
一方、敵対的学習に(エンコーダ70のモデルパラメータの更新)においては、Loss2の値が大きい入力データほど、学習の優先度を高めるように設定することが好ましい。そのため、算出されるLoss2の値が予め定められたしきい値以上である場合に限って、対応する誤差を用いてモデルパラメータを更新するようにしてもよい。逆に言えば、算出されるLoss2の値が予め定められたしきい値より小さい場合には、対応する誤差は学習には用いないようにしてもよい。
【0127】
このように、算出されるLoss2の値の大きさが予め定められた条件に適合する場合に限って、対応する誤差をモデルパラメータの学習に用いるようにしてもよい。
【0128】
(e4:ランキング)
上述したような算出されるLoss2の値の大きさをそのまま評価するのではなく、分布として評価した上で、いずれの入力データについて優先度を高めるのかを決定してもよい。
【0129】
例えば、所定数の入力データ(あるいは、ミニバッチ)を学習用ネットワーク10に入力して得られる推定結果からそれぞれ算出されたLoss2の集合に対して、値の大きい方からランキング、あるいは、値の小さい方からランキングして、ランキング上位から予め定められた割合(例えば、数~数10%)のLoss2に対応する誤差のみを学習に用いるようにしてもよい。ランキングにより学習に用いる誤差を決定することで、算出されるLoss2の分布に応じて、学習に用いるべき誤差(すなわち、入力データ)を適切に決定できる。
【0130】
このように、複数のデータについてそれぞれ算出されるLoss2(識別の不一致)をランキングした上で、予め定められた範囲にあるデータのみを、モデルパラメータの更新に用いるデータとして選択するようにしてもよい。
【0131】
(e5:カリキュラム)
上述したような手法の1または複数を任意に組み合わせた任意のカリキュラムを決定してもよい。例えば、所定数の入力データ(あるいは、ミニバッチ)を学習用ネットワーク10に入力して得られる推定結果からそれぞれ算出されたLoss2の集合(例えば、100エポック分)に基づいて、第1回目の学習では、集合の上位5%の誤差を用いてモデルパラメータを更新するとともに、第2回目の学習では、集合の上位10%の誤差を用いてモデルパラメータを更新するといったように、学習に用いる対象の誤差および順序などを予めスケジューリングしてもよい。このようなカリキュラムを予め決定することで、モデルパラメータを効率的に学習することができる。
【0132】
(e6:その他)
なお、「学習の重みを調整する」方法の実装は、上述の形態に限らず、どのような形態を採用してもよい。
【0133】
<F.ソースデータセットによる推定モデルの最適化>
図11に示す学習方法のステップS3におけるエンコーダ70、識別器72、および識別器74のモデルパラメータを更新する処理においては、Loss1(識別器72および識別器74による識別誤差)を最小化することを目的とするので、2つの識別器72および識別器74のうち一方からの推定結果を利用して、他方を学習するようにしてもよい。
【0134】
図14は、
図11に示す学習方法のステップS3におけるモデルパラメータの更新処理の一例を概略する図である。
図14を参照して、ソースデータセット30に含まれるデータをエンコーダ70に入力し、識別器72から出力される推定結果についての識別誤差を算出し、算出した識別誤差から算出される誤差を他方の識別器74に逆伝搬させることで、識別器74のモデルパラメータを更新するようにしてもよい。
【0135】
同様に、ソースデータセット30に含まれるデータをエンコーダ70に入力し、識別器74から出力される推定結果についての識別誤差を算出し、算出した識別誤差から算出される誤差を他方の識別器72に逆伝搬させることで、識別器72のモデルパラメータを更新するようにしてもよい。
【0136】
すなわち、
図14に示す学習手順においては、推定モデルにデータを入力して識別器72および識別器74のうち一方から出力される誤差に基づいて、識別器72および識別器74のうち他方のモデルパラメータが更新される。このように、共通の誤差の情報に基づいて、識別器72および識別器74のモデルパラメータを更新することで、ノイズが多い状況であっても、Loss1(識別器72および識別器74による識別誤差)を最小化できる。なお、
図14に示される学習方法の詳細については、非特許文献6を参照されたい。
【0137】
<G.変形例>
学習用ネットワーク10および学習方法については、上述した実施の形態に限らず,以下に示すような様々な変形が可能である。
【0138】
(g1:学習用ネットワーク)
図9に示す学習用ネットワーク10においては、共通のエンコーダ70に対して、ソースデータセット30およびターゲットデータセット50からデータが入力されるようになっているが、ソースデータセット30用のエンコーダおよびターゲットデータセット50用のエンコーダをそれぞれ配置するようにしてもよい。
【0139】
図9に示す学習用ネットワーク10においては、2つの識別器を用いる構成を例示するが、これに限られることなく、3つ以上の識別器を用いるようにしてもよい。また、DropOutなどによるランダム選択要素を導入してもよい。DropOutの導入によって、仮想的に無数の識別器を配置したのと同様の効果を奏する。
【0140】
(g2:学習方法)
順学習および敵対的学習においては、ソースデータセット30およびターゲットデータセット50の両方から選択されたデータを用いてもよいし、いずれか一方のデータセットから選択されたデータのみを用いるようにしてもよい。すなわち、順学習のみ、敵対的学習のみ、順学習および敵対的学習のいずれかにおいて、ソースデータセット30およびターゲットデータセット50のうちいずれか一方のみを用いるようにしてもよい。このとき、順学習において用いるデータセットと、敵対的学習において用いるデータセットとを異ならせてもよい。
【0141】
<H.推定モデルの運用>
次に、上述の学習方法によって生成された推定モデル60の運用時(推定フェーズ)の構成例について説明する。
【0142】
図15は、本実施の形態に係る推定モデル60の運用時の実装例を示す模式図である。
図15に示す構成は、典型的には、プロセッサ102が認識アプリケーション118を実行することにより実現される。
【0143】
図15を参照して、推定対象データ62(データx
t)が推定モデル60に入力されることで、識別器72からは第1のクラスである確率p
1(y|x
t)が出力され、識別器74からは第2のクラスである確率p
2(y|x)が出力される。
【0144】
識別器72および識別器74から出力される確率は、推定結果出力部84に入力される。推定結果出力部84は、それぞれの識別器からの確率が互いに整合した結果を示している場合には、その整合した結果を推定結果64として出力する。すなわち、推定結果出力部84は、推定対象データ62を推定モデル60に入力したときに出力される確率p1(y|xt)および確率p2(y|xt)が互いに整合するか否かに応じて、推定結果を出力する。
【0145】
それぞれの識別器からの確率が互いに整合するとは、例えば、同一のデータxtに対して、第1のクラスである確率が高く、かつ、第2のクラスである確率が低い場合、あるいは、第1のクラスである確率が低く、かつ、第2のクラスである確率が高い場合などが相当する。
【0146】
一方、同一のデータxtに対して、第1のクラスである確率および第2のクラスである確率の両方が高いあるいは低い場合には、互いに整合しない。
【0147】
推定結果出力部84は、それぞれの識別器からの確率が互いに整合する場合には、その整合した結果に対応するクラスを推定結果64として出力する。一方、推定結果出力部84は、それぞれの識別器からの確率が互いに整合しない場合には、入力されたデータxtが未知クラスであるといった推定結果を出力するようにしてもよい。
【0148】
さらに、推定結果の信頼度を算出するための信頼度算出部86を配置してもよい。より具体的には、信頼度算出部86は、それぞれの識別器からの確率に基づいて算出される、識別の不一致(Loss2に相当)の大きさから信頼度を算出するようにしてもよい。
【0149】
このような信頼度を算出することで、推定モデル60の推定結果をそのまま利用できるか否かを容易に判断できる。
【0150】
<I.性能評価の実験例>
次に、本実施の形態に係る学習方法により生成された推定モデルの性能評価の実験例について説明する。本実験例では、数字の認識タスクに関する教師なしドメイン適応を行った。
【0151】
ソースドメインとして、SVHN(Street View House Numbers)データセットを用いた。SVHNデータセットから5つのクラス(0,1,2,3,4,5)毎に任意に選択した250サンプル(250サンプル×5クラス)をソースデータセット30とした。
【0152】
ターゲットドメインとしてMNIST(Mixed National Institute of Standards and Technology database)データセットを用いた。より具体的には、10のクラス(0,1,2,3,4,5,6,7,8,9)毎に[200,200,500,500,1000,1000,2000,2000,5000,5000]個のサンプルをターゲットデータセット50とした。
【0153】
すなわち、ソースドメインとターゲットドメインとの間では、それぞれのドメインに含まれるデータ数の不均衡(ソースドメインが1000サンプルであるのに対して、ターゲットドメインは17400サンプル)であることに加えて、ターゲットドメインに含まれるクラスごとのデータ間が不均衡(200サンプルしかないクラスと、5000サンプルあるクラスとが混在)になっている。さらに、ターゲットドメインには、ソースドメインには含まれないクラス(未知クラス)が存在している。
【0154】
さらに、ソースドメインに付与されるラベル(クラス)には、PxxおよびSxxで示されるノイズを意図的に付加している。
【0155】
P20:サンプル全体の20%のラベルをランダムに別のものに変更する
P45:サンプル全体の45%のラベルをランダムに別のものに変更する
S20:サンプル全体の20%のラベルを他のサンプルとランダムに入れ替える
S45:サンプル全体の45%のラベルを他のサンプルとランダムに入れ替える
また、以下の5つの手法を性能比較の対象とした。
【0156】
・DANN(Domain Adaptation Network)(非特許文献7参照)
・ADDA(Adversarial Discriminative Domain Adaptation)(非特許文献8参照)
・MCD(Maximum Classifier Discrepancy)(非特許文献4参照)
・TCL(Transferable Curriculum for Weakly-Supervised Domain Adaptation)(非特許文献9参照)
・OSBP(Open Set Domain Adaptation by Backpropagation)(非特許文献10参照)
さらに、比較の基準として、ソースデータセット30のみを用いた場合の性能についても示す(Source Only)。
【0157】
以下の表に示す各値は、各手法に従う推定モデルによる正答率を示す。
【0158】
【0159】
このように、本実施の形態に係る学習方法およびその学習方法によって生成される推定モデルを採用することによって、関連技術に比較して、OpenSet問題、ノイズ問題、データ不均衡問題などの問題が生じている状況においても、より高い推定性能を実現できていることが分かる。
【0160】
<J.アプリケーションでの実装例>
次に、本実施の形態に係る学習方法をアプリケーションに実装する場合の構成例について説明する。
【0161】
図16は、本実施の形態に係る学習方法のアプリケーションでの実装例を示す模式図である。
図16には、上述の画像処理装置100(
図4)に実装する例を示す。
【0162】
図16(A)には、画像処理装置100がソースデータセット30およびターゲットデータセット50を収集するデータ収集処理150と、推定モデル60を生成するための機械学習40と、推定モデル60を用いた推定処理とを実行する構成例を示す。
【0163】
図16(B)には、画像処理装置100とサーバなどの外部装置250とが連係する構成例を示す。この構成例においては、画像処理装置100がソースデータセット30およびターゲットデータセット50を収集するデータ収集処理150と、推定モデル60を用いた推定処理とを実行し、外部装置250が推定モデル60を生成する機械学習40を実行する。
【0164】
図16(C)にも、画像処理装置100とサーバなどの外部装置250とが連係する構成例を示す。この構成例においては、外部装置250がソースデータセット30およびターゲットデータセット50を収集するデータ収集処理150と、推定モデル60を生成するための機械学習40とを実行し、画像処理装置100が推定モデル60を用いた推定処理を実行する。
【0165】
なお、
図16には典型的ないくつかの実装例を示すものであり、本発明の技術的範囲は、これらの実装例に限定されるものではない。要求される要件、仕様および目的などに応じて、任意の実装形態を採用できる。
【0166】
<K.アプリケーション例>
上述の説明においては、アプリケーション例として、任意の方法で収集された画像に対してアノテーションにより生成した画像とカメラで実際に撮像された画像(実写画像)との間のバイアス差を吸収する例について説明したが、本実施の形態に係る推定モデルは、この実装例に限らず任意のアプリケーションに適用可能である。すなわち、「環境」あるいは「ドメイン」は、可能な限り広く解釈できる。
【0167】
任意のセンシングデバイスで観測される任意の情報は、観測条件や観測環境が異なっていても、本実施の形態に係る手法により適用が可能である。例えば、FA(Factory Automation)の技術分野においては、本実施の形態に係る学習方法を適用することで、適用先の工場や設備などの環境差を埋め合わせることができる。
【0168】
さらに、センシングデバイスで観測される物理的な情報だけではなく、例えば、EC(electronic commerce)サイトでの販売実績といった人為的な情報にも適用可能である。例えば、あるECサイトでの販売実績に基づいて、他のECサイトでの販売実績を推定するといったアプリケーションが想定される。
【0169】
さらに、生活習慣病であるか否かを判定する装置などにおいては、年齢差、性別差、地域差などによる生活習慣の差を埋め合わせるようにしてもよい。また、個人差によって生じる各種のバイアスを埋め合わせるようにしてもよい。
【0170】
このように、本実施の形態に係る学習方法およびその学習方法により生成される推定モデルの応用先は、現実の世界に存在する様々な観測可能な情報に適用できる。
【0171】
<L.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
推定システム(1)であって、
クラスが付与された複数のデータからなる第1のデータセット(30)、および、クラスが付与されていない複数のデータからなる第2のデータセット(50)を用いて、機械学習(40)により推定モデル(60)を生成する学習部(40;114)と、
前記第2のデータセットに属し得る推定対象データ(62)を前記推定モデルに入力して、推定結果(64)を決定する推定部(118)とを備え、
前記推定モデルは、
入力されたデータから特徴量を算出するエンコーダ(70)と、
前記特徴量に基づいて、前記入力されたデータが第1のクラスである第1の確率を出力する第1の識別器(72)と、
前記特徴量に基づいて、前記入力されたデータが第2のクラスである第2の確率を出力する第2の識別器(74)とを含み、
前記学習部は、
前記第1のデータセットおよび前記第2のデータセットのいずれかに含まれるデータを前記推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて、識別の不一致を算出する算出手段(1143)と、
算出された識別の不一致の大きさに応じて、当該入力されたデータについての学習の優先度を決定する決定手段(1145)とを含む、推定システム。
[構成2]
前記学習部は、前記エンコーダのモデルパラメータを固定した状態で、識別の不一致を最大化することを目的として、前記第1の識別器および前記第2の識別器のモデルパラメータを更新する第1のパラメータ更新手段(S4~S8)をさらに含み、
前記決定手段は、前記第1のパラメータ更新手段に関して、算出される識別の不一致がより小さいデータに対して、より高い学習の優先度を決定する、構成1に記載の推定システム。
[構成3]
前記学習部は、前記第1の識別器および前記第2の識別器のモデルパラメータを固定した状態で、識別の不一致を最大化することを目的として、前記エンコーダのモデルパラメータを更新する第2のパラメータ更新手段(S10~S14)をさらに含み、
前記決定手段は、前記第2のパラメータ更新手段に関して、算出される識別の不一致がより大きいデータに対して、より高い学習の優先度を決定する、構成1または2に記載の推定システム。
[構成4]
前記決定手段は、学習の優先度として、識別の不一致の大きさに応じて、前記推定モデルを逆伝搬させる誤差に乗じる重み係数を決定する、構成1~3のいずれか1項に記載の推定システム。
[構成5]
前記決定手段は、算出される識別の不一致の大きさが予め定められた条件を満たすデータのみを、モデルパラメータの更新に用いるデータとして決定する、構成1~4のいずれか1項に記載の推定システム。
[構成6]
前記決定手段は、複数のデータについてそれぞれ算出される識別の不一致をランキングした上で、予め定められた範囲にあるデータのみを、モデルパラメータの更新に用いるデータとして選択する、構成1~5のいずれか1項に記載の推定システム。
[構成7]
前記学習部は、前記第1のデータセットに含まれるデータに基づいて、前記エンコーダのモデルパラメータ、前記第1の識別器のモデルパラメータ、および前記第2の識別器のモデルパラメータを更新する第3のパラメータ更新手段(S4)をさらに含み、
前記第3のパラメータ更新手段は、前記推定モデルにデータを入力して前記第1の識別器および前記第2の識別器のうち一方から出力される誤差に基づいて、前記第1の識別器および前記第2の識別器のうち他方のモデルパラメータを更新する、構成1~6のいずれか1項に記載の推定システム。
[構成8]
前記推定部は、推定対象データを推定モデルに入力したときに出力される第1の確率および第2の確率が互いに整合するか否かに応じて、推定結果を出力する推定結果出力部(84)を含む、構成1~7のいずれか1項に記載の推定システム。
[構成9]
クラスが付与された複数のデータからなる第1のデータセット(30)、および、クラスが付与されていない複数のデータからなる第2のデータセット(50)を用いた機械学習(40)により生成された推定モデルを保持する記憶部(110)と、
前記第2のデータセットに属し得る推定対象データ(62)を前記推定モデルに入力して、推定結果(64)を決定する推定部(118)とを備え、
前記推定モデルは、
入力されたデータから特徴量を算出するエンコーダ(70)と、
前記特徴量に基づいて、前記入力されたデータが第1のクラスである第1の確率を出力する第1の識別器(72)と、
前記特徴量に基づいて、前記入力されたデータが第2のクラスである第2の確率を出力する第2の識別器(74)とを含み、
前記推定モデルは、前記第1のデータセットおよび前記第2のデータセットのいずれかに含まれるデータを前記推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて算出される識別の不一致の大きさに応じて、当該入力されたデータについて決定された学習の優先度に基づいて学習されている、推定システム。
[構成10]
クラスが付与された複数のデータからなる第1のデータセット(30)、および、クラスが付与されていない複数のデータからなる第2のデータセット(50)を用いて、機械学習(40)により推定モデルを生成する学習ステップと、
前記第2のデータセットに属し得る推定対象データ(62)を前記推定モデルに入力して、推定結果(64)を決定する推定ステップ(118)とを備え、
前記推定モデルは、
入力されたデータから特徴量を算出するエンコーダ(70)と、
前記特徴量に基づいて、前記入力されたデータが第1のクラスである第1の確率を出力する第1の識別器(72)と、
前記特徴量に基づいて、前記入力されたデータが第2のクラスである第2の確率を出力する第2の識別器(74)とを含み、
前記学習ステップは、
前記第1のデータセットおよび前記第2のデータセットのいずれかに含まれるデータを前記推定モデルに入力したときに出力される第1の確率および第2の確率に基づいて、識別の不一致を算出するステップ(S6,S12)と、
算出された識別の不一致の大きさに応じて、当該入力されたデータについての学習の優先度を決定するステップ(S7,S13)とを含む、推定方法。
【0172】
<M.効果>
本実施の形態に係る学習方法によれば、識別の不一致(Classifier Discrepancy)の大きさに応じて、入力されたデータについての学習の優先度を決定し、その決定された優先度に応じて、モデルパラメータを更新する。
【0173】
本実施の形態に係る学習方法によれば、それぞれのクラス用の識別器が設けられており、それぞれの識別器から確率を評価することで、ソースドメインに含まれていたデータに付与されているクラス以外のクラス(未知クラス)に分類されるデータがターゲットドメインに含まれる場合(OpenSet問題)であっても、クラスについての推定を誤る可能性を低減できる。
【0174】
本実施の形態に係る学習方法によれば、順学習および敵対的学習におけるモデルパラメータの更新において、識別の不一致がより小さいデータ、あるいは、識別の不一致がより大きいデータを優先的に用いるので、ノイズが含まれるデータ(ノイズ問題)を相対的に除外でき、これによって、様々な理由で生じる誤りや劣化による推定精度の低下を防止できる。
【0175】
本実施の形態に係る学習方法によれば、順学習および敵対的学習におけるモデルパラメータの更新において、識別の不一致がより小さいデータ、あるいは、識別の不一致がより大きいデータを優先的に用いるので、データが不均衡であっても、学習処理への影響が少ない。すなわち、データの不均衡による推定精度の低下を防止できる。
【0176】
このように、本実施の形態に係る学習方法およびその学習方法により生成された推定モデルを用いることで、教師なしドメイン適応を実用環境で(in the wild)より確実に実現できる。
【0177】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0178】
1 画像処理システム、2 ロボット、4 軸、8 ワーク、10 学習用ネットワーク、12 サーボドライバ、14 モータ、20 カメラ、30 ソースデータセット、32,34,52,54 データ、40 機械学習、42 第1のクラス識別面、44 第2のクラス識別面、50 ターゲットデータセット、53,55 不一致領域、56,57,58 領域、60 推定モデル、62 推定対象データ、64 推定結果、70 エンコーダ、72,74 識別器、84 推定結果出力部、86 信頼度算出部、100 画像処理装置、102 プロセッサ、104 メインメモリ、110 ストレージ、114 機械学習プログラム、116 モデルパラメータ、118 認識アプリケーション、122 通信インターフェイス、124 入力部、126 出力部、128 カメラインターフェイス、130 モータインターフェイス、150 データ収集処理、200 情報処理装置、250 外部装置、301 第1のソースデータ群、302 第2のソースデータ群、501 第1のターゲットデータ群、502 第2のターゲットデータ群、1141 入力データ選択部、1142,1143 演算部、1144 誤差バッファ、1145 カリキュラム決定部、1146 パラメータ更新部。