【文献】
長場景子、進藤智則,東芝が送電線点検に新種のディープラーニング "知能"より"創作者"と呼ぶべき新AI「生成モデル」,日経Robotics,日本,日経BP社,2017年 3月10日,第21号,pp.3−9
【文献】
Eric Tzeng et al.,Adversarial Discriminative Domain Adaptation,arXiv [online],2017年 2月17日,[2019年4月5日検索],URL,https://arxiv.org/pdf/1702.05464v1
(58)【調査した分野】(Int.Cl.,DB名)
前記学習処理部は、更に、前記実データおよび前記疑似データに基づいて、前記入力データを、一以上のグループを含むグループ群のいずれかに分類する分類器を生成する、
請求項1から4のうちいずれか1項に記載の学習装置。
【発明を実施するための形態】
【0007】
以下、実施形態の学習装置、学習方法、およびプログラムを、図面を参照して説明する。実施形態における学習装置は、機械学習の学習データとして用意された実データと種類が同じであり、且つ類似するデータ(以下、疑似データと称する)を自動生成する。「実データと種類が同じ」とは、例えば、実データが画像データであれば、疑似データも画像データであることを表し、実データが音声データであれば、疑似データも音声データであることを表している。
【0008】
学習装置は、更に、疑似データと実データとの双方に対して、どういったデータであるのかという人間の知見を与え、これらのデータと、人間の知見として付与された情報との関係性を、ある分類器に学習させる。そして、学習装置は、学習済みの分類器を利用して、人間の知見が与えられていない未知のデータを、所定のグループ(又はクラスタやクラスなど)に分類し、その分類結果を示す情報をユーザに提供する。以下の実施形態では、一例として、実データが画像データであるものとして説明する。
【0009】
(第1実施形態)
図1は、第1実施形態における学習装置100を含む学習システム1の全体構成の一例を示す図である。学習システム1は、例えば、遠隔操縦または自律式で飛行する一以上のドローン(無人航空機)10と、端末装置20と、学習装置100とを備える。これらの装置は、通信ネットワークNWを介して通信する。通信ネットワークNWは、例えば、無線基地局、Wi‐Fiアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。
【0010】
ドローン10は、例えば、送電線の周囲を飛行し、カメラ(不図示)によって送電線を撮像する。そして、ドローン10は、カメラにより撮像された画像のデータを、通信ネットワークNWを介して学習装置100に送信する。以下、カメラにより撮像された画像のデータを、実画像データIMG
Rと称して説明する。
【0011】
端末装置20は、例えば、送電線などの保守や点検を行う作業者によって操作される装置である。例えば、端末装置20は、タブレット端末やスマートフォンなどの携帯電話である。端末装置20は、例えば、作業者から所定の操作を受け付けると、ドローン10の飛行を制御したり、ドローン10のカメラに撮像を開始させたり、ドローン10に実画像データIMG
Rを送信させたりする。端末装置20は、ドローン10から実画像データIMG
Rを受信すると、これを学習装置100に送信する。
【0012】
学習装置100は、端末装置20により送信された実画像データIMG
Rを学習データとして分類器300に学習させる。この学習の詳細については後述する。
【0013】
図2は、第1実施形態における学習装置100の構成の一例を示す図である。第1実施形態の学習装置100は、例えば、通信部102と、受付部104と、表示部106と、制御部110と、記憶部130とを備える。
【0014】
通信部102は、例えば、NIC(Network Interface Card)等の通信インターフェースなどを含む。通信部102は、通信ネットワークNWを介してドローン10と通信し、そのドローン10から実画像データIMG
Rを受信する。
【0015】
受付部104は、ユーザからの操作入力を受け付けるタッチパネルやキーボード、マウスなどの入力インターフェースである。表示部106は、液晶表示装置などの表示装置である。
【0016】
制御部110は、例えば、取得部112と、表示制御部114と、学習処理部116とを備える。これらの構成要素は、例えば、CPU(Central Processing Unit)などのプロセッサが記憶部130に格納されたプログラムを実行することにより実現される。また、制御部110の構成要素の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはGPU(Graphics Processing Unit)などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0017】
記憶部130は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などにより実現される。記憶部130は、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、GAN(Generative Adversarial Network)構成情報D1などを記憶する。GAN構成情報D1は、敵対的生成ネットワーク(GAN)を構成する生成器や識別器などの各種モデルの種類、構成、および学習されたパラメータを含む情報である。
【0018】
取得部112は、通信部102により実画像データIMG
Rが受信された場合、通信部102から実画像データIMG
Rを取得し、これを記憶部130に記憶させる。
【0019】
表示制御部114は、取得部112により取得された実画像データIMG
Rを画像として表示部106に表示させる。また、表示制御部114は、後述する学習処理部116により画像データIMG
Rと類似した生成画像データIMG
Iが生成されると、表示部106に、このデータを画像として表示させる。
【0020】
学習処理部116は、記憶部130に予め記憶されたGAN構成情報D1を参照して、拡張的な敵対的生成ネットワークであるネットワーク200を生成(構築)し、このネットワーク200を利用して、学習データとして扱う生成画像データIMG
Iを自動生成する。そして、学習処理部116は、取得部112により取得された実画像データIMG
Rと、自動生成した生成画像データIMG
Iとを基に、ある入力されたデータを、一以上のグループを含むグループ群のいずれかのグループに分類する分類器300を生成する。分類器300は、例えば、ニューラルネットワークNNや、SVM(Support Vector Machine)などによって実現されてよい。以下、説明を簡略化するため、分類器300は、入力されたデータを、第1グループである正例と、第2グループである負例とのいずれかに分類する二項分類器であるものとして説明する。例えば、正例のグループは、送電線に異常がないグループとして扱われ、負例のグループは、送電線に異常があるグループとして扱われてよい。
【0021】
図3は、ネットワーク200の構成の一例を示す図である。本実施形態のネットワーク200は、例えば、生成器210と、第1識別器220と、特徴抽出器230と、第2識別器240とによって構成される。生成器210は、「生成部」の一例であり、第1識別器220は、「第1識別部」の一例であり、特徴抽出器230は、「抽出部」の一例であり、第2識別器240は、「第2識別部」の一例である。
【0022】
生成器210は、ある種の乱数が入力されると生成画像データIMG
Iを出力する。乱数は、例えば、潜在変数と呼ばれる一様乱数である。生成器210により生成された生成画像データIMG
Iと、取得部112により取得された実画像データIMG
Rとは、第1識別器220および特徴抽出器230の其々に入力される。
【0023】
第1識別器220は、ある画像データが入力されると、その画像データが生成器210により生成された生成画像データIMG
Iであるのか、または取得部112により取得された実画像データIMG
Rであるのかを識別する。より具体的には、第1識別器220は、入力された画像データが、実画像データIMG
Rであることの尤度(以下、第1尤度)を導出し、この第1尤度に応じて画像データが、実画像データIMG
Rであるのか、または生成画像データIMG
Iであるのかを識別する。第1尤度は、「第1スコア」の一例である。
【0024】
特徴抽出器230は、ある画像データが入力されると、その画像データから特徴を抽出する。特徴抽出器230により抽出された特徴は、第2識別器240に入力される。
【0025】
第2識別器240は、特徴抽出器230により抽出された特徴が、実画像データIMG
Rから抽出された特徴であるのか、または生成画像データIMG
Iから抽出された特徴であるのかを識別する。より具体的には、第2識別器240は、入力された画像データの特徴が、実画像データIMG
Rの特徴であることの尤度(以下、第2尤度)を導出し、この第2尤度に応じて画像データの特徴が、実画像データIMG
Rの特徴であるのか、または生成画像データIMG
Iの特徴であるのかを識別する。第2尤度は、「第2スコア」の一例である。
【0026】
ネットワーク200を構成する各モデル(器)は、例えば、ニューラルネットワークNNによって実現されてよい。各モデルを実現するニューラルネットワークNNは、例えば、入力層と、一以上の中間層(隠れ層)と、出力層とにより構成される。入力層には、ニューラルネットワークNNに学習させたいデータが入力される。出力層からは、ニューラルネットワークNNによって学習された結果が出力される。隠れ層は、学習の核となる処理を行う。例えば、隠れ層は、活性化関数(伝達関数)と呼ばれる関数により表現され、入力に応じた出力を返す。例えば、活性化関数は、正規化線形関数(ReLU関数)やシグモイド関数、ステップ関数などであるがこれに限られず、任意の関数が用いられてよい。
【0027】
例えば、生成器210のニューラルネットワークNN(以下、第1ニューラルネットワークNNと称する)を構成する入力層のユニットの数は、一様乱数として取り得る数値の数と同じ値に設定される。例えば、ある下限値からある上限値までの数値範囲における、100個の互いに異なる数値が一様乱数として第1ニューラルネットワークNNの入力層に入力される場合、すなわち、100次元の数値が入力層に入力される場合、入力層のユニット数は100に設定される。第1ニューラルネットワークNNの入力層には、一様乱数(潜在変数)が入力され、中間層において一様乱数が画像の特徴に変換され、更に、画像の特徴から画像データに変換される。そして、中間層において変換された画像データが、出力層から生成画像データIMG
Iとして出力される。
【0028】
例えば、第1識別器220のニューラルネットワークNN(以下、第2ニューラルネットワークNNと称する)の入力層のユニット数は、第1ニューラルネットワークNNの出力層のユニット数と同じ値に設定される。第2ニューラルネットワークNNの入力層には、画像データが入力され、中間層において画像データが第1尤度に変換される。そして、出力層の一方のユニットから、入力された画像データの、実画像データIMG
Rに対する第1尤度が出力され、他方のユニットから、入力された画像データの、生成画像データIMG
Iに対する第1尤度が出力される。
【0029】
例えば、特徴抽出器230のニューラルネットワークNN(以下、第3ニューラルネットワークNNと称する)の入力層のユニット数は、第1ニューラルネットワークNNの出力層のユニット数と同じ値に設定される。また、第3ニューラルネットワークNNの出力層のユニット数は、第1ニューラルネットワークNNを構成する一以上の中間層のうち、いずれか1つの中間層(好ましくは入力層と出力層との中間に配置された中間層)のユニット数と同じ値に設定される。第3ニューラルネットワークNNの入力層には、画像データが入力され、その画像データが画像の特徴に変換される。そして、出力層の各ユニットから、画像の特徴が出力される。第3ニューラルネットワークNNの出力層のユニット数は、第1ニューラルネットワークNNのいずれかの中間層のユニット数と同じ値に設定されていることから、特徴抽出器230は、生成器210が一様乱数から画像データを生成する際の過程で得られる画像の特徴を抽出することになる。以下、この画像の特徴のことを、中間層ベクトルと称して説明する。
【0030】
例えば、第2識別器240のニューラルネットワークNN(以下、第4ニューラルネットワークNNと称する)の入力層のユニット数は、第3ニューラルネットワークNNの出力層のユニット数と同じ値に設定される。第4ニューラルネットワークNNの入力層には、中間層ベクトル(画像の特徴)が入力され、この中間層ベクトルが第2尤度に変換される。そして、出力層の一方のユニットから、入力された中間層ベクトルの、実画像データIMG
Rの特徴に対する第2尤度が出力され、他方のユニットから、入力された中間層ベクトルの、生成画像データIMG
Iの特徴に対する第2尤度が出力される。
【0031】
学習処理部116は、ある一定以上の識別精度を有する第1識別器220によって、生成画像データIMG
Iと実画像データIMG
Rとが区別されず、且つある一定以上の識別精度を有する第2識別器240によって、生成画像データIMG
Iから抽出された特徴と実画像データIMG
Rから抽出された特徴とが区別されないように、生成器210を学習する。「生成器210を学習する」とは、例えば、生成器210のニューラルネットワークNNを構成する中間層のパラメータを決定することである。パラメータは、例えば、入力層側から出力層側にデータが伝搬されるときに、そのデータに対して、乗算される重み成分と、加算されるバイアス成分とを含む。中間層のある層から他の層へとデータが伝搬される度に、データには重み成分およびバイアス成分が付与され、伝搬先の中間層の活性化関数と乗算される。
【0032】
なお、ネットワーク200の学習対象とするモデル(パラメータを決定するモデル)は、生成器210であるものとしたがこれに限られず、第1識別器220、特徴抽出器230、および第2識別器240の一部または全部が学習対象のモデルであってもよい。
【0033】
以下、複数のフローチャートを用いて、生成画像データIMG
Iを生成する際の学習処理部116の処理内容を説明する。
【0034】
図4は、学習処理部116による処理の一例を示すフローチャートである。本フローチャートの処理は、例えば、生成器210を学習する前に事前に行う処理内容を表している。
【0035】
まず、学習処理部116は、取得部112により実画像データIMG
Rが取得されるまで待機し(ステップS100)、取得部112により実画像データIMG
Rが取得されると、第2ニューラルネットワークNNの入力層に、実画像データIMG
Rを入力する(ステップS102)。
【0036】
次に、学習処理部116は、第2ニューラルネットワークNNの出力層から出力された実画像データIMG
Rの分布を記憶部130に記憶させる(ステップS104)。ここでの「分布」とは、ある実空間上における画像データの分布を意味する。
【0037】
次に、学習処理部116は、第3ニューラルネットワークNNの入力層に、実画像データIMG
Rを入力して、第1ニューラルネットワークNNの中間層から出力される中間層ベクトルと同じ種類の中間層ベクトルを実画像データIMG
Rから抽出する(ステップS106)。
【0038】
次に、学習処理部116は、第3ニューラルネットワークNNを利用して実画像データIMG
Rから抽出した中間層ベクトルを、第4ニューラルネットワークNNの入力層に入力する(ステップS108)。
【0039】
次に、学習処理部116は、第4ニューラルネットワークNNの出力層から出力された中間層ベクトルの分布を記憶部130に記憶させる(ステップS110)。ここでの「分布」は、ある特徴空間上における中間層ベクトルの分布を意味する。これによって、本フローチャートの処理が終了する。
【0040】
図5は、学習処理部116による処理の他の例を示すフローチャートである。本フローチャートの処理は、例えば、生成器210に生成画像データIMG
Iを生成させ、その生成画像データIMG
Iに対する各識別器の識別結果を基に、生成器210を学習する処理内容を表している。
【0041】
まず、学習処理部116は、第1ニューラルネットワークNNの入力層に一様乱数を入力し、第1ニューラルネットワークNNの出力層から生成画像データIMG
Iを取得する(ステップS200)。
【0042】
次に、学習処理部116は、第1ニューラルネットワークNNを利用して取得した生成画像データIMG
Iを、第2ニューラルネットワークNNの入力層に入力する(ステップS202)。
【0043】
次に、学習処理部116は、記憶部130に記憶させておいた実画像データIMG
Rの分布と、第2ニューラルネットワークNNの出力層から得られた生成画像データIMG
Iの分布との差分(例えば分散の差や偏差など)を導出する(ステップS204)。
【0044】
次に、学習処理部116は、導出した差分が許容範囲内であるか否かを判定し(ステップS206)、差分が許容範囲外であれば、生成画像データIMG
Iは実画像データIMG
Rでないと判定し(ステップS208)、差分が許容範囲内であれば、生成画像データIMG
Iは実画像データIMG
Rであると判定する(ステップS210)。
【0045】
次に、学習処理部116は、第3ニューラルネットワークNNの入力層に生成画像データIMG
Iを入力し、第3ニューラルネットワークNNの出力層から中間層ベクトルを取得する(ステップS212)。
【0046】
次に、学習処理部116は、第3ニューラルネットワークNNを利用して取得した中間層ベクトルを、第4ニューラルネットワークNNの入力層に入力する(ステップS214)。
【0047】
次に、学習処理部116は、記憶部130に記憶させておいた実画像データIMG
Rの中間層ベクトルの分布と、第4ニューラルネットワークNNの出力層から得られた生成画像データIMG
Iの中間層ベクトルの分布との差分を導出する(ステップS216)。
【0048】
次に、学習処理部116は、導出した差分が許容範囲内であるか否かを判定し(ステップS218)、差分が許容範囲外であれば、生成画像データIMG
Iから抽出された中間層ベクトルは実画像データIMG
Rから抽出された中間層ベクトルでないと判定し(ステップS220)、差分が許容範囲内であれば、生成画像データIMG
Iから抽出された中間層ベクトルは実画像データIMG
Rから抽出された中間層ベクトルであると判定する(ステップS222)。
【0049】
次に、学習処理部116は、導出した双方の差分が許容範囲内であるか否かを判定し(ステップS224)、双方の差分が許容範囲外である場合、第1ニューラルネットワークNNによって出力された生成画像データIMG
Iを、第2ニューラルネットワークNNに入力したときに導出される第1尤度と、第3ニューラルネットワークNNにより抽出された生成画像データIMG
Iの中間層ベクトルを、第4ニューラルネットワークNNに入力したときに導出される第2尤度との重み付き和を導出する(ステップS226)。
【0050】
次に、学習処理部116は、導出した重み付き和に基づいて、第1ニューラルネットワークNNのパラメータを、誤差逆伝播法を用いて再決定する(ステップS228)。そして、学習処理部116は、処理を上述したS200に戻す。
【0051】
一方、学習処理部116は、双方の差分が許容範囲内である場合、本フローチャートの処理を終了する。
【0052】
一般的な敵対的生成ネットワークは、本実施形態における生成器210および第1識別器220により構成される。この場合、第1識別器220は、生成画像データIMG
Iと、実画像データIMG
Rとを見分けるように学習し、生成器210は、第1識別器220に、生成した生成画像データIMG
Iが、実画像データIMG
Rであると識別されるように学習する。これは、実画像データIMG
Rの分布と、生成画像データIMG
Iの分布とを、特定の距離尺度で最小化することに相当する。しかしながら、生成器210が、第1識別器220を騙すように学習するだけでは、特徴空間上において、両者の分布に大きな差異が生じる場合がある。例えば、人間の目で見た場合には、生成画像データIMG
Iと、実画像データIMG
Rとが同じ画像データであると判断されても、これらの画像の特徴同士を特徴空間上で比較した場合、両者は互いに異なる特徴である場合がある。
【0053】
これに対して、拡張的な敵対的生成ネットワークであるネットワーク200を利用した学習処理部116は、上述したフローチャートの処理のように、生成画像データIMG
Iの分布を実空間上で実画像データIMG
Rの分布に近づけるのと同時に、更に、生成画像データIMG
Iの中間層ベクトルの分布を、特徴空間上で実画像データIMG
Rの中間層ベクトルの分布から離れすぎないように制約を設けた上で生成器210を学習するため、人間の眼だけでなく、ネットワーク200にとっても生成画像データIMG
Iと実画像データIMG
Rとを識別し難くさせることができる。この結果、実画像データIMG
Rに対して、より類似した生成画像データIMG
Iを生成することができる。言い換えれば、第1ニューラルネットワークNNの出力層から出力される生成画像データIMG
Iを実画像データIMG
Rに近づけるのみならず、更に第1ニューラルネットワークNNの中間層から出力される生成画像データIMG
Iの特徴を実画像データIMG
Rの特徴に近づけるため、最終的に得られる生成画像データIMG
Iをより実画像データIMG
Rに似せることができる。
【0054】
学習処理部116は、実空間および特徴空間の双方において、生成画像データIMG
Iが、実画像データIMG
Rであると識別された場合、すなわち、学習の結果、各識別器を十分に騙せる程度の精度で生成画像データIMG
Iを生成できた場合、学習済みの生成器210を用いて、複数の生成画像データIMG
Iを生成する。そして、学習処理部116は、生成した複数の生成画像データIMG
Iと、取得部112により取得された実画像データIMG
Rとを基に、分類器300を学習する。
【0055】
図6は、制御部110による分類器300の学習処理の一例を示すフローチャートである。まず、学習処理部116は、第1ニューラルネットワークNNの入力層の各ユニットに乱数を入力し、複数の生成画像データIMG
Iを生成する(ステップS300)。
【0056】
次に、表示制御部114は、生成された複数の生成画像データIMG
Iを画像として、表示部106に表示させる(ステップS302)。
【0057】
次に、学習処理部116は、表示部106に画像として表示された複数の生成画像データIMG
Iに対して、正例または負例のいずれかを示す情報(以下、ラベル情報と称する)を付与するユーザ操作が受付部104によって受け付けられるまで待機し(ステップS304)、各生成画像データIMG
Iに対してラベル情報を付与するユーザ操作が受け付けられると、生成した複数の生成画像データIMG
Iと、取得部112により取得された実画像データIMG
Rとを基に、入力されたデータを、正例または負例に分類する識別境界を決定する(ステップS306)。ラベル情報は、分類器300に入力されるデータが分類されるべき正解を示すデータである。
【0058】
図7は、識別境界の決定方法を模式的に示す図である。図中(a)は、未だ生成画像データIMG
Iが生成されておらず、実画像データIMG
Rのみが、ある実空間上に分布している。実画像データIMG
Rには、予めラベル情報が付与されているものとする。このような場合、実画像データIMG
Rの数が少ないと、正例と負例とを適切に識別する識別境界を決定することが困難となる。そのため、学習処理部116は、図中(b)のように、実画像データIMG
Rが分布する空間を満たすような内挿的な生成画像データIMG
Iを複数生成する。次に、学習処理部116は、図中(c)のように、生成した複数の生成画像データIMG
Iに対して、ユーザに、正例または負例のラベル情報を付与させる。そして、学習処理部116は、図中(d)のように、既にラベル情報が付与されている実画像データIMG
Rと、ユーザにラベル情報を付与させた生成画像データIMG
Iとを基に、識別境界を決定する。このように実画像データIMG
Rに良く似た生成画像データIMG
Iを大量に生成することによって、実画像データIMG
Rが分布する空間の中で、識別境界がより明確となり、分類器300に新たなデータが入力された場合に、そのデータが、正例であるのか、または負例であるのかを精度良く決めることができる。
【0059】
図8は、学習済みの分類器300による分類処理の一例を示すフローチャートである。
まず、学習処理部116は、取得部112によって実画像データIMG
Rが取得されると、この実画像データIMG
Rが未学習の実画像データIMG
Rであるか否かを判定する(ステップS400)。「未学習」とは、例えば、人間の知見として、分類結果の正解がラベル情報として付与されておらずに、分類器300の識別境界を決定する際にデータが使用されなかったことをいう。
【0060】
次に、学習処理部116は、未学習の実画像データIMG
Rを、学習済みの分類器300に入力する(ステップS402)。次に、学習処理部116は、識別境界に基づいて、未学習の実画像データIMG
Rを、正例または負例に分類する(ステップS404)。
【0061】
次に、表示制御部114は、表示部106に、未学習の実画像データIMG
Rの分類結果を画像として表示させる(ステップS406)。なお、制御部110は、通信部102を用いて、未学習の実画像データIMG
Rの分類結果を、サーバ装置やユーザが保有する端末装置などに送信してもよい。これによって、本フローチャートの処理が終了する。
【0062】
図9は、第1実施形態における学習手法の検証結果の一例を示す図である。図中の「追加学習なし」は、生成画像データIMG
Iを学習データに含めずに、実画像データIMG
Rのみを学習データとして、分類器300を学習したときの各種評価指標値を表している。また、「追加学習あり」は、生成画像データIMG
Iと実画像データIMG
Rとの双方を学習データとして、分類器300を学習したときの各種評価指標値を表している。
【0063】
検証には、評価指標として、認識誤りの少なさを表す適合率Pと、認識漏れの少なさを表す再現率Rと、適合率Pと再現率Rとの調和平均であるF値(=2PR/(P+R))とが用いられている。F値が大きいほど、分類器300の認識精度が高いことを表している。
図9に示すように、適合率P、再現率R、およびF値の全てにおいて、追加学習なしに比べて追加学習ありの方が大きくなっており、認識精度が向上している結果となった。
【0064】
以上説明した第1実施形態によれば、実データとして実画像データIMG
Rを取得する取得部112と、第1ニューラルネットワークNNを利用して、実画像データIMG
Rとデータの種類が同じ疑似データである生成画像データIMG
iを生成する生成器210と、実画像データIMG
Rまたは生成画像データIMG
iである入力データが、取得部112により取得された実画像データIMG
Rであるのか、または生成器210により生成された生成画像データIMG
iであるのかを識別する第1識別器220と、実画像データIMG
Rまたは生成画像データIMG
iである入力データから、データの特徴を抽出する特徴抽出器230と、特徴抽出器230により抽出された特徴が、取得部112により取得された実画像データIMG
Rの特徴であるのか、または生成器210により生成された生成画像データIMG
iの特徴であるのかを識別する第2識別器240と、第1識別器220および第2識別器240の識別結果に基づいて、第1識別器220および第2識別器240の其々によって、生成画像データIMG
iと実画像データIMG
Rとが区別されないように、第1ニューラルネットワークNNを学習する学習処理部116と、を備えることによって、複数の生成画像データIMG
iを、機械学習に必要な学習データとして自動的に生成し、学習精度を向上させることができる。
【0065】
(第1実施形態の変形例)
以下、第1実施形態の変形例について説明する。上述した第1実施形態では、学習データとする実データが画像データであり、この実データと種類が同じであり、且つ類似する複数の画像データを、ネットワーク200を利用して自動生成するものとして説明したがこれに限られない。例えば、実データは、マイクロフォンを介して録音された音声データや、スキャナなどで読み取られた文章のテキストデータなどであってもよい。この場合、学習処理部116は、ネットワーク200の生成器210に、人工的な音声データやテキストデータを生成させる。そして、学習処理部116は、実空間上において各データの分布を近づけると共に、特徴空間上において各データから抽出された特徴が互いに離れすぎないように制約を設けた上で生成器210を学習する。これによって、実データが音声データやテキストデータであっても、各データに類似した疑似データを自動生成することができる。
【0066】
(第2実施形態)
以下、第2実施形態における学習装置100について説明する。第2実施形態における学習装置100では、識別境界の精度を向上させるために、ネットワーク200を利用して、識別境界付近に分布するデータを自動生成する点で第1実施形態と相違する。従って、係る相違点を中心に説明し、共通する部分についての説明は省略する。
【0067】
図10は、第2実施形態における学習装置100の処理の一例を示すフローチャートである。まず、学習処理部116は、ネットワーク200の生成器210に、n個(nは任意の自然数)の生成画像データIMG
Iを生成させ、これらを学習済みの分類器300に入力する(ステップS500)。ここでの生成器210は、十分に学習されているものとする。
【0068】
次に、学習処理部116は、学習済みの分類器300に、既に決定された識別境界に基づいて、入力された各生成画像データIMG
Iを、正例または負例に分類させる(ステップS502)。
【0069】
次に、学習処理部116は、正例または負例に分類された複数の生成画像データIMG
Iの中から、識別境界に最も近い位置に分布した生成画像データIMG
Iを抽出する(ステップS504)。例えば、学習済みの分類器300に生成画像データIMG
Iを入力すると、既に識別境界が求められている空間内に、入力された各生成画像データIMG
Iが、特徴量を示すベクトルとして分布する。学習処理部116は、各生成画像データIMG
Iに対応したベクトルと識別境界との距離を導出し、空間内に分布した複数のベクトルの中から、識別境界との距離が最も短いベクトルを抽出する。この抽出したベクトルに対応した画像データが、識別境界に最も近い位置に分布した生成画像データIMG
Iとなる。
【0070】
次に、学習処理部116は、抽出した生成画像データIMG
Iが生成される際に使用された乱数を基に新たな乱数を生成する(ステップS506)。例えば、ある上下限が決められた数値範囲において、1、2、3、…、といったような値を乱数として複数の生成画像データIMG
Iが生成された場合に、「5」という乱数を用いて生成された生成画像データIMG
Iが識別境界に最も近い位置に分布したとする。この場合、学習処理部116は、新たな乱数を、「5」という値を基準に、「5.1」や「4.9」のような、より次元の細かい値とする。
【0071】
次に、学習処理部116は、新たに生成した乱数を、生成器210である第1ニューラルネットワークNNの入力層に入力し、新たな生成画像データIMG
Iを生成する(ステップS508)。
【0072】
次に、学習処理部116は、乱数を変更し、新たな生成画像データIMG
Iを生成する処理を所定回数繰り返したか否かを判定する(ステップS510)。
【0073】
乱数を変更し、新たな生成画像データIMG
Iを生成する処理を所定回数繰り返したと判定した場合、学習処理部116は、後述するS518の処理に進む。
【0074】
一方、乱数を変更し、新たな生成画像データIMG
Iを生成する処理を所定回数繰り返していないと判定した場合、学習処理部116は、新たに生成した生成画像データIMG
Iを分類器300に入力する(ステップS512)。
【0075】
次に、学習処理部116は、分類器300に、識別境界に基づいて、入力された生成画像データIMG
Iを、正例または負例に分類させる(ステップS514)。
【0076】
次に、学習処理部116は、分類器300の分類結果に基づいて、乱数を再生成し(ステップS516)、上述したS508に処理を戻す。
【0077】
例えば、学習処理部116は、S504の処理で抽出した生成画像データIMG
Iの生成時に使用された乱数(例えば5.0)を基準に、この基準よりも大きい乱数(例えば5.1)を生成した結果、新たに生成した生成画像データIMG
Iが識別境界から遠ざかった場合、次に生成する乱数を基準の乱数よりも小さくする(例えば4.9にする)。また、学習処理部116は、基準よりも大きい乱数(例えば5.1)を生成した結果、新たに生成した生成画像データIMG
Iが識別境界に近づいた場合、次に生成する乱数を更に大きくする(例えば5.2にする)。
【0078】
基準となる乱数よりも小さい乱数を生成したときも同様に、学習処理部116は、新たに生成した生成画像データIMG
Iが識別境界から遠ざかった場合、次に生成する乱数を大きくし、新たに生成した生成画像データIMG
Iが識別境界に近づいた場合、次に生成する乱数を更に小さくする。
【0079】
このように、学習処理部116は、乱数を変更しながら、識別境界付近に分布することが想定される生成画像データIMG
Iを繰り返し探索する。
【0080】
次に、表示制御部114は、識別境界付近で探索された所定数の生成画像データIMG
Iを、識別境界からの距離に応じた順番に並び替え、これらを表示部106に画像として表示させる(ステップS518)。
【0081】
図11は、識別境界からの距離に応じた順番に並び替えて表示された生成画像データIMG
Iの一例を示す図である。各生成画像データIMG
Iは、行列(i,j)で表示されている。例えば、(1,1)の生成画像データIMG
Iは、実空間の正例側において、識別境界から最も遠い位置に分布していることを表し、以下、(1,2)、(1,3)、(1,4)、…、(1,10)、(2,1)、(2,2)、…、(2,10)、(3,1)、(3,2)、…、の順で生成画像データIMG
Iが識別境界に近づいている。また、(10,10)の生成画像データIMG
Iは、実空間の負例側において、識別境界から最も遠い位置に分布していることを表し、以下、(10,9)、(10,8)、(10,7)、…、(10,1)、(9,10)、(9,9)、…、(9,1)、(8,10)、(8,9)、…、の順で生成画像データIMG
Iが識別境界に近づいている。
【0082】
次に、学習処理部116は、表示部106に、所定数の生成画像データIMG
Iが並び替えて表示された後、所定数の生成画像データIMG
Iの中から、正例または負例とする生成画像データIMG
Iを範囲指定によって選択する操作が、受付部104によって受け付けられたか否かを判定し(ステップS520)、この操作が受付部104によって受け付けられた場合、範囲指定によって選択された全ての生成画像データIMG
Iに対して、正例および負例の一方のグループのラベル情報を付与する(ステップS522)。
【0083】
図12は、生成画像データIMG
Iの範囲指定選択の様子を模式的に示す図である。例えば、所定数の生成画像データIMG
Iが識別境界からの距離に応じた順番に並び替えて表示された場合、ユーザは、ある画像データからある画像データまでを正例とし、ある画像データからある画像データまでを負例とする、といったように範囲指定によって複数の画像データに対して一括でラベル情報を付与する。図示の例では、範囲Rに含まれる(1,1)〜(2,8)の生成画像データIMG
Iに対して、正例のラベル情報が付与されている。
【0084】
次に、学習処理部116は、範囲指定された生成画像データIMG
Iに対して一括して同じラベル情報を付与した後、これらの生成画像データIMG
Iを学習データとして、分類器300の識別境界を再決定する(ステップS524)。これによって、本フローチャートの処理が終了する。
【0085】
図13は、識別境界を再決定する様子を模式的に示す図である。図中(a)は、ラベル情報が付与された実画像データのみで識別境界Bが決定されている。このような場合、学習処理部116は、上述したように、n個の生成画像データIMG
Iを生成し、この中から識別境界Bに最も近い生成画像データIMG
Iを抽出する。図示の例では、識別境界Bに最も近い生成画像データIMG
Iとして、二つの生成画像データIMG
Iが抽出されている。
【0086】
学習処理部116は、識別境界Bに最も近い生成画像データIMG
Iを抽出すると、
この(これらの)生成画像データIMG
Iに使用された乱数を基に新たな乱数を生成し、この乱数を第1ニューラルネットワークNNの入力層に入力して、新たな生成画像データIMG
Iを生成する。この処理を所定回数繰り返すことで、図中(b)に示すように、識別境界Bと交差するように、識別境界Bまでの距離が互いに異なる所定数の生成画像データIMG
Iが生成される。(a)の例では、識別境界Bに最も近い生成画像データIMG
Iとして、二つの生成画像データIMG
Iが抽出されているため、(b)の例では、抽出された二つの生成画像データIMG
Iの其々を起点とした2箇所において、生成画像データIMG
Iの探索が行われている。
【0087】
図中(c)に示すように、識別境界Bまでの距離が互いに異なる所定数の生成画像データIMG
Iの中から、ユーザが範囲指定によって生成画像データIMG
Iを選択した場合、学習処理部116は、範囲指定された生成画像データIMG
Iの其々に対してラベル情報を付与し、これを学習データとして分類器300の識別境界Bを再決定する。図中B#は、再決定された識別境界を表している。このような処理によって、識別境界の精度を向上させることができる。
【0088】
以上説明した第2実施形態によれば、識別境界付近に分布する複数の生成画像データIMG
Iを生成し、ユーザに、これらの生成画像データIMG
Iに対して正解データであるラベル情報を付与させ、ラベル情報が付与された生成画像データIMG
Iを基に分類器300を再学習するため、識別境界の精度を向上させることができる。この結果、学習精度を更に向上させることができる。
【0089】
また、第2実施形態によれば、識別境界付近に分布する複数の生成画像データIMG
Iを、識別境界との距離に応じた順番に並び替えて表示するため、ユーザが、並べられて表示された複数の生成画像データIMG
Iから、正例または負例とするデータを範囲選択によって容易に選択することができる。一般的に、値の近い乱数を使用して複数の生成画像データIMG
Iを生成した場合、これらの生成画像データIMG
I同士は、実空間において近い位置に分布する。そのため、これらの生成画像データIMG
Iを識別境界との距離に応じた順番に並び替えた場合、正例の画像データは、正例の画像データ同士で集合し、負例の画像データは、負例の画像データ同士で集合することになり、正例の画像データの中に一つだけ負例の画像データが存在するようなことがなくなる。この結果、例えば、ユーザが、正例とするデータを一括選択した場合であっても、誤ったデータの選択を防止しつつ、正しいデータの選択漏れを減少させるため、識別境界の導出の精度を向上させることができる。
【0090】
(ハードウェア構成)
上述した実施形態の学習システム1に含まれる複数の装置のうち、少なくとも学習装置100は、例えば、
図14に示すようなハードウェア構成により実現される。
図14は、実施形態の学習装置100のハードウェア構成の一例を示す図である。
【0091】
学習装置100は、NIC100−1、CPU100−2、RAM100−3、ROM100−4、フラッシュメモリやHDDなどの二次記憶装置100−5、およびドライブ装置100−6が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置100−6には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置100−5、またはドライブ装置100−6に装着された可搬型記憶媒体に格納されたプログラムがDMAコントローラ(不図示)などによってRAM100−3に展開され、CPU100−2によって実行されることで、制御部110が実現される。制御部110が参照するプログラムは、通信ネットワークNWを介して他の装置からダウンロードされてもよい。
【0092】
以上説明した少なくとも一つの実施形態によれば、実データとして実画像データIMG
Rを取得する取得部112と、第1ニューラルネットワークNNを利用して、実画像データIMG
Rとデータの種類が同じ疑似データである生成画像データIMG
iを生成する生成器210と、実画像データIMG
Rまたは生成画像データIMG
iである入力データが、取得部112により取得された実画像データIMG
Rであるのか、または生成器210により生成された生成画像データIMG
iであるのかを識別する第1識別器220と、実画像データIMG
Rまたは生成画像データIMG
iである入力データから、データの特徴を抽出する特徴抽出器230と、特徴抽出器230により抽出された特徴が、取得部112により取得された実画像データIMG
Rの特徴であるのか、または生成器210により生成された生成画像データIMG
iの特徴であるのかを識別する第2識別器240と、第1識別器220および第2識別器240の識別結果に基づいて、第1識別器220および第2識別器240の其々によって、生成画像データIMG
iと実画像データIMG
Rとが区別されないように、第1ニューラルネットワークNNを学習する学習処理部116と、を備えることによって、複数の生成画像データIMG
iを、機械学習に必要な学習データとして自動的に生成し、学習精度を向上させることができる。
【0093】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。