(57)【要約】  第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、を備える、学習装置が提供される。
2020129412.tif 000002
【特許請求の範囲】
【請求項１】
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、
を備える、学習装置。
【請求項２】
前記第１の学習部は、前記第１の誤差が減少するように前記第１のニューラルネットワークのパラメータを学習する、
請求項１に記載の学習装置。
【請求項３】
前記第１の学習部は、前記第１の誤差に基づいて誤差逆伝播法を用いて前記第１のニューラルネットワークのパラメータを学習する、
請求項２に記載の学習装置。
【請求項４】
前記第２の学習部は、前記第１の誤差が増加するように前記第２のニューラルネットワークの少なくとも一部のパラメータを学習する、
請求項１に記載の学習装置。
【請求項５】
前記第２の学習部は、前記第２の誤差と前記符号反転後データとに対して所定の演算が行われて得られた演算結果に基づいて前記第２のニューラルネットワークの少なくとも一部のパラメータを学習する、
請求項１に記載の学習装置。
【請求項６】
前記所定の演算は、加算を含む、
請求項５に記載の学習装置。
【請求項７】
前記第２の学習部は、前記第２の誤差と前記符号反転後データとに基づいて誤差逆伝播法を用いて前記第２のニューラルネットワークの少なくとも一部のパラメータを学習する、
請求項５に記載の学習装置。
【請求項８】
前記第２の学習部は、前記演算結果を前記第２のニューラルネットワークに伝達させる、
請求項７に記載の学習装置。
【請求項９】
前記第２のニューラルネットワークの後段に前記第１のニューラルネットワークと並列して第３のニューラルネットワークが接続されており、
前記第２の学習部は、前記第３のニューラルネットワークから前記第２のニューラルネットワークに向けて前記第２の誤差を伝達させる、
請求項１に記載の学習装置。
【請求項１０】
前記第２の学習部は、前記第３のニューラルネットワークの出力データと教師データとの第３の誤差に基づいて誤差逆伝播法を用いて前記第３のニューラルネットワークのパラメータを更新し、前記第２のニューラルネットワークに向けて前記第２の誤差を伝達させる、
請求項９に記載の学習装置。
【請求項１１】
前記第２のニューラルネットワークの後段には、複数の第１のニューラルネットワークが並列して接続されており、
前記第１の学習部は、前記複数の第１のニューラルネットワークのパラメータを、前記第２のニューラルネットワークへの入力データと同一のデータと、前記複数の第１のニューラルネットワークの出力データそれぞれとの第１の誤差に基づいて学習し、
前記第２の学習部は、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記複数の第１のニューラルネットワークそれぞれから伝達された誤差の符号反転後データとに基づいて学習する、
請求項１に記載の学習装置。
【請求項１２】
前記第１のニューラルネットワークから伝達された誤差から前記符号反転後データへの変換は、前記誤差の絶対値が大きいほど前記符号反転後データの絶対値が大きくなるようにしつつ符号を反転させる所定の変換である、
請求項１に記載の学習装置。
【請求項１３】
前記入力データは、画像データおよび音データの少なくともいずれか一つを含む、
請求項１に記載の学習装置。
【請求項１４】
前記第１の誤差は、平均二乗誤差である、
請求項１に記載の学習装置。
【請求項１５】
前記第３の誤差は、前記出力データに対してＳｏｆｔＭａｘ関数を適用した後に前記入力データとは異なるデータとの交差エントロピーを取った値または前記出力データに基づくセンターロスである、
請求項１０に記載の学習装置。
【請求項１６】
コンピュータを、
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、
を備える学習装置として機能させるためのプログラム。
【請求項１７】
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習し、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する学習部において学習されたニューラルネットワークに対して、
識別対象データを入力する入力部と、
前記ニューラルネットワークの出力データに基づいて、前記出力データに対応する識別情報を取得する取得部と、
を備える、識別装置。
【請求項１８】
前記識別情報には、前記出力データと同一のデータが特徴量としてあらかじめ対応付けられており、
前記取得部は、前記出力データに応じた前記特徴量に対応付けられた前記識別情報を取得する、
請求項１７に記載の識別装置。
【請求項１９】
前記取得部は、暗号化した出力データに基づいて前記識別情報を取得する、
請求項１８に記載の識別装置。
【請求項２０】
コンピュータを、
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習し、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する学習部において学習されたニューラルネットワークに対して、
識別対象データを入力する入力部と、
前記ニューラルネットワークの出力データに基づいて、前記出力データに対応する識別情報を取得する取得部と、
を備える、識別装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、学習装置、識別装置およびプログラムに関する。
【背景技術】
【０００２】
近年、識別用の入力データに基づいて特徴量を抽出し、抽出した特徴量に基づいて識別処理を行う技術が知られている。例えば、学習用の入力データに基づく特徴量の抽出および特徴量に基づく識別処理を学習することによって、特徴量の抽出および識別処理の精度を向上させる技術が知られている（例えば、非特許文献１参照）。入力データの例としては、個人の顔画像が含まれた画像データが挙げられる。このとき、識別処理は、画像データに顔が写った個人を識別する処理であり得る。あるいは、入力データの例としては、個人の音声データが含まれた音データが挙げられる。このとき、識別処理は、音データに声が記録された個人を識別する処理であり得る。【０００３】
このように、入力データには個人に関する高解像度な情報が含まれる。そのため、ユーザは入力データ自体を秘匿したいと考える場合がよくある。そこで、入力データの代わりに特徴量が保存され、保存された特徴量を用いて識別用の入力データに対する識別処理が行われることがある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｓｕｎ，Ｙｉ、他２名、”Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  Ｆａｃｅ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｆｒｏｍ  Ｐｒｅｄｉｃｔｉｎｇ  １０，０００  Ｃｌａｓｓｅｓ”、［ｏｎｌｉｎｅ］、ＣＶＰＲ２０１４、インターネット〈ｈｔｔｐ：／／ｍｍｌａｂ．ｉｅ．ｃｕｈｋ．ｅｄｕ．ｈｋ／ｐｄｆ／ＹｉＳｕｎ＿ＣＶＰＲ１４．ｐｄｆ〉
【非特許文献２】Ｙａｎｄｏｎｇ  Ｗｅｎ１、他３名、”Ａ  Ｄｉｓｃｒｉｍｉｎａｔｉｖｅ  Ｆｅａｔｕｒｅ  Ｌｅａｒｎｉｎｇ  Ａｐｐｒｏａｃｈ  ｆｏｒ  Ｄｅｅｐ  Ｆａｃｅ  Ｒｅｃｏｇｎｉｔｉｏｎ”、［ｏｎｌｉｎｅ］、ＥＣＣＶ２０１６、インターネット〈ｈｔｔｐ：／／ｙｄｗｅｎ．ｇｉｔｈｕｂ．ｉｏ／ｐａｐｅｒｓ／ＷｅｎＥＣＣＶ１６．ｐｄｆ〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、入力データの代わりに特徴量が保存される場合であっても、保存された特徴量から個人に関する情報が復元されてしまう危険性がある。そこで、識別処理を可能にしつつ個人に関する情報が復元されにくい特徴量を利用することが可能な技術が提供されることが望まれる。
【課題を解決するための手段】
【０００６】
本開示によれば、第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、を備える、学習装置が提供される。【０００７】
本開示によれば、コンピュータを、第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、を備える学習装置として機能させるためのプログラムが提供される。【０００８】
本開示によれば、第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習し、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する学習部において学習されたニューラルネットワークに対して、識別対象データを入力する入力部と、前記ニューラルネットワークの出力データに基づいて、前記出力データに対応する識別情報を取得する取得部と、を備える、識別装置が提供される。【０００９】
本開示によれば、コンピュータを、第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習し、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する学習部において学習されたニューラルネットワークに対して、識別対象データを入力する入力部と、前記ニューラルネットワークの出力データに基づいて、前記出力データに対応する識別情報を取得する取得部と、を備える、識別装置として機能させるためのプログラムが提供される。
【図面の簡単な説明】
【００１０】
【図１】一般的なニューラルネットワークの例を示す図である。
【図２】本開示の実施形態に係る情報処理システムの構成例を示す図である。
【図３】本開示の実施形態に係る学習装置の機能構成例を示す図である。
【図４】本開示の実施形態に係るクライアント装置の機能構成例を示す図である。
【図５】本開示の実施形態に係るサーバ装置の機能構成例を示す図である。
【図６】本開示の実施形態に係る学習処理に用いられるニューラルネットワークの例を示す図である。
【図７】第１のニューラルネットワークから伝達された誤差から符号反転後データへの変換の第１の例を示す図である。
【図８】第１のニューラルネットワークから伝達された誤差から符号反転後データへの変換の第２の例を示す図である。
【図９】本開示の実施形態に係る学習処理の流れの例を示すフローチャートである。
【図１０】本開示の実施形態に係る登録処理の流れの例を示すフローチャートである。
【図１１】本開示の実施形態に係る登録処理の流れの例を示すシーケンス図である。
【図１２】本開示の実施形態に係る識別処理の流れの例を示すフローチャートである。
【図１３】本開示の実施形態に係る識別処理の流れの例を示すシーケンス図である。
【図１４】変形例１に係るニューラルネットワークの例を示す図である。
【図１５】変形例２に係るニューラルネットワークの例を示す図である。
【図１６】本開示の実施形態に係る学習装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
また、本明細書および図面において、実質的に同一または類似の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合がある。ただし、実質的に同一または類似の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。また、異なる実施形態の類似する構成要素については、同一の符号の後に異なるアルファベットを付して区別する場合がある。ただし、類似する構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
【００１３】
なお、説明は以下の順序で行うものとする。
０．概要
１．実施形態の詳細
１．１．情報処理システムの構成例
１．２．学習装置の機能構成例
１．３．クライアント装置の機能構成例
１．４．サーバ装置の機能構成例
１．５．学習処理の詳細
１．６．学習処理の流れ
１．７．登録処理の流れ
１．８．識別処理の流れ
２．変形例
３．ハードウェア構成例
４．むすび
【００１４】
＜０．概要＞
近年、識別用の入力データに基づいて特徴量を抽出し、抽出した特徴量に基づいて識別処理を行う技術が知られている。例えば、学習用の入力データに基づく特徴量の抽出および特徴量に基づく識別処理を学習することによって、特徴量の抽出および識別処理の精度を向上させる技術が知られている。一例として、学習処理は、学習用の入力データに基づくニューラルネットワークのパラメータ（例えば、各処理層に含まれるニューロンの重みなど）の更新によって行われ得る。また、識別処理は、識別用の入力データに基づいて、パラメータ更新後のニューラルネットワークを用いて行われ得る。
【００１５】
入力データの例としては、個人の顔画像が含まれた画像データが挙げられる。このとき、識別処理は、画像データに顔が写った個人を識別する処理であり得る。あるいは、入力データの例としては、個人の音声データが含まれた音データが挙げられる。このとき、識別処理は、音データに声が記録された個人を識別する処理であり得る。本実施形態では、入力データとして個人の顔画像が含まれた画像データが用いられる場合を主に想定する。しかし、入力データとして個人の音声データが含まれた音データが用いられてもよいし、画像データおよび音データ以外のデータが用いられてもよい。
【００１６】
このように、入力データには個人に関する高解像度な情報が含まれる。そのため、ユーザは入力データ自体を秘匿したいと考える場合がよくある。そこで、入力データの代わりに特徴量が保存され、保存された特徴量を用いて識別用の入力データに対する識別処理が行われることがある。ここで、一般的な学習処理および識別処理について説明する。図１は、一般的なニューラルネットワークの例を示す図である。図１に示されるように、一般的なニューラルネットワーク８０は、畳み込み層８１、プーリング層８２、全結合層（ＦＣ層：Ｆｕｌｌ  Ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒ）８３、および、ＳｏｆｔＭａｘ  Ｌｏｓｓ層８４を含んでいる。
【００１７】
学習用の入力データＤ８０には、顔画像が含まれている。このような学習用の入力データＤ８０がニューラルネットワーク８０の上流側に入力されると、学習用の入力データＤ８０が上流から下流に順伝播（ｆｏｒｗａｒｄ  ｐｒｏｐａｇａｔｉｏｎ）される。畳み込み層８１およびプーリング層８２は、学習用の入力データＤ８０に基づいてＦｅａｔｕｒｅＤ８１（特徴量）を出力する。また、全結合層８３は、ＦｅａｔｕｒｅＤ８１に基づいて識別ＩＤ（Ｄ８２）を出力する。
【００１８】
ＳｏｆｔＭａｘ  Ｌｏｓｓ層８４は、識別ＩＤ（Ｄ８２）にＳｏｆｔＭａｘ関数を適用し、ＳｏｆｔＭａｘ関数適用後の識別ＩＤと教師データとの交差エントロピー（ｃｒｏｓｓ  ｅｎｔｒｏｐｙ）を取った値（ＳｏｆｔＭａｘ  Ｌｏｓｓ）を誤差の例として算出する。教師データは、学習用の入力データＤ８０に顔が写る個人を識別するためのＩＤである。
【００１９】
続いて、ＳｏｆｔＭａｘ  Ｌｏｓｓが下流から上流に（方向Ｒ０に）逆伝播（ｂａｃｋ  ｐｒｏｐａｇａｔｉｏｎ）されることによって（誤差逆伝播法を用いて）、畳み込み層８１および全結合層８３それぞれのパラメータがＳｏｆｔＭａｘ  Ｌｏｓｓが減少するように更新（学習）される。パラメータ更新手法としては、確率的勾配降下法（ＳＧＤ：Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ）などが用いられる。このような学習用の入力データＤ８０に基づくパラメータの更新が、Ｎ枚（Ｎは１以上の整数）の学習用の入力データＤ８０について繰り返し行われる。
【００２０】
かかる学習によって得られた畳み込み層８１およびプーリング層８２によって、入力データから特徴量が抽出され、抽出された特徴量が入力データの代わりに保存されて識別処理に利用される。しかし、入力データの代わりに特徴量が保存される場合であっても、保存された特徴量から個人に関する情報（ここでは、顔画像）が復元されてしまう危険性がある。例えば、オートエンコーダ（ＡＥ：Ａｕｔｏ  Ｅｎｃｏｄｅｒ）学習用の画像を復元するように学習されたオートエンコーダ（ＡＥ）によれば、特徴量から個人に関する情報（ここでは、顔画像）を容易に復元できることが予想される。
【００２１】
そこで、本開示の実施形態においては、識別処理を可能にする特徴量かつ個人に関する情報が復元されにくい特徴量を利用することが可能な技術を主に提案する。一例として、本開示の実施形態においては、入力データ（画像データ）に顔が写る個人の識別を可能にする特徴量かつ顔画像が復元されにくい特徴量を利用することが可能な技術を主に提案する。
【００２２】
以上、本開示の実施形態の概要について説明した。
【００２３】
＜１．実施形態の詳細＞
［１．１．情報処理システムの構成例］
続いて、図面を参照しながら、本開示の実施形態に係る情報処理システムの構成例について説明する。図２は、本開示の実施形態に係る情報処理システムの構成例を示す図である。図２に示したように、本開示の実施形態に係る情報処理システム１は、学習装置１０、クライアント装置２０、サーバ装置３０およびネットワーク５０を有する。学習装置１０、クライアント装置２０およびサーバ装置３０は、ネットワーク５０を介して互いに通信可能に構成されている。
【００２４】
学習装置１０は、例えば、コンピュータ（例えば、ワークステーションなど）によって構成される。学習装置１０は、例えば、アプリケーションの開発者によって利用され、アプリケーションの開発者による操作に基づいて（あるいは自動的に）アプリケーション（ニューラルネットワークアプリケーション）を生成する。また、学習装置１０は、学習用の入力データに基づいて学習を行うことによって、アプリケーション（学習済みのニューラルネットワークアプリケーション）を生成（構築）する。
【００２５】
学習装置１０は、アプリケーション（学習済みのニューラルネットワークアプリケーション）を生成すると、生成したアプリケーションを、ネットワーク５０を介してクライアント装置２０に提供する。また、学習装置１０は、学習によって得られた特徴量と識別情報との組み合わせを、ネットワーク５０を介してサーバ装置３０に提供する。なお、本開示の実施形態では、学習装置１０がクライアント装置２０およびサーバ装置３０とは独立して存在しているが、学習装置１０は、クライアント装置２０およびサーバ装置３０のいずれかに組み込まれていてもよい。また、本開示の実施形態では、学習装置１０がネットワーク５０に接続されているが、学習装置１０は、ネットワーク５０に接続されていなくてもよい。このとき、学習装置１０によって生成されたアプリケーションが事前にクライアント装置２０またはサーバ装置３０に組み込まれていてもよい。
【００２６】
クライアント装置２０は、識別処理を行う識別装置として機能し得る。クライアント装置２０は、典型的にはスマートフォンであってよいが、タブレット端末であってもよいし、携帯電話であってもよいし、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）であってもよいし、他の電子機器であってもよい。クライアント装置２０は、ユーザによる操作に基づいて（あるいは自動的に）アプリケーション（学習済みのニューラルネットワークアプリケーション）を学習装置１０からダウンロードすると、ダウンロードしたアプリケーションを実行する。クライアント装置２０は、アプリケーションの実行によって識別用の入力データに基づいて所定の識別処理を行う。
【００２７】
サーバ装置３０は、例えば、コンピュータによって構成される。サーバ装置３０は、クライアント装置２０からネットワーク５０を介して送信された要求を受信し、当該要求に応じた情報を、ネットワーク５０を介してクライアント装置２０に返信する。具体的には、サーバ装置３０は、識別用の入力データに基づいて抽出された特徴量をクライアント装置２０からネットワーク５０を介して受信すると、受信した特徴量に対応する識別情報を、ネットワーク５０を介してクライアント装置２０に返信する。なお、サーバ装置３０が有する機能は、クライアント装置２０が有していてもよい。
【００２８】
以上、本開示の実施形態に係る情報処理システム１の構成例について説明した。
【００２９】
［１．２．学習装置の機能構成例］
続いて、本開示の実施形態に係る学習装置１０の機能構成例について説明する。図３は、本開示の実施形態に係る学習装置１０の機能構成例を示す図である。図３に示したように、学習装置１０は、制御部１１０、操作部１２０、記憶部１３０、通信部１４０および出力部１５０を有している。
【００３０】
制御部１１０は、学習装置１０の各部の制御を実行する。制御部１１０は、例えば、１または複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）などによって構成されていてよいし、１または複数のＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などによって構成されてもよい。制御部１１０がＣＰＵまたはＧＰＵなどといった処理装置によって構成される場合、かかる処理装置は、電子回路によって構成されてよい。制御部１１０は、かかる処理装置によってプログラムが実行されることによって実現され得る。制御部１１０は、第１の学習部１１１および第２の学習部１１２を有している。これらのブロックの詳細は後に説明する。
【００３１】
操作部１２０は、開発者による操作の入力を受け付ける機能を有する。本開示の実施形態においては、操作部１２０がマウスおよびキーボードを含む場合を主に想定する。しかし、操作部１２０は、マウスおよびキーボードを含む場合に限定されない。例えば、操作部１２０は、タッチパネルを含んでもよいし、タッチパッドを含んでもよいし、スイッチを含んでもよいし、レバーを含んでもよいし、ボタンを含んでもよい。また、操作部１２０は、開発者の音声を検出するマイクロフォンを含んでもよいし、開発者の視線を検出するイメージセンサを含んでもよい。
【００３２】
記憶部１３０は、メモリを含んで構成され、制御部１１０によって実行されるプログラムを記憶したり、プログラムの実行に必要なデータを記憶したりする記録媒体である。また、記憶部１３０は、制御部１１０による演算のためにデータを一時的に記憶する。記憶部１３０は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
【００３３】
通信部１４０は、通信回路を含んで構成され、ネットワーク５０に接続されたクライアント装置２０との間で、ネットワーク５０を介して通信を行う機能を有する。また、通信部１４０は、ネットワーク５０に接続されたサーバ装置３０との間で、ネットワーク５０を介して通信を行う機能を有する。
【００３４】
出力部１５０は、開発者に対して情報を出力する機能を有する。出力部１５０の種類は限定されない。例えば、出力部１５０は、開発者に視認可能な表示を行うことが可能なディスプレイを含んでよく、ディスプレイは、液晶ディスプレイであってもよいし、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイであってもよいし、他のディスプレイであってもよい。あるいは、出力部１５０は、開発者に触覚を提示する触覚提示装置を含んでもよいし、開発者に音を提示するスピーカを含んでもよい。
【００３５】
以上、本開示の実施形態に係る学習装置１０の機能構成例について説明した。
【００３６】
［１．３．クライアント装置の機能構成例］
続いて、本開示の実施形態に係るクライアント装置２０の機能構成例について説明する。図４は、本開示の実施形態に係るクライアント装置２０の機能構成例を示す図である。図４に示したように、クライアント装置２０は、制御部２１０、操作部２２０、記憶部２３０、通信部２４０および出力部２５０を有している。
【００３７】
制御部２１０は、クライアント装置２０の各部の制御を実行する。制御部２１０は、例えば、１または複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）などによって構成されていてよいし、１または複数のＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などによって構成されてもよい。制御部２１０がＣＰＵまたはＧＰＵなどといった処理装置によって構成される場合、かかる処理装置は、電子回路によって構成されてよい。制御部２１０は、かかる処理装置によってプログラムが実行されることによって実現され得る。制御部２１０は、登録処理部２１１、識別対象データ入力部２１２、識別情報取得部２１３および出力制御部２１４を有している。これらのブロックの詳細は後に説明する。
【００３８】
操作部２２０は、ユーザによる操作の入力を受け付ける機能を有する。本開示の実施形態においては、操作部２２０がタッチパネルを含む場合を主に想定する。しかし、操作部２２０は、タッチパネルを含む場合に限定されない。例えば、操作部２２０は、マウスを含んでもよいし、キーボードを含んでもよいし、タッチパッドを含んでもよいし、スイッチを含んでもよいし、レバーを含んでもよいし、ボタンを含んでもよい。また、操作部２２０は、ユーザの音声を検出するマイクロフォンを含んでもよいし、ユーザの視線を検出するイメージセンサを含んでもよい。
【００３９】
記憶部２３０は、メモリを含んで構成され、制御部２１０によって実行されるプログラムを記憶したり、プログラムの実行に必要なデータを記憶したりする記録媒体である。また、記憶部２３０は、制御部２１０による演算のためにデータを一時的に記憶する。記憶部２３０は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
【００４０】
通信部２４０は、通信回路を含んで構成され、ネットワーク５０に接続された学習装置１０との間で、ネットワーク５０を介して通信を行う機能を有する。また、通信部２４０は、ネットワーク５０に接続されたサーバ装置３０との間で、ネットワーク５０を介して通信を行う機能を有する。
【００４１】
出力部２５０は、ユーザに対して情報を出力する機能を有する。出力部２５０の種類は限定されない。例えば、出力部２５０は、ユーザに視認可能な表示を行うことが可能なディスプレイを含んでよく、ディスプレイは、液晶ディスプレイであってもよいし、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイであってもよいし、他のディスプレイであってもよい。あるいは、出力部２５０は、ユーザに触覚を提示する触覚提示装置を含んでもよいし、ユーザに音を提示するスピーカを含んでもよい。
【００４２】
センサ部２６０は、センサを含んで構成され、センサによって識別用の入力データ（識別対象データ）を検出する。ここで、センサの種類は限定されない。例えば、センサは、（イメージセンサを含む）カメラを含んでもよいし、マイクロフォンを含んでもよいし、カメラおよびマイクロフォンとは異なるセンサを含んでもよい。センサ部２６０によって検出された識別用の入力データは、制御部２１０に提供され、アプリケーション（学習済みのニューラルネットワークアプリケーション）による識別処理に利用される。
【００４３】
以上、本開示の実施形態に係るクライアント装置２０の機能構成例について説明した。
【００４４】
［１．４．サーバ装置の機能構成例］
続いて、本開示の実施形態に係るサーバ装置３０の機能構成例について説明する。図５は、本開示の実施形態に係るサーバ装置３０の機能構成例を示す図である。図５に示したように、サーバ装置３０は、制御部３１０、記憶部３３０および通信部３４０を有している。
【００４５】
制御部３１０は、サーバ装置３０の各部の制御を実行する。制御部３１０は、例えば、１または複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）などによって構成されていてよいし、１または複数のＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などによって構成されてもよい。制御部３１０がＣＰＵまたはＧＰＵなどといった処理装置によって構成される場合、かかる処理装置は、電子回路によって構成されてよい。制御部３１０は、かかる処理装置によってプログラムが実行されることによって実現され得る。
【００４６】
記憶部３３０は、メモリを含んで構成され、制御部３１０によって実行されるプログラムを記憶したり、プログラムの実行に必要なデータを記憶したりする記録媒体である。また、記憶部３３０は、制御部３１０による演算のためにデータを一時的に記憶する。記憶部３３０は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
【００４７】
通信部３４０は、通信回路を含んで構成され、ネットワーク５０に接続された学習装置１０との間で、ネットワーク５０を介して通信を行う機能を有する。また、通信部３４０は、ネットワーク５０に接続されたクライアント装置２０との間で、ネットワーク５０を介して通信を行う機能を有する。
【００４８】
以上、本開示の実施形態に係るサーバ装置３０の機能構成例について説明した。
【００４９】
［１．５．学習処理の詳細］
続いて、本開示の実施形態に係る学習装置１０によって実行される学習処理の詳細について説明する。ここで、学習処理に使用されるデータ（学習用の入力データ）の種類は限定されない。例えば、学習用の入力データは、画像データおよび音データの少なくともいずれか一つを含んでよい。学習用の入力データは、Ｎ個（Ｎは１以上の整数）の画像データを含み、教師データは、Ｎ個の画像データそれぞれに対応するＩＤラベル（すなわち、Ｎ個のＩＤラベル）を含む。
【００５０】
以下では、学習用の入力データとして、ユーザの顔画像が含まれた画像データが用いられる場合を主に想定する。このとき、識別処理は、画像データに顔が写ったユーザを識別する処理であり得る。しかし、学習用の入力データとして、ユーザの音声データが含まれた音データが用いられてもよい。このとき、識別処理は、音データに声が記録されたユーザを識別する処理であり得る。
【００５１】
より具体的に、以下では、ユーザの顔が写った入力データ（識別用の入力データ）に基づいて、ユーザがあらかじめ登録された個人（人名）であることが識別された場合に、システムの利用権限がユーザに与えられる場合を主に想定する。すなわち、識別処理が顔認証を用いたログインに用いられる場合を主に想定する。しかし、ユーザの声が記録された入力データ（識別用の入力データ）に基づいて、ユーザがあらかじめ登録された個人（人名）であることが識別された場合に、システムの利用権限がユーザに与えられてもよい。すなわち、識別処理は音声認証を用いたログインに用いられてもよい。
【００５２】
なお、本明細書において使用される「ニューラルネットワーク」は、入力層、中間層および出力層のすべてを有する処理層群だけを必ずしも意味しない。例えば、本明細書において使用される「ニューラルネットワーク」は、入力層、中間層および出力層のすべてを有する処理層群から一部だけ（例えば、一部の中間層のみなど）が切り出された１または複数の処理層をも意味し得る。また、ニューラルネットワークを構成する各処理層は、１または複数のニューロンを含んで構成され、各ニューロンには重みおよびバイアスが設定されている。学習処理では主に各ニューロンに設定されている重みが更新される。
【００５３】
図６は、本開示の実施形態に係る学習処理に用いられるニューラルネットワークの例を示す図である。図６に示されるように、本開示の実施形態に係る学習処理に用いられるニューラルネットワーク７０−１は、畳み込み層７１−１、プーリング層７１−２、全結合層７２、および、ＳｏｆｔＭａｘ  Ｌｏｓｓ層７４を含んでいる。さらに、ニューラルネットワーク７０−１は、アップサンプリング層７３−１、畳み込み層７３−２およびＬ２  Ｌｏｓｓ層７５を含んでいる。
【００５４】
図６を参照すると、第１のニューラルネットワークＮ１は、アップサンプリング層７３−１および畳み込み層７３−２を含んでいる。しかし、第１のニューラルネットワークＮ１に含まれる処理層の種類および数は限定されない。すなわち、第１のニューラルネットワークＮ１は、１または複数の処理層を含んでいればよいし、処理層の種類もアップサンプリング層および畳み込み層に限定されない。一例として、第１のニューラルネットワークＮ１は、全結合層を含んでいてもよい。第１のニューラルネットワークＮ１の出力データの教師データＤ２０としては、学習用の入力データＤ１０と同一のデータが利用される。すなわち、第１のニューラルネットワークＮ１は、オートエンコーダ（ＡＥ：Ａｕｔｏ  Ｅｎｃｏｄｅｒ）として機能し得る。
【００５５】
第２のニューラルネットワークＮ２は、畳み込み層７１−１およびプーリング層７１−２を含んでいる。しかし、第２のニューラルネットワークＮ２に含まれる処理層の種類および数も限定されない。すなわち、第２のニューラルネットワークＮ２は、１または複数の処理層を含んでいればよいし、処理層の種類も畳み込み層およびプーリング層に限定されない。例えば、第２のニューラルネットワークＮ２は、全結合層を含んでいてもよい。第２のニューラルネットワークＮ２には、学習用の入力データＤ１０が入力される。また、第２のニューラルネットワークＮ２からは、ＦｅａｔｕｒｅＤ１２が出力される。
【００５６】
第３のニューラルネットワークＮ３は、全結合層７２を含んでいる。第３のニューラルネットワークＮ３には、ＦｅａｔｕｒｅＤ１２が入力される。また、第３のニューラルネットワークＮ３からは、個人を識別するための識別ＩＤ（Ｄ１３）が出力される。なお、図６に示した例ででは、第２のニューラルネットワークＮ２の後段に、第１のニューラルネットワークＮ１と並列して第３のニューラルネットワークＮ３が接続されている。しかし、第２のニューラルネットワークＮ２の後段に、第３のニューラルネットワークＮ３は接続されていなくてもよい。かかる場合には、第３のニューラルネットワークＮ３と教師データとの誤差（第３の誤差）の代わりに、第２のニューラルネットワークＮ２と教師データとの誤差（第２の誤差）が算出されればよい。
【００５７】
第１の学習部１１１は、学習用の入力データＤ１０を第２のニューラルネットワークＮ２に入力させる。そして、第１の学習部１１１は、学習用の入力データＤ１０に基づいて、第２のニューラルネットワークＮ２および第１のニューラルネットワークＮ１の順にデータを順伝播させる。これによって、第１の学習部１１１は、第１のニューラルネットワークＮ１の出力データを得る。第１の学習部１１１は、第１のニューラルネットワークＮ１の出力データと教師データＤ２０（学習用の入力データＤ１０と同一のデータ）との誤差（第１の誤差）に基づいて、第１のニューラルネットワークＮ１のパラメータを学習する。
【００５８】
ここでは、Ｌ２  Ｌｏｓｓ層７５によって、第１のニューラルネットワークＮ１の出力データと教師データＤ２０との平均二乗誤差（ＭＳＥ：Ｍｅａｎ  Ｓｑｕａｒｅｄ  Ｅｒｒｏｒ）（以下、単に「Ｌ２  Ｌｏｓｓ」とも言う。）が第１の誤差として算出される場合を想定する。しかし、第１の誤差は、Ｌ２  Ｌｏｓｓに限定されない。第１の学習部１１１は、Ｌ２  Ｌｏｓｓが減少するように第１のニューラルネットワークＮ１のパラメータを学習する。すなわち、第１の学習部１１１は、ＦｅａｔｕｒｅＤ１２から個人に関する情報（顔画像）が復元されやすくなるように第１のニューラルネットワークＮ１のパラメータを学習する。
【００５９】
例えば、第１の学習部１１１は、Ｌ２  Ｌｏｓｓを下流から上流に（方向Ｒ１に）逆伝播（ｂａｃｋ  ｐｒｏｐａｇａｔｉｏｎ）させることによって（誤差逆伝播法を用いて）、第１のニューラルネットワークＮ１のパラメータを学習する。パラメータ更新手法としては、確率的勾配降下法（ＳＧＤ：Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ）が用いられてよい。しかし、パラメータ更新手法は、ＳＧＤに限定されない。例えば、パラメータ更新手法は、モーメンタム（Ｍｏｍｅｎｔｕｍ）が用いられてもよいし、アダグラッド（ＡｄａＧｒａｄ）が用いられてもよいし、Ａｄａｍが用いられてもよい。
【００６０】
一方、第２の学習部１１２は、学習用の入力データＤ１０に基づいて、第２のニューラルネットワークＮ２の後段の第３のニューラルネットワークＮ３にもデータを順伝播させる。これによって、第２の学習部１１２は、第３のニューラルネットワークＮ３の出力データとして識別ＩＤ（Ｄ１３）を得る。第２の学習部１１２は、識別ＩＤ（Ｄ１３）と教師データとの第３の誤差に基づいて第３のニューラルネットワークＮ３のパラメータを更新する。
【００６１】
ここでは、ＳｏｆｔＭａｘ  Ｌｏｓｓ層７４によって、識別ＩＤ（Ｄ１３）に対してＳｏｆｔＭａｘ関数が適用され、ＳｏｆｔＭａｘ関数適用後の識別ＩＤと教師データとの交差エントロピーが取られた値（以下、単に「ＳｏｆｔＭａｘ  Ｌｏｓｓ」とも言う。）が第３の誤差として算出される場合を想定する。しかし、第３の誤差は、ＳｏｆｔＭａｘ  Ｌｏｓｓに限定されない。例えば、第３の誤差は、識別ＩＤ（Ｄ１３）に基づくセンターロス（Ｃｅｎｔｅｒ  Ｌｏｓｓ）であってもよい。センターロスの計算については、上記の非特許文献２に詳細に記載されている。
【００６２】
例えば、第２の学習部１１２は、ＳｏｆｔＭａｘ  Ｌｏｓｓが減少するように第３のニューラルネットワークＮ３のパラメータを学習する。第２の学習部１１２は、ＳｏｆｔＭａｘ  Ｌｏｓｓを下流から上流に（方向Ｒ０に）逆伝播（ｂａｃｋ  ｐｒｏｐａｇａｔｉｏｎ）させることによって（誤差逆伝播法を用いて）、第３のニューラルネットワークＮ３のパラメータを学習する。パラメータ更新手法としては、第１のニューラルネットワークＮ１のパラメータ学習に用いられるパラメータ更新手法と同様に限定されない。そして、第２の学習部１１２は、第３のニューラルネットワークＮ３から第２のニューラルネットワークＮ２に向けて誤差（第２の誤差）を伝達させる。
【００６３】
第２の学習部１１２は、Ｌ２  Ｌｏｓｓが増加するように（かつ、ＳｏｆｔＭａｘ  Ｌｏｓｓが減少するように）第２のニューラルネットワークＮ２の少なくとも一部のパラメータを学習する。すなわち、第２の学習部１１２は、ＦｅａｔｕｒｅＤ１２から個人に関する情報（顔画像）が復元されにくくなるように第２のニューラルネットワークＮ２のパラメータを学習する。これによって、識別処理を可能にしつつ個人に関する情報（顔画像）が復元されにくいＦｅａｔｕｒｅＤ１２を利用（学習）することが可能となる。
【００６４】
具体的に、第２の学習部１１２は、第２のニューラルネットワークＮ２の少なくとも一部のパラメータを、第３のニューラルネットワークＮ３から伝達された第２の誤差（学習用の入力データＤ１０とは異なるデータと第２のニューラルネットワークＮ２の出力データとの誤差）と、第１のニューラルネットワークＮ１から伝達された誤差の符号反転後データとに基づいて学習する。ここでは、第２のニューラルネットワークＮ２の全部（畳み込み層７１−１およびプーリング層７１−２）のパラメータが学習される場合を想定する。しかし、後に説明するように、必ずしも第２のニューラルネットワークＮ２の全部のパラメータが学習されなくてもよい。
【００６５】
ここで、第１のニューラルネットワークＮ１から伝達された誤差から符号反転後データへの変換は、第１のニューラルネットワークＮ１から伝達された誤差の絶対値が大きいほど符号反転後データの絶対値が大きくなるようにしつつ符号を反転させる所定の変換であるのがよい。これによって、第１のニューラルネットワークＮ１から伝達された誤差が大きいほど第２のニューラルネットワークＮ２に向けて伝達される誤差が小さくなる。ここで、第１のニューラルネットワークＮ１から伝達された誤差から符号反転後データへの変換の例について、図７および図８を参照しながら説明する。
【００６６】
図７は、第１のニューラルネットワークＮ１から伝達された誤差から符号反転後データへの変換の第１の例を示す図である。図８は、第１のニューラルネットワークＮ１から伝達された誤差から符号反転後データへの変換の第２の例を示す図である。図７および図８に示した例において、ｘは入力（第１のニューラルネットワークＮ１から伝達された誤差）を示している。一方、ｙは出力（符号反転後データ）を示している。図７には、ｙ＝−ｘが示されており、図８には、ｙ＝−ｔａｎｈ（ｘ）が示されている。しかし、第１のニューラルネットワークＮ１から伝達された誤差から符号反転後データへの変換は、これらの例に限定されない。
【００６７】
図６に戻って説明を続ける。第２の学習部１１２は、演算結果を第２のニューラルネットワークＮ２に伝達させる。第２の学習部１１２は、第３のニューラルネットワークＮ３から伝達された第２の誤差と符号反転後データとに対して所定の演算７６を行い、所定の演算７６によって得た演算結果に基づいて第２のニューラルネットワークＮ２の少なくとも一部のパラメータを学習する。ここで、所定の演算は、加算を含んでよい。これによって、Ｌ２  Ｌｏｓｓが増加するように、かつ、ＳｏｆｔＭａｘ  Ｌｏｓｓが減少するように、第２のニューラルネットワークＮ２の少なくとも一部のパラメータが学習される。
【００６８】
例えば、第２の学習部１１２は、第３のニューラルネットワークＮ３から伝達された第２の誤差と符号反転後データとに基づいて誤差逆伝播法を用いて第２のニューラルネットワークＮ２の少なくとも一部のパラメータを学習する。第２の学習部１１２は、第３のニューラルネットワークＮ３から伝達された第２の誤差を下流から上流に（方向Ｒ２に）逆伝播（ｂａｃｋ  ｐｒｏｐａｇａｔｉｏｎ）させることによって、第２のニューラルネットワークＮ２のパラメータを学習する。パラメータ更新手法としては、第１のニューラルネットワークＮ１のパラメータ学習に用いられるパラメータ更新手法と同様に限定されない。
【００６９】
Ｎ個の画像データおよびＮ個のＩＤラベルに基づくパラメータの更新が終わると、新たなＮ個の画像データおよびＮ個のＩＤラベルに基づくパラメータの更新が行われる。そして、所定の回数の計算（所定の回数のパラメータ更新）が終わった場合、学習処理が終了される。ここで、所定の回数は限定されない。例えば、所定の回数は、エポック単位（同じ学習用の入力データを繰り返し使った回数）で決められてもよいし、イテレーション単位（学習用の入力データを更新した回数）で決められてもよい。あるいは、誤差が所定値以下になった場合に学習処理が終了されてもよい。
【００７０】
以上、本開示の実施形態に係る学習装置１０によって実行される学習処理の詳細について説明した。
【００７１】
［１．６．学習処理の流れ］
続いて、本開示の実施形態に係る学習処理の流れの例について説明する。図９は、本開示の実施形態に係る学習処理の流れの例を示すフローチャートである。なお、図９に示したフローチャートは、本開示の実施形態に係る学習処理の流れの一例を示しているに過ぎない。したがって、本開示の実施形態に係る学習処理の流れは、図９のフローチャートに示された例に限定されない。
【００７２】
第１の学習部１１１は、学習用の入力データの例としてＮ人の顔画像を第２のニューラルネットワークＮ２に入力させる。そして、第１の学習部１１１は、Ｎ人の顔画像に基づいて、第２のニューラルネットワークＮ２および第１のニューラルネットワークＮ１の順にｆｏｒｗａｒｄ計算する（データを順伝播させる）（Ｓ１０）。これによって、第２のニューラルネットワークＮ２および第１のニューラルネットワークＮ１によって顔画像が推定されるため（Ｓ２１）、第１の学習部１１１は、推定された顔画像Ｄ２０を得る。
【００７３】
Ｌ２  Ｌｏｓｓ層７５は、推定された顔画像Ｄ２０とＮ人の顔画像とのＬ２  Ｌｏｓｓ（第１の誤差）を算出する（Ｓ２２）。第１の学習部１１１は、Ｌ２  Ｌｏｓｓに基づいて、第１のニューラルネットワークＮ１の下流から上流にｂａｃｋｗｏｒｄ計算する（誤差を逆伝播させる）（Ｓ２３）。これによって、第１のニューラルネットワークＮ１の重みが更新される（Ｓ２４）。第１の学習部１１１は、Ｌ２  Ｌｏｓｓの符号を反転させ（Ｓ２５）、符号反転後データを第２のニューラルネットワークＮ２に向けて伝達させる。
【００７４】
第２の学習部１１２は、Ｎ人の顔画像に基づいて、第２のニューラルネットワークＮ２の後段の第３のニューラルネットワークＮ３の上流から下流にｆｏｒｗａｒｄ計算する（データを順伝播させる）（Ｓ１０）。これによって、第３のニューラルネットワークＮ３によって識別ＩＤが推定されるため（Ｓ１１）、第２の学習部１１２は、識別ＩＤ（Ｄ１３）を得る。
【００７５】
ＳｏｆｔＭａｘ  Ｌｏｓｓ層７４は、識別ＩＤ（Ｄ１３）に対してＳｏｆｔＭａｘ関数を適用し、ＳｏｆｔＭａｘ関数適用後の識別ＩＤと教師データの例としてのＮ人のＩＤラベルとの誤差（ＳｏｆｔＭａｘ  Ｌｏｓｓ）を第３の誤差として算出する（Ｓ１２）。第２の学習部１１２は、ＳｏｆｔＭａｘ  Ｌｏｓｓに基づいて、第３のニューラルネットワークＮ３および第２のニューラルネットワークＮ２の順にｂａｃｋｗｏｒｄ計算を開始する（誤差を逆伝播させる）（Ｓ１３）。これによって、最初に第３のニューラルネットワークＮ３の重みが更新される（Ｓ１４）。そして、第２の学習部１１２は、第３のニューラルネットワークＮ３から第２のニューラルネットワークＮ２に向けて誤差（第２の誤差）を伝達させる。
【００７６】
第２の学習部１１２は、第１のニューラルネットワークＮ１から伝達された誤差の符号反転後データと、第３のニューラルネットワークＮ３から伝達された誤差とに対する所定の演算（例えば、加算）を行い（Ｓ２６）、得られた演算結果に基づいて、第２のニューラルネットワークＮ２の下流から上流に誤差を逆伝播させる。これによって、Ｌ２  Ｌｏｓｓが増加するように（かつ、ＳｏｆｔＭａｘ  Ｌｏｓｓが減少するように）第２のニューラルネットワークＮ２の重みが更新される（Ｓ２７）。すなわち、識別処理を可能にしつつ個人に関する情報（顔画像）が復元されにくいＦｅａｔｕｒｅが学習される。
【００７７】
第２のニューラルネットワークＮ２の重みの更新が終わった場合には、動作がＳ２８に移行される。そして、所定の回数の計算（所定の回数の重みの更新）が終わっていない場合（Ｓ２８において「ＮＯ」）、Ｓ１０に動作が移行され、新たなＮ人の顔画像およびＮ人のＩＤラベルに基づく重みの更新が行われる。一方、所定の回数の計算（所定の回数の重みの更新）が終わった場合（Ｓ２８において「ＹＥＳ」）、学習処理が終了される。
【００７８】
以上、本開示の実施形態に係る学習処理の流れについて説明した。
【００７９】
［１．７．登録処理の流れ］
クライアント装置２０は、ユーザによる操作に基づいて（あるいは自動的に）アプリケーション（学習済みのニューラルネットワークアプリケーション）を学習装置１０からダウンロードする。かかるアプリケーションは、パラメータ更新後の第２のニューラルネットワークＮ２を含んだアプリケーションであり、登録用の入力データ（例えば、画像データ）から特徴量（例えば、顔特徴量）の抽出が可能なアプリケーションである。クライアント装置２０は、ダウンロードしたアプリケーションを実行する。アプリケーションが実行されると、まず登録処理が実行される。
【００８０】
以下、本開示の実施形態に係る登録処理の流れの例について説明する。図１０は、本開示の実施形態に係る登録処理の流れの例を示すフローチャートである。なお、図１０に示したフローチャートは、本開示の実施形態に係る登録処理の流れの一例を示しているに過ぎない。したがって、本開示の実施形態に係る登録処理の流れは、図１０のフローチャートに示された例に限定されない。
【００８１】
図１０に示すように、登録処理が開始されると、登録処理部２１１は、センサ部２６０によって検出された画像データ（カメラ画像）を登録用の入力データの例として取得する（Ｓ３１）。図１０には、一例として顔Ｄ４１が写ったカメラ画像Ｄ４０が示されている。登録処理部２１１は、カメラ画像から顔が検出されるかを試み（Ｓ３２）、カメラ画像に顔がない場合には（Ｓ３３において「ＮＯ」）、Ｓ３１に動作を移行させる。一方、登録処理部２１１は、カメラ画像に顔がある場合には（Ｓ３３において「ＹＥＳ」）、カメラ画像から顔を識別できるかを判定する（Ｓ３４）。
【００８２】
登録処理部２１１は、カメラ画像から顔を識別できない場合には（Ｓ３４において「ＮＯ」）、Ｓ３１に動作を移行させる。一方、登録処理部２１１は、カメラ画像から顔を識別できる場合には（Ｓ３４において「ＹＥＳ」）、顔特徴量を計算する（Ｓ３５）。具体的には、登録処理部２１１は、カメラ画像を学習済みの第２のニューラルネットワークＮ２に入力させて、学習済みの第２のニューラルネットワークＮ２からの出力データを顔特徴量Ｄ４２として得る。
【００８３】
また、登録処理部２１１は、ユーザによって入力されたユーザ自身の人名Ｄ４３を取得する（Ｓ３６）。登録処理部２１１は、ユーザ自身の人名Ｄ４３と顔特徴量Ｄ４２とを、通信部２４０を介してサーバ装置３０に提供する。このとき、ネットワーク５０を顔特徴量Ｄ４２が流れることになるが、顔画像が復元されにくいように顔特徴量Ｄ４２が抽出されているため、顔特徴量Ｄ４２が第三者に盗まれたとしても、顔特徴量Ｄ４２から顔画像が第三者によって復元されてしまう危険性は低減される。さらに、顔特徴量Ｄ４２は、暗号化された上でクライアント装置２０からサーバ装置３０に提供されてもよい。そうすれば、顔特徴量Ｄ４２の頑健性がさらに向上する。
【００８４】
サーバ装置３０の制御部３１０は、通信部３４０を介してユーザ自身の人名Ｄ４３と顔特徴量Ｄ４２とを取得する。制御部３１０は、取得したユーザ自身の人名Ｄ４３がＤＢ３３１に既に登録されている場合には（Ｓ３７において「ＮＯ」）、Ｓ３１に動作を移行させる。
【００８５】
一方、制御部３１０は、取得したユーザ自身の人名Ｄ４３がまだＤＢ３３１に登録されていない場合には（Ｓ３７において「ＹＥＳ」）、ユーザ自身の人名Ｄ４３と顔特徴量Ｄ４２とをＤＢ３３１に保存する（Ｓ３８）。図１０に示した例では、Ｃさんの人名「Ｎａｍｅ  Ｃ」と特徴量「顔特徴量ｃ」との組み合わせがＤＢ３３１に保存されている。制御部３１０は、通信部３４０を介して登録完了通知をクライアント装置２０に返信する。
【００８６】
クライアント装置２０において、登録処理部２１１は、通信部２４０を介して登録完了通知を取得すると、登録完了した旨を表示し、登録された人名がアプリケーションによって利用される。
【００８７】
図１１は、本開示の実施形態に係る登録処理の流れの例を示すシーケンス図である。なお、図１１に示したシーケンス図は、本開示の実施形態に係る登録処理の流れの一例を示しているに過ぎない。したがって、本開示の実施形態に係る登録処理の流れは、図１１のシーケンス図に示された例に限定されない。
【００８８】
図１１に示すように、登録処理が開始されると、登録処理部２１１は、センサ部２６０によって検出された画像データ（カメラ画像）を取得する。登録処理部２１１は、カメラ画像から顔画像を取得し（Ｓ５１）、顔画像から顔特徴量を計算する（Ｓ５２）。具体的には、登録処理部２１１は、カメラ画像を学習済みの第２のニューラルネットワークＮ２に入力させて、学習済みの第２のニューラルネットワークＮ２からの出力データを顔特徴量ｃとして得る。
【００８９】
また、登録処理部２１１は、ユーザによって入力されたユーザ自身の人名「Ｃさん」を取得する（Ｓ５３）。登録処理部２１１は、ユーザ自身の人名「Ｃさん」と顔特徴量ｃとを、通信部２４０を介してサーバ装置３０に提供する。このとき、ネットワーク５０を顔特徴量Ｄ４２が流れることになるが、顔画像が復元されにくいように顔特徴量ｃが抽出されているため、顔特徴量ｃが第三者に盗まれたとしても、顔特徴量ｃから顔画像が第三者によって復元されてしまう危険性は低減される。さらに、顔特徴量ｃは、暗号化された上でクライアント装置２０からサーバ装置３０に提供されてもよい。そうすれば、顔特徴量ｃの頑健性がさらに向上する。
【００９０】
サーバ装置３０の制御部３１０は、通信部３４０を介してユーザ自身の人名「Ｃさん」と顔特徴量ｃとを取得する。制御部３１０は、取得したユーザ自身の人名「Ｃさん」と顔特徴量ｃとをＤＢ３３１に追加する（Ｓ５４）。図１１に示した例では、Ｃさんの人名「Ｎａｍｅ  Ｃ」と「顔特徴量ｃ」との組み合わせがＤＢ３３１に追加されている。制御部３１０は、通信部３４０を介して登録完了通知Ｄ４４をクライアント装置２０に返信する。
【００９１】
クライアント装置２０において、登録処理部２１１は、通信部２４０を介して登録完了通知Ｄ４４を取得すると、登録が完了した旨が出力部２５０によって出力されるように出力部２５０を制御する。登録された人名は、クライアント装置２０においてアプリケーションによって利用される（Ｓ５５）。
【００９２】
以上、本開示の実施形態に係る登録処理の流れについて説明した。
【００９３】
［１．８．識別処理の流れ］
上記のようにして登録処理が終わった後、ユーザはアプリケーションを再度利用しようとする場合、アプリケーションを再度実行するための操作を行う。クライアント装置２０は、ユーザによる操作に基づいて再度アプリケーションを実行する。アプリケーションが実行されると、識別処理が実行される。
【００９４】
以下、本開示の実施形態に係る識別処理の流れの例について説明する。図１２は、本開示の実施形態に係る識別処理の流れの例を示すフローチャートである。なお、図１２に示したフローチャートは、本開示の実施形態に係る識別処理の流れの一例を示しているに過ぎない。したがって、本開示の実施形態に係る識別処理の流れは、図１２のフローチャートに示された例に限定されない。
【００９５】
図１２に示すように、識別処理が開始されると、識別対象データ入力部２１２は、センサ部２６０によって検出された画像データ（カメラ画像）を識別用の入力データの例として取得する（Ｓ４１）。図１２には、一例として顔Ｄ１１が写ったカメラ画像Ｄ１０が示されている。識別対象データ入力部２１２は、カメラ画像から顔が検出されるかを試み（Ｓ４２）、カメラ画像に顔がない場合には（Ｓ４３において「ＮＯ」）、Ｓ４１に動作を移行させる。一方、識別対象データ入力部２１２は、カメラ画像に顔がある場合には（Ｓ４３において「ＹＥＳ」）、カメラ画像から顔を識別できるかを判定する（Ｓ４４）。
【００９６】
識別対象データ入力部２１２は、カメラ画像から顔を識別できない場合には（Ｓ４４において「ＮＯ」）、Ｓ４１に動作を移行させる。一方、識別対象データ入力部２１２は、カメラ画像から顔を識別できる場合には（Ｓ４４において「ＹＥＳ」）、顔特徴量を計算する（Ｓ４５）。具体的には、識別対象データ入力部２１２は、カメラ画像を学習済みの第２のニューラルネットワークＮ２に入力させて、学習済みの第２のニューラルネットワークＮ２からの出力データを顔特徴量Ｄ１２として得る。
【００９７】
また、識別情報取得部２１３は、顔特徴量Ｄ１２を、通信部２４０を介してサーバ装置３０に提供する。このとき、ネットワーク５０を顔特徴量Ｄ１２が流れることになるが、顔画像が復元されにくいように顔特徴量Ｄ１２が抽出されているため、顔特徴量Ｄ１２が第三者に盗まれたとしても、顔特徴量Ｄ１２から顔画像が第三者によって復元されてしまう危険性は低減される。さらに、顔特徴量Ｄ１２は、暗号化された上でクライアント装置２０からサーバ装置３０に提供されてもよい。そうすれば、顔特徴量Ｄ１２の頑健性がさらに向上する。
【００９８】
サーバ装置３０の制御部３１０は、通信部３４０を介して顔特徴量Ｄ１２を取得する。制御部３１０は、取得した顔特徴量Ｄ１２とＤＢ３３１に登録されている顔特徴量との距離を比較する（Ｓ４６）。制御部３１０は、顔特徴量Ｄ１２とＤＢ３３１に登録されている全ての顔特徴量それぞれとの距離を比較し終わるまでは（Ｓ４７において「ＮＯ」）、Ｓ４６に動作を移行させる。一方、制御部３１０は、顔特徴量Ｄ１２とＤＢ３３１に登録されている全ての顔特徴量それぞれとの距離を比較し終わった場合には（Ｓ４７において「ＹＥＳ」）、顔特徴量Ｄ１２との距離が最も小さい特徴量に対応する人名を識別情報の例としてＤＢ３３１から取得する（Ｓ４８）。
【００９９】
制御部３１０は、通信部３４０を介して人名をクライアント装置２０に返信する。クライアント装置２０において、識別情報取得部２１３は、通信部２４０を介して識別情報の人名を取得する。出力制御部２１４は、人名が出力されるように出力部２５０を制御する（Ｓ４９）。出力された人名はアプリケーションによって利用される。
【０１００】
図１３は、本開示の実施形態に係る識別処理の流れの例を示すシーケンス図である。なお、図１３に示したシーケンス図は、本開示の実施形態に係る識別処理の流れの一例を示しているに過ぎない。したがって、本開示の実施形態に係る識別処理の流れは、図１３のシーケンス図に示された例に限定されない。
【０１０１】
図１３に示すように、識別処理が開始されると、識別対象データ入力部２１２は、センサ部２６０によって検出された画像データ（カメラ画像）を取得する。識別対象データ入力部２１２は、カメラ画像から顔画像を取得し（Ｓ６１）、顔画像から顔特徴量を計算する（Ｓ６２）。具体的には、識別対象データ入力部２１２は、カメラ画像を学習済みの第２のニューラルネットワークＮ２に入力させて、学習済みの第２のニューラルネットワークＮ２からの出力データを顔特徴量ｘとして得る。
【０１０２】
また、識別情報取得部２１３は、顔特徴量ｘを、通信部２４０を介してサーバ装置３０に提供する。このとき、ネットワーク５０を顔特徴量ｘが流れることになるが、顔画像が復元されにくいように顔特徴量ｘが抽出されているため、顔特徴量ｘが第三者に盗まれたとしても、顔特徴量ｘから顔画像が第三者によって復元されてしまう危険性は低減される。さらに、顔特徴量ｘは、暗号化された上でクライアント装置２０からサーバ装置３０に提供されてもよい。そうすれば、顔特徴量ｘの頑健性がさらに向上する。
【０１０３】
サーバ装置３０の制御部３１０は、通信部３４０を介して顔特徴量ｘを取得する。制御部３１０は、取得した顔特徴量ｘとＤＢ３３１に登録されている顔特徴量との距離を計算し、顔特徴量ｘと最も距離が近い顔特徴量に対応する人名（人名Ａとする）をＤＢ３３１から取得する（Ｓ６３）。図１３に示した例では、「顔特徴量ａ」に対応するＡさんの人名「Ｎａｍｅ  Ａ」がＤＢ３３１から取得されている。制御部３１０は、通信部３４０を介して人名Ａをクライアント装置２０に返信する。
【０１０４】
クライアント装置２０において、識別情報取得部２１３は、通信部２４０を介して人名Ａを取得する。そして、出力制御部２１４は、人名Ａ「Ａさん」が識別された旨が出力部２５０によって出力されるように出力部２５０を制御する。識別された人名は、アプリケーションによって利用される（Ｓ６４）。
【０１０５】
以上、本開示の実施形態に係る識別処理の流れについて説明した。
【０１０６】
＜２．変形例＞
続いて、各種の変形例について説明する。上記では、第２のニューラルネットワークＮ２の後段に１つの第１のニューラルネットワークＮ１が接続されている例を説明した。しかし、第２のニューラルネットワークＮ２の後段には、複数の第１のニューラルネットワークＮ１が並列して接続されていてもよい。以下、図１４を参照しながら、第２のニューラルネットワークＮ２の後段に、複数の第１のニューラルネットワークＮ１が並列して接続される例を変形例１として説明する。
【０１０７】
図１４は、変形例１に係るニューラルネットワークの例を示す図である。図１４を参照すると、変形例１に係るニューラルネットワーク７０−２が示されている。第２のニューラルネットワークＮ２の後段に３つの第１のニューラルネットワーク（第１のニューラルネットワークＮ１１〜Ｎ１３）が並列して接続されている。しかし、第２のニューラルネットワークＮ２の後段に接続されている第１のニューラルネットワークの数は限定されない。
【０１０８】
具体的に、第１のニューラルネットワークＮ１１は、アップサンプリング層７３−１、および、畳み込み層７３−２を含んでいる。第１のニューラルネットワークＮ１２は、アップサンプリング層７３−３、および、畳み込み層７３−３を含んでいる。第１のニューラルネットワークＮ１３は、アップサンプリング層７３−５、アップサンプリング層７３−６、および、畳み込み層７３−７を含んでいる。
【０１０９】
図１４に示すように、第１のニューラルネットワークＮ１１の出力データの教師データＤ５１としては、学習用の入力データＤ１０と同一のデータが利用される。また、第１のニューラルネットワークＮ１１においては、Ｌ２  Ｌｏｓｓ層７５−１によって第１のニューラルネットワークＮ１１の出力データと教師データＤ５１とのＬ２  Ｌｏｓｓが下流から上流に（方向Ｒ１１に）逆伝播され、これによって第１のニューラルネットワークＮ１１のパラメータが学習される。
【０１１０】
同様に、第１のニューラルネットワークＮ１２の出力データの教師データＤ５２としては、学習用の入力データＤ１０と同一のデータが利用される。また、第１のニューラルネットワークＮ１２においては、Ｌ２  Ｌｏｓｓ層７５−２によって第１のニューラルネットワークＮ１２の出力データと教師データＤ５２とのＬ２  Ｌｏｓｓが下流から上流に（方向Ｒ１２に）逆伝播され、これによって第１のニューラルネットワークＮ１２のパラメータが学習される。
【０１１１】
第１のニューラルネットワークＮ１３の出力データの教師データＤ５３としては、学習用の入力データＤ１０と同一のデータが利用される。また、第１のニューラルネットワークＮ１３においては、Ｌ２  Ｌｏｓｓ層７５−３によって第１のニューラルネットワークＮ１３の出力データと教師データＤ５３とのＬ２  Ｌｏｓｓが下流から上流に（方向Ｒ１３に）逆伝播され、これによって第１のニューラルネットワークＮ１３のパラメータが学習される。
【０１１２】
第２の学習部１１２は、第２のニューラルネットワークＮ２の少なくとも一部のパラメータを、第３のニューラルネットワークＮ３から伝達された第２の誤差（学習用の入力データＤ１０とは異なるデータと第２のニューラルネットワークＮ２の出力データとの誤差）と、第１のニューラルネットワークＮ１１〜Ｎ１３それぞれから伝達された誤差の符号反転後データとに基づいて学習する。
【０１１３】
第１のニューラルネットワークＮ１１〜Ｎ１３それぞれに含まれる処理層の種類および数は限定されない。しかし、第１のニューラルネットワークＮ１１〜Ｎ１３の少なくとも一部の間においてネットワーク構成（処理層の構成）を異ならせたり、パラメータの初期値を異ならせたりするとよい。これによって、第２のニューラルネットワークＮ２によって個人に関する情報（顔画像）への復元がより困難な特徴量が抽出され得る。
【０１１４】
以上、変形例１について説明した。また、上記では、第２のニューラルネットワークＮ２の全部（畳み込み層７１−１およびプーリング層７１−２）のパラメータが学習される例について説明した。しかし、第２のニューラルネットワークＮ２の一部のみのパラメータが学習されてもよい。以下、図１５を参照しながら、第２のニューラルネットワークＮ２を構成する一部の処理層のパラメータが更新されない例を変形例２として説明する。
【０１１５】
図１５は、変形例２に係るニューラルネットワークの例を示す図である。図１５を参照すると、変形例２に係るニューラルネットワーク７０−３が示されている。第２のニューラルネットワークＮ２は、畳み込み層７１−１およびプーリング層７１−２を有する他、畳み込み層７１−１よりも上流に畳み込み層７７を有している。畳み込み層７７は、Ｆｅａｔｕｒｅ（Ｄ７１）を抽出する特徴量抽出機能を有する。そして、畳み込み層７１−１およびプーリング層７１−２は、Ｆｅａｔｕｒｅ（Ｄ７１）に基づいてＦｅａｔｕｒｅ’（Ｄ７２）を出力する特徴量変換機能を有する。特徴量抽出機能を有する処理層および特徴量変換機能を有する処理層それぞれの種類および数は限定されない。
【０１１６】
ここで、特徴量抽出機能を有する畳み込み層７７のパラメータは事前に学習されていてよい。そして、第２の学習部１１２は、第２のニューラルネットワークＮ２の一部（特徴量変換機能を有する畳み込み層７１−１およびプーリング層７１−２）のみのパラメータを、第３のニューラルネットワークＮ３から伝達された第２の誤差と、第１のニューラルネットワークＮ１から伝達された誤差の符号反転後データとに基づいて学習してよい。これによって、個人に関する情報（顔画像）への復元が困難な特徴量であり、かつ識別処理を可能にする特徴量の抽出（Ｆｅａｔｕｒｅ（Ｄ７１）からＦｅａｔｕｒｅ’（Ｄ７２）への変換）を学習することができる。
【０１１７】
以上、変形例２について説明した。
【０１１８】
＜３．ハードウェア構成例＞
次に、図１６を参照して、本開示の実施形態に係る学習装置１０のハードウェア構成例について説明する。図１６は、本開示の実施形態に係る学習装置１０のハードウェア構成例を示すブロック図である。なお、学習装置１０は、必ずしも図１６に示したハードウェア構成の全部を有している必要はなく、学習装置１０の中に、図１６に示したハードウェア構成の一部は存在しなくてもよい。また、クライアント装置２０およびサーバ装置３０それぞれのハードウェア構成も、学習装置１０のハードウェア構成と同様に実現されてよい。
【０１１９】
図１６に示すように、学習装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０３、およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０５を含む。また、学習装置１０は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、通信装置９２５を含んでもよい。さらに、学習装置１０は、必要に応じて、撮像装置９３３、およびセンサ９３５を含んでもよい。学習装置１０は、ＣＰＵ９０１に代えて、またはこれとともに、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）またはＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と呼ばれるような処理回路を有してもよい。
【０１２０】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、学習装置１０内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時的に記憶する。ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５は、ＣＰＵバスなどの内部バスにより構成されるホストバス９０７により相互に接続されている。さらに、ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。
【０１２１】
入力装置９１５は、例えば、ボタンなど、ユーザによって操作される装置である。入力装置９１５は、マウス、キーボード、タッチパネル、スイッチおよびレバーなどを含んでもよい。また、入力装置９１５は、ユーザの音声を検出するマイクロフォンを含んでもよい。入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、学習装置１０の操作に対応した携帯電話などの外部接続機器９２９であってもよい。入力装置９１５は、ユーザが入力した情報に基づいて入力信号を生成してＣＰＵ９０１に出力する入力制御回路を含む。ユーザは、この入力装置９１５を操作することによって、学習装置１０に対して各種のデータを入力したり処理動作を指示したりする。また、後述する撮像装置９３３も、ユーザの手の動き、ユーザの指などを撮像することによって、入力装置として機能し得る。このとき、手の動きや指の向きに応じてポインティング位置が決定されてよい。
【０１２２】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音出力装置などであり得る。また、出力装置９１７は、ＰＤＰ（Ｐｌａｓｍａ  Ｄｉｓｐｌａｙ  Ｐａｎｅｌ）、プロジェクタ、ホログラム、プリンタ装置などを含んでもよい。出力装置９１７は、学習装置１０の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音として出力したりする。また、出力装置９１７は、周囲を明るくするためライトなどを含んでもよい。
【０１２３】
ストレージ装置９１９は、学習装置１０の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【０１２４】
ドライブ９２１は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体９２７のためのリーダライタであり、学習装置１０に内蔵、あるいは外付けされる。ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録を書き込む。
【０１２５】
接続ポート９２３は、機器を学習装置１０に直接接続するためのポートである。接続ポート９２３は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポートなどであり得る。また、接続ポート９２３は、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポートなどであってもよい。接続ポート９２３に外部接続機器９２９を接続することで、学習装置１０と外部接続機器９２９との間で各種のデータが交換され得る。
【０１２６】
通信装置９２５は、例えば、ネットワーク９３１に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カードなどであり得る。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデムなどであってもよい。通信装置９２５は、例えば、インターネットや他の通信機器との間で、ＴＣＰ／ＩＰなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置９２５に接続されるネットワーク９３１は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信などである。
【０１２７】
撮像装置９３３は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）またはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）などの撮像素子、および撮像素子への被写体像の結像を制御するためのレンズなどの各種の部材を用いて実空間を撮像し、撮像画像を生成する装置である。撮像装置９３３は、静止画を撮像するものであってもよいし、また動画を撮像するものであってもよい。
【０１２８】
センサ９３５は、例えば、測距センサ、加速度センサ、ジャイロセンサ、地磁気センサ、振動センサ、光センサ、音センサなどの各種のセンサである。センサ９３５は、例えば学習装置１０の筐体の姿勢など、学習装置１０自体の状態に関する情報や、学習装置１０の周辺の明るさや騒音など、学習装置１０の周辺環境に関する情報を取得する。また、センサ９３５は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）信号を受信して装置の緯度、経度および高度を測定するＧＰＳセンサを含んでもよい。
【０１２９】
＜４．むすび＞
本開示の実施形態によれば、第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、を備える、学習装置が提供される。
【０１３０】
かかる構成によれば、識別処理を可能にしつつ個人に関する情報が復元されにくい特徴量を利用することが可能となる。
【０１３１】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１３２】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏し得る。
【０１３３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、
を備える、学習装置。
（２）
前記第１の学習部は、前記第１の誤差が減少するように前記第１のニューラルネットワークのパラメータを学習する、
前記（１）に記載の学習装置。
（３）
前記第１の学習部は、前記第１の誤差に基づいて誤差逆伝播法を用いて前記第１のニューラルネットワークのパラメータを学習する、
前記（２）に記載の学習装置。
（４）
前記第２の学習部は、前記第１の誤差が増加するように前記第２のニューラルネットワークの少なくとも一部のパラメータを学習する、
前記（１）〜（３）のいずれか一項に記載の学習装置。
（５）
前記第２の学習部は、前記第２の誤差と前記符号反転後データとに対して所定の演算が行われて得られた演算結果に基づいて前記第２のニューラルネットワークの少なくとも一部のパラメータを学習する、
前記（１）〜（４）のいずれか一項に記載の学習装置。
（６）
前記所定の演算は、加算を含む、
前記（５）に記載の学習装置。
（７）
前記第２の学習部は、前記第２の誤差と前記符号反転後データとに基づいて誤差逆伝播法を用いて前記第２のニューラルネットワークの少なくとも一部のパラメータを学習する、
前記（５）または（６）に記載の学習装置。
（８）
前記第２の学習部は、前記演算結果を前記第２のニューラルネットワークに伝達させる、
前記（７）に記載の学習装置。
（９）
前記第２のニューラルネットワークの後段に前記第１のニューラルネットワークと並列して第３のニューラルネットワークが接続されており、
前記第２の学習部は、前記第３のニューラルネットワークから前記第２のニューラルネットワークに向けて前記第２の誤差を伝達させる、
前記（１）〜（８）のいずれか一項に記載の学習装置。
（１０）
前記第２の学習部は、前記第３のニューラルネットワークの出力データと教師データとの第３の誤差に基づいて誤差逆伝播法を用いて前記第３のニューラルネットワークのパラメータを更新し、前記第２のニューラルネットワークに向けて前記第２の誤差を伝達させる、
前記（９）に記載の学習装置。
（１１）
前記第２のニューラルネットワークの後段には、複数の第１のニューラルネットワークが並列して接続されており、
前記第１の学習部は、前記複数の第１のニューラルネットワークのパラメータを、前記第２のニューラルネットワークへの入力データと同一のデータと、前記複数の第１のニューラルネットワークの出力データそれぞれとの第１の誤差に基づいて学習し、
前記第２の学習部は、前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記複数の第１のニューラルネットワークそれぞれから伝達された誤差の符号反転後データとに基づいて学習する、
前記（１）〜（１０）のいずれか一項に記載の学習装置。
（１２）
前記第１のニューラルネットワークから伝達された誤差から前記符号反転後データへの変換は、前記誤差の絶対値が大きいほど前記符号反転後データの絶対値が大きくなるようにしつつ符号を反転させる所定の変換である、
前記（１）〜（１１）のいずれか一項に記載の学習装置。
（１３）
前記入力データは、画像データおよび音データの少なくともいずれか一つを含む、
前記（１）〜（１２）のいずれか一項に記載の学習装置。
（１４）
前記第１の誤差は、平均二乗誤差である、
前記（１）〜（１３）のいずれか一項に記載の学習装置。
（１５）
前記第３の誤差は、前記出力データに対してＳｏｆｔＭａｘ関数を適用した後に前記入力データとは異なるデータとの交差エントロピーを取った値または前記出力データに基づくセンターロスである、
前記（１０）に記載の学習装置。
（１６）
コンピュータを、
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習する第１の学習部と、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する第２の学習部と、
を備える学習装置として機能させるためのプログラム。
（１７）
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習し、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する学習部において学習されたニューラルネットワークに対して、
識別対象データを入力する入力部と、
前記ニューラルネットワークの出力データに基づいて、前記出力データに対応する識別情報を取得する取得部と、
を備える、識別装置。
（１８）
前記識別情報には、前記出力データと同一のデータが特徴量としてあらかじめ対応付けられており、
前記取得部は、前記出力データに応じた前記特徴量に対応付けられた前記識別情報を取得する、
前記（１７）に記載の識別装置。
（１９）
前記取得部は、暗号化した出力データに基づいて前記識別情報を取得する、
前記（１８）に記載の識別装置。
（２０）
コンピュータを、
第１のニューラルネットワークのパラメータを、前記第１のニューラルネットワークの前段に接続された第２のニューラルネットワークへの入力データと同一のデータと、前記第１のニューラルネットワークの出力データとの第１の誤差に基づいて学習し、
前記第２のニューラルネットワークの少なくとも一部のパラメータを、前記入力データとは異なるデータと前記第２のニューラルネットワークの出力データとの第２の誤差と、前記第１のニューラルネットワークから伝達された誤差の符号反転後データとに基づいて学習する学習部において学習されたニューラルネットワークに対して、
識別対象データを入力する入力部と、
前記ニューラルネットワークの出力データに基づいて、前記出力データに対応する識別情報を取得する取得部と、
を備える、識別装置として機能させるためのプログラム。
【符号の説明】
【０１３４】
１      情報処理システム
１０    学習装置
１１０  制御部
１１１  第１の学習部
１１２  第２の学習部
１２０  操作部
１３０  記憶部
１４０  通信部
１５０  出力部
２０    クライアント装置
２１０  制御部
２１１  登録処理部
２１２  識別対象データ入力部
２１３  識別情報取得部
２１４  出力制御部
２２０  操作部
２３０  記憶部
２４０  通信部
２５０  出力部
２６０  センサ部
３０    サーバ装置
３１０  制御部
３３０  記憶部
３４０  通信部
５０    ネットワーク
【図１】
2020129412.tif 000003
【図２】
2020129412.tif 000004
【図３】
2020129412.tif 000005
【図４】
2020129412.tif 000006
【図５】
2020129412.tif 000007
【図６】
2020129412.tif 000008
【図７】
2020129412.tif 000009
【図８】
2020129412.tif 000010
【図９】
2020129412.tif 000011
【図１０】
2020129412.tif 000012
【図１１】
2020129412.tif 000013
【図１２】
2020129412.tif 000014
【図１３】
2020129412.tif 000015
【図１４】
2020129412.tif 000016
【図１５】
2020129412.tif 000017
【図１６】
2020129412.tif 000018
【国際調査報告】
2020129412.tif 000019
2020129412.tif 000020