以下に添付図面を参照して本願に係る適合度算出プログラム、適合度算出方法、適合度算出装置、識別プログラム、識別方法及び識別装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[逐次学習]
まず、実施例1に係る識別装置について説明するのに先立ち、逐次学習の重要性について説明する。上記の背景技術の欄でも述べた通り、異なるデータセットの学習データから生成された複数の学習モデルを活用する側面から、複数の学習モデルを組み合わせてテストデータのクラス分類を行うことで、広範囲のテストデータのクラス分類を実現する逐次学習の重要性が高まっている。
逐次学習の重要性が高まる一因として、機械学習ビジネスの発展が挙げられる。例えば、機械学習ビジネスでは、顧客から機械学習ビジネスのサービス提供者へ学習データが提供される。この学習データを用いてクラス分類を行うモデルを学習することで、画像認識や音声認識などといった各種の認識を実現する学習モデルが生成される。このように生成された学習モデルそのもの、あるいは顧客から入力されるテストデータに対する学習モデルの出力結果がサービスとして顧客へ提供される。
このように学習データを所有する顧客と機械学習ビジネスのサービス提供者とが異なる場合、著作権等の法的要請や機密保持等のコンプライアンスの一面から、学習モデルの生成後に学習データが顧客に返却されることがある。その一方で、学習データから生成された学習モデルは、機械学習ビジネスのサービス提供者の資産であるので、再利用が可能な一面がある。
[課題の一側面]
このような背景から、学習モデルの生成後に学習モデルが返却される環境下で、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習の重要性が高まる一方で、逐次学習の実現には困難性がある。
例えば、逐次学習の実現には、DLが持つ性質がハードルとなる場合がある。すなわち、DLには、新しい学習データに対して学習を行うと、その学習データに過剰に適合する側面がある。このように最後に学習が行われた学習データに過剰に適合することにより、それよりも前に学習が行われた学習データが忘却される。例えば、学習データAにより学習をさせた学習モデルに学習データBの学習が行われる場合、学習後の学習モデルは、学習データBに適合する一方で学習データAが忘却される。それ故、学習データAおよび学習データBの両方に適合する学習モデルを生成するのが困難である。
このDLの性質に対処する一案として、複数のデータセットの学習データを保持しておき、全ての学習データを繰り返して学習させることにより、学習モデルを生成する対応が考えられる。上記の例で言えば、学習データAおよび学習データBの両方を保持しておき、学習データAおよび学習データBの学習回数が所定のエポック数に達するまで、学習データAおよび学習データBを交互に繰り返して学習させる。これによって、学習データAおよび学習データBの両方に学習モデルを適合させる。
ところが、上記の対処を実行するには、全ての学習データが揃うことが条件となる。このため、学習モデルの生成後に学習モデルが返却される状況下では、返却後の学習データを揃えることができず、全ての学習データを揃えることが困難である。さらに、たとえ全ての学習データが揃ったとしても、著作権等の法的要請や機密保持等のコンプライアンスの側面から、逐次学習を目的とする学習データの使用は自粛されるのが好ましい。
そうであるかと言って、上記の背景技術の欄で挙げた従来技術を用いたとしても、次に挙げる2つの理由が一因となって上記の逐次学習を実現するのは困難である。
すなわち、上記の従来技術のように、複数のNNから確信度が最大であるNNの出力を選択するのでは、(1)未学習のカテゴリのテストデータに対してNNの出力が不定であること、あるいは(2)テストデータとカテゴリが一致しても正しい認識を行うことができるNNが不明であることが一因となって誤ったNNが選択される結果、認識が失敗する可能性がある。
図1は、NNに対する入力および出力の一例を示す図である。図1には、上記の従来技術により生成された複数のNNの例として、学習データAにより学習をさせたA用NNと、学習データBにより学習をさせたB用NNとが示されている。このうち、A用NNの学習時には、クラスPまたはクラスQのラベルが付与された学習データAが入力層のニューロンへ入力されることによりシナプスの重みが学習される。一方、B用NNの学習時には、クラスQまたはクラスRのラベルが付与された学習データBが入力層のニューロンへ入力されることによりシナプスの重みが学習される。
このような学習が行われたA用NNおよびB用NNに対し、クラスPに属するテストデータが入力された場合、A用NNおよびB用NNは、図1に示すように、ラベル別に確信度を出力する。ここで、図示のテストデータは、A用NNの学習に用いられた学習データAのデータセットの中にクラスが一致する学習サンプルが存在するデータである。このため、A用NNのモデル学習時には、クラスQの確信度に比べて高い確信度がクラスPの確信度として出力される学習が行われている。これが一因となって、A用NNの出力層のニューロンからラベルQの確信度「0.2」と共にそれよりも値が大きい確信度「0.8」がラベルPの確信度として出力される。一方、学習データBのデータセットの中には、クラスPのラベルが付与された学習サンプルが含まれない状態で、B用NNのモデルが学習される。このようにB用NNにとって未学習のカテゴリのテストデータが入力される場合、B用NNが出力するラベルの確信度は不定である。このため、図1に示すように、B用NNの出力層のニューロンからラベルQの確信度として「0.1」が出力される一方で、ラベルRの確信度として「0.9」という大きな値が偶然に出力される事態も起こり得る。このような状況では、ラベルRの確信度「0.9」が最大となるので、B用NNの出力が認識に用いられる結果、クラスPに属するテストデータがクラスRと誤認識される。
図2は、NNに対する入力および出力の一例を示す図である。図2にも、図1と同様、上記の従来技術により生成された複数のNNの例として、学習データAにより学習をさせたA用NNと、学習データBにより学習をさせたB用NNとが示される一方で、図1と異なるクラスQに属するテストデータが入力される例が示されている。
クラスQに属するテストデータがA用NNおよびB用NNに入力される場合、A用NNおよびB用NNは、図2に示すように、ラベル別に確信度を出力する。すなわち、A用NNの出力層のニューロンからラベルPの確信度「0.4」およびラベルQの確信度「0.6」が出力されると共に、B用NNの出力層のニューロンからラベルQの確信度「0.3」およびラベルRの確信度「0.7」が出力される。
ここで、学習データAのデータセットおよび学習データBのデータセットのいずれにも、クラスQのラベルが付与された学習サンプルが含まれる。このようにテストデータのカテゴリと一致するNNが複数存在する場合、A用NNおよびB用NNのうちいずれのNNがテストデータのクラスを正しく分類できるのは不明である。結果から見れば、テストデータのクラスは「Q」に属するという事実から、認識に成功するのはA用NNであることが事後に分析できるが、これはあくまで結果論である。それ故、上記の従来技術では、B用NNが出力するクラスRの確信度「0.7」が最大であるので、B用NNの出力が認識に用いられる結果、クラスQに属するテストデータがクラスRと誤認識される。
このように、上記の従来技術では、図1を用いて説明した通り、未学習のカテゴリのテストデータに対してNNの出力が不定であることが原因となって誤ったNNの出力が選択されたり、図2を用いて説明した通り、テストデータとカテゴリが一致しても正しい認識を行うことができるNNが不明であることが原因となって誤ったNNの出力が選択されたりするので、テストデータのクラス分類に失敗する可能性がある。
[課題解決アプローチの一側面]
そこで、本実施例では、逐次学習に自己符号化器、いわゆるオートエンコーダを用いる。すなわち、本実施例では、学習データにより学習をさせた自己符号化器にテストデータを入力し、自己符号化器のデコーダが出力する復号化データとテストデータの再構成誤差に基づいてテストデータに対する学習モデルの適合度を算出し、当該適合度に基づいて学習モデルの出力結果を選択して出力する。
図3及び図4は、自己符号化器の一例を示す図である。図3には、学習時における自己符号化器の動作が示されている一方で、図4には、認識時における自己符号化器の動作が示されている。図3及び図4に示す自己符号化器は、入力された学習データがエンコーダにより次元が圧縮された後にその符号化データがデコーダにより元の次元に復元された復号化データを出力する。図3に示すように、学習時には、自己符号化器のデコーダの出力が自己符号化器のエンコーダへの入力と一致するようにNNの重みが学習される。一方、図4に示すように、認識時には、自己符号化器のエンコーダへの入力と、自己符号化器のデコーダの出力とのずれを再構成誤差として出力する。このような学習が行われた自己符号化器では、自己符号化器へ入力されるデータが学習データに類似するほど、自己符号化器から出力される再構成誤差が小さくなる。
この自己符号化器の特性を利用して、本実施例では、学習データそのものを保持する代わりに、学習データを良好に圧縮復元できる自己符号化方法を学習する。さらに、本実施例では、学習モデルの出力結果を復号化の手がかりとして自己符号化器のデコーダへ入力する。これによって、学習モデルがクラス分類を失敗する誤認識時にテストデータが復元されづらい自己符号化器の学習を実現する。
このような自己符号化器が学習された後、本実施例では、学習データにより学習をさせた学習モデルおよび自己符号化器のエンコーダにテストデータを入力し、自己符号化器のエンコーダの出力及び学習モデルの出力が入力された自己符号化器のデコーダの出力とテストデータとに基づき、学習モデルの出力の、テストデータに対する適合度を算出する。
このように算出された適合度は、あくまで1つの側面として、複数の学習モデルの出力結果のうちいずれの学習モデルの出力結果を出力するのかを選択するために用いることができる。
図5は、学習データ及びテストデータの関係性の一例を示す図である。図5には、学習データA〜Cの3つの学習データのカテゴリの集合が示されている。図5に示すように、学習データAのカテゴリは、学習データBのカテゴリ及び学習データCのカテゴリのいずれとも重複しないので、学習データBのカテゴリ及び学習データCのカテゴリと関連がないことがわかる。一方、学習データBのカテゴリ及び学習データCのカテゴリは、互いの一部が重複するので、学習データBおよび学習データCに関連があることがわかる。
このような関係性を有する学習データA〜学習データCの場合、本実施例では、テストデータと無関係な学習データAを用いて学習されたA用NNの出力結果を除外する選択を実現できる。なぜなら、画像などの多次元データの場合、テストデータとは無関係である学習データAから生成された自己符号化器がテストデータを入力としてテストデータそのものを偶然復元して出力する可能性は無視できる程度に低いので、学習データAから生成された自己符号化器が出力する再構成誤差が大きくなるからである。
さらに、本実施例では、学習データBから生成されたB用NNにテストデータが入力される場合のB用NNの出力結果および学習データCから生成されたC用NNにテストデータが入力される場合のC用NNの出力結果の中から、テストデータのクラスを正しく分類できるNNの出力結果の選択を実現できる。すなわち、テストデータは、学習データBおよび学習データCのいずれともカテゴリが一致する。このため、本実施例のように、学習モデルの出力結果が復号化の手がかりとして自己符号化器のデコーダへ入力されていなければ、学習データBにより学習が行われた自己符号化器および学習データCにより学習が行われた自己符号化器が出力する再構成誤差はいずれも小さくなる。それ故、B用NNの出力結果およびC用NNの出力結果の中からテストデータのクラスを正しく分類できるNNの出力結果を選択するのは困難である。一方、本実施例では、学習モデルの出力結果が復号化の手がかりとして自己符号化器のデコーダへ入力される。これによって、B用NNまたはC用NNがクラス分類を失敗する誤認識時に、自己符号化器のデコーダでは、B用NNまたはC用NNから入力される誤ったラベルに対応する学習データBまたは学習データCに類似するデータを復号化する復元が実行されるので、テストデータが復元されづらくなる。このような誤認識時に比べて、認識成功時には、自己符号化器のデコーダでは、正しいラベルに対応する学習データBまたは学習データCに類似するデータを復号化する復元が実行されるので、テストデータが復元されやすくなる。このように、テストデータのクラスを正しく分類できるNNの学習に用いられた学習データBまたは学習データCから生成された自己符号化器が出力する再構成誤差を相対的に小さくできる。
これらのことから、本実施例では、誤った学習モデルの出力が選択されるのを抑制するので、認識に失敗する可能性を低減できる。したがって、本実施例によれば、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習を実現できる。
[識別装置の構成]
図6は、実施例1に係る識別装置の機能的構成の一例を示すブロック図である。図6に示すように、識別装置1は、モジュール10A〜10Cと、選択部11と、出力部12とを有する。以下では、モジュール10A〜10Cのことを「モジュール10」と記載する場合がある。
図6に示すモジュール10、選択部12および出力部13などの機能部は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより仮想的に実現される。すなわち、プロセッサは、図示しない記憶装置、例えばHDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などの記憶装置からOS(Operating System)の他、識別プログラムまたはそのモジュールである適合度算出プログラムなどのプログラムを読み出す。その上で、プロセッサは、識別プログラムや適合度算出プログラムを実行することにより、RAM(Random Access Memory)等のメモリ上に上記の機能部に対応するプロセスを展開する。この結果、上記の機能部がプロセスとして仮想的に実現される。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
モジュール10A〜10Cは、DLの学習モデルおよび自己符号化器を有する。一側面として、学習時には、モジュール10A〜10Cの間で異なるデータセットの学習データがモジュール10A〜10CのDLの学習モデルおよび自己符号化器に割り当てられた上で個別に学習される。他の側面として、認識時には、テストデータが入力データとしてモジュール10A〜10Cへ入力される。この結果、モジュール10A〜10Cごとに自己符号化器が出力する再構成誤差が選択部11へ出力されると共に、モジュール10A〜10CごとにDLの学習モデルの出力結果が出力部12へ出力される。なお、図6には、識別装置1が3つのモジュール10A〜10Cを有する例を示したが、これはあくまで一例であり、2つまたは4つ以上のモジュール10が識別装置1に備わることとしてもかまわない。
選択部11は、出力部12に認識結果として出力させるモジュール10の出力結果を選択する。あくまで一例として、選択部11は、モジュール10A〜10Cごとに出力されるDLの出力結果のうち、モジュール10A〜10Cごとに出力される自己符号化器の再構成誤差が最小であるモジュール10のDLの出力結果を選択する。
出力部12は、認識結果を出力する。一側面として、出力部12は、モジュール10A〜10Cごとに出力されるDLの出力結果のうち、選択部11により選択されたモジュール10のDLにより出力される出力結果を認識結果として所定の出力先へ出力する。例えば、外部のクライアント端末から認証のリクエストとしてテストデータが入力された場合、当該クライアント端末を出力先とすることができる。この他、バックエンドで実行するサービスやアプリケーション、AI(Artificial Intelligence)、識別装置1の外部装置などを出力先とすることもできる。
なお、図6には、3つのモジュール10A〜10Cを例に挙げたが、モジュールの数は任意の数、例えばモジュールに割り当てられる学習データの数であってかまわない。また、識別装置1は、図6に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば他の装置との間で通信制御を行う通信インタフェースなどを有することとしてもかまわない。
図7は、実施例1に係るモジュールの機能的構成を示すブロック図である。図7に示すように、モジュール10は、DL100と、自己符号化器110とを有する。
DL100は、学習データによりモデルが学習された学習モデルの一例に対応する。一側面として、学習時には、モジュール10に割り当てられた学習データを入力層のニューロンへ入力し、出力層の出力と、学習データの正解のラベルとの誤差に基づいてシナプスの重みを学習することにより、DL100が生成される。他の側面として、認識時には、DL100は、テストデータを入力データとして入力層のニューロンへ入力することにより、出力層のニューロンからラベル別の確信度を出力する。
自己符号化器110は、エンコーダ111と、デコーダ112と、誤差算出部113とを有する。一側面として、学習時には、自己符号化器110のデコーダ112の出力と、モジュール10に割り当てられた学習データとが一致するように自己符号化器110のNNの重みが学習される。このとき、デコーダ112には、エンコーダ111の出力に加えて、DL100の出力結果が復号化の手がかりとして入力される。例えば、DL100がラベルごとに出力する確信度のうち最大の確信度のラベルに対応する学習データとの距離が近づくように、エンコーダ111により符号化された符号化データを復号化する動作をデコーダ112に実行させる。これによって、DL100がクラス分類に失敗して誤認識が発生する時に学習データが復元されづらい自己符号化器110の学習を実現できる。他の側面として、認識時には、誤差算出部113は、自己符号化器110への入力、すなわちテストデータと、デコーダ112の出力とのずれを再構成誤差として算出する。この認識時においても、デコーダ112には、エンコーダ111の出力に加えて、DL100の出力結果が復号化の手がかりとして入力される。これによって、DL100がクラス分類に失敗して誤認識が発生する時にテストデータが復元されづらくすることができる。
[具体例1]
図8〜図10を用いて、逐次学習の具体例について説明する。図8は、データセットの一例を示す図である。図8には、学習データの一例として、文字画像のデータセットDT1およびDT2が示されている。図8に示すように、データセットDT1の学習データには、「1」または「7」のいずれかのラベルが学習サンプルに付与される一方で、データセットDT2の学習データには、「7」または「I」のいずれかのラベルが学習サンプルに付与される。これらのうち、データセットDT1の学習データを用いてDL100−1および自己符号化器110−1が学習されると共に、データセットDT2の学習データを用いてDL100−2および自己符号化器110−2が学習される。
このような学習が行われた後、文字画像「1」および文字画像「I」のテストデータが自己符号化器110−1および自己符号化器110−2へ入力される場合、自己符号化器110−1および自己符号化器110−2の出力は図9に示す通りとなる。
図9は、自己符号化器の出力例を示す図である。図9の上段には、文字画像「1」のテストデータが入力された場合の出力が自己符号化器110−1のデコーダ、自己符号化器110−1の再構成誤差、自己符号化器110−2のデコーダ、自己符号化器110−2の再構成誤差ごとに示されている。さらに、図9の下段には、文字画像「I」のテストデータが入力された場合の出力が自己符号化器110−1のデコーダ、自己符号化器110−1の再構成誤差、自己符号化器110−2のデコーダ、自己符号化器110−2の再構成誤差ごとに示されている。
図9の上段に示すように、文字画像「1」のテストデータが入力された場合、データセットDT1で学習が行われたDL100−1では、学習時にラベル「1」が付与された学習サンプルからモデルが生成されるので、認識結果として文字画像「1」に対応する正解のラベルを出力できる。これに連動して、自己符号化器110−1のデコーダでは、DL100−1が出力するラベル「1」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このため、自己符号化器110−1から出力される再構成誤差は小さくなる。
一方、データセットDT2で学習が行われたDL100−2では、そもそもラベル「1」が付与された学習サンプルがデータセットDT2に存在しないので、文字画像「1」に対応するラベルを正しく出力することができない。すなわち、DL100−2からは、データセットDT2に含まれるラベル「7」及びラベル「I」のうち文字画像「1」のテストデータと類似する方のラベル「I」が出力される。これに連動して、自己符号化器110−2のデコーダでは、DL100−2が出力するラベル「I」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化されるので、正解のラベル「1」からは遠ざかる復元が行われることになる。このため、自己符号化器110−2から出力される再構成誤差は大きくなる。
したがって、文字画像「1」のテストデータが入力された場合、DL100−1及びDL−102のうち再構成誤差が相対的に小さいDL100−1の出力を選択することで、文字画像「1」に対応するラベルを正しく分類するDL100−1の出力結果の選択を実現できる。
図9の下段に示すように、文字画像「I」のテストデータが入力された場合、データセットDT1で学習が行われたDL100−1では、そもそもラベル「I」が付与された学習サンプルがデータセットDT1に存在しないので、文字画像「I」に対応する正解のラベルを出力することができない。すなわち、DL100−1からは、データセットDT1に含まれるラベル「1」及びラベル「7」のうち文字画像「I」のテストデータと類似する方のラベル「1」が出力される。これに連動して、自己符号化器110−1のデコーダでは、DL100−1が出力するラベル「1」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化されるので、正解のラベル「I」からは遠ざかる復元が行われることになる。このため、自己符号化器110−1から出力される再構成誤差は大きくなる。
一方、文字画像「I」のテストデータが入力された場合、データセットDT2で学習が行われたDL100−2では、学習時にラベル「I」が付与された学習サンプルからDL100−2のモデルが生成されるので、認識結果として文字画像「I」に対応する正解のラベルを出力できる。これに連動して、自己符号化器110−2のデコーダでは、DL100−2が出力するラベル「I」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このため、自己符号化器110−2から出力される再構成誤差は小さくなる。
したがって、文字画像「I」のテストデータが入力された場合、DL100−1及びDL−102のうち再構成誤差が相対的に小さいDL100−2の出力を選択することで、文字画像「I」に対応する正解のラベルを分類するDL100−2の出力結果の選択を実現できる。
また、文字画像「7」のテストデータが入力される場合、DL100−1、自己符号化器110−1のデコーダ、自己符号化器110−1の再構成誤差、DL100−2、自己符号化器110−2のデコーダ、自己符号化器110−2の再構成誤差ごとに図10に示す出力が得られる。
図10は、DLおよび自己符号化器の出力例を示す図である。図10に示すように、文字画像「7」のテストデータが入力される場合、データセットDT1で学習が行われたDL100−1では、認識結果として文字画像「7」に対応する正解のラベルが出力されず、誤ったラベル「1」が出力される。これに連動して、自己符号化器110−1のデコーダでは、DL100−1が出力する誤認識のラベル「1」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このような符号化が実行されることにより、DL100−1の誤認識に自己符号化器110−1のデコーダが出力する復号化データが正解のラベル「7」に対応する復号化データに復元されるのを抑制できる。このため、テストデータと復号化データの差が大きくなる結果、自己符号化器110−1から出力される再構成誤差も大きくなる。
一方、データセットDT2で学習が行われたDL100−2では、認識結果として文字画像「7」に対応する正解のラベルを出力することができる。これに連動して、自己符号化器110−2のデコーダでは、DL100−2が出力するラベル「7」に対応する学習データとの距離が近づくように、エンコーダにより符号化された符号化データから復号化データが復号化される。このため、テストデータと復号化データの差が小さくなる結果、自己符号化器110−2から出力される再構成誤差も小さくなる。
このように正解のラベル「7」を出力しうるDL100が複数存在する場合でも、DL100の出力結果を復号化の手がかりとして自己符号化器110のデコーダへ入力することで、ラベルが誤認識されたDL100−1の出力がデコーダへ入力された自己符号化器110−1により出力される再構成誤差を相対的に大きくできる一方で、正解のラベルが認識されたDL100−2の出力がデコーダへ入力された自己符号化器110−2により出力される再構成誤差を相対的に小さくできる。したがって、文字画像「7」のテストデータが入力された場合、DL100−1及びDL−100−2のうち再構成誤差が相対的に小さいDL100−2を選択することで、文字画像「7」に対応するラベルを正しく分類できるDL100−2の出力結果の選択を実現できる。
[効果の一側面]
上述してきたように、本実施例に係る識別装置1によれば、誤った学習モデルの出力が選択されるのを抑制するので、認識に失敗する可能性を低減できる結果、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習を実現できる。これによって、個々の学習モデルが個別に用いられる場合よりも豊富な認識機能を提供できる。例えば、A社の製品データとB社の製品データの認識結果を組み合わせて、与えられたテストデータの画像がA社の製品かB社の製品かを判定し、かつその製品名も認識することができる。この結果、顧客が提供する学習データで実現できる認識結果よりも広範囲な認識結果を顧客に提供できる。
さて、上記の実施例1では、複数の学習モデルの出力結果の中から自己符号化器それぞれの再構成誤差に基づいて認識結果として出力する学習モデルの出力結果を選択する例を説明したが、必ずしも選択後の学習モデルの出力結果を最終的な出力とせずともかまわない。そこで、本実施例では、自己符号化器が出力する再構成誤差に基づいてテストデータに対する学習モデルの出力の適合度を算出して出力する例を説明する。
図11は、実施例2に係る適合度算出システムに含まれる各装置の機能的構成の一例を示す図である。図11に示す適合度算出システム2には、学習装置20と、適合度算出装置200とが含まれる。
[学習装置20の構成]
図11に示すように、学習装置20は、学習データ入力部21と、DL学習部22と、DL記憶部22Aと、自己符号化器(以下、「AE(AutoEncoder)」と記載する場合がある)学習部23と、AE記憶部23Aとを有する。
学習データ入力部21は、学習データを後段の機能部へ入力する。この学習データを提供するソースの一例として、機械学習ビジネスのサービスの提供を受ける顧客等が挙げられる。一側面として、学習データ入力部21は、学習装置20と接続される外部装置、例えば顧客側のコンピュータから学習データをネットワーク経由で取得することができる。他の側面として、学習データ入力部21は、USB(Universal Serial Bus)メモリや外付けのHDD、メモリカードなどのリムーバブルメディアからインタフェースを介して、学習データを取得することもできる。その上で、学習データ入力部21は、学習データのデータセットに含まれる学習サンプルごとに当該学習サンプルをDL学習部22へ入力すると共にAE学習部23へ入力する。
DL学習部22は、DLのモデル学習を実行する。このDLは、あくまでモデルの一例であり、モデルは必ずしもDLでなくともよく、NNであってもかまわない。一実施形態として、DL学習部22は、学習データ入力部21から学習サンプルが入力される度に、当該学習サンプルをDLの入力層のニューロンへ入力する。そして、DL学習部22は、DLの出力層のニューロンの出力と、学習サンプルの正解のラベルとの誤差から、DLのシナプスの重みやバイアスなどのパラメータをバックプロパケーション等のアルゴリズムにしたがって学習する。このように、DL学習部22は、学習データ入力部21からの学習サンプルの入力が終了するまでパラメータの学習を繰り返し、さらに、データセットの学習回数が所定のエポック数に達するまでパラメータの学習を繰り返す。その後、DL学習部22は、DLのモデル学習の結果として得られたシナプスの重みやバイアスなどのパラメータを含むモデル情報をDL記憶部22Aに保存する。
DL記憶部22Aは、DLのモデル情報を記憶する。例えば、DLのモデル情報には、DLを形成する入力層、中間層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、DL学習部22により学習されたDLの各層の重みやバイアスなどのモデルのパラメータなどが含まれる。
AE学習部23は、AE、すなわち自己符号化器のモデル学習を実行する。このAEには、一例として、学習データを学習データの次元よりも次元が削減された特徴表現へ圧縮するNNに対応するエンコーダと、エンコーダの出力を入力として特徴表現から元の学習データを復元するNNに対応するデコーダとを含むモデルの層構造が設定される。
一実施形態として、AE学習部23は、学習データ入力部21から学習サンプルが入力される度に、当該学習サンプルをAEのエンコーダへ入力する。その後、AE学習部23は、AEのエンコーダの出力をAEのデコーダへ入力すると共に、同一の学習サンプルが入力されたDLの出力をAEのデコーダへ入力する。このように、AEのデコーダには、AEのエンコーダの出力だけでなく、DLの出力が復号化の手がかりとして入力される。例えば、AE学習部23は、DLがラベルごとに出力する確信度のうち最大の確信度のラベルに対応する学習データとの距離が近づくように、エンコーダにより次元数が圧縮された特徴表現から元の次元数に対応するデータを復元する動作をデコーダに実行させる。これによって、DLがクラス分類に失敗して誤認識が発生する時に元の学習データが復元されづらいAEの学習を実現できる。その後、AE学習部23は、AEのデコーダの出力と、学習サンプルとの再構成誤差から、AEのシナプスの重みやバイアスなどのパラメータをバックプロパケーション等のアルゴリズムにしたがって学習する。このように、AE学習部23は、学習データ入力部21からの学習サンプルの入力が終了するまでパラメータの学習を繰り返し、さらに、データセットの学習回数が所定のエポック数に達するまでパラメータの学習を繰り返す。その後、AE学習部23は、AEのモデル学習の結果として得られたシナプスの重みやバイアスなどのパラメータを含むモデル情報をAE記憶部23Aに保存する。
AE記憶部23Aは、AEのモデル情報を記憶する。例えば、AEのモデル情報には、AEを形成する入力層、中間層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、AE学習部23により学習されたAEの各層の重みやバイアスなどのモデルのパラメータなどが含まれる。
[適合度算出装置200の構成]
図11に示すように、適合度算出装置200は、テストデータ入力部210と、認識部220と、符号化部230と、算出部240と、出力部250とを有する。
テストデータ入力部210は、テストデータを後段の機能部へ入力する。このテストデータを提供するソースの一例として、機械学習ビジネスのサービスの提供を受ける顧客等が挙げられるが、これに限定されない。例えば、機械学習ビジネスのサービス提供者が画像や音声などのデータをリクエストとして受け付け、画像認識や音声認識の結果を出力するクラウドサービスを別サービスとして提供する場合、別サービスの顧客をテストデータのソースとすることもできる。一側面として、テストデータ入力部210は、適合度算出装置200と接続される外部装置、例えば任意のコンピュータからテストデータをネットワーク経由で取得することができる。その上で、テストデータ入力部210は、テストデータを認識部220へ入力すると共に符号化部230へ入力する。
認識部220は、DLの出力に基づいて各種の認識を行う。一実施形態として、認識部220は、DL記憶部22Aに記憶されたDLのモデル情報にしたがってDLのモデルを図示しないメモリ上のワークエリアに展開する。その後、認識部220は、テストデータ入力部210からテストデータが入力された場合、当該テストデータをDLの入力層のニューロンへ入力する。そして、認識部220は、DLの出力層のニューロンの出力、例えばラベル別の確信度に基づいてテストデータのラベルを認識する。
符号化部230は、AEを用いてテストデータの符号化および復号化を実行する。一実施形態として、符号化部230は、AE記憶部23Aに記憶されたAEのモデル情報にしたがってAEのモデルを図示しないメモリ上のワークエリアに展開する。その後、符号化部230は、テストデータ入力部210からテストデータが入力された場合、当該テストデータをAEのエンコーダへ入力する。その後、符号化部230は、AEのエンコーダの出力をAEのデコーダへ入力すると共に、同一の学習サンプルが入力されたDLの出力をAEのデコーダへ入力する。このように認識の局面においても、AEのデコーダには、AEのエンコーダの出力だけでなく、DLの出力が復号化の手がかりとして入力される。例えば、符号化部230は、DLがラベルごとに出力する確信度のうち最大の確信度のラベルに対応する学習データとの距離が近づくように、エンコーダにより次元数が圧縮された特徴表現から元の次元数に対応するデータを復元する動作をデコーダに実行させる。その後、符号化部230は、AEのデコーダの出力と、テストデータとの誤差から再構成誤差を算出する。
このようにAEのデコーダにDLの出力を入力することで、DLがクラス分類に失敗して誤認識が発生する時に元のテストデータが復元されづらくなるので、テストデータの誤認識時に再構成誤差を認識成功時に比べて大きく算出させることができる。
算出部240は、DLの出力の、テストデータに対する適合度を算出する。一実施形態として、算出部240は、符号化部230が実行するAEから出力される再構成誤差に基づいて適合度を算出する。ここで、再構成誤差は、テストデータが学習データに類似するほど低い値が算出される一方で、適合度は、値が高いほどDLの出力がテストデータに適合することを表す指標である。このことから、算出部240は、一例として、AEから出力される再構成誤差の逆数、例えば「0.1/再構成誤差」で正規化する計算を行うことにより、上記の適合度を算出する。なお、ここでは、正規化された再構成誤差を適合度として算出する例を説明したが、再構成誤差そのものを適合度として導出することができるのは言うまでもない。
出力部250は、テストデータに対する各種のレコメンドを出力する。一側面として、出力部250は、算出部240により算出された適合度そのものを出力することができる他、適合度と閾値の比較結果を出力することもできる。例えば、出力部250は、適合度が閾値以上である場合、テストデータの認識が可能である旨のメッセージ、テストデータの認識が可能なDLのモデルが存在する旨もしくはそのDLを用いるサービス名を所定の出力先、例えばテストデータの送信元へ出力する。
なお、ここでは、1つのDLの適合度が算出される例を挙げたが、DL記憶部22Aに複数のDLのモデル情報が保存されている場合、DLの出力ごとにテストデータに対する適合度を算出することとしてもかまわない。この場合、各DLの出力の適合度を出力することもできるし、最大の適合度が算出されたDLやそのサービス名を出力することができる。
[具体例2]
図12〜図18を用いて、適合度の算出の具体例について説明する。図12は、学習データの一例を示す図である。図12に示す「学習ID(IDentification)」とは、学習データを識別する識別情報を指す。また、「データラベル」とは、学習データに付与される正解のラベルを指す。また、「データ本体」とは、DLやAEへの入力するデータそのものを指す。このデータの一例として、図12には、文字画像のデータが示されている。図12に示すように、学習ID「TR1」で識別される学習データとして、文字のラベル「1」が付与された文字画像のデータ「I11」の学習サンプルと、文字のラベル「7」が付与された文字画像のデータ「I12」の学習サンプルとが示されている。
図13は、テストデータの一例を示す図である。図13に示す「テストID」とは、テストデータを識別する識別情報を指す。また、テストデータには、ラベルは付与されないので、図13では、「データラベル」の欄がブランクとされている。また、「データ可視化」の欄には、説明の便宜上、文字画像のデータが可視化された映像が示されている。図13に示すように、テストID「TT1」で識別されるテストデータには、画像データ「I1‘」が示されており、これが可視化された場合、映像「1」が表示されることを意味する。また、テストID「TT2」で識別されるテストデータには、画像データ「I2‘」が示されており、これが可視化された場合、映像「7」が表示されることを意味する。さらに、テストID「TT3」で識別されるテストデータには、画像データ「I3‘」が示されており、これが可視化された場合、映像「I」が表示されることを意味する。
以下、学習データTR1をDLのモデルおよびAEのモデルに学習させることにより、DL100AおよびAE110Aが生成された場合を想定する。
図14は、DLの認識結果の一例を示す図である。図14には、図13に示すテストID「TT1」〜「TT3」の3つのテストデータごとにDL100Aの認識結果が示されている。図14に示すように、テストID「TT1」の画像データ「I1‘」がDL100Aの入力層へ入力された場合、DL100Aの出力層から出力されるラベル「1」及びラベル「7」の確信度のうち、最大の確信度「0.8」を持つラベル「1」が認識結果として出力される。また、テストID「TT2」の画像データ「I2‘」がDL100Aの入力層へ入力された場合、DL100Aの出力層から出力されるラベル「1」及びラベル「7」の確信度のうち、最大の確信度「0.9」を持つラベル「1」が認識結果として出力される。さらに、テストID「TT3」の画像データ「I3‘」がDL100Aの入力層へ入力された場合、DL100Aの出力層から出力されるラベル「1」及びラベル「7」の確信度のうち、最大の確信度「0.9」を持つラベル「1」が認識結果として出力される。
このように、図13に示す3つのテストデータTT1〜TT3のうちいずれがDL100Aへ入力された場合でも、図14に示すように、認識部220からラベル「1」が認識結果として出力される。一方、図13に示すように、テストID「TT1」〜「TT3」の3つの画像データが可視化された映像は、ぞれぞれ「1」、「7」、「I」である。
したがって、結果から3つの事例を分析すれば、テストデータTT1しか認識に成功せず、テストデータTT2及びテストデータTT3はラベル「1」と誤認識されることがわかる。これら3つの事例を正確に表す適合度を算出できることを立証するには、テストデータTT2及びテストデータTT3に対するDL100Aの適合度よりも、テストデータTT1に対するDL100Aの適合度を高く算出できることが条件となることがわかる。
図15は、AEの出力結果の一例を示す図である。図15には、図13に示す3つのテストデータTT1〜TT3ごとにAE110Aの再構成誤差の算出結果が示されている。図16は、適合度の算出結果の一例を示す図である。図16には、図13に示す3つのテストデータTT1〜TT3ごとに図15に示す再構成誤差から算出された適合度の算出結果が示されている。
図15に示すように、テストID「TT1」の画像データ「I1‘」がAE110Aのエンコーダへ入力された場合、AE110Aのデコーダには、AE110Aのエンコーダの出力に加えて、DL100Aの出力、本例ではラベル「1」が入力される。この結果、ラベル「1」にしたがって復元された復号化データがAE110Aのデコーダから出力される。この復号化データが可視化された映像は、図15に示すように、ラベルにしたがって「1」に近い映像となる。さらに、AE110Aのデコーダから出力された復号化データと、テストID「TT1」の画像データ「I1‘」との誤差から算出された再構成誤差「0.1」が符号化部230から出力される。この再構成誤差は、一例として、2つの画像データの間で互いの位置が対応する画素ごとに画素値の差の2乗を計算し、画素ごとにそれぞれ計算された画素値の差の2乗に所定の統計処理、例えば平均処理などを行うことにより算出される。そして、テストデータTT1から算出された再構成誤差「0.1」が算出部240へ入力された場合、適合度は、図16に示すように、「1.00(=0.1/0.1)」と算出される。
次に、テストID「TT2」の画像データ「I2‘」がAE110Aのエンコーダへ入力された場合、AE110Aのデコーダには、AE110Aのエンコーダの出力に加えて、DL100Aの出力、本例ではラベル「1」が入力される。この結果、ラベル「1」にしたがって復元された復号化データがAE110Aのデコーダから出力される。この復号化データが可視化された映像は、図15に示すように、ラベルにしたがって「1」に近い映像となる。さらに、AE110Aのデコーダから出力された復号化データと、テストID「TT2」の画像データ「I2‘」との誤差から算出された再構成誤差「0.4」が符号化部230から出力される。そして、テストデータTT2から算出された再構成誤差「0.4」が算出部240へ入力された場合、適合度は、図16に示すように、「0.25(=0.1/0.4)」と算出される。
さらに、テストID「TT3」の画像データ「I3‘」がAE110Aのエンコーダへ入力された場合、AE110Aのデコーダには、AE110Aのエンコーダの出力に加えて、DL100Aの出力、本例ではラベル「1」が入力される。この結果、ラベル「1」にしたがって復元された復号化データがAE110Aのデコーダから出力される。この復号化データが可視化された映像は、図15に示すように、ラベルにしたがって「1」に近い映像となる。さらに、AE110Aのデコーダから出力された復号化データと、テストID「TT3」の画像データ「I3‘」との誤差から算出された再構成誤差「0.3」が符号化部230から出力される。そして、テストデータTT3から算出された再構成誤差「0.3」が算出部240へ入力された場合、適合度は、図16に示すように、「0.33・・・(=0.1/0.3)」と算出される。
このように、テストデータTT2及びテストデータTT3に対するDL100Aの適合度よりも、テストデータTT1に対するDL100Aの適合度を高く算出できる。このため、本実施例では、3つのテストデータTT1〜TT3に対するDL100Aの認識結果の事例を正確に表す適合度を算出できることがわかる。
以下、上記3つの事例を正確に表す適合度を算出できるメカニズムの一面について説明する。
(1)テストデータTT1
テストデータTT1は、学習データTR1のデータセットの中にラベルが存在するカテゴリに属するデータである。この場合、学習データTR1のデータセットに含まれる学習サンプルの中にテストデータTT1の画像データ「I1‘」と類似する画像データ、例えば図12に示すラベル「1」の文字画像の画像データ「I11」などが含まれる可能性が高い。この事実は、AE110AがテストID「TT1」の画像データ「I1‘」を圧縮した後に元の画像データ「I1‘」を復元できる再現性を高める方向に作用する。これに加えて、DL100Aが認識に成功する場合、DL100Aが認識結果として出力するラベル「1」と、テストデータTT1が分類されることが求められるカテゴリとが対応する。それ故、DL100Aが出力するラベルをAE110Aのデコーダへ入力することが一因となってテストデータTT1の元の画像データ「I1‘」の再現性が低下することもない。これらのことから、テストデータTT1に対するDL100Aの適合度として、「1.0」という高い値を求めることが可能である。
(2)テストデータTT3
テストデータTT3は、学習データTR1のデータセットの中にラベルが存在しないカテゴリに属するデータである。この場合、学習データTR1のデータセットに含まれる学習サンプルの中にテストデータTT3の画像データ「I3‘」と類似する画像データが含まれない可能性が高い。この事実は、AE110AがテストID「TT3」の画像データ「I3‘」を圧縮した後に元の画像データ「I3‘」を復元できる再現性を低下させる方向に作用する。このため、テストデータTT3に対するDL100Aの適合度として、テストデータTT1に対するDL100Aの適合度「1」よりも低い「0.33」という値を求めることが可能である。
(3)テストデータTT2
テストデータTT2も、テストデータTT1と同様、学習データTR1のデータセットの中にラベルが存在するカテゴリに属するデータである。この場合、学習データTR1のデータセットに含まれる学習サンプルの中にテストデータTT2の画像データ「I2‘」と類似する画像データ、例えば図12に示すラベル「7」の文字画像の画像データ「I12」などが含まれる可能性が高い。この事実は、AE110AがテストID「TT2」の画像データ「I2‘」を圧縮した後に元の画像データ「I2‘」を復元できる再現性を高める方向に作用する。これは、再構成誤差が低くなる一因となりうる。ところが、図14に示すように、DL100Aは、テストデータTT2をラベル「7」に対応するクラスに分類すべきところを誤ってラベル「1」に対応するクラスへ分類している。
これらのことから、本実施例のように、テストデータTT2がAE110Aへ入力される場合、DL100Aの出力がAE110Aのデコーダへ入力されなければ、DL100Aが認識に失敗する場合でも、再構成誤差が低く算出されうる状況にある。つまり、テストデータTT1およびテストデータTT3がAE110Aへ入力される2つの事例では、DL100Aの認証結果に対応する適合度を算出できる一方で、テストデータTT2がAE110Aへ入力される事例では、DL100Aの認証結果に対応しない適合度が算出される。このように一部の事例で算出される適合度の信頼性が低下することがある。
ここで、DL100Aの出力がデコーダへ入力されるAE110Aと、DL100Aの出力がデコーダへ入力されないAE110A´との間で、算出部240により算出される適合度の差を対比する。
図17は、AEの出力結果の一例を示す図である。図17には、図13に示す3つのテストデータTT1〜TT3ごとにAE110A´の再構成誤差の算出結果が示されている。図18は、適合度の算出結果の一例を示す図である。図18には、図13に示す3つのテストデータTT1〜TT3ごとに図17に示すAE110A´の再構成誤差から算出された適合度の算出結果が示されている。
図15及び図17を対比すると、3つのテストデータTT1〜TT3のうちテストデータTT1及びテストデータTT3が入力される場合、AE110Aにより算出される再構成誤差と、AE110A´により算出される再構成誤差との間に差は生まれていないことがわかる。一方、テストデータTT2が入力される場合、AE110Aにより算出される再構成誤差「0.4」に比べて、AE110A´により算出される再構成誤差「0.1」が小さいことがわかる。
このように、AE110A´により算出される再構成誤差がAE110Aにより算出される再構成誤差よりも小さくなるのは、AE110A´のデコーダには、DL100Aの出力は入力されず、AE110A´のエンコーダの出力だけが入力されるからである。
上述した通り、テストデータTT2は、学習データTR1のデータセットの中にラベルが存在するカテゴリに属するデータである。このため、AE110A´は、テストID「TT1」の元の画像データ「I1‘」が復元される場合と同等のレベルで、テストID「TT2」の元の画像データ「I2‘」を復元できる。その一方で、AE110A´のデコーダには、DL100Aの出力は入力されないので、DL100Aが出力するラベル「1」に対応する学習データに近付けて復元する再構成誤差へのペナルティも発生しない。この結果、AE110A´のデコーダは、テストID「TT2」の元の画像データ「I2‘」に近い画像データへ復元された復号化データを出力する。すなわち、AE110A´のデコーダが出力する復号化データが可視化された映像は、図17に示すように、テストID「TT2」の元の画像データ「I2‘」が有する文字「7」の特徴が保存された状態で復元されるので、テストID「TT2」の画像データ「I2‘」が可視化された映像「7」と類似する。この結果、AE110A´のデコーダから出力された復号化データと、テストID「TT2」の画像データ「I2‘」との誤差から、AE110Aの再構成誤差「0.4」に比べて小さい値「0.1」がAE110A´の再構成誤差として算出される。その上で、テストデータTT2から算出された再構成誤差「0.1」が算出部240へ入力された場合、適合度は、図18に示すように、「1(=0.1/0.1)」と算出される。
一方、AE110Aのデコーダには、AE110Aのエンコーダの出力に加えて、DL100Aの出力が復号化の手がかりとして入力される。このとき、DL100Aは、図14に示すように、テストデータTT2をラベル「7」に対応するクラスに分類すべきところを誤ってラベル「1」に対応するクラスへ分類している。このようにDL100Aが誤認識する場合、DL100Aが認識結果として出力するラベル「1」と、テストデータTT2が分類されることが求められるカテゴリとが対応しない。この場合、DL100Aが出力するラベル「1」に対応する学習データに近付けて復号化が行われる。この結果、AE110Aのデコーダは、テストID「TT2」の元の画像データ「I2‘」に近い画像データには復元できない。すなわち、AE110Aのデコーダが出力する復号化データが可視化された映像は、図15に示すように、ラベル「1」が付与された学習サンプルの画像データ「I11」が可視化された映像「1」に近付けて復元される。このため、AE110Aのデコーダが出力する復号化データが可視化された映像からは、テストID「TT2」の画像データ「I2‘」が有する文字「7」の特徴が損なわれる。よって、AE110Aのデコーダが出力する復号化データが可視化された映像「1」は、テストID「TT2」の画像データ「I2‘」が可視化された映像「7」と類似しなくなる。この結果、AE110Aのデコーダから出力された復号化データと、テストID「TT2」の画像データ「I2‘」との誤差から、AE110A´の再構成誤差「0.1」よりも大きい値「0.4」がAE110Aの再構成誤差として算出される。このように、DL100Aの出力が復号化の手がかりとしてAE110Aのデコーダへ入力されることにより、DL100Aの誤認識時には、AE110Aの再構成誤差にペナルティが与えられることになる。その上で、テストデータTT2から算出された再構成誤差「0.4」が算出部240へ入力された場合、適合度は、図16に示すように、「0.25(=0.1/0.4)」と算出される。
このように、学習データTR1のデータセットの中にラベルが存在するカテゴリに属するテストデータTT2がAE110Aへ入力される場合であっても、DL100AがテストデータTT2を誤認識する場合、再構成誤差にペナルティを与える。この結果、DL100Aの認証結果に対応しない適合度が算出されるのを抑制できるので、テストデータTT2が入力される事例においても、適合度の信頼性が低下するのを抑制できる。
[処理の流れ]
次に、本実施例に係る適合度算出システムの処理の流れについて説明する。ここでは、学習装置20により実行される(1)学習処理を説明した後に、適合度算出装置200により実行される(2)適合度算出処理を説明することとする。
(1)学習処理
図19は、実施例2に係る学習処理の手順を示すフローチャートである。この処理は、一例として、学習データ入力部21により学習データが取得された場合に開始される。図19に示すように、学習データが取得されると(ステップS101)、学習データ入力部21は、学習データのデータセットに含まれる学習サンプルの中から学習サンプルを1つ選択する(ステップS102)。
続いて、学習データ入力部21は、ステップS102で選択された学習サンプルをDLのモデルへ入力する(ステップS103A)。そして、DL学習部22は、ステップS103Aで学習サンプルがDLのモデルへ入力されることにより得られたDLのモデルの出力と、学習サンプルの正解のラベルとの誤差からDLのシナプスの重みやバイアスなどのモデルのパラメータを学習する(ステップS104)。
また、学習データ入力部21は、ステップS102で選択された学習サンプルをAEのエンコーダへ入力する(ステップS103B)。続いて、AE学習部23は、ステップS103Bで学習サンプルがAEのエンコーダへ入力することにより得られたAEのエンコーダの出力をAEのデコーダへ入力すると共に、ステップS103Aで学習サンプルがDLのモデルへ入力されることにより得られたDLのモデルの出力、例えばラベルまたは最大の確信度のラベルをAEのデコーダへ入力する(ステップS105)。そして、AE学習部23は、AEのデコーダの出力と、学習サンプルとの再構成誤差から、AEのシナプスの重みやバイアスなどのモデルのパラメータを学習する(ステップS106)。
続いて、学習データのデータセットに含まれる全ての学習サンプルが選択されるまで(ステップS107No)、上記のステップS102〜上記のステップS106までの処理を繰り返して実行する。
その後、全ての学習サンプルが選択された場合(ステップS107Yes)、学習回数が所定のエポック数に達するまで(ステップS108No)、学習回数のカウンタをインクリメントし(ステップS109)、上記のステップS102〜上記のステップS107までの処理を繰り返して実行する。
そして、学習回数が所定のエポック数に達した場合(ステップS108Yes)、DLのモデルに関するパラメータの学習結果をDL記憶部22Aへ保存すると共にAEのモデルに関するパラメータの学習結果をAE記憶部23Aへ保存し(ステップSステップS110及びステップS111)、処理を終了する。
なお、DLの学習を先行させることでAEの学習をより有効に行うことが可能となる。具体的には、処理開始から所定数のサンプルに対してはDLの学習だけを行い、所定数のサンプル以降はDLとAEの双方の学習を行う。DLの学習が進んだ状態からAEの学習を行うことで、所定の誤差に到達するまでのエポック数を削減し、学習時間の短縮を図ることができる。また、適合度算出システムにおいて複数のサンプルをまとめて処理を行ってもよい。
(2)適合度算出処理
図20は、実施例2に係る適合度算出処理の手順を示すフローチャートである。この処理は、一例として、テストデータ入力部210によりテストデータが取得された場合に開始される。
図20に示すように、テストデータが取得されると(ステップS201)、テストデータ入力部210は、テストデータをDLのモデルへ入力する(ステップS202A)。そして、認識部220は、ステップS202AでテストデータがDLのモデルへ入力されることにより得られたDLのモデルの出力に基づいてクラス分類、すなわち認識を実行する(ステップS203)。
また、テストデータ入力部210は、テストデータをAEのエンコーダへ入力する(ステップS202B)。続いて、符号化部230は、ステップS202BでテストデータがAEのエンコーダへ入力することにより得られたAEのエンコーダの出力をAEのデコーダへ入力すると共に、ステップS202AでテストデータがDLのモデルへ入力されることにより得られたDLのモデルの出力、例えばラベルまたは最大の確信度のラベルをAEのデコーダへ入力する(ステップS204)。そして、符号化部23は、ステップS204の結果として得られたAEのデコーダの出力と、テストデータとに基づいて再構成誤差を算出する(ステップS205)。
続いて、算出部240は、ステップS205で算出された再構成誤差に基づいて適合度を算出し(ステップS206)、出力部250は、ステップS206で算出された適合度を所定の出力先へ出力し(ステップS207)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係る適合度算出装置200は、自己符号化器が出力する再構成誤差に基づいてテストデータに対する学習モデルの出力の適合度を算出して出力する。したがって、本実施例に係る適合度算出装置200によれば、テストデータに対する学習モデルの出力の適合度を出力できる。この適合度を用いることにより、テストデータの認識が可能である否かの判断材料を提示できる他、テストデータの認識が可能な学習モデルが存在するか否か、さらには、テストデータの認識が可能な学習モデルを用いるサービス名などを提示できる。
なお、上記の実施例2では、AEのモデルの学習時にDLのモデルの出力がAEのデコーダへ入力される例を説明したが、これに限定されない。例えば、AEのデコーダには、AEのモデルの学習時に学習サンプルに付与されたラベルを入力することとしてもかまわない。このように学習サンプルに付与されたラベルをAEのデコーダへ入力することにより、DLのモデルから出力が得られるまでAEのデコーダへのデータ入力を待機せずともよくなるので、DLのモデル学習およびAEのモデル学習を並列して実行することが可能になる。
また、上記の実施例2では、図12〜図18を用いて文字画像の学習および認識が実行される場合の具体例を示したが、他の種類の画像や動画の他、音声などの他のメディアデータにも図19や図20に示す処理を適用できる。
なお、上記の実施例2では、AEが学習データまたはテストデータの全体を復元する例を説明したが、処理量の削減やリアルタイム性などが求められる場合、学習データまたはテストデータの一部を復元するようにAEのエンコーダおよびデコーダの構成を変更することもできる。例えば、映像の場合、現在のフレームに基づいて次のフレームを予測する予測器をオートエンコーダとして用いることもできる。
さて、本実施例では、複数の学習モデルの出力結果の中から、各学習モデルと同一の学習データにより学習をさせた自己符号化器それぞれが出力する再構成誤差ごとに算出された適合度に基づいて認識結果として出力する学習モデルの出力結果を選択する例を説明する。
図21は、実施例3に係る識別装置の機能的構成の一例を示すブロック図である。図21に示すように、識別装置300は、テストデータ入力部310と、モジュール320A〜320Cと、算出部340と、選択部350と、出力部360とを有する。なお、図21には、識別装置300が3つのモジュール320A〜320Cを有する例を示したが、これはあくまで一例であり、2つまたは4つ以上のモジュール320が識別装置300に備わることとしてもかまわない。
テストデータ入力部310は、テストデータを後段の機能部へ入力する。このテストデータを提供するソースの一例として、機械学習ビジネスのサービスの提供を受ける顧客等が挙げられるが、これに限定されない。例えば、機械学習ビジネスのサービス提供者が画像や音声などのデータをリクエストとして受け付け、画像認識や音声認識の結果を出力するクラウドサービスを別サービスとして提供する場合、別サービスの顧客をテストデータのソースとすることもできる。一側面として、テストデータ入力部310は、識別装置300と接続される外部装置、例えば任意のコンピュータからテストデータをネットワーク経由で取得することができる。その上で、テストデータ入力部310は、テストデータをモジュール320A〜320Cへ入力する。
モジュール320A〜320Cは、図11に示した認識部220および符号化部230の機能がモジュール化された機能部である。
ここで、モジュール320A〜320Cの各々のモジュール320で実行されるDLのモデルおよびAEのモデルのパラメータは、図11に示した学習装置20により異なるデータセットの学習データから個別に学習される。すなわち、学習装置20では、異なるデータセットの学習データからDLのモデルおよびAEのモデルのパラメータが個別に学習される。その後、学習装置20では、DLのモデル情報が学習IDごとにDL記憶部22Aへ保存されると共に、AEのモデル情報が学習IDごとにAE記憶部23Aへ保存される。その上で、学習IDごとに保存されたDLのモデルおよびAEのモデルがモジュール320A〜320Cに割り当てられる。その後、モジュール320A〜320Cは、各々のモジュール320に割り当てられたDLのモデル情報およびAEのモデル情報をDL記憶部22AおよびAE記憶部23Aから読み出してDLのモデルおよびAEのモデルを実行することにより、図11に示した認識部220および符号化部230の機能を実現できる。
算出部340は、DLの出力の、テストデータに対する適合度をモジュール320ごとに算出する。一実施形態として、算出部340は、各モジュール320が実行するAEから出力される再構成誤差に基づいて適合度をモジュール320ごとに算出する。例えば、算出部340は、AEから出力される再構成誤差の逆数、例えば「0.1/再構成誤差」で正規化する計算を行うことにより、上記の適合度を算出する。なお、ここでは、各モジュール320が再構成誤差を出力し、算出部340が適合度を算出する場合を例示したが、各モジュール320で適合度を算出させることとしてもかまわない。
選択部350は、モジュール320A〜320Cの出力のうちいずれかの出力を選択する。一実施形態として、選択部350は、モジュール320A〜320Cごとに出力されるDLの出力結果のうち、算出部340により最大の適合度が算出されたモジュール320のDLの出力結果を選択する。
出力部360は、認識結果を出力する。一実施形態として、出力部360は、モジュール320A〜320Cごとに出力されるDLの出力結果のうち、選択部350により選択されたモジュール320のDLの出力結果を認識結果として所定の出力先へ出力する。例えば、外部のクライアント端末から認証のリクエストとしてテストデータが入力された場合、当該クライアント端末を出力先とすることができる。この他、バックエンドで実行するサービスやアプリケーション、AI、識別装置300の外部装置などを出力先とすることもできる。
[具体例3]
図22〜図28を用いて、モジュールの選択の具体例について説明する。図22は、モジュールのモデル学習に用いる学習データの一例を示す図である。図22には、図12と同様のスキーマで学習データが示されており、さらに、図12の例と同様、学習データの一例として、文字画像のデータが示されている。図22に示すように、学習ID「TR1」で識別される学習データとして、文字のラベル「1」が付与された文字画像のデータ「I11」の学習サンプルと、文字のラベル「7」が付与された文字画像のデータ「I12」の学習サンプルとが示されている。さらに、学習ID「TR2」で識別される学習データとして、文字のラベル「I」が付与された文字画像のデータ「I21」の学習サンプルと、文字のラベル「7」が付与された文字画像のデータ「I22」の学習サンプルとが示されている。
図23は、テストデータの一例を示す図である。図23には、図13と同様のスキーマでテストデータが示されている。図23でも、図13と同様、「データラベル」の欄をブランクとし、「データ可視化」の欄には、説明の便宜上、文字画像のデータが可視化された映像が示されている。図23に示すように、テストID「TT1」で識別されるテストデータには、画像データ「I1‘」が示されており、これが可視化された場合、映像「1」が表示されることを意味する。また、テストID「TT2」で識別されるテストデータには、画像データ「I2‘」が示されており、これが可視化された場合、映像「7」が表示されることを意味する。さらに、テストID「TT3」で識別されるテストデータには、画像データ「I3‘」が示されており、これが可視化された場合、映像「I」が表示されることを意味する。
以下、学習データTR1から生成されたDL300AのモデルおよびAE320Aのモデルがモジュール320Aに割り当てられると共に、学習データTR2から生成されたDL300BおよびAE320Bがモジュール320Bに割り当てられる場合を想定して説明を続ける。
図24は、DLの認識結果の一例を示す図である。図24には、図23に示すテストID「TT1」〜「TT3」の3つのテストデータごとにDL300Aの認識結果およびDL300Bの認識結果が示されている。
図24に示すように、テストID「TT1」の画像データ「I1‘」がモジュール320AのDL300Aへ入力された場合、DL300Aの出力層から出力されるラベル「1」及びラベル「7」の確信度のうち、最大の確信度「0.8」を持つラベル「1」が認識結果として出力される。また、テストID「TT1」の画像データ「I1‘」がモジュール320BのDL300Bへ入力された場合、DL300Aの出力層から出力されるラベル「I」及びラベル「7」の確信度のうち、最大の確信度「0.9」を持つラベル「I」が認識結果として出力される。
また、テストID「TT2」の画像データ「I2‘」がモジュール320AのDL300Aへ入力された場合、DL300Aの出力層から出力されるラベル「1」及びラベル「7」の確信度のうち、最大の確信度「0.9」を持つラベル「1」が認識結果として出力される。また、テストID「TT2」の画像データ「I2‘」がモジュール320BのDL300Bへ入力された場合、DL300Bの出力層から出力されるラベル「I」及びラベル「7」の確信度のうち、最大の確信度「0.8」を持つラベル「7」が認識結果として出力される。
さらに、テストID「TT3」の画像データ「I3‘」がモジュール320AのDL300Aへ入力された場合、DL300Aの出力層から出力されるラベル「1」及びラベル「7」の確信度のうち、最大の確信度「0.9」を持つラベル「1」が認識結果として出力される。また、テストID「TT3」の画像データ「I3‘」がモジュール320BのDL300Bへ入力された場合、DL300Bの出力層から出力されるラベル「I」及びラベル「7」の確信度のうち、最大の確信度「0.8」を持つラベル「I」が認識結果として出力される。
結果から見れば、各テストデータTT1〜TT3においてクラスを正しく分類できる学習モデルは、テストデータTT1にはDL300A、テストデータTT2にはDL300B、テストデータTT3にはDL300Bとなる。しかし、上記の従来技術のように、確信度が最大である学習モデルの出力を選択したのでは、テストデータTT2の認識結果およびテストデータTT3の認識結果として、DL300Aの出力が選択される。この結果、上記の従来技術では、テストデータTT2のラベルを「1」と誤認識したり、テストデータTT3のラベルを「1」と誤認識したりする。
その一方で、本実施例では、モジュール320Aおよびモジュール320BごとにAE320AおよびAE320Bがそれぞれ出力する再構成誤差から適合度をモジュール320Aおよびモジュール320Bごとに算出し、最大の適合度が算出されたモジュール320の出力を選択することで、全てのテストデータTT1〜TT3においてクラスを正しく分類できるモジュール320を選択できる。
図25は、AEの出力結果の一例を示す図である。図25には、図23に示す3つのテストデータTT1〜TT3ごとにAE320Aの再構成誤差の算出結果およびAE320Bの再構成誤差の算出結果が示されている。図26は、モジュールの選択結果の一例を示す図である。図26には、図23に示す3つのテストデータTT1〜TT3ごとに図25に示す再構成誤差から算出された適合度のうち最大の適合度が算出されたモジュール320の選択結果が示されている。
図25に示すように、テストID「TT1」の画像データ「I1‘」がモジュール320AのAE320Aのエンコーダへ入力された場合、AE320Aのデコーダには、AE320Aのエンコーダの出力に加えて、DL300Aの出力、本例では正しいラベル「1」がAE320Aのデコーダへ入力される。この結果、正しいラベル「1」にしたがって復元された復号化データがAE320Aのデコーダから出力される。この復号化データが可視化された映像は、図25に示すように、正しいラベルにしたがって「1」に近い映像となり、テストデータTT1が可視化された映像「1」と類似する。このため、AE320Aのデコーダから出力された復号化データと、テストID「TT1」の画像データ「I1‘」との誤差から算出されたモジュール320Aの再構成誤差は、誤認識時に比べて小さい値「0.1」となる。そして、テストデータTT1から算出されたモジュール320Aの再構成誤差「0.1」が算出部340へ入力された場合、適合度は、図26に示すように、「1.00(=0.1/0.1)」と算出される。
一方、テストID「TT1」の画像データ「I1‘」がモジュール320BのAE320Bのエンコーダへ入力された場合、AE320Bのデコーダには、AE320Bのエンコーダの出力に加えて、DL300Bの出力、本例では誤認識のラベル「I」がAE320Bのデコーダへ入力される。この結果、誤認識のラベル「I」にしたがって復元された復号化データがAE320Bのデコーダから出力される。この復号化データが可視化された映像は、図25に示すように、誤認識のラベルにしたがって「I」に近い映像となり、テストデータTT1が可視化された映像「1」と類似しなくなる。このため、AE320Bのデコーダから出力された復号化データと、テストID「TT1」の画像データ「I1‘」との誤差から算出されるモジュール320Bの再構成誤差は、モジュール320Aの再構成誤差「0.1」よりも大きい値「0.3」となる。そして、テストデータTT1から算出されたモジュール320Bの再構成誤差「0.3」が算出部340へ入力された場合、適合度は、「0.33・・・(=0.1/0.3)」と算出される。
このように、テストデータTT1に対するモジュール320Aの適合度が「1.00」と算出される一方で、テストデータTT1に対するモジュール320Bの適合度が「0.33」と算出される。これらの適合度が比較された結果、適合度の値が大きいモジュール320AのDL300Aの出力が認識結果として選択される。よって、テストデータTT1のクラスを正しく分類できるモジュール320Aを選択できる。
次に、テストID「TT2」の画像データ「I2‘」がモジュール320AのAE320Aのエンコーダへ入力された場合、AE320Aのデコーダには、AE320Aのエンコーダの出力に加えて、DL300Aの出力、本例では誤認識のラベル「1」がAE320Aのデコーダへ入力される。この結果、誤認識のラベル「1」にしたがって復元された復号化データがAE320Aのデコーダから出力される。この復号化データが可視化された映像は、図25に示すように、誤認識のラベルにしたがって「1」に近い映像となり、テストデータTT2が可視化された映像「7」と類似しなくなる。この結果、AE320Aのデコーダから出力された復号化データと、テストID「TT2」の画像データ「I2‘」との誤差から算出されるモジュール320Aの再構成誤差は、正しく認識された時と比べて大きい値「0.4」となる。そして、テストデータTT2から算出されたモジュール320Aの再構成誤差「0.4」が算出部340へ入力された場合、適合度は、「0.25(=0.1/0.4)」と算出される。
一方、テストID「TT2」の画像データ「I2‘」がモジュール320BのAE320Bのエンコーダへ入力された場合、AE320Bのデコーダには、AE320Bのエンコーダの出力に加えて、DL300Bの出力、本例では正しいラベル「7」がAE320Bのデコーダへ入力される。この結果、正しいラベル「7」にしたがって復元された復号化データがAE320Bのデコーダから出力される。この復号化データが可視化された映像は、図25に示すように、正しいラベルにしたがって「7」に近い映像となり、テストデータTT2が可視化された映像「7」と類似する。このため、AE320Bのデコーダから出力された復号化データと、テストID「TT2」の画像データ「I2‘」との誤差から算出されたモジュール320Bの再構成誤差は、誤認識時に比べて小さい値「0.1」となる。そして、テストデータTT2から算出されたモジュール320Bの再構成誤差「0.1」が算出部340へ入力された場合、適合度は、図26に示すように、「1.00(=0.1/0.1)」と算出される。
このように、テストデータTT2に対するモジュール320Aの適合度が「0.25」と算出される一方で、テストデータTT2に対するモジュール320Bの適合度が「1.00」と算出される。これらの適合度が比較された結果、適合度の値が大きいモジュール320BのDL300Bの出力が認識結果として選択される。よって、テストデータTT2のクラスを正しく分類できるモジュール320Bを選択できる。
さらに、テストID「TT3」の画像データ「I3‘」がモジュール320AのAE320Aのエンコーダへ入力された場合、AE320Aのデコーダには、AE320Aのエンコーダの出力に加えて、DL300Aの出力、本例では誤認識のラベル「1」がAE320Aのデコーダへ入力される。この結果、誤認識のラベル「1」にしたがって復元された復号化データがAE320Aのデコーダから出力される。この復号化データが可視化された映像は、図25に示すように、誤認識のラベルにしたがって「1」に近い映像となり、テストデータTT3が可視化された映像「I」と類似しなくなる。この結果、AE320Aのデコーダから出力された復号化データと、テストID「TT3」の画像データ「I3‘」との誤差から算出されるモジュール320Aの再構成誤差は、誤認識時に比べて大きい値「0.3」となる。そして、テストデータTT3から算出されたモジュール320Aの再構成誤差「0.3」が算出部340へ入力された場合、適合度は、「0.33(=0.1/0.3)」と算出される。
一方、テストID「TT3」の画像データ「I3‘」がモジュール320BのAE320Bのエンコーダへ入力された場合、AE320Bのデコーダには、AE320Bのエンコーダの出力に加えて、DL300Bの出力、本例では正しいラベル「I」がAE320Bのデコーダへ入力される。この結果、正しいラベル「I」にしたがって復元された復号化データがAE320Bのデコーダから出力される。この復号化データが可視化された映像は、図25に示すように、正しいラベルにしたがって「I」に近い映像となり、テストデータTT3が可視化された映像「I」と類似する。このため、AE320Bのデコーダから出力された復号化データと、テストID「TT3」の画像データ「I3‘」との誤差から算出されたモジュール320Bの再構成誤差は、誤認識時に比べて小さい値「0.1」となる。そして、テストデータTT3から算出されたモジュール320Bの再構成誤差「0.1」が算出部340へ入力された場合、適合度は、図26に示すように、「1.00(=0.1/0.1)」と算出される。
このように、テストデータTT3に対するモジュール320Aの適合度が「0.33」と算出される一方で、テストデータTT3に対するモジュール320Bの適合度が「1.00」と算出される。これらの適合度が比較された結果、適合度の値が大きいモジュール320BのDL300Bの出力が認識結果として選択される。よって、テストデータTT3のクラスを正しく分類できるモジュール320Bを選択できる。
ここで、DL300Aの出力がデコーダへ入力されるAE320AおよびDL300Bの出力がデコーダへ入力されるAE320Bと、DL300Aの出力がデコーダへ入力されないAE320A´およびDL300Bの出力がデコーダへ入力されないAE320B´との間で、算出部340により算出される適合度の差を対比する。
図27は、AEの出力結果の一例を示す図である。図27には、図23に示す3つのテストデータTT1〜TT3ごとにAE320A´の再構成誤差の算出結果およびAE320B´の再構成誤差の算出結果が示されている。図28は、モジュールの選択結果の一例を示す図である。図28には、図23に示す3つのテストデータTT1〜TT3ごとに図27に示すAE320A´の再構成誤差から算出された適合度のうち最大の適合度が算出されたモジュール320の選択結果が示されている。
図25及び図27を対比すると、3つのテストデータTT1〜TT3のうちテストデータTT1及びテストデータTT3が入力される場合、AE320Aの再構成誤差およびAE320Bの再構成誤差と、AE320A´の再構成誤差およびAE320B´の再構成誤差との間に差は生まれていないことがわかる。
一方、テストデータTT2が入力される場合、図27に示すように、AE320A´により算出される再構成誤差「0.1」がAE320B´により算出される再構成誤差「0.2」よりも小さいことがわかる。この一因は、図15〜図17を用いて説明した通り、DL300Aの出力が復号化の手がかりとしてAE320A´のデコーダへ入力されない場合、DL300Aが出力するラベル「1」に対応する学習データに近付けて復元する再構成誤差へのペナルティが発生しないからである。この結果、AE320A´のデコーダが出力する復号化データが可視化された映像は、図27に示すように、テストID「TT2」の元の画像データ「I2‘」が有する文字「7」の特徴が保存された状態で復元されるので、テストID「TT2」の画像データ「I2‘」が可視化された映像「7」と類似する。この結果、AE320A´のデコーダから出力された復号化データと、テストID「TT2」の画像データ「I2‘」との誤差から、AE320Aの再構成誤差「0.4」に比べて小さい値「0.1」がAE320A´の再構成誤差として算出されてしまう。このような場合、モジュール320Aの適合度が「1(=0.1/0.2)」と算出される一方で、モジュール320Bの適合度が「0.5(=0.1/0.2)」と算出される。
以上のように、DL300Aの出力がデコーダへ入力されないAE320A´およびDL300Bの出力がデコーダへ入力されないAE320B´がモジュール320Aおよびモジュール320Bに用いられる場合、図28に示すように、テストデータTT2において、正しいクラスに分類できるモジュール320Bではなく、誤ったクラスに分類するモジュール320Aが選択されてしまうことがわかる。この結果から逆説的に、テストデータを正しく分類できる学習モデルの出力を選択する上で、DL300の出力をAE320のデコーダへ入力する構成の技術的意義が大きいことが明らかである。
[処理の流れ]
図29は、実施例3に係る識別処理の手順を示すフローチャートである。この処理は、一例として、テストデータ入力部310によりテストデータが取得された場合に開始される。
図29に示すように、テストデータが取得されると(ステップS301)、テストデータ入力部310は、テストデータを複数のモジュール320A〜320Cへ入力する(ステップS302)。その後、算出部340は、各モジュール320A〜320Cから出力される再構成誤差を取得する(ステップS303)。
そして、算出部340は、DLの出力の、テストデータに対する適合度をモジュール320A〜320Cごとに算出する(ステップS304)。続いて、選択部350は、モジュール320A〜320Cごとに出力されるDLの出力結果のうち、ステップS304で最大の適合度が算出されたモジュール320のDLの出力結果を選択する(ステップS305)。
その後、出力部360は、モジュール320A〜320Cごとに出力されるDLの出力結果のうち、ステップS305で選択されたモジュール320のDLの出力結果を認識結果として所定の出力先へ出力し(ステップS306)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係る識別装置300は、複数の学習モデルの出力結果の中から、各学習モデルと同一の学習データにより学習をさせた自己符号化器それぞれが出力する再構成誤差ごとに算出された適合度に基づいて認識結果として出力する学習モデルの出力結果を選択する。したがって、本実施例に係る識別装置300によれば、誤った学習モデルの出力が選択されるのを抑制するので、認識に失敗する可能性を低減できる結果、異なるデータセットの学習データから生成された複数の学習モデルを活用する逐次学習を実現できる。これによって、個々の学習モデルが個別に用いられる場合よりも豊富な認識機能を提供できる。
なお、上記の実施例3では、最大の適合度が算出されたモジュール320の出力を無条件に選択することとしたが、いずれのモジュール320の出力も選択しないこともできる。例えば、選択部350は、最大の適合度が所定の閾値以上であるか否かを判定する。そして、選択部350は、最大の適合度が閾値以上である場合に絞って最大の適合度が算出されたモジュール320の出力を選択することができる。これによって、いずれのモジュール320にも適合しないテストデータの認識結果が出力されるのを抑制できる。なお、ここでは、モジュール320の選択を禁止する例を説明したが、モジュール320のDLの出力が認識結果として出力されるのを禁止することとしてもかまわない。
また、上記の実施例3では、最大の適合度が算出されたモジュール320の出力を選択することとしたが、必ずしも最大の適合度が算出されたモジュール320だけを選択せずともかまわない。例えば、選択部350は、モジュール320のDLの出力のうち、適合度が閾値以上であるモジュール320のDLの出力、あるいは適合度が大きいものから順に所定数のモジュール320のDLの出力を選択することができる。このように複数のモジュール320のDLの出力が選択される場合、出力部360は、複数のモジュール320のDLの出力が集約された集約値を出力することができる。例えば、集約値がクラス分類等の離散的なラベルである場合、各モジュール320の間でラベルの多数決を取り、最多のラベルを出力することができる。また、集約値が回帰等の連続的なラベルである場合、統計値、例えば平均値や中央値、最頻値などを出力することができる。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)学習モデルの出力結果の適合度算出方法であって、
コンピュータが、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する、
処理を実行する適合度算出方法。
(付記2)付記1に記載の適合度算出方法であって、前記コンピュータが、
前記学習データに付与された正解のラベルを前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記正解のラベルに基づいて復号化することにより、前記自己符号化器を学習する処理を実行する適合度算出方法。
(付記3)付記1に記載の適合度算出方法であって、前記コンピュータが、
前記学習データが入力された学習モデルが出力する、ラベル、または、ラベル別の確信度を、前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記ラベルまたは前記ラベル別の確信度に基づいて復号化することにより、前記自己符号化器を学習する処理を実行する適合度算出方法。
(付記4)それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置に用いる識別方法であって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出し、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する、
処理を実行する識別方法。
(付記5)付記4に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち最大の適合度を出力する学習モジュールの出力結果を選択する処理を実行する識別方法。
(付記6)付記4に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち最大の適合度が所定の閾値よりも小さい場合、前記学習モジュールの出力結果の選択、もしくは前記選択された学習モジュールの出力結果の出力のいずれかを禁止する処理を実行する識別方法。
(付記7)付記4に記載の識別方法であって、前記コンピュータが、
前記複数の適合度のうち適合度が所定の閾値以上である学習モジュールの出力結果が集約された集約値を出力する処理を実行する識別方法。
(付記8)学習モデルの出力結果の適合度算出プログラムであって、
コンピュータに、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する、
処理を実行させる適合度算出プログラム。
(付記9)付記8に記載の適合度算出プログラムであって、前記コンピュータに、
前記学習データに付与された正解のラベルを前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記正解のラベルに基づいて復号化することにより、前記自己符号化器を学習する処理を実行させる適合度算出プログラム。
(付記10)付記8に記載の適合度算出プログラムであって、前記コンピュータに、
前記学習データが入力された学習モデルが出力する、ラベル、または、ラベル別の確信度を、前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記ラベルまたは前記ラベル別の確信度に基づいて復号化することにより、前記自己符号化器を学習する処理を実行させる適合度算出プログラム。
(付記11)それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置に実行させる識別プログラムであって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力し、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力し、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出し、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する、
処理を実行させる識別プログラム。
(付記12)付記11に記載の識別プログラムであって、前記コンピュータに、
前記複数の適合度のうち最大の適合度を出力する学習モジュールの出力結果を選択する処理を実行させる識別プログラム。
(付記13)付記11に記載の識別プログラムであって、前記コンピュータに、
前記複数の適合度のうち最大の適合度が所定の閾値よりも小さい場合、前記学習モジュールの出力結果の選択、もしくは前記選択された学習モジュールの出力結果の出力のいずれかを禁止する処理を実行させる識別プログラム。
(付記14)付記11に記載の識別プログラムであって、前記コンピュータに、
前記複数の適合度のうち適合度が所定の閾値以上である学習モジュールの出力結果が集約された集約値を出力する処理を実行させる識別プログラム。
(付記15)学習モデルの出力結果の適合度算出装置であって、
学習データにより学習をさせた、前記学習モデル、および、自己符号化器のエンコーダに、入力データをそれぞれ入力する第1入力部と、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力する第2入力部と、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する算出部と、
を有する適合度算出装置。
(付記16)付記15に記載の適合度算出装置であって、
前記学習データに付与された正解のラベルを前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記正解のラベルに基づいて復号化することにより、前記自己符号化器を学習する学習部をさらに有する適合度算出装置。
(付記17)付記15に記載の適合度算出装置であって、
前記学習データが入力された学習モデルが出力する、ラベル、または、ラベル別の確信度を、前記デコーダに入力し、前記学習データが入力されたエンコーダが出力する符号化データを前記ラベルまたは前記ラベル別の確信度に基づいて復号化することにより、前記自己符号化器を学習する学習部をさらに有する適合度算出装置。
(付記18)それぞれ異なる学習データにより学習された複数の学習モジュールを有し、
入力データを前記複数の学習モジュールにそれぞれ入力し、前記複数の学習モジュールそれぞれから出力された複数の適合度に基づき選択された学習モジュールの出力結果を出力する、
識別装置であって、
前記複数の学習モジュールそれぞれは、
前記学習データにより学習をさせた、学習モデル、および、自己符号化器のエンコーダに、前記入力データをそれぞれ入力する第1入力部と、
前記学習モデルの出力、および、前記自己符号化器のエンコーダの出力を、前記自己符号化器のデコーダに入力する第2入力部と、
前記デコーダの出力および前記入力データに基づき、前記学習モデルの出力の、前記入力データに対する適合度を算出する算出部と、
前記適合度、および、前記学習モデルの出力を前記識別装置へ出力する出力部と、
を有する識別装置。
(付記19)付記18に記載の識別装置であって、
前記複数の適合度のうち最大の適合度を出力する学習モジュールの出力結果を選択する選択部を有する識別装置。
(付記20)付記18に記載の識別装置であって、
前記複数の適合度のうち最大の適合度が所定の閾値よりも小さい場合、前記学習モジュールの出力結果の選択、もしくは前記選択された学習モジュールの出力結果の出力のいずれかを禁止する禁止部を有する識別装置。
(付記21)付記18に記載の識別装置であって、
前記複数の適合度のうち適合度が所定の閾値以上である学習モジュールの出力結果が集約された集約値を出力する出力部を有する識別装置。