(57)【要約】【課題】ＧＡＮの学習がうまくいっているか否かを学習中に評価して学習効率を向上できる学習装置を提供する。【解決手段】本発明の学習装置は、入力データ３１０から出力データ３３０を生成するとともに、出力データ３３０の評価値に基づいて学習する第１のニューラルネットワーク２１０と、出力データ３３０の評価値を出力するとともに、評価値に基づいて学習する第２のニューラルネットワーク２２０と、入力データ３１０および出力データ３３０を記憶する記憶部と、複数の入力データ３１０間にばらつきがある一方で、複数の出力データ３３０間にばらつきがない場合、第１のニューラルネットワーク２１０が学習に失敗していると判断する判断部２３０を有する。【選択図】図２
2019125014.tif 000002
【特許請求の範囲】
【請求項１】
入力データから出力データを生成するとともに、前記出力データの評価値に基づいて学習する第１のニューラルネットワークと、
前記出力データの前記評価値を出力するとともに、前記評価値に基づいて学習する第２のニューラルネットワークと、
前記入力データおよび前記出力データを記憶する記憶部と、
複数の前記入力データ間にばらつきがある一方で、複数の前記出力データ間にばらつきがない場合、前記第１のニューラルネットワークが学習に失敗していると判断する判断部と、
を有する学習装置。
【請求項２】
前記判断部により前記第１のニューラルネットワークが学習に失敗していると判断される場合、学習を中止する、または、学習のパラメーターを調整して再学習する、請求項１に記載の学習装置。
【請求項３】
前記第１のニューラルネットワークが、前記入力データから前記出力データを生成し、当該出力データの評価値に基づいて学習する処理を所定回数繰り返した後、前記判断部は、前記第１のニューラルネットワークが学習に失敗しているか否かを判断する、請求項１または２に記載の学習装置。
【請求項４】
前記入力データは、人の顔を撮像して得られた画像データであり、前記第１のニューラルネットワークは、顔の向きが補正された画像データを前記出力データとして生成し、
前記判断部は、複数の前記入力データ間にばらつきがない一方で、複数の前記出力データ間にばらつきがある場合、前記第１のニューラルネットワークが学習に失敗しているとは判断しない、請求項１〜３のいずれか１項に記載の学習装置。
【請求項５】
前記出力データが示す画像から顔を検出する検出部と、
前記検出部による顔検出の信頼度を算出する第１算出部と、をさらに有し、
学習時のエポック数が所定の閾値以上であり、かつ、前記信頼度が所定の閾値以下または前記検出部により顔が検出されない場合、前記判断部は、前記第１のニューラルネットワークが学習に失敗していると判断する、請求項４に記載の学習装置。
【請求項６】
前記第１のニューラルネットワークによる補正後の顔の向きと同じ顔の向きになるように、前記入力データと同じ人の顔を撮像して得られた他の画像データが存在し、
前記学習装置は、
同一の入力データに対応する前記出力データと前記他の画像データとの類似度を算出する第２算出部をさらに有し、
学習時のエポック数が所定の閾値以上であり、かつ、前記類似度が所定の閾値以下である場合、前記判断部は、前記第１のニューラルネットワークが学習に失敗していると判断する、請求項４または５に記載の学習装置。
【請求項７】
入力データから出力データを生成するとともに前記出力データの評価値に基づいて学習する第１のニューラルネットワークと、前記出力データの前記評価値を出力するとともに前記評価値に基づいて学習する第２のニューラルネットワークとを有する学習装置において使用される学習方法であって、
前記第１のニューラルネットワークに入力データを入力して出力データを生成させるステップ（ａ）と、
前記入力データおよび前記出力データを記憶部に記憶させるステップ（ｂ）と、
前記第２のニューラルネットワークに前記出力データを入力して前記出力データの評価値を出力させるステップ（ｃ）と、
前記評価値に基づいて、前記第１のニューラルネットワークを学習させるステップ（ｄ）と、
複数の前記入力データ間にばらつきがある一方で、複数の前記出力データ間にばらつきがない場合、前記第１のニューラルネットワークが学習に失敗していると判断するステップ（ｅ）と、
を有する学習方法。
【請求項８】
入力データから出力データを生成するとともに前記出力データの評価値に基づいて学習する第１のニューラルネットワークと、前記出力データの前記評価値を出力するとともに前記評価値に基づいて学習する第２のニューラルネットワークとを有する学習装置において実行される学習プログラムであって、
前記第１のニューラルネットワークに入力データを入力して出力データを生成させる手順（ａ）と、
前記入力データおよび前記出力データを記憶部に記憶させる手順（ｂ）と、
前記第２のニューラルネットワークに前記出力データを入力して前記出力データの評価値を出力させる手順（ｃ）と、
前記評価値に基づいて、前記第１のニューラルネットワークを学習させる手順（ｄ）と、
複数の前記入力データ間にばらつきがある一方で、複数の前記出力データ間にばらつきがない場合、前記第１のニューラルネットワークが学習に失敗していると判断する手順（ｅ）と、
をコンピューターに実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法、および学習プログラムに関する。
【背景技術】
【０００２】
近年、ディープラーニング（深層学習）に関する技術の進展が著しい。ディープラーニングは、ディープニューラルネットワーク（ＤＮＮ：Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）と称される人間の脳を模して作られたアルゴリズムにより実現される。
【０００３】
ディープラーニングを用いた技術として、敵対的生成ネットワーク（ＧＡＮ：Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋ）が知られている（非特許文献１）。ＧＡＮは、生成器（Ｇｅｎｅｒａｔｏｒ）と識別器（Ｄｉｓｃｒｉｍｉｎａｔｏｒ）の２つのＤＮＮを競合させながら学習させていく生成モデルであり、他の生成モデルと比較してくっきりとした画像が得られる傾向がある。その一方で、ＧＡＮは、学習が不安定であり、学習に失敗すれば、生成器に異なる画像データを入力しても、出力される画像データが同じになる「Ｍｏｄｅ  Ｃｏｌｌａｐｓｅ」と称される現象が起こり得る。
【０００４】
なお、ＧＡＮを用いる技術としては、人の横顔を撮像して得られた横顔の画像データから、正面の顔の画像データを生成する技術が知られている（非特許文献２）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｉａｎ  Ｊ．  Ｇｏｏｄｆｅｌｌｏｗ  外７名、「Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋｓ」、ＡＲＸＩＶ、ｅｐｒｉｎｔ  ａｒＸｉｖ：１４０６．２６６１、２０１４年６月
【非特許文献２】Ｒｕｉ  Ｈｕａｎｇ  外３名、「Ｂｅｙｏｎｄ  Ｆａｃｅ  Ｒｏｔａｔｉｏｎ：  Ｇｌｏｂａｌ  ａｎｄ  Ｌｏｃａｌ  Ｐｅｒｃｅｐｔｉｏｎ  ＧＡＮ  ｆｏｒ  Ｐｈｏｔｏｒｅａｌｉｓｔｉｃ  ａｎｄ  Ｉｄｅｎｔｉｔｙ  Ｐｒｅｓｅｒｖｉｎｇ  Ｆｒｏｎｔａｌ  Ｖｉｅｗ  Ｓｙｎｔｈｅｓｉｓ」、ＡＲＸＩＶ、ｅｐｒｉｎｔ  ａｒＸｉｖ：１７０４．０４０８６、２０１７年４月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＧＡＮの学習には時間がかかるにも関わらず、ＧＡＮの学習に成功したか否かは、学習の終了後、生成器の出力結果を人が確認するまで分からない。このため、学習に失敗していることが分かれば、学習の終了までに要した時間がすべて無駄となり、学習効率が悪いという問題がある。したがって、ＧＡＮの学習がうまくいっているか否かを学習中に評価することが望まれている。
【０００７】
本発明は、上述した課題に鑑みてなされたものである。したがって、本発明の目的は、ＧＡＮの学習がうまくいっているか否かを学習中に評価して学習効率を向上できる学習装置、学習方法、および学習プログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の上記目的は、下記の手段によって達成される。
【０００９】
（１）入力データから出力データを生成するとともに、前記出力データの評価値に基づいて学習する第１のニューラルネットワークと、前記出力データの前記評価値を出力するとともに、前記評価値に基づいて学習する第２のニューラルネットワークと、前記入力データおよび前記出力データを記憶する記憶部と、複数の前記入力データ間にばらつきがある一方で、複数の前記出力データ間にばらつきがない場合、前記第１のニューラルネットワークが学習に失敗していると判断する判断部と、を有する学習装置。
【００１０】
（２）前記判断部により前記第１のニューラルネットワークが学習に失敗していると判断される場合、学習を中止する、または、学習のパラメーターを調整して再学習する、上記（１）に記載の学習装置。
【００１１】
（３）前記第１のニューラルネットワークが、前記入力データから前記出力データを生成し、当該出力データの評価値に基づいて学習する処理を所定回数繰り返した後、前記判断部は、前記第１のニューラルネットワークが学習に失敗しているか否かを判断する、上記（１）または（２）に記載の学習装置。
【００１２】
（４）前記入力データは、人の顔を撮像して得られた画像データであり、前記第１のニューラルネットワークは、顔の向きが補正された画像データを前記出力データとして生成し、前記判断部は、複数の前記入力データ間にばらつきがない一方で、複数の前記出力データ間にばらつきがある場合、前記第１のニューラルネットワークが学習に失敗しているとは判断しない、上記（１）〜（３）のいずれか１つに記載の学習装置。
【００１３】
（５）前記出力データが示す画像から顔を検出する検出部と、前記検出部による顔検出の信頼度を算出する第１算出部と、をさらに有し、学習時のエポック数が所定の閾値以上であり、かつ、前記信頼度が所定の閾値以下または前記検出部により顔が検出されない場合、前記判断部は、前記第１のニューラルネットワークが学習に失敗していると判断する、上記（４）に記載の学習装置。
【００１４】
（６）前記第１のニューラルネットワークによる補正後の顔の向きと同じ顔の向きになるように、前記入力データと同じ人の顔を撮像して得られた他の画像データが存在し、前記学習装置は、同一の入力データに対応する前記出力データと前記他の画像データとの類似度を算出する第２算出部をさらに有し、学習時のエポック数が所定の閾値以上であり、かつ、前記類似度が所定の閾値以下である場合、前記判断部は、前記第１のニューラルネットワークが学習に失敗していると判断する、上記（４）または（５）に記載の学習装置。
【００１５】
（７）入力データから出力データを生成するとともに前記出力データの評価値に基づいて学習する第１のニューラルネットワークと、前記出力データの前記評価値を出力するとともに前記評価値に基づいて学習する第２のニューラルネットワークとを有する学習装置において使用される学習方法であって、前記第１のニューラルネットワークに入力データを入力して出力データを生成させるステップ（ａ）と、前記入力データおよび前記出力データを記憶部に記憶させるステップ（ｂ）と、前記第２のニューラルネットワークに前記出力データを入力して前記出力データの評価値を出力させるステップ（ｃ）と、前記評価値に基づいて、前記第１のニューラルネットワークを学習させるステップ（ｄ）と、複数の前記入力データ間にばらつきがある一方で、複数の前記出力データ間にばらつきがない場合、前記第１のニューラルネットワークが学習に失敗していると判断するステップ（ｅ）と、を有する学習方法。
【００１６】
（８）入力データから出力データを生成するとともに前記出力データの評価値に基づいて学習する第１のニューラルネットワークと、前記出力データの前記評価値を出力するとともに前記評価値に基づいて学習する第２のニューラルネットワークとを有する学習装置において実行される学習プログラムであって、前記第１のニューラルネットワークに入力データを入力して出力データを生成させる手順（ａ）と、前記入力データおよび前記出力データを記憶部に記憶させる手順（ｂ）と、前記第２のニューラルネットワークに前記出力データを入力して前記出力データの評価値を出力させる手順（ｃ）と、前記評価値に基づいて、前記第１のニューラルネットワークを学習させる手順（ｄ）と、複数の前記入力データ間にばらつきがある一方で、複数の前記出力データ間にばらつきがない場合、前記第１のニューラルネットワークが学習に失敗していると判断する手順（ｅ）と、をコンピューターに実行させるための学習プログラム。
【発明の効果】
【００１７】
本発明によれば、ＧＡＮの学習がうまくいっているか否かが学習中に評価されるため、学習効率が向上する。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る学習装置の概略構成を示すブロック図である。
【図２】学習装置において用いられるＧＡＮの概略構成を示すブロック図である。
【図３】生成器学習処理の手順を示すフローチャートである。
【図４】図３に後続するフローチャートである。
【図５】一般的なＧＡＮの概略構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００２０】
図１は、本発明の一実施形態に係る学習装置の概略構成を示すブロック図である。学習装置１００は、演算部１１０、記憶部１２０、表示部１３０、入力部１４０、および通信インターフェース１５０を備えており、これらは信号をやり取りするためのバス１６０を介して相互に接続されている。
【００２１】
演算部１１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を含み、プログラムにしたがって、上記各部の制御や各種の演算処理を行う。
【００２２】
記憶部１２０は、予め各種プログラムや各種データを格納しておくＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、作業領域として一時的にプログラムやデータを記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、各種プログラムや各種データを格納するハードディスク等からなる。
【００２３】
表示部１３０は、たとえば、液晶ディスプレイであり、各種の情報を表示する。
【００２４】
入力部１４０は、マウス等のポインティングデバイスやキーボードを含み、各種の入力を行うために使用される。
【００２５】
通信インターフェース１５０は、他の機器と通信するためのインターフェースであり、イーサネット（登録商標）、トークンリング、およびＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）等の規格が用いられる。
【００２６】
なお、学習装置１００は、上記構成要素以外の構成要素を含んでいてもよく、あるいは、上記構成要素のうちの一部が含まれていなくてもよい。
【００２７】
次に、図２を参照して、学習装置１００において用いられる敵対的生成ネットワーク（ＧＡＮ）について説明する。
【００２８】
図２は、ＧＡＮ（Ｃｏｎｄｉｔｉｏｎａｌ  ＧＡＮ）の概略構成を示すブロック図である。なお、以下では、学習装置１００が、人の横顔を撮像して得られた画像データ（以下、「横顔画像データ」と称する）３１０から、正面の顔の画像データ（以下、「正面顔画像データ」と称する）３３０を生成する顔向き補正を行う場合を例に挙げて説明する。
【００２９】
図２に示すとおり、ＧＡＮ２００は、生成器（Ｇｅｎｅｒａｔｏｒ）２１０、識別器（Ｄｉｓｃｒｉｍｉｎａｔｏｒ）２２０、および確認器（Ｃｏｎｆｉｒｍｏｒ）２３０を備えている。生成器２１０および識別器２２０は、それぞれニューラルネットワークであり、個別に学習して進化する。本実施形態では、生成器２１０および識別器２２０の学習のために、横顔画像データ３１０と、横顔画像データ３１０の人物と同一人物の顔を正面から撮像して得られた正面顔画像データ３２０とが複数人分（たとえば、１００００人分）用意されている。横顔画像データ３１０は、生成器２１０に入力される入力データである。正面顔画像データ３２０は、識別器２２０の学習に用いられる「本物」の正面顔画像データであり、訓練データとして、識別器２２０に入力される。
【００３０】
生成器２１０は、横顔画像データ３１０から正面顔画像データ３３０を生成するとともに、正面顔画像データ３３０が「本物」の正面顔画像データに近付くように学習する第１のニューラルネットワークである。本実施形態の生成器２１０は、エンコーダ・デコーダ型のディープニューラルネットワーク（ＤＮＮ）であり、入力された横顔画像データ３１０に対してコンボリューションおよびデコンボリューション処理を行い、横顔画像データ３１０から正面顔画像データ３３０を生成する。また、本実施形態の生成器２１０は、正面顔画像データ３３０を出力することによって求まる生成器用の損失関数の値を最小化するように、誤差逆伝播法により重み係数を更新して学習する。なお、生成器２１０の学習処理と識別器２２０の学習処理とは交互に実行され、生成器２１０の学習と識別器２２０の学習とは個別に進む。
【００３１】
識別器２２０は、生成器２１０により生成された正面顔画像データ３３０が「本物」の正面顔画像データである確率（評価値）を出力するとともに、生成器２１０により生成された正面顔画像データ３３０と「本物」の正面顔画像データ３２０とを正確に分類できるように学習する第２のニューラルネットワークである。本実施形態の識別器２２０は、エンコーダ型のＤＮＮであり、入力された画像データに対してコンボリューション処理を行い、正面顔画像データ３３０が「本物」の正面顔画像データである確率を出力する。識別器２２０の学習時、識別器２２０には、生成器２１０により生成された正面顔画像データ３３０および「本物」の正面顔画像データ３２０の一方が入力される。識別器２２０は、入力された正面顔画像データが「本物」の正面顔画像データである確率を出力することによって求まる識別器用の損失関数の値を最小化するように、誤差逆伝播法により重み係数を更新して学習する。なお、生成器２１０および識別器２２０が交互に学習を行って損失関数の値を最適化する処理自体は、ＧＡＮにおける一般的な学習処理であるため、詳細な説明は省略する。
【００３２】
確認器２３０は、ＧＡＮ２００の学習中に、生成器２１０が学習に失敗しているか否かを判断する。確認器２３０は、判断部として、生成器２１０に入力された複数の横顔画像データ３１０のばらつき、および、生成器２１０により生成された複数の正面顔画像データ３３０のばらつきに基づいて、生成器２１０が学習に失敗しているか否かを判断する。また、確認器２３０は、検出部および第１算出部として、正面顔画像データ３３０が示す画像から顔を検出するとともに、顔検出の信頼度を算出する。また、確認器２３０は、第２算出部として、２つの正面顔画像データ３２０，３３０の類似度を算出する。
【００３３】
なお、生成器２１０、識別器２２０、および確認器２３０の機能は、学習装置１００の演算部１１０が、記憶部１２０に記憶されているプログラムを実行することによって実現される。
【００３４】
以上のとおり構成される学習装置１００では、ＧＡＮ２００の生成器２１０の学習処理が実行される場合、生成器２１０の学習がうまくいっているか否かが学習の途中で判断される。以下、図３および図４を参照して、生成器２１０の学習時における学習装置１００の動作について説明する。
【００３５】
図３および図４は、学習装置１００により実行される生成器学習処理の手順を示すフローチャートである。なお、図３および図４に示すフローチャートの処理は、予め用意された多数の横顔画像データ３１０を生成器２１０に入力して生成器２１０を学習させる処理を所定のエポック数だけ行う過程において繰り返し実行される。
【００３６】
まず、学習装置１００は、学習用に用意された多数の横顔画像データ３１０の中から、所定のバッチサイズの横顔画像データ３１０を抽出し、抽出した横顔画像データ３１０を生成器２１０に入力する（ステップＳ１０１）。
【００３７】
次に、生成器２１０は、生成器２１０に入力された横顔画像データ３１０から正面顔画像データ３３０を生成する（ステップＳ１０２）。
【００３８】
次に、学習装置１００は、生成器２１０に入力された横顔画像データ３１０と、生成器２１０により生成された正面顔画像データ３３０とを記憶部１２０に記憶させる（ステップＳ１０３）。
【００３９】
次に、学習装置１００は、生成器２１０により生成された正面顔画像データ３３０を識別器２２０に入力する（ステップＳ１０４）。
【００４０】
次に、識別器２２０は、識別器２２０に入力された正面顔画像データ３３０が「本物」の正面顔画像データである確率を出力する（ステップＳ１０５）。識別器２２０により確率（０〜１のスカラー値）が出力されれば、生成器用の損失関数の値が算出される。
【００４１】
次に、生成器２１０は、生成器用の損失関数の値を最小化するように、重み係数を更新して学習する（ステップＳ１０６）。
【００４２】
次に、学習装置１００は、生成器２１０の重み係数が所定回数更新されたか否かを判断する（ステップＳ１０７）。ここで、所定回数は、生成器２１０の学習がうまくいっているか否かを判断する処理を開始する際の基準となる値であり、たとえば、エポック数をバッチサイズで除算した値と等しい値に設定される。
【００４３】
生成器２１０の重み係数が所定回数更新されたと判断する場合（ステップＳ１０７：ＹＥＳ）、学習装置１００は、ステップＳ１０８の処理に移る。
【００４４】
一方、生成器２１０の重み係数が所定回数更新されていないと判断する場合（ステップＳ１０７：ＮＯ）、学習装置１００は、ステップＳ１０１の処理に戻る。そして、学習装置１００は、生成器２１０の重み係数が所定回数更新されるまで、ステップＳ１０１〜Ｓ１０７の処理を繰り返す。
【００４５】
以上のとおり、図３のステップＳ１０１〜Ｓ１０７に示す処理によれば、生成器２１０により横顔画像データ３１０から正面顔画像データ３３０が生成され、横顔画像データ３１０および正面顔画像データ３３０が記憶部１２０に記憶される。また、識別器２２０により正面顔画像データ３３０が本物である確率が出力され、出力された確率に基づいて、生成器２１０が学習を行う。
【００４６】
そして、ステップＳ１０７に示す処理において、生成器２１０の重み係数が所定回数更新されたと判断される場合（ステップＳ１０７：ＹＥＳ）、確認器２３０が、記憶部１２０に記憶されている所定回数分の横顔画像データ３１０および正面顔画像データ３３０を読み出す（ステップＳ１０８）。
【００４７】
次に、確認器２３０は、複数の横顔画像データ３１０のばらつきを算出する（ステップＳ１０９）。より具体的には、確認器２３０は、記憶部１２０から読み出された複数の横顔画像データ３１０について、複数の顔が同一人物の顔である確率を求める顔検証（Ｆａｃｅ  Ｖｅｒｉｆｉｃａｔｉｏｎ）を行い、異なる複数の横顔画像データ３１０の顔が同一人物の顔である確率を、横顔画像データ３１０のばらつきとして算出する。なお、本実施形態の顔検証では、複数の顔が同一人物である確率が高いほど（つまり、横顔画像データ３１０のばらつきが小さいほど）小さな値が算出される。また、顔検証には、公知のアルゴリズムが用いられ得る。
【００４８】
次に、確認器２３０は、複数の正面顔画像データ３３０のばらつきを算出する（ステップＳ１１０）。より具体的には、確認器２３０が、記憶部１２０から読み出された複数の正面顔画像データ３３０について、ステップＳ１０９の処理と同様の顔検証を行い、異なる複数の正面顔画像データ３３０の顔が同一人物の顔である確率を、正面顔画像データ３３０のばらつきとして算出する。
【００４９】
次に、確認器２３０は、複数の横顔画像データ３１０のばらつきが所定の閾値以上であるか否かを判断する（ステップＳ１１１）。ここで、所定の閾値は、複数の横顔画像データ３１０間にばらつきがあると判断する際の基準となる値であり、実験等に基づいて適宜設定される。
【００５０】
横顔画像データ３１０のばらつきが閾値以上でないと判断する場合（ステップＳ１１１：ＮＯ）、学習装置１００は、ステップＳ１１５の処理に移る。
【００５１】
一方、横顔画像データ３１０のばらつきが閾値以上であると判断する場合（ステップＳ１１１：ＹＥＳ）、確認器２３０は、複数の正面顔画像データ３３０のばらつきが所定の閾値以上であるか否かを判断する（ステップＳ１１２）。ここで、所定の閾値は、複数の正面顔画像データ３３０間にばらつきがあると判断する際の基準となる値であり、実験等に基づいて適宜設定される。
【００５２】
正面顔画像データ３３０のばらつきが閾値以上であると判断する場合（ステップＳ１１２：ＹＥＳ）、学習装置１００は、ステップＳ１１５の処理に移る。
【００５３】
一方、正面顔画像データ３３０のばらつきが閾値以上でないと判断する場合（ステップＳ１１２：ＮＯ）、確認器２３０は、生成器２１０が学習に失敗していると判断する（ステップＳ１１３）。より具体的には、確認器２３０は、生成器２１０に異なる画像データを入力しても、出力される画像データが同じになる「Ｍｏｄｅ  Ｃｏｌｌａｐｓｅ」が発生しているとして、生成器２１０が学習に失敗していると判断する。
【００５４】
次に、学習装置１００は、再学習を行うために、パラメーターを調整し（ステップＳ１１４）、処理を終了する。本実施形態では、学習装置１００が、損失関数を構成する式の各項の係数を調整し、処理を終了する。その後、学習装置１００は、調整後のパラメーターを用いて、生成器２１０の学習を最初から再び行う。なお、学習を再び行う場合、ベイズ最適化等の自動チューニング処理を行ってパラメーターが調整されてもよい。
【００５５】
以上のとおり、図３および図４のステップＳ１０８〜Ｓ１１４に示す処理によれば、生成器２１０の重み係数が所定回数更新された場合、記憶部１２０に記憶された横顔画像データ３１０および正面顔画像データ３３０が読み出され、横顔画像データ３１０間および正面顔画像データ３３０間のばらつきがそれぞれ算出される。そして、複数の横顔画像データ３１０間にばらつきがある一方で、複数の正面顔画像データ３３０間にばらつきがない場合、生成器２１０が学習に失敗していると判断される。
【００５６】
一方、ステップＳ１１１に示す処理において、横顔画像データ３１０のばらつきが閾値以上でないと判断する場合（ステップＳ１１１：ＮＯ）、または、ステップＳ１１２に示す処理において、正面顔画像データ３３０のばらつきが閾値以上であると判断する場合（ステップＳ１１２：ＹＥＳ）、確認器２３０は、現在のエポック数が所定の閾値（たとえば、１００）以上であるか否かを判断する（ステップＳ１１５）。
【００５７】
エポック数が閾値以上でないと判断する場合（ステップＳ１１５：ＮＯ）、学習装置１００は、生成器２１０が学習に失敗していないとして、処理を終了する。その結果、生成器２１０の学習が継続され、生成器学習処理が繰り返し実行される。
【００５８】
一方、エポック数が閾値以上であると判断する場合（ステップＳ１１５：ＹＥＳ）、確認器２３０は、正面顔画像データ３３０の顔検出を行う（ステップＳ１１６）。より具体的には、確認器２３０は、記憶部１２０から読み出された複数の正面顔画像データ３３０について、各画像データ３３０が示す画像から人の顔を検出する顔検出処理を行う。
【００５９】
次に、確認器２３０は、顔検出の信頼度を算出する（ステップＳ１１７）。より具体的には、確認器２３０は、複数の正面顔画像データ３３０について、顔として検出された矩形領域のサイズや数に基づいて顔検出の信頼度をそれぞれ算出する。本実施形態では、顔検出の信頼度が高いほど大きな値が算出される。なお、顔検出および顔検出の信頼度の算出には、公知のアルゴリズムが用いられ得る。
【００６０】
次に、確認器２３０は、顔検出の信頼度が所定の閾値以下であるか否かを判断する（ステップＳ１１８）。より具体的には、確認器２３０は、たとえば、複数の正面顔画像データ３３０の信頼度の平均値が所定の閾値以下であるか否かを判断する。ここで、所定の閾値は、生成器２１０の学習がうまくいっているか否かを判断する際の基準となる値であり、実験等に基づいて適宜設定される。
【００６１】
顔検出の信頼度が閾値以下であると判断する場合（ステップＳ１１８：ＹＥＳ）、確認器２３０は、生成器２１０が学習に失敗していると判断する（ステップＳ１１３）。そして、学習装置１００は、再学習を行うために、パラメーターを調整し（ステップＳ１１４）、処理を終了する。
【００６２】
以上のとおり、図４のステップＳ１１３〜Ｓ１１８に示す処理によれば、複数の横顔画像データ３１０間にばらつきがない場合、または、複数の横顔画像データ３１０間にばらつきがあり、かつ、複数の正面顔画像データ３３０間にばらつきがある場合、現在のエポック数が所定の閾値以上であるか否かが判断される。そして、エポック数が閾値以上であり、かつ、顔検出の信頼度が閾値以下である場合、生成器２１０が学習に失敗していると判断される。なお、正面顔画像データ３３０が示す画像から顔が検出されなかった場合も、生成器２１０が学習に失敗していると判断される。
【００６３】
一方、ステップＳ１１８に示す処理において、顔検出の信頼度が閾値以下でないと判断する場合（ステップＳ１１８：ＮＯ）、確認器２３０は、正面顔画像データの類似度を算出する（ステップＳ１１９）。より具体的には、確認器２３０は、複数の正面顔画像データ３３０のそれぞれについて、まず、生成器２１０に入力された横顔画像データ３１０と対となるように用意された「本物」の正面顔画像データ３２０を読み出す。そして、確認器２３０は、正面顔画像データ３３０と「本物」の正面顔画像データ３２０との各画素の差分のノルムを、正面顔画像データの類似度として算出する。なお、本実施形態では、正面顔画像データの類似度が高いほど大きな値が算出される。また、ノルムは、Ｌ１ノルムおよびＬ２ノルムのいずれであってもよく、ノルムの算出には、公知のアルゴリズムが用いられ得る。
【００６４】
次に、確認器２３０は、正面顔画像データの類似度が所定の閾値以下であるか否かを判断する（ステップＳ１２０）。より具体的には、確認器２３０は、たとえば、複数の正面顔画像データ３３０の類似度の平均値が所定の閾値以下であるか否かを判断する。ここで、所定の閾値は、生成器２１０の学習がうまくいっているか否かを判断する際の基準となる値であり、実験等に基づいて適宜設定される。
【００６５】
正面顔画像データの類似度が閾値以下であると判断する場合（ステップＳ１２０：ＹＥＳ）、確認器２３０は、生成器２１０が学習に失敗していると判断する（ステップＳ１１３）。そして、学習装置１００は、再学習を行うために、パラメーターを調整し（ステップＳ１１４）、処理を終了する。
【００６６】
一方、正面顔画像データの類似度が閾値以下でないと判断する場合（ステップＳ１２０：ＮＯ）、確認器２３０は、生成器２１０が学習に失敗していないとして、処理を終了する。その結果、生成器２１０の学習が継続され、生成器学習処理が繰り返し実行される。
【００６７】
以上のとおり、図４のステップＳ１１３〜Ｓ１１４およびＳ１１９〜Ｓ１２０に示す処理によれば、エポック数が閾値以上であり、かつ、正面顔画像データの類似度が閾値以下である場合、生成器２１０が学習に失敗していると判断される。
【００６８】
以上のとおり、本実施形態の生成器学習処理によれば、生成器２１０の学習時、生成器２１０の重み係数が所定回数更新される度に、横顔画像データ３１０および正面顔画像データ３３０のばらつきが算出される。そして、複数の横顔画像データ３１０間にばらつきがある一方で、複数の正面顔画像データ３３０間にばらつきがない場合、生成器２１０が学習に失敗していると判断される。このような構成によれば、「Ｍｏｄｅ  Ｃｏｌｌｐａｓｅ」というＧＡＮの学習の典型的な失敗が学習中に認識され、学習効率が向上する。なお、本実施形態の生成器学習処理では、複数の横顔画像データ３１０間にばらつきがない一方で、複数の正面顔画像データ３３０間にばらつきがある場合、生成器２１０が学習に失敗しているとは判断されない。
【００６９】
また、本実施形態の生成器学習処理によれば、生成器２１０の重み係数が所定回数更新された場合、生成器２１０の学習がうまくいっているか否かが判断されるため、所定回数を適切な値（たとえば、１００回）に設定することにより、生成器２１０の学習がうまくいっているか否かを確認器２３０が誤って判断することを防止できる。
【００７０】
また、本実施形態の生成器学習処理によれば、画像データのばらつきに基づいて学習に失敗していないと判断された場合であっても、正面顔画像データ３３０の顔検出が行われ、顔検出の信頼度が閾値以下または顔が検出されない場合、学習に失敗していると判断される。このような構成によれば、出力結果が所望の分布にならない（見た目が崩れる）というＧＡＮの学習の失敗が学習中に認識され、学習効率が一層向上する。
【００７１】
また、本実施形態の生成器学習処理によれば、正面顔画像データ３２０，３３０の類似度が算出され、類似度が閾値以下の場合、学習に失敗していると判断される。このような構成によれば、出力にノイズが乗るというＧＡＮの学習の失敗が学習中に認識され、学習効率がより一層向上する。
【００７２】
なお、本実施形態の生成器学習処理では、生成器２１０が学習に失敗していると判断された場合、再学習を行うために、パラメーターが調整された。しかしながら、本実施形態とは異なり、生成器２１０が学習に失敗していると判断された場合、パラメーターを調整することなく、学習が中止されてもよい。また、調整されるパラメーターは、損失関数の式中の係数に限定されるものではなく、エポック数やバッチサイズが調整されてもよく、ＤＮＮの層数が調整されてもよい。あるいは、ＤＮＮの構造自体が変更されてもよい。
【００７３】
次に、図５を参照して、本実施形態の生成器学習処理の作用効果についてより具体的に説明する。
【００７４】
図５は、比較例として、一般的なＧＡＮ（Ｃｏｎｄｉｔｉｏｎａｌ  ＧＡＮ）の概略構成を示すブロック図である。一般的なＧＡＮは、生成器２１０および識別器２２０を備えている。
【００７５】
生成器２１０は、エンコーダ・デコーダ型のＤＮＮであり、横顔画像データ３１０から正面顔画像データ３３０を生成する。生成器２１０の学習時、生成器２１０により生成された正面顔画像データ３３０が「本物」の正面顔画像データである確率を識別器２２０が出力する。そして、生成器２１０は、その確率より定まる生成器用の損失関数の値を最小化するように、誤差逆伝播法により重み係数を更新して学習する。
【００７６】
識別器２２０は、エンコーダ型のＤＮＮであり、正面顔画像データが「本物」の正面顔画像データである確率を出力する。識別器２２０の学習時、識別器２２０には、生成器２１０により生成された正面顔画像データ３３０および「本物」の正面顔画像データ３２０の一方が入力される。識別器２２０は、入力された正面顔画像データが「本物」の正面顔画像データである確率を出力し、その確率より定まる識別器用の損失関数の値を最小化するように、誤差逆伝播法により重み係数を更新して学習する。
【００７７】
図５に示される一般的なＧＡＮでは、生成器２１０の学習時、生成器２１０の学習に成功したか失敗したかは、生成器２１０の学習の終了後、生成器２１０の出力結果を人が実際に確認するまで分からない。このため、一般的なＧＡＮでは、生成器２１０の学習に失敗していることが認識された場合、長時間の学習がすべて無駄になり、学習効率が悪い。
【００７８】
一方、本実施形態に係る学習装置１００で用いられるＧＡＮ２００では、確認器２３０により、生成器２１０の学習がうまくいっているか否かが学習中に評価されるため、学習の終了を待つことなく、学習に失敗していることが認識される。その結果、学習に失敗した場合、長時間の学習がすべて無駄になる一般的なＧＡＮと比較して、無駄時間が短縮され、学習効率が向上する。
【００７９】
本発明は、上述した実施形態のみに限定されるものではなく、特許請求の範囲内において、種々改変することができる。
【００８０】
たとえば、上述した実施形態では、複数の横顔画像データ３１０のばらつき、および、複数の正面顔画像データ３３０のばらつきは、画像データ間の顔検証を行って求められた。しかしながら、複数の画像データのばらつきは、生成器２１０の畳み込み層から得られる特徴量を用いて求められてもよい。
【００８１】
また、上述した実施形態では、本発明が、顔の向きを補正する画像処理に適用される場合を例に挙げて説明した。しかしながら、本発明は、顔の向きを補正する画像処理のみに適用されるものではなく、たとえば、人の全身の画像から関節の位置を検出する画像処理にも適用され得る。さらに、本発明は、画像処理に適用されるのみならず、テキストを処理する自然言語処理や音声を処理する音声処理にも適用され得る。
【００８２】
上述した実施形態に係る学習装置１００における各種処理を行う手段および方法は、専用のハードウエア回路、またはプログラムされたコンピューターのいずれによっても実現することが可能である。上記プログラムは、たとえば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のコンピューター読み取り可能な記録媒体によって提供されてもよいし、インターネット等のネットワークを介してオンラインで提供されてもよい。この場合、コンピューター読み取り可能な記録媒体に記録されたプログラムは、通常、ハードディスク等の記憶部に転送され記憶される。また、上記プログラムは、単独のアプリケーションソフトとして提供されてもよいし、学習装置１００の一機能としてその装置のソフトウエアに組み込まれてもよい。
【符号の説明】
【００８３】
１００  学習装置、
１１０  演算部、
１２０  記憶部、
１３０  表示部、
１４０  入力部、
１５０  通信インターフェース、
１６０  バス、
２００  敵対的生成ネットワーク、
２１０  生成器、
２２０  識別器、
２３０  確認器、
３１０  横顔画像データ、
３２０，３３０  正面顔画像データ。
【図１】
2019125014.tif 000003
【図２】
2019125014.tif 000004
【図３】
2019125014.tif 000005
【図４】
2019125014.tif 000006
【図５】
2019125014.tif 000007