(57)【要約】【課題】深層学習を効率的に行なうことができる。【解決手段】学習装置１０は、深層学習に用いられる乱数を非線形関数に入力してデータを生成する数理モデルを有する生成部１１と、生成部１１に対して、Unscented  transform（ＵＴ）を用いた分散及び平均の事前学習を実行させる事前学習部１３と、を有する。事前学習部１３は、ＵＴを用いて、生成部１１から生成されるデータの分散及び平均を推定し、推定した分散及び平均と、事前に計算した真のデータの分散及び平均との類似度を評価する評価関数を最小化するように生成部１１のパラメータを更新する。【選択図】図１
2020030702.tif 000002
【特許請求の範囲】
【請求項１】
深層学習に用いられる乱数を非線形関数に入力してデータを生成する数理モデルを有する生成部と、
前記生成部に対して、Unscented  transformを用いた分散及び平均の事前学習を実行させる事前学習部と、
を有することを特徴とする学習装置。
【請求項２】
前記事前学習部は、前記Unscented  transformを用いて、前記生成部から生成されるデータの分散及び平均を推定し、推定した分散及び平均と、事前に計算した真のデータの分散及び平均との類似度を評価する評価関数を最小化するように前記生成部のパラメータを更新することを特徴とする請求項１に記載の学習装置。
【請求項３】
前記事前学習部は、前記推定した分散及び平均と、前記事前に計算した真のデータの分散及び平均との二乗のノルムを最小化するように前記生成部のパラメータを更新することを特徴とする請求項２に記載の学習装置。
【請求項４】
学習装置が実行する学習方法であって、
前記学習装置は、深層学習に用いられる乱数を非線形関数に入力してデータを生成する数理モデルを有する生成部を有し、
前記生成部に対して、Unscented  transformを用いた分散及び平均の事前学習を実行させる事前学習工程
を含んだことを特徴とした学習方法。
【請求項５】
コンピュータを請求項１〜３のいずれか一つに記載の学習装置として機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
深層学習、すなち、ディープニューラルネットワークは、画像認識や音声認識などで大きな成功を収めている（非特許文献１参照）。特に、画像などのデータを新たに生成する生成モデルというタスクにおいては、Generative  Adversarial  Network（ＧＡＮ）が用いられる。ＧＡＮは、乱数を入力とし非線形変換などを行って画像などを生成する生成器と、生成されたデータか、真のデータかを識別する識別器からなるモデルである。複雑な画像データを高精度に生成するためには、大量のデータと長時間の学習が必要である。そこで深層学習ではあらかじめ簡単なタスクを学習させることで学習を効率化するCurriculum  Learning（非特許文献２参照）やプレトレーニングが提案されている。
【０００３】
例えば、ＧＡＮのプレトレーニングでは。系列データに対し尤度を使う手法などが提案されている（非特許文献３参照）。また、Unscented  transform（ＵＴ）は、非線形な動的システムの状態推定に用いられてきた（非特許文献４参照）。ＵＴは、共分散行列と平均とが既知の確率変数が、非線形関数に入力されたときに、その出力の平均と分散を推定する技術である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ian  Goodfellow,  Yoshua  Bengio,  and  Aaron  Courville.  Deep  learning.  MIT  press,  2016.
【非特許文献２】Yoshua  Bengio,  et  al.  “Curriculum  Learning”  Proceedings  of  the  26th  annual  international  conference  on  machine  learning.  ACM,  2009.
【非特許文献３】Lantao  Yu,et  al.  “SeqGAN:  Sequence  Generative  Adversarial  Nets  with  Policy  Gradient”.  AAAI.2017.
【非特許文献４】片山徹.  非線形カルマンフィルタ.  朝倉書店,  2011.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献３記載の手法では、確率モデルを仮定して尤度関数を設定するという複雑な処理が必要であり、深層学習を効率的に行なうことが難しい場合があった。このため、複雑な画像データを高精度に生成するためには、依然、大量のデータと長時間の学習が必要である。
【０００６】
本発明は、上記に鑑みてなされたものであって、深層学習を効率的に行なうことができる学習装置、学習方法及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係る学習装置は、深層学習に用いられる乱数を非線形関数に入力してデータを生成する数理モデルを有する生成部と、生成部に対して、Unscented  transformを用いた分散及び平均の事前学習を実行させる事前学習部と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、深層学習を効率的に行なうことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態に係る学習装置の概略構成を示す模式図である。
【図２】図２は、深層学習モデルを説明する図である。
【図３】図３は、ＧＡＮの学習を説明する図である。
【図４】図４は、図１に示す生成部へのＵＴの適用を説明する図である。
【図５】図５は、本実施の形態に係る事前学習処理の処理手順を示すフローチャートである。
【図６】図６は、プログラムが実行されることにより、学習装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。また、以下では、ベクトル、行列又はスカラーであるＡに対し、“＾Ａ”と記載する場合は「“Ａ”の直上に“＾”が記された記号」と同等であるとする。
【００１１】
［実施の形態］
まず、実施の形態に係る学習装置について、概略構成、評価処理の流れ及び具体例を説明する。図１は、実施の形態に係る学習装置の概略構成を示す模式図である。図２は、深層学習モデルを説明する図である。図３は、ＧＡＮの学習を説明する図である。
【００１２】
実施の形態に係る学習装置１０は、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＰＵ（Central  Processing  Unit）等を含むコンピュータ等に所定のプログラムが読み込まれて、ＣＰＵが所定のプログラムを実行することで実現される。また、学習装置１０は、ＮＩＣ（Network  Interface  Card）等を有し、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置との間の通信を行うことも可能である。学習装置１０は、ＧＡＮを用いた学習を行う。図１に示すように、学習装置１０は、生成部１１と識別部１２と事前学習部１３とを有する。生成部１１と識別部１２とは、深層学習モデル１４，１５を有する。
【００１３】
生成部１１は、深層学習に用いられる乱数を非線形関数に入力してデータを生成する数理モデル（深層学習モデル１４（図２参照））を有する。生成部１１は、深層学習モデル１４を用い、図３に示すように、乱数を入力とし擬似データを生成する。生成部１１に入力される乱数は、乱数生成された値であり、深層学習による画像生成に用いられる乱数である。生成部１１は、この乱数を非線形関数に入力してデータを生成する。
【００１４】
図２に示すように、深層学習のモデルは、信号の入る入力層、入力層からの信号を様々に変換する１層または複数の中間層、中間層の信号を確率などの出力に変換する出力層を有する。
【００１５】
入力層には入力データが入力される。また、出力層からは、例えばＧＡＮを使った画像生成における生成器の場合、生成された擬似画像の画素値が出力される。一方、ＧＡＮの識別器の出力は、例えば、入力が真のデータか擬似データかのスコアを０から１の範囲で出力する。
【００１６】
識別部１２は、学習したいデータと生成部１１が生成したデータとを入力として、深層学習モデル１５（図３参照）を用い、生成したデータが真のデータかどうかを識別する。そして、識別部１２では、生成したデータがより真のデータに近づくように、識別部１２の深層学習モデル１４のパラメータを調整する。
【００１７】
事前学習部１３は、生成部１１に対して、ＵＴを用いた分散及び平均の事前学習を実行させる。事前学習部１３は、ＵＴにより非線形変換後の分散及び平均を用いて生成部１１に事前学習を行わせる。具体的には、事前学習部１３は、ＧＡＮの学習を行う前に、ＵＴを用いて、生成部１１から生成される擬似データの分散及び平均を推定する。事前学習部１３は、推定した分散及び平均と、事前に計算した真のデータの分散及び平均との類似度を評価する評価関数を最小化するように生成部１１のパラメータθを更新する。すなわち、事前学習部１３は、生成部１１において生成されるデータ（疑似データ）の分散及び平均を推定するとともに、真のデータの分散及び平均を計算し、これらの二乗のノルムを最小化するように生成部１１のパラメータθを更新する。
【００１８】
このように、学習装置１０は、事前学習において、データの分散と平均を用いるため、尤度に基づく手法と異なり確率モデルを仮定して尤度関数を設定する必要がない。したがって、学習装置１０は、簡単かつ低計算量でデータの統計量を事前に学習することによって、学習を効率化できる。
【００１９】
［ＧＡＮの概要］
ＧＡＮでは、列ベクトルであるデータｘの確率分布を、正規分布などの確率分布ｐｚ（ｚ）に従う列ベクトルである乱数ｚを使って（１）式に示すような最適化を行う。
【００２０】
【数１】
2020030702.tif 000003
【００２１】
ここでＤとＧは、それぞれ識別器（識別部１２）、生成器（生成部１１）と呼ばれ、ニューラルネットワークでモデル化する。この最適化はＤとＧを交互に学習させることで行う。Ｄは事前に学習させることも考えられるが、Ｄが完全な識別器になってしまうと勾配が０となり学習が失敗するため、ＤとＧとはバランスよく学習させなければならない。
【００２２】
また、ＧＡＮの学習では、Ｇ（ｚ）の分布とデータの分布ｐｄａｔａ（ｘ）の分布が離れすぎると、Ｇの勾配がほぼ０となり学習が進まない。ＧＡＮの派生技術としてWasserstein  distance（earth  mover  distance）に基づくＷＧＡＮが提案されている。ＷＧＡＮでは、（２）式に示すWasserstein  distanceが、最小となるようにθを学習する。
【００２３】
【数２】
2020030702.tif 000004
【００２４】
ここで、Ｄ（識別器ではなくcriticと呼ぶ）はWasserstein  distanceを求めるためにＫリプシッツであるという条件があり、Ｗはこの条件を満たすパラメータ集合をさす。ＷＧＡＮであれば、Ｄの最大化をＧの学習より進めても問題がない。ＫリプシッツであるためにＷをコンパクト集合にする必要があり、ＷＧＡＮではパラメータの大きさを適切な方法で制約することによって、これを実現する。その他にＬＳＧＡＮなどのＧＡＮの派生技術があるが、本実施の形態では、これらの手法に依らずＧが乱数を入力としデータを生成するモデルであれば適用可能である。
【００２５】
［ＵＴの概要］
ある確率変数ｚ∈Ｒｎ平均をμｚとし、共分散行列をΣｚｚとする。そして、列ベクトルｘ＝ｆ（ｚ）を、任意の非線形要素ｆ：Ｒｎ→Ｒｐとする。このとき、ｘの平均μｘと、分散行列Σｘｘと、共分散行列Σｚｘとを近似計算によって求める。まず、（３）式及び（４）式を満たす２ｎ＋１個の代表点（シグマ点）｛ｚ（ｌ），ｌ＝０，・・・，２ｎ｝を考える。
【００２６】
【数３】
2020030702.tif 000005
【００２７】
【数４】
2020030702.tif 000006
【００２８】
ただしＷ（ｌ）は、重み係数であり、（５）式を満たす。
【００２９】
【数５】
2020030702.tif 000007
【００３０】
次に、シグマ点に対して、非線形変換を計算し、ｘ（ｌ）＝ｓ（ｚ（ｌ））を得る。この変換した２ｎ＋１個の点の重みつき平均値を計算し（６）式を得る。
【００３１】
【数６】
2020030702.tif 000008
【００３２】
最後に共分散行列Σｚｘを以下の（７）式を用いて計算する。
【００３３】
【数７】
2020030702.tif 000009
【００３４】
以上の方法によって、ＵＴは、非線形変換後の確率変数の平均と共分散とを推定することができる。次に、その計算に必要なシグマ点の選択方法について説明する。
【００３５】
［シグマ点の選択］
まず、Σｚｚの平方根行列Ｂ∈Ｒｎ×ｎを（８）式とする。
【００３６】
【数８】
2020030702.tif 000010
【００３７】
このとき、シグマ点と重み係数とを（９）〜（１２）式とする。
【００３８】
【数９】
2020030702.tif 000011
【数１０】
2020030702.tif 000012
【数１１】
2020030702.tif 000013
【数１２】
2020030702.tif 000014
【００３９】
ここで、Ｗ（０）ｍとＷ（０）ｃは、それぞれ平均、共分散を求めるときの重みであり、κ、β、αは、ハイパーパラメータであるが、後述の通り設定の指針がある
【００４０】
［本実施の形態の手法］
以下に、本実施の形態明細書における手法について述べる。本実施の形態の学習方法の実現方法の一例として、生成部１１の入力を、平均０、分散Ｉの正規分布と仮定し、分散と平均の評価基準として、二乗ノルムを使用して説明するが、実現方法はこれに限らない。
【００４１】
［ＵＴを使ったＧＡＮの事前学習］
ＧＡＮにおいて、モデルに印加する前の確率変数ｚは平均０、分散Ｉの正規分布から求めることが多い。このとき、シグマ点は、（１３）式〜（１５）式により得られる
【００４２】
【数１３】
2020030702.tif 000015
【数１４】
2020030702.tif 000016
【数１５】
2020030702.tif 000017
【００４３】
ただし、ｕｌは直交ベクトルであり、例えば、適当な行列にＳＶＤ（Singular  Value  Decomposition）を施して得られる特異ベクトルなどを利用する。ＵＴを使用する際に、非線形関数にかけられるｚの分布が正規分布である場合、β＝２が最適であるとされる。また、κの値は重要ではないため、通常、＝０とすればよい。最後に、αは、０≦α≦１から選べばよい。αについては、非線形関数の非線形度が強いほど小さな値を選べばよいとされるが、高次元の場合は、大きな値がよいという結果もある。
【００４４】
図４は、図１に示す生成部１１へのＵＴの適用を説明する図である。図４に示すように、以上のＵＴを施すことでＧＡＮの生成部１１から得られる＾ｘ＝Ｇ（ｚ）の平均値と分散との近似値を求めることができる。
【００４５】
この際、＾ｘの分布の形は仮定していない。生成部１１がデータの生成モデルとなっている場合、生成部１１の出力の統計量（平均や分散など）とデータの統計量とは一致する。そこで、事前学習部１３の制御にしたがい、生成部１１は、データから、ｘの平均値μｘｄａｔａ、分散Σｘｄａｔａを計算し、これと、推定された生成部１１の平均μ＾ｘと分散Σ＾ｘとが一致するように事前学習を行う。
【００４６】
具体的には、それぞれの類似度を評価する評価関数を用意し、これを最小化するように生成部１１のパラメータθを更新する。この評価関数には、例えば、二乗ノルムを使って（１６）式のように設定する。
【００４７】
【数１６】
2020030702.tif 000018
【００４８】
事前学習部１３は、生成部１１による事前学習を、評価関数の値が小さい、一定時間学習を行った、などを基準に終了させる。そして、生成部１１及び識別部１２は、この事前学習によって得られた生成部１１のパラメータを初期値として、元々のＧＡＮの学習を行う。
【００４９】
この事前学習は、実際のデータの生成分布の学習と比較して簡単なタスクであり、また、データの数と比較して少ない２ｎ個のシグマ点で学習できる。さらに事前学習では、識別部１２を使用しないため、ＧＡＮの学習よりも非常に少ない計算量で学習可能である。例えば、データ数をＮとすると、データの平均値μｘｄａｔａ、分散Σｘｄａｔａの計算オーダーは、Ｏ（Ｎｐ）、Ｏ（Ｎｐ２）である。例えば、例えば、ｎユニット１層のパーセプトロンの１エポックあたりの逆誤差伝搬の計算量がＯ（Ｎｎ２）であることと比べると、データの平均値μｘｄａｔａ、分散Σｘｄａｔａの計算オーダーは小さい。そして、事前学習によって生成部１１が真の生成分布と近いサンプルを生成し、勾配が得られやすくなる等の効果があるため、学習時間を短縮できる。
【００５０】
［事前学習処理］
次に、学習装置１０による事前学習処理の処理手順について説明する。図５は、本実施の形態に係る事前学習処理の処理手順を示すフローチャートである。
【００５１】
図５に示すように、事前学習部１３は、データの共分散及び平均を計算する（ステップＳ１）。続いて、事前学習部１３は、生成部１１に入力する乱数の平均、共分散からシグマ点と重みとを計算する（ステップＳ２）。事前学習部１３は、シグマ点を生成部１１に入力し、各出力を得る（ステップＳ３）。そして、事前学習部１３は、重み付け和を計算し、生成部１１の出力の平均と共分散の推定値を計算する（ステップＳ４）。
【００５２】
続いて、事前学習部１３は、平均と分散に関する評価関数で評価する（ステップＳ５）。例えば、事前学習部１３は、生成部１１において生成される疑似データの平均、分散の推定値と、真のデータの平均、分散との二乗のノルムを評価関数として使用し、推定した分散及び平均、事前に計算した真のデータの分散及び平均の類似度を評価する。
【００５３】
そして、事前学習部１３は、評価結果が評価基準を満たすか否かを判定する（ステップＳ６）。例えば、事前学習部１３は、二乗のノルムが所定の基準値以下となるか否かを判定する。
【００５４】
事前学習部１３は、評価結果が評価基準を満たさないと判定した場合（ステップＳ６：Ｎｏ）、事前学習部１３は、評価関数の最小化のために生成部１１のパラメータ更新を行い（ステップＳ７）、ステップＳ３以降の処理を実行する。一方、事前学習部１３は、評価結果が評価基準を満たすと判定した場合（ステップＳ６：Ｙｅｓ）、事前学習処理を終了する。
【００５５】
［実施の形態の効果］
上記のように、実施の形態に係る学習装置１０は、深層学習に用いられる乱数を非線形関数に入力してデータを生成する数理モデルを有する生成部に対して、ＵＴを用いた分散及び平均の事前学習を実行させる。具体的には、実施の形態では、事前学習において、ＵＴを用いて、前記生成部から生成されるデータの分散及び平均を推定し、推定した分散及び平均と、事前に計算した真のデータの分散及び平均との類似度を評価する評価関数を最小化するように前記生成部１１のパラメータを更新する。
【００５６】
このように、実施の形態によれば、事前学習において、データの分散と平均を用いるため、尤度に基づく手法と異なり確率モデルを仮定して尤度関数を設定する必要がない。したがって、実施の形態によれば、簡単かつ低計算量でデータの統計量を事前に学習することによって、学習を効率化できる。
【００５７】
［実施の形態のシステム構成について］
図１に示した学習装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、学習装置１０の機能の分散及び統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【００５８】
また、学習装置１０において行われる各処理は、全部または任意の一部が、ＣＰＵ及びＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、学習装置１０において行われる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００５９】
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【００６０】
［プログラム］
図６は、プログラムが実行されることにより、学習装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６１】
メモリ１０１０は、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００６２】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、学習装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、学習装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００６３】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００６４】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。或いは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００６５】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００６６】
１０  学習装置
１１  生成部
１２  識別部
１３  事前学習部
１４，１５  深層学習モデル
【図１】
2020030702.tif 000019
【図２】
2020030702.tif 000020
【図３】
2020030702.tif 000021
【図４】
2020030702.tif 000022
【図５】
2020030702.tif 000023
【図６】
2020030702.tif 000024