(57)【要約】  ドメイン情報有りデータ及びドメイン情報無しデータを用いた半教師有り学習を実現するため、本発明の学習装置は、ドメイン情報を教師とした半教師有り学習において、ドメイン情報有りデータ及びドメイン情報無しデータを変換する第１のニューラルネットワークと、変換後のデータに対する所定の処理の結果を出力とする第２のニューラルネットワークと、変換後のデータのドメイン識別の結果を出力とする第３のニューラルネットワークとを含み、ドメイン情報有りデータを用いたドメイン識別の結果における第１の損失と、ドメイン情報無しデータを用いた半教師有り学習における教師無し損失である第２の損失と、ドメイン情報有りデータ及びドメイン情報無しデータを用いたタスクにおける第３の損失を算出し、第２の損失及び第３の損失を小さく、かつ、第１の損失を大きくするように、ニューラルネットワークのパラメータを修正する。
2019102962.tif 000002
【特許請求の範囲】
【請求項１】
ドメイン情報を教師とした半教師有り学習において、
前記ドメイン情報を含む第１のデータ及び前記ドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、前記変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、前記変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含むデータ処理手段と、
前記第１のデータを用いて前記ドメイン識別の結果における損失である第１の損失を算出する第１の損失算出手段と、
前記第２のデータを用いて前記半教師有り学習における教師無し損失である第２の損失を算出する第２の損失算出手段と、
前記第１のデータ及び前記第２のデータの少なくとも一部を用いて前記所定の処理の結果における損失である第３の損失を算出する第３の損失算出手段と、
前記第２の損失及び前記第３の損失を小さく、かつ、前記第１の損失を大きくするように、前記第１のニューラルネットワークないし前記第３のニューラルネットワークのパラメータを修正するパラメータ修正手段と
を含む学習装置。
【請求項２】
前記第１の損失算出手段が、
前記第１のデータを用いて前記ドメイン情報の予測誤差に対応した前記第１の損失を算出する
請求項１に記載の学習装置。
【請求項３】
第２のニューラルネットワークが、
前記所定の処理として前記変換後のデータのクラス識別を実行し、
前記第２の損失算出手段が、
前記クラス識別の結果である識別境界と前記第２のデータとの距離に応じた前記第２の損失を算出し、
前記第３の損失算出手段が、
前記第３の損失として、前記クラス識別における予測誤差を算出する
請求項１又は２に記載の学習装置。
【請求項４】
前記第２のニューラルネットワークが、
前記変換後のデータの再構成を実行し、
前記第３の損失算出手段が、
前記第３の損失として、前記再構成における誤差を算出する
請求項１又は２に記載の学習装置。
【請求項５】
ドメイン情報を教師とした半教師有り学習において、
前記ドメイン情報を含む第１のデータ及び前記ドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、前記変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、前記変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含む学習装置が、
前記第１のデータを用いて前記ドメイン識別の結果における損失である第１の損失を算出し、
前記第２のデータを用いて前記半教師有り学習における教師無し損失である第２の損失を算出し、
前記第１のデータ及び前記第２のデータの少なくとも一部を用いて前記所定の処理の結果における損失である第３の損失を算出し、
前記第２の損失及び前記第３の損失を小さく、かつ、前記第１の損失を大きくするように、前記第１のニューラルネットワークないし前記第３のニューラルネットワークのパラメータを修正する
学習方法。
【請求項６】
ドメイン情報を教師とした半教師有り学習において、
前記ドメイン情報を含む第１のデータ及び前記ドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、前記変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、前記変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含むコンピュータに、
前記第１のデータを用いて前記ドメイン識別の結果における損失である第１の損失を算出する処理と、
前記第２のデータを用いて前記半教師有り学習における教師無し損失である第２の損失を算出する処理と、
前記第１のデータ及び前記第２のデータの少なくとも一部を用いて前記所定の処理の結果における損失である第３の損失を算出する処理と、
前記第２の損失及び前記第３の損失を小さく、かつ、前記第１の損失を大きくするように、前記第１のニューラルネットワークないし前記第３のニューラルネットワークのパラメータを修正する処理と
を実行させるプログラムを記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの機械学習に関し、特に、半教師有り学習に関する。
【背景技術】
【０００２】
パターン認識技術とは、データとして入力されたパターンがどのクラスに属するパターンであるかを推定する技術である。具体的なパターン認識の例としては、画像を入力として写っている物体を推定する物体認識、又は、音声を入力として発話内容を推定する音声認識などが挙げられる。【０００３】
パターン認識において、統計的機械学習が広く利用されている。統計的機械学習とは、事前に収集した教師有りデータ（以下、「学習データ」と呼ぶ）を用いて、パターンとそのクラスとの統計的な性質を示すモデルを学習する。教師有りデータを用いるため、このような学習は、「教師有り学習」とも呼ばれる。【０００４】
そして、統計的機械学習は、学習したモデルを、認識すべきパターン（以下、「テストデータ」と呼ぶ）に適用することで、テストデータに対するパターン認識の結果を得る。なお、テストデータは、教師無しデータである。【０００５】
多くの統計的機械学習の手法は、学習データの統計的性質とテストデータの統計的性質とが一致していることを仮定している。したがって、統計的性質が、学習データとテストデータとにおいて異なる場合、パターン認識の性能は、統計的性質の異なりの度合いに応じて、低下する。【０００６】
統計的性質が学習データとテストデータとの間において異なる原因としては、例えば、パターン認識（パターンの分類）の対象であるクラス情報以外の属性情報がある。この場合の属性情報とは、学習データとテストデータとにおいて、パターンの分類に用いられるクラス以外の属性に関連する情報である。【０００７】
クラス以外の属性情報がデータの分布に影響を与える場合の例を、説明する。例えば、画像を用いた顔画像の検出を考える。この場合、クラス情報は、例えば、「顔」画像及び「非顔」画像となる。ただし、顔画像の撮影における照明の位置は、顔に対して固定ではないとする。この場合、例えば、撮影方向に対して右から強い照明を受けたシーンの画像と、左から強い照明を受けたシーンの画像とでは、統計的性質（例えば、見た目）が大きく異なる。このように、顔画像及び非顔画像のデータにおける統計的性質は、顔及び非顔というクラス情報以外の属性情報である「照明条件」に基づいて変化する。【０００８】
「照明情報」以外の属性情報としては、「撮影角度」、又は「撮影したカメラの特性」などが想定される。このように、クラス情報以外で統計的性質（例えば、データの分布）に影響を与える属性情報は、多く存在する。【０００９】
しかし、学習データとテストデータとにおいて、全ての属性情報を合わせることは難しい。その結果、学習データとテストデータとにおいて、少なくとも一部の属性情報において統計的性質が、異なる場合が多い。【００１０】
上で述べたようなデータ間における統計的性質のずれを補正する技術の一つとして、ドメイン適応（ｄｏｍａｉｎ  ａｄａｐｔａｔｉｏｎ）がある（例えば、非特許文献１及び特許文献１を参照）。ドメイン適応とは、新規タスクの効率的な仮説を見つけ出すために、一つ以上の別のタスクで学習された知識（データ）を得て、それを適用する技術である。別の表現を用いると、ドメイン適応とは、あるタスクの知識（データ）のドメインを、別のタスクの知識のドメインに適応（又は、転移）させることである。あるいは、ドメイン適応とは、統計的性質がずれている複数のデータを、統計的性質が十分に近くなるように変換する技術である。この場合のドメインとは、統計的性質の領域である。【００１１】
なお、ドメイン適応は、転移学習（ｔｒａｎｓｆｅｒ  ｌｅａｒｎｉｎｇ）、機能転移（ｉｎｄｕｃｔｉｖｅ  ｔｒａｎｓｆｅｒ）、又は、マルチタスク学習（ｍｕｌｔｉｔａｓｋ  ｌｅａｒｎｉｎｇ）などと呼ばれる場合もある。【００１２】
図面を参照して、ドメイン適応を説明する。【００１３】
図４は、統計的性質が異なる２つのデータを用いた場合のドメイン適応を概念的に示す図である。図４において、図４の左側が、初期状態（ドメイン適応前）のデータ（第１のデータ及び第２のデータ）である。図の左右方向の位置の違いが、ドメイン適用に用いるドメインの違い（対象となる統計的性質）を示す。例えば、第１のデータが右からの照明の画像であり、第２のデータが左からの照明の画像である。【００１４】
図４の右側が、ドメイン適応を用いた変換後のデータである。変換後の第１のデータ及び第２のデータは、所定の統計的性質に関するドメインが重なる、つまり、統計的性質が合わせ込まれている。【００１５】
機械学習を行う前に、ドメイン適応を用いて学習データ及びテストデータの統計的性質を合わせることで、統計的性質のずれに起因する機械学習の性能劣化を軽減することができる。【００１６】
代表的なドメイン適応手法として、敵対的学習を用いたドメイン適応がある（例えば、非特許文献２を参照）。【００１７】
非特許文献２に記載の手法では、データ変換器は、データがどのドメインに属するかを識別できないように、データの変換を学習する。一方、クラス識別器は、変換されたデータのクラスを識別する識別精度を向上するように学習する。さらに、ドメイン識別器は、変換されたデータのドメインを識別する識別精度を向上するように学習する。ここで、データ変換器におけるデータがどのドメインに属するかを識別できないように学習することは、ドメイン識別器における識別精度を低下するように学習することに相当する。このように、ドメイン識別器の学習がドメインの識別精度を向上させる学習であり、データ変換器の学習がドメインの識別精度を低下させる学習のため、非特許文献２に記載の手法は、敵対的学習と呼ばれる。非特許文献２に記載の手法は、ドメインを識別できないようにデータを変換することで、処理の対象となるドメインにおける統計的性質が十分に近いデータを得ることができる。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２０１０−０９２２６６号公報
【非特許文献】
【００１９】
【非特許文献１】Boqing Gong, Yuan Shi, Fei Sha, and Kristen Grauman, "Geodesic Flow Kernel for Unsupervised Domain Adaptation", Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2012, pp.2066-2073
【非特許文献２】Yaroslav Ganin, Victor Lempitsky, "Unsupervised Domain Adaptation by Backpropagation", Proceedings of the 32nd International Conference on Machine Learning (PMLR), Volume 37, 2015, pp.1180-1189
【発明の概要】
【発明が解決しようとする課題】
【００２０】
教師有りデータを用意することは、多くの工数を必要とする。これに対し、教師無しデータを用意することは、一般的に容易である。そこで、機械学習には、教師有りデータと教師無しデータとを用いる半教師有り学習がある。【００２１】
データがどのドメインに属するかを示す情報であるドメイン情報を教師とした半教師有り学習に用いるデータにドメイン適応を適用する場合、ドメイン適応は、ドメイン情報を含むデータと、ドメイン情報を含まないデータとを用いる必要がある。【００２２】
しかし、非特許文献２に記載の敵対的学習のドメイン適応では、全てのデータにおいてドメイン情報が必要である。【００２３】
そのため、非特許文献２に記載の手法は、ドメイン情報のないデータを利用できないという問題点があった。言い換えると、非特許文献２に記載の手法は、ドメイン情報を教師とする半教師有り学習に適用できないという問題点があった。【００２４】
例えば、上記の顔画像の処理におけるドメイン情報として、「照明」、「撮影角度」、及び／又は「撮影したカメラの特性」などの属性情報が考えられる。しかし、全てのデータにおける属性情報に対して教師有りデータを用意することは、非常にコストが高くなる。【００２５】
そこで、一般的な機械学習におけるドメイン適応では、例えば、次のような手法が用いられている。【００２６】
第１の手法は、属性情報の付いた一部のデータを用いてドメイン適応を実行する手法である。しかし、第１の手法では、属性情報の付いていないデータを用いることができない。つまり、第１の手法は、ドメイン情報がないデータを半教師有り学習に適用できないという問題点を解決するものではない。【００２７】
第２の手法は、大まかな情報をドメイン情報として用いる手法である。大まかな情報とは、例えば、様々な属性情報（「照明」、「撮影角度」、及び「撮影したカメラの特性」）を包含した情報（例えば、「データの収集方法の違い」）である。しかし、第２の手法は、大まかな情報を用いるため、属性情報に関連する事前知識を有効に活用することが難しい。つまり、第２の手法は、学習の精度を向上させることが難しいという問題点があった。【００２８】
非特許文献１及び特許文献１の技術は、教師無しデータ（ドメイン情報無しデータ）に関連するものではないため、上記問題点を解決できない。【００２９】
本発明の目的は、上記問題点を解決し、ドメイン情報有りデータに加え、ドメイン情報無しデータを用いた半教師有り学習を実現する学習装置などを提供することにある。
【課題を解決するための手段】
【００３０】
本発明の一形態における学習装置は、ドメイン情報を教師とした半教師有り学習において、ドメイン情報を含む第１のデータ及びドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含むデータ処理手段と、第１のデータを用いてドメイン識別の結果における損失である第１の損失を算出する第１の損失算出手段と、第２のデータを用いて半教師有り学習における教師無し損失である第２の損失を算出する第２の損失算出手段と、第１のデータ及び第２のデータの少なくとも一部を用いて所定の処理の結果における損失である第３の損失を算出する第３の損失算出手段と、第２の損失及び第３の損失を小さく、かつ、第１の損失を大きくするように、第１のニューラルネットワークないし第３のニューラルネットワークのパラメータを修正するパラメータ修正手段とを含む。【００３１】
本発明の一形態における学習方法は、ドメイン情報を教師とした半教師有り学習において、ドメイン情報を含む第１のデータ及びドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含む学習装置が、第１のデータを用いてドメイン識別の結果における損失である第１の損失を算出し、第２のデータを用いて半教師有り学習における教師無し損失である第２の損失を算出し、第１のデータ及び第２のデータの少なくとも一部を用いて所定の処理の結果における損失である第３の損失を算出し、第２の損失及び第３の損失を小さく、かつ、第１の損失を大きくするように、第１のニューラルネットワークないし第３のニューラルネットワークのパラメータを修正する。【００３２】
本発明の一形態における記録媒体は、ドメイン情報を教師とした半教師有り学習において、ドメイン情報を含む第１のデータ及びドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含むコンピュータに、第１のデータを用いてドメイン識別の結果における損失である第１の損失を算出する処理と、第２のデータを用いて半教師有り学習における教師無し損失である第２の損失を算出する処理と、第１のデータ及び第２のデータの少なくとも一部を用いて所定の処理の結果における損失である第３の損失を算出する処理と、第２の損失及び第３の損失を小さく、かつ、第１の損失を大きくするように、第１のニューラルネットワークないし第３のニューラルネットワークのパラメータを修正する処理とをコンピュータに実行させるプログラムを記録する。
【発明の効果】
【００３３】
本発明に基づけば、ドメイン情報有りデータに加え、ドメイン情報無しデータを用いた半教師有り学習を実現するとの効果を奏することができる。
【図面の簡単な説明】
【００３４】
【図１】図１は、本発明における第１の実施形態に係る学習装置の構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態におけるデータ処理部のＮＮを模式的に示す図である。
【図３】図３は、変形例である学習装置の構成の一例を示すブロック図である。
【図４】図４は、統計的性質が異なる２つのデータを用いた場合のドメイン適応を概念的に示す図である。
【図５】図５は、第１の実施形態に係る学習装置の効果の説明に用いるデータを模式的に示す図である。
【図６】図６は、図５のデータに対して、一般的なドメイン適応を実行した場合の結果の一例を模式的に示す図である。
【図７】図７は、第１の実施形態に係る学習装置のデータ変換の一例を模式的に示す図である。
【図８】図８は、変形例におけるデータ処理部のＮＮを模式的に示す図である。
【図９】図９は、第１の実施形態に係る学習装置の動作の一例を示すフローチャートである。
【図１０】図１０は、第１の実施形態の概要である学習装置の構成の一例を示すブロック図である。
【図１１】図１１は、第１の実施形態に係る学習装置のハードウェア構成の一例を示すブロック図である。
【図１２】図１２は、第１の実施形態に係るデータ識別システムの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００３５】
次に、図面を参照して、本発明における実施形態について説明する。
【００３６】
なお、各図面は、本発明における実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【００３７】
さらに、本発明における実施形態が用いるデータは、制限されない。データは、画像データでもよく、音声データでもよい。以下の説明では、一例として、顔の画像を用いる場合がある。しかし、これは、対象となるデータを制限するものではない。
【００３８】
＜第１の実施形態＞
以下、図面を参照して、第１の実施形態について説明する。
【００３９】
第１の実施形態に係る学習装置１０は、教師有りデータと教師無しデータとを用いた機械学習（半教師有り学習）を実行する。より具体的には、学習装置１０は、教師有りデータであるドメイン情報有りデータ及び教師無しデータであるドメイン情報無しデータに対してドメイン適応に相当するデータ変換を実行し、クラス識別などの機械学習を実行する。つまり、学習装置１０は、ドメイン適応に相当する変換として、ドメイン情報有りデータとドメイン情報無しデータとを変換する。
【００４０】
なお、本実施形態は、学習対象となるドメイン及びタスクを限定されない。
【００４１】
ドメイン及びタスクの例を示す。複数の照明位置における顔画像及び非顔画像の分類（画像のクラスの識別）を想定する。
【００４２】
この場合、ドメインの一例は、照明の位置である。
【００４３】
ドメイン情報は、ドメインに関連する情報（例えば、照明位置に関連する情報）である。
【００４４】
また、この場合、タスクの一例は、クラス（顔画像及び非顔画像）の分類動作である。
【００４５】
タスク情報とは、タスクに関連する情報である。例えば、タスク情報は、分類（クラスの識別）の結果である。この場合、タスク情報に関連する損失の一例は、分類（クラスの識別）に関連する損失（例えば、クラスの識別における予測の誤差に基づく損失）である。
【００４６】
[構成の説明]
まず、第１の実施形態に係る学習装置１０の構成について、図面を参照して説明する。
【００４７】
図１は、本発明における第１の実施形態に係る学習装置１０の構成の一例を示すブロック図である。
【００４８】
学習装置１０は、ドメイン情報有り損失算出部１１０と、ドメイン情報無し損失算出部１２０と、タスク損失算出部１３０と、目的関数最適化部１４０と、データ処理部１５０とを含む。
【００４９】
ドメイン情報有り損失算出部１１０は、ドメイン情報有りデータ（第１のデータ）を用いて、ドメイン識別に関連する損失（第１の損失）を算出する。
【００５０】
ドメイン情報無し損失算出部１２０は、ドメイン情報無しデータ（第２のデータ）を用いて、半教師学習における教師無し損失（第２の損失）を算出する。
【００５１】
タスク損失算出部１３０は、ドメイン情報有りデータ及びドメイン情報無しデータの少なくとも一部を用いて、データ処理部１５０における所定の処理（以下、「タスク」とも呼ぶ）の結果に関連する損失（第３の損失）を算出する。
【００５２】
例えば、データ処理部１５０の処理がクラスの識別のタスクを含む場合、タスク情報は、クラス情報を含む。そこで、タスク損失算出部１３０は、クラス情報を用いて、クラスの識別における予測誤差に対応した損失を算出してもよい。この損失は、識別損失の一例である。
【００５３】
目的関数最適化部１４０は、第１の損失と、第２の損失と、第３の損失とを基に、タスクに関連するパラメータを含む目的関数を最適化するようにパラメータを算出又は修正する。目的関数が含む数式は、一つでもよく、複数でもよい。
【００５４】
目的関数の最適値は、目的関数に応じて決定される値である。例えば、目的関数の最適値が最小の値の場合、目的関数最適化部１４０は、目的関数を最小とするパラメータを算出する。あるいは、目的関数の最適値が最大の値の場合、目的関数最適化部１４０は、目的関数を最大とするパラメータを算出する。あるいは、制約がある場合、目的関数最適化部１４０は、制約を満たす範囲で、目的関数を最適値とするパラメータを算出する。
【００５５】
また、目的関数最適化部１４０は、目的関数の最適値として数学的な最適値ではなく、最適値を含む所定の範囲の値を用いてもよい。これは、理論的には最適値を求めることができる場合でも、最適値を求めるための計算時間が、非常に多くなる場合があるためである。また、データにおける誤差などを考慮すると、実効的な値には、許容範囲があるためである。
【００５６】
なお、後ほど説明するように、学習装置１０は、目的関数のパラメータの修正を繰り返す。そのため、目的関数のパラメータが収束するまでは、目的関数最適化部１４０の最適化は、その時点における損失に基づくパラメータの最適化となるが、最終的なパラメータの最適化とはなっていない場合がある。そこで、繰り返し動作の途中における目的関数最適化部１４０の動作は、最終的なパラメータの算出途中におけるパラメータの修正とも言える。
【００５７】
データ処理部１５０は、算出されたパラメータを用いて、所定の処理（例えば、クラスの識別のタスク）を実行する。その際、データ処理部１５０は、ドメイン情報有りデータ及びドメイン情報無しデータにおけるドメインとしての差を削減するようにデータを変換する。さらに、データ処理部１５０は、後ほど説明するように、ニューラルネットワーク（ＮＮ）を用いたタスク（処理）を実行する。そこで、以下の説明において、「タスク」と「ＮＮ」を区別しないで用いる場合がある。例えば、「タスクを実行するＮＮ」を、単に「タスク」又は「ＮＮ」と呼ぶ場合もある。ただし、これは、データ処理部１５０におけるタスク（処理）をＮＮに限定するものではない。
【００５８】
[動作の説明]
次に、図面を参照して、第１の実施形態に係る学習装置１０の動作を説明する。
【００５９】
図９は、第１の実施形態に係る学習装置１０の動作の一例を示すフローチャートである。
【００６０】
学習装置１０は、ドメイン情報有りデータとドメイン情報無しデータとを用いた半教師有り学習を実行する。より詳細には、学習装置１０は、ドメインを識別できなくなるように、ドメイン情報有りデータとドメイン情報無しデータとを変換する。
【００６１】
ドメイン情報有り損失算出部１１０は、ドメイン情報有りデータを基にドメインの識別に関連する損失（第１の損失）を算出する（ステップＳ１０１）。より詳細には、ドメイン情報有り損失算出部１１０は、その時点におけるタスク（又はタスクを実行するＮＮ）のパラメータを用いて、ドメイン情報有りデータに基づくドメイン識別に関連する損失（第１の損失）を算出する。
【００６２】
なお、図９に示されているように、学習装置１０は、ステップＳ１０１からＳ１０５の動作を繰り返す。「その時点におけるパラメータ」とは、前回のステップＳ１０４の動作において目的関数最適化部１４０が算出したパラメータである。最初の動作の場合、「その時点におけるパラメータ」とは、パラメータの初期値である。
【００６３】
ドメイン情報無し損失算出部１２０は、ドメイン情報無しデータに関連する損失（第２の損失）を算出する（ステップＳ１０２）。より詳細には、ドメイン情報無し損失算出部１２０は、その時点におけるパラメータとドメイン情報無しデータとを用いて、半教師有り学習における教師無し損失（第２の損失）を算出する。
【００６４】
タスク損失算出部１３０は、ドメイン情報有りデータとドメイン情報無しデータとの少なくとも一部を用いて、タスクに関連する損失（第３の損失）を算出する（ステップＳ１０３）。より詳細には、タスク損失算出部１３０は、その時点におけるパラメータを用いて、タスクの結果に関連する損失（第３の損失）を算出する。
【００６５】
なお、学習装置１０において、ステップＳ１０１ないしステップＳ１０３の動作の順番は、制限されない。学習装置１０は、どのステップの動作から実行してもよく、２つ又は全てのステップの動作を並列に実行してもよい。
【００６６】
目的関数最適化部１４０は、上記の損失（第１の損失、第２の損失、第３の損失）を基に、所定の目的関数を最適化するように、パラメータを修正する（ステップＳ１０４）。
【００６７】
学習装置１０は、所定の条件を満足するまで上記動作を繰り返す（ステップＳ１０５）。つまり、学習装置１０は、パラメータを学習する。
【００６８】
所定の条件とは、データ、目的関数、及び／又は適用分野に沿って決定される条件である。例えば、所定の条件とは、パラメータの変化が所定の値より小さくなることである。あるいは、所定の条件とは、利用者等から指定された繰り返しの回数である。
【００６９】
データ処理部１５０は、算出されたパラメータを用いて、ドメイン情報有りデータ及びドメイン情報無しデータを基に、所定のタスク（例えば、クラスの識別のタスク）を実行する（ステップＳ１０６）。
【００７０】
［動作の詳細例］
次に、各構成の詳細な動作例を説明する。
【００７１】
以下の説明において、対象となるデータの組は、データそのもの（例えば、顔画像データ）に加え、タスク情報が付されている。さらに、ドメイン情報有りデータには、ドメイン情報が付されている。以下、データを「ｘ」、タスク情報を「ｙ」、ドメイン情報を「ｚ」とする。データ「ｘ」などは、１つの数値のデータに限られず、複数のデータの組（例えば、画像データ）でもよい。
【００７２】
さらに、１つのデータの組を、（ｘ，ｙ，ｚ）とする。ただし、ドメイン情報無しデータは、ドメイン情報「ｚ」は含まないデータの組（ｘ，ｙ，−）である。
【００７３】
また、少なくとも一部のデータの組は、タスク情報「ｙ」を含まなくてもよい。ただし、以下の説明では、データの組は、タスク情報は含むとする。
【００７４】
まず、データ処理部１５０について説明する。
【００７５】
以下の説明に用いる学習装置１０は、機械学習の学習対象として、ニューラルネットワーク(Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＮＮ）)を用いる。詳細には、データ処理部１５０は、ＮＮを用いたタスクを実行する。
【００７６】
図２は、第１の実施形態におけるデータ処理部１５０のＮＮを模式的に示す図である。このＮＮは、３つのＮＮ（ＮＮｆ、ＮＮｃ、及びＮＮｄ）を含む。
【００７７】
ＮＮｆ（第１のニューラルネットワーク）は、ドメイン情報有りデータとドメイン情報無しデータとを入力とし、所定の変換後のデータを出力とするＮＮである。ＮＮｆのタスクは、所定の変換のタスクである。ＮＮｆのタスク（処理）は、ドメイン適応に相当するタスク（処理）である。ただし、ＮＮｆのタスクは、ドメイン適用に限定されない。ＮＮｆのタスクは、以下で説明する、クラス識別タスクの結果を向上させ、ドメイン識別タスクの結果を劣化させる変換であればよい。
【００７８】
ＮＮｃ（第２のニューラルネットワーク）は、ＮＮｆで変換されたデータ（変換後のデータ）を入力とし、変換後のデータのクラス識別（又は、クラスを予測）を出力とするＮＮである。ＮＮｃのタスク（処理）は、クラス識別のタスク（処理）である。クラスは、複数である。そこで、ＮＮｃは、一般的に、ベクトルとしてクラスを出力する。
【００７９】
ＮＮｄ（第３のニューラルネットワーク）は、ＮＮｆで変換されたデータ（変換後のデータ）を入力として、変換後のデータにおけるドメイン識別（又は、ドメインを予測）を出力とするＮＮである。ＮＮｄのタスク（処理）は、ドメイン識別のタスク（処理）である。ドメインは、複数である。そこで、ＮＮｄは、一般的に、ベクトルとしてドメインを出力する。
【００８０】
ＮＮｆ、ＮＮｃ、及びＮＮｄのパラメータは、それぞれ、パラメータθｆ（第１のパラメータ）、θｃ（第２のパラメータ）、及びθｄ（第３のパラメータ）とする。ただし、これは、各パラメータを一つに限定するものではない。一部、又は全てのパラメータが複数のパラメータで構成されてもよい。
【００８１】
以下の説明において、学習装置１０は、パラメータθｆ、θｃ、及びθｄを、機械学習の対象とする。ただし、機械学習の対象は、上記に限定されない。学習装置１０は、一部のパラメータを学習対象としてもよい。さらに、学習装置１０は、パラメータの学習を分けて実行してもよい。例えば、学習装置１０は、パラメータθｆ及びθｄを学習した後、パラメータθｃを学習してもよい。
【００８２】
以下の説明では、クラス識別のタスクは、データを２つのクラスのいずれであるかを識別するタスク（データを２つのクラスに分類するタスク）とする。さらに、ドメインを識別するタスクは、データを２つのドメインのいずれであるかを識別するタスク（データを２つのドメインに分類するタスク）とする。そして、タスク情報「ｙ」及びドメイン情報「ｚ」は、以下のように２値で表すとする。
ｙ∈［０，１］，ｚ∈［０，１］
次に、ドメイン情報有り損失算出部１１０、ドメイン情報無し損失算出部１２０、タスク損失算出部１３０、及び、目的関数最適化部１４０の動作の詳細例を説明する。
【００８３】
ドメイン情報有り損失算出部１１０は、ドメイン情報有りデータにおいて、ＮＮｆ及びＮＮｄに基づくドメイン情報の予測誤差に応じた損失（第１の損失）を算出する。本実施形態において、第１の損失を算出するための損失関数は、任意である。
【００８４】
例えば、ドメイン情報有り損失算出部１１０は、損失関数として、負の対数尤度を用いることができる。この説明において、ドメインは、２つである。そこで、ドメイン情報有り損失算出部１１０は、例えば、ドメイン情報の確率（Ｐｚ（ｚ））を用いて、ドメイン情報有りデータに関連する第１の損失（Ｌｄｓ）を以下のように算出してもよい。
Ｌｄｓ＝−ｌｏｇｅ（Ｐｚ（ｚ））
［Ｐｚ（０），Ｐｚ（１）］＝［ＮＮｄ（ＮＮｆ（ｘ｜θｆ）｜θｄ）］
第２式は、ドメイン情報の確率ベクトル［Ｐｚ（０），Ｐｚ（１）］が、データ（ｘ）におけるＮＮｄ及びＮＮｆの条件付事後確率ベクトル［ＮＮｄ（ＮＮｆ（ｘ｜θｆ）｜θｄ）］（つまり、ＮＮｄの出力であるドメインの事後確率ベクトル）であることを示す。
【００８５】
ドメイン情報有り損失算出部１１０は、全てのドメイン情報有りデータに関して、第１の損失を算出する。
【００８６】
ドメイン情報無し損失算出部１２０は、半教師有り学習におけるドメイン情報無しデータに関連する損失（第２の損失）を算出する。ドメイン情報無しデータは、教師無しデータである。そのため、第２の損失は、半教師有り学習における「教師無し損失」となる。本実施形態において、教師無し損失（第２の損失）は、任意である。
【００８７】
例えば、ドメイン情報無し損失算出部１２０は、教師無し損失として、一般的な半教師有り学習に用いられる教師無し損失を用いてもよい。例えば、ドメイン情報無し損失算出部１２０は、第２の損失として、次に示す一般的な半教師有りサポートベクターマシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ（ＳＶＭ））で用いられている損失（Ｌｄｕ）を用いてもよい。
Ｌｄｕ＝ｍａｘ（０，１−｜Ｐz（０）−０．５｜）
この損失（Ｌｄｕ）は、識別境界（Ｐ＝０．５）付近のデータの損失が大きくなる。そのため、この損失（Ｌｄｕ）を用いることは、識別境界付近にはデータが少ないという仮定を導入することに相当する。これに限られず、ドメイン情報無し損失算出部１２０は、識別境界とドメイン情報無しデータとの距離が短いと大きくなる損失を算出すればよい。
【００８８】
ドメイン情報無し損失算出部１２０は、全てのドメイン情報無しデータに関して、第２の損失を算出する。
【００８９】
このように、本実施形態の学習装置１０は、ドメイン情報無しデータに関連する損失を算出する。
【００９０】
タスク損失算出部１３０は、タスクに関連する第３の損失として、ドメイン情報有りデータ及びドメイン情報無しデータのタスク情報を用いて、ＮＮｃのタスクにおける予測誤差に応じた損失（第３の損失）を算出する。タスク情報が一部のデータに含まれない場合、タスク損失算出部１３０は、タスク情報を含むデータを用いて損失を算出する。
【００９１】
本実施形態において、第３の損失を算出する手法は、任意である。例えば、タスク情報がクラスに関連する情報（クラス情報）を含むとする。この場合、タスク損失算出部１３０は、一般的なクラスの識別損失を用いてもよい。あるいは、タスク損失算出部１３０は、第３の損失（Ｌｃ）として、次に示すタスク情報（クラス情報）の確率（Ｐｙ（ｙ））の負の対数尤度を用いてもよい。
Ｌｃ＝−ｌｏｇｅ（Ｐｙ（ｙ））
［Ｐy（０），Ｐｙ（１）］＝［ＮＮｃ（ＮＮｆ（ｘ｜θｆ）｜θｃ）］
第２式は、クラス情報の確率ベクトル［Ｐｙ（０），Ｐｙ（１）］が、データ（ｘ）におけるＮＮｃ及びＮＮｆの条件付事後確率ベクトル［ＮＮｃ（ＮＮｆ（ｘ｜θｆ）｜θｄ）］（つまり、ＮＮｃの出力であるクラスの事後確率ベクトル）であることを示す。
【００９２】
タスク損失算出部１３０は、タスク情報を含む全てのデータに関して、第３の損失を算出する。
【００９３】
目的関数最適化部１４０は、第１の損失と、第２の損失と、第３の損失とを基に目的関数を最適化するようなパラメータを算出（又はパラメータを修正）する。目的関数最適化部１４０が用いる手法は、任意である。例えば、目的関数最適化部１４０は、所定の複数の数式を含む目的関数において、全ての数式を同時に最適化するように、ＮＮｆのパラメータθｆと、ＮＮｃのパラメータθｃと、ＮＮｄのパラメータθｄとを算出する。
【００９４】
本実施形態の説明では、パラメータの修正として、目的関数最適化部１４０は、ＮＮｃとＮＮｄとの学習においては、それぞれを高精度に識別できるように学習する。一方、目的関数最適化部１４０は、ＮＮｆの学習においては、ＮＮｃの精度を高く、ＮＮｄの精度を低くするように学習する。このように、目的関数最適化部１４０は、敵対的学習を実行する。数式を用いてこの関係の一例を示すと、次のとおりとなる。なお、「ａｒｇｍｉｎ（）」は、括弧内の関数を最小値とする引き数（この場合パラメータ）を求める関数である。
θｃ＝ａｒｇｍｉｎ（Ｌｃ）
θｄ＝ａｒｇｍｉｎ（Ｌｄｓ＋Ｌｄｕ）
θｆ＝ａｒｇｍｉｎ（Ｌｃ−Ｌｄｓ＋Ｌｄｕ）
それぞれの等式は、次のことを示す。
（１）パラメータθｃは、タスク損失算出部１３０が算出する損失（Ｌｃ）を最小とするパラメータである。これは、第３の損失を小さくすることである。
（２）パラメータθｄは、ドメイン情報有り損失算出部１１０が算出する損失（Ｌｄｓ）とドメイン情報無し損失算出部１２０が算出する損失（Ｌｄｕ）との合計を最小とするパラメータであることを示す。これは、第１の損失と第３の損失を小さくすることである。
（３）パラメータθｆは、タスク損失算出部１３０が算出する損失（Ｌｃ）とドメイン情報無し損失算出部１２０が算出する損失（Ｌｄｕ）を小さくし、ドメイン情報有り損失算出部１１０が算出する損失（Ｌｄｓ）を大きくするパラメータであることを示す。これは、第２の損失及び第３の損失を小さくし、第１の損失を大きくすることである。
【００９５】
パラメータθｆは、第１の損失（Ｌｄｓ）が大きくなるように算出される。第１の損失（Ｌｄｓ）が大きいことは、ＮＮｄのドメイン識別の精度が低いことである。そして、ＮＮｄの精度が低いということは、ドメインが識別されていない、つまり、ドメインごとのデータの統計的性質が類似しているということである。
【００９６】
さらに、パラメータθｆは、第２の損失（Ｌｄｕ）及び第３の損失（Ｌｃ）が小さくなるように算出される。これらの損失が小さいことは、クラスの識別の精度が高いことである。
【００９７】
したがって、上記の場合、目的関数最適化部１４０は、ＮＮｆにおいて、ドメインの識別性を低下させる（例えば、ドメインごとのデータの統計的性質は似ている）が、クラスの識別性を向上するようにパラメータθｆを算出する。具体的には、目的関数最適化部１４０は、第２の損失（Ｌｄｕ）及び第３の損失（Ｌｃ）を小さくし、かつ、第１の損失（Ｌｄｓ）が大きくするようにパラメータθｆを算出する。
【００９８】
一方、パラメータθｄは、第１の損失（Ｌｄｓ）と第２の損失（Ｌｄｕ）を小さくするように算出される。これは、ドメイン識別の精度を高くすることである。
【００９９】
言い換えると、目的関数最適化部１４０は、敵対的学習を実現している。
【０１００】
データ処理部１５０は、このように算出されたパラメータθｆを適用したＮＮｆを用いて、ドメイン情報有りデータ及びドメイン情報無しデータを変換する。さらに、データ処理部１５０は、算出されたパラメータθｃを適用したＮＮｃを用いてクラスを識別する。そのため、データ処理部１５０は、ドメイン情報有りデータに加え、ドメイン情報無しデータにおいてもドメインにおける統計的性質は似ているが、クラスの識別性を向上した変換を実現する。このように、学習装置１０は、ドメイン情報有りデータ及びドメイン情報無しデータを用いた半教師有り学習を実現できる。
【０１０１】
さらに、目的関数最適化部１４０は、ドメイン情報無しデータを用いた損失（第２の損失）を、ＮＮｄ及びパラメータθｄ及びＮＮｆのパラメータθｆの算出に用いる。つまり、目的関数最適化部１４０は、これらのパラメータの算出にも半教師有り学習を適用している。そのため、学習装置１０は、ドメイン情報有りデータのみを用いた場合に比べ、より統計的性質のずれが少ない学習を実現できる。
【０１０２】
［効果の説明］
次に、第１の実施形態に係る学習装置１０の効果を説明する。
【０１０３】
第１の実施形態に係る学習装置１０は、半教師有り学習においても、ドメイン情報有りデータに加え、ドメイン情報無しデータを用いた学習を実現するとの効果を奏する。
【０１０４】
その理由は、次のとおりである。
【０１０５】
第１の実施形態に係る学習装置１０は、ドメイン情報を教師とした半教師有り学習を実行する。学習装置１０は、ドメイン情報有り損失算出部１１０と、ドメイン情報無し損失算出部１２０と、タスク損失算出部１３０と、目的関数最適化部１４０と、データ処理部１５０とを含む。データ処理部１５０は、ドメイン情報有りデータ及びドメイン情報無しデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークを含む。さらに、データ処理部１５０は、変換後のデータを入力としクラス識別の結果を出力とする第２のニューラルネットワークと、変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含む。ドメイン情報有り損失算出部１１０は、ドメイン情報有りデータを用いてドメイン識別の結果における損失である第１の損失を算出する。ドメイン情報無し損失算出部１２０は、ドメイン情報無しデータを用いて半教師有り学習における教師無し損失である第２の損失を算出する。タスク損失算出部１３０は、ドメイン情報有りデータ及びドメイン情報無しデータの少なくとも一部を用いてクラス識別結果における損失である第３の損失を算出する。目的関数最適化部１４０は、第２の損失及び第３の損失を小さく、かつ、第１の損失を大きくするように、第１のニューラルネットワークないし第３のニューラルネットワークのパラメータを修正する。
【０１０６】
学習装置１０は、ドメイン情報有りデータに関連する損失（第１の損失）と、ドメイン情報無しデータに関連する損失（第２の損失）と、所定の処理（タスク）に関連する損失（第３の損失）とを算出する。さらに、学習装置１０は、第１ないし第３の損失を用いて、所定の目的関数を最適化するようにデータ処理部１５０のパラメータを算出する。そして、データ処理部１５０は、そのパラメータを用いて、ドメイン情報有りデータとドメイン情報無しデータとを変換し、所定の処理（例えば、クラスの識別のタスク）を実行する。このように、学習装置１０は、ドメイン情報有りデータに加え、ドメイン情報無しデータを用いた半教師有り学習を実現できる。
【０１０７】
さらに、目的関数最適化部１４０は、敵対的学習を用いることができる。そのため、学習装置１０は、ドメイン情報無しデータを含む半教師有り学習においても、ドメイン適応に相当する敵対的学習を実現できる。
【０１０８】
その結果、学習装置１０は、ドメイン情報有りデータを用いた学習に比べ、ドメイン情報無しデータを用いてより学習の精度を向上できる。
【０１０９】
次に、図面を参照して、効果をさらに説明する。
【０１１０】
図５は、第１の実施形態に係る学習装置１０の効果の説明に用いるデータを模式的に示す図である。図５において、上下方向が、クラス（例えば、顔又は非顔）の識別方向である。左右方向が、ドメイン（例えば、照明の位置）の識別方向である。なお、ドメイン情報無しデータは、ドメインの位置が不明なデータであるので、本来的には、図５における位置が不定となる。しかし、説明の便宜のため、図５に示されているデータは、そのデータの取得時の情報などを参考にしたドメインの位置に配置されている。また、図５に示されているデータは、説明の便宜のため、クラスの位置に関しても他の情報などを参照して配置されている。
【０１１１】
図５において左側の楕円の範囲が、変換前の第１のドメイン（ドメイン１）の範囲を示す。ドメイン１の一例は、右からの照明である。
【０１１２】
円形のデータが、ドメイン情報有りデータを示す。白丸は、クラス１のデータである。黒丸は、クラス２のデータである。
【０１１３】
矩形のデータが、ドメイン情報無しデータを示す。白抜きの矩形が、クラス１のデータである。黒塗の矩形が、クラス２のデータである。
【０１１４】
右側の楕円の範囲が、第２のドメイン（ドメイン２）の範囲を示す。ドメイン２の一例は、左からの照明である。
【０１１５】
斜め十字のデータが、ドメイン情報有りデータを示す。白抜きの斜め十字が、クラス１のデータである。黒塗りの斜め十字が、クラス２のデータである。
【０１１６】
三角のデータが、ドメイン情報無しデータを示す。白抜きの三角が、クラス１のデータである。黒塗りの三角が、クラス２のデータである。
【０１１７】
図６は、図５のデータに対して、一般的なドメイン適応を実行した場合の結果の一例を模式的に示す図である。
【０１１８】
図６に示されているように、一般的なドメイン適用は、ドメイン情報有りデータを用いる。そのため、一般的なドメイン適用は、ドメイン情報無しデータを用いることができず、ドメイン情報有りデータを用いた結果となっている。この例では、ドメイン情報無しデータに対して、クラスの識別が不正確となっている。例えば、クラス境界が、ドメイン情報無しデータの近くとなっている。
【０１１９】
図７は、第１の実施形態に係る学習装置１０のデータ変換の一例を模式的に示す図である。
【０１２０】
図７に示されているように、学習装置１０は、ドメイン情報有りデータに加え、ドメイン情報無しデータを変換し、ドメインの方向に関してデータ全体の分布を一致させ、クラスを識別している。そのため、図７に示されているデータは、クラスの境界に近いデータがない。つまり、学習装置１０は、適切なクラスの識別を学習できた。このように、学習装置１０は、ドメイン情報無しデータがある場合でも、データ変換後のドメインにおける統計的性質が一致するようにデータを変換した学習を実現できる。
【０１２１】
［変形例］
タスクに関連する損失は、上記に限定されない。例えば、上記でタスク情報の一例として示したクラス情報は、取得できない場合がある。そこで、変形例として、タスク情報を取得できない場合に対応する学習装置１１について説明する。
【０１２２】
図３は、変形例である学習装置１１の構成の一例を示すブロック図である。学習装置１１は、タスク損失算出部１３０、目的関数最適化部１４０、及びデータ処理部１５０に替えて、タスク情報無し損失算出部１３１、目的関数最適化部１４１及びデータ処理部１５１を含む。
【０１２３】
データ処理部１５１は、データ処理部１５０とは異なるＮＮを含む。
【０１２４】
図８は、変形例におけるデータ処理部１５１のＮＮを模式的に示す図である。
【０１２５】
データ処理部１５１は、３つのＮＮ（ＮＮｆ、ＮＮｒ、ＮＮｄ）を含む。図８に示されているＮＮは、図２のＮＮと比べ、ＮＮｃの代わりにＮＮｒを含む。
【０１２６】
ＮＮｆ及びＮＮｄは、図２と同じである。
【０１２７】
ＮＮｒは、ＮＮｆで変換されたデータを入力として、変換後のデータを再構成したデータを出力とするＮＮである。再構成とは、変換後のデータを変換前のデータに相当するデータに構成し直す動作である。ＮＮｒのタスク（処理）は、再構成のタスク（処理）である。ＮＮｒは、第３のニューラルネットワークの一例である。
【０１２８】
タスク情報無し損失算出部１３１は、第３の損失として、再構成誤差を用いる。具体的には、タスク情報無し損失算出部１３１は、第３の損失として、「Ｌｃ」に替えて、次に示す「Ｌｒ」を用いる。損失（Ｌｒ）は、再構成誤差に相当する。また、再構成誤差は、下記に示されているように、２乗誤差である。
Ｌｒ＝｜｜ｘ−ＮＮｒ（ＮＮｆ（ｘ｜θｆ）｜θｒ）｜｜２
パラメータθｒは、ＮＮｒのパラメータである。｜｜・｜｜はノルムである。
【０１２９】
タスク情報無し損失算出部１３１は、クラスの識別などのタスク情報を用いない。そのため、タスク情報無し損失算出部１３１は、タスク情報を得られない場合でも、第３の損失を算出できる。
【０１３０】
目的関数最適化部１４１は、Ｌｃに替えてＬｒを用いてパラメータを最適化する。
【０１３１】
そして、データ処理部１５１は、目的関数最適化部１４１が最適化したパラメータを用いればよい。
【０１３２】
学習装置１１は、学習装置１０と同様に、ドメイン情報有りデータに加え、ドメイン情報無しデータを用いた半教師有り学習を実現するとの効果を奏する。
【０１３３】
その理由は、タスク情報無し損失算出部１３１と目的関数最適化部１４１とが、上記のとおり動作して、タスク情報がない場合でも、適切なパラメータを算出できるためである。そして、データ処理部１５１が、そのパラメータを用いて所定のタスク（例えば、データの再構成）を実行する。
【０１３４】
なお、学習装置１０が、タスク損失算出部１３０に加え、タスク情報無し損失算出部１３１を含んでもよい。この場合、目的関数最適化部１４０は、第３の損失として、タスク損失算出部１３０が算出した損失及びタスク情報無し損失算出部１３１が算出した損失を用いればよい。
【０１３５】
［実施形態の概要］
図面を参照して、学習装置１０及び学習装置１１の概要である学習装置１２を説明する。
【０１３６】
図１０は、第１の実施形態の概要である学習装置１２の構成の一例を示すブロック図である。
【０１３７】
学習装置１２は、ドメイン情報を教師とした半教師有り学習を実行する。学習装置１２は、第１の損失算出部１１２と、第２の損失算出部１２２と、第３の損失算出部１３２と、パラメータ修正部１４２と、データ処理部１５２とを含む。データ処理部１５２は、ドメイン情報を含む第１のデータ及びドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークを含む。さらに、データ処理部１５２は、変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含む。第１の損失算出部１１２は、第１のデータを用いてドメイン識別の結果における損失である第１の損失を算出する。第２の損失算出部１２２は、第２のデータを用いて半教師有り学習における教師無し損失である第２の損失を算出する。第３の損失算出部１３２は、第１のデータ及び第２のデータの少なくとも一部を用いて所定の処理の結果における損失である第３の損失を算出する。パラメータ修正部１４２は、第２の損失及び第３の損失を小さく、かつ、第１の損失を大きくするように、第１のニューラルネットワークないし第３のニューラルネットワークのパラメータを修正する。
【０１３８】
第１の損失算出部１１２の一例が、ドメイン情報有り損失算出部１１０である。第２の損失算出部１２２の一例が、ドメイン情報無し損失算出部１２０である。第３の損失算出部１３２の一例が、タスク損失算出部１３０及びタスク情報無し損失算出部１３１である。パラメータ修正部１４２の一例が、目的関数最適化部１４０及び目的関数最適化部１４１である。データ処理部１５２の一例が、データ処理部１５０及びデータ処理部１５１である。第１のデータの一例が、ドメイン情報有りデータである。第２のデータの一例が、ドメイン情報無しデータである。
【０１３９】
このように構成された学習装置１２は、学習装置１０及び学習装置１１と同様の効果を奏する。
【０１４０】
その理由は、学習装置１２の各構成が、学習装置１０及び学習装置１１の構成と同様の動作を実行するためである。
【０１４１】
なお、学習装置１２は、第１の実施形態の最小構成である。
【０１４２】
［ハードウェア構成］
以上の説明した学習装置１０、学習装置１１、及び、学習装置１２のハードウェア構成について学習装置１０を用いて説明する。
【０１４３】
学習装置１０は、次のように構成される。
【０１４４】
例えば、学習装置１０の各構成部は、ハードウェア回路で構成されてもよい。
【０１４５】
あるいは、学習装置１０において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
【０１４６】
あるいは、学習装置１０において、複数の構成部は、１つのハードウェアで構成されてもよい。
【０１４７】
あるいは、学習装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）とを含むコンピュータ装置として実現されてもよい。学習装置１０は、上記構成に加え、さらに、入出力接続回路（ＩＯＣ：Ｉｎｐｕｔ  ａｎｄ  Ｏｕｔｐｕｔ  Ｃｉｒｃｕｉｔ）を含むコンピュータ装置として実現されてもよい。あるいは、学習装置１０は、上記構成に加え、さらに、ネットワークインターフェース回路（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  ）を含むコンピュータ装置として実現されてもよい。
【０１４８】
図１１は、第１の実施形態に係る学習装置１０のハードウェア構成の一例である情報処理装置６００の構成の一例を示すブロック図である。
【０１４９】
情報処理装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータ装置を構成している。
【０１５０】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、図１に示されている各構成の機能を実現する。構成とは、ドメイン情報有り損失算出部１１０と、ドメイン情報無し損失算出部１２０と、タスク損失算出部１３０と、目的関数最適化部１４０と、データ処理部１５０とである。
【０１５１】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶媒体として使用してもよい。
【０１５２】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記録媒体７００が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０又は内部記憶装置６４０に保存して、保存したプログラムを基に動作してもよい。
【０１５３】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ−ＲＯＭ）又はフラッシュＲＯＭである。
【０１５４】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Ｄｙｎａｍｉｃ−ＲＡＭ）である。
【０１５５】
内部記憶装置６４０は、情報処理装置６００が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作してもよい。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）又はディスクアレイ装置である。
【０１５６】
ここで、ＲＯＭ６２０、内部記憶装置６４０、及び、記録媒体７００は、不揮発性（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）の記録媒体である。一方、ＲＡＭ６３０は、揮発性（ｔｒａｎｓｉｔｏｒｙ）の記録媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、記録媒体７００、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
【０１５７】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）カードである。さらに、ＩＯＣ６５０は、ＵＳＢのような有線に限らず、無線を用いてもよい。
【０１５８】
入力機器６６０は、情報処理装置６００の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【０１５９】
表示機器６７０は、情報処理装置６００の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【０１６０】
ＮＩＣ６８０は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）カードである。さらに、ＮＩＣ６８０は、有線に限らず、無線を用いてもよい。
【０１６１】
このように構成された情報処理装置６００は、学習装置１０と同様の効果を得ることができる。
【０１６２】
その理由は、情報処理装置６００のＣＰＵ６１０が、プログラムに基づいて学習装置１０と同様の機能を実現できるためである。
【０１６３】
［データ変換システム］
次に、図面を参照して、学習装置１０を含むデータ識別システム２０を説明する。以下の説明において、データ識別システム２０は、学習装置１０に替えて、学習装置１１、又は、学習装置１２を用いてもよい。
【０１６４】
図１２は、第１の実施形態に係るデータ識別システム２０の構成の一例を示すブロック図である。
【０１６５】
データ識別システム２０は、学習装置１０と、データ提供装置３０と、データ取得装置４０とを含む。
【０１６６】
学習装置１０は、データ提供装置３０からドメイン情報有りデータとドメイン情報無しデータとを取得し、上記で説明した動作を基にデータ処理（タスク）の結果（例えば、クラスの識別結果）をデータ取得装置４０に送信する。
【０１６７】
データ提供装置３０は、学習装置１０に、ドメイン情報有りデータとドメイン情報無しデータとを提供する。
【０１６８】
データ提供装置３０は、任意である。例えば、データ提供装置３０は、ドメイン情報有りデータとドメイン情報無しデータとを保存する保存装置でもよい。あるいは、データ提供装置３０は、画像データを取得し、一部の画像にドメイン情報を付してその画像データをドメイン情報有りデータとし、残りの画像データをドメイン情報無しデータとする撮像装置でもよい。
【０１６９】
さらに、データ提供装置３０は複数の装置を含んでもよい。
【０１７０】
例えば、データ提供装置３０は、図１２に一例として示されているように、ドメイン情報有りデータを保存する教師データ保存装置３２０と、ドメイン情報無しデータを取得する撮像装置３１０とを含んでもよい。
【０１７１】
データ取得装置４０は、学習装置１０から、処理結果（例えば、クラスの識別結果）を取得し、所定の処理を実行する。例えば、データ取得装置４０は、取得した識別結果を基に顔画像のパターン認識を実行する。さらに、データ取得装置４０は、複数の装置を含んでもよい。例えば、データ取得装置４０は、識別結果を用いてパターンを認識するパターン認識装置４１０と、パターン認識の結果及び／又は取得したクラスの識別結果を保存する結果保存装置４２０とを含んでもよい。
【０１７２】
なお、学習装置１０が、データ提供装置３０及び／又はデータ取得装置４０を含んでもよい。あるいは、データ提供装置３０又はデータ取得装置４０が、学習装置１０を含んでもよい。
【０１７３】
データ識別システム２０は、ドメイン情報有りデータに加え、ドメイン情報無しデータを用いて、適切な処理（例えば、パターン認識）を実現できるとの効果を奏する。
【０１７４】
その理由は、学習装置１０が、上記のとおり、データ提供装置３０から取得したドメイン情報有りデータとドメイン情報無しデータとを用いた学習を基にデータを処理する。そして、データ取得装置４０が、処理結果を用いて所定の処理（例えば、パターン認識）を実現するためである。
【０１７５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１７６】
この出願は、２０１７年１１月２２日に出願された日本出願特願２０１７−２２４８３３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１７７】
本発明は、画像処理及び音声処理に適用可能である。特に、本発明は、顔認識及び物体認識などのように、パターンを識別する用途に使用可能である。
【符号の説明】
【０１７８】
１０    学習装置
１１    学習装置
１２    学習装置
２０    データ識別システム
３０    データ提供装置
４０    データ取得装置
１１０    ドメイン情報有り損失算出部
１１２    第１の損失算出部
１２０    ドメイン情報無し損失算出部
１２２    第２の損失算出部
１３０    タスク損失算出部
１３１    タスク情報無し損失算出部
１３２    第３の損失算出部
１４０    目的関数最適化部
１４１    目的関数最適化部
１４２    パラメータ修正部
１５０    データ処理部
１５１    データ処理部
１５２    データ処理部
３１０    撮像装置
３２０    教師データ保存装置
４１０    パターン認識装置
４２０    結果保存装置
６００    情報処理装置
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
７００    記録媒体
【図１】
2019102962.tif 000003
【図２】
2019102962.tif 000004
【図３】
2019102962.tif 000005
【図４】
2019102962.tif 000006
【図５】
2019102962.tif 000007
【図６】
2019102962.tif 000008
【図７】
2019102962.tif 000009
【図８】
2019102962.tif 000010
【図９】
2019102962.tif 000011
【図１０】
2019102962.tif 000012
【図１１】
2019102962.tif 000013
【図１２】
2019102962.tif 000014
【手続補正書】
【提出日】令和2年4月22日(2020.4.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ドメイン情報を教師とした半教師有り学習において、
前記ドメイン情報を含む第１のデータ及び前記ドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、前記変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、前記変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含むデータ処理手段と、
前記第１のデータを用いて前記ドメイン識別の結果における損失である第１の損失を算出する第１の損失算出手段と、
前記第２のデータを用いて前記半教師有り学習における教師無し損失である第２の損失を算出する第２の損失算出手段と、
前記第１のデータ及び前記第２のデータの少なくとも一部を用いて前記所定の処理の結果における損失である第３の損失を算出する第３の損失算出手段と、
前記第２の損失及び前記第３の損失を小さく、かつ、前記第１の損失を大きくするように、前記第１のニューラルネットワークないし前記第３のニューラルネットワークのパラメータを修正するパラメータ修正手段と
を含む学習装置。
【請求項２】
前記第１の損失算出手段が、
前記第１のデータを用いて前記ドメイン情報の予測誤差に対応した前記第１の損失を算出する
請求項１に記載の学習装置。
【請求項３】
前記第２のニューラルネットワークが、
前記所定の処理として前記変換後のデータのクラス識別を実行し、
前記第２の損失算出手段が、
前記クラス識別の結果である識別境界と前記第２のデータとの距離に応じた前記第２の損失を算出し、
前記第３の損失算出手段が、
前記第３の損失として、前記クラス識別における予測誤差を算出する
請求項１又は２に記載の学習装置。
【請求項４】
前記第２のニューラルネットワークが、
前記変換後のデータの再構成を実行し、
前記第３の損失算出手段が、
前記第３の損失として、前記再構成における誤差を算出する
請求項１又は２に記載の学習装置。
【請求項５】
ドメイン情報を教師とした半教師有り学習において、
前記ドメイン情報を含む第１のデータ及び前記ドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、前記変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、前記変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含む学習装置が、
前記第１のデータを用いて前記ドメイン識別の結果における損失である第１の損失を算出し、
前記第２のデータを用いて前記半教師有り学習における教師無し損失である第２の損失を算出し、
前記第１のデータ及び前記第２のデータの少なくとも一部を用いて前記所定の処理の結果における損失である第３の損失を算出し、
前記第２の損失及び前記第３の損失を小さく、かつ、前記第１の損失を大きくするように、前記第１のニューラルネットワークないし前記第３のニューラルネットワークのパラメータを修正する
学習方法。
【請求項６】
ドメイン情報を教師とした半教師有り学習において、
前記ドメイン情報を含む第１のデータ及び前記ドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、前記変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、前記変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含むコンピュータに、
前記第１のデータを用いて前記ドメイン識別の結果における損失である第１の損失を算出する処理と、
前記第２のデータを用いて前記半教師有り学習における教師無し損失である第２の損失を算出する処理と、
前記第１のデータ及び前記第２のデータの少なくとも一部を用いて前記所定の処理の結果における損失である第３の損失を算出する処理と、
前記第２の損失及び前記第３の損失を小さく、かつ、前記第１の損失を大きくするように、前記第１のニューラルネットワークないし前記第３のニューラルネットワークのパラメータを修正する処理と
を実行させるプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
本発明の一形態におけるプログラムは、ドメイン情報を教師とした半教師有り学習において、ドメイン情報を含む第１のデータ及びドメイン情報を含まない第２のデータを入力とし所定の変換後のデータを出力とする第１のニューラルネットワークと、変換後のデータを入力とし所定の処理の結果を出力とする第２のニューラルネットワークと、変換後のデータを入力としドメイン識別の結果を出力とする第３のニューラルネットワークとを含むコンピュータに、第１のデータを用いてドメイン識別の結果における損失である第１の損失を算出する処理と、第２のデータを用いて半教師有り学習における教師無し損失である第２の損失を算出する処理と、第１のデータ及び第２のデータの少なくとも一部を用いて所定の処理の結果における損失である第３の損失を算出する処理と、第２の損失及び第３の損失を小さく、かつ、第１の損失を大きくするように、第１のニューラルネットワークないし第３のニューラルネットワークのパラメータを修正する処理とをコンピュータに実行させる。
【国際調査報告】
2019102962.tif 000015
2019102962.tif 000016
2019102962.tif 000017
2019102962.tif 000018