以下に、本願の開示する学習方法、学習プログラムおよび学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1~図4は、本実施例1に係る学習装置の処理を説明するための図である。図1について説明する。図1において、深層学習モデル50は、第1NN50aと、第2NN50bとを有する。第1NN50aは、訓練データが入力された場合、中間特徴量を算出するNNである。第2NN50bは、中間特徴量が入力された場合、出力ラベルを算出するNNである。データベース140Pは、顧客Pのオリジナルの訓練データを保存するデータベースである。たとえば、データベース140Pは、訓練データxP1,xP2を保存する。データベース140Pは、他の訓練データを保存していてもよい。
学習装置は、訓練データxP1,xP2に対してデータ拡張を実行することで、訓練データxP1.1,xP2.1を生成する。学習装置は、訓練データxP1.1を第1NN50aに入力し、中間特徴量zP1.1を算出する。学習装置は、訓練データxP2.1を第1NN50aに入力し、中間特徴量zP2.1を算出する。
学習装置は、中間特徴量zP1.1を第2NN50bに入力し、出力ラベルyP1.1’を算出する。学習装置は、中間特徴量zP2.1を第2NN50bに入力し、出力ラベルyP2.1’を算出する。
学習装置は、出力ラベルyP1.1’と、訓練データxP1の正解ラベル(図示略)との誤差を算出する。学習装置は、出力ラベルyP2.1’と、訓練データxP2の正解ラベル(図示略)との誤差を算出する。学習装置は、誤差逆伝播法を用いて、誤差が小さくなるように、第1NN50aのパラメータおよび第2NN50bのパラメータを学習する。
また、学習装置は、中間特徴量zP1.1と、訓練データxP1の参照特徴量zP1との類似度を算出する。学習装置は、中間特徴量zP2.1と、訓練データxP2の参照特徴量zP2との類似度を算出する。学習装置は、誤差逆伝播法を用いて、類似度が大きくなるように、第1NN50aのパラメータおよび参照特徴量zP1,zP2を学習する。
図2の説明に移行する。訓練データxP1,xP2に対してデータ拡張を実行することで、訓練データxP1.2,xP2.2を生成する。学習装置は、訓練データxP1.2を第1NN50aに入力し、中間特徴量zP1.2を算出する。学習装置は、訓練データxP2.2を第1NN50aに入力し、中間特徴量zP2.2を算出する。
学習装置は、中間特徴量zP1.2を第2NN50bに入力し、出力ラベルyP1.2’を算出する。学習装置は、中間特徴量zP2.2を第2NN50bに入力し、出力ラベルyP2.2’を算出する。
学習装置は、出力ラベルyP1.2’と、訓練データxP1の正解ラベル(図示略)との誤差を算出する。学習装置は、出力ラベルyP2.2’と、訓練データxP2の正解ラベル(図示略)との誤差を算出する。学習装置は、誤差逆伝播法を用いて、誤差が小さくなるように、第1NN50aのパラメータおよび第2NN50bのパラメータを学習する。
また、学習装置は、中間特徴量zP1.2と、訓練データxP1の参照特徴量zP1との類似度を算出する。学習装置は、中間特徴量zP2.2と、訓練データxP2の参照特徴量zP2との類似度を算出する。学習装置は、誤差逆伝播法を用いて、類似度が大きくなるように、第1NN50aのパラメータおよび参照特徴量zP1,zP2を学習する。
学習装置は、データベース140Pに保存された他の訓練データについても上記処理を繰り返し実行し、第1NNのパラメータ、第2NNのパラメータ、各訓練データに対応する各参照特徴量を学習する。学習された参照特徴量(zP1、zP2、図示しない他のオリジナルデータの参照特徴量)は、参照特徴量データベース144に保存される。
図3の説明に移行する。学習装置は、深層学習モデル50の学習が完了すると、データベース140Pの情報を、顧客Pに返却または破棄する。学習装置は、深層学習モデル50で学習した第1NN50aのパラメータおよび第2NN50bのパラメータ、参照特徴量データベース144の参照特徴量、顧客Qのオリジナルの訓練データを用いて、深層学習モデル51を逐次学習する。顧客Qのオリジナルの訓練データは、データベース140Qに保存される。
深層学習モデル51は、第1NN51aと、第2NN51bとを有する。学習装置は、第1NN51aのパラメータとして、第1NN50aの学習済みのパラメータを設定する。学習装置は、第2NN51bのパラメータとして、第2NN50bの学習済みのパラメータを設定する。深層学習モデル51では、第1NN51aのパラメータの学習を行わない。
学習装置は、データベース140Qの訓練データxQ1を、第1NN51aに入力し、中間特徴量zQ1を算出し、中間特徴量zQ1を中間特徴量データベース145Qに保存する。学習装置は、データベース140Qの訓練データxQ2を、第1NN51aに入力し、中間特徴量zQ2を算出し、中間特徴量zQ2を中間特徴量データベース145Qに保存する。
学習装置は、参照特徴量データベース144に格納された参照特徴量zP1を、第2NN51bに入力し、出力ラベルyP1’を算出する。学習装置は、参照特徴量データベース144に格納された参照特徴量zP2を、第2NN51bに入力し、出力ラベルyP2’を算出する。学習装置は、中間特徴量データベース145Qに格納された中間特徴量zQ1を、第2NN51bに入力し、出力ラベルyQ1’を算出する。学習装置は、中間特徴量データベース145Qに格納された中間特徴量zQ2を、第2NN51bに入力し、出力ラベルyQ2’を算出する。
学習装置は、出力ラベルyP1’と正解ラベル(図示略、以下同様)との誤差を算出する。学習装置は、出力ラベルyP2’と正解ラベルとの誤差を算出する。学習装置は、出力ラベルyQ1’と正解ラベルとの誤差を算出する。学習装置は、出力ラベルyQ2’と正解ラベルとの誤差を算出する。学習装置は、誤差逆伝播法を用いて、誤差が小さくなるように、第2NN51bのパラメータを学習する。
学習装置は、データベース140Qに保存された他の訓練データについても上記処理を繰り返し実行し、第2NN51bのパラメータを学習する。学習装置は、深層学習モデル51の学習が完了すると、データベース140Qの情報を、顧客Qに返却または破棄する。
図4の説明に移行する。学習装置は、顧客Rのオリジナルの訓練データと、他のデータを用いて、深層学習モデル52を逐次学習する。顧客Rのオリジナルの訓練データxR1,xR2は、データベース140Rに保存される。データベース140Rには、顧客Rの他の訓練データが保存されていてもよい。
他のデータは、深層学習モデル50で学習した第1NN50aのパラメータ、深層学習モデル51で学習した第2NN51bのパラメータ、参照特徴量データベース144の参照特徴量、中間特徴量データベース145Qの中間特徴量が含まれる。
深層学習モデル52は、第1NN52aと、第2NN52bとを有する。学習装置は、第1NN52aのパラメータとして、第1NN50a(第1NN51aでもよい)の学習済みのパラメータを設定する。学習装置は、第2NN52bのパラメータとして、第2NN51bの学習済みのパラメータを設定する。
学習装置は、データベース140Rの訓練データxR1を、第1NN52aに入力し、中間特徴量zR1を算出し、中間特徴量zR1を中間特徴量データベース145Rに保存する。学習装置は、データベース140Rの訓練データxR2を、第1NN52aに入力し、中間特徴量zR2を算出し、中間特徴量zR2を中間特徴量データベース145Rに保存する。
学習装置は、参照特徴量データベース144に格納された参照特徴量zP1を、第2NN52bに入力し、出力ラベルyP1’を算出する。学習装置は、参照特徴量データベース144に格納された参照特徴量zP2を、第2NN52bに入力し、出力ラベルyP2’を算出する。学習装置は、中間特徴量データベース145Qに格納された中間特徴量zQ1を、第2NN52bに入力し、出力ラベルyQ1’を算出する。学習装置は、参照特徴量データベース144に格納された中間特徴量zQ2を、第2NN52bに入力し、出力ラベルyQ2’を算出する。
学習装置は、出力ラベルyP1’と正解ラベル(図示略、以下同様)との誤差を算出する。学習装置は、出力ラベルyP2’と正解ラベルとの誤差を算出する。学習装置は、出力ラベルyQ1’と正解ラベルとの誤差を算出する。学習装置は、出力ラベルyQ2’と正解ラベルとの誤差を算出する。学習装置は、出力ラベルyR1’と正解ラベルとの誤差を算出する。学習装置は、出力ラベルyR2’と正解ラベルとの誤差を算出する。学習装置は、誤差逆伝播法を用いて、誤差が小さくなるように、第2NN52bのパラメータを学習する。
学習装置は、データベース140Rに保存された他の訓練データについても上記処理を繰り返し実行し、第2NN52bのパラメータを学習する。学習装置は、深層学習モデル52の学習が完了すると、データベース140Rの情報を、顧客Rに返却または破棄する。
上記のように、本実施例1に係る学習装置は、初回の学習時において、データ拡張した訓練データを第1NNに入力した際の中間特徴量がそれぞれ参照特徴量に近づくように、第1NNのパラメータ、参照特徴量の学習を行う。学習装置は、2回目の逐次学習において、初回の学習時に学習した参照特徴量を流用すると共に、新規の訓練データを用いて、第2NNのパラメータを学習する処理を行う。各参照特徴量は、オリジナルの訓練データをデータ拡張した複数の訓練データの中間特徴量を代表する特徴量と言える。データ拡張した各訓練データの有用な情報が、参照特徴量に残されている。したがって、かかる参照特徴量を用いて、第2NNの逐次学習を行うことで、データ量を減らしつつ、データ拡張した訓練データの特徴量を引き継いで利用し、深層学習モデルの学習精度を向上させることができる。
次に、本実施例1に係る学習装置の構成の一例について説明する。図5は、本実施例1に係る学習装置の構成を示す機能ブロック図である。図5に示すように、この学習装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
通信部110は、ネットワーク等を介して外部装置(図示略)とデータ通信を実行する処理部である。通信部110は、通信装置に対応する。たとえば、通信部110は、後述する学習データベース141の情報を、各顧客の外部装置等から受信する。後述する制御部150は、通信部110を介して、外部装置とデータをやり取りする。
入力部120は、各種の情報を学習装置100に入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。
表示部130は、制御部150から出力される各種の情報を表示する表示装置である。たとえば、表示部130は、液晶ディスプレイ、タッチパネル等に対応する。
記憶部140は、学習データベース141と、拡張訓練データテーブル142と、パラメータテーブル143と、参照特徴量データベース144と、中間特徴量データベース145とを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
学習データベース141は、各顧客から通知されるデータベースの情報を格納する。たとえば、顧客から通知されるデータベースは、上記のデータベース140P,140Q,140Rに対応する。学習データベース141は、データベース140P,140Q,140Rのうち、いずれか一つのデータベースの情報を保存し、保存したデータベースを用いて、深層学習モデルの学習を行う。学習が終了し、返却指示、破棄指示等を受け付けた場合には、学習データベース141に保存された、対象情報は削除される。
図6は、本実施例1に係る学習データベースのデータ構造の一例を示す図である。図6に示すように、この学習データベース141は、データ番号と、訓練データと、正解ラベルとを対応付ける。データ番号は、オリジナルの訓練データを一意に識別する番号である。たとえば、訓練データ「xP1」に対応する正解ラベルは「yP1」であり、訓練データ「xP1」のデータ番号は「p001」である。
拡張訓練データテーブル142は、オリジナルの訓練データを元にデータ拡張された訓練データを保持するテーブルである。図7は、本実施例1に係る拡張訓練データテーブルのデータ構造の一例を示す図である。図7に示すように、この拡張訓練データテーブル142は、データ番号と、データ拡張された訓練データと、正解ラベルとを対応付ける。データ番号は、データ拡張の元となるオリジナルの訓練データを一意に識別する番号である。データ拡張された訓練データに対応する正解ラベルは、データ番号に対応するオリジナルの訓練データに対応付けられた正解ラベルとなる。
パラメータテーブル143は、第1NNのパラメータおよび第2NNのパラメータを保持するテーブルである。図8は、本実施例1に係るパラメータテーブルのデータ構造の一例を示す図である。図8に示すように、パラメータテーブル143は、識別情報と、パラメータとを対応付ける。識別情報は、各NNを識別する情報である。パラメータは、各NNに設定されるパラメータである。NNは複数の層を有し、各層には複数のノードが含まれ、各ノードがエッジで結ばれる構造となっている。各層は、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。本実施例1では、NNに設定されるバイアス値、重み等をまとめて「パラメータ」と表記する。
参照特徴量データベース144は、初回のオリジナルの各訓練データに対してそれぞれ設定される参照特徴量を保存するデータベースである。図9は、本実施例1に係る参照特徴量データベースのデータ構造の一例を示す図である。図9に示すように、参照特徴量データベース144は、データ番号と、参照特徴量と、正解ラベルとを対応付ける。データ番号は、オリジナルの訓練データを一意に識別する番号である。参照特徴量の初期値は予め設定されているものとする。正解ラベルは、データ番号に対応するオリジナルの訓練データに対応付けられた正解ラベルとなる。
中間特徴量データベース145は、訓練データを第1NNに入力することで算出される中間特徴量を保存するデータベースである。図10は、本実施例1に係る中間特徴量データベースのデータ構造の一例を示す図である。図10に示すように、中間特徴量データベース145は、データ番号と、中間特徴量と、正解ラベルとを対応付ける。データ番号は、第1NNに入力する前の訓練データを、一意に識別する番号である。中間特徴量は、訓練データを第1NNに入力することで算出される特徴量である。正解ラベルは、データ番号に対応するオリジナルの訓練データに対応付けられた正解ラベルとなる。
図5の説明に戻る。制御部150は、取得部150aと、拡張部150bと、第1学習部150cと、第2学習部150dとを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
取得部150aは、各顧客の外部装置等から、学習データベース141の情報を取得する処理部である。取得部150aは、取得した学習データベース141の情報を、学習データベース141に格納する。たとえば、取得部150aは、顧客Pのデータベース140Pの情報を取得すると、取得したデータベース140Pの情報を、学習データベース141に保存する。取得部150aは、顧客Qのデータベース140Qの情報を取得すると、取得したデータベース140Qの情報を、学習データベース141に保存する。取得部150aは、顧客Rのデータベース140Rの情報を取得すると、取得したデータベース140Rの情報を、学習データベース141に保存する。
ところで、取得部150aは、学習データベース141に、データベース140Pの情報が保存されており、かかるデータベース140Pの返却要求を取得した場合には、次の処理を行う。取得部150aは、データベース140Pの情報を、顧客Pの外部装置に送信し、学習データベース141に保存されたデータベース140Pの情報を削除する。取得部150aは、データベース140Pを基に学習した深層学習モデル50の情報を、顧客Pの外部装置に送信してもよい。
取得部150aは、学習データベース141に、データベース140Qの情報が保存されており、かかるデータベース140Qの返却要求を取得した場合には、次の処理を行う。取得部150aは、データベース140Qの情報を、顧客Qの外部装置に送信し、学習データベース141に保存されたデータベース140Qの情報を削除する。取得部150aは、データベース140Qを基に学習した深層学習モデル51の情報を、顧客Qの外部装置に送信してもよい。
取得部150aは、学習データベース141に、データベース140Rの情報が保存されており、かかるデータベース140Rの返却要求を取得した場合には、次の処理を行う。取得部150aは、データベース140Rの情報を、顧客Rの外部装置に送信し、学習データベース141に保存されたデータベース140Pの情報を削除する。取得部150aは、データベース140Rを基に学習した深層学習モデル52の情報を、顧客Rの外部装置に送信してもよい。
拡張部150bは、学習データベース141に保存されたオリジナルの訓練データに対してデータ拡張(data augmentation)を行うことで、複数の訓練データを生成する処理部である。たとえば、拡張部150bが行うデータ拡張は、訓練データにノイズ付加、平行移動、欠損等の加工する処理に対応する。
図11は、データ拡張の一例を説明するための図である。図11に示す例では、訓練データ群20Aには、訓練データ21A-1~21A-3、訓練データ22A-1~22A-3、訓練データ23A-1~23A-3が含まれる。たとえば、訓練データ群20Aには、正解ラベル「A」が対応付けられる。
訓練データ21A-2、21A-3は、オリジナルの訓練データ21A-1に対してデータ拡張することで得られるデータである。訓練データ22A-2、22A-3は、オリジナルの訓練データ22A-1に対してデータ拡張することで得られるデータである。訓練データ23A-2、23A-3は、オリジナルの訓練データ23A-1に対してデータ拡張することで得られるデータである。
訓練データ群20Bには、訓練データ21B-1~21B-3、訓練データ22B-1~22B-3、訓練データ23B-1~23B-3が含まれる。たとえば、訓練データ群20Aには、正解ラベル「B」が対応付けられる。
訓練データ21B-2、21B-3は、オリジナルの訓練データ21B-1に対してデータ拡張することで得られるデータである。訓練データ22B-2、22B-3は、オリジナルの訓練データ22B-1に対してデータ拡張することで得られるデータである。訓練データ23B-2、23B-3は、オリジナルの訓練データ23B-1に対してデータ拡張することで得られるデータである。
一例として、図11を用いて説明すると、拡張部150bは、訓練データ21A-1に対するデータ拡張を行うことで、訓練データ21A-2、21A-3を生成する。
拡張部150bは、オリジナルの訓練データのデータ番号と、データ拡張した訓練データと、オリジナルの訓練データに対応する正解ラベルとを対応付けて、拡張訓練データテーブル142に保存する。拡張部150bは、初回に学習データベース141に保存される情報(たとえば、データベース140Pの情報)の各訓練データに対して、上記処理を繰り返し実行する。
第1学習部150cは、拡張訓練データテーブル142に保存された訓練データ(データ拡張された訓練データ)を基にして、初回の深層学習モデル50の学習を行う処理部である。たとえば、第1学習部150cは、中間特徴量を生成する処理、中間特徴量の類似度を算出する処理、学習する処理を実行する。
第1学習部150cが実行する「中間特徴量を生成する処理」について説明する。第1学習部150cは、第1NN50aを実行し、パラメータテーブル143に保存されたパラメータθ1を第1NN50aのパラメータとして設定する。第1学習部150cは、拡張訓練データテーブル142から、同一の訓練データを元にデータ拡張された複数の訓練データを取得し、取得した複数の訓練データを、順に第1NN50aに入力する。第1学習部150cは、第1NN50aに設定されたパラメータθ1を用いて、複数の訓練データの中間特徴量をそれぞれ算出する。
第1学習部150cは、同一の訓練データを元にデータ拡張された複数の訓練データに対応する中間特徴量と、複数の訓練データに対応付けられた正解ラベルとを対応付けて保持する。
図1を用いて説明すると、第1学習部150cは、データ拡張された訓練データxP1.1を、第1NN50aに入力することで、中間特徴量zP1.1を算出する。中間特徴量zP1.1の正解ラベルは、訓練データxP1に対応する正解ラベルとなる。第1学習部150cは、データ拡張された訓練データxP2.1を、第1NN50aに入力することで、中間特徴量zP2.1を算出する。中間特徴量zP2.1の正解ラベルは、訓練データxP2に対応する正解ラベルとなる。
続いて、第1学習部150cが実行する「中間特徴量の類似度を算出する処理」について説明する。たとえば、第1学習部150cは、データ番号に対応する参照特徴量と、このデータ番号に対応する中間特徴量との2乗誤差を類似度として算出する。2乗誤差が小さいほど、参照特徴量と、中間特徴量とが類似していることを意味する。
図1を用いて説明すると、中間特徴量zP1.1と、参照特徴量zP1との類似度は、中間特徴量zP1.1と、参照特徴量zP1との2乗誤差である。中間特徴量zP2.1と、参照特徴量zP2との類似度は、中間特徴量zP2.1と、参照特徴量zP2との2乗誤差である。
第1学習部150cが実行する「学習する処理」について説明する。第1学習部150cは、第2NN50bを実行し、パラメータテーブル143に保存されたパラメータθ2を第2NN50bのパラメータとして設定する。
第1学習部150cは、「中間特徴量を生成する処理」において算出した中間特徴量を、第2NN50bに入力する。第1学習部150cは、第2NN50bに設定されたパラメータθ2を用いて、出力ラベルを算出する。
第1学習部150cの処理を、図1を用いて説明する。第1学習部150cは、中間特徴量zP1.1を第2NN50bに入力することで、出力ラベルyP1.1’を算出する。第1学習部150cは、中間特徴量zP2.1を第2NN50bに入力することで、出力ラベルyP2.1’を算出する。
第1学習部150cは、出力ラベルyP1.1’と、訓練データxP1の正解ラベルyP1.1(図示略)との誤差を算出する。第1学習部150cは、出力ラベルyP2.1’と、訓練データxP2の正解ラベルyP2.1(図示略)との誤差を算出する。第1学習部150cは、誤差逆伝播法を用いて、誤差が小さくなるように、第1NN50aのパラメータθ1および第2NN50bのパラメータθ2を学習する。
また、第1学習部150cは、中間特徴量zP1.1と、訓練データxP1の参照特徴量zP1との類似度が上がるように、第1NN50aのパラメータθ1および参照特徴量zP1を学習する。第1学習部150cは、中間特徴量zP2.1と、訓練データxP1の参照特徴量zP2との類似度が上がるように、第1NN50aのパラメータθ1および参照特徴量zP2を学習する。
第1学習部150cは、学習データベース141(データベース140P)に保存された顧客Pの各訓練データに対して、上記処理を繰り返し実行することで、第1NN50aのパラメータθ1、第2NN50bのパラメータθ2、参照特徴量を学習する。第1学習部150cは、学習が完了した後に、学習したパラメータθ1,θ2によって、パラメータテーブル143を更新する。第1学習部150cは、学習した参照特徴量によって、参照特徴量データベース144を更新する。
ここで、学習データベース141(データベース140P)に保存された顧客Pの各訓練データを用いた深層学習モデル50の学習が完了すると、データベース140Pの情報が、学習データベース141から削除される。続いて、取得部150aによって、顧客Qのデータベース140Qの情報が、学習データベース141に保存され、後述する第2学習部150dの処理が実行される。
第2学習部150dは、学習データベース141の訓練データと、パラメータテーブル143と、参照特徴量データベース144を基にして、深層学習モデルを逐次学習する処理部である。まず、学習データベース141には、顧客Qのデータベース140Qの情報が格納されているものとする。たとえば、第2学習部150dは、中間特徴量を生成する処理(1)、学習する処理(1)を実行する。
第2学習部150dが実行する「中間特徴量を生成する処理(1)」について説明する。第2学習部150dは、第1NN51aを実行し、パラメータテーブル143に保存されたパラメータθ1を第1NN51aのパラメータとして設定する。第2学習部150dは、学習データベース141に保存された訓練データを、順に第1NN51aに入力する。第2学習部150dは、第1NN51aに設定されたパラメータθ1を用いて、複数の訓練データの中間特徴量をそれぞれ算出する。
第2学習部150dは、訓練データのデータ番号と、訓練データから算出した中間特徴量と、訓練データに対応付けられた正解ラベルとを対応付けて、中間特徴量データベース145(145Q)に保存する。
図3を用いて説明すると、第2学習部150dは、訓練データxQ1を、第1NN51aに入力することで、中間特徴量zQ1を算出する。第2学習部150dは、訓練データxQ1のデータ番号と、中間特徴量zQ1と、訓練データxQ1の正解ラベルとを対応付けて、中間特徴量データベース145(145Q)に保存する。
第2学習部150dは、訓練データxQ2を、第1NN51aに入力することで、中間特徴量zQ2を算出する。第2学習部150dは、訓練データxQ2のデータ番号と、中間特徴量zQ2と、訓練データxQ2の正解ラベルとを対応付けて、中間特徴量データベース145(145Q)に保存する。
続いて、第2学習部150dが実行する「学習する処理(1)」について説明する。第2学習部150dは、第2NN51bを実行し、パラメータテーブル143に保存されたパラメータθ2を第2NN51bのパラメータとして設定する。
第2学習部150dは、参照特徴量データベース144に保存された参照特徴量を、第2NN51bに入力し、パラメータθ2を用いて、出力ラベルを算出する。また、第2学習部150dは、中間特徴量データベース145に保存された中間特徴量を、第2NN51bに入力し、パラメータθ2を用いて、出力ラベルを算出する。
第2学習部150dの処理を、図3を用いて説明する。第2学習部150dは、参照特徴量データベース144の参照特徴量zP1を第2NN51bに入力することで、出力ラベルyP1’を算出する。第2学習部150dは、参照特徴量データベース144の参照特徴量zP2を第2NN51bに入力することで、出力ラベルyP2’を算出する。
第2学習部150dは、中間特徴量データベース145(145Q)の中間特徴量zQ1を第2NN51bに入力することで、出力ラベルyQ1’を算出する。第2学習部150dは、中間特徴量データベース145(145Q)の中間特徴量zQ2を第2NN51bに入力することで、出力ラベルyQ2’を算出する。
第2学習部150dは、出力ラベルyP1.1’と、参照特徴量zP1の正解ラベルyP1.1(図示略)との誤差を算出する。第2学習部150dは、出力ラベルyP2.1’と、参照特徴量zP2の正解ラベルyP2.1(図示略)との誤差を算出する。
第2学習部150dは、出力ラベルyQ1’と、中間特徴量zQ1の正解ラベルyQ1(図示略)との誤差を算出する。第2学習部150dは、出力ラベルyQ2’と、中間特徴量zQ2の正解ラベルyQ2(図示略)との誤差を算出する。
第2学習部150dは、誤差逆伝播法を用いて、誤差が小さくなるように、第2NN51bのパラメータθ2を学習する。
第2学習部150dは、学習データベース141(データベース140Q)に保存された顧客Qの各訓練データに対して、上記処理を繰り返し実行することで、第2NN51bのパラメータθ2を学習する。第2学習部150dは、学習したパラメータθ2によって、パラメータテーブル143を更新する。また、第2学習部150dは、学習の過程おいて生成する各中間特徴量を、中間特徴量データベース145に保存する。
ここで、学習データベース141(データベース140Q)に保存された顧客Qの各訓練データを用いた深層学習モデル51の学習が完了すると、データベース140Qの情報が、学習データベース141から削除される。続いて、取得部150aによって、顧客Rのデータベース140Rの情報が、学習データベース141に保存され、後述する第2学習部150dの処理が実行される。
学習データベース141には、顧客Rのデータベース140Rの情報が格納されているものとする。たとえば、第2学習部150dは、上記のデータベース140Qを用いた処理と同様にして、中間特徴量を生成する処理(2)、学習する処理(2)を実行する。
第2学習部150dが実行する「中間特徴量を生成する処理(2)」について説明する。第2学習部150dは、第1NN52aを実行し、パラメータテーブル143に保存されたパラメータθ1を第1NN52aのパラメータとして設定する。第2学習部150dは、学習データベース141に保存された訓練データを、順に第1NN52aに入力する。第2学習部150dは、第1NN52aに設定されたパラメータθ1を用いて、複数の訓練データの中間特徴量をそれぞれ算出する。
第2学習部150dは、訓練データのデータ番号と、訓練データから算出した中間特徴量と、訓練データに対応付けられた正解ラベルとを対応付けて、中間特徴量データベース145(145R)に保存する。
図4を用いて説明すると、第2学習部150dは、訓練データxR1を、第1NN52aに入力することで、中間特徴量zR1を算出する。第2学習部150dは、訓練データxR1のデータ番号と、中間特徴量zR1と、訓練データxR1の正解ラベルとを対応付けて、中間特徴量データベース145(145R)に保存する。
第2学習部150dは、訓練データxR2を、第1NN52aに入力することで、中間特徴量zR2を算出する。第2学習部150dは、訓練データxR2のデータ番号と、中間特徴量zR2と、訓練データxR2の正解ラベルとを対応付けて、中間特徴量データベース145(145R)に保存する。
続いて、第2学習部150dが実行する「学習する処理(2)」について説明する。第2学習部150dは、第2NN52bを実行し、パラメータテーブル143に保存されたパラメータθ2を第2NN52bのパラメータとして設定する。
第2学習部150dは、参照特徴量データベース144に保存された参照特徴量を、第2NN52bに入力し、パラメータθ2を用いて、出力ラベルを算出する。また、第2学習部150dは、中間特徴量データベース145(145Q)に保存された中間特徴量を、第2NN51bに入力し、パラメータθ2を用いて、出力ラベルを算出する。
第2学習部150dの処理を、図4を用いて説明する。第2学習部150dは、参照特徴量データベース144の参照特徴量zP1を第2NN52bに入力することで、出力ラベルyP1’を算出する。第2学習部150dは、参照特徴量データベース144の参照特徴量zP2を第2NN52bに入力することで、出力ラベルyP2’を算出する。
第2学習部150dは、中間特徴量データベース145(145Q)の中間特徴量zQ1を第2NN52bに入力することで、出力ラベルyQ1’を算出する。第2学習部150dは、中間特徴量データベース145(145Q)の中間特徴量zQ2を第2NN52bに入力することで、出力ラベルyQ2’を算出する。
第2学習部150dは、中間特徴量データベース145(145R)の中間特徴量zR1を第2NN52bに入力することで、出力ラベルyR1’を算出する。第2学習部150dは、中間特徴量データベース145(145R)の中間特徴量zR2を第2NN52bに入力することで、出力ラベルyR2’を算出する。
第2学習部150dは、出力ラベルyP1.1’と、参照特徴量zP1の正解ラベルyP1.1(図示略)との誤差を算出する。第2学習部150dは、出力ラベルyP2.1’と、参照特徴量zP2の正解ラベルyP2.1(図示略)との誤差を算出する。
第2学習部150dは、出力ラベルyQ1’と、中間特徴量zQ1の正解ラベルyQ1(図示略)との誤差を算出する。第2学習部150dは、出力ラベルyQ2’と、中間特徴量zQ2の正解ラベルyQ2(図示略)との誤差を算出する。
第2学習部150dは、出力ラベルyR1’と、中間特徴量zR1の正解ラベルyR1(図示略)との誤差を算出する。第2学習部150dは、出力ラベルyR2’と、中間特徴量zR2の正解ラベルyR2(図示略)との誤差を算出する。
第2学習部150dは、誤差逆伝播法を用いて、誤差が小さくなるように、第2NN52のパラメータθ2を学習する。
第2学習部150dは、学習データベース141(データベース140R)に保存された顧客Rの各訓練データに対して、上記処理を繰り返し実行することで、第2NN52bのパラメータθ2を学習する。第2学習部150dは、学習したパラメータθ2によって、パラメータテーブル143を更新する。また、第2学習部150dは、学習の過程おいて生成する各中間特徴量を、中間特徴量データベース145に保存する。
第1学習部150c、第2学習部150dは、上記処理を実行することで、深層学習モデル50、51,52のパラメータを逐次学習する。第1学習部150c、第2学習部150dは、深層学習モデル50、51,52のパラメータをそれぞれ区別して、パラメータテーブル143に保存してもよい。
次に、本実施例1に係る学習装置100の処理手順の一例について説明する。図12は、本実施例1に係る学習装置の処理手順を示すフローチャートである。図12では一例として、2回目の逐次学習を行う場合の処理について説明する。図12に示すように、学習装置100の拡張部150bは、学習データベース141から、初回のオリジナルの訓練データを取得する(ステップS101)。
拡張部150bは、オリジナルの訓練データに対してデータ拡張を実行し、複数の訓練データを生成する(ステップS102)。学習装置100の第1学習部150cは、第1NN50aに訓練データを入力して、中間特徴量を生成する(ステップS103)。
第1学習部150cは、第2NN50bに中間特徴量を入力して出力ラベルを算出する。第1学習部150cは、中間特徴量と参照特徴量との類似度を算出する(ステップS104)。
第1学習部150cは、出力ラベルと正解ラベルとの誤差が小さくなり、かつ、中間特徴量と参照特徴量との類似度が上がるように、パラメータθ1,θ2、参照特徴量を学習する(ステップS105)。第1学習部150cは、初回の学習が終了していない場合には(ステップS106,No)、ステップS101に移行する。一方、第1学習部150cは、初回の学習が終了した場合には(ステップS106,Yes)、ステップS107に移行する。
第1学習部150cは、初回の参照特徴量を参照特徴量データベース144に保存する(ステップS107)。第2学習部150dは、学習データベースから、2回目のオリジナルの訓練データを取得する(ステップS108)。
第2学習部150dは、第1NN51aに訓練データを入力して、中間特徴量を生成する(ステップS109)。第2学習部150dは、参照特徴量と、中間特徴量とを第2NN51bに入力し、出力ラベルを算出する(ステップS110)。
第2学習部150dは、出力ラベルと正解ラベルとの誤差が小さくなるように、パラメータθ1を学習する(ステップS111)。第2学習部150dは、2回目の学習が終了していない場合には(ステップS112,No)、ステップS108に移行する。一方、第2学習部150dは、2回目の学習が終了した場合には(ステップS112,Yes)、処理を終了する。
図12に示す処理では、2回目の学習を行う場合の処理について説明したが、3回目移動の学習についても、同様に実行することができる。たとえば、第2学習部150dは、ステップS108~S112に対応する処理を、学習毎に実行する。
次に、本実施例1に係る学習装置100の効果について説明する。学習装置100は、初回の学習時において、データ拡張した訓練データを第1NNに入力した際の中間特徴量がそれぞれ参照特徴量に近づくように、第1NNのパラメータθ1、参照特徴量の学習を行う。学習装置100は、2回目の逐次学習において、初回の学習時に学習した参照特徴量を流用すると共に、新規の訓練データを用いて、第2NNのパラメータθ2を学習する処理を行う。各参照特徴量は、オリジナルの訓練データをデータ拡張した複数の訓練データの中間特徴量を代表する特徴量と言える。データ拡張した各訓練データの有用な情報が、参照特徴量に残されている。したがって、かかる参照特徴量を用いて、第2NNの逐次学習を行うことで、データ量を減らしつつ、データ拡張した訓練データの特徴量を引き継いで利用し、深層学習モデルの学習精度を向上させることができる。
図13は、本実施例1に係る学習装置の効果を説明するための図である。実施例1で説明したように、学習装置100は、顧客Pの訓練データxP1をデータ拡張することで、訓練データxP1.1,xP1.2,xP1.3を生成する。学習装置100は、訓練データxP1.1,xP1.2,xP1.3を第1NN50aに入力して、中間特徴量zP1.1,zP1.2,zP1.3を算出する。学習装置100は、中間特徴量zP1.1,zP1.2,zP1.3を第1NN50aに入力して、出力ラベルyP1.1’,yP1.2’,yP1.3’を算出する。
ここで、学習装置100は、中間特徴量zP1.1,zP1.2,zP1.3が、訓練データxP1の参照特徴量zP1に近づくように、第1NN50aのパラメータ、参照特徴量zP1を学習し、学習した参照特徴量zP1を、参照特徴量データベース144に保存する。参照特徴量データベース144の参照特徴量zP1は、2回目以降の学習に利用される。
中間特徴量zP1.1,zP1.2,zP1.3は、参照特徴量zP1に近づくように学習されるため、中間特徴量zP1.1,zP1.2,zP1.3の違いは小さい。このため、中間特徴量zP1.1,zP1.2,zP1.3の代表として、参照特徴量zP1を、参照特徴量データベース144に保存することで、保存するデータ量を削減しても、データ拡張の効果を活かすことができる。
また、学習装置100は、1回目の学習で生成される第1NN50aのパラメータθ1を、2回目移行の学習にそのまま利用する。学習されたパラメータθ1を、第1NN51aに設定することで、第1NN51aは、データ正規化の機能を持つ。このため、ネットワーク規模が小さくなり、学習コストを下げることもできる。
実施例1で説明した学習装置100の処理は一例であり、学習装置100は、その他の処理を実行して、深層学習モデルのパラメータを学習してもよい。実施例2では、学習装置100が実行可能なその他の処理(1)、(2)について説明する。
学習装置100が実行するその他の処理(1)について説明する。学習装置100は、オリジナルの訓練データ毎に、参照特徴量を設定し、2乗誤差を評価の指標として、パラメータおよび参照特徴量を学習していたが、これに限定されるものでは無い。たとえば、学習装置100は、中間特徴量の平均μおよび分散σを参照特徴量とし、同一の訓練データからデータ拡張された複数の訓練データの中間特徴量の平均および分散が、参照特徴量に近づくように、パラメータおよび参照特徴量を学習してもよい。
図14および図15は、学習装置のその他の処理(1)の一例を説明するための図である。まず、図14について説明する。たとえば、学習装置100は、オリジナルの訓練データxP1に対応する参照特徴量(平均μP1、分散σP1)を設定する。特徴量生成部250cは、同一の訓練データxP1からデータ拡張した複数の訓練データxP1.1~xP1.3を順に第1NN50aに入力して、それぞれの中間特徴量zP1.1~zP1.3(図示略)を算出する。学習装置100は、それぞれの中間特徴量zP1.1~zP1.3の平均μP1.1、分散σP1.1を算出する。学習装置100は、KL(Kullback-Leibler)diviergenceを基にして、参照特徴量(平均μP1、分散σP1)の確率分布と、(平均μP1.1、分散σP1.1)の確率分布との距離を評価する。
学習装置100は、確率分布の距離が近くなるように、第1NN50aのパラメータおよび参照特徴量(平均μP1、分散σP1)を誤差逆伝播法によって学習する。また、学習装置100は、それぞれの中間特徴量zP1.1~zP1.3を、第2NN50bに入力した場合の出力ラベルyP1.1~yP1.3が、正解ラベルyP1に近づくように、第1NN50aのパラメータおよび第2NN50bのパラメータを誤差逆伝播法によって学習する。
すなわち、学習装置100は、出力ラベルと正解ラベルとの誤差を下げつつ、また、中間特徴量と参照特徴量との類似度が上がるように、第1NN50aおよび第2NN50bのパラメータθ1、θ2、参照特徴量(平均μP1、分散σP1)を学習する。学習装置100は、学習した参照特徴量(平均μP1、分散σP1)を、参照特徴量データベース144に保存する。学習装置100は、参照特徴量(平均μP1、分散σP1)を、参照特徴量データベース144に登録する場合には、正解ラベルyP1を対応付ける。学習装置100は、他のオリジナルの訓練データも同様にして、参照特徴量を学習し、参照特徴量データベース144に登録する。
図15の説明に移行する。学習装置100が2回目以降の学習を行う場合には、参照特徴量データベース144に保存された平均μP1、分散σP1の分布をサンプリングし、サンプリングした結果得られる中間特徴量を、第2NN51bに入力して、出力ラベルyP1.1’~yP1.3’を算出する。学習装置100は、出力ラベルyP1.1’~yP1.3’が、参照特徴量データベース144の正解ラベルyP1(図示略)に近づくように、第2NN51bのパラメータθ2を学習する。なお、データベース140Qに格納された訓練データxQ1を用いて、第2NN51bを学習する処理は、実施例1と同様である。
図14および図15で説明したように、参照特徴量を分布として学習することで、所望する数の中間特徴量をサンプリングして、2回目以降の学習時に利用することができる。
学習装置100が実行するその他の処理(2)について説明する。学習装置100は、初回のみオリジナルの訓練データをデータ拡張して深層学習モデルの学習を行っていたが、これに限定されるものではない。学習装置100は、2回目以降の学習においても、オリジナルの訓練データをデータ拡張して、学習を行ってもよい。
図16は、学習装置のその他の処理(2)を説明するための図である。図16に示すように、学習装置100は、データベース140Qに格納された顧客Qの訓練データxQ1をデータ拡張することで、訓練データxQ1.1,xQ1.2,xQ1.3を生成する。学習装置100は、訓練データxQ1.1,xQ1.2,xQ1.3を第1NN51aに入力することで、中間特徴量zQ1.1,zQ1.2,zQ1.3を算出する。
学習装置100は、中間特徴量zQ1.1,zQ1.2,zQ1.3を第2NN51bに入力することで、出力ラベルyQ1.1’,yQ1.2’,yQ1.3’を算出する。学習装置100は、出力ラベルyQ1.1’,yQ1.2’,yQ1.3’が、訓練データxQ1の正解ラベルyQ1(図示略)に近づくように、第2NN51bのパラメータθ2を学習する。また、学習装置100は、参照特徴量データベース144に保存された参照特徴量zP1を第2NN51bに入力して、出力ラベルyP1’を算出する。学習装置100は、出力ラベルyP1’が、正解ラベルyP1に近づくように、第2NN51bのパラメータθ2を学習する。
このように、学習装置100は、2回目以降の処理についても、データ拡張を実行することで、データ量を増加させることができる。
次に、本実施例に示した学習装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図17は、本実施例に係る学習装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図17に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置305とを有する。コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
ハードディスク装置307は、取得プログラム307a、拡張プログラム307b、第1学習プログラム307c、第2学習プログラム307dを有する。CPU301は、取得プログラム307a、拡張プログラム307b、第1学習プログラム307c、第2学習プログラム307dを読み出してRAM306に展開する。
取得プログラム307aは、取得プロセス306aとして機能する。拡張プログラム307bは、拡張プロセス306bとして機能する。第1学習プログラム307cは、第1学習プロセス306cとして機能する。第2学習プログラム307dは、第2学習プロセス306dとして機能する。
取得プロセス306aの処理は、取得部150aの処理に対応する。拡張プロセス306bの処理は、拡張部150bの処理に対応する。第1学習プロセス306cの処理は、第1学習部150cの処理に対応する。第2学習プロセス306dの処理は、第2学習部150dの処理に対応する。
なお、各プログラム307a~307dについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307dを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが実行する学習方法であって、
学習モデルに含まれる第1ネットワークおよび第2ネットワークを実行し、
第1元教師データをデータ拡張することで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の中間特徴量に関して、同一の第1元教師データからデータ拡張された、複数の拡張教師データから算出される各中間特徴量が参照特徴量に類似するように、前記学習モデルのパラメータを学習し、
前記第1元教師データとは異なる第2元教師データと、前記参照特徴量とを用いて、前記第2ネットワークのパラメータを学習する
処理を実行することを特徴とする学習方法。
(付記2)前記第2ネットワークのパラメータを学習する処理は、前記第2元教師データを拡張することで生成される複数の拡張教師データを前記第1ネットワークに入力して算出される複数の中間特徴量と、前記参照特徴量とを用いて、前記第2ネットワークのパラメータを更新する学習を行うことを特徴とする付記1に記載の学習方法。
(付記3)前記学習モデルのパラメータを学習する処理は、同一の第1元教師データからデータ拡張された、複数の拡張教師データから算出される各中間特徴量の平均および分散が、参照特徴量に類似するように、前記学習モデルのパラメータおよび前記参照特徴量を学習することを特徴とする付記1または2に記載の学習方法。
(付記4)前記第1元教師データに対応する正解ラベルと、前記参照特徴量とを対応付けて記憶装置に記憶する処理を更に実行し、前記第2ネットワークのパラメータを学習する処理は、前記参照特徴量を前記第2ネットワークに入力することで算出される出力ラベルが、前記正解ラベルに近づくように、前記第2ネットワークのパラメータを学習することを特徴とする付記1、2または3に記載の学習方法。
(付記5)コンピュータに、
学習モデルに含まれる第1ネットワークおよび第2ネットワークを実行し、
第1元教師データをデータ拡張することで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の中間特徴量に関して、同一の第1元教師データからデータ拡張された、複数の拡張教師データから算出される各中間特徴量が参照特徴量に類似するように、前記学習モデルのパラメータを学習し、
前記第1元教師データとは異なる第2元教師データと、前記参照特徴量とを用いて、前記第2ネットワークのパラメータを学習する
処理を実行させることを特徴とする学習プログラム。
(付記6)前記第2ネットワークのパラメータを学習する処理は、前記第2元教師データを拡張することで生成される複数の拡張教師データを前記第1ネットワークに入力して算出される複数の中間特徴量と、前記参照特徴量とを用いて、前記第2ネットワークのパラメータを更新する学習を行うことを特徴とする付記5に記載の学習プログラム。
(付記7)前記学習モデルのパラメータを学習する処理は、同一の第1元教師データからデータ拡張された、複数の拡張教師データから算出される各中間特徴量の平均および分散が、参照特徴量に類似するように、前記学習モデルのパラメータおよび前記参照特徴量を学習することを特徴とする付記5または6に記載の学習プログラム。
(付記8)前記第1元教師データに対応する正解ラベルと、前記参照特徴量とを対応付けて記憶装置に記憶する処理を更に実行し、前記第2ネットワークのパラメータを学習する処理は、前記参照特徴量を前記第2ネットワークに入力することで算出される出力ラベルが、前記正解ラベルに近づくように、前記第2ネットワークのパラメータを学習することを特徴とする付記5、6または7に記載の学習プログラム。
(付記9)学習モデルに含まれる第1ネットワークおよび第2ネットワークを実行し、
第1元教師データをデータ拡張することで生成される複数の拡張教師データを前記第1ネットワークに入力することで算出される複数の中間特徴量に関して、同一の第1元教師データからデータ拡張された、複数の拡張教師データから算出される各中間特徴量が参照特徴量に類似するように、前記学習モデルのパラメータを学習する第1学習部と、
前記第1元教師データとは異なる第2元教師データと、前記参照特徴量とを用いて、前記第2ネットワークのパラメータを学習する第2学習部と
を有することを特徴とする学習装置。
(付記10)前記第2学習部は、前記第2元教師データを拡張することで生成される複数の拡張教師データを前記第1ネットワークに入力して算出される複数の中間特徴量と、前記参照特徴量とを用いて、前記第2ネットワークのパラメータを更新する学習を行うことを特徴とする付記9に記載の学習装置。
(付記11)前記第1学習部は、同一の第1元教師データからデータ拡張された、複数の拡張教師データから算出される各中間特徴量の平均および分散が、参照特徴量に類似するように、前記学習モデルのパラメータおよび前記参照特徴量を学習することを特徴とする付記9または10に記載の学習装置。
(付記12)前記第1学習部は、前記第1元教師データに対応する正解ラベルと、前記参照特徴量とを対応付けて記憶装置に記憶する処理を更に実行し、前記第1学習部は、前記参照特徴量を前記第2ネットワークに入力することで算出される出力ラベルが、前記正解ラベルに近づくように、前記第2ネットワークのパラメータを学習することを特徴とする付記9、10または11に記載の学習装置。