(57)【特許請求の範囲】
【請求項１】
学習中のニューラルネットワークを用いて学習データから特徴を抽出する特徴抽出部と、
前記抽出した特徴から前記学習中のニューラルネットワークを用いて敵対的特徴を生成する敵対的特徴生成部と、
前記抽出した特徴と前記敵対的特徴とを用いて前記ニューラルネットワークの認識結果を算出するパターン認識部と、
前記認識結果が望ましい出力に近づくように前記ニューラルネットワークを学習するネットワーク学習部と、
を備えるニューラルネットワーク学習装置。
【請求項２】
前記敵対的特徴生成部は、前記学習データの線形結合で表現した拘束条件下で、前記敵対的特徴を生成する、請求項１に記載のニューラルネットワーク学習装置。
【請求項３】
請求項１または２に記載のニューラルネットワーク学習装置を用いて学習したニューラルネットワークに基づいて、パターン認識を行うパターン認識装置。
【請求項４】
ニューラルネットワーク学習装置によって実行されるニューラルネットワーク学習方法であって、前記ニューラルネットワーク学習装置は、
学習中のニューラルネットワークを用いて学習データから特徴を抽出するステップと、
前記抽出した特徴から前記学習中のニューラルネットワークを用いて敵対的特徴を生成するステップと、
前記抽出した特徴と前記敵対的特徴とを用いて前記ニューラルネットワークの認識結果を算出するステップと、
前記認識結果が望ましい出力に近づくように前記ニューラルネットワークを学習するステップと、
を実行するニューラルネットワーク学習方法。
【請求項５】
前記ニューラルネットワーク学習装置は、前記生成するステップで、前記学習データの線形結合で表現した拘束条件下で、前記敵対的特徴を生成する、請求項４に記載のニューラルネットワーク学習方法。
【請求項６】
学習中のニューラルネットワークを用いて学習データから特徴を抽出する手順と、
前記抽出した特徴から前記学習中のニューラルネットワークを用いて敵対的特徴を生成する手順と、
前記抽出した特徴と前記敵対的特徴とを用いて前記ニューラルネットワークの認識結果を算出する手順と、
前記認識結果が望ましい出力に近づくように前記ニューラルネットワークを学習する手順と、
をコンピュータに実行させるニューラルネットワーク学習プログラム。
【請求項７】
前記生成する手順は、前記コンピュータに、前記学習データの線形結合で表現した拘束条件下で、前記敵対的特徴を生成させる、請求項６に記載のニューラルネットワーク学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はニューラルネットワーク学習装置、方法、プログラム、およびパターン認識装置に関する。
【背景技術】
【０００２】
パターン認識技術とは、入力されたパターンがどのクラスに属するパターンであるかを推定する技術である。具体的なパターン認識の例としては、画像を入力として写っている物体を推定する物体認識や、音声を入力として発話内容を推定する音声認識などが挙げられる。【０００３】
パターン認識技術として統計的機械学習が広く利用されている。統計的機械学習の中で、特にニューラルネットワークは、近年、ディープラーニング（deep learning）と呼ばれる学習技術の発達により、深層ネットワークの学習が可能となり、入力パターンの変動に頑健な認識を行うことができることが知られている。【０００４】
周知のように、機械学習は大きく分けて、教師有り学習（supervised learning）と、教師無し学習（unsupervised learning）との２つに分類される。教師有り学習では、正解付きデータ（訓練データや教師データとも呼ばれる）を機械に自動的に解析させ、算出した特徴量を正解に分類させることで正解と特徴量の関係を学習する。換言すれば、教師有り学習は、「入力」と「正しい出力（分け方）」がセットになった訓練データを予め用意して、ある入力が与えられたときに、正しい出力（分け方）ができるようにコンピュータ（機械）に学習させる。これに対して、教師無し学習では、入力データ（学習データ）のみで学習を行い、学習データから抽出した特徴量から本質的な構造を学習する。換言すれば、教師無し学習は、入力用のデータ（学習データ）のみを与え、データに内在する構造をつかむために用いられる。【０００５】
機械学習は、ニューラルネットワークをつくる「学習フェーズ」と、できあがったニューラルネットワークを使って正解を出す「認識フェーズ」又は「予測フェーズ」との２つに分かれる。公知の機械学習では人間が特徴量の設計をしなければならなかったのに対し、ディープラーニングは自動で学習データから特徴量を取得（獲得）して学習する。【０００６】
本発明に関連する先行技術文献が種々知られている。【０００７】
特許文献１は、ニューラルネットワークの構造を最適化することが可能な「ニューラルネットワーク学習装置」を開示している。特許文献１に開示されたニューラルネットワーク学習装置は、初期構造取得部と、演算部とを有する。演算部は、データベース、学習部、及び中間層生成部を備えている。データベースは、複数の学習データ（学習サンプルとも称される）を予め記憶して格納している。学習部は、学習データ読込部と、結合荷重修正部と、ニューロン生成部と、ニューロン生滅部とを有している。中間層生成部は、中間層生成処理を実行する。中間層生成処理では、例えばニューラルネットワークにおいて最も出力層側の中間層と出力層との間に、追加中間層を中間層として新たに生成する。【０００８】
演算部は、初期構造取得部で取得した初期構造のニューラルネットワークを有している。ニューロン生成部は、生成対象中間層である中間層に新たなニューロンを１つ生成する。【０００９】
特許文献２は、複数の分類カテゴリの全てに対して十分な数の教師画像を準備することができない場合でも、効果的に学習を行うことのできる「教師データ作成方法」を開示している。特許文献２に開示された教師データ作成方法は、教示工程と、一次作成工程と、二次作成工程とを備える。教示工程は、複数の教師画像のそれぞれに対して、複数の分類カテゴリのうち当該教師画像が分類されるべき一の分類カテゴリを関連付ける。一次作成工程は、複数の分類カテゴリのうち少なくとも１つを対象カテゴリとして、当該対象カテゴリに関連付けられた教師画像について求めた複数種の特徴量の値の組を、当該対象カテゴリと関連付けられた教師データとする。二次作成工程は、一の教師データに基づき、複数種の特徴量からなる特徴空間において当該教師データが占める点からの距離が所定距離以内である点に対応する新たな特徴量の値を生成し、それらの特徴量の値と対象カテゴリとを関連付けて新たな教師データとする。【００１０】
特許文献２において、教師データに対応する点を体心とする超立方体の頂点とする方法では、当該教師データを表す各種特徴量の少なくとも１つにおいてその値に所定値を加算することのみによって新たな教師データを生成することができる。教師画像の数が少ない分類カテゴリを対象カテゴリとして教師データの補充を行うようにすれば、教師データ数の不均衡に起因する過学習の不都合を効果的に回避することが可能である。事前学習処理は、必要に応じて教師データを補充して再学習を行うことができるように構成されている。また、既に存在する教師データが特徴量空間において占める点の近傍に、補充により作成される新たな教師データに対応する点を派生させることにより、教師データの補充を行う。すなわち、実画像として欠陥画像を模した画像を生成することはすいない。このため、特徴量空間における既存の教師データからの新たな教師データまでの距離を限定されたものとすることができる。【００１１】
また、特許文献２は、特徴量算出部と、欠陥分類部とを含む欠陥分類装置（画像分類装置）を開示している。特徴量算出部は欠陥画像を特徴付ける複数の特徴量の値を算出する。欠陥分類部は、算出された特徴量の値に基づき、事前学習により構成された分類器を用いて当該欠陥画像を複数の分類カテゴリのいずれかに分類する。欠陥分類部は、検出された欠陥をＳＶＭ（サポートベクタマシン；Support Vector Machine）、ニューラルネットワーク、決定木、判別分析等の学習アルゴリズムを利用して分類する処理をソフトウェア的に実行する。【００１２】
特許文献３は、パターン認識の処理の精度を保ち、かつ、高速化することができる「パターン認識用辞書生成装置」を開示している。特許文献３に開示されたパターン認識用辞書生成装置は、プロセッサと、このプロセッサに接続された記憶媒体とを備える。記憶媒体には、複数の学習用のパターンから構成される学習用パターンデータベースが格納されている。パターン認識用辞書生成装置は、パターン入力部と、ｎ次元特徴を抽出する特徴抽出部と、特徴選択辞書生成部と、特徴選択部と、識別関数生成部と、識別関数主要部分抽出部とを備える。【００１３】
このパターン認識用辞書生成装置において、特徴選択辞書生成部は、ｍ次元特徴にｎ次元特徴を変換する特徴選択関数を生成し、特徴選択用辞書として記憶媒体に格納する。特徴選択部は、特徴選択関数を用いて、抽出されたｎ次元特徴をｍ次元特徴に変換する。識別関数生成部は、パターンの類似度を算出するための詳細識別関数を生成し、識別用辞書として記憶媒体に格納する。識別関数主要部分抽出部は、まず、ｎ次元特徴空間の部分空間で、かつ、ｍ次元特徴空間の部分空間であるＬ次元特徴空間上のＬ次元特徴にｍ次元特徴を変換する大分類特徴選択関数を生成する。引き続いて、識別関数主要部分抽出部は、詳細識別関数をＬ次元特徴空間上の関数として変換することによって、Ｌ次元特徴空間上で各カテゴリに対する認識対象のパターンの類似度を算出するための大分類識別関数を生成する。そして、識別関数主要部分抽出部は、大分類特徴選択関数を特徴選択用辞書として記憶媒体に格納し、大分類識別関数を識別用辞書として記憶媒体に格納する。
【００１４】
パターン認識では、認識処理の高速化のため、まず、高速に計算できる大分類識別関数によって、正解候補カテゴリを絞る粗い認識処理が実行される。その後、正解候補カテゴリとして詳細識別関数を用いて、正解候補カテゴリの各々に対する入力パターンの類似度が算出され、最終的な認識結果が出力される。パターン認識装置は、学習フェーズにおいて、大分類用特徴変換関数と大分類識別関数とをそれぞれ特徴選択用辞書と識別用辞書とに出力する識別関数主要部分抽出部を備える。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１７−０３７３９２号公報
【特許文献２】特開２０１４−１７８２２９号公報
【特許文献３】特開２０１１−００８６３４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
深層ネットワークを学習する際には、一般的に大量の学習データを必要とし、少数の学習データで学習することは困難である。その理由は、深層ネットワークでは学習すべきパラメータが非常に多く、学習データが少数の場合、過学習によって汎化性能が大きく低下するためである。この問題を解決するために最も良く採用される方法は、学習データを加工して擬似的にデータを増やす方法である。【００１７】
学習データを加工して擬似的にデータを増やす方法には、大きく２種類の方法がある。1つの方法は「データ拡張方法」であり、もう1つの方法は「敵対的パターン生成方法」である。【００１８】
データ拡張方法は、学習データに摂動（例えば、並進移動、回転、スケール変化など）を加えることでデータを生成する手法である。データ拡張方法による生成では、実際にニューラルネットワークに入力され得るデータを生成できる。しかしながら、一方で、データ拡張方法による生成では、ニューラルネットワークの学習の改善に寄与するデータを生成するとは限らず、効率的ではないという問題がある。【００１９】
敵対的パターン生成方法は、学習データに対して機械による認識が困難になるように人工的な微小ノイズを付加する方法である。しかしながら、敵対的パターン生成方法では、生成されるデータが学習データの分布に沿っているかを考慮していないため、実際には存在しえないノイジーなデータを生成してしまう場合がある。その結果、敵対的パターン生成方法では、ニューラルネットワークの学習の改善に寄与するデータを効率的に生成することが難しい。【００２０】
一方、前述した特許文献１〜３には、それぞれ、次に述べるような問題がある。【００２１】
特許文献１は、単に、追加中間層を中間層として新たに生成するなどして、ニューラルネットワークの構造を最適化する技術を開示しているに過ぎない。すなわち、特許文献１は、学習データを増加する手法について何ら開示も示唆もしていない。【００２２】
特許文献２は、教師データ数の不均衡に起因する過学習等の不都合を効果的に回避するために、教師画像の数が少ない分類カテゴリを対象カテゴリとして教師データの補充を行なう技術的思想を開示している。すなわち、特許文献２では、前述したデータ拡張方法と同様に、教師データを表す各種特徴量の少なくとも１つにおいてその値に所定値を加算することで新たな教師データを生成している。その結果、上記データ拡張方法と同様に、特許文献２の開示の技術的思想では、ニューラルネットワークの学習の改善に寄与するデータを生成するとは限らず、効率的ではないという問題がある。【００２３】
特許文献３は、学習フェーズにおいて、識別関数主要部分抽出部が、ｍ次元特徴をＬ次元特徴に変換する大分類用特徴変換関数と、Ｌ次元特徴空間上で各カテゴリに対する認識対象のパターンの類似度を算出するための大分類識別関数とを生成する、技術的思想を開示しているに過ぎない。また、特許文献３は、ニューラルネットワークを学習してはいないし、学習データを加工する手法についても何ら開示も示唆もしていない。【００２４】
［発明の目的］
本発明の目的は、学習データが少数の場合に、学習データを加工することで、学習の改善に寄与するデータを効率的に生成し、これを学習することで性能の高いニューラルネットワークを学習することにある。
【課題を解決するための手段】
【００２５】
本発明のニューラルネットワーク学習装置は、学習中のニューラルネットワークを用いて学習データから特徴を抽出する特徴抽出部と、前記抽出した特徴から前記学習中のニューラルネットワークを用いて敵対的特徴を生成する敵対的特徴生成部と、前記抽出した特徴と前記敵対的特徴とを用いて前記ニューラルネットワークの認識結果を算出するパターン認識部と、前記認識結果が望ましい出力に近づくように前記ニューラルネットワークを学習するネットワーク学習部とを備える。
【発明の効果】
【００２６】
本発明の効果は、学習データを加工することで、学習の改善に寄与するデータを効率的に生成し、これを学習することで性能の高いニューラルネットワークを学習できる点である。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係るニューラルネットワーク学習装置の構成を示すブロック図である。
【図２】図１に示したニューラルネットワーク学習装置の動作を説明するためのフローチャートである。
【図３】ニューラルネットワークの一例を示す図である。
【図４】学習データから特徴を抽出する一例を示す図である。
【図５】学習すべきニューラルネットワークの一例を示す図である。
【図６】図１に示したニューラルネットワーク学習装置を用いて生成されたデータ（学習の改善に寄与するデータ）を説明するための図である。
【図７】関連技術における敵対的パターン生成方法により生成されたデータ（現実には存在しえないデータ）を説明するための図である。
【図８】関連技術におけるデータ拡張方法により生成されたデータ（学習の改善に寄与しないデータ）を説明するための図である。
【発明を実施するための形態】
【００２８】
[構成の説明]
図１は、本発明の一実施の形態に係るニューラルネットワーク学習装置１０の構成を示すブロック図である。図示のニューラルネットワーク学習装置１０は、特徴抽出部１２と、敵対的特徴生成部１４と、パターン認識部１６と、ネットワーク学習部１８とから成る。
【００２９】
特徴抽出部１２は、学習中のニューラルネットワークを用いて学習データから特徴を抽出する。敵対的特徴生成部１４は、特徴抽出部１２で抽出した特徴から学習中のニューラルネットワークを用いて敵対的特徴を生成する。パターン認識部１６は、抽出した特徴と敵対的特徴とを用いてニューラルネットワークの認識結果を算出する。ネットワーク学習部１８は、認識結果が望ましい出力に近づくようにニューラルネットワークを学習する。ここで、抽出した特徴と敵対的特徴との組み合わせは、学習データを加工することによって生成されたデータに相当する。
【００３０】
[動作の説明]
図１と図２を参照して、本実施形態の動作について詳細に説明する。図２は、図１に示したニューラルネットワーク学習装置１０の動作を説明するためのフローチャートである。
【００３１】
特徴抽出部１２は、現在学習中のニューラルネットワークを用いて、入力された学習データから特徴を抽出する（ステップＳ１０１）。敵対的特徴生成部１４は、特徴抽出部１２で抽出された特徴に対して、現在学習中のニューラルネットワークによる認識が難しくなるように摂動を付加し、敵対的特徴を生成する（ステップＳ１０２）。パターン認識部１６は、特徴抽出部１２で抽出された特徴と敵対的特徴生成部１４で生成された敵対的特徴のそれぞれについて、現在学習中のニューラルネットワークを用いた認識結果を算出して出力する（ステップＳ１０３）。ネットワーク学習部１８は、パターン認識部１６から出力された認識結果が望ましい認識結果となるようにニューラルネットワークを更新して学習する（ステップＳ１０４）。
【００３２】
本実施形態の効果について説明する。本実施形態の効果は、特徴空間上で敵対的特徴を生成して学習データを加工することで、学習の改善に寄与するデータを効率的に生成し、このように生成されたデータを用いてニューラルネットワークを学習することで性能の高いニューラルネットワークを学習できる点である。
【００３３】
その理由は次の通りである。特徴空間は学習データの分布を良く表現する空間である。そのため、特徴空間上に存在するパターンの近傍は、そのパターンと意味が類似しているパターンの集合であると考えられる。したがって、特徴空間上で敵対的特徴を生成することで、パターンの意味が類似したパターンの中で、最も認識が難しいパターンを生成することができ、ニューラルネットワークの学習の改善に寄与するデータを効率的に生成することができるからである。
【００３４】
関連技術の方法と比較した時の本実施形態の効果を、図６〜８を用いて具体例を元に詳細に説明する。この例では２次元の入力パターンに対して、●と×の２クラスを識別する場合を示している。また、データは２次元で表現されているが、実際には点線で示す１次元の部分空間にしか存在しないとする。このように、学習データが特徴空間の部分空間にしか分布しないという状況は、パターン認識の分野では一般的に起こりうる。
【００３５】
関連技術のデータ拡張方法を用いてデータを生成した場合、データに起こり得る摂動を事前に指定してデータを生成する。このため、データ拡張方法は、図８のように学習データの分布（図中の点線）に沿ったデータを生成できる。しかしながら、データ拡張方法は、ニューラルネットワークの学習の改善に寄与するかどうかを考慮していない。その結果、データ拡張方法では効率的にニューラルネットワークの学習の性能を向上することが難しいという問題がある。
【００３６】
一方、関連技術の敵対的パターン生成方法では、識別が難しくなるようにデータを生成する。このため、敵対的パターン生成方法は、図７のように識別境界に近いデータを生成することができる。しかしながら、敵対的パターン生成方法は、生成されるデータが学習データの分布に沿っているかを考慮していない。その結果、敵対的パターン生成方法では、実際には存在しえないデータ（点線上以外のデータ）を生成してしまい、そのように生成されたデータはニューラルネットワークの学習の改善には必ずしも寄与しない。
【００３７】
これに対して、本実施形態では、図６に示すように、学習データの分布を良く表現する１次元の特徴空間上で敵対的特徴を生成する。このため、本実施形態は、学習データの分布に沿い、かつ識別境界に近いデータを生成するように、学習データを加工することができる。その結果、この加工して得られたデータを使用してニューラルネットワークを学習することにより、効率的にニューラルネットワークの性能を向上できる。
【００３８】
次に、本発明の理解を更に容易にするために、本実施形態と上記特許文献１〜３に記載の発明との間の相違点について説明する。
【００３９】
特許文献１に開示された発明では、ニューラルネットワークの構造を修正することによって、ニューラルネットワークの構造を最適化している。これに対して、本実施形態では、ニューラルネットワークの構造を修正することなく、ニューラルネットワークに入力されるべき学習データを加工し、加工して生成されたデータを用いてニューラルネットワークを学習している。
【００４０】
特許文献２に開示された発明では、欠陥分類部のニューラルネットワーク等の学習アルゴリズムを使用することなく、専用の特徴量算出部が特徴量の値を算出している。これに対して、本実施形態では、特徴抽出部１２が、学習中のニューラルネットワークを用いて学習データから特徴を抽出している。また、特許文献２に開示された発明では、事前学習において、教師データ数が不足している場合に、教師データの近傍に新たな教師データを生成（補充）している。これに対して、本実施形態では、新たな教師データ（学習データ）を生成（補充）しているのではなく、ニューラルネットワークに供給される学習データを加工して、ニューラルネットワークの学習の改善に寄与するデータを効率的に生成している。
【００４１】
特許文献３に開示された発明では、特徴抽出部がｎ次元特徴を抽出しているが、抽出するために具体的にどのようなアルゴリズムを使用しているかについては記載していない。これに対して、本実施形態では、特徴抽出部が、学習中のニューラルネットワークを用いて学習データから特徴を抽出している。特許文献３に開示された発明では、複数の学習用のパターンからパターン認識用辞書を生成している。これに対して、本実施形態では、パターン認識用辞書を生成しているのではなく、学習データを使用し加工し、加工して生成されたデータを用いてニューラルネットワークを学習している。
【００４２】
このように、本実施形態と特許文献１〜３に記載された発明とは、解決しようとする課題、構成、および作用効果が全く相違する。
【実施例１】
【００４３】
次に、具体的な第１の実施例を用いて、本発明を実施するための形態の動作を説明する。本第１の実施例では、図３に示すニューラルネットワーク３０を学習する例を示す。【００４４】
ニューラルネットワーク３０は、入力層３１と、中間層３２と、出力層３３とから成る。入力層３１には２次元の学習パターンが入力される。ニューラルネットワーク３０は、1つの隠れユニットを持つ中間層３２を経て、出力層３３から２クラスの識別結果であるクラスごとの確率を出力する。本例では、層３１〜３３の間は全て全結合とし、活性化関数は恒等関数とする。【００４５】
特徴抽出部１２では、ニューラルネットワーク３０を用いて、学習データから特徴を抽出する。図３のニューラルネットワーク３０を用いる場合、特徴抽出部１２は、図４に示すように、２次元の入力パターンから点線で示す１次元の特徴を抽出する。【００４６】
敵対的特徴生成部１４では、特徴抽出部１２で抽出した特徴と現在学習中のニューラルネットワーク３０を用いて敵対的特徴を生成する。図３のニューラルネットワーク３０では、中間層３２で抽出した１次元の特徴量を用いて閾値処理によって識別を行っているため、敵対的特徴生成部１４は、特徴が閾値に近づくように摂動を付加して敵対的特徴を生成する。例えば、敵対的特徴生成部１４は、図４中の特徴Ａに対しては、出力層３３の●のクラスに属する確率を出力するユニットの出力が小さくなり、×のクラスに属する確率を出力するユニットの出力が大きくなるように、敵対的特徴Ａ’を生成する。【００４７】
パターン認識部１６では、特徴抽出部１２で抽出された特徴と敵対的特徴生成部１４で生成された敵対的特徴のそれぞれについて、学習中のニューラルネットワーク３０を用いた認識結果を算出する。図４の例では、パターン認識部１６は、特徴Ａを正しく●のクラスと識別するが、敵対的特徴Ａ’を×のクラスと識別する。【００４８】
ネットワーク学習部１８では、パターン認識部１６から出力された認識結果が望ましい認識結果となるようにニューラルネットワーク３０を更新して学習する。図４の例では、ネットワーク学習部１８は、敵対的特徴Ａ’を●のクラスと識別されるように、識別境界（特徴量の閾値）が右にずれるように学習する。【００４９】
このように、本第１の実施例では、敵対的特徴を学習データの存在する部分空間内で生成してニューラルネットワークを学習することで、識別境界をサンプルから大きく遠ざけることができる。その結果、マージンが大きく汎化性能の高いニューラルネットワークを学習することができる。
【実施例２】
【００５０】
次に、中間層が多層になった場合の第２の実施例について、発明を実施するための形態の動作を説明する。本第２の実施例では、図５に示すニューラルネットワーク５０を学習する例を示す。【００５１】
ニューラルネットワーク５０は、入力層５１と、中間層５２と、出力層５３とから成る。このようなニューラルネットワーク５０では、入力層５１には学習パターンが入力され、出力層５３から認識結果が出力される。中間層５２はＨ１層５２１、Ｈ２層５２２、Ｈ３層５２３、およびＨ４層５２４の４層からなる。【００５２】
特徴抽出部１２では、現在学習中のニューラルネットワーク５０を用いて、学習データから特徴を抽出する。図５のニューラルネットワーク５０を用いる場合、特徴抽出部１２は、例えば中間層５２からランダムに１層選択し、その中間層５２の値を特徴として出力する。ここでは、特徴抽出部１２は、Ｈ３層５２３の値を特徴として出力したとする。
【００５３】
入力パターンをx、学習中のネットワークのパラメータをθとすると、抽出する特徴zは以下のように書ける。【００５４】
【数１】
0006781415.tif 000002
【００５５】
ただし、f(x|θ,A,B)は、θをパラメータとするネットワークにおいてA層の値をxとした時のB層の値を算出する操作である。特徴を出力する中間層５２の選択は、ランダムに行っても良いし、事前に決めた方法に従って決定論的に決めても良い。【００５６】
敵対的特徴生成部１４では、特徴抽出部１２で抽出した特徴と現在学習中のニューラルネットワーク５０を用いて敵対的特徴を生成する。敵対的特徴を生成する方法としては、関連技術の敵対的パターン生成方法と同様の方法を用いることができる。例えば、Virtual Adversarial Training（VAT）を用いた場合、zに対する敵対的特徴z’は、以下のように生成される。【００５７】
【数２】
0006781415.tif 000003
【００５８】
ここで、f(z|θ,H3,Out)とf(z+r|θ,H3,Out)はいずれも出力層の出力であるため、入力パターンが所属するクラスの確率分布となっている。KL(p,q)は２つの離散確率分布pとqの間のKLダイバージェンスを算出する関数である。【００５９】
【数３】
0006781415.tif 000004
【００６０】
ただし、iは確率分布のインデックスであり、本第２の実施例では出力層５３のユニットのインデックスである。【００６１】
本第２の実施例では、敵対的特徴生成部１４は、大きさがε以下の摂動のうち、出力層５３の値が最も大きく変化するような摂動をzに付加することで、敵対的特徴を生成している。【００６２】
パターン認識部１６では、特徴抽出部１２で抽出された特徴と敵対的特徴生成部１４で生成された敵対的特徴のそれぞれについて、学習中のニューラルネットワーク５０を用いた認識結果を算出する。本第２の実施例では、パターン認識部１６は、zとz’についてそれぞれ出力層５３の値を計算する。【００６３】
【数４】
0006781415.tif 000005
【００６４】
ここで、yは元の学習データに対する認識結果、y’は敵対的特徴に対する認識結果である。【００６５】
ネットワーク学習部１８では、パターン認識部１６から出力された認識結果が望ましい認識結果となるようにニューラルネットワーク５０を更新して学習する。ネットワークの更新方法は、一般的に良く用いられる誤差逆伝播法に基づく勾配法などを用いることができる。例えば、最も単純な最急降下法を用いた場合、ニューラルネットワークのパラメータは以下のように更新される。【００６６】
【数５】
0006781415.tif 000006
【００６７】
ここで、tは望ましい認識結果を示す教師信号、μは学習率である。【００６８】
このように、本第２の実施例でも、敵対的特徴を学習データの存在する部分空間内で生成してニューラルネットワークを学習することで、識別境界をサンプルから大きく遠ざけることができる。その結果、マージンが大きく汎化性能の高いニューラルネットワークを学習することができる。
【実施例３】
【００６９】
次に、本発明の第３の実施例について説明する。敵対的特徴を更に学習データの分布に沿わせるため、敵対的特徴あるいは敵対的特徴を生成するための摂動に対して制約を導入することもできる。【００７０】
上記第１の実施例においては、敵対的特徴を生成するための摂動r*に対する制約は、大きさがε以下であるという拘束条件だけであった。これに対して、本第３の実施例では、例えば、学習データの線形結合で表現できるという拘束条件を導入している。線形結合の係数をcとすると、摂動rは以下のように書ける。【００７１】
【数６】
0006781415.tif 000007
【００７２】
ただし、Zは学習データから抽出した特徴（z_1,…,z_M）を並べた行列である。この時、敵対的特徴z’は以下のように生成できる。【００７３】
【数７】
0006781415.tif 000008
【００７４】
このように、本第３の実施例でも、敵対的特徴を学習データの存在する部分空間内で生成してニューラルネットワークを学習することで、識別境界をサンプルから大きく遠ざけることができる。その結果、マージンが大きく汎化性能の高いニューラルネットワークを学習することができる。【００７５】
このように学習して得られたニューラルネットワークを用いることによって、パターン認識装置を実現することが可能である。すなわち、パターン認識装置は、上述したニューラルネットワーク学習装置１０を用いて学習したニューラルネットワーク３０又は５０に基づいて、パターン認識を行う。【００７６】
尚、ニューラルネットワーク学習装置１０の各部（各構成要素）は、ハードウェアとソフトウェアとの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、ＲＡＭ（random access memory）にニューラルネットワーク学習プログラムが展開され、該プログラムに基づいて制御部（ＣＰＵ（central processing unit））等のハードウェアを動作させることによって、各部（各構成要素）を各種手段として実現する。また、該プログラムは、記録媒体に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。【００７７】
上記実施の形態（実施例）を別の表現で説明すれば、ニューラルネットワーク学習装置１０として動作させるコンピュータを、ＲＡＭに展開されたニューラルネットワーク学習プログラムに基づき、特徴抽出部１２、敵対的特徴抽出部１４、パターン認識部１６、およびネットワーク学習部１８として動作させることで実現することが可能である。【００７８】
以上説明したように、本発明の実施の形態（実施例）によれば、少数の学習データでも効率よくニューラルネットワークを学習することができる。【００７９】
また、本発明の具体的な構成は前述の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。【００８０】
以上、実施の形態および実施例を参照して本願発明を説明したが、本願発明は上記実施の形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【００８１】
本発明は、画像処理や音声処理において、例えば顔認識や物体認識などのように、パターンを識別する用途に使用することができる。
【符号の説明】
【００８２】
１０    ニューラルネットワーク学習装置
１２    特徴抽出部
１４    敵対的特徴生成部
１６    パターン認識部
１８    ネットワーク学習部
３０    ニューラルネットワーク
３１    入力層
３２    中間層
３３    出力層
５０    ニューラルネットワーク
５１    入力層
５２    中間層
５２１    Ｈ１層
５２２    Ｈ２層
５２３    Ｈ３層
５２４    Ｈ４層
５３    出力層
【図１】
0006781415.tif 000009
【図２】
0006781415.tif 000010
【図３】
0006781415.tif 000011
【図４】
0006781415.tif 000012
【図５】
0006781415.tif 000013
【図６】
0006781415.tif 000014
【図７】
0006781415.tif 000015
【図８】
0006781415.tif 000016