(57)【要約】【課題】入力データに対する学習モデルの適合度を算出すること。【解決手段】適合度算出装置２００は、学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、学習モデルの出力、および、自己符号化器のエンコーダの出力を、自己符号化器のデコーダに入力し、デコーダの出力および入力データに基づき、学習モデルの出力の、入力データに対する適合度を算出する。【選択図】図１１
2019175176.tif 000002
【特許請求の範囲】
【請求項１】
学習モデルの出力結果の適合度算出方法であって、
コンピュータが、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する、
処理を実行する適合度算出方法。
【請求項２】
請求項１に記載の適合度算出方法であって、前記コンピュータが、
前記学習データに付与された正解のラベルを前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記正解のラベルに基づいて復号化することにより、前記自己符号化器を学習する処理を実行する適合度算出方法。
【請求項３】
請求項１に記載の適合度算出方法であって、前記コンピュータが、
前記学習データが入力された学習モデルが出力する、ラベル、または、ラベル別の確信度を、前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記ラベルまたは前記ラベル別の確信度に基づいて復号化することにより、前記自己符号化器を学習する処理を実行する適合度算出方法。
【請求項４】
それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置に用いる識別方法であって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出し、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する、
処理を実行する識別方法。
【請求項５】
請求項４に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち最大の適合度を出力する学習モジュールの出力結果を選択する処理を実行する識別方法。
【請求項６】
請求項４に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち適合度が所定の閾値以上である学習モジュールの出力結果が集約された集約値を出力する処理を実行する識別方法。
【請求項７】
学習モデルの出力結果の適合度算出プログラムであって、
コンピュータに、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する、
処理を実行させる適合度算出プログラム。
【請求項８】
それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置に実行させる識別プログラムであって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出し、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する、
処理を実行させる識別プログラム。
【請求項９】
学習モデルの出力結果の適合度算出装置であって、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力する第１入力部と、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力する第２入力部と、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する算出部と、
を有する適合度算出装置。
【請求項１０】
それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置であって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力する第１入力部と、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力する第２入力部と、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する算出部と、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する出力部と、
を有する識別装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、適合度算出プログラム、適合度算出方法、適合度算出装置、識別プログラム、識別方法及び識別装置に関する。
【背景技術】
【０００２】
機械学習の一例として、多層構造のニューラルネットワークを学習モデルとして用いる深層学習、いわゆるディープラーニング（以下、ＤＬと記載する場合がある）が知られている。
【０００３】
例えば、学習時には、正解のクラスのラベルが付与されたデータが学習データとしてニューラルネットワーク（以下、ＮＮと記載する場合がある）の入力層のニューロンへ入力される。この結果、ＮＮの出力層の各ニューロンからの出力と、学習データに付与された正解のラベルとの誤差に基づいてＮＮのシナプスの重みが学習される。このようにシナプスの重みが学習されたＮＮの学習モデルにテストデータを入力することにより、テストデータのクラス分類が行われる。
【０００４】
例えば、複数のＮＮで学習を分担して行うことで、短時間でＮＮの学習を完了させる従来技術が提案されている。この従来技術では、全体学習データベースに登録された全ての学習データを学習データベース分割器において分割し、分割された各学習データをそれぞれ各ＮＮの学習データベースに割り当てる。学習時には、入力文字パターンと各文字パターン候補とのパターン・マッチングにより得られる各文字パターン候補に対する類似度の組合せが各ＮＮの入力層のニューロンへ入力される。すなわち、各文字パターン候補に対する類似度の組合せとこれに対応する正解のデータとを各学習データベースから１組ずつ抽出することにより、ＮＮ毎に正解のデータが得られるような方向性を持って荷重値の修正を繰り返し行う。このような学習の後、文字の判定を行う場合、各ＮＮのうち、確信度が最大であるＮＮの出力を用いる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平２−１２９７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、異なるデータセットの学習データから生成された複数の学習モデルを活用する側面から、複数の学習モデルを組み合わせてテストデータのクラス分類を行うことで、広範囲のテストデータのクラス分類を実現する逐次学習の重要性が高まっている。
【０００７】
しかしながら、上記の従来技術には、そもそも学習モデルへ入力されるテストデータが学習モデルに適合するか否かを判断する術がない。このため、逐次学習時にテストデータに対して誤った学習モデルが選択される結果、テストデータのクラス分類に失敗する可能性がある。
【０００８】
１つの側面では、本発明は、入力データに対する学習モデルの適合度を算出できる適合度算出プログラム、適合度算出方法、適合度算出装置、識別プログラム、識別方法及び識別装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、適合度算出方法は、学習モデルの出力結果の適合度算出方法であって、コンピュータが、学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する、処理を実行する。
【発明の効果】
【００１０】
入力データに対する学習モデルの適合度を算出できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、ＮＮに対する入力および出力の一例を示す図である。
【図２】図２は、ＮＮに対する入力および出力の一例を示す図である。
【図３】図３は、自己符号化器の一例を示す図である。
【図４】図４は、自己符号化器の一例を示す図である。
【図５】図５は、学習データ及びテストデータの関係性の一例を示す図である。
【図６】図６は、実施例１に係る識別装置の機能的構成の一例を示すブロック図である。
【図７】図７は、実施例１に係るモジュールの機能的構成を示すブロック図である。
【図８】図８は、データセットの一例を示す図である。
【図９】図９は、自己符号化器の出力例を示す図である。
【図１０】図１０は、ＤＬおよび自己符号化器の出力例を示す図である。
【図１１】図１１は、実施例２に係る適合度算出システムに含まれる各装置の機能的構成の一例を示す図である。
【図１２】図１２は、学習データの一例を示す図である。
【図１３】図１３は、テストデータの一例を示す図である。
【図１４】図１４は、ＤＬの認識結果の一例を示す図である。
【図１５】図１５は、ＡＥの出力結果の一例を示す図である。
【図１６】図１６は、適合度の算出結果の一例を示す図である。
【図１７】図１７は、ＡＥの出力結果の一例を示す図である。
【図１８】図１８は、適合度の算出結果の一例を示す図である。
【図１９】図１９は、実施例２に係る学習処理の手順を示すフローチャートである。
【図２０】図２０は、実施例２に係る適合度算出処理の手順を示すフローチャートである。
【図２１】図２１は、実施例３に係る識別装置の機能的構成の一例を示すブロック図である。
【図２２】図２２は、モジュールのモデル学習に用いる学習データの一例を示す図である。
【図２３】図２３は、テストデータの一例を示す図である。
【図２４】図２４は、ＤＬの認識結果の一例を示す図である。
【図２５】図２５は、ＡＥの出力結果の一例を示す図である。
【図２６】図２６は、モジュールの選択結果の一例を示す図である。
【図２７】図２７は、ＡＥの出力結果の一例を示す図である。
【図２８】図２８は、モジュールの選択結果の一例を示す図である。
【図２９】図２９は、実施例３に係る識別処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る適合度算出プログラム、適合度算出方法、適合度算出装置、識別プログラム、識別方法及び識別装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［逐次学習］
まず、実施例１に係る識別装置について説明するのに先立ち、逐次学習の重要性について説明する。上記の背景技術の欄でも述べた通り、異なるデータセットの学習データから生成された複数の学習モデルを活用する側面から、複数の学習モデルを組み合わせてテストデータのクラス分類を行うことで、広範囲のテストデータのクラス分類を実現する逐次学習の重要性が高まっている。
【００１４】
逐次学習の重要性が高まる一因として、機械学習ビジネスの発展が挙げられる。例えば、機械学習ビジネスでは、顧客から機械学習ビジネスのサービス提供者へ学習データが提供される。この学習データを用いてクラス分類を行うモデルを学習することで、画像認識や音声認識などといった各種の認識を実現する学習モデルが生成される。このように生成された学習モデルそのもの、あるいは顧客から入力されるテストデータに対する学習モデルの出力結果がサービスとして顧客へ提供される。
【００１５】
このように学習データを所有する顧客と機械学習ビジネスのサービス提供者とが異なる場合、著作権等の法的要請や機密保持等のコンプライアンスの一面から、学習モデルの生成後に学習データが顧客に返却されることがある。その一方で、学習データから生成された学習モデルは、機械学習ビジネスのサービス提供者の資産であるので、再利用が可能な一面がある。
【００１６】
［課題の一側面］
このような背景から、学習モデルの生成後に学習モデルが返却される環境下で、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習の重要性が高まる一方で、逐次学習の実現には困難性がある。
【００１７】
例えば、逐次学習の実現には、ＤＬが持つ性質がハードルとなる場合がある。すなわち、ＤＬには、新しい学習データに対して学習を行うと、その学習データに過剰に適合する側面がある。このように最後に学習が行われた学習データに過剰に適合することにより、それよりも前に学習が行われた学習データが忘却される。例えば、学習データＡにより学習をさせた学習モデルに学習データＢの学習が行われる場合、学習後の学習モデルは、学習データＢに適合する一方で学習データＡが忘却される。それ故、学習データＡおよび学習データＢの両方に適合する学習モデルを生成するのが困難である。
【００１８】
このＤＬの性質に対処する一案として、複数のデータセットの学習データを保持しておき、全ての学習データを繰り返して学習させることにより、学習モデルを生成する対応が考えられる。上記の例で言えば、学習データＡおよび学習データＢの両方を保持しておき、学習データＡおよび学習データＢの学習回数が所定のエポック数に達するまで、学習データＡおよび学習データＢを交互に繰り返して学習させる。これによって、学習データＡおよび学習データＢの両方に学習モデルを適合させる。
【００１９】
ところが、上記の対処を実行するには、全ての学習データが揃うことが条件となる。このため、学習モデルの生成後に学習モデルが返却される状況下では、返却後の学習データを揃えることができず、全ての学習データを揃えることが困難である。さらに、たとえ全ての学習データが揃ったとしても、著作権等の法的要請や機密保持等のコンプライアンスの側面から、逐次学習を目的とする学習データの使用は自粛されるのが好ましい。
【００２０】
そうであるかと言って、上記の背景技術の欄で挙げた従来技術を用いたとしても、次に挙げる２つの理由が一因となって上記の逐次学習を実現するのは困難である。
【００２１】
すなわち、上記の従来技術のように、複数のＮＮから確信度が最大であるＮＮの出力を選択するのでは、（１）未学習のカテゴリのテストデータに対してＮＮの出力が不定であること、あるいは（２）テストデータとカテゴリが一致しても正しい認識を行うことができるＮＮが不明であることが一因となって誤ったＮＮが選択される結果、認識が失敗する可能性がある。
【００２２】
図１は、ＮＮに対する入力および出力の一例を示す図である。図１には、上記の従来技術により生成された複数のＮＮの例として、学習データＡにより学習をさせたＡ用ＮＮと、学習データＢにより学習をさせたＢ用ＮＮとが示されている。このうち、Ａ用ＮＮの学習時には、クラスＰまたはクラスＱのラベルが付与された学習データＡが入力層のニューロンへ入力されることによりシナプスの重みが学習される。一方、Ｂ用ＮＮの学習時には、クラスＱまたはクラスＲのラベルが付与された学習データＢが入力層のニューロンへ入力されることによりシナプスの重みが学習される。
【００２３】
このような学習が行われたＡ用ＮＮおよびＢ用ＮＮに対し、クラスＰに属するテストデータが入力された場合、Ａ用ＮＮおよびＢ用ＮＮは、図１に示すように、ラベル別に確信度を出力する。ここで、図示のテストデータは、Ａ用ＮＮの学習に用いられた学習データＡのデータセットの中にクラスが一致する学習サンプルが存在するデータである。このため、Ａ用ＮＮのモデル学習時には、クラスＱの確信度に比べて高い確信度がクラスＰの確信度として出力される学習が行われている。これが一因となって、Ａ用ＮＮの出力層のニューロンからラベルＱの確信度「０．２」と共にそれよりも値が大きい確信度「０．８」がラベルＰの確信度として出力される。一方、学習データＢのデータセットの中には、クラスＰのラベルが付与された学習サンプルが含まれない状態で、Ｂ用ＮＮのモデルが学習される。このようにＢ用ＮＮにとって未学習のカテゴリのテストデータが入力される場合、Ｂ用ＮＮが出力するラベルの確信度は不定である。このため、図１に示すように、Ｂ用ＮＮの出力層のニューロンからラベルＱの確信度として「０．１」が出力される一方で、ラベルＲの確信度として「０．９」という大きな値が偶然に出力される事態も起こり得る。このような状況では、ラベルＲの確信度「０．９」が最大となるので、Ｂ用ＮＮの出力が認識に用いられる結果、クラスＰに属するテストデータがクラスＲと誤認識される。
【００２４】
図２は、ＮＮに対する入力および出力の一例を示す図である。図２にも、図１と同様、上記の従来技術により生成された複数のＮＮの例として、学習データＡにより学習をさせたＡ用ＮＮと、学習データＢにより学習をさせたＢ用ＮＮとが示される一方で、図１と異なるクラスＱに属するテストデータが入力される例が示されている。
【００２５】
クラスＱに属するテストデータがＡ用ＮＮおよびＢ用ＮＮに入力される場合、Ａ用ＮＮおよびＢ用ＮＮは、図２に示すように、ラベル別に確信度を出力する。すなわち、Ａ用ＮＮの出力層のニューロンからラベルＰの確信度「０．４」およびラベルＱの確信度「０．６」が出力されると共に、Ｂ用ＮＮの出力層のニューロンからラベルＱの確信度「０．３」およびラベルＲの確信度「０．７」が出力される。
【００２６】
ここで、学習データＡのデータセットおよび学習データＢのデータセットのいずれにも、クラスＱのラベルが付与された学習サンプルが含まれる。このようにテストデータのカテゴリと一致するＮＮが複数存在する場合、Ａ用ＮＮおよびＢ用ＮＮのうちいずれのＮＮがテストデータのクラスを正しく分類できるのは不明である。結果から見れば、テストデータのクラスは「Ｑ」に属するという事実から、認識に成功するのはＡ用ＮＮであることが事後に分析できるが、これはあくまで結果論である。それ故、上記の従来技術では、Ｂ用ＮＮが出力するクラスＲの確信度「０．７」が最大であるので、Ｂ用ＮＮの出力が認識に用いられる結果、クラスＱに属するテストデータがクラスＲと誤認識される。
【００２７】
このように、上記の従来技術では、図１を用いて説明した通り、未学習のカテゴリのテストデータに対してＮＮの出力が不定であることが原因となって誤ったＮＮの出力が選択されたり、図２を用いて説明した通り、テストデータとカテゴリが一致しても正しい認識を行うことができるＮＮが不明であることが原因となって誤ったＮＮの出力が選択されたりするので、テストデータのクラス分類に失敗する可能性がある。
【００２８】
［課題解決アプローチの一側面］
そこで、本実施例では、逐次学習に自己符号化器、いわゆるオートエンコーダを用いる。すなわち、本実施例では、学習データにより学習をさせた自己符号化器にテストデータを入力し、自己符号化器のデコーダが出力する復号化データとテストデータの再構成誤差に基づいてテストデータに対する学習モデルの適合度を算出し、当該適合度に基づいて学習モデルの出力結果を選択して出力する。
【００２９】
図３及び図４は、自己符号化器の一例を示す図である。図３には、学習時における自己符号化器の動作が示されている一方で、図４には、認識時における自己符号化器の動作が示されている。図３及び図４に示す自己符号化器は、入力された学習データがエンコーダにより次元が圧縮された後にその符号化データがデコーダにより元の次元に復元された復号化データを出力する。図３に示すように、学習時には、自己符号化器のデコーダの出力が自己符号化器のエンコーダへの入力と一致するようにＮＮの重みが学習される。一方、図４に示すように、認識時には、自己符号化器のエンコーダへの入力と、自己符号化器のデコーダの出力とのずれを再構成誤差として出力する。このような学習が行われた自己符号化器では、自己符号化器へ入力されるデータが学習データに類似するほど、自己符号化器から出力される再構成誤差が小さくなる。
【００３０】
この自己符号化器の特性を利用して、本実施例では、学習データそのものを保持する代わりに、学習データを良好に圧縮復元できる自己符号化方法を学習する。さらに、本実施例では、学習モデルの出力結果を復号化の手がかりとして自己符号化器のデコーダへ入力する。これによって、学習モデルがクラス分類を失敗する誤認識時にテストデータが復元されづらい自己符号化器の学習を実現する。
【００３１】
このような自己符号化器が学習された後、本実施例では、学習データにより学習をさせた学習モデルおよび自己符号化器のエンコーダにテストデータを入力し、自己符号化器のエンコーダの出力及び学習モデルの出力が入力された自己符号化器のデコーダの出力とテストデータとに基づき、学習モデルの出力の、テストデータに対する適合度を算出する。
【００３２】
このように算出された適合度は、あくまで１つの側面として、複数の学習モデルの出力結果のうちいずれの学習モデルの出力結果を出力するのかを選択するために用いることができる。
【００３３】
図５は、学習データ及びテストデータの関係性の一例を示す図である。図５には、学習データＡ〜Ｃの３つの学習データのカテゴリの集合が示されている。図５に示すように、学習データＡのカテゴリは、学習データＢのカテゴリ及び学習データＣのカテゴリのいずれとも重複しないので、学習データＢのカテゴリ及び学習データＣのカテゴリと関連がないことがわかる。一方、学習データＢのカテゴリ及び学習データＣのカテゴリは、互いの一部が重複するので、学習データＢおよび学習データＣに関連があることがわかる。
【００３４】
このような関係性を有する学習データＡ〜学習データＣの場合、本実施例では、テストデータと無関係な学習データＡを用いて学習されたＡ用ＮＮの出力結果を除外する選択を実現できる。なぜなら、画像などの多次元データの場合、テストデータとは無関係である学習データＡから生成された自己符号化器がテストデータを入力としてテストデータそのものを偶然復元して出力する可能性は無視できる程度に低いので、学習データＡから生成された自己符号化器が出力する再構成誤差が大きくなるからである。
【００３５】
さらに、本実施例では、学習データＢから生成されたＢ用ＮＮにテストデータが入力される場合のＢ用ＮＮの出力結果および学習データＣから生成されたＣ用ＮＮにテストデータが入力される場合のＣ用ＮＮの出力結果の中から、テストデータのクラスを正しく分類できるＮＮの出力結果の選択を実現できる。すなわち、テストデータは、学習データＢおよび学習データＣのいずれともカテゴリが一致する。このため、本実施例のように、学習モデルの出力結果が復号化の手がかりとして自己符号化器のデコーダへ入力されていなければ、学習データＢにより学習が行われた自己符号化器および学習データＣにより学習が行われた自己符号化器が出力する再構成誤差はいずれも小さくなる。それ故、Ｂ用ＮＮの出力結果およびＣ用ＮＮの出力結果の中からテストデータのクラスを正しく分類できるＮＮの出力結果を選択するのは困難である。一方、本実施例では、学習モデルの出力結果が復号化の手がかりとして自己符号化器のデコーダへ入力される。これによって、Ｂ用ＮＮまたはＣ用ＮＮがクラス分類を失敗する誤認識時に、自己符号化器のデコーダでは、Ｂ用ＮＮまたはＣ用ＮＮから入力される誤ったラベルに対応する学習データＢまたは学習データＣに類似するデータを復号化する復元が実行されるので、テストデータが復元されづらくなる。このような誤認識時に比べて、認識成功時には、自己符号化器のデコーダでは、正しいラベルに対応する学習データＢまたは学習データＣに類似するデータを復号化する復元が実行されるので、テストデータが復元されやすくなる。このように、テストデータのクラスを正しく分類できるＮＮの学習に用いられた学習データＢまたは学習データＣから生成された自己符号化器が出力する再構成誤差を相対的に小さくできる。
【００３６】
これらのことから、本実施例では、誤った学習モデルの出力が選択されるのを抑制するので、認識に失敗する可能性を低減できる。したがって、本実施例によれば、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習を実現できる。
【００３７】
［識別装置の構成］
図６は、実施例１に係る識別装置の機能的構成の一例を示すブロック図である。図６に示すように、識別装置１は、モジュール１０Ａ〜１０Ｃと、選択部１１と、出力部１２とを有する。以下では、モジュール１０Ａ〜１０Ｃのことを「モジュール１０」と記載する場合がある。
【００３８】
図６に示すモジュール１０、選択部１２および出力部１３などの機能部は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などのハードウェアプロセッサにより仮想的に実現される。すなわち、プロセッサは、図示しない記憶装置、例えばＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などの記憶装置からＯＳ（Operating  System）の他、識別プログラムまたはそのモジュールである適合度算出プログラムなどのプログラムを読み出す。その上で、プロセッサは、識別プログラムや適合度算出プログラムを実行することにより、ＲＡＭ（Random  Access  Memory）等のメモリ上に上記の機能部に対応するプロセスを展開する。この結果、上記の機能部がプロセスとして仮想的に実現される。ここでは、プロセッサの一例として、ＣＰＵやＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されることとしてもかまわない。
【００３９】
モジュール１０Ａ〜１０Ｃは、ＤＬの学習モデルおよび自己符号化器を有する。一側面として、学習時には、モジュール１０Ａ〜１０Ｃの間で異なるデータセットの学習データがモジュール１０Ａ〜１０ＣのＤＬの学習モデルおよび自己符号化器に割り当てられた上で個別に学習される。他の側面として、認識時には、テストデータが入力データとしてモジュール１０Ａ〜１０Ｃへ入力される。この結果、モジュール１０Ａ〜１０Ｃごとに自己符号化器が出力する再構成誤差が選択部１１へ出力されると共に、モジュール１０Ａ〜１０ＣごとにＤＬの学習モデルの出力結果が出力部１２へ出力される。なお、図６には、識別装置１が３つのモジュール１０Ａ〜１０Ｃを有する例を示したが、これはあくまで一例であり、２つまたは４つ以上のモジュール１０が識別装置１に備わることとしてもかまわない。
【００４０】
選択部１１は、出力部１２に認識結果として出力させるモジュール１０の出力結果を選択する。あくまで一例として、選択部１１は、モジュール１０Ａ〜１０Ｃごとに出力されるＤＬの出力結果のうち、モジュール１０Ａ〜１０Ｃごとに出力される自己符号化器の再構成誤差が最小であるモジュール１０のＤＬの出力結果を選択する。
【００４１】
出力部１２は、認識結果を出力する。一側面として、出力部１２は、モジュール１０Ａ〜１０Ｃごとに出力されるＤＬの出力結果のうち、選択部１１により選択されたモジュール１０のＤＬにより出力される出力結果を認識結果として所定の出力先へ出力する。例えば、外部のクライアント端末から認証のリクエストとしてテストデータが入力された場合、当該クライアント端末を出力先とすることができる。この他、バックエンドで実行するサービスやアプリケーション、ＡＩ（Artificial  Intelligence）、識別装置１の外部装置などを出力先とすることもできる。
【００４２】
なお、図６には、３つのモジュール１０Ａ〜１０Ｃを例に挙げたが、モジュールの数は任意の数、例えばモジュールに割り当てられる学習データの数であってかまわない。また、識別装置１は、図６に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば他の装置との間で通信制御を行う通信インタフェースなどを有することとしてもかまわない。
【００４３】
図７は、実施例１に係るモジュールの機能的構成を示すブロック図である。図７に示すように、モジュール１０は、ＤＬ１００と、自己符号化器１１０とを有する。
【００４４】
ＤＬ１００は、学習データによりモデルが学習された学習モデルの一例に対応する。一側面として、学習時には、モジュール１０に割り当てられた学習データを入力層のニューロンへ入力し、出力層の出力と、学習データの正解のラベルとの誤差に基づいてシナプスの重みを学習することにより、ＤＬ１００が生成される。他の側面として、認識時には、ＤＬ１００は、テストデータを入力データとして入力層のニューロンへ入力することにより、出力層のニューロンからラベル別の確信度を出力する。
【００４５】
自己符号化器１１０は、エンコーダ１１１と、デコーダ１１２と、誤差算出部１１３とを有する。一側面として、学習時には、自己符号化器１１０のデコーダ１１２の出力と、モジュール１０に割り当てられた学習データとが一致するように自己符号化器１１０のＮＮの重みが学習される。このとき、デコーダ１１２には、エンコーダ１１１の出力に加えて、ＤＬ１００の出力結果が復号化の手がかりとして入力される。例えば、ＤＬ１００がラベルごとに出力する確信度のうち最大の確信度のラベルに対応する学習データとの距離が近づくように、エンコーダ１１１により符号化された符号化データを復号化する動作をデコーダ１１２に実行させる。これによって、ＤＬ１００がクラス分類に失敗して誤認識が発生する時に学習データが復元されづらい自己符号化器１１０の学習を実現できる。他の側面として、認識時には、誤差算出部１１３は、自己符号化器１１０への入力、すなわちテストデータと、デコーダ１１２の出力とのずれを再構成誤差として算出する。この認識時においても、デコーダ１１２には、エンコーダ１１１の出力に加えて、ＤＬ１００の出力結果が復号化の手がかりとして入力される。これによって、ＤＬ１００がクラス分類に失敗して誤認識が発生する時にテストデータが復元されづらくすることができる。
【００４６】
［具体例１］
図８〜図１０を用いて、逐次学習の具体例について説明する。図８は、データセットの一例を示す図である。図８には、学習データの一例として、文字画像のデータセットＤＴ１およびＤＴ２が示されている。図８に示すように、データセットＤＴ１の学習データには、「１」または「７」のいずれかのラベルが学習サンプルに付与される一方で、データセットＤＴ２の学習データには、「７」または「Ｉ」のいずれかのラベルが学習サンプルに付与される。これらのうち、データセットＤＴ１の学習データを用いてＤＬ１００−１および自己符号化器１１０−１が学習されると共に、データセットＤＴ２の学習データを用いてＤＬ１００−２および自己符号化器１１０−２が学習される。
【００４７】
このような学習が行われた後、文字画像「１」および文字画像「Ｉ」のテストデータが自己符号化器１１０−１および自己符号化器１１０−２へ入力される場合、自己符号化器１１０−１および自己符号化器１１０−２の出力は図９に示す通りとなる。
【００４８】
図９は、自己符号化器の出力例を示す図である。図９の上段には、文字画像「１」のテストデータが入力された場合の出力が自己符号化器１１０−１のデコーダ、自己符号化器１１０−１の再構成誤差、自己符号化器１１０−２のデコーダ、自己符号化器１１０−２の再構成誤差ごとに示されている。さらに、図９の下段には、文字画像「Ｉ」のテストデータが入力された場合の出力が自己符号化器１１０−１のデコーダ、自己符号化器１１０−１の再構成誤差、自己符号化器１１０−２のデコーダ、自己符号化器１１０−２の再構成誤差ごとに示されている。
【００４９】
図９の上段に示すように、文字画像「１」のテストデータが入力された場合、データセットＤＴ１で学習が行われたＤＬ１００−１では、学習時にラベル「１」が付与された学習サンプルからモデルが生成されるので、認識結果として文字画像「１」に対応する正解のラベルを出力できる。これに連動して、自己符号化器１１０−１のデコーダでは、ＤＬ１００−１が出力するラベル「１」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このため、自己符号化器１１０−１から出力される再構成誤差は小さくなる。
【００５０】
一方、データセットＤＴ２で学習が行われたＤＬ１００−２では、そもそもラベル「１」が付与された学習サンプルがデータセットＤＴ２に存在しないので、文字画像「１」に対応するラベルを正しく出力することができない。すなわち、ＤＬ１００−２からは、データセットＤＴ２に含まれるラベル「７」及びラベル「Ｉ」のうち文字画像「１」のテストデータと類似する方のラベル「Ｉ」が出力される。これに連動して、自己符号化器１１０−２のデコーダでは、ＤＬ１００−２が出力するラベル「Ｉ」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化されるので、正解のラベル「１」からは遠ざかる復元が行われることになる。このため、自己符号化器１１０−２から出力される再構成誤差は大きくなる。
【００５１】
したがって、文字画像「１」のテストデータが入力された場合、ＤＬ１００−１及びＤＬ−１０２のうち再構成誤差が相対的に小さいＤＬ１００−１の出力を選択することで、文字画像「１」に対応するラベルを正しく分類するＤＬ１００−１の出力結果の選択を実現できる。
【００５２】
図９の下段に示すように、文字画像「Ｉ」のテストデータが入力された場合、データセットＤＴ１で学習が行われたＤＬ１００−１では、そもそもラベル「Ｉ」が付与された学習サンプルがデータセットＤＴ１に存在しないので、文字画像「Ｉ」に対応する正解のラベルを出力することができない。すなわち、ＤＬ１００−１からは、データセットＤＴ１に含まれるラベル「１」及びラベル「７」のうち文字画像「Ｉ」のテストデータと類似する方のラベル「１」が出力される。これに連動して、自己符号化器１１０−１のデコーダでは、ＤＬ１００−１が出力するラベル「１」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化されるので、正解のラベル「Ｉ」からは遠ざかる復元が行われることになる。このため、自己符号化器１１０−１から出力される再構成誤差は大きくなる。
【００５３】
一方、文字画像「Ｉ」のテストデータが入力された場合、データセットＤＴ２で学習が行われたＤＬ１００−２では、学習時にラベル「Ｉ」が付与された学習サンプルからＤＬ１００−２のモデルが生成されるので、認識結果として文字画像「Ｉ」に対応する正解のラベルを出力できる。これに連動して、自己符号化器１１０−２のデコーダでは、ＤＬ１００−２が出力するラベル「Ｉ」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このため、自己符号化器１１０−２から出力される再構成誤差は小さくなる。
【００５４】
したがって、文字画像「Ｉ」のテストデータが入力された場合、ＤＬ１００−１及びＤＬ−１０２のうち再構成誤差が相対的に小さいＤＬ１００−２の出力を選択することで、文字画像「Ｉ」に対応する正解のラベルを分類するＤＬ１００−２の出力結果の選択を実現できる。
【００５５】
また、文字画像「７」のテストデータが入力される場合、ＤＬ１００−１、自己符号化器１１０−１のデコーダ、自己符号化器１１０−１の再構成誤差、ＤＬ１００−２、自己符号化器１１０−２のデコーダ、自己符号化器１１０−２の再構成誤差ごとに図１０に示す出力が得られる。
【００５６】
図１０は、ＤＬおよび自己符号化器の出力例を示す図である。図１０に示すように、文字画像「７」のテストデータが入力される場合、データセットＤＴ１で学習が行われたＤＬ１００−１では、認識結果として文字画像「７」に対応する正解のラベルが出力されず、誤ったラベル「１」が出力される。これに連動して、自己符号化器１１０−１のデコーダでは、ＤＬ１００−１が出力する誤認識のラベル「１」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このような符号化が実行されることにより、ＤＬ１００−１の誤認識に自己符号化器１１０−１のデコーダが出力する復号化データが正解のラベル「７」に対応する復号化データに復元されるのを抑制できる。このため、テストデータと復号化データの差が大きくなる結果、自己符号化器１１０−１から出力される再構成誤差も大きくなる。
【００５７】
一方、データセットＤＴ２で学習が行われたＤＬ１００−２では、認識結果として文字画像「７」に対応する正解のラベルを出力することができる。これに連動して、自己符号化器１１０−２のデコーダでは、ＤＬ１００−２が出力するラベル「７」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このため、テストデータと復号化データの差が小さくなる結果、自己符号化器１１０−２から出力される再構成誤差も小さくなる。
【００５８】
このように正解のラベル「７」を出力しうるＤＬ１００が複数存在する場合でも、ＤＬ１００の出力結果を復号化の手がかりとして自己符号化器１１０のデコーダへ入力することで、ラベルが誤認識されたＤＬ１００−１の出力がデコーダへ入力された自己符号化器１１０−１により出力される再構成誤差を相対的に大きくできる一方で、正解のラベルが認識されたＤＬ１００−２の出力がデコーダへ入力された自己符号化器１１０−２により出力される再構成誤差を相対的に小さくできる。したがって、文字画像「７」のテストデータが入力された場合、ＤＬ１００−１及びＤＬ−１００−２のうち再構成誤差が相対的に小さいＤＬ１００−２を選択することで、文字画像「７」に対応するラベルを正しく分類できるＤＬ１００−２の出力結果の選択を実現できる。
【００５９】
［効果の一側面］
上述してきたように、本実施例に係る識別装置１によれば、誤った学習モデルの出力が選択されるのを抑制するので、認識に失敗する可能性を低減できる結果、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習を実現できる。これによって、個々の学習モデルが個別に用いられる場合よりも豊富な認識機能を提供できる。例えば、Ａ社の製品データとＢ社の製品データの認識結果を組み合わせて、与えられたテストデータの画像がＡ社の製品かＢ社の製品かを判定し、かつその製品名も認識することができる。この結果、顧客が提供する学習データで実現できる認識結果よりも広範囲な認識結果を顧客に提供できる。
【実施例２】
【００６０】
さて、上記の実施例１では、複数の学習モデルの出力結果の中から自己符号化器それぞれの再構成誤差に基づいて認識結果として出力する学習モデルの出力結果を選択する例を説明したが、必ずしも選択後の学習モデルの出力結果を最終的な出力とせずともかまわない。そこで、本実施例では、自己符号化器が出力する再構成誤差に基づいてテストデータに対する学習モデルの出力の適合度を算出して出力する例を説明する。
【００６１】
図１１は、実施例２に係る適合度算出システムに含まれる各装置の機能的構成の一例を示す図である。図１１に示す適合度算出システム２には、学習装置２０と、適合度算出装置２００とが含まれる。
【００６２】
［学習装置２０の構成］
図１１に示すように、学習装置２０は、学習データ入力部２１と、ＤＬ学習部２２と、ＤＬ記憶部２２Ａと、自己符号化器（以下、「ＡＥ（AutoEncoder）」と記載する場合がある）学習部２３と、ＡＥ記憶部２３Ａとを有する。
【００６３】
学習データ入力部２１は、学習データを後段の機能部へ入力する。この学習データを提供するソースの一例として、機械学習ビジネスのサービスの提供を受ける顧客等が挙げられる。一側面として、学習データ入力部２１は、学習装置２０と接続される外部装置、例えば顧客側のコンピュータから学習データをネットワーク経由で取得することができる。他の側面として、学習データ入力部２１は、ＵＳＢ（Universal  Serial  Bus）メモリや外付けのＨＤＤ、メモリカードなどのリムーバブルメディアからインタフェースを介して、学習データを取得することもできる。その上で、学習データ入力部２１は、学習データのデータセットに含まれる学習サンプルごとに当該学習サンプルをＤＬ学習部２２へ入力すると共にＡＥ学習部２３へ入力する。
【００６４】
ＤＬ学習部２２は、ＤＬのモデル学習を実行する。このＤＬは、あくまでモデルの一例であり、モデルは必ずしもＤＬでなくともよく、ＮＮであってもかまわない。一実施形態として、ＤＬ学習部２２は、学習データ入力部２１から学習サンプルが入力される度に、当該学習サンプルをＤＬの入力層のニューロンへ入力する。そして、ＤＬ学習部２２は、ＤＬの出力層のニューロンの出力と、学習サンプルの正解のラベルとの誤差から、ＤＬのシナプスの重みやバイアスなどのパラメータをバックプロパケーション等のアルゴリズムにしたがって学習する。このように、ＤＬ学習部２２は、学習データ入力部２１からの学習サンプルの入力が終了するまでパラメータの学習を繰り返し、さらに、データセットの学習回数が所定のエポック数に達するまでパラメータの学習を繰り返す。その後、ＤＬ学習部２２は、ＤＬのモデル学習の結果として得られたシナプスの重みやバイアスなどのパラメータを含むモデル情報をＤＬ記憶部２２Ａに保存する。
【００６５】
ＤＬ記憶部２２Ａは、ＤＬのモデル情報を記憶する。例えば、ＤＬのモデル情報には、ＤＬを形成する入力層、中間層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、ＤＬ学習部２２により学習されたＤＬの各層の重みやバイアスなどのモデルのパラメータなどが含まれる。
【００６６】
ＡＥ学習部２３は、ＡＥ、すなわち自己符号化器のモデル学習を実行する。このＡＥには、一例として、学習データを学習データの次元よりも次元が削減された特徴表現へ圧縮するＮＮに対応するエンコーダと、エンコーダの出力を入力として特徴表現から元の学習データを復元するＮＮに対応するデコーダとを含むモデルの層構造が設定される。
【００６７】
一実施形態として、ＡＥ学習部２３は、学習データ入力部２１から学習サンプルが入力される度に、当該学習サンプルをＡＥのエンコーダへ入力する。その後、ＡＥ学習部２３は、ＡＥのエンコーダの出力をＡＥのデコーダへ入力すると共に、同一の学習サンプルが入力されたＤＬの出力をＡＥのデコーダへ入力する。このように、ＡＥのデコーダには、ＡＥのエンコーダの出力だけでなく、ＤＬの出力が復号化の手がかりとして入力される。例えば、ＡＥ学習部２３は、ＤＬがラベルごとに出力する確信度のうち最大の確信度のラベルに対応する学習データとの距離が近づくように、エンコーダにより次元数が圧縮された特徴表現から元の次元数に対応するデータを復元する動作をデコーダに実行させる。これによって、ＤＬがクラス分類に失敗して誤認識が発生する時に元の学習データが復元されづらいＡＥの学習を実現できる。その後、ＡＥ学習部２３は、ＡＥのデコーダの出力と、学習サンプルとの再構成誤差から、ＡＥのシナプスの重みやバイアスなどのパラメータをバックプロパケーション等のアルゴリズムにしたがって学習する。このように、ＡＥ学習部２３は、学習データ入力部２１からの学習サンプルの入力が終了するまでパラメータの学習を繰り返し、さらに、データセットの学習回数が所定のエポック数に達するまでパラメータの学習を繰り返す。その後、ＡＥ学習部２３は、ＡＥのモデル学習の結果として得られたシナプスの重みやバイアスなどのパラメータを含むモデル情報をＡＥ記憶部２３Ａに保存する。
【００６８】
ＡＥ記憶部２３Ａは、ＡＥのモデル情報を記憶する。例えば、ＡＥのモデル情報には、ＡＥを形成する入力層、中間層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、ＡＥ学習部２３により学習されたＡＥの各層の重みやバイアスなどのモデルのパラメータなどが含まれる。
【００６９】
［適合度算出装置２００の構成］
図１１に示すように、適合度算出装置２００は、テストデータ入力部２１０と、認識部２２０と、符号化部２３０と、算出部２４０と、出力部２５０とを有する。
【００７０】
テストデータ入力部２１０は、テストデータを後段の機能部へ入力する。このテストデータを提供するソースの一例として、機械学習ビジネスのサービスの提供を受ける顧客等が挙げられるが、これに限定されない。例えば、機械学習ビジネスのサービス提供者が画像や音声などのデータをリクエストとして受け付け、画像認識や音声認識の結果を出力するクラウドサービスを別サービスとして提供する場合、別サービスの顧客をテストデータのソースとすることもできる。一側面として、テストデータ入力部２１０は、適合度算出装置２００と接続される外部装置、例えば任意のコンピュータからテストデータをネットワーク経由で取得することができる。その上で、テストデータ入力部２１０は、テストデータを認識部２２０へ入力すると共に符号化部２３０へ入力する。
【００７１】
認識部２２０は、ＤＬの出力に基づいて各種の認識を行う。一実施形態として、認識部２２０は、ＤＬ記憶部２２Ａに記憶されたＤＬのモデル情報にしたがってＤＬのモデルを図示しないメモリ上のワークエリアに展開する。その後、認識部２２０は、テストデータ入力部２１０からテストデータが入力された場合、当該テストデータをＤＬの入力層のニューロンへ入力する。そして、認識部２２０は、ＤＬの出力層のニューロンの出力、例えばラベル別の確信度に基づいてテストデータのラベルを認識する。
【００７２】
符号化部２３０は、ＡＥを用いてテストデータの符号化および復号化を実行する。一実施形態として、符号化部２３０は、ＡＥ記憶部２３Ａに記憶されたＡＥのモデル情報にしたがってＡＥのモデルを図示しないメモリ上のワークエリアに展開する。その後、符号化部２３０は、テストデータ入力部２１０からテストデータが入力された場合、当該テストデータをＡＥのエンコーダへ入力する。その後、符号化部２３０は、ＡＥのエンコーダの出力をＡＥのデコーダへ入力すると共に、同一の学習サンプルが入力されたＤＬの出力をＡＥのデコーダへ入力する。このように認識の局面においても、ＡＥのデコーダには、ＡＥのエンコーダの出力だけでなく、ＤＬの出力が復号化の手がかりとして入力される。例えば、符号化部２３０は、ＤＬがラベルごとに出力する確信度のうち最大の確信度のラベルに対応する学習データとの距離が近づくように、エンコーダにより次元数が圧縮された特徴表現から元の次元数に対応するデータを復元する動作をデコーダに実行させる。その後、符号化部２３０は、ＡＥのデコーダの出力と、テストデータとの誤差から再構成誤差を算出する。
【００７３】
このようにＡＥのデコーダにＤＬの出力を入力することで、ＤＬがクラス分類に失敗して誤認識が発生する時に元のテストデータが復元されづらくなるので、テストデータの誤認識時に再構成誤差を認識成功時に比べて大きく算出させることができる。
【００７４】
算出部２４０は、ＤＬの出力の、テストデータに対する適合度を算出する。一実施形態として、算出部２４０は、符号化部２３０が実行するＡＥから出力される再構成誤差に基づいて適合度を算出する。ここで、再構成誤差は、テストデータが学習データに類似するほど低い値が算出される一方で、適合度は、値が高いほどＤＬの出力がテストデータに適合することを表す指標である。このことから、算出部２４０は、一例として、ＡＥから出力される再構成誤差の逆数、例えば「０．１／再構成誤差」で正規化する計算を行うことにより、上記の適合度を算出する。なお、ここでは、正規化された再構成誤差を適合度として算出する例を説明したが、再構成誤差そのものを適合度として導出することができるのは言うまでもない。
【００７５】
出力部２５０は、テストデータに対する各種のレコメンドを出力する。一側面として、出力部２５０は、算出部２４０により算出された適合度そのものを出力することができる他、適合度と閾値の比較結果を出力することもできる。例えば、出力部２５０は、適合度が閾値以上である場合、テストデータの認識が可能である旨のメッセージ、テストデータの認識が可能なＤＬのモデルが存在する旨もしくはそのＤＬを用いるサービス名を所定の出力先、例えばテストデータの送信元へ出力する。
【００７６】
なお、ここでは、１つのＤＬの適合度が算出される例を挙げたが、ＤＬ記憶部２２Ａに複数のＤＬのモデル情報が保存されている場合、ＤＬの出力ごとにテストデータに対する適合度を算出することとしてもかまわない。この場合、各ＤＬの出力の適合度を出力することもできるし、最大の適合度が算出されたＤＬやそのサービス名を出力することができる。
【００７７】
［具体例２］
図１２〜図１８を用いて、適合度の算出の具体例について説明する。図１２は、学習データの一例を示す図である。図１２に示す「学習ＩＤ（IDentification）」とは、学習データを識別する識別情報を指す。また、「データラベル」とは、学習データに付与される正解のラベルを指す。また、「データ本体」とは、ＤＬやＡＥへの入力するデータそのものを指す。このデータの一例として、図１２には、文字画像のデータが示されている。図１２に示すように、学習ＩＤ「ＴＲ１」で識別される学習データとして、文字のラベル「１」が付与された文字画像のデータ「Ｉ１１」の学習サンプルと、文字のラベル「７」が付与された文字画像のデータ「Ｉ１２」の学習サンプルとが示されている。
【００７８】
図１３は、テストデータの一例を示す図である。図１３に示す「テストＩＤ」とは、テストデータを識別する識別情報を指す。また、テストデータには、ラベルは付与されないので、図１３では、「データラベル」の欄がブランクとされている。また、「データ可視化」の欄には、説明の便宜上、文字画像のデータが可視化された映像が示されている。図１３に示すように、テストＩＤ「ＴＴ１」で識別されるテストデータには、画像データ「Ｉ１‘」が示されており、これが可視化された場合、映像「１」が表示されることを意味する。また、テストＩＤ「ＴＴ２」で識別されるテストデータには、画像データ「Ｉ２‘」が示されており、これが可視化された場合、映像「７」が表示されることを意味する。さらに、テストＩＤ「ＴＴ３」で識別されるテストデータには、画像データ「Ｉ３‘」が示されており、これが可視化された場合、映像「Ｉ」が表示されることを意味する。
【００７９】
以下、学習データＴＲ１をＤＬのモデルおよびＡＥのモデルに学習させることにより、ＤＬ１００ＡおよびＡＥ１１０Ａが生成された場合を想定する。
【００８０】
図１４は、ＤＬの認識結果の一例を示す図である。図１４には、図１３に示すテストＩＤ「ＴＴ１」〜「ＴＴ３」の３つのテストデータごとにＤＬ１００Ａの認識結果が示されている。図１４に示すように、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」がＤＬ１００Ａの入力層へ入力された場合、ＤＬ１００Ａの出力層から出力されるラベル「１」及びラベル「７」の確信度のうち、最大の確信度「０．８」を持つラベル「１」が認識結果として出力される。また、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」がＤＬ１００Ａの入力層へ入力された場合、ＤＬ１００Ａの出力層から出力されるラベル「１」及びラベル「７」の確信度のうち、最大の確信度「０．９」を持つラベル「１」が認識結果として出力される。さらに、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」がＤＬ１００Ａの入力層へ入力された場合、ＤＬ１００Ａの出力層から出力されるラベル「１」及びラベル「７」の確信度のうち、最大の確信度「０．９」を持つラベル「１」が認識結果として出力される。
【００８１】
このように、図１３に示す３つのテストデータＴＴ１〜ＴＴ３のうちいずれがＤＬ１００Ａへ入力された場合でも、図１４に示すように、認識部２２０からラベル「１」が認識結果として出力される。一方、図１３に示すように、テストＩＤ「ＴＴ１」〜「ＴＴ３」の３つの画像データが可視化された映像は、ぞれぞれ「１」、「７」、「Ｉ」である。
【００８２】
したがって、結果から３つの事例を分析すれば、テストデータＴＴ１しか認識に成功せず、テストデータＴＴ２及びテストデータＴＴ３はラベル「１」と誤認識されることがわかる。これら３つの事例を正確に表す適合度を算出できることを立証するには、テストデータＴＴ２及びテストデータＴＴ３に対するＤＬ１００Ａの適合度よりも、テストデータＴＴ１に対するＤＬ１００Ａの適合度を高く算出できることが条件となることがわかる。
【００８３】
図１５は、ＡＥの出力結果の一例を示す図である。図１５には、図１３に示す３つのテストデータＴＴ１〜ＴＴ３ごとにＡＥ１１０Ａの再構成誤差の算出結果が示されている。図１６は、適合度の算出結果の一例を示す図である。図１６には、図１３に示す３つのテストデータＴＴ１〜ＴＴ３ごとに図１５に示す再構成誤差から算出された適合度の算出結果が示されている。
【００８４】
図１５に示すように、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」がＡＥ１１０Ａのエンコーダへ入力された場合、ＡＥ１１０Ａのデコーダには、ＡＥ１１０Ａのエンコーダの出力に加えて、ＤＬ１００Ａの出力、本例ではラベル「１」が入力される。この結果、ラベル「１」にしたがって復元された復号化データがＡＥ１１０Ａのデコーダから出力される。この復号化データが可視化された映像は、図１５に示すように、ラベルにしたがって「１」に近い映像となる。さらに、ＡＥ１１０Ａのデコーダから出力された復号化データと、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」との誤差から算出された再構成誤差「０．１」が符号化部２３０から出力される。この再構成誤差は、一例として、２つの画像データの間で互いの位置が対応する画素ごとに画素値の差の２乗を計算し、画素ごとにそれぞれ計算された画素値の差の２乗に所定の統計処理、例えば平均処理などを行うことにより算出される。そして、テストデータＴＴ１から算出された再構成誤差「０．１」が算出部２４０へ入力された場合、適合度は、図１６に示すように、「１．００（＝０．１／０．１）」と算出される。
【００８５】
次に、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」がＡＥ１１０Ａのエンコーダへ入力された場合、ＡＥ１１０Ａのデコーダには、ＡＥ１１０Ａのエンコーダの出力に加えて、ＤＬ１００Ａの出力、本例ではラベル「１」が入力される。この結果、ラベル「１」にしたがって復元された復号化データがＡＥ１１０Ａのデコーダから出力される。この復号化データが可視化された映像は、図１５に示すように、ラベルにしたがって「１」に近い映像となる。さらに、ＡＥ１１０Ａのデコーダから出力された復号化データと、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」との誤差から算出された再構成誤差「０．４」が符号化部２３０から出力される。そして、テストデータＴＴ２から算出された再構成誤差「０．４」が算出部２４０へ入力された場合、適合度は、図１６に示すように、「０．２５（＝０．１／０．４）」と算出される。
【００８６】
さらに、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」がＡＥ１１０Ａのエンコーダへ入力された場合、ＡＥ１１０Ａのデコーダには、ＡＥ１１０Ａのエンコーダの出力に加えて、ＤＬ１００Ａの出力、本例ではラベル「１」が入力される。この結果、ラベル「１」にしたがって復元された復号化データがＡＥ１１０Ａのデコーダから出力される。この復号化データが可視化された映像は、図１５に示すように、ラベルにしたがって「１」に近い映像となる。さらに、ＡＥ１１０Ａのデコーダから出力された復号化データと、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」との誤差から算出された再構成誤差「０．３」が符号化部２３０から出力される。そして、テストデータＴＴ３から算出された再構成誤差「０．３」が算出部２４０へ入力された場合、適合度は、図１６に示すように、「０．３３・・・（＝０．１／０．３）」と算出される。
【００８７】
このように、テストデータＴＴ２及びテストデータＴＴ３に対するＤＬ１００Ａの適合度よりも、テストデータＴＴ１に対するＤＬ１００Ａの適合度を高く算出できる。このため、本実施例では、３つのテストデータＴＴ１〜ＴＴ３に対するＤＬ１００Ａの認識結果の事例を正確に表す適合度を算出できることがわかる。
【００８８】
以下、上記３つの事例を正確に表す適合度を算出できるメカニズムの一面について説明する。
【００８９】
（１）テストデータＴＴ１
テストデータＴＴ１は、学習データＴＲ１のデータセットの中にラベルが存在するカテゴリに属するデータである。この場合、学習データＴＲ１のデータセットに含まれる学習サンプルの中にテストデータＴＴ１の画像データ「Ｉ１‘」と類似する画像データ、例えば図１２に示すラベル「１」の文字画像の画像データ「Ｉ１１」などが含まれる可能性が高い。この事実は、ＡＥ１１０ＡがテストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」を圧縮した後に元の画像データ「Ｉ１‘」を復元できる再現性を高める方向に作用する。これに加えて、ＤＬ１００Ａが認識に成功する場合、ＤＬ１００Ａが認識結果として出力するラベル「１」と、テストデータＴＴ１が分類されることが求められるカテゴリとが対応する。それ故、ＤＬ１００Ａが出力するラベルをＡＥ１１０Ａのデコーダへ入力することが一因となってテストデータＴＴ１の元の画像データ「Ｉ１‘」の再現性が低下することもない。これらのことから、テストデータＴＴ１に対するＤＬ１００Ａの適合度として、「１．０」という高い値を求めることが可能である。
【００９０】
（２）テストデータＴＴ３
テストデータＴＴ３は、学習データＴＲ１のデータセットの中にラベルが存在しないカテゴリに属するデータである。この場合、学習データＴＲ１のデータセットに含まれる学習サンプルの中にテストデータＴＴ３の画像データ「Ｉ３‘」と類似する画像データが含まれない可能性が高い。この事実は、ＡＥ１１０ＡがテストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」を圧縮した後に元の画像データ「Ｉ３‘」を復元できる再現性を低下させる方向に作用する。このため、テストデータＴＴ３に対するＤＬ１００Ａの適合度として、テストデータＴＴ１に対するＤＬ１００Ａの適合度「１」よりも低い「０．３３」という値を求めることが可能である。
【００９１】
（３）テストデータＴＴ２
テストデータＴＴ２も、テストデータＴＴ１と同様、学習データＴＲ１のデータセットの中にラベルが存在するカテゴリに属するデータである。この場合、学習データＴＲ１のデータセットに含まれる学習サンプルの中にテストデータＴＴ２の画像データ「Ｉ２‘」と類似する画像データ、例えば図１２に示すラベル「７」の文字画像の画像データ「Ｉ１２」などが含まれる可能性が高い。この事実は、ＡＥ１１０ＡがテストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」を圧縮した後に元の画像データ「Ｉ２‘」を復元できる再現性を高める方向に作用する。これは、再構成誤差が低くなる一因となりうる。ところが、図１４に示すように、ＤＬ１００Ａは、テストデータＴＴ２をラベル「７」に対応するクラスに分類すべきところを誤ってラベル「１」に対応するクラスへ分類している。
【００９２】
これらのことから、本実施例のように、テストデータＴＴ２がＡＥ１１０Ａへ入力される場合、ＤＬ１００Ａの出力がＡＥ１１０Ａのデコーダへ入力されなければ、ＤＬ１００Ａが認識に失敗する場合でも、再構成誤差が低く算出されうる状況にある。つまり、テストデータＴＴ１およびテストデータＴＴ３がＡＥ１１０Ａへ入力される２つの事例では、ＤＬ１００Ａの認証結果に対応する適合度を算出できる一方で、テストデータＴＴ２がＡＥ１１０Ａへ入力される事例では、ＤＬ１００Ａの認証結果に対応しない適合度が算出される。このように一部の事例で算出される適合度の信頼性が低下することがある。
【００９３】
ここで、ＤＬ１００Ａの出力がデコーダへ入力されるＡＥ１１０Ａと、ＤＬ１００Ａの出力がデコーダへ入力されないＡＥ１１０Ａ´との間で、算出部２４０により算出される適合度の差を対比する。
【００９４】
図１７は、ＡＥの出力結果の一例を示す図である。図１７には、図１３に示す３つのテストデータＴＴ１〜ＴＴ３ごとにＡＥ１１０Ａ´の再構成誤差の算出結果が示されている。図１８は、適合度の算出結果の一例を示す図である。図１８には、図１３に示す３つのテストデータＴＴ１〜ＴＴ３ごとに図１７に示すＡＥ１１０Ａ´の再構成誤差から算出された適合度の算出結果が示されている。
【００９５】
図１５及び図１７を対比すると、３つのテストデータＴＴ１〜ＴＴ３のうちテストデータＴＴ１及びテストデータＴＴ３が入力される場合、ＡＥ１１０Ａにより算出される再構成誤差と、ＡＥ１１０Ａ´により算出される再構成誤差との間に差は生まれていないことがわかる。一方、テストデータＴＴ２が入力される場合、ＡＥ１１０Ａにより算出される再構成誤差「０．４」に比べて、ＡＥ１１０Ａ´により算出される再構成誤差「０．１」が小さいことがわかる。
【００９６】
このように、ＡＥ１１０Ａ´により算出される再構成誤差がＡＥ１１０Ａにより算出される再構成誤差よりも小さくなるのは、ＡＥ１１０Ａ´のデコーダには、ＤＬ１００Ａの出力は入力されず、ＡＥ１１０Ａ´のエンコーダの出力だけが入力されるからである。
【００９７】
上述した通り、テストデータＴＴ２は、学習データＴＲ１のデータセットの中にラベルが存在するカテゴリに属するデータである。このため、ＡＥ１１０Ａ´は、テストＩＤ「ＴＴ１」の元の画像データ「Ｉ１‘」が復元される場合と同等のレベルで、テストＩＤ「ＴＴ２」の元の画像データ「Ｉ２‘」を復元できる。その一方で、ＡＥ１１０Ａ´のデコーダには、ＤＬ１００Ａの出力は入力されないので、ＤＬ１００Ａが出力するラベル「１」に対応する学習データに近付けて復元する再構成誤差へのペナルティも発生しない。この結果、ＡＥ１１０Ａ´のデコーダは、テストＩＤ「ＴＴ２」の元の画像データ「Ｉ２‘」に近い画像データへ復元された復号化データを出力する。すなわち、ＡＥ１１０Ａ´のデコーダが出力する復号化データが可視化された映像は、図１７に示すように、テストＩＤ「ＴＴ２」の元の画像データ「Ｉ２‘」が有する文字「７」の特徴が保存された状態で復元されるので、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」が可視化された映像「７」と類似する。この結果、ＡＥ１１０Ａ´のデコーダから出力された復号化データと、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」との誤差から、ＡＥ１１０Ａの再構成誤差「０．４」に比べて小さい値「０．１」がＡＥ１１０Ａ´の再構成誤差として算出される。その上で、テストデータＴＴ２から算出された再構成誤差「０．１」が算出部２４０へ入力された場合、適合度は、図１８に示すように、「１（＝０．１／０．１）」と算出される。
【００９８】
一方、ＡＥ１１０Ａのデコーダには、ＡＥ１１０Ａのエンコーダの出力に加えて、ＤＬ１００Ａの出力が復号化の手がかりとして入力される。このとき、ＤＬ１００Ａは、図１４に示すように、テストデータＴＴ２をラベル「７」に対応するクラスに分類すべきところを誤ってラベル「１」に対応するクラスへ分類している。このようにＤＬ１００Ａが誤認識する場合、ＤＬ１００Ａが認識結果として出力するラベル「１」と、テストデータＴＴ２が分類されることが求められるカテゴリとが対応しない。この場合、ＤＬ１００Ａが出力するラベル「１」に対応する学習データに近付けて復号化が行われる。この結果、ＡＥ１１０Ａのデコーダは、テストＩＤ「ＴＴ２」の元の画像データ「Ｉ２‘」に近い画像データには復元できない。すなわち、ＡＥ１１０Ａのデコーダが出力する復号化データが可視化された映像は、図１５に示すように、ラベル「１」が付与された学習サンプルの画像データ「Ｉ１１」が可視化された映像「１」に近付けて復元される。このため、ＡＥ１１０Ａのデコーダが出力する復号化データが可視化された映像からは、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」が有する文字「７」の特徴が損なわれる。よって、ＡＥ１１０Ａのデコーダが出力する復号化データが可視化された映像「１」は、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」が可視化された映像「７」と類似しなくなる。この結果、ＡＥ１１０Ａのデコーダから出力された復号化データと、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」との誤差から、ＡＥ１１０Ａ´の再構成誤差「０．１」よりも大きい値「０．４」がＡＥ１１０Ａの再構成誤差として算出される。このように、ＤＬ１００Ａの出力が復号化の手がかりとしてＡＥ１１０Ａのデコーダへ入力されることにより、ＤＬ１００Ａの誤認識時には、ＡＥ１１０Ａの再構成誤差にペナルティが与えられることになる。その上で、テストデータＴＴ２から算出された再構成誤差「０．４」が算出部２４０へ入力された場合、適合度は、図１６に示すように、「０．２５（＝０．１／０．４）」と算出される。
【００９９】
このように、学習データＴＲ１のデータセットの中にラベルが存在するカテゴリに属するテストデータＴＴ２がＡＥ１１０Ａへ入力される場合であっても、ＤＬ１００ＡがテストデータＴＴ２を誤認識する場合、再構成誤差にペナルティを与える。この結果、ＤＬ１００Ａの認証結果に対応しない適合度が算出されるのを抑制できるので、テストデータＴＴ２が入力される事例においても、適合度の信頼性が低下するのを抑制できる。
【０１００】
［処理の流れ］
次に、本実施例に係る適合度算出システムの処理の流れについて説明する。ここでは、学習装置２０により実行される（１）学習処理を説明した後に、適合度算出装置２００により実行される（２）適合度算出処理を説明することとする。
【０１０１】
（１）学習処理
図１９は、実施例２に係る学習処理の手順を示すフローチャートである。この処理は、一例として、学習データ入力部２１により学習データが取得された場合に開始される。図１９に示すように、学習データが取得されると（ステップＳ１０１）、学習データ入力部２１は、学習データのデータセットに含まれる学習サンプルの中から学習サンプルを１つ選択する（ステップＳ１０２）。
【０１０２】
続いて、学習データ入力部２１は、ステップＳ１０２で選択された学習サンプルをＤＬのモデルへ入力する（ステップＳ１０３Ａ）。そして、ＤＬ学習部２２は、ステップＳ１０３Ａで学習サンプルがＤＬのモデルへ入力されることにより得られたＤＬのモデルの出力と、学習サンプルの正解のラベルとの誤差からＤＬのシナプスの重みやバイアスなどのモデルのパラメータを学習する（ステップＳ１０４）。
【０１０３】
また、学習データ入力部２１は、ステップＳ１０２で選択された学習サンプルをＡＥのエンコーダへ入力する（ステップＳ１０３Ｂ）。続いて、ＡＥ学習部２３は、ステップＳ１０３Ｂで学習サンプルがＡＥのエンコーダへ入力することにより得られたＡＥのエンコーダの出力をＡＥのデコーダへ入力すると共に、ステップＳ１０３Ａで学習サンプルがＤＬのモデルへ入力されることにより得られたＤＬのモデルの出力、例えばラベルまたは最大の確信度のラベルをＡＥのデコーダへ入力する（ステップＳ１０５）。そして、ＡＥ学習部２３は、ＡＥのデコーダの出力と、学習サンプルとの再構成誤差から、ＡＥのシナプスの重みやバイアスなどのモデルのパラメータを学習する（ステップＳ１０６）。
【０１０４】
続いて、学習データのデータセットに含まれる全ての学習サンプルが選択されるまで（ステップＳ１０７Ｎｏ）、上記のステップＳ１０２〜上記のステップＳ１０６までの処理を繰り返して実行する。
【０１０５】
その後、全ての学習サンプルが選択された場合（ステップＳ１０７Ｙｅｓ）、学習回数が所定のエポック数に達するまで（ステップＳ１０８Ｎｏ）、学習回数のカウンタをインクリメントし（ステップＳ１０９）、上記のステップＳ１０２〜上記のステップＳ１０７までの処理を繰り返して実行する。
【０１０６】
そして、学習回数が所定のエポック数に達した場合（ステップＳ１０８Ｙｅｓ）、ＤＬのモデルに関するパラメータの学習結果をＤＬ記憶部２２Ａへ保存すると共にＡＥのモデルに関するパラメータの学習結果をＡＥ記憶部２３Ａへ保存し（ステップＳステップＳ１１０及びステップＳ１１１）、処理を終了する。
【０１０７】
なお、ＤＬの学習を先行させることでＡＥの学習をより有効に行うことが可能となる。具体的には、処理開始から所定数のサンプルに対してはＤＬの学習だけを行い、所定数のサンプル以降はＤＬとＡＥの双方の学習を行う。ＤＬの学習が進んだ状態からＡＥの学習を行うことで、所定の誤差に到達するまでのエポック数を削減し、学習時間の短縮を図ることができる。また、適合度算出システムにおいて複数のサンプルをまとめて処理を行ってもよい。
【０１０８】
（２）適合度算出処理
図２０は、実施例２に係る適合度算出処理の手順を示すフローチャートである。この処理は、一例として、テストデータ入力部２１０によりテストデータが取得された場合に開始される。
【０１０９】
図２０に示すように、テストデータが取得されると（ステップＳ２０１）、テストデータ入力部２１０は、テストデータをＤＬのモデルへ入力する（ステップＳ２０２Ａ）。そして、認識部２２０は、ステップＳ２０２ＡでテストデータがＤＬのモデルへ入力されることにより得られたＤＬのモデルの出力に基づいてクラス分類、すなわち認識を実行する（ステップＳ２０３）。
【０１１０】
また、テストデータ入力部２１０は、テストデータをＡＥのエンコーダへ入力する（ステップＳ２０２Ｂ）。続いて、符号化部２３０は、ステップＳ２０２ＢでテストデータがＡＥのエンコーダへ入力することにより得られたＡＥのエンコーダの出力をＡＥのデコーダへ入力すると共に、ステップＳ２０２ＡでテストデータがＤＬのモデルへ入力されることにより得られたＤＬのモデルの出力、例えばラベルまたは最大の確信度のラベルをＡＥのデコーダへ入力する（ステップＳ２０４）。そして、符号化部２３は、ステップＳ２０４の結果として得られたＡＥのデコーダの出力と、テストデータとに基づいて再構成誤差を算出する（ステップＳ２０５）。
【０１１１】
続いて、算出部２４０は、ステップＳ２０５で算出された再構成誤差に基づいて適合度を算出し（ステップＳ２０６）、出力部２５０は、ステップＳ２０６で算出された適合度を所定の出力先へ出力し（ステップＳ２０７）、処理を終了する。
【０１１２】
［効果の一側面］
上述してきたように、本実施例に係る適合度算出装置２００は、自己符号化器が出力する再構成誤差に基づいてテストデータに対する学習モデルの出力の適合度を算出して出力する。したがって、本実施例に係る適合度算出装置２００によれば、テストデータに対する学習モデルの出力の適合度を出力できる。この適合度を用いることにより、テストデータの認識が可能である否かの判断材料を提示できる他、テストデータの認識が可能な学習モデルが存在するか否か、さらには、テストデータの認識が可能な学習モデルを用いるサービス名などを提示できる。
【０１１３】
なお、上記の実施例２では、ＡＥのモデルの学習時にＤＬのモデルの出力がＡＥのデコーダへ入力される例を説明したが、これに限定されない。例えば、ＡＥのデコーダには、ＡＥのモデルの学習時に学習サンプルに付与されたラベルを入力することとしてもかまわない。このように学習サンプルに付与されたラベルをＡＥのデコーダへ入力することにより、ＤＬのモデルから出力が得られるまでＡＥのデコーダへのデータ入力を待機せずともよくなるので、ＤＬのモデル学習およびＡＥのモデル学習を並列して実行することが可能になる。
【０１１４】
また、上記の実施例２では、図１２〜図１８を用いて文字画像の学習および認識が実行される場合の具体例を示したが、他の種類の画像や動画の他、音声などの他のメディアデータにも図１９や図２０に示す処理を適用できる。
【０１１５】
なお、上記の実施例２では、ＡＥが学習データまたはテストデータの全体を復元する例を説明したが、処理量の削減やリアルタイム性などが求められる場合、学習データまたはテストデータの一部を復元するようにＡＥのエンコーダおよびデコーダの構成を変更することもできる。例えば、映像の場合、現在のフレームに基づいて次のフレームを予測する予測器をオートエンコーダとして用いることもできる。
【実施例３】
【０１１６】
さて、本実施例では、複数の学習モデルの出力結果の中から、各学習モデルと同一の学習データにより学習をさせた自己符号化器それぞれが出力する再構成誤差ごとに算出された適合度に基づいて認識結果として出力する学習モデルの出力結果を選択する例を説明する。
【０１１７】
図２１は、実施例３に係る識別装置の機能的構成の一例を示すブロック図である。図２１に示すように、識別装置３００は、テストデータ入力部３１０と、モジュール３２０Ａ〜３２０Ｃと、算出部３４０と、選択部３５０と、出力部３６０とを有する。なお、図２１には、識別装置３００が３つのモジュール３２０Ａ〜３２０Ｃを有する例を示したが、これはあくまで一例であり、２つまたは４つ以上のモジュール３２０が識別装置３００に備わることとしてもかまわない。
【０１１８】
テストデータ入力部３１０は、テストデータを後段の機能部へ入力する。このテストデータを提供するソースの一例として、機械学習ビジネスのサービスの提供を受ける顧客等が挙げられるが、これに限定されない。例えば、機械学習ビジネスのサービス提供者が画像や音声などのデータをリクエストとして受け付け、画像認識や音声認識の結果を出力するクラウドサービスを別サービスとして提供する場合、別サービスの顧客をテストデータのソースとすることもできる。一側面として、テストデータ入力部３１０は、識別装置３００と接続される外部装置、例えば任意のコンピュータからテストデータをネットワーク経由で取得することができる。その上で、テストデータ入力部３１０は、テストデータをモジュール３２０Ａ〜３２０Ｃへ入力する。
【０１１９】
モジュール３２０Ａ〜３２０Ｃは、図１１に示した認識部２２０および符号化部２３０の機能がモジュール化された機能部である。
【０１２０】
ここで、モジュール３２０Ａ〜３２０Ｃの各々のモジュール３２０で実行されるＤＬのモデルおよびＡＥのモデルのパラメータは、図１１に示した学習装置２０により異なるデータセットの学習データから個別に学習される。すなわち、学習装置２０では、異なるデータセットの学習データからＤＬのモデルおよびＡＥのモデルのパラメータが個別に学習される。その後、学習装置２０では、ＤＬのモデル情報が学習ＩＤごとにＤＬ記憶部２２Ａへ保存されると共に、ＡＥのモデル情報が学習ＩＤごとにＡＥ記憶部２３Ａへ保存される。その上で、学習ＩＤごとに保存されたＤＬのモデルおよびＡＥのモデルがモジュール３２０Ａ〜３２０Ｃに割り当てられる。その後、モジュール３２０Ａ〜３２０Ｃは、各々のモジュール３２０に割り当てられたＤＬのモデル情報およびＡＥのモデル情報をＤＬ記憶部２２ＡおよびＡＥ記憶部２３Ａから読み出してＤＬのモデルおよびＡＥのモデルを実行することにより、図１１に示した認識部２２０および符号化部２３０の機能を実現できる。
【０１２１】
算出部３４０は、ＤＬの出力の、テストデータに対する適合度をモジュール３２０ごとに算出する。一実施形態として、算出部３４０は、各モジュール３２０が実行するＡＥから出力される再構成誤差に基づいて適合度をモジュール３２０ごとに算出する。例えば、算出部３４０は、ＡＥから出力される再構成誤差の逆数、例えば「０．１／再構成誤差」で正規化する計算を行うことにより、上記の適合度を算出する。なお、ここでは、各モジュール３２０が再構成誤差を出力し、算出部３４０が適合度を算出する場合を例示したが、各モジュール３２０で適合度を算出させることとしてもかまわない。
【０１２２】
選択部３５０は、モジュール３２０Ａ〜３２０Ｃの出力のうちいずれかの出力を選択する。一実施形態として、選択部３５０は、モジュール３２０Ａ〜３２０Ｃごとに出力されるＤＬの出力結果のうち、算出部３４０により最大の適合度が算出されたモジュール３２０のＤＬの出力結果を選択する。
【０１２３】
出力部３６０は、認識結果を出力する。一実施形態として、出力部３６０は、モジュール３２０Ａ〜３２０Ｃごとに出力されるＤＬの出力結果のうち、選択部３５０により選択されたモジュール３２０のＤＬの出力結果を認識結果として所定の出力先へ出力する。例えば、外部のクライアント端末から認証のリクエストとしてテストデータが入力された場合、当該クライアント端末を出力先とすることができる。この他、バックエンドで実行するサービスやアプリケーション、ＡＩ、識別装置３００の外部装置などを出力先とすることもできる。
【０１２４】
［具体例３］
図２２〜図２８を用いて、モジュールの選択の具体例について説明する。図２２は、モジュールのモデル学習に用いる学習データの一例を示す図である。図２２には、図１２と同様のスキーマで学習データが示されており、さらに、図１２の例と同様、学習データの一例として、文字画像のデータが示されている。図２２に示すように、学習ＩＤ「ＴＲ１」で識別される学習データとして、文字のラベル「１」が付与された文字画像のデータ「Ｉ１１」の学習サンプルと、文字のラベル「７」が付与された文字画像のデータ「Ｉ１２」の学習サンプルとが示されている。さらに、学習ＩＤ「ＴＲ２」で識別される学習データとして、文字のラベル「Ｉ」が付与された文字画像のデータ「Ｉ２１」の学習サンプルと、文字のラベル「７」が付与された文字画像のデータ「Ｉ２２」の学習サンプルとが示されている。
【０１２５】
図２３は、テストデータの一例を示す図である。図２３には、図１３と同様のスキーマでテストデータが示されている。図２３でも、図１３と同様、「データラベル」の欄をブランクとし、「データ可視化」の欄には、説明の便宜上、文字画像のデータが可視化された映像が示されている。図２３に示すように、テストＩＤ「ＴＴ１」で識別されるテストデータには、画像データ「Ｉ１‘」が示されており、これが可視化された場合、映像「１」が表示されることを意味する。また、テストＩＤ「ＴＴ２」で識別されるテストデータには、画像データ「Ｉ２‘」が示されており、これが可視化された場合、映像「７」が表示されることを意味する。さらに、テストＩＤ「ＴＴ３」で識別されるテストデータには、画像データ「Ｉ３‘」が示されており、これが可視化された場合、映像「Ｉ」が表示されることを意味する。
【０１２６】
以下、学習データＴＲ１から生成されたＤＬ３００ＡのモデルおよびＡＥ３２０Ａのモデルがモジュール３２０Ａに割り当てられると共に、学習データＴＲ２から生成されたＤＬ３００ＢおよびＡＥ３２０Ｂがモジュール３２０Ｂに割り当てられる場合を想定して説明を続ける。
【０１２７】
図２４は、ＤＬの認識結果の一例を示す図である。図２４には、図２３に示すテストＩＤ「ＴＴ１」〜「ＴＴ３」の３つのテストデータごとにＤＬ３００Ａの認識結果およびＤＬ３００Ｂの認識結果が示されている。
【０１２８】
図２４に示すように、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」がモジュール３２０ＡのＤＬ３００Ａへ入力された場合、ＤＬ３００Ａの出力層から出力されるラベル「１」及びラベル「７」の確信度のうち、最大の確信度「０．８」を持つラベル「１」が認識結果として出力される。また、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」がモジュール３２０ＢのＤＬ３００Ｂへ入力された場合、ＤＬ３００Ａの出力層から出力されるラベル「Ｉ」及びラベル「７」の確信度のうち、最大の確信度「０．９」を持つラベル「Ｉ」が認識結果として出力される。
【０１２９】
また、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」がモジュール３２０ＡのＤＬ３００Ａへ入力された場合、ＤＬ３００Ａの出力層から出力されるラベル「１」及びラベル「７」の確信度のうち、最大の確信度「０．９」を持つラベル「１」が認識結果として出力される。また、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」がモジュール３２０ＢのＤＬ３００Ｂへ入力された場合、ＤＬ３００Ｂの出力層から出力されるラベル「Ｉ」及びラベル「７」の確信度のうち、最大の確信度「０．８」を持つラベル「７」が認識結果として出力される。
【０１３０】
さらに、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」がモジュール３２０ＡのＤＬ３００Ａへ入力された場合、ＤＬ３００Ａの出力層から出力されるラベル「１」及びラベル「７」の確信度のうち、最大の確信度「０．９」を持つラベル「１」が認識結果として出力される。また、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」がモジュール３２０ＢのＤＬ３００Ｂへ入力された場合、ＤＬ３００Ｂの出力層から出力されるラベル「Ｉ」及びラベル「７」の確信度のうち、最大の確信度「０．８」を持つラベル「Ｉ」が認識結果として出力される。
【０１３１】
結果から見れば、各テストデータＴＴ１〜ＴＴ３においてクラスを正しく分類できる学習モデルは、テストデータＴＴ１にはＤＬ３００Ａ、テストデータＴＴ２にはＤＬ３００Ｂ、テストデータＴＴ３にはＤＬ３００Ｂとなる。しかし、上記の従来技術のように、確信度が最大である学習モデルの出力を選択したのでは、テストデータＴＴ２の認識結果およびテストデータＴＴ３の認識結果として、ＤＬ３００Ａの出力が選択される。この結果、上記の従来技術では、テストデータＴＴ２のラベルを「１」と誤認識したり、テストデータＴＴ３のラベルを「１」と誤認識したりする。
【０１３２】
その一方で、本実施例では、モジュール３２０Ａおよびモジュール３２０ＢごとにＡＥ３２０ＡおよびＡＥ３２０Ｂがそれぞれ出力する再構成誤差から適合度をモジュール３２０Ａおよびモジュール３２０Ｂごとに算出し、最大の適合度が算出されたモジュール３２０の出力を選択することで、全てのテストデータＴＴ１〜ＴＴ３においてクラスを正しく分類できるモジュール３２０を選択できる。
【０１３３】
図２５は、ＡＥの出力結果の一例を示す図である。図２５には、図２３に示す３つのテストデータＴＴ１〜ＴＴ３ごとにＡＥ３２０Ａの再構成誤差の算出結果およびＡＥ３２０Ｂの再構成誤差の算出結果が示されている。図２６は、モジュールの選択結果の一例を示す図である。図２６には、図２３に示す３つのテストデータＴＴ１〜ＴＴ３ごとに図２５に示す再構成誤差から算出された適合度のうち最大の適合度が算出されたモジュール３２０の選択結果が示されている。
【０１３４】
図２５に示すように、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」がモジュール３２０ＡのＡＥ３２０Ａのエンコーダへ入力された場合、ＡＥ３２０Ａのデコーダには、ＡＥ３２０Ａのエンコーダの出力に加えて、ＤＬ３００Ａの出力、本例では正しいラベル「１」がＡＥ３２０Ａのデコーダへ入力される。この結果、正しいラベル「１」にしたがって復元された復号化データがＡＥ３２０Ａのデコーダから出力される。この復号化データが可視化された映像は、図２５に示すように、正しいラベルにしたがって「１」に近い映像となり、テストデータＴＴ１が可視化された映像「１」と類似する。このため、ＡＥ３２０Ａのデコーダから出力された復号化データと、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」との誤差から算出されたモジュール３２０Ａの再構成誤差は、誤認識時に比べて小さい値「０．１」となる。そして、テストデータＴＴ１から算出されたモジュール３２０Ａの再構成誤差「０．１」が算出部３４０へ入力された場合、適合度は、図２６に示すように、「１．００（＝０．１／０．１）」と算出される。
【０１３５】
一方、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」がモジュール３２０ＢのＡＥ３２０Ｂのエンコーダへ入力された場合、ＡＥ３２０Ｂのデコーダには、ＡＥ３２０Ｂのエンコーダの出力に加えて、ＤＬ３００Ｂの出力、本例では誤認識のラベル「Ｉ」がＡＥ３２０Ｂのデコーダへ入力される。この結果、誤認識のラベル「Ｉ」にしたがって復元された復号化データがＡＥ３２０Ｂのデコーダから出力される。この復号化データが可視化された映像は、図２５に示すように、誤認識のラベルにしたがって「Ｉ」に近い映像となり、テストデータＴＴ１が可視化された映像「１」と類似しなくなる。このため、ＡＥ３２０Ｂのデコーダから出力された復号化データと、テストＩＤ「ＴＴ１」の画像データ「Ｉ１‘」との誤差から算出されるモジュール３２０Ｂの再構成誤差は、モジュール３２０Ａの再構成誤差「０．１」よりも大きい値「０．３」となる。そして、テストデータＴＴ１から算出されたモジュール３２０Ｂの再構成誤差「０．３」が算出部３４０へ入力された場合、適合度は、「０．３３・・・（＝０．１／０．３）」と算出される。
【０１３６】
このように、テストデータＴＴ１に対するモジュール３２０Ａの適合度が「１．００」と算出される一方で、テストデータＴＴ１に対するモジュール３２０Ｂの適合度が「０．３３」と算出される。これらの適合度が比較された結果、適合度の値が大きいモジュール３２０ＡのＤＬ３００Ａの出力が認識結果として選択される。よって、テストデータＴＴ１のクラスを正しく分類できるモジュール３２０Ａを選択できる。
【０１３７】
次に、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」がモジュール３２０ＡのＡＥ３２０Ａのエンコーダへ入力された場合、ＡＥ３２０Ａのデコーダには、ＡＥ３２０Ａのエンコーダの出力に加えて、ＤＬ３００Ａの出力、本例では誤認識のラベル「１」がＡＥ３２０Ａのデコーダへ入力される。この結果、誤認識のラベル「１」にしたがって復元された復号化データがＡＥ３２０Ａのデコーダから出力される。この復号化データが可視化された映像は、図２５に示すように、誤認識のラベルにしたがって「１」に近い映像となり、テストデータＴＴ２が可視化された映像「７」と類似しなくなる。この結果、ＡＥ３２０Ａのデコーダから出力された復号化データと、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」との誤差から算出されるモジュール３２０Ａの再構成誤差は、正しく認識された時と比べて大きい値「０．４」となる。そして、テストデータＴＴ２から算出されたモジュール３２０Ａの再構成誤差「０．４」が算出部３４０へ入力された場合、適合度は、「０．２５（＝０．１／０．４）」と算出される。
【０１３８】
一方、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」がモジュール３２０ＢのＡＥ３２０Ｂのエンコーダへ入力された場合、ＡＥ３２０Ｂのデコーダには、ＡＥ３２０Ｂのエンコーダの出力に加えて、ＤＬ３００Ｂの出力、本例では正しいラベル「７」がＡＥ３２０Ｂのデコーダへ入力される。この結果、正しいラベル「７」にしたがって復元された復号化データがＡＥ３２０Ｂのデコーダから出力される。この復号化データが可視化された映像は、図２５に示すように、正しいラベルにしたがって「７」に近い映像となり、テストデータＴＴ２が可視化された映像「７」と類似する。このため、ＡＥ３２０Ｂのデコーダから出力された復号化データと、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」との誤差から算出されたモジュール３２０Ｂの再構成誤差は、誤認識時に比べて小さい値「０．１」となる。そして、テストデータＴＴ２から算出されたモジュール３２０Ｂの再構成誤差「０．１」が算出部３４０へ入力された場合、適合度は、図２６に示すように、「１．００（＝０．１／０．１）」と算出される。
【０１３９】
このように、テストデータＴＴ２に対するモジュール３２０Ａの適合度が「０．２５」と算出される一方で、テストデータＴＴ２に対するモジュール３２０Ｂの適合度が「１．００」と算出される。これらの適合度が比較された結果、適合度の値が大きいモジュール３２０ＢのＤＬ３００Ｂの出力が認識結果として選択される。よって、テストデータＴＴ２のクラスを正しく分類できるモジュール３２０Ｂを選択できる。
【０１４０】
さらに、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」がモジュール３２０ＡのＡＥ３２０Ａのエンコーダへ入力された場合、ＡＥ３２０Ａのデコーダには、ＡＥ３２０Ａのエンコーダの出力に加えて、ＤＬ３００Ａの出力、本例では誤認識のラベル「１」がＡＥ３２０Ａのデコーダへ入力される。この結果、誤認識のラベル「１」にしたがって復元された復号化データがＡＥ３２０Ａのデコーダから出力される。この復号化データが可視化された映像は、図２５に示すように、誤認識のラベルにしたがって「１」に近い映像となり、テストデータＴＴ３が可視化された映像「Ｉ」と類似しなくなる。この結果、ＡＥ３２０Ａのデコーダから出力された復号化データと、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」との誤差から算出されるモジュール３２０Ａの再構成誤差は、誤認識時に比べて大きい値「０．３」となる。そして、テストデータＴＴ３から算出されたモジュール３２０Ａの再構成誤差「０．３」が算出部３４０へ入力された場合、適合度は、「０．３３（＝０．１／０．３）」と算出される。
【０１４１】
一方、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」がモジュール３２０ＢのＡＥ３２０Ｂのエンコーダへ入力された場合、ＡＥ３２０Ｂのデコーダには、ＡＥ３２０Ｂのエンコーダの出力に加えて、ＤＬ３００Ｂの出力、本例では正しいラベル「Ｉ」がＡＥ３２０Ｂのデコーダへ入力される。この結果、正しいラベル「Ｉ」にしたがって復元された復号化データがＡＥ３２０Ｂのデコーダから出力される。この復号化データが可視化された映像は、図２５に示すように、正しいラベルにしたがって「Ｉ」に近い映像となり、テストデータＴＴ３が可視化された映像「Ｉ」と類似する。このため、ＡＥ３２０Ｂのデコーダから出力された復号化データと、テストＩＤ「ＴＴ３」の画像データ「Ｉ３‘」との誤差から算出されたモジュール３２０Ｂの再構成誤差は、誤認識時に比べて小さい値「０．１」となる。そして、テストデータＴＴ３から算出されたモジュール３２０Ｂの再構成誤差「０．１」が算出部３４０へ入力された場合、適合度は、図２６に示すように、「１．００（＝０．１／０．１）」と算出される。
【０１４２】
このように、テストデータＴＴ３に対するモジュール３２０Ａの適合度が「０．３３」と算出される一方で、テストデータＴＴ３に対するモジュール３２０Ｂの適合度が「１．００」と算出される。これらの適合度が比較された結果、適合度の値が大きいモジュール３２０ＢのＤＬ３００Ｂの出力が認識結果として選択される。よって、テストデータＴＴ３のクラスを正しく分類できるモジュール３２０Ｂを選択できる。
【０１４３】
ここで、ＤＬ３００Ａの出力がデコーダへ入力されるＡＥ３２０ＡおよびＤＬ３００Ｂの出力がデコーダへ入力されるＡＥ３２０Ｂと、ＤＬ３００Ａの出力がデコーダへ入力されないＡＥ３２０Ａ´およびＤＬ３００Ｂの出力がデコーダへ入力されないＡＥ３２０Ｂ´との間で、算出部３４０により算出される適合度の差を対比する。
【０１４４】
図２７は、ＡＥの出力結果の一例を示す図である。図２７には、図２３に示す３つのテストデータＴＴ１〜ＴＴ３ごとにＡＥ３２０Ａ´の再構成誤差の算出結果およびＡＥ３２０Ｂ´の再構成誤差の算出結果が示されている。図２８は、モジュールの選択結果の一例を示す図である。図２８には、図２３に示す３つのテストデータＴＴ１〜ＴＴ３ごとに図２７に示すＡＥ３２０Ａ´の再構成誤差から算出された適合度のうち最大の適合度が算出されたモジュール３２０の選択結果が示されている。
【０１４５】
図２５及び図２７を対比すると、３つのテストデータＴＴ１〜ＴＴ３のうちテストデータＴＴ１及びテストデータＴＴ３が入力される場合、ＡＥ３２０Ａの再構成誤差およびＡＥ３２０Ｂの再構成誤差と、ＡＥ３２０Ａ´の再構成誤差およびＡＥ３２０Ｂ´の再構成誤差との間に差は生まれていないことがわかる。
【０１４６】
一方、テストデータＴＴ２が入力される場合、図２７に示すように、ＡＥ３２０Ａ´により算出される再構成誤差「０．１」がＡＥ３２０Ｂ´により算出される再構成誤差「０．２」よりも小さいことがわかる。この一因は、図１５〜図１７を用いて説明した通り、ＤＬ３００Ａの出力が復号化の手がかりとしてＡＥ３２０Ａ´のデコーダへ入力されない場合、ＤＬ３００Ａが出力するラベル「１」に対応する学習データに近付けて復元する再構成誤差へのペナルティが発生しないからである。この結果、ＡＥ３２０Ａ´のデコーダが出力する復号化データが可視化された映像は、図２７に示すように、テストＩＤ「ＴＴ２」の元の画像データ「Ｉ２‘」が有する文字「７」の特徴が保存された状態で復元されるので、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」が可視化された映像「７」と類似する。この結果、ＡＥ３２０Ａ´のデコーダから出力された復号化データと、テストＩＤ「ＴＴ２」の画像データ「Ｉ２‘」との誤差から、ＡＥ３２０Ａの再構成誤差「０．４」に比べて小さい値「０．１」がＡＥ３２０Ａ´の再構成誤差として算出されてしまう。このような場合、モジュール３２０Ａの適合度が「１（＝０．１／０．２）」と算出される一方で、モジュール３２０Ｂの適合度が「０．５（＝０．１／０．２）」と算出される。
【０１４７】
以上のように、ＤＬ３００Ａの出力がデコーダへ入力されないＡＥ３２０Ａ´およびＤＬ３００Ｂの出力がデコーダへ入力されないＡＥ３２０Ｂ´がモジュール３２０Ａおよびモジュール３２０Ｂに用いられる場合、図２８に示すように、テストデータＴＴ２において、正しいクラスに分類できるモジュール３２０Ｂではなく、誤ったクラスに分類するモジュール３２０Ａが選択されてしまうことがわかる。この結果から逆説的に、テストデータを正しく分類できる学習モデルの出力を選択する上で、ＤＬ３００の出力をＡＥ３２０のデコーダへ入力する構成の技術的意義が大きいことが明らかである。
【０１４８】
［処理の流れ］
図２９は、実施例３に係る識別処理の手順を示すフローチャートである。この処理は、一例として、テストデータ入力部３１０によりテストデータが取得された場合に開始される。
【０１４９】
図２９に示すように、テストデータが取得されると（ステップＳ３０１）、テストデータ入力部３１０は、テストデータを複数のモジュール３２０Ａ〜３２０Ｃへ入力する（ステップＳ３０２）。その後、算出部３４０は、各モジュール３２０Ａ〜３２０Ｃから出力される再構成誤差を取得する（ステップＳ３０３）。
【０１５０】
そして、算出部３４０は、ＤＬの出力の、テストデータに対する適合度をモジュール３２０Ａ〜３２０Ｃごとに算出する（ステップＳ３０４）。続いて、選択部３５０は、モジュール３２０Ａ〜３２０Ｃごとに出力されるＤＬの出力結果のうち、ステップＳ３０４で最大の適合度が算出されたモジュール３２０のＤＬの出力結果を選択する（ステップＳ３０５）。
【０１５１】
その後、出力部３６０は、モジュール３２０Ａ〜３２０Ｃごとに出力されるＤＬの出力結果のうち、ステップＳ３０５で選択されたモジュール３２０のＤＬの出力結果を認識結果として所定の出力先へ出力し（ステップＳ３０６）、処理を終了する。
【０１５２】
［効果の一側面］
上述してきたように、本実施例に係る識別装置３００は、複数の学習モデルの出力結果の中から、各学習モデルと同一の学習データにより学習をさせた自己符号化器それぞれが出力する再構成誤差ごとに算出された適合度に基づいて認識結果として出力する学習モデルの出力結果を選択する。したがって、本実施例に係る識別装置３００によれば、誤った学習モデルの出力が選択されるのを抑制するので、認識に失敗する可能性を低減できる結果、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習を実現できる。これによって、個々の学習モデルが個別に用いられる場合よりも豊富な認識機能を提供できる。
【０１５３】
なお、上記の実施例３では、最大の適合度が算出されたモジュール３２０の出力を無条件に選択することとしたが、いずれのモジュール３２０の出力も選択しないこともできる。例えば、選択部３５０は、最大の適合度が所定の閾値以上であるか否かを判定する。そして、選択部３５０は、最大の適合度が閾値以上である場合に絞って最大の適合度が算出されたモジュール３２０の出力を選択することができる。これによって、いずれのモジュール３２０にも適合しないテストデータの認識結果が出力されるのを抑制できる。なお、ここでは、モジュール３２０の選択を禁止する例を説明したが、モジュール３２０のＤＬの出力が認識結果として出力されるのを禁止することとしてもかまわない。
【０１５４】
また、上記の実施例３では、最大の適合度が算出されたモジュール３２０の出力を選択することとしたが、必ずしも最大の適合度が算出されたモジュール３２０だけを選択せずともかまわない。例えば、選択部３５０は、モジュール３２０のＤＬの出力のうち、適合度が閾値以上であるモジュール３２０のＤＬの出力、あるいは適合度が大きいものから順に所定数のモジュール３２０のＤＬの出力を選択することができる。このように複数のモジュール３２０のＤＬの出力が選択される場合、出力部３６０は、複数のモジュール３２０のＤＬの出力が集約された集約値を出力することができる。例えば、集約値がクラス分類等の離散的なラベルである場合、各モジュール３２０の間でラベルの多数決を取り、最多のラベルを出力することができる。また、集約値が回帰等の連続的なラベルである場合、統計値、例えば平均値や中央値、最頻値などを出力することができる。
【０１５５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５６】
（付記１）学習モデルの出力結果の適合度算出方法であって、
コンピュータが、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する、
処理を実行する適合度算出方法。
【０１５７】
（付記２）付記１に記載の適合度算出方法であって、前記コンピュータが、
前記学習データに付与された正解のラベルを前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記正解のラベルに基づいて復号化することにより、前記自己符号化器を学習する処理を実行する適合度算出方法。
【０１５８】
（付記３）付記１に記載の適合度算出方法であって、前記コンピュータが、
前記学習データが入力された学習モデルが出力する、ラベル、または、ラベル別の確信度を、前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記ラベルまたは前記ラベル別の確信度に基づいて復号化することにより、前記自己符号化器を学習する処理を実行する適合度算出方法。
【０１５９】
（付記４）それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置に用いる識別方法であって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出し、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する、
処理を実行する識別方法。
【０１６０】
（付記５）付記４に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち最大の適合度を出力する学習モジュールの出力結果を選択する処理を実行する識別方法。
【０１６１】
（付記６）付記４に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち最大の適合度が所定の閾値よりも小さい場合、前記学習モジュールの出力結果の選択、もしくは前記選択された学習モジュールの出力結果の出力のいずれかを禁止する処理を実行する識別方法。
【０１６２】
（付記７）付記４に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち適合度が所定の閾値以上である学習モジュールの出力結果が集約された集約値を出力する処理を実行する識別方法。
【０１６３】
（付記８）学習モデルの出力結果の適合度算出プログラムであって、
コンピュータに、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する、
処理を実行させる適合度算出プログラム。
【０１６４】
（付記９）付記８に記載の適合度算出プログラムであって、前記コンピュータに、
前記学習データに付与された正解のラベルを前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記正解のラベルに基づいて復号化することにより、前記自己符号化器を学習する処理を実行させる適合度算出プログラム。
【０１６５】
（付記１０）付記８に記載の適合度算出プログラムであって、前記コンピュータに、
前記学習データが入力された学習モデルが出力する、ラベル、または、ラベル別の確信度を、前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記ラベルまたは前記ラベル別の確信度に基づいて復号化することにより、前記自己符号化器を学習する処理を実行させる適合度算出プログラム。
【０１６６】
（付記１１）それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置に実行させる識別プログラムであって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出し、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する、
処理を実行させる識別プログラム。
【０１６７】
（付記１２）付記１１に記載の識別プログラムであって、前記コンピュータに、
前記複数の適合度のうち最大の適合度を出力する学習モジュールの出力結果を選択する処理を実行させる識別プログラム。
【０１６８】
（付記１３）付記１１に記載の識別プログラムであって、前記コンピュータに、
前記複数の適合度のうち最大の適合度が所定の閾値よりも小さい場合、前記学習モジュールの出力結果の選択、もしくは前記選択された学習モジュールの出力結果の出力のいずれかを禁止する処理を実行させる識別プログラム。
【０１６９】
（付記１４）付記１１に記載の識別プログラムであって、前記コンピュータに、
前記複数の適合度のうち適合度が所定の閾値以上である学習モジュールの出力結果が集約された集約値を出力する処理を実行させる識別プログラム。
【０１７０】
（付記１５）学習モデルの出力結果の適合度算出装置であって、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力する第１入力部と、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力する第２入力部と、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する算出部と、
を有する適合度算出装置。
【０１７１】
（付記１６）付記１５に記載の適合度算出装置であって、
前記学習データに付与された正解のラベルを前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記正解のラベルに基づいて復号化することにより、前記自己符号化器を学習する学習部をさらに有する適合度算出装置。
【０１７２】
（付記１７）付記１５に記載の適合度算出装置であって、
前記学習データが入力された学習モデルが出力する、ラベル、または、ラベル別の確信度を、前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記ラベルまたは前記ラベル別の確信度に基づいて復号化することにより、前記自己符号化器を学習する学習部をさらに有する適合度算出装置。
【０１７３】
（付記１８）それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置であって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力する第１入力部と、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力する第２入力部と、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する算出部と、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する出力部と、
を有する識別装置。
【０１７４】
（付記１９）付記１８に記載の識別装置であって、
前記複数の適合度のうち最大の適合度を出力する学習モジュールの出力結果を選択する選択部を有する識別装置。
【０１７５】
（付記２０）付記１８に記載の識別装置であって、
前記複数の適合度のうち最大の適合度が所定の閾値よりも小さい場合、前記学習モジュールの出力結果の選択、もしくは前記選択された学習モジュールの出力結果の出力のいずれかを禁止する禁止部を有する識別装置。
【０１７６】
（付記２１）付記１８に記載の識別装置であって、
前記複数の適合度のうち適合度が所定の閾値以上である学習モジュールの出力結果が集約された集約値を出力する出力部を有する識別装置。
【符号の説明】
【０１７７】
１    識別装置
１０    モジュール
１１    選択部
１２    出力部
１００    ＤＬ
１１０    ＡＥ
１１１    エンコーダ
１１２    デコーダ
１１３    誤差算出部
２    適合度算出システム
２０    学習装置
２１    学習データ入力部
２２    ＤＬ学習部
２２Ａ  ＤＬ記憶部
２３    ＡＥ学習部
２３Ａ  ＡＥ記憶部
２００    適合度算出装置
２１０    テストデータ入力部
２２０    認識部
２３０    符号化部
２４０    算出部
２５０    出力部
３００    識別装置
３１０    テストデータ入力部
３２０    モジュール
３４０    算出部
３５０    選択部
３６０    出力部
【図１】
2019175176.tif 000003
【図２】
2019175176.tif 000004
【図３】
2019175176.tif 000005
【図４】
2019175176.tif 000006
【図５】
2019175176.tif 000007
【図６】
2019175176.tif 000008
【図７】
2019175176.tif 000009
【図８】
2019175176.tif 000010
【図９】
2019175176.tif 000011
【図１０】
2019175176.tif 000012
【図１１】
2019175176.tif 000013
【図１２】
2019175176.tif 000014
【図１３】
2019175176.tif 000015
【図１４】
2019175176.tif 000016
【図１５】
2019175176.tif 000017
【図１６】
2019175176.tif 000018
【図１７】
2019175176.tif 000019
【図１８】
2019175176.tif 000020
【図１９】
2019175176.tif 000021
【図２０】
2019175176.tif 000022
【図２１】
2019175176.tif 000023
【図２２】
2019175176.tif 000024
【図２３】
2019175176.tif 000025
【図２４】
2019175176.tif 000026
【図２５】
2019175176.tif 000027
【図２６】
2019175176.tif 000028
【図２７】
2019175176.tif 000029
【図２８】
2019175176.tif 000030
【図２９】
2019175176.tif 000031