特許第6572269号(P6572269)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝ソリューション株式会社の特許一覧

<>
  • 特許6572269-学習装置、学習方法、およびプログラム 図000002
  • 特許6572269-学習装置、学習方法、およびプログラム 図000003
  • 特許6572269-学習装置、学習方法、およびプログラム 図000004
  • 特許6572269-学習装置、学習方法、およびプログラム 図000005
  • 特許6572269-学習装置、学習方法、およびプログラム 図000006
  • 特許6572269-学習装置、学習方法、およびプログラム 図000007
  • 特許6572269-学習装置、学習方法、およびプログラム 図000008
  • 特許6572269-学習装置、学習方法、およびプログラム 図000009
  • 特許6572269-学習装置、学習方法、およびプログラム 図000010
  • 特許6572269-学習装置、学習方法、およびプログラム 図000011
  • 特許6572269-学習装置、学習方法、およびプログラム 図000012
  • 特許6572269-学習装置、学習方法、およびプログラム 図000013
  • 特許6572269-学習装置、学習方法、およびプログラム 図000014
  • 特許6572269-学習装置、学習方法、およびプログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6572269
(24)【登録日】2019年8月16日
(45)【発行日】2019年9月4日
(54)【発明の名称】学習装置、学習方法、およびプログラム
(51)【国際特許分類】
   G06N 3/08 20060101AFI20190826BHJP
   G06N 3/04 20060101ALI20190826BHJP
【FI】
   G06N3/08
   G06N3/04 154
【請求項の数】10
【全頁数】19
(21)【出願番号】特願2017-171578(P2017-171578)
(22)【出願日】2017年9月6日
(65)【公開番号】特開2019-46390(P2019-46390A)
(43)【公開日】2019年3月22日
【審査請求日】2018年3月29日
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】特許業務法人 志賀国際特許事務所
(72)【発明者】
【氏名】伊藤 秀将
(72)【発明者】
【氏名】樫本 晋一
(72)【発明者】
【氏名】入本 勇宇次
【審査官】 北元 健太
(56)【参考文献】
【文献】 長場景子、進藤智則,東芝が送電線点検に新種のディープラーニング "知能"より"創作者"と呼ぶべき新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名)
G06N 3/00 − 99/00
(57)【特許請求の範囲】
【請求項1】
実データを取得する取得部と、
第1ニューラルネットワークを利用して、前記実データとデータの種類が同じ疑似データを生成する生成部と、
前記実データまたは前記疑似データである入力データが、前記取得部により取得された実データであるのか、または前記生成部により生成された疑似データであるのかを識別する第1識別部と、
前記入力データから、データの特徴を抽出する抽出部と、
前記抽出部により抽出された特徴が、前記取得部により取得された実データの特徴であるのか、または前記生成部により生成された疑似データの特徴であるのかを識別する第2識別部と、
前記第1識別部および前記第2識別部の識別結果に基づいて、前記第1識別部および前記第2識別部によって、前記疑似データと前記実データとが区別されないように、前記第1ニューラルネットワークを学習する学習処理部と、
を備える学習装置。
【請求項2】
前記第1識別部は、前記入力データが、前記実データであること、または前記疑似データであることの確からしさの程度に基づく第1スコアを導出し、
前記第2識別部は、前記抽出部により抽出された特徴が、前記実データの特徴であること、または前記疑似データの特徴であることの確からしさの程度に基づく第2スコアを導出し、
前記学習処理部は、ある着目する疑似データから前記第1識別部によって導出された第1スコアと、前記着目する疑似データから前記第2識別部によって導出された第2スコアとに基づいて、前記第1ニューラルネットワークを学習する、
請求項1に記載の学習装置。
【請求項3】
前記抽出部は、入力されたデータに応じて特徴を出力するように構成された第2ニューラルネットワークを利用して、前記入力データの特徴を抽出する、
請求項1または2に記載の学習装置。
【請求項4】
前記第2ニューラルネットワークを構成する入力層のユニット数は、前記第1ニューラルネットワークを構成する出力層のユニット数と同じであり、
前記第2ニューラルネットワークを構成する出力層のユニット数は、前記第1ニューラルネットワークを構成する一以上の中間層のうちのいずれかのユニット数と同じである、
請求項3に記載の学習装置。
【請求項5】
前記学習処理部は、更に、前記実データおよび前記疑似データに基づいて、前記入力データを、一以上のグループを含むグループ群のいずれかに分類する分類器を生成する、
請求項1から4のうちいずれか1項に記載の学習装置。
【請求項6】
前記学習処理部は、前記分類器によって互いに異なる複数のグループの境界付近に分類されるデータを、前記生成部に、前記疑似データとして生成させる、
請求項5に記載の学習装置。
【請求項7】
利用者の操作を受け付ける受付部と、
画像を表示する表示部と、
前記表示部に画像を表示させる表示制御部と、を更に備え、
前記表示制御部は、前記生成部によって生成された疑似データのうち、前記境界付近の疑似データを、前記表示部に画像として表示させ、
前記学習処理部は、前記表示部によって画像として表示された疑似データの中から一以上の疑似データに、当該疑似データが分類されるべきグループの正解を与える操作が、前記受付部によって受け付けられた場合、前記分類器に、前記利用者によってグループ分類の正解が与えられた疑似データに基づいて、前記境界を再学習させる、
請求項6に記載の学習装置。
【請求項8】
前記表示制御部は、前記表示部に、前記境界付近の疑似データを画像として、前記境界との距離に応じた順番に並び替えて表示させる、
請求項7に記載の学習装置。
【請求項9】
コンピュータが、
実データを取得し、
第1ニューラルネットワークを利用して、前記実データとデータの種類が同じ疑似データを生成し、
前記実データまたは前記疑似データである入力データが、前記取得した実データであるのか、または前記生成した疑似データであるのかを識別する第1識別処理を行い、
前記入力データから、データの特徴を抽出し、
前記抽出した特徴が、前記取得した実データの特徴であるのか、または前記生成した疑似データの特徴であるのかを識別する第2識別処理を行い、
前記第1識別処理および前記第2識別処理の結果に基づいて、前記第1識別処理および前記第2識別処理によって、前記疑似データと前記実データとが区別されないように、前記第1ニューラルネットワークを学習する、
学習方法。
【請求項10】
コンピュータに、
実データを取得させ、
第1ニューラルネットワークを利用して、前記実データとデータの種類が同じ疑似データを生成させ、
前記実データまたは前記疑似データである入力データが、前記取得させた実データであるのか、または前記生成させた疑似データであるのかを識別する第1識別処理を行わせ、
前記入力データから、データの特徴を抽出させ、
前記抽出させた特徴が、前記取得させた実データの特徴であるのか、または前記生成させた疑似データの特徴であるのかを識別する第2識別処理を行わせ、
前記第1識別処理および前記第2識別処理の結果に基づいて、前記第1識別処理および前記第2識別処理によって、前記疑似データと前記実データとが区別されないように、前記第1ニューラルネットワークを学習させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、学習装置、学習方法、およびプログラムに関する。
【背景技術】
【0002】
従来、画像データなどの所望のデータを、機械学習によってある決まったカテゴリに分類する技術が知られている。このような従来の技術は、データを分類するために予め機械学習の識別器(学習モデル)を生成しておく必要があり、機械学習の学習精度を高めるためには大量の学習データが必要であった。しかしながら、従来の技術では、学習データを大量に収集するのが困難な場合があり、機械学習の学習精度を十分に高められない問題があった。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2016−33806号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、機械学習に必要な学習データを自動的に生成し、学習精度を向上させることができる学習装置、学習方法、およびプログラムを提供することである。
【課題を解決するための手段】
【0005】
実施形態の学習装置は、取得部と、生成部と、第1識別部と、抽出部と、第2識別部と、学習処理部とを持つ。取得部は、実データを取得する。生成部は、第1ニューラルネットワークを利用して、前記実データとデータの種類が同じ疑似データを生成する。第1識別部は、前記実データまたは前記疑似データである入力データが、前記取得部により取得された実データであるのか、または前記生成部により生成された疑似データであるのかを識別する。抽出部は、前記入力データから、データの特徴を抽出する。第2識別部は、前記抽出部により抽出された特徴が、前記取得部により取得された実データの特徴であるのか、または前記生成部により生成された疑似データの特徴であるのかを識別する。学習処理部は、前記第1識別部および前記第2識別部の識別結果に基づいて、前記第1識別部および前記第2識別部によって、前記疑似データと前記実データとが区別されないように、前記第1ニューラルネットワークを学習する。
【図面の簡単な説明】
【0006】
図1】第1実施形態における学習装置100を含む学習システム1の全体構成の一例を示す図。
図2】第1実施形態における学習装置100の構成の一例を示す図。
図3】ネットワーク200の構成の一例を示す図。
図4】学習処理部116による処理の一例を示すフローチャート。
図5】学習処理部116による処理の他の例を示すフローチャート。
図6】制御部110による分類器300の学習処理の一例を示すフローチャート。
図7】識別境界の決定方法を模式的に示す図。
図8】学習済みの分類器300による分類処理の一例を示すフローチャート。
図9】第1実施形態における学習手法の検証結果の一例を示す図。
図10】第2実施形態における学習装置100の処理の一例を示すフローチャート。
図11】識別境界からの距離に応じた順番に並び替えて表示させた生成画像データIMGの一例を示す図。
図12】生成画像データIMGの範囲指定選択の様子を模式的に示す図。
図13】識別境界を再決定する様子を模式的に示す図。
図14】実施形態の学習装置100のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【0007】
以下、実施形態の学習装置、学習方法、およびプログラムを、図面を参照して説明する。実施形態における学習装置は、機械学習の学習データとして用意された実データと種類が同じであり、且つ類似するデータ(以下、疑似データと称する)を自動生成する。「実データと種類が同じ」とは、例えば、実データが画像データであれば、疑似データも画像データであることを表し、実データが音声データであれば、疑似データも音声データであることを表している。
【0008】
学習装置は、更に、疑似データと実データとの双方に対して、どういったデータであるのかという人間の知見を与え、これらのデータと、人間の知見として付与された情報との関係性を、ある分類器に学習させる。そして、学習装置は、学習済みの分類器を利用して、人間の知見が与えられていない未知のデータを、所定のグループ(又はクラスタやクラスなど)に分類し、その分類結果を示す情報をユーザに提供する。以下の実施形態では、一例として、実データが画像データであるものとして説明する。
【0009】
(第1実施形態)
図1は、第1実施形態における学習装置100を含む学習システム1の全体構成の一例を示す図である。学習システム1は、例えば、遠隔操縦または自律式で飛行する一以上のドローン(無人航空機)10と、端末装置20と、学習装置100とを備える。これらの装置は、通信ネットワークNWを介して通信する。通信ネットワークNWは、例えば、無線基地局、Wi‐Fiアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。
【0010】
ドローン10は、例えば、送電線の周囲を飛行し、カメラ(不図示)によって送電線を撮像する。そして、ドローン10は、カメラにより撮像された画像のデータを、通信ネットワークNWを介して学習装置100に送信する。以下、カメラにより撮像された画像のデータを、実画像データIMGと称して説明する。
【0011】
端末装置20は、例えば、送電線などの保守や点検を行う作業者によって操作される装置である。例えば、端末装置20は、タブレット端末やスマートフォンなどの携帯電話である。端末装置20は、例えば、作業者から所定の操作を受け付けると、ドローン10の飛行を制御したり、ドローン10のカメラに撮像を開始させたり、ドローン10に実画像データIMGを送信させたりする。端末装置20は、ドローン10から実画像データIMGを受信すると、これを学習装置100に送信する。
【0012】
学習装置100は、端末装置20により送信された実画像データIMGを学習データとして分類器300に学習させる。この学習の詳細については後述する。
【0013】
図2は、第1実施形態における学習装置100の構成の一例を示す図である。第1実施形態の学習装置100は、例えば、通信部102と、受付部104と、表示部106と、制御部110と、記憶部130とを備える。
【0014】
通信部102は、例えば、NIC(Network Interface Card)等の通信インターフェースなどを含む。通信部102は、通信ネットワークNWを介してドローン10と通信し、そのドローン10から実画像データIMGを受信する。
【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が受信された場合、通信部102から実画像データIMGを取得し、これを記憶部130に記憶させる。
【0019】
表示制御部114は、取得部112により取得された実画像データIMGを画像として表示部106に表示させる。また、表示制御部114は、後述する学習処理部116により画像データIMGと類似した生成画像データIMGが生成されると、表示部106に、このデータを画像として表示させる。
【0020】
学習処理部116は、記憶部130に予め記憶されたGAN構成情報D1を参照して、拡張的な敵対的生成ネットワークであるネットワーク200を生成(構築)し、このネットワーク200を利用して、学習データとして扱う生成画像データIMGを自動生成する。そして、学習処理部116は、取得部112により取得された実画像データIMGと、自動生成した生成画像データIMGとを基に、ある入力されたデータを、一以上のグループを含むグループ群のいずれかのグループに分類する分類器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を出力する。乱数は、例えば、潜在変数と呼ばれる一様乱数である。生成器210により生成された生成画像データIMGと、取得部112により取得された実画像データIMGとは、第1識別器220および特徴抽出器230の其々に入力される。
【0023】
第1識別器220は、ある画像データが入力されると、その画像データが生成器210により生成された生成画像データIMGであるのか、または取得部112により取得された実画像データIMGであるのかを識別する。より具体的には、第1識別器220は、入力された画像データが、実画像データIMGであることの尤度(以下、第1尤度)を導出し、この第1尤度に応じて画像データが、実画像データIMGであるのか、または生成画像データIMGであるのかを識別する。第1尤度は、「第1スコア」の一例である。
【0024】
特徴抽出器230は、ある画像データが入力されると、その画像データから特徴を抽出する。特徴抽出器230により抽出された特徴は、第2識別器240に入力される。
【0025】
第2識別器240は、特徴抽出器230により抽出された特徴が、実画像データIMGから抽出された特徴であるのか、または生成画像データIMGから抽出された特徴であるのかを識別する。より具体的には、第2識別器240は、入力された画像データの特徴が、実画像データIMGの特徴であることの尤度(以下、第2尤度)を導出し、この第2尤度に応じて画像データの特徴が、実画像データIMGの特徴であるのか、または生成画像データIMGの特徴であるのかを識別する。第2尤度は、「第2スコア」の一例である。
【0026】
ネットワーク200を構成する各モデル(器)は、例えば、ニューラルネットワークNNによって実現されてよい。各モデルを実現するニューラルネットワークNNは、例えば、入力層と、一以上の中間層(隠れ層)と、出力層とにより構成される。入力層には、ニューラルネットワークNNに学習させたいデータが入力される。出力層からは、ニューラルネットワークNNによって学習された結果が出力される。隠れ層は、学習の核となる処理を行う。例えば、隠れ層は、活性化関数(伝達関数)と呼ばれる関数により表現され、入力に応じた出力を返す。例えば、活性化関数は、正規化線形関数(ReLU関数)やシグモイド関数、ステップ関数などであるがこれに限られず、任意の関数が用いられてよい。
【0027】
例えば、生成器210のニューラルネットワークNN(以下、第1ニューラルネットワークNNと称する)を構成する入力層のユニットの数は、一様乱数として取り得る数値の数と同じ値に設定される。例えば、ある下限値からある上限値までの数値範囲における、100個の互いに異なる数値が一様乱数として第1ニューラルネットワークNNの入力層に入力される場合、すなわち、100次元の数値が入力層に入力される場合、入力層のユニット数は100に設定される。第1ニューラルネットワークNNの入力層には、一様乱数(潜在変数)が入力され、中間層において一様乱数が画像の特徴に変換され、更に、画像の特徴から画像データに変換される。そして、中間層において変換された画像データが、出力層から生成画像データIMGとして出力される。
【0028】
例えば、第1識別器220のニューラルネットワークNN(以下、第2ニューラルネットワークNNと称する)の入力層のユニット数は、第1ニューラルネットワークNNの出力層のユニット数と同じ値に設定される。第2ニューラルネットワークNNの入力層には、画像データが入力され、中間層において画像データが第1尤度に変換される。そして、出力層の一方のユニットから、入力された画像データの、実画像データIMGに対する第1尤度が出力され、他方のユニットから、入力された画像データの、生成画像データIMGに対する第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の特徴に対する第2尤度が出力され、他方のユニットから、入力された中間層ベクトルの、生成画像データIMGの特徴に対する第2尤度が出力される。
【0031】
学習処理部116は、ある一定以上の識別精度を有する第1識別器220によって、生成画像データIMGと実画像データIMGとが区別されず、且つある一定以上の識別精度を有する第2識別器240によって、生成画像データIMGから抽出された特徴と実画像データIMGから抽出された特徴とが区別されないように、生成器210を学習する。「生成器210を学習する」とは、例えば、生成器210のニューラルネットワークNNを構成する中間層のパラメータを決定することである。パラメータは、例えば、入力層側から出力層側にデータが伝搬されるときに、そのデータに対して、乗算される重み成分と、加算されるバイアス成分とを含む。中間層のある層から他の層へとデータが伝搬される度に、データには重み成分およびバイアス成分が付与され、伝搬先の中間層の活性化関数と乗算される。
【0032】
なお、ネットワーク200の学習対象とするモデル(パラメータを決定するモデル)は、生成器210であるものとしたがこれに限られず、第1識別器220、特徴抽出器230、および第2識別器240の一部または全部が学習対象のモデルであってもよい。
【0033】
以下、複数のフローチャートを用いて、生成画像データIMGを生成する際の学習処理部116の処理内容を説明する。
【0034】
図4は、学習処理部116による処理の一例を示すフローチャートである。本フローチャートの処理は、例えば、生成器210を学習する前に事前に行う処理内容を表している。
【0035】
まず、学習処理部116は、取得部112により実画像データIMGが取得されるまで待機し(ステップS100)、取得部112により実画像データIMGが取得されると、第2ニューラルネットワークNNの入力層に、実画像データIMGを入力する(ステップS102)。
【0036】
次に、学習処理部116は、第2ニューラルネットワークNNの出力層から出力された実画像データIMGの分布を記憶部130に記憶させる(ステップS104)。ここでの「分布」とは、ある実空間上における画像データの分布を意味する。
【0037】
次に、学習処理部116は、第3ニューラルネットワークNNの入力層に、実画像データIMGを入力して、第1ニューラルネットワークNNの中間層から出力される中間層ベクトルと同じ種類の中間層ベクトルを実画像データIMGから抽出する(ステップS106)。
【0038】
次に、学習処理部116は、第3ニューラルネットワークNNを利用して実画像データIMGから抽出した中間層ベクトルを、第4ニューラルネットワークNNの入力層に入力する(ステップS108)。
【0039】
次に、学習処理部116は、第4ニューラルネットワークNNの出力層から出力された中間層ベクトルの分布を記憶部130に記憶させる(ステップS110)。ここでの「分布」は、ある特徴空間上における中間層ベクトルの分布を意味する。これによって、本フローチャートの処理が終了する。
【0040】
図5は、学習処理部116による処理の他の例を示すフローチャートである。本フローチャートの処理は、例えば、生成器210に生成画像データIMGを生成させ、その生成画像データIMGに対する各識別器の識別結果を基に、生成器210を学習する処理内容を表している。
【0041】
まず、学習処理部116は、第1ニューラルネットワークNNの入力層に一様乱数を入力し、第1ニューラルネットワークNNの出力層から生成画像データIMGを取得する(ステップS200)。
【0042】
次に、学習処理部116は、第1ニューラルネットワークNNを利用して取得した生成画像データIMGを、第2ニューラルネットワークNNの入力層に入力する(ステップS202)。
【0043】
次に、学習処理部116は、記憶部130に記憶させておいた実画像データIMGの分布と、第2ニューラルネットワークNNの出力層から得られた生成画像データIMGの分布との差分(例えば分散の差や偏差など)を導出する(ステップS204)。
【0044】
次に、学習処理部116は、導出した差分が許容範囲内であるか否かを判定し(ステップS206)、差分が許容範囲外であれば、生成画像データIMGは実画像データIMGでないと判定し(ステップS208)、差分が許容範囲内であれば、生成画像データIMGは実画像データIMGであると判定する(ステップS210)。
【0045】
次に、学習処理部116は、第3ニューラルネットワークNNの入力層に生成画像データIMGを入力し、第3ニューラルネットワークNNの出力層から中間層ベクトルを取得する(ステップS212)。
【0046】
次に、学習処理部116は、第3ニューラルネットワークNNを利用して取得した中間層ベクトルを、第4ニューラルネットワークNNの入力層に入力する(ステップS214)。
【0047】
次に、学習処理部116は、記憶部130に記憶させておいた実画像データIMGの中間層ベクトルの分布と、第4ニューラルネットワークNNの出力層から得られた生成画像データIMGの中間層ベクトルの分布との差分を導出する(ステップS216)。
【0048】
次に、学習処理部116は、導出した差分が許容範囲内であるか否かを判定し(ステップS218)、差分が許容範囲外であれば、生成画像データIMGから抽出された中間層ベクトルは実画像データIMGから抽出された中間層ベクトルでないと判定し(ステップS220)、差分が許容範囲内であれば、生成画像データIMGから抽出された中間層ベクトルは実画像データIMGから抽出された中間層ベクトルであると判定する(ステップS222)。
【0049】
次に、学習処理部116は、導出した双方の差分が許容範囲内であるか否かを判定し(ステップS224)、双方の差分が許容範囲外である場合、第1ニューラルネットワークNNによって出力された生成画像データIMGを、第2ニューラルネットワークNNに入力したときに導出される第1尤度と、第3ニューラルネットワークNNにより抽出された生成画像データIMGの中間層ベクトルを、第4ニューラルネットワークNNに入力したときに導出される第2尤度との重み付き和を導出する(ステップS226)。
【0050】
次に、学習処理部116は、導出した重み付き和に基づいて、第1ニューラルネットワークNNのパラメータを、誤差逆伝播法を用いて再決定する(ステップS228)。そして、学習処理部116は、処理を上述したS200に戻す。
【0051】
一方、学習処理部116は、双方の差分が許容範囲内である場合、本フローチャートの処理を終了する。
【0052】
一般的な敵対的生成ネットワークは、本実施形態における生成器210および第1識別器220により構成される。この場合、第1識別器220は、生成画像データIMGと、実画像データIMGとを見分けるように学習し、生成器210は、第1識別器220に、生成した生成画像データIMGが、実画像データIMGであると識別されるように学習する。これは、実画像データIMGの分布と、生成画像データIMGの分布とを、特定の距離尺度で最小化することに相当する。しかしながら、生成器210が、第1識別器220を騙すように学習するだけでは、特徴空間上において、両者の分布に大きな差異が生じる場合がある。例えば、人間の目で見た場合には、生成画像データIMGと、実画像データIMGとが同じ画像データであると判断されても、これらの画像の特徴同士を特徴空間上で比較した場合、両者は互いに異なる特徴である場合がある。
【0053】
これに対して、拡張的な敵対的生成ネットワークであるネットワーク200を利用した学習処理部116は、上述したフローチャートの処理のように、生成画像データIMGの分布を実空間上で実画像データIMGの分布に近づけるのと同時に、更に、生成画像データIMGの中間層ベクトルの分布を、特徴空間上で実画像データIMGの中間層ベクトルの分布から離れすぎないように制約を設けた上で生成器210を学習するため、人間の眼だけでなく、ネットワーク200にとっても生成画像データIMGと実画像データIMGとを識別し難くさせることができる。この結果、実画像データIMGに対して、より類似した生成画像データIMGを生成することができる。言い換えれば、第1ニューラルネットワークNNの出力層から出力される生成画像データIMGを実画像データIMGに近づけるのみならず、更に第1ニューラルネットワークNNの中間層から出力される生成画像データIMGの特徴を実画像データIMGの特徴に近づけるため、最終的に得られる生成画像データIMGをより実画像データIMGに似せることができる。
【0054】
学習処理部116は、実空間および特徴空間の双方において、生成画像データIMGが、実画像データIMGであると識別された場合、すなわち、学習の結果、各識別器を十分に騙せる程度の精度で生成画像データIMGを生成できた場合、学習済みの生成器210を用いて、複数の生成画像データIMGを生成する。そして、学習処理部116は、生成した複数の生成画像データIMGと、取得部112により取得された実画像データIMGとを基に、分類器300を学習する。
【0055】
図6は、制御部110による分類器300の学習処理の一例を示すフローチャートである。まず、学習処理部116は、第1ニューラルネットワークNNの入力層の各ユニットに乱数を入力し、複数の生成画像データIMGを生成する(ステップS300)。
【0056】
次に、表示制御部114は、生成された複数の生成画像データIMGを画像として、表示部106に表示させる(ステップS302)。
【0057】
次に、学習処理部116は、表示部106に画像として表示された複数の生成画像データIMGに対して、正例または負例のいずれかを示す情報(以下、ラベル情報と称する)を付与するユーザ操作が受付部104によって受け付けられるまで待機し(ステップS304)、各生成画像データIMGに対してラベル情報を付与するユーザ操作が受け付けられると、生成した複数の生成画像データIMGと、取得部112により取得された実画像データIMGとを基に、入力されたデータを、正例または負例に分類する識別境界を決定する(ステップS306)。ラベル情報は、分類器300に入力されるデータが分類されるべき正解を示すデータである。
【0058】
図7は、識別境界の決定方法を模式的に示す図である。図中(a)は、未だ生成画像データIMGが生成されておらず、実画像データIMGのみが、ある実空間上に分布している。実画像データIMGには、予めラベル情報が付与されているものとする。このような場合、実画像データIMGの数が少ないと、正例と負例とを適切に識別する識別境界を決定することが困難となる。そのため、学習処理部116は、図中(b)のように、実画像データIMGが分布する空間を満たすような内挿的な生成画像データIMGを複数生成する。次に、学習処理部116は、図中(c)のように、生成した複数の生成画像データIMGに対して、ユーザに、正例または負例のラベル情報を付与させる。そして、学習処理部116は、図中(d)のように、既にラベル情報が付与されている実画像データIMGと、ユーザにラベル情報を付与させた生成画像データIMGとを基に、識別境界を決定する。このように実画像データIMGに良く似た生成画像データIMGを大量に生成することによって、実画像データIMGが分布する空間の中で、識別境界がより明確となり、分類器300に新たなデータが入力された場合に、そのデータが、正例であるのか、または負例であるのかを精度良く決めることができる。
【0059】
図8は、学習済みの分類器300による分類処理の一例を示すフローチャートである。
まず、学習処理部116は、取得部112によって実画像データIMGが取得されると、この実画像データIMGが未学習の実画像データIMGであるか否かを判定する(ステップS400)。「未学習」とは、例えば、人間の知見として、分類結果の正解がラベル情報として付与されておらずに、分類器300の識別境界を決定する際にデータが使用されなかったことをいう。
【0060】
次に、学習処理部116は、未学習の実画像データIMGを、学習済みの分類器300に入力する(ステップS402)。次に、学習処理部116は、識別境界に基づいて、未学習の実画像データIMGを、正例または負例に分類する(ステップS404)。
【0061】
次に、表示制御部114は、表示部106に、未学習の実画像データIMGの分類結果を画像として表示させる(ステップS406)。なお、制御部110は、通信部102を用いて、未学習の実画像データIMGの分類結果を、サーバ装置やユーザが保有する端末装置などに送信してもよい。これによって、本フローチャートの処理が終了する。
【0062】
図9は、第1実施形態における学習手法の検証結果の一例を示す図である。図中の「追加学習なし」は、生成画像データIMGを学習データに含めずに、実画像データIMGのみを学習データとして、分類器300を学習したときの各種評価指標値を表している。また、「追加学習あり」は、生成画像データIMGと実画像データIMGとの双方を学習データとして、分類器300を学習したときの各種評価指標値を表している。
【0063】
検証には、評価指標として、認識誤りの少なさを表す適合率Pと、認識漏れの少なさを表す再現率Rと、適合率Pと再現率Rとの調和平均であるF値(=2PR/(P+R))とが用いられている。F値が大きいほど、分類器300の認識精度が高いことを表している。図9に示すように、適合率P、再現率R、およびF値の全てにおいて、追加学習なしに比べて追加学習ありの方が大きくなっており、認識精度が向上している結果となった。
【0064】
以上説明した第1実施形態によれば、実データとして実画像データIMGを取得する取得部112と、第1ニューラルネットワークNNを利用して、実画像データIMGとデータの種類が同じ疑似データである生成画像データIMGを生成する生成器210と、実画像データIMGまたは生成画像データIMGである入力データが、取得部112により取得された実画像データIMGであるのか、または生成器210により生成された生成画像データIMGであるのかを識別する第1識別器220と、実画像データIMGまたは生成画像データIMGである入力データから、データの特徴を抽出する特徴抽出器230と、特徴抽出器230により抽出された特徴が、取得部112により取得された実画像データIMGの特徴であるのか、または生成器210により生成された生成画像データIMGの特徴であるのかを識別する第2識別器240と、第1識別器220および第2識別器240の識別結果に基づいて、第1識別器220および第2識別器240の其々によって、生成画像データIMGと実画像データIMGとが区別されないように、第1ニューラルネットワークNNを学習する学習処理部116と、を備えることによって、複数の生成画像データIMGを、機械学習に必要な学習データとして自動的に生成し、学習精度を向上させることができる。
【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を生成させ、これらを学習済みの分類器300に入力する(ステップS500)。ここでの生成器210は、十分に学習されているものとする。
【0068】
次に、学習処理部116は、学習済みの分類器300に、既に決定された識別境界に基づいて、入力された各生成画像データIMGを、正例または負例に分類させる(ステップS502)。
【0069】
次に、学習処理部116は、正例または負例に分類された複数の生成画像データIMGの中から、識別境界に最も近い位置に分布した生成画像データIMGを抽出する(ステップS504)。例えば、学習済みの分類器300に生成画像データIMGを入力すると、既に識別境界が求められている空間内に、入力された各生成画像データIMGが、特徴量を示すベクトルとして分布する。学習処理部116は、各生成画像データIMGに対応したベクトルと識別境界との距離を導出し、空間内に分布した複数のベクトルの中から、識別境界との距離が最も短いベクトルを抽出する。この抽出したベクトルに対応した画像データが、識別境界に最も近い位置に分布した生成画像データIMGとなる。
【0070】
次に、学習処理部116は、抽出した生成画像データIMGが生成される際に使用された乱数を基に新たな乱数を生成する(ステップS506)。例えば、ある上下限が決められた数値範囲において、1、2、3、…、といったような値を乱数として複数の生成画像データIMGが生成された場合に、「5」という乱数を用いて生成された生成画像データIMGが識別境界に最も近い位置に分布したとする。この場合、学習処理部116は、新たな乱数を、「5」という値を基準に、「5.1」や「4.9」のような、より次元の細かい値とする。
【0071】
次に、学習処理部116は、新たに生成した乱数を、生成器210である第1ニューラルネットワークNNの入力層に入力し、新たな生成画像データIMGを生成する(ステップS508)。
【0072】
次に、学習処理部116は、乱数を変更し、新たな生成画像データIMGを生成する処理を所定回数繰り返したか否かを判定する(ステップS510)。
【0073】
乱数を変更し、新たな生成画像データIMGを生成する処理を所定回数繰り返したと判定した場合、学習処理部116は、後述するS518の処理に進む。
【0074】
一方、乱数を変更し、新たな生成画像データIMGを生成する処理を所定回数繰り返していないと判定した場合、学習処理部116は、新たに生成した生成画像データIMGを分類器300に入力する(ステップS512)。
【0075】
次に、学習処理部116は、分類器300に、識別境界に基づいて、入力された生成画像データIMGを、正例または負例に分類させる(ステップS514)。
【0076】
次に、学習処理部116は、分類器300の分類結果に基づいて、乱数を再生成し(ステップS516)、上述したS508に処理を戻す。
【0077】
例えば、学習処理部116は、S504の処理で抽出した生成画像データIMGの生成時に使用された乱数(例えば5.0)を基準に、この基準よりも大きい乱数(例えば5.1)を生成した結果、新たに生成した生成画像データIMGが識別境界から遠ざかった場合、次に生成する乱数を基準の乱数よりも小さくする(例えば4.9にする)。また、学習処理部116は、基準よりも大きい乱数(例えば5.1)を生成した結果、新たに生成した生成画像データIMGが識別境界に近づいた場合、次に生成する乱数を更に大きくする(例えば5.2にする)。
【0078】
基準となる乱数よりも小さい乱数を生成したときも同様に、学習処理部116は、新たに生成した生成画像データIMGが識別境界から遠ざかった場合、次に生成する乱数を大きくし、新たに生成した生成画像データIMGが識別境界に近づいた場合、次に生成する乱数を更に小さくする。
【0079】
このように、学習処理部116は、乱数を変更しながら、識別境界付近に分布することが想定される生成画像データIMGを繰り返し探索する。
【0080】
次に、表示制御部114は、識別境界付近で探索された所定数の生成画像データIMGを、識別境界からの距離に応じた順番に並び替え、これらを表示部106に画像として表示させる(ステップS518)。
【0081】
図11は、識別境界からの距離に応じた順番に並び替えて表示された生成画像データIMGの一例を示す図である。各生成画像データIMGは、行列(i,j)で表示されている。例えば、(1,1)の生成画像データIMGは、実空間の正例側において、識別境界から最も遠い位置に分布していることを表し、以下、(1,2)、(1,3)、(1,4)、…、(1,10)、(2,1)、(2,2)、…、(2,10)、(3,1)、(3,2)、…、の順で生成画像データIMGが識別境界に近づいている。また、(10,10)の生成画像データIMGは、実空間の負例側において、識別境界から最も遠い位置に分布していることを表し、以下、(10,9)、(10,8)、(10,7)、…、(10,1)、(9,10)、(9,9)、…、(9,1)、(8,10)、(8,9)、…、の順で生成画像データIMGが識別境界に近づいている。
【0082】
次に、学習処理部116は、表示部106に、所定数の生成画像データIMGが並び替えて表示された後、所定数の生成画像データIMGの中から、正例または負例とする生成画像データIMGを範囲指定によって選択する操作が、受付部104によって受け付けられたか否かを判定し(ステップS520)、この操作が受付部104によって受け付けられた場合、範囲指定によって選択された全ての生成画像データIMGに対して、正例および負例の一方のグループのラベル情報を付与する(ステップS522)。
【0083】
図12は、生成画像データIMGの範囲指定選択の様子を模式的に示す図である。例えば、所定数の生成画像データIMGが識別境界からの距離に応じた順番に並び替えて表示された場合、ユーザは、ある画像データからある画像データまでを正例とし、ある画像データからある画像データまでを負例とする、といったように範囲指定によって複数の画像データに対して一括でラベル情報を付与する。図示の例では、範囲Rに含まれる(1,1)〜(2,8)の生成画像データIMGに対して、正例のラベル情報が付与されている。
【0084】
次に、学習処理部116は、範囲指定された生成画像データIMGに対して一括して同じラベル情報を付与した後、これらの生成画像データIMGを学習データとして、分類器300の識別境界を再決定する(ステップS524)。これによって、本フローチャートの処理が終了する。
【0085】
図13は、識別境界を再決定する様子を模式的に示す図である。図中(a)は、ラベル情報が付与された実画像データのみで識別境界Bが決定されている。このような場合、学習処理部116は、上述したように、n個の生成画像データIMGを生成し、この中から識別境界Bに最も近い生成画像データIMGを抽出する。図示の例では、識別境界Bに最も近い生成画像データIMGとして、二つの生成画像データIMGが抽出されている。
【0086】
学習処理部116は、識別境界Bに最も近い生成画像データIMGを抽出すると、
この(これらの)生成画像データIMGに使用された乱数を基に新たな乱数を生成し、この乱数を第1ニューラルネットワークNNの入力層に入力して、新たな生成画像データIMGを生成する。この処理を所定回数繰り返すことで、図中(b)に示すように、識別境界Bと交差するように、識別境界Bまでの距離が互いに異なる所定数の生成画像データIMGが生成される。(a)の例では、識別境界Bに最も近い生成画像データIMGとして、二つの生成画像データIMGが抽出されているため、(b)の例では、抽出された二つの生成画像データIMGの其々を起点とした2箇所において、生成画像データIMGの探索が行われている。
【0087】
図中(c)に示すように、識別境界Bまでの距離が互いに異なる所定数の生成画像データIMGの中から、ユーザが範囲指定によって生成画像データIMGを選択した場合、学習処理部116は、範囲指定された生成画像データIMGの其々に対してラベル情報を付与し、これを学習データとして分類器300の識別境界Bを再決定する。図中B#は、再決定された識別境界を表している。このような処理によって、識別境界の精度を向上させることができる。
【0088】
以上説明した第2実施形態によれば、識別境界付近に分布する複数の生成画像データIMGを生成し、ユーザに、これらの生成画像データIMGに対して正解データであるラベル情報を付与させ、ラベル情報が付与された生成画像データIMGを基に分類器300を再学習するため、識別境界の精度を向上させることができる。この結果、学習精度を更に向上させることができる。
【0089】
また、第2実施形態によれば、識別境界付近に分布する複数の生成画像データIMGを、識別境界との距離に応じた順番に並び替えて表示するため、ユーザが、並べられて表示された複数の生成画像データIMGから、正例または負例とするデータを範囲選択によって容易に選択することができる。一般的に、値の近い乱数を使用して複数の生成画像データIMGを生成した場合、これらの生成画像データIMG同士は、実空間において近い位置に分布する。そのため、これらの生成画像データIMGを識別境界との距離に応じた順番に並び替えた場合、正例の画像データは、正例の画像データ同士で集合し、負例の画像データは、負例の画像データ同士で集合することになり、正例の画像データの中に一つだけ負例の画像データが存在するようなことがなくなる。この結果、例えば、ユーザが、正例とするデータを一括選択した場合であっても、誤ったデータの選択を防止しつつ、正しいデータの選択漏れを減少させるため、識別境界の導出の精度を向上させることができる。
【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を取得する取得部112と、第1ニューラルネットワークNNを利用して、実画像データIMGとデータの種類が同じ疑似データである生成画像データIMGを生成する生成器210と、実画像データIMGまたは生成画像データIMGである入力データが、取得部112により取得された実画像データIMGであるのか、または生成器210により生成された生成画像データIMGであるのかを識別する第1識別器220と、実画像データIMGまたは生成画像データIMGである入力データから、データの特徴を抽出する特徴抽出器230と、特徴抽出器230により抽出された特徴が、取得部112により取得された実画像データIMGの特徴であるのか、または生成器210により生成された生成画像データIMGの特徴であるのかを識別する第2識別器240と、第1識別器220および第2識別器240の識別結果に基づいて、第1識別器220および第2識別器240の其々によって、生成画像データIMGと実画像データIMGとが区別されないように、第1ニューラルネットワークNNを学習する学習処理部116と、を備えることによって、複数の生成画像データIMGを、機械学習に必要な学習データとして自動的に生成し、学習精度を向上させることができる。
【0093】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0094】
1…学習システム、10…ドローン、20…端末装置、100…学習装置、102…通信部、104…受付部、106…表示部、110…制御部、112…取得部、114…表示制御部、116…学習処理部、130…記憶部、D1…GAN構成情報、200…ネットワーク、210…生成器、220…第1識別器、230…特徴抽出器、240…第2識別器、IMG…実画像データ(実データ)、IMG…生成画像データ(疑似データ)、300…分類器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14