(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-20
(45)【発行日】2023-03-01
(54)【発明の名称】学習方法、学習プログラムおよび学習装置
(51)【国際特許分類】
G06N 3/084 20230101AFI20230221BHJP
G06N 3/04 20230101ALI20230221BHJP
G06N 20/00 20190101ALI20230221BHJP
【FI】
G06N3/084
G06N3/04
G06N20/00 130
(21)【出願番号】P 2019006133
(22)【出願日】2019-01-17
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河東 孝
(72)【発明者】
【氏名】上村 健人
(72)【発明者】
【氏名】安富 優
【審査官】山本 俊介
(56)【参考文献】
【文献】国際公開第2018/020277(WO,A1)
【文献】特開2018-139103(JP,A)
【文献】特開2007-241895(JP,A)
【文献】特開平06-119431(JP,A)
【文献】Thomas Robert, Nicolas Thome and Matthieu Cord,HybridNet: Classification and Reconstruction Cooperation for Semi-Supervised Learning,Proceedings of the European Conference on Computer Vision (ECCV) [online],2018年,pp. 153-169, https://openaccess.thecvf.com/content_ECCV_2018/papers/Thomas_Robert_HybridNet_Classification_and_ECCV_2018_paper.pdf,[2022年8月9日検索]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する学習方法であって、
学習モデルに含まれる第1ネットワークおよび第2ネットワークと、前記第1ネットワークに入力されるデータを復元するデコーダとを実行し、
前記第1ネットワークに元教師データを入力することで前記第1ネットワークから第1特徴量と第2特徴量とを生成し、
前記第1特徴量および前記第2特徴量を前記デコーダに入力することで前記デコーダから出力される復元データが前記元教師データに近づき、また、前記第2特徴量を前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記元教師データの正解データに近づくように、前記学習モデルのパラメータと、前記デコーダのパラメータとを学習
し、
前記元教師データをデータ拡張されることで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の第2特徴量に関して、同一の元教師データからデータ拡張された、複数の拡張教師データから算出される各第2特徴量が参照特徴量に類似するように、前記参照特徴量および前記第1ネットワークのパラメータを学習する
処理を実行することを特徴とする学習方法。
【請求項2】
前記参照特徴量と、前記同一の元教師データの正解データとを対応づけて記憶装置に保存する処理を更に実行することを特徴とする請求項
1に記載の学習方法。
【請求項3】
前記学習する処理は、前記記憶装置に保存された前記参照特徴量を、前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記参照特徴量に対応する正解データに近づくように、前記第2ネットワークのパラメータを学習することを特徴とする請求項
2に記載の学習方法。
【請求項4】
コンピュータに、
学習モデルに含まれる第1ネットワークおよび第2ネットワークと、前記第1ネットワークに入力されるデータを復元するデコーダとを実行し、
前記第1ネットワークに元教師データを入力することで前記第1ネットワークから第1特徴量と第2特徴量とを生成し、
前記第1特徴量および前記第2特徴量を前記デコーダに入力することで前記デコーダから出力される復元データが前記元教師データに近づき、また、前記第2特徴量を前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記元教師データの正解データに近づくように、前記学習モデルのパラメータと、前記デコーダのパラメータとを学習
し、
前記元教師データをデータ拡張されることで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の第2特徴量に関して、同一の元教師データからデータ拡張された、複数の拡張教師データから算出される各第2特徴量が参照特徴量に類似するように、前記参照特徴量および前記第1ネットワークのパラメータを学習する
処理を実行させることを特徴とする学習プログラム。
【請求項5】
学習モデルに含まれる第1ネットワークおよび第2ネットワークと、前記第1ネットワークに入力されるデータを復元するデコーダとを実行し、前記第1ネットワークに元教師データを入力することで前記第1ネットワークから第1特徴量と第2特徴量とを生成する特徴量生成部と、
前記第1特徴量および前記第2特徴量を前記デコーダに入力することで前記デコーダから出力される復元データが前記元教師データに近づき、また、前記第2特徴量を前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記元教師データの正解データに近づくように、前記学習モデルのパラメータと、前記デコーダのパラメータとを学習
し、前記元教師データをデータ拡張されることで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の第2特徴量に関して、同一の元教師データからデータ拡張された、複数の拡張教師データから算出される各第2特徴量が参照特徴量に類似するように、前記参照特徴量および前記第1ネットワークのパラメータを学習する学習部と
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法等に関する。
【背景技術】
【0002】
深層学習モデルを学習する場合、訓練データ(学習データ)の量は性能に大きく寄与する要因であり、訓練データの量は多いほど好ましい。訓練データが不足し、訓練データにないタイプの適用データを、訓練データで学習した深層学習モデルに適用すると、適切な出力結果を得られず、失敗する可能性が高くなる。
【0003】
また、顧客データを用いるビジネスの場では、契約や情報漏洩のリスクに鑑みると、ある顧客データをいつまでも保持したり、別の顧客タスクなどに使いまわしたりすることが難しいため、訓練データが不足する場合がある。
【0004】
訓練データが不足する場合、データ拡張(data augmentation)を行うことが一般的である。データ拡張は、オリジナルの訓練データに対して、ノイズを付加、平行移動、欠損等の加工を行うものであり、訓練データの範囲を適用データの範囲に広げることができる。
【0005】
ここで、オリジナルの訓練データを、深層学習モデルに入力することで得られる中間特徴量を保持することで、オリジナルの訓練データを保持することなく、新規に深層学習モデルを学習する際に使用可能なデータ量を増加させる従来技術がある。
【0006】
図12は、従来技術を説明するための図である。
図12において、深層学習モデル10は、第1NN(Neural Network)10aと、第2NN10bとを有する。第1NN10aは、訓練データが入力された場合、中間特徴量を算出するNNである。第2NN10bは、中間特徴量が入力された場合、出力ラベルを算出するNNである。第1NN10aおよび第2NN10bのパラメータは、データベース10Pに格納された顧客Pの複数の訓練データを用いて学習済みとする。学習が終了すると、データベース10Pの情報は、顧客Pに返却される(または、破棄される)。
【0007】
たとえば、訓練データxP1を、第1NN10aに入力すると、中間特徴量zP1が算出される。中間特徴量zP1を、第2NN10bに入力すると、出力ラベルyP1’が算出される。従来技術では、データベース10Pの情報を返却する前に、訓練データxP1から算出される、中間特徴量zP1をデータベース13に保存する。従来技術は、データベース10Pに格納された他の訓練データから算出される中間特徴量も、データベース13に保存する。
【0008】
続いて、従来技術は、顧客Qの複数の訓練データを保存したデータベース11Qと、データベース13とを用いて、新規の深層学習モデル11を学習(逐次学習)する。深層学習モデル11は、第1NN11aと、第2NN11bとを有する。従来技術は、第1NN11aのパラメータとして、第1NN10aの学習済みのパラメータを設定する。従来技術は、第2NN11bのパラメータとして、第2NN10bの学習済みのパラメータを設定する。
【0009】
たとえば、データベース11Qの訓練データxQ1を、第1NN11aに入力すると、中間特徴量zQ1が算出される。中間特徴量zQ1を、第2NN11bに入力すると、出力ラベルyQ1’が算出される。従来技術は、出力ラベルyQ1’が正解ラベル(図示略)に近づくように、第2NN11bのパラメータを学習する。
【0010】
また、データベース13の中間特徴量zP1を、第2NN11bに入力すると、出力ラベルyP1’が算出される。従来技術は、出力ラベルyP1’が正解ラベル(図示略)に近づくように、第2NN11bのパラメータを学習する。
【0011】
上記のように、従来技術では、第2NN11bのパラメータを学習する場合、データベース11Qの訓練データから算出される中間特徴量に加えて、データベース13の中間特徴量を用いて、学習を行う。このため、データベース10Pを顧客Pに返却(破棄)しても、新規の深層学習モデルの学習時に使用可能なデータ量を増加させることができる。
【先行技術文献】
【非特許文献】
【0012】
【文献】Utako Yamamoto et al."Deformation estimation of an elastic object by partial observation using a neural network"
【発明の概要】
【発明が解決しようとする課題】
【0013】
図12で説明した従来技術では、学習済みの第1NN50aに訓練データを入力することで算出される中間特徴量が、自明な解による中間特徴量となることを抑止することができないという問題がある。
【0014】
図13は、従来技術の問題を説明するための図である。たとえば、第1NN10aがタスクに対して冗長な場合、訓練データzPを、第1NN10aに入力して算出される中間特徴量zPが、出力ラベルyP’そのものになる可能性がある。中間特徴量zPが出力ラベルyP’そのものであると、第1NN10aのみで、出力ラベルを推定可能である。この場合、第2NN10bは、中間特徴量zPを入力された際に、出力ラベルyP’(中間特徴量zPそのもの)を出力する自明な写像を行うことになる。そうすると、データベース13に保存された中間特徴量zPは、第2NNを逐次学習するための情報が保存されていないことを意味し、2回目以降の逐次学習の精度が劣化してしまう。
【0015】
1つの側面では、本発明は、訓練データから生成される中間特徴量を引き継ぐ逐次学習の精度を向上させることができる学習方法、学習プログラムおよび学習装置を提供することを目的とする。
【課題を解決するための手段】
【0016】
第1の案では、コンピュータが次の処理を実行する。コンピュータは、学習モデルに含まれる第1ネットワークおよび第2ネットワークと、第1ネットワークに入力されるデータを復元するデコーダとを実行する。コンピュータは、第1ネットワークに元教師データを入力することで第1ネットワークから第1特徴量と第2特徴量とを生成する。コンピュータは、第1特徴量および第2特徴量をデコーダに入力することでデコーダから出力される復元データが元教師データに近づくように、学習モデルのパラメータと、デコーダのパラメータとを学習する。また、コンピュータは、第2特徴量を第2ネットワークに入力することで第2ネットワークから出力される出力データが、元教師データの正解データに近づくように、学習モデルのパラメータと、デコーダのパラメータとを学習する。
【発明の効果】
【0017】
訓練データから生成される中間特徴量を引き継ぐ逐次学習の精度を向上させることができる。
【図面の簡単な説明】
【0018】
【
図1】
図1は、参考技術の一例を説明するための図である。
【
図2】
図2は、本実施例に係る学習装置の処理を説明するための図である。
【
図3】
図3は、本実施例に係る学習装置の構成を示す機能ブロック図である。
【
図4】
図4は、本実施例に係る学習データベースのデータ構造の一例を示す図である。
【
図5】
図5は、本実施例に係る拡張訓練データテーブルのデータ構造の一例を示す図である。
【
図6】
図6は、本実施例に係るパラメータテーブルのデータ構造の一例を示す図である。
【
図7】
図7は、本実施例に係る参照特徴量データベースのデータ構造の一例を示す図である。
【
図8】
図8は、データ拡張の一例を説明するための図である。
【
図9】
図9は、本実施例に係る学習部の処理を説明するための図である。
【
図10】
図10は、本実施例に係る学習装置の処理手順を示すフローチャートである。
【
図11】
図11は、本実施例に係る学習装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図13】
図13は、従来技術の問題を説明するための図である。
【発明を実施するための形態】
【0019】
以下に、本願の開示する学習方法、学習プログラムおよび学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0020】
本実施例に係る学習装置の説明を行う前に、参考技術について説明する。
図1は、参考技術の一例を説明するための図である。学習対象となる深層学習モデル20は、第1NN20aと、第2NN20bとを有する。第1NN20aは、訓練データが入力された場合、中間特徴量を算出するNNである。第2NN20bは、中間特徴量が入力された場合、出力ラベルを算出するNNである。データベース10Pは、顧客Pのオリジナルの訓練データxPを保存する。また、訓練データxPに対応する参照特徴量zPが設定される。
【0021】
参考技術は、訓練データxPに対してデータ拡張を実行し、訓練データxP.1,xP.2,xP.3を生成する。データ拡張は、オリジナルの訓練データに対して、ノイズを付加、平行移動、欠損等の加工を行うものである。
【0022】
参考技術は、訓練データxP.1,xP.2,xP.3を第1NN20aに入力して、中間特徴量zP.1,zP.2,zP.3を算出する。参考技術は、中間特徴量zP.1,zP.2,zP.3を第2NN20bに入力して、出力ラベルyP.1’,yP.2’,yP.3’を算出する。参考技術は、出力ラベルyP.1’,yP.2’,yP.3’が、それぞれの正解ラベル(図示略)に近づくように、第1NN20aのパラメータおよび第2NN20bのパラメータの学習を行う。
【0023】
また、参考技術は、中間特徴量zP.1,zP.2,zP.3が、参照特徴量zPに近づくような「制約」を与え、第1NN20aのパラメータ、参照特徴量zPの学習を行う。参考技術は、学習した参照特徴量zPをデータベース13に保存する。データベース13に保存された参照特徴量zPは、他の顧客の深層学習モデルの学習を新規に行う場合に利用される。
【0024】
ここで、参考技術のように、各中間特徴量zP.1,zP.2,zP.3をデータベース13に保存する代わりに、各中間特徴量zP.1~zP.3を集約した参照特徴量zPを保存することで、データベース13のデータ量を削減することが可能となる。しかし、参照特徴量zPは、
図12で説明した中間特徴量zPと比較して、出力ラベルyP.1’,yP.2’,yP.3’により近い情報となる。すなわち、データ拡張を行う場合に、第1NN10aにデータ拡張の違いを吸収する制約をかけると、より、参照特徴量(中間特徴量)が出力ラベルに近くなる。これは、第2NN10bの部分が自明な写像になっていれば、容易に制約を満たすことができるためである。
【0025】
このため、参考技術でも、従来技術と同様にして、参照特徴量が、自明な解による中間特徴量となることを抑止することができず、2回目以降の学習において、参照特徴量を用いると、学習精度が劣化する。
【0026】
次に、本実施例に係る学習装置の処理の一例について説明する。
図2は、本実施例に係る学習装置の処理を説明するための図である。
図2に示すように、深層学習モデル50は、第1NN50aと、第2NN50bと、デコーダ(Decoder)50cとを有する。学習データベース141には、オリジナルの訓練データxPが保存される。学習データベース141には、他の訓練データが保存される。
【0027】
第1NN50aは、訓練データが入力された場合、中間特徴量を算出するNNである。第1NN50aにより算出される中間特徴量は、第1特徴量と、第2特徴量とを有する。たとえば、第1NN50aの出力層に含まれる複数の出力ノード(図示略)のうち、第1特徴量を出力するノードと、第2特徴量を出力するノードとが予め設定されているものとする。第1特徴量の次元は、第2特徴量の次元と比較して十分小さいものとする。
【0028】
第2NN50bは、第2特徴量が入力された場合、出力ラベルを算出する処理部である。デコーダ50cは、第1特徴量と第2特徴量とが入力された場合、復元データを算出する処理部である。
【0029】
学習装置は、オリジナルの訓練データxPに対してデータ拡張を実行し、訓練データzP.1を生成する。学習装置が、訓練データP.1を第1NN50aに入力すると、第1NN50aから第1特徴量vP.1と、第2特徴量zP.1が出力される。
【0030】
学習装置が、第2特徴量zP.1を第2NN50bに入力すると、第2NN50bから出力ラベルyP.1’が出力される。学習装置が、第1特徴量vP.1および第2特徴量zP.1をデコーダ50cに入力すると、復元データxP.1’が出力される。
【0031】
学習装置は、出力ラベルyP.1’と、オリジナルの訓練データxPの正解ラベル(図示略)とが近づくように、第1NN50aのパラメータおよび第2NN50bのパラメータを学習する。学習装置は、復元データxP.1’と、訓練データxPとの類似度が上がるように、第1NNのパラメータおよびデコーダ50cのパラメータを学習する。また、第2特徴量zP.1が制約を満たすように、参照特徴量zPと、第1NN50aのパラメータを学習する。たとえば、制約は、同一のオリジナルの訓練データからデータ拡張された複数の訓練データであって、この複数の訓練データから算出される各第2特徴量と、参照特徴量zPとの類似度が上がるという制約である。学習装置は、学習した参照特徴量zPを参照特徴量データベース144に保存して、2回目以降の学習において利用する。
【0032】
ここで、デコーダ50cは、第1特徴量と第2特徴量とを元にして元の訓練データ(たとえば、xP.1)を復元するものであるため、元の訓練データの特徴情報は、第1特徴量および第2特徴量に分散して保存される。第1特徴量の次元は小さく設定されているため、第1特徴量よりも第2特徴量に、元の訓練データの特徴情報が保存される。第2特徴量に保存される特徴情報には制約があるため、制約を満たせない特徴情報は、第1特徴量に保存される。これによって、第2特徴量は、復元を行うための特徴情報の大部分が残り、自明な特徴になること(第2特徴量が出力ラベルそのものに近い情報となること)を抑止することができる。
【0033】
すなわち、学習装置が、第1NN50aから出力される中間特徴量を第1特徴量および第2特徴量に分割して、各パラメータの学習を行うと、訓練データのうち、本来保存したかった制約を満たす大部分の情報を、第2特徴量(参照特徴量)に残すことができる。
【0034】
次に、本実施例に係る学習装置の構成の一例について説明する。
図3は、本実施例に係る学習装置の構成を示す機能ブロック図である。
図3に示すように、この学習装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0035】
通信部110は、ネットワーク等を介して外部装置(図示略)とデータ通信を実行する処理部である。通信部110は、通信装置に対応する。たとえば、通信部110は、後述する学習データベース141の情報を、各顧客の外部装置等から受信する。後述する制御部150は、通信部110を介して、外部装置とデータをやり取りする。
【0036】
入力部120は、各種の情報を学習装置100に入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0037】
表示部130は、制御部150から出力される各種の情報を表示する表示装置である。たとえば、表示部130は、液晶ディスプレイ、タッチパネル等に対応する。
【0038】
記憶部140は、学習データベース141と、拡張訓練データテーブル142と、パラメータテーブル143と、参照特徴量データベース144とを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0039】
学習データベース141は、各顧客から通知される訓練データの情報を保存する。
図4は、本実施例に係る学習データベースのデータ構造の一例を示す図である。
図4に示すように、この学習データベース141は、データ番号と、訓練データと、正解ラベルとを対応付ける。データ番号は、オリジナルの訓練データを一意に識別する番号である。たとえば、訓練データ「xP1」に対応する正解ラベルは「yP1」であり、訓練データ「xP1」のデータ番号は「p001」である。
【0040】
拡張訓練データテーブル142は、オリジナルの訓練データを元にデータ拡張された訓練データを保持するテーブルである。
図5は、本実施例に係る拡張訓練データテーブルのデータ構造の一例を示す図である。
図5に示すように、この拡張訓練データテーブル142は、データ番号と、データ拡張された訓練データと、正解ラベルとを対応付ける。データ番号は、データ拡張の元となるオリジナルの訓練データを一意に識別する番号である。データ拡張された訓練データに対応する正解ラベルは、データ番号に対応するオリジナルの訓練データに対応付けられた正解ラベルとなる。
【0041】
パラメータテーブル143は、第1NN50aのパラメータ、第2NN50bのパラメータ、デコーダ50cのパラメータを保存するテーブルである。
図6は、本実施例に係るパラメータテーブルのデータ構造の一例を示す図である。
図6に示すように、パラメータテーブル143は、識別情報と、パラメータとを対応付ける。識別情報は、各NN、デコーダを識別する情報である。パラメータは、各NNに設定されるパラメータである。NNは複数の層を有し、各層には複数のノードが含まれ、各ノードがエッジで結ばれる構造となっている。各層は、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。デコーダもNNと同様にして、複数の層を有し、各層には複数のノードが含まれ、各ノードがエッジで結ばれる構造となっている。本実施例では、NN、デコーダに設定されるバイアス値、重み等をまとめて「パラメータ」と表記する。
【0042】
参照特徴量データベース144は、オリジナルの各訓練データに対してそれぞれ設定される参照特徴量を保存するデータベースである。
図7は、本実施例に係る参照特徴量データベースのデータ構造の一例を示す図である。
図7に示すように、参照特徴量データベース144は、データ番号と、参照特徴量と、正解ラベルとを対応付ける。データ番号は、オリジナルの訓練データを一意に識別する番号である。参照特徴量の初期値は予め設定されているものとする。正解ラベルは、データ番号に対応するオリジナルの訓練データの正解ラベルとなる。
【0043】
図3の説明に戻る。制御部150は、取得部150aと、拡張部150bと、特徴量生成部150cと、学習部150dとを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0044】
取得部150aは、各顧客の外部装置等から、学習データベース141の情報を取得する処理部である。取得部150aは、取得した学習データベース141の情報を、学習データベース141に格納する。
【0045】
拡張部150bは、学習データベース141に保存されたオリジナルの訓練データに対してデータ拡張(data augmentation)を行うことで、複数の訓練データを生成する処理部である。たとえば、拡張部150bが行うデータ拡張は、訓練データにノイズ付加、平行移動、欠損等の加工する処理に対応する。
【0046】
拡張部150bは、オリジナルの訓練データのデータ番号と、データ拡張した訓練データと、オリジナルの訓練データに対応する正解ラベルとを対応付けて、拡張訓練データテーブル142に保存する。拡張部150bは、学習データベース141に保存される各訓練データに対して、上記処理を繰り返し実行する。
【0047】
図8は、データ拡張の一例を説明するための図である。
図8に示す例では、訓練データ群20Aには、訓練データ21A-1~21A-3、訓練データ22A-1~22A-3、訓練データ23A-1~23A-3が含まれる。たとえば、訓練データ群20Aには、正解ラベル「A」が対応付けられる。
【0048】
訓練データ21A-2、21A-3は、オリジナルの訓練データ21A-1に対してデータ拡張することで得られるデータである。訓練データ22A-2、22A-3は、オリジナルの訓練データ22A-1に対してデータ拡張することで得られるデータである。訓練データ23A-2、23A-3は、オリジナルの訓練データ23A-1に対してデータ拡張することで得られるデータである。
【0049】
訓練データ群20Bには、訓練データ21B-1~21B-3,訓練データ22B-1~22B-3,訓練データ23B-1~23B-3が含まれる。たとえば、訓練データ群20Aには、正解ラベル「B」が対応付けられる。
【0050】
訓練データ21B-2、21B-3は、オリジナルの訓練データ21B-1に対してデータ拡張することで得られるデータである。訓練データ22B-2、22B-3は、オリジナルの訓練データ22B-1に対してデータ拡張することで得られるデータである。訓練データ23B-2、23B-3は、オリジナルの訓練データ23B-1に対してデータ拡張することで得られるデータである。
【0051】
一例として、
図8を用いて説明すると、拡張部150bは、訓練データ21A-1に対するデータ拡張を行うことで、訓練データ21A-2、21A-3を生成する。
【0052】
特徴量生成部150cは、データ拡張された複数の訓練データを、第1NN50aに入力し、訓練データ毎に、第1特徴量および第2特徴量を生成する処理部である。以下において、特徴量生成部150cの処理の一例について説明する。
【0053】
特徴量生成部150cは、第1NN50aを実行し、パラメータテーブル143に格納されたパラメータθ1を第1NN50aのパラメータとして設定する。第1NN50aの出力層に含まれる複数の出力ノード(図示略)のうち、第1特徴量を出力するノードと、第2特徴量を出力するノードとが予め設定されているものとする。第1特徴量の次元は、第2特徴量の次元と比較して十分小さいものとする。
【0054】
特徴量生成部150cは、拡張訓練データテーブル142から、データ番号と、データ番号に紐付く複数の訓練データを取得し、取得した複数の訓練データを、順に第1NN50aに入力する。特徴量生成部150cは、第1NN50aに設定されたパラメータθ1を用いて、複数の訓練データの第1特徴量および第2特徴量をそれぞれ算出する。
【0055】
特徴量生成部150cは、データ番号と、第1特徴量と、第2特徴量とを、学習部150dに出力する。特徴量生成部150cは、拡張訓練データテーブル142の各レコードについて、上記処理を繰り返し実行する。
【0056】
学習部150dは、誤差逆伝播法等を用いて、第1NN50aのパラメータθ1、第2NN50aのパラメータθ2、デコーダ50cのパラメータθ3、参照特徴量を学習する処理部である。
【0057】
図9は、本実施例に係る学習部の処理を説明するための図である。学習部150dは、第1NN50aと、第2NN50bと、デコーダ50cを実行する。学習部150dは、第2NN50bにパラメータθ2を設定し、デコーダ50cにパラメータθ3を設定する。
【0058】
たとえば、学習データベース141に保存されたオリジナルの訓練データxP1がデータ拡張されることで、訓練データxP1.1が生成される。学習データベース141に保存されたオリジナルの訓練データxP2がデータ拡張されることで、訓練データxP1.2が生成される。訓練データxP1.1が、第1NN50aに入力されることで、第1特徴量vP1.1と、第2特徴量zP1.1とが生成される。訓練データxP2.1が、第1NN50aに入力されることで、第1特徴量vP2.1と、第2特徴量zP2.1とが生成される。訓練データxP1に対応する参照特徴量をzP1とする。訓練データxP2に対応する参照特徴量をzP2とする。図示を省略するが、訓練データxP1の正解ラベルを「yP1」とする。訓練データxP2の正解ラベルを「yP2」とする。
【0059】
学習部150dは、第1特徴量vP1.1と、第2特徴量zP1.1を特徴量生成部150cから取得し、データ番号をキーとして、対応する参照特徴量zP1を特定する。学習部150dは、第1特徴量vP2.1と、第2特徴量zP2.1を特徴量生成部150cから取得し、データ番号をキーとして、参照特徴量zP2を特定する。
【0060】
学習部150dは、第2特徴量zP1.1を第2NN50bに入力し、パラメータθ2を基にして、出力ラベルyP1.1’を算出する。学習部150dは、第2特徴量zP2.1を第2NN50bに入力し、パラメータθ2を基にして、出力ラベルyP2.1’を算出する。学習部150dは、出力ラベルyP1.1’と正解ラベルyP1との誤差を計算する。学習部150dは、出力ラベルyP2.1’と正解ラベルyP2との誤差を計算する。学習部150dは、かかる誤差が小さくなるようにパラメータθ1,θ2を学習する。
【0061】
学習部150dは、第1特徴量vP1.1および第2特徴量zP1.1をデコーダ50cに入力し、パラメータθ3を基にして、復元データxP1.1’を算出する。学習部150dは、復元データxP1.1’と、訓練データxP1との類似度を算出し、類似度が上がるように、パラメータθ1,θ3を学習する。学習部150dは、第1特徴量vP2.1および第2特徴量zP2.1をデコーダ50cに入力し、パラメータθ3を基にして、復元データxP2.1’を算出する。学習部150dは、復元データxP2.1’と、訓練データxP2との類似度を算出し、類似度が上がるように、パラメータθ1,θ3を学習する。
【0062】
学習部150dは、第2特徴量zP1.1と、参照特徴量zP1との類似度を算出し、類似度が上がるように、参照特徴量zP1およびパラメータθ1を学習する。学習部150dは、第2特徴量zP2.1と、参照特徴量zP2との類似度を算出し、類似度が上がるように、参照特徴量zP2およびパラメータθ1を学習する。
【0063】
すなわち、学習部150dは、出力ラベルと正解ラベルとの誤差を小さくし、復元データと元の訓練データとの類似度を上げ、参照特徴量と第2特徴量との類似度が上がるように、パラメータθ1~θ3、参照特徴量を学習する処理を繰り返し実行する。学習部150dは、学習したパラメータθ1~θ3を、パラメータテーブル143に保存する。学習部150dは、学習した各訓練データの参照特徴量を、正解ラベルと対応付けて、参照特徴量データベース144に保存する。
【0064】
参照特徴量データベース144に登録された参照特徴量は、2回目以降の第2NNの学習に利用される。たとえば、学習部150dは、参照特徴量を第2NNに入力し、第2NNから出力される出力ラベルが、参照特徴量に対応付けられた正解ラベルに近づくように、第2NNのパラメータθ2の学習を行う。
【0065】
学習部150dは、復元データと、訓練データとの類似度をどのように算出してもよい。たとえば、学習部150dは、復元データと、訓練データとの2乗誤差を算出し、2乗誤差の値を類似度として用いてもよい。この場合には、2乗誤差の値が小さくなるほど、類似度が上がることを意味する。
【0066】
同様にして、学習部150dは、第2特徴量と、参照特徴量との類似度をどのように算出してもよい。たとえば、学習部150dは、第2特徴量と、参照特徴量との2乗誤差を算出し、2乗誤差の値を類似度として用いてもよい。この場合には、2乗誤差の値が小さくなるほど、類似度が上がることを意味する。
【0067】
次に、本実施例に係る学習装置100の処理手順の一例について説明する。
図10は、本実施例に係る学習装置の処理手順を示すフローチャートである。
図10に示すように、学習装置100の拡張部150bは、学習データベース141から訓練データを取得する(ステップS101)。拡張部150bは、訓練データをデータ拡張する(ステップS102)。
【0068】
学習装置100の特徴量生成部150cは、第1NN50aに訓練データを入力して、第1特徴量と第2特徴量とを生成する(ステップS103)。学習装置100の学習部150dは、第2特徴量を第2NN50bに入力し、第2NN50bから出力される出力ラベルと正解ラベルとの誤差が小さくなるように、パラメータθ1,θ2を学習する(ステップS104)。
【0069】
学習部150dは、第1特徴量および第2特徴量をデコーダ50cに入力し、デコーダ50cから出力される復元データと、元データとの類似度が上がるように、パラメータθ1,θ2を学習する(ステップS105)。
【0070】
学習部150dは、第2特徴量と参照特徴量との類似度が上がるように、パラメータθ1および参照特徴量を学習する(ステップS106)。学習部150dは、学習が終了していない場合には(ステップS107,No)、ステップS101に移行する。
【0071】
一方、学習部150dは、学習が終了した場合には(ステップS107,Yes)、学習済みの参照特徴量を参照特徴量データベース144に保存する(ステップS108)。
【0072】
次に、本実施例に係る学習装置100の効果について説明する。学習装置100は、第1NN50aから出力される中間特徴量を第1特徴量および第2特徴量に分割し、第2特徴量を第2NN50bに入力して算出される出力ラベルが、正解ラベルに近づくように、パラメータθ1、θ2を学習する。学習装置100は、第1特徴量および第2特徴量をデコーダ50cに入力して算出される復元データが、訓練データに類似するように、パラメータθ1、θ3を学習する。また、学習装置100は、第2特徴量が制約を満たすように、パラメータθ1、参照特徴量を学習する。
【0073】
ここで、デコーダ50cは、第1特徴量と第2特徴量とを元にして元の訓練データ(たとえば、
図2のxP)を復元するものであるため、訓練データxPの特徴情報は、第1特徴量および第2特徴量に分散して保存される。第1特徴量の次元は小さく設定されているため、第1特徴量よりも第2特徴量に、元の訓練データの特徴情報が保存される。第2特徴量に保存される特徴情報には制約があるため、制約を満たさない特徴情報は、第1特徴量に保存される。これによって、第2特徴量は、復元を行うための特徴情報の大部分が残り、自明な特徴になること(第2特徴量が出力ラベルそのものに近い情報となること)を抑止することができる。
【0074】
参照特徴量データベース144の参照特徴量には、訓練データの特徴情報の大部分が残り、逐次学習時に保存する特徴量として意味のある情報となる。このため、参照特徴量を用いて、2回目以降の学習を行う場合に、第2NNの逐次学習を精度よく行うことができる。
【0075】
学習装置100は、オリジナルの訓練データをデータ拡張した複数の訓練データを生成し、複数の訓練データを第1NN50aに入力した際に算出される第2特徴量が、参照特徴量に類似するように、参照特徴量および第1NN50aのパラメータθ1を学習する。これによって、複数の第2特徴量を集約した参照特徴量が、参照特徴量データベース144に保存できる。
【0076】
また、学習装置100は、参照特徴量と、オリジナルの訓練データに対応する正解ラベルとを対応付けて、参照特徴量データベース144に保存する。学習装置100は、参照特徴量を第2NNに入力した際の出力ラベルが、参照特徴量に対応する正解ラベルに近づくように、第2NNのパラメータθ2を学習する。これによって、参照特徴量データベース144を用いて、2回目以降の逐次学習で利用可能なデータ量を増やすことができ、学習精度を向上させることができる。
【0077】
次に、本実施例に示した学習装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図11は、本実施例に係る学習装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0078】
図11に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置305とを有する。コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0079】
ハードディスク装置307は、取得プログラム307a、拡張プログラム307b、特徴量生成プログラム307c、学習プログラム307dを有する。CPU301は、取得プログラム307a、拡張プログラム307b、特徴量生成プログラム307c、学習プログラム307dを読み出してRAM306に展開する。
【0080】
取得プログラム307aは、取得プロセス306aとして機能する。拡張プログラム307bは、拡張プロセス306bとして機能する。特徴量生成プログラム307cは、特徴量生成プロセス306cとして機能する。学習プログラム307dは、学習プロセス306dとして機能する。
【0081】
取得プロセス306aの処理は、取得部150aの処理に対応する。拡張プロセス306bの処理は、拡張部150bの処理に対応する。特徴量生成プロセス306cの処理は、特徴量生成部150cの処理に対応する。学習プロセス306dの処理は、学習部150dの処理に対応する。
【0082】
なお、各プログラム307a~307dについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307dを読み出して実行するようにしてもよい。
【0083】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0084】
(付記1)コンピュータが実行する学習方法であって、
学習モデルに含まれる第1ネットワークおよび第2ネットワークと、前記第1ネットワークに入力されるデータを復元するデコーダとを実行し、
前記第1ネットワークに元教師データを入力することで前記第1ネットワークから第1特徴量と第2特徴量とを生成し、
前記第1特徴量および前記第2特徴量を前記デコーダに入力することで前記デコーダから出力される復元データが前記元教師データに近づき、また、前記第2特徴量を前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記元教師データの正解データに近づくように、前記学習モデルのパラメータと、前記デコーダのパラメータとを学習する
処理を実行することを特徴とする学習方法。
【0085】
(付記2)前記元教師データをデータ拡張されることで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の第2特徴量に関して、同一の元教師データからデータ拡張された、複数の拡張教師データから算出される各第2特徴量が参照特徴量に類似するように、前記参照特徴量および前記第1ネットワークのパラメータを学習する処理を更に実行することを特徴とする付記1に記載の学習方法。
【0086】
(付記3)前記参照特徴量と、前記同一の元教師データの正解データとを対応づけて記憶装置に保存する処理を更に実行することを特徴とする付記2に記載の学習方法。
【0087】
(付記4)前記学習する処理は、前記記憶装置に保存された前記参照特徴量を、前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記参照特徴量に対応する正解データに近づくように、前記第2ネットワークのパラメータを学習することを特徴とする付記3に記載の学習方法。
【0088】
(付記5)コンピュータに、
学習モデルに含まれる第1ネットワークおよび第2ネットワークと、前記第1ネットワークに入力されるデータを復元するデコーダとを実行し、
前記第1ネットワークに元教師データを入力することで前記第1ネットワークから第1特徴量と第2特徴量とを生成し、
前記第1特徴量および前記第2特徴量を前記デコーダに入力することで前記デコーダから出力される復元データが前記元教師データに近づき、また、前記第2特徴量を前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記元教師データの正解データに近づくように、前記学習モデルのパラメータと、前記デコーダのパラメータとを学習する
処理を実行させることを特徴とする学習プログラム。
【0089】
(付記6)前記元教師データをデータ拡張されることで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の第2特徴量に関して、同一の元教師データからデータ拡張された、複数の拡張教師データから算出される各第2特徴量が参照特徴量に類似するように、前記参照特徴量および前記第1ネットワークのパラメータを学習する処理を更に実行することを特徴とする付記5に記載の学習プログラム。
【0090】
(付記7)前記参照特徴量と、前記同一の元教師データの正解データとを対応づけて記憶装置に保存する処理を更に実行することを特徴とする付記6に記載の学習プログラム。
【0091】
(付記8)前記学習する処理は、前記記憶装置に保存された前記参照特徴量を、前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記参照特徴量に対応する正解データに近づくように、前記第2ネットワークのパラメータを学習することを特徴とする付記7に記載の学習プログラム。
【0092】
(付記9)学習モデルに含まれる第1ネットワークおよび第2ネットワークと、前記第1ネットワークに入力されるデータを復元するデコーダとを実行し、前記第1ネットワークに元教師データを入力することで前記第1ネットワークから第1特徴量と第2特徴量とを生成する特徴量生成部と、
前記第1特徴量および前記第2特徴量を前記デコーダに入力することで前記デコーダから出力される復元データが前記元教師データに近づき、また、前記第2特徴量を前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記元教師データの正解データに近づくように、前記学習モデルのパラメータと、前記デコーダのパラメータとを学習する学習部と
を有することを特徴とする学習装置。
【0093】
(付記10)前記学習部は、前記元教師データをデータ拡張されることで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の第2特徴量に関して、同一の元教師データからデータ拡張された、複数の拡張教師データから算出される各第2特徴量が参照特徴量に類似するように、前記参照特徴量および前記第1ネットワークのパラメータを学習する処理を更に実行することを特徴とする付記9に記載の学習装置。
【0094】
(付記11)前記学習部は、前記参照特徴量と、前記同一の元教師データの正解データとを対応づけて記憶装置に保存する処理を更に実行することを特徴とする付記10に記載の学習装置。
【0095】
(付記12)前記学習部は、前記記憶装置に保存された前記参照特徴量を、前記第2ネットワークに入力することで前記第2ネットワークから出力される出力データが、前記参照特徴量に対応する正解データに近づくように、前記第2ネットワークのパラメータを学習することを特徴とする付記11に記載の学習装置。
【符号の説明】
【0096】
100 学習装置
110 通信部
120 入力部
130 表示部
140 記憶部
141 学習データベース
142 拡張訓練データテーブル
143 パラメータテーブル
144 参照特徴量データベース
150 制御部
150a 取得部
150b 拡張部
150c 特徴量生成部
150d 学習部