(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサによって、
少なくとも、
第１データと、第２ニューラルネットワークモデルを用いて生成された第２データと、を識別する第１ニューラルネットワークモデルに前記第１データを入力して得られた第１予測結果と、
前記第２データを前記第１ニューラルネットワークモデルに入力して得られた第２予測結果と、
前記第１ニューラルネットワークモデルの重み行列に基づく特異値と、
に基づいて、前記第１ニューラルネットワークモデルの重み行列を更新することと、
少なくとも、前記第２予測結果に基づいて、前記第２ニューラルネットワークモデルのパラメータを更新することと、
を備えるモデル生成方法。
【請求項２】
前記第１ニューラルネットワークモデルのパラメータは、少なくとも、前記第１予測結果に基づいて算出された評価値と、前記第２予測結果に基づいて算出された評価値と、前記第１ニューラルネットワークモデルの重み行列に基づく特異値と、に基づいて更新され、
前記第２ニューラルネットワークモデルのパラメータは、少なくとも、前記第２予測結果に基づいて算出された評価値に基づいて更新される、
請求項１記載のモデル生成方法。
【請求項３】
前記第１予測結果は、前記第１データが真である期待値に基づき、
前記第２予測結果は、前記第２データが偽である期待値に基づき、
前記第１予測結果に基づいて算出された評価値は、真値と前記第１予測結果との第１部分誤差に基づき、
前記第２予測結果に基づいて算出された評価値は、偽値と前記第２予測結果との第２部分誤差に基づく、
請求項１又は請求項２に記載のモデル生成方法。
【請求項４】
前記重み行列を更新することは、
前記重み行列の特異値に基づいて、前記重み行列を正規化することと、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新することと、
を備える、請求項１乃至請求項３のいずれかに記載のモデル生成方法。
【請求項５】
前記重み行列を更新することは、
前記重み行列の左特異ベクトル及び右特異ベクトルを更新することと、
前記左特異ベクトル及び前記右特異ベクトルに基づいて、前記重み行列を正規化することと、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新することと、
を備える、請求項１乃至請求項３のいずれかに記載のモデル生成方法。
【請求項６】
前記重み行列の前記左特異ベクトル及び前記右特異ベクトルを更新することは、
前記重み行列及び前記左特異ベクトルに基づいて、前記右特異ベクトルを更新することと、
前記重み行列及び更新された前記右特異ベクトルに基づいて、前記左特異ベクトルを更新することと、
を備える、請求項５に記載のモデル生成方法。
【請求項７】
前記重み行列の前記左特異ベクトル及び前記右特異ベクトルを更新することは、
前記右特異ベクトルのうち、右特異値が最大となる第１右特異ベクトル、及び、前記左特異ベクトルのうち、左特異値が最大となる第１左特異ベクトルを用いてそれぞれのベクトルを更新すること、
を備える、請求項６に記載のモデル生成方法。
【請求項８】
前記第１右特異ベクトル及び前記第１左特異ベクトルを、べき乗法を用いて算出すること、
をさらに備える、請求項７に記載のモデル生成方法。
【請求項９】
前記重み行列を正規化することは、
更新された前記左特異ベクトル及び更新された前記右特異ベクトルに基づいて、スペクトル正規化を行うこと、
を備える、請求項５乃至請求項８のいずれかに記載のモデル生成方法。
【請求項１０】
前記重み行列を更新することは、
確率的勾配降下法を用いて前記重み行列を更新することを備える、
請求項１乃至請求項９のいずれかに記載のモデル生成方法。
【請求項１１】
前記第１ニューラルネットワークモデル及び前記第２ニューラルネットワークモデルは、CNN（Convolutional Neural Network）である、
請求項１乃至請求項１０のいずれかに記載のモデル生成方法。
【請求項１２】
前記第１データ及び前記第２データは、画像データである、
請求項１乃至請求項１１のいずれかに記載のモデル生成方法。
【請求項１３】
少なくとも１つのメモリと、
少なくとも１つプロセッサを備え、
前記少なくとも１つのプロセッサは、
少なくとも、
第１データと、第２ニューラルネットワークモデルを用いて生成された第２データと、を識別する第１ニューラルネットワークモデルに前記第１データを入力して得られた第１予測結果と、
前記第２データを前記第１ニューラルネットワークモデルに入力して得られた第２予測結果と、
前記第１ニューラルネットワークモデルの重み行列に基づく特異値と、
に基づいて、前記第１ニューラルネットワークモデルの重み行列を更新することと、
少なくとも、前記第２予測結果に基づいて、前記第２ニューラルネットワークモデルのパラメータを更新することと、
を実行するよう構成されるモデル生成装置。
【請求項１４】
前記第１ニューラルネットワークモデルのパラメータは、少なくとも、前記第１予測結果に基づいて算出された評価値と、前記第２予測結果に基づいて算出された評価値と、前記第１ニューラルネットワークモデルの重み行列に基づく特異値と、に基づいて更新され、
前記第２ニューラルネットワークモデルのパラメータは、少なくとも、前記第２予測結果に基づいて算出された評価値に基づいて更新される、
請求項１３記載のモデル生成装置。
【請求項１５】
前記第１予測結果は、前記第１データが真である期待値に基づき、
前記第２予測結果は、前記第２データが偽である期待値に基づき、
前記第１予測結果に基づいて算出された評価値は、真値と前記第１予測結果との第１部分誤差に基づき、
前記第２予測結果に基づいて算出された評価値は、偽値と前記第２予測結果との第２部分誤差に基づく、
請求項１３又は請求項１４に記載のモデル生成装置。
【請求項１６】
前記重み行列を更新することは、
前記重み行列の特異値に基づいて、前記重み行列を正規化することと、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新することと、
を備える、請求項１３乃至請求項１５のいずれかに記載のモデル生成装置。
【請求項１７】
前記重み行列を更新することは、
前記重み行列の左特異ベクトル及び右特異ベクトルを更新することと、
前記左特異ベクトル及び前記右特異ベクトルに基づいて、前記重み行列を正規化することと、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新することと、
を備える、請求項１３乃至請求項１５のいずれかに記載のモデル生成装置。
【請求項１８】
前記重み行列の前記左特異ベクトル及び前記右特異ベクトルを更新することは、
前記重み行列及び前記左特異ベクトルに基づいて、前記右特異ベクトルを更新することと、
前記重み行列及び更新された前記右特異ベクトルに基づいて、前記左特異ベクトルを更新することと、
を備える、請求項１７に記載のモデル生成装置。
【請求項１９】
前記重み行列の前記左特異ベクトル及び前記右特異ベクトルを更新することは、
前記右特異ベクトルのうち、右特異値が最大となる第１右特異ベクトル、及び、前記左特異ベクトルのうち、左特異値が最大となる第１左特異ベクトルを用いてそれぞれのベクトルを更新すること、
を備える、請求項１８に記載のモデル生成装置。
【請求項２０】
前記第１右特異ベクトル及び前記第１左特異ベクトルを、べき乗法を用いて算出すること、
をさらに備える、請求項１９に記載のモデル生成装置。
【請求項２１】
前記重み行列を正規化することは、
更新された前記左特異ベクトル及び更新された前記右特異ベクトルに基づいて、スペクトル正規化を行うこと、
を備える、請求項１７乃至請求項２０のいずれかに記載のモデル生成装置。
【請求項２２】
前記重み行列を更新することは、
確率的勾配降下法を用いて前記重み行列を更新すること、
を備える、請求項１３乃至請求項２１のいずれかに記載のモデル生成装置。
【請求項２３】
前記第１ニューラルネットワークモデル及び前記第２ニューラルネットワークモデルは、CNN（Convolutional Neural Network）である、
請求項１３乃至請求項２２のいずれかに記載のモデル生成装置。
【請求項２４】
前記第１データ及び前記第２データは、画像データである、
請求項１３乃至請求項２３のいずれかに記載のモデル生成装置。
【請求項２５】
少なくとも１つのプロセッサを、
少なくとも、
第１データと、第２ニューラルネットワークモデルを用いて生成された第２データと、を識別する第１ニューラルネットワークモデルに前記第１データを入力して得られた第１予測結果と、
前記第２データを前記第１ニューラルネットワークモデルに入力して得られた第２予測結果と、
前記第１ニューラルネットワークモデルの重み行列に基づく特異値と、
に基づいて、前記第１ニューラルネットワークモデルの重み行列を更新する手段、
少なくとも、前記第２予測結果に基づいて、前記第２ニューラルネットワークモデルのパラメータを更新する手段、
として機能させるプログラム。
【請求項２６】
前記重み行列を更新する手段は、
前記重み行列の語句位置に基づいて、前記重み行列を正規化する手段、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新する手段、
を備える、請求項２５に記載のプログラム。
【請求項２７】
前記重み行列を更新する手段は、
前記重み行列の左特異ベクトル及び右特異ベクトルを更新する手段、
前記左特異ベクトル及び前記右特異ベクトルに基づいて、前記重み行列を正規化する手段、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新する手段、
を備える、請求項２５に記載のプログラム。
【請求項２８】
前記重み行列を更新する手段は、
確率的勾配降下法を用いて前記重み行列を更新する手段、
を備える、請求項２５から請求項２７のいずれかに記載のプログラム。
【請求項２９】
少なくとも１つのプロセッサにより実行させると、
少なくとも、
第１データと、第２ニューラルネットワークモデルを用いて生成された第２データと、を識別する第１ニューラルネットワークモデルに前記第１データを入力して得られた第１予測結果と、
前記第２データを前記第１ニューラルネットワークモデルに入力して得られた第２予測結果と、
前記第１ニューラルネットワークモデルの重み行列に基づく特異値と、
に基づいて、前記第１ニューラルネットワークモデルの重み行列を更新することと、
少なくとも、前記第２予測結果に基づいて、前記第２ニューラルネットワークモデルのパラメータを更新することと、
を備える方法を実行させるプログラムを格納した非一時的コンピュータ可読媒体。
【請求項３０】
前記重み行列を更新することは、
前記重み行列の語句位置に基づいて、前記重み行列を正規化することと、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新することと、
を備える、請求項２９に記載の非一時的コンピュータ可読媒体。
【請求項３１】
前記重み行列を更新することは、
前記重み行列の左特異ベクトル及び右特異ベクトルを更新することと、
前記左特異ベクトル及び前記右特異ベクトルに基づいて、前記重み行列を正規化することと、
正規化された前記重み行列を、前記第１予測結果及び前記第２予測結果に基づいて更新することと、
を備える、請求項３０に記載の非一時的コンピュータ可読媒体。
【請求項３２】
前記重み行列を更新することは、
確率的勾配降下法を用いて前記重み行列を更新すること、
を備える、請求項２９から請求項３１のいずれかに記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ識別器訓練方法、データ識別器訓練装置、プログラム及び訓練方法に関する。
【背景技術】
【０００２】
敵対的生成ネットワーク（ＧＡＮ：Generative Adversarial Networks、Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio, "Generative adversarial networks," arXiv preprint arXiv:1406.2661, 10 Jun 2014）は、近年、生成モデルのフレームワークとして広く研究され、種々のデータセットに適用されている。ＧＡＮは、与えられたターゲット分布を模したモデル分布を生成するためのフレームワークであり、モデル分布を生成するジェネレータと、モデル分布をターゲットから区別するディスクリミネータとで構成される。各ステップにおいて、モデル分布と、それに対するディスクリミネータにより測定されたターゲット分布との差を減少させるように、最良なディスクリミネータを連続に訓練する。
【０００３】
ＧＡＮの訓練において、ディスクリミネータのパフォーマンスの制御が問題となる。高次元空間では、ディスクリミネータによる密度比推定は、その訓練中に、不正確、不安定であることが多い。この結果、ジェネレータネットワークは、ターゲット分布のマルチモーダル構造を学習することができない。さらに、モデル分布のサポートと、ターゲット分布のサポートが分離している場合、モデル分布をターゲット分布から完全に区別することができるディスクリミネータが存在する。この状況下において、このようなディスクリミネータが生成されると、入力に対する当該ディスクリミネータの導関数が０となるため、ジェネレータの訓練は、停止する。
【発明の開示】
【０００４】
本発明の実施形態は、ディスクリミネータネットワークの訓練の安定化をするデータ判別器方法、装置及びプログラムを提案する。
【０００５】
一実施形態によれば、データ識別器訓練方法は、正解データと、擬データと、を識別するニューラルネットワークモデルを備えるデータ識別器を訓練する、データ識別器訓練方法であって、前記データ識別器に前記正解データを入力し、第１予測結果を取得するステップと、前記データ識別器に前記擬データを入力し、第２予測結果を取得するステップと、取得された前記第１予測結果及び取得された前記第２予測結果に基づいて、誤差を算出するステップと、前記誤差と、前記ニューラルネットワークモデルの各層の重み行列の特異値と、に基づいて、前記重み行列を更新するステップと、を備える。
【０００６】
一実施形態によれば、ＧＡＮにおけるディスクリミネータの訓練の安定化を図ることが可能となる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係るデータ判別器の学習の流れを示すフローチャート。
【図２】本実施形態に係るデータ判別装置の機能を示すブロック図。
【図３】比較実験におけるパラメータの設定例を示す図。
【図４Ａ】比較実験におけるインセプションスコアを示すグラフ。
【図４Ｂ】比較実験におけるインセプションスコアを示すグラフ。
【図５Ａ】比較実験におけるインセプションスコアを示す図。
【図５Ｂ】比較実験におけるインセプションスコアを示す図。
【図６】比較実験における出力結果の例を示す図。
【図７】比較実験における出力結果の例を示す図。
【図８】比較実験における重み行列の特異値の大きさの理論値を示す図。
【図９Ａ】比較実験における重み行列の特異値の大きさを示す図。
【図９Ｂ】比較実験における重み行列の特異値の大きさを示す図。
【図１０Ａ】比較実験における処理時間を示す図。
【図１０Ｂ】比較実験における処理時間を示す図。
【図１１】比較実験におけるインセプションスコアを示す図。
【図１２Ａ】比較実験におけるロスを示す図。
【図１２Ｂ】比較実験におけるロスを示す図。
【図１３】比較実験におけるインセプションスコアを示す図。
【発明を実施するための形態】
【０００８】
以下、説明文中において、数式中の変数又は関数の上部に付するバーは「/」と表し、同じくハットは「＾」、チルダは「〜」と表す。例えば、ｘに上記のものを付する場合には、それぞれ、「ｘ/」、「ｘ＾」、「ｘ〜」と表す。また、ベクトル又は行列に対して右側に「Ｔ」と記載した場合、それぞれベクトル又は行列の転置を表す。
【０００９】
（敵対的生成ネットワーク）
まず、本実施形態の基礎となる敵対的生成ネットワーク（以下、ＧＡＮと記載する。）について簡単に説明する。ＧＡＮは、ジェネレータと、ディスクリミネータと、を備え、ジェネレータと、ディスクリミネータを並行して学習する生成モデルの訓練方法の一種である。
【００１０】
ジェネレータ（データ生成器）は、ターゲットデータである訓練データ（正解データ）の学習をして、訓練データに類似するデータ（擬データ）を生成する。このジェネレータは、雑音データが入力されると擬データを出力するモデルとして学習される。ディスクリミネータ（データ判別器）は、ジェネレータが生成した擬データと正解データとの判別を行う。すなわち、ジェネレータは、ターゲットデータの分布（訓練データの分布）と生成したモデルの分布とが一致するように学習され、一方で、ディスクリミネータは、正解データと擬データとを区別するように学習される。
【００１１】
この学習においては、ジェネレータネットワークとディスクリミネータネットワークの２つが存在する。ネットワークとしては、例えば、多層パーセプトロン（ＭＬＰ：Multi-Layer Perceptron）、コンボリューションネットワーク等が用いられる。
【００１２】
例えば、以下の式で表されるＭＬＰによるディスクリミネータのネットワークについて説明する。なお、ＣＮＮにおいても、例えば、畳み込み層における重み行列のそれぞれいついても以下の式を用いることが可能であり、本実施形態にかかる重み行列の正規化を同様に適用することができる。
【数１】
0006625785.tif 000002
【００１３】
ベクトルｈｌは、第ｌ層の出力、行列Ｗｌは、第ｌ−１層と第ｌ層との間の重み付け行列、ベクトルｂｌは、第ｌ層におけるバイアス、ａｌは、エレメントごとの非線形の活性化関数を示す。ここで、ｄｉｍ（ｌ）がｌの次元を表し、Ｒが実数体を表すものとして、Ｗｌ∈Ｒｄｉｍ（ｌ）×ｄｉｍ（ｌ−１）、ｂｌ∈Ｒｄｉｍ（ｌ）、ｈｌ∈Ｒｄｉｍ（ｌ）、ｈ０（ｘ）＝ｘである。上記の式を一連の構成として解釈すると、入力ベクトルｘを有するネットワークの最終層の出力がｈＬとなる。以下の説明では、簡単のため、ｆ（ｘ）＝ｈＬ（ｘ）として記載する。
【００１４】
このように定義すると、Ａをユーザが選択した距離測定の発散に対応する活性化関数として、ディスクリミネータの出力は、Ｄ（ｘ）＝Ａ（ｆ（ｘ））として与えられる。ＧＡＮの標準的な形式は、以下の式のように表される。
【数２】
0006625785.tif 000003
【００１５】
ここで、Ｇをジェネレータの出力とする。Ｇ及びＤの最大値及び最小値は、それぞれ、ジェネレータ及びディスクリミネータのセットに引き継がれる。Ｖ（Ｇ，Ｄ）の一般的な式は、以下のように与えられる。
【数３】
0006625785.tif 000004
【００１６】
ここで、Ｅ［・］は、期待値を表し、ｑは、ターゲットデータの分散、ｐＧは、敵対的最小値最大値最適化を介して学習されるモデルのジェネレータの分散、ｘ’は、ジェネレータにより生成された擬データである。この形式のＤにおいて用いられる活性化関数Ａは、例えば、シグモイド関数のような［０，１］の範囲の連続的な関数である。固定されたジェネレータＧに対して、Ｖ（Ｇ，Ｄ）のこの形式の最適なディスクリミネータは、ＤＧ＊＝ｑ（ｘ）／（ｑ（ｘ）＋ｐＧ（ｘ））で与えられることが知られている。
【００１７】
ディスクリミネータが選択された関数空間がＧＡＮのパフォーマンスに決定的に影響を及ぼすと考えられている。多くの研究において、統計の有界性を保証する上で、リプシッツ連続性の重要性が指摘されている。このようなことに鑑みると、例えば、ＧＡＮの最適なディスクリミネータは、以下のように表される。
【数４】
0006625785.tif 000005
【００１８】
この微分は、以下のように表され、これは、有界ではなく（unbound）、又は、現実的に計算することができない（incomputable）ようになり得る。
【数５】
0006625785.tif 000006
【００１９】
そこで、この配列において、入力サンプルｘに定義された正規化項を追加することによりディスクリミネータのリプシッツ定数を制御する方法がある。以下の式のように、リプシッツ連続関数のセットからディスクリミネータＤを探る。
【数６】
0006625785.tif 000007
【００２０】
ここで、||ｆ||Ｌｉｐ≦Ｋは、全てのｘ、ｘ’に対して、||ｆ（ｘ）−ｆ（ｘ’）||／||ｘ−ｘ’||≦Ｋであることを意味する。ただし、ノルム（||・||）は、Ｌ２ノルムを表すものとする。
【００２１】
入力ベースの正則化は、サンプルに基づく比較的容易な公式化を可能とするが、ヒューリスティック及びそれに近い手段を除き、ジェネレータ及びターゲットデータ分布のサポートの外側の空間に対する正規化をインポーズすることが困難である。そこで、本実施形態においては、スペクトル正規化（Spectral Normalization、Yuichi Yoshida and Takeru Miyato, "Spectral norm regularization for improving the generalizability of deep learning," arXiv preprint arXiv:1705.10941, 31 May 2017）を用いて重み行列を正規化する。
【００２２】
（スペクトル正規化）
例えば、活性化関数ａｌをＲｅＬＵ（Rectified Linear Unit）、ｌｅａｋｙＲｅＬＵとすると、||ａｌ||Ｌｉｐ＝１となる。活性化関数ａｌのそれぞれが、||ａｌ||Ｌｉｐ＝１を満たす場合、不等式||ｇ１＊ｇ２||Ｌｉｐ≦||ｇ１||Ｌｉｐ・||ｇ２||Ｌｉｐであるので、||ｆ||Ｌｉｐを以下のように上から押さえることができる。ただし、上記の式においては、ｇ１＊ｇ２は、ｇ１とｇ２との合成関数であることを意味する。
【数７】
0006625785.tif 000008
【００２３】
ここで、σ（Ｗ）は、行列ＷのＬ２ノルムであるスペクトルノルムであり、Ｗの最大の特異値と同等であるものとして、以下のように表される。
【数８】
0006625785.tif 000009
【００２４】
スペクトル正規化は、以下のように、重み行列Ｗのスペクトルノルムを規格化し、リプシッツ定数を１とすることが可能である。
【数９】
0006625785.tif 000010
【００２５】
［数８］を用いてそれぞれのＷｌを規格化した場合、||ｆ||Ｌｉｐが１で上から押さえられることから［数６］の不等式が成立し、σ（Ｗ/ＳＮ（Ｗ））＝１とすることができる。
【００２６】
Ｗｉｊに対するＷ/ＳＮ（Ｗ）の勾配は、以下のように表される。
【数１０】
0006625785.tif 000011
【００２７】
ここで、Ｅｉｊは、（ｉ，ｊ）要素が１、他の要素が０である行列を表し、ｕ１は、Ｗの第１左特異ベクトル、ｖ１は、Ｗの第１右特異ベクトルである。第１左特異ベクトル、第１右特異ベクトルとは、Ｗを特異値分解した場合に、特異値成分を左上から右下へと向かって降順にソートした特異値行列において、左上成分である特異値（第１特異値）に対応する左特異ベクトル、右特異ベクトルのことを示す。
【００２８】
もし、ｈがネットワーク内において、重み行列Ｗにより変換される隠れたノードであるならば、ディスクリミネータＤのＷに関するミニバッチ上で計算されたＶ（Ｇ，Ｄ）の導関数は、以下のように与えられる。
【数１１】
0006625785.tif 000012
【００２９】
ここで、Ｅ＾［・］は、ミニバッチにおける経験的期待値を表し、δ＝（∂Ｖ（Ｇ，Ｄ）／∂（Ｗ/ＳＮｈ））Ｔ、λ＝Ｅ＾［δＴ（Ｗ/ＳＮｈ）］である。
【００３０】
［数１０］の下段の式において、第１項のＥ＾［δｈＴ］は、正規化していない重みの導関数と等しい。この観点から、第２項は、補償正規化係数λを用いて第１特異値成分をペナルティ化する正規化の項とみることができる。λは、δ及びＷ/ＳＮｈが同じ方向を示すのであれば、正の値となり、これは、訓練中にＷの列が一方向に集中するのを防止する。換言すると、スペクトル正規化は、それぞれのレイヤにおける変換が一方向にセンシティブになるのを防止する。
【００３１】
この正規化の効果を利用して、アルゴリズムの多彩なバージョンを検討することができる。以下のように与えられるディスクリミネータの重み行列の別パラメータ化を考えることも可能である。
【数１２】
0006625785.tif 000013
【００３２】
ここで、γは、学習されるスカラー変数である。このパラメータ化は、注目しているレイヤにおける１−リプシッツ制約を含むが、モデルが縮退するのを防止するとともに、モデルに自由度を与えることができる。この再パラメータ化を行うためには、勾配ペナルティ（Gradient Penalty）のような他の手段によりリプシッツ状態を制御する。
【００３３】
上述したように、ディスクリミネータのネットワークの各層において正規化するスペクトルノルムσ（Ｗ）は、Ｗの最大の特異値となる。このようにアルゴリズムの各ラウンドにおいて、単純に特異値分解を適用すると、計算のコストが膨大なものとなる。そこで、σ（Ｗ）を評価するためにべき乗法（Power Iteration Method）を使用してもよい。
【００３４】
この手法では、乱数により初期化されたベクトルｕ〜及びｖ〜から開始する。もし、優性な特異値において多重しない場合、かつ、ｕ〜及びｖ〜が第１特異ベクトルと直交しない場合、ｕ〜及びｖ〜は、以下の更新ルールに基づいて、第１左特異ベクトルｕ及び第１右特異ベクトルｖへとそれぞれ収束する。
【数１３】
0006625785.tif 000014
【００３５】
さらに、以下のように、Ｗのスペクトルノルムを上記のように近似した特異ベクトルのペアによって近似することができる。
【数１４】
0006625785.tif 000015
【００３６】
もし、ＳＧＤ（Stochastic Gradient Descent：確率的勾配降下法）を更新に用いるのであれば、各更新におけるＷの変化は小さく、したがって、最大の特異値が変化する。実装において、この事実を利用し、アルゴリズムの各ステップで計算されたｕ〜を次のステップの初期ベクトルとして再利用する。このリサイクルプロシージャにより、１ラウンド以上のラウンドのべき乗反復を行う。
【００３７】
以下、本実施形態に係るスペクトル正規化に基づいたＧＡＮの手法について、フローチャートに基づいて説明する。図１は、本実施形態の処理の流れを示すフローチャートである。
【００３８】
なお、以下の説明において、ジェネレータ生成についての説明は省略するが、ジェネレータ生成の手法については、特に限定するものではない。本実施形態においては、ディスクリミネータの生成について説明する。また、一般的なニューラルネットワークモデルの生成と同様の処理について、例えば、ハイパーパラメータの設定、順伝播、逆伝播等の詳細な説明等は、省略することがある。ディスクリミネータの学習は、上述したようにミニバッチを用いて行ってもよいし、別の例として、バッチ学習又はオンライン学習により行っても下記と同様に処理を行うことができる。
【００３９】
まず、ジェネレータ及びディスクリミネータのニューラルネットワークモデルを設定する（Ｓ１００）。設定されるモデルは、上述したように、例えば、ＭＬＰ、ＣＮＮ等のニューラルネットワークモデルである。
【００４０】
次に、ディスクリミネータの各層を接続する重み行列Ｗｌについて、左特異ベクトルｕ〜ｌ（∈Ｒｄｉｍ（ｌ））の初期化を行う（Ｓ１０２）。初期化は、例えば、等方正分布に基づいた乱数を用いて行われる。
【００４１】
モデル及び変数の初期化が終了した後、ジェネレータ、ディスクリミネータの学習に移行する。上述したように、ジェネレータとディスクリミネータの最適化については、それぞれの出力結果を［数３］等の式により評価することにより、並行して又は各ステップにおいて交互に実行される。
【００４２】
以下のＳ１０４からＳ１１０の説明においては、各層ごとの重み行列Ｗに対しての処理を行うことを記載している。例えば、第ｌ−１層と、第ｌ層とを接続する重み行列Ｗｌについて処理することを説明する。
【００４３】
逆伝播において、重み行列の更新には、スペクトル正規化を用いる。そのため、誤差逆伝播処理においては、まず、左右それぞれの特異ベクトルを更新する（Ｓ１０４）。第１特異ベクトルの更新は、例えば、以下に示される式に基づき実行される。
【数１５】
0006625785.tif 000016
【００４４】
ここで、ｕ〜ｌは、重み行列Ｗｌの左特異ベクトル、ｖ〜ｌは、重み行列Ｗｌの右特異ベクトルをそれぞれ示す。すなわち、乱数により初期化された左特異ベクトルｕ〜ｌ及び重み行列Ｗｌを用いて、右特異ベクトルｖ〜ｌを更新する。更新された右特異ベクトルｖ〜ｌ及び重み行列Ｗｌを用いて、左特異ベクトルｕ〜ｌを更新する。このようにべき乗法に基づき交互に更新する収束演算を行うことにより、第１右特異ベクトル及び第１左特異ベクトルを算出する。このステップは、任意で、所定数回繰り返し行うようにしてもよい。
【００４５】
次に、更新された左特異ベクトルｕ〜及び右特異ベクトルｖ〜に基づいて、重み行列を正規化する（Ｓ１０６）。この正規化は、Ｗｌのスペクトルノルムに基づき、上述したスペクトル正規化により実行される。Ｗｌのスペクトルノルムσ（Ｗｌ）を用いて、例えば、以下に示す数式によりスペクトル正規化された重み行列Ｗ/ＳＮｌが算出される。
【数１６】
0006625785.tif 000017
【００４６】
次に、スペクトル正規化された重み行列Ｗ/ＳＮｌに基づいて、誤差の算出する（Ｓ１０８）。トレーニングデータである正解データと、ジェネレータの出力結果である擬データと、がディスクリミネータに入力され、順伝播される。出力層において、例えば、ディスクリミネータから出力された結果が、ジェネレータの出力結果が偽、正解データの出力結果が真となるラベルに基づき、出力層における誤差を算出する。
【００４７】
より具体的な例として、このステップ（Ｓ１０８）は、次の３つのステップを備える。まず、正解データが正解データであると判定されるか否かの第１予測結果を取得する。次に、擬データが正解データでは無いと判定されるか否かの第２予測結果を取得する。そして、［数３］で表されるようなロス関数により、これら第１予測結果及び第２予測結果に基づき、誤差を算出する。この誤差を逆伝播することにより、以下に説明するように、重み行列の更新が行われる。
【００４８】
次に、算出された誤差に基づいて、重み行列Ｗｌを更新する（Ｓ１１０）。例えば、以下の式に基づいて、重み行列Ｗｌが更新される。
【数１７】
0006625785.tif 000018
【００４９】
ここで、Ｗ/ＳＮｌ（Ｗｌ）は、スペクトル正規化された重み行列を示し、ＤＭは、所定のデータセットに基づいた値であることを示す。例えば、ミニバッチ処理を行っている場合には、ＤＭは、ミニバッチ内のデータセットに基づいて重み行列Ｗｌを更新することを示す。また、ｌは、ロス関数を示し［数３］等に基づいた関数、例えば、後述する［数１７］、アルゴリズムによっては後述する［数２０］等で示される関数である。これらの式では、正解データをデータ識別器に入力した場合の第１予測結果と真値との誤差（第１部分誤差）、及び、偽データをデータ識別器に入力した場合の第２予測結果と偽値との誤差（第２部分誤差）に基づいて全体的な誤差（ロス）を算出する。例えば、［数３］の第１項が第１予測結果と真値との誤差、第２項が第２予測結果と偽値との誤差を示し、これらの和を求めることによりロスを算出する。［数１６］に示される更新は、スペクトル正規化された重み行列Ｗ/ＳＮｌを用いていること以外は、一般的なＳＧＤによる更新に基づくものである。ミニバッチ学習等により学習を行っている場合には、各ミニバッチからの出力に基づいて、さらに重み行列を更新してもよい。各ミニバッチからの出力に基づく重み行列の更新は、一般的な手法により行われる。
【００５０】
次に、最適化が終了しているか否かを判断する（Ｓ１１２）。最適化の終了は、例えば、全ての層において重み行列の更新がされた、所定回数のエポックが終了した、評価関数が所定条件を満たした、ロス関数が所定条件を満たした等に基づいて判断される。バッチ学習、ミニバッチ学習等の学習をしている場合には、必要となるデータに対して学習が終了したか否かを判断してもよい。
【００５１】
例えば、全ての層において重み行列が更新されていない場合、算出した誤差を逆伝播することにより、１つ前の層の重み行列の更新を続けて行う。あるエポックにおいて全てのミニバッチに対して全ての層の重み行列の更新が行われた後であれば、エポックすうが所定回数に達しているか否かを判断し、訓練を終了、又は、続行する。図１におけるＳ１１２では、異なるレベルにおける終了条件をまとめて記載しているが、もちろん、最適化の終了条件をより細かく設定してもよく、ネストされたループとしてフローチャートを理解できるものであるとする。
【００５２】
最適化が終了していない場合（Ｓ１１２：Ｎｏ）、Ｓ１０４からＳ１１０の処理が繰り返し行われる。上述したように、例えば、全ての層において重み行列の更新がされていない場合、Ｓ１１０において重み行列が更新された層の前の層にロスの逆伝播をし、前の層の重み行列の更新処理を行う。所定回数のエポックが終了していない場合、所定回数となるまで処理を行う。評価関数、又は、ロス関数等が所定条件を満たしていない場合、所定条件を満たすまで処理を行う。バッチ学習、ミニバッチ学習等においては、必要となるデータに対して学習が終了するまで処理を行い、その上で、上記のエポック数、評価関数、ロス関数の条件を満たすまで処理が繰り返される。なお、上述した処理において、特に、左特異ベクトルの初期値は、前ステップにおいてべき乗法により最適化されたベクトルを用いてもよい。
【００５３】
最適化が終了した場合（Ｓ１１２：Ｙｅｓ）、学習済みモデルを出力し（Ｓ１１４）、処理を終了する。
【００５４】
図２は、本実施形態に係るデータ判別器生成装置の機能を示すブロック図である。データ判別器生成装置１は、データ判別器初期化部１０と、データ判別器記憶部１２と、入力部１４と、順伝播部１６と、誤差算出部１８と、逆伝播ブロック２０と、を備える。
【００５５】
データ判別器初期化部１０は、ＧＡＮにおけるディスクリミネータ（データ判別器）のモデルの初期化を行う。例えば、モデルとして用いられるニューラルネットワークモデルの選択、隠れ層の数、各層間を接続する重み行列等の初期化を行う。ニューラルネットワークモデルの選択及び隠れ層の数は、ユーザによる指定を受け付けるものであってもよい。重み行列の初期化は、ユーザによる指定を受け付けるものであってもよいし、乱数等により自動生成されるものであってもよい。データ判別器初期化部１０により、上述したＳ１００の処理が行われる。また、モデルの生成と併せて、Ｓ１０２に示される各層間における重み行列の左特異ベクトルの初期化を行ってもよい。
【００５６】
なお、データ判別器初期化部１０は、データ判別器生成装置１に必須の構成ではない。例えば、ユーザがデータ判別器記憶部１２にあらかじめ生成されているモデルを入力することにより、ディスクリミネータのモデルが記憶されてもよい。別の例として、データ判別器生成装置１の外部において自動的な処理により生成されたモデルがデータ判別器記憶部１２へと入力され、ディスクリミネータのモデルとして記憶されてもよい。
【００５７】
データ判別器記憶部１２は、データ判別器初期化部１０により初期化されたモデル及び当該モデルを最適化したモデル等を記憶する。学習の最中においては、重み行列等が更新されたモデルを記憶しておいてもよい。順伝播部１６及び逆伝播ブロック２０は、このデータ判別器記憶部１２に記憶されているモデルを用いて順伝播及び逆伝播を行い、当該モデルを更新する。
【００５８】
入力部１４は、ジェネレータ（データ生成器）が生成した正解データ（トレーニングデータ）に類似するデータである擬データ及び正解データを順伝播部１６へと入力する。ディスクリミネータは、ジェネレータが生成した擬データと、正解データとを判別するように最適化される。
【００５９】
順伝播部１６は、データ判別器記憶部１２に記憶されているデータ判別器に上記の擬データ、又は、正解データを入力し、順伝播を行う。
【００６０】
順伝播部１６は、データ判別器の入力層へとデータを入力し、出力層からの判別結果を取得する。データ判別器として、データ判別器記憶部１２に記憶されているモデルを使用する。
【００６１】
誤差算出部１８は、データ判別器に擬データが入力された場合の出力と、データ判別器に正解データが入力された場合の出力とを比較し、誤差を算出する。誤差の算出は、例えば、［数３］に示される数式を用いる。この誤差算出部１８が、Ｓ１０４の処理を行う。誤差算出部１８が算出した誤差は、逆伝播ブロック２０へと入力され、誤差逆伝播処理が実行される。また、誤差算出部１８は、誤差逆伝播中において、誤差を算出する。算出された誤差を用いて、逆伝播ブロック２０が誤差の逆伝播及び重み行列の更新を行う。
【００６２】
逆伝播ブロック２０は、データ判別器記憶部１２に記憶されているデータ判別器のモデルを誤差逆伝播により更新する。例えば、モデルにおける重み行列（パラメータ）が更新される。逆伝播ブロック２０は、逆伝播部２００と、更新部２０２と、を備える。
【００６３】
逆伝播部２００は、データ判別器記憶部１２に記憶されているデータ判別器のモデルと、誤差算出部１８が算出した誤差とに基づいて、誤差逆伝播処理を行う。
【００６４】
更新部２０２は、逆伝播処理のうち特に、重み行列を更新する処理を行う。例えば、この更新部２０２が、Ｓ１０４からＳ１１０の処理を行う。フローチャートに示されるように、逆伝播するタイミングにおいて、Ｓ１０６における特異ベクトルの更新、及び、Ｓ１０８の重み行列の正規化の処理により、重み行列の更新を行う。
【００６５】
隠れ層がＬ層あるモデルの場合、まず、逆伝播部２００が出力層から第Ｌ層へと誤差を逆伝播し、更新部２０２が第Ｌ層における重み行列を更新する。ミニバッチ学習である場合には、ミニバッチ内において第Ｌ層の重み行列を更新する。次に、第Ｌ層から第Ｌ−１層へと誤差を逆伝播し、同様に重み行列を更新する。このように、逐次的に誤差を逆伝播することにより、各層における重み行列を更新する。ミニバッチ学習の場合、隠れ層の重み行列の更新が終了し、ミニバッチ内における学習ステップ、例えば、上述したように評価値等に基づいた学習ステップが終了した後、次のミニバッチを生成し、同じように重み行列を更新していく。ミニバッチの処理については、一般的な手法で行われる。
【００６６】
上述においては、基本的なＧＡＮに対してスペクトル正規化を適用する例を説明したが、ＧＡＮではなく、ＷＧＡＮ（Wesserstein GAN）、ＷＧＡＮ−ＧＰ（Wesserstein GAN with Gradient Penalty）、ＤＣＧＡＮ（Deep Convolutional GAN）、ＤＲＡＧＡＮ（Deep Regret Analytic GAN）等の他のＧＡＮのアルゴリズムに対してもスペクトル正規化を適用することが可能である。
【００６７】
本実施形態に係るデータ判別器生成装置１を備えるＧＡＮの学習の安定性について、当該ＧＡＮにより生成されたジェネレータによる画像生成の例を挙げながら説明する。以下の例においては、ジェネレータ、ディスクリミネータともにＣＮＮに基づいたモデルの学習を行っている。
【００６８】
以下の説明において、誤差逆伝播におけるＳＧＤとしてＡｄａｍ（Adaptive Moment Estimation）を用いてシミュレーションを行った。なお、Ａｄａｍ以外のＳＧＤ手法、Ｍｏｍｅｎｔｕｍ、ＡｄａＧｒａｄ、ＲＭＳＰｒｏｐ、ＡｄａＤｅｌｔａ等の他の手法を用いてもよい。本実施形態におけるディスクリミネータの更新に用いるロス関数は、以下の式を用いた。
【数１８】
0006625785.tif 000019
【００６９】
また、ジェネレータの更新に用いるコスト関数は、以下に示される式を用いた。
【数１９】
0006625785.tif 000020
【００７０】
本実施形態と、比較例とにおけるジェネレータが生成した擬データの評価として、以下のように定義されるインセプションスコア（Inception score）を用いた。
【数２０】
0006625785.tif 000021
【００７１】
ここで、ＤＫＬ［・］は、ＫＬダイバージェンス（カルバック・ライブラー情報量：Kullback-Leibler Divergence）をあらわす。また、ｐ（ｙ）は、（１／Ｎ）Σｎ＝１Ｎｐ（ｙ｜ｘｎ）で周辺確率として計算できる。
【００７２】
図３は、シミュレーションのパラメータ例を挙げたものである。設定の項は、それぞれのパラメータの名称を示す。α、β１、β２は、それぞれＡｄａｍにおけるハイパーパラメータである。αは、学習率、β１は、１次モーメンタム、β２は、２次モーメンタムをそれぞれ示す。ｎｄｉｓは、ジェネレータが１回更新されるごとにディスクリミネータが更新される回数を示す。これらのパラメータの組み合わせは、シミュレーション結果を記載するための一例として表示されたものであり、本実施形態に係るスペクトル正規化を用いるＧＡＮの手法において重要な箇所ではなく、任意に変更してよい箇所である。
【００７３】
設定Ａは、ＷＧＡＮ−ＧＰ手法の論文（I. Gulrajani, et.al, "Improved training of Wasserstein gans." arXiv preprint, arXiv:1704.00028, 2017）で示されたパラメータである。設定Ｂは、論文（D. Warde-Farley, et.al, "Improving generative adversarial networks with denoising feature matching," ICLR, Nov. 6, 2016）で示されたパラメータである。設定Ｃは、ＤＣＧＡＮ（Deep Convolutional GAN）手法の論文（A. Radford, et.al, "Unsupervised representation learning with deep convolutional generative adversarial networks," arXiv preprint, arXiv:1611.06624, 2016）で示されたパラメータである。
【００７４】
設定Ａ乃至設定Ｃは、既に論文として発表されている結果と比較するために挙げた例である。一方、設定Ｄ乃至設定Ｆは、さらに積極的な学習をする状況において、アルゴリズムの改善を評価するために設定されたパラメータセットである。これらのそれぞれの設定において、１０万回のジェネレータのアップデータを学習させた。
【００７５】
以下、図において、本実施形態に係るスペクトル正規化によるディスクリミネータの学習を用いたジェネレータの学習をＳＮと記載する。また、ＷＮ（Weight Normalization：T. Salimans, et.al, "Weight normalization: A simple reparameterization to accelerate training of deep neural networks," Advance in Neural Information Processing Systems, p901, 2016）、ＷＧＡＮ−ＧＰの手法をそれぞれ比較対象とした結果をそれぞれ比較例１及び比較例２として記載する。
【００７６】
図４Ａは、データセットＣＩＦＡＲ−１０の画像を用いて、図４Ｂは、データセットＳＴＬ−１０の画像を用いて、図３に示す各設定におけるシミュレーションを行った結果を示すグラフである。縦軸は、上述したインセプションスコアを示す。
【００７７】
これらの図から、ＳＮは、積極的な学習率とモーメンタムパラメータに対して、比較例１及び比較例２と比較してロバストであることが読み取れる。比較例２は、高い学習率と高いモーメンタムパラメータに対して、ＧＡＮによってよい出力結果を得ることに失敗している。比較例１は、ＣＩＦＡＲ−１０よりも多様な例により構成されているＳＴＬ−１０においてＳＮ及び比較例２よりも最適化の実効性が確保できていない。ＳＮは、他のＣＩＦＡＲ−１０及びＳＴＬ−１０の双方において、他の方法よりも優れている。
【００７８】
図５Ａは、データセットＣＩＦＡＲ−１０の画像を用いて、図５Ｂは、データセットＳＴＬ−１０の画像を用いて、ＳＮ、比較例１、比較例２、及び、その他の手法を用いたインセプションスコアの結果を示す表である。リアルデータは、データセット中のデータを用いて取得されたインセプションスコアであることを示す。
【００７９】
図５Ａに示すように、ＳＮは、Ｗａｒｄｅ−Ｆａｒｌｅｙ（図３の設定Ｂの記載されている論文の手法）以外においては、よりよいインセプションスコアを出していることが分かる。ＣＩＦＡＲ−１０よりも多様性のある画像から構成されるＳＴＬ−１０においては、全ての他の手法よりもよいインセプションスコアである。
【００８０】
図６は、データセットＣＩＦＡＲ−１０の画像を用いて学習したジェネレータにより生成された画像を示し、図７は、ＳＴＬ−１０の画像を用いて学習したジェネレータにより生成された画像を示す。
【００８１】
上に描かれている８×８ブロックに分割された４８×４８ピクセルの画像は、データセットとして学習に与えられた画像である。下に描かれている画像は、上から順番に、ＳＮ、比較例１、比較例２を用いたＧＡＮにより学習されたジェネレータが生成した画像である。このように、生成された画像をみると、ＳＮによるジェネレータが生成した画像が比較的よい結果であることが見られる。
【００８２】
特に、学習率を挙げた場合には、比較例１及び比較例２に対して良好な結果が出力されている。設定Ｄ乃至設定Ｆでは、比較例１においては、例えば、全面がほぼ同一色といった全体的にコントラストが低い画像が出力され、比較例２においては、ほぼ雑音データが出力されている。一方、本実施形態に係るＳＮによれば、比較的コントラストが高いデータが生成されている。
【００８３】
図８は、ＳＮ及び比較例１における重い行列の特異値の２乗値の存在する領域を示す理論値を示す図である。図８及び図９においては、重み行列の特異値を昇順に並べ、当該インデクスを横軸とし、縦軸として各特異値の２乗値を最大の特異値で正規化したものである。重み行列に対して、様々な状況において取り得る理論値の分布を示すものが図８のグラフである。実線は、ＳＮでの理論値、破線は、比較例１での理論値を示す。この図８に示すように、ＳＮでは、比較例１と比べ特異値の存在する幅が広いことが分かる。
【００８４】
比較例１においては、特異値の非対称な分布となることから、重み行列の列空間は、低次元のベクトル空間となる。一方、ＳＮにおいては、ディスクリミネータにより使用される特徴の次元数を妥協することなく利用できる。重み行列を掛けられた隠れ層の出力のノルムをできるだけ保持し、ディスクリミネータをより高精度にするためには、この（正規化された）ノルムを大きくすることが望まれる。
【００８５】
例えば、比較例１においては、ノルムを大きくするためには、ランクを下げることとなるが、ランクを下げると、ディスクリミネータにおいて判断材料となる特徴量の数を減少させることとなる。より詳しくは、それぞれの特徴量に基づく判断は、特異値のノルムの大きさに依存する。すなわち、比較例１のように、一部の特異値だけが大きい値をとり、他の特異値がほぼ０となるような場合、特異値のノルムが大きい特徴量が重視され、特異値のノルムが小さい特徴量が判断に及ぼす影響が小さくなる。しかしながら、より高精度のディスクリミネータを学習するためには、特徴量の数を減少させることは得策ではない。このように比較例１においては、より高精度のディスクリミネータを学習するために、ノルムを大きくする（多くのノルムを取得可能とする）ことと、特徴量の数を減少させないことを両立することが困難である。
【００８６】
図８に示すように、ＳＮにおいては、比較例１に比べて正規化されたノルムを大きく保つことが可能である。すなわち、ＳＮでは、ノルムを大きく保つことと、特徴量の数を減少させないことを両立することが可能となる。これは、線形演算のリプシッツ定数が最大の特異値によってのみ評価されることに基づく。すなわち、スペクトルノルムは、行列のランクとは独立していることに基づく。
【００８７】
図９Ａ及び図９Ｂは、異なる手法であるＳＮ及び比較例１を用いて学習を行った場合の各層における重み行列の特異値の２乗値をそれぞれ示すグラフである。図９Ａは、ＣＩＦＡＲ−１０のデータセットを用いたもの、図９Ｂは、ＳＴＬ−１０のデータセットを用いたものである。図８と同様に、実線は、ＳＮによる結果を示し、破線は、比較例１による結果を示す。
【００８８】
図９Ａ及び図９Ｂに示されるように、ＳＮによれば、比較例１よりもほとんどの範囲において特異値のノルムが大きくなっていることが分かる。このように、特異値のノルムを大きくし、かつ、ランクを下げないようにすることが可能となり、正規化を行う場合において、ランク安定性を確保することができる。
【００８９】
第１層乃至第５層において、比較例１においては、いくつかの値に集中している。すなわち、比較例１においては、これらの層における重み行列のランクが不足している。一方、ＳＮにおいては、広く分布している。高次元空間にエンベデッドされた低次元非線形データの多様性乗の確率分布の対を区別することが目標である場合、下位層におけるランク不足は特に致命的となる蓋然性がある。下位層の出力は、線形変換の数少ないセットを介した出力であり、ほとんどの部分が線形である空間に偏向していることを示す。このような空間における入力分布の多くの特徴を過小評価してしまうことは、過剰に単純化されたディスクリミネータを生成することに繋がる。
【００９０】
図７に示すシミュレーション結果によれば、このように過剰に単純化されたディスクリミネータが及ぼす影響を実際に確認することができる。スペクトル正規化を用いて生成された画像は、比較例１による画像よりも多様性を有し、かつ、複雑な画像である。
【００９１】
図１０Ａ及び図１０Ｂは、ジェネレータを１００回更新した場合における演算時間を示す図である。縦軸は、各種法におけるジェネレータを１００回更新した場合における演算時間［秒］を示す。図１０Ａは、データセットＣＩＦＡＲ−１０を用いた結果であり、図１０Ｂは、データセットＳＴＬ−１０を用いた結果である。比較例２においては、誤差関数として、ＧＰ（Gradient Penalty）である||∇ｘＤ||２を余分に求める必要があるので、他の手法に比べて長い時間が必要となっている。
【００９２】
これらの図において、ＳＮは、比較例１とほぼ同等の時間で演算をできていることが示されている。これは、べき乗法に必要となる相対的な計算コストは、順伝播及び逆伝播のコストと比較して無視できる程度に小さいためである。
【００９３】
以上のように、本実施形態に係るＳＮ手法よれば、ＧＡＮにおける各層の重み行列の更新において、スペクトル正規化を行った重み行列を用いることにより、安定したディスクリミネータの学習を実現することが可能となる。結果から読み取れるとおり、比較例と比べて多様性があり、複雑な画像を生成することが可能である。さらに、処理時間に関しては、比較例１と比べそれほど長い時間が掛かる訳ではなく、例えば、ＳＴＬ−１０のデータセットを用いた場合等は、ほぼ同等の時間で処理を行える。
【００９４】
（変形例）
前述の実施形態においては、ＧＡＮの手法にスペクトル正規化を適用する例について述べたが、これには限られない。すなわち、ＷＧＡＮ−ＧＰ（比較例２）の手法において、スペクトル正規化を適用してもよい。以下、比較例２にＳＮを適用したものを、比較例２＋ＳＮ等と表す。この場合、誤差関数は、以下の式を用いる。
【数２１】
0006625785.tif 000022
【００９５】
シミュレーション結果は、図１１に示す通りである。図１１は、比較例２＋ＳＮについてのインセプションスコアを示す表である。スタンダードなＣＮＮについてＳＮを適用したもの、及び、ＲｅｓＮｅｔ（Residual Network）を用いたＣＮＮについてＳＮを適用したものを示している。比較として、比較例２＋比較例１、及び、比較例２の結果も示している。シミュレーションにおいては、ディスクリミネータの学習における［数１１］で表される関数を全てＳＮ及び比較例１の手法により正規化した。図１１から、比較例２、及び、比較例２＋比較例１に比べてインセプションスコアが改善されている。
【００９６】
図１２Ａは、評価としてのロス、図１２Ｂは、バリデーションのロスを示す図である。実線は、比較例２＋ＳＮ、破線は、比較例２＋比較例１、点線は、比較例２による結果を示す。これらの図から、比較例２＋ＳＮによる学習は、比較例２及び比較例２＋比較例１による学習よりも過学習をしていないことが示される。特に図１２Ｂから、バリデーションデータに対しても評価値が下がっていないことから、比較例２＋ＳＮによる学習が他の手法に比べて過学習をしていないことが示されている。
【００９７】
図１３は、同シミュレーション状況におけるインセプションスコアを示す図である。実線は、比較例２＋ＳＮ、破線は、比較例２＋比較例１、点線は、比較例２による結果を示す。この図１３からも、過学習の度合いがそれぞれの場合について示されている。最終的な結果ではなく、学習中に最適なものを抽出したとしても、比較例２＋ＳＮによる手法（７．２８）は、他の手法（７．０４、６．６９）と比べてよいインセプションスコアであることが示される。
【００９８】
以上のように、スタンダードなＧＡＮだけではなく、ＷＧＡＮ−ＧＰの手法においても、本実施形態に係るスペクトル正規化は、より安定なディスクリミネータの学習を提供することが可能である。
【００９９】
なお、上述の例では、正解データであるか否かのラベルを備えるトレーニングデータに基づいてデータの識別を行うデータ識別器としての訓練について記載したがこれには限られない。ＧＡＮには限られず、例えば、カテゴリによりラベル付けされたトレーニングデータを用いて、上述の重み行列の更新を行うことにより、分類器として訓練を行うことも可能である。さらに、これらの他にも、一般的な重み行列を更新することにより訓練を行うニューラルネットワークモデルであれば、当該重み行列の更新に上述したスペクトル正規化を用いた訓練方法を適用することが可能である。［数８］に表される正規化を行うことにより、これらの重み付け行列の正規化を行い、重み付け行列の更新を行うことが可能となる。さらには、複数のラベル付けされたトレーニングデータを用いて、入力に対して連続値又は離散値を出力できるような訓練を行うようにしてもよい。
【０１００】
上記の全ての記載において、データ判別器生成装置１の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ等が実施をしてもよい。ソフトウェアで構成される場合には、データ判別器生成装置１及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ（Field-Programmable Gate Array）等の回路に実装され、ハードウェアが実行するものであってもよい。仮想環境の構築等の処理は、例えば、ＧＰＵ（Graphical Processing Unit）等のアクセラレータを使用して行ってもよい。
【０１０１】
データ判別器生成装置１及び当該装置により生成されたデータ判別器は、上記のようにプログラムにより生成されるほか、アナログ回路又はデジタル回路により構成されていてもよい。この場合、一部又は全ての機能を制御する、制御回路を備えていてもよい。すなわち、データ判別器生成装置１及びデータ判別器は、制御回路と、メモリを備え、その機能の一部又は全部が制御回路により制御されるものであってもよい。
【０１０２】
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。
【符号の説明】
【０１０３】
１：データ判別器生成装置、１０:データ判別器初期化部、１２：データ判別器記憶部、１４：入力部、１６：順伝播部、１８：誤差算出部、２０：逆伝播ブロック、２００：逆伝播部、２０２：更新部
【要約】
ＧＡＮにおけるディスクリミネータの訓練の安定化させる学習を実現する。一実施形態によれば、データ識別器訓練方法は、正解データと、擬データと、を識別するニューラルネットワークモデルを備えるデータ識別器を訓練する、データ識別器訓練方法であって、前記データ識別器に前記正解データを入力し、第１予測結果を取得するステップと、前記データ識別器に前記擬データを入力し、第２予測結果を取得するステップと、取得された前記第１予測結果及び取得された前記第２予測結果に基づいて、誤差を算出するステップと、前記誤差と、前記ニューラルネットワークモデルの各層の重み行列の特異値と、に基づいて、前記重み行列を更新するステップと、を備える。
【選択図】図１【図１】
0006625785.tif 000023
【図２】
0006625785.tif 000024
【図３】
0006625785.tif 000025
【図４Ａ】
0006625785.tif 000026
【図４Ｂ】
0006625785.tif 000027
【図５Ａ】
0006625785.tif 000028
【図５Ｂ】
0006625785.tif 000029
【図６】
0006625785.tif 000030
【図７】
0006625785.tif 000031
【図８】
0006625785.tif 000032
【図９Ａ】
0006625785.tif 000033
【図９Ｂ】
0006625785.tif 000034
【図１０Ａ】
0006625785.tif 000035
【図１０Ｂ】
0006625785.tif 000036
【図１１】
0006625785.tif 000037
【図１２Ａ】
0006625785.tif 000038
【図１２Ｂ】
0006625785.tif 000039
【図１３】
0006625785.tif 000040