(57)【要約】【課題】ニューラルネットワークにおける入出力データ間の関係を記述する関数が単射であることを保証できる確率変数変換技術を提供する。【解決手段】１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークであって、アフィン変換部が行うアフィン変換で用いる重み行列は、その特異値がすべて正であり、活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数と下界係数のいずれもが正である。【選択図】図６
2020107199.tif 000002
【特許請求の範囲】
【請求項１】
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークであって、
前記アフィン変換部が行うアフィン変換で用いる重み行列は、その特異値がすべて正であり、
前記活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数と下界係数のいずれもが正である
ニューラルネットワーク。
【請求項２】
請求項１に記載のニューラルネットワークのアフィン変換部が行うアフィン変換で用いる重み行列Wj（1≦j≦J、Jは前記ニューラルネットワークに含まれる層の数）を学習する学習部を含む潜在パラメータ学習装置であって、
前記学習部で用いる目的関数を構成する正規化項Rは、所定の実数ηmin, ηmax（ただし、0<ηmin≦ηmax<+∞を満たす）を用いて定義される式
【数４７】
2020107199.tif 000049
で与えられる
潜在パラメータ学習装置。
【請求項３】
請求項２に記載の潜在パラメータ学習装置であって、
前記重み行列Wjは、βj×βj-1個の巡回行列Wj,k,m (1≦k≦βj, 1≦m≦βj-1)を用いて式
【数４８】
2020107199.tif 000050
で与えられる区分巡回行列であり、
前記学習部は、前記正規化項Rの値の計算に際して、次式で与えられる区分対角行列Φjの特異値を計算するものである
【数４９】
2020107199.tif 000051
（ただし、Φj,k,mは式
【数５０】
2020107199.tif 000052
で与えられる対角DFTスペクトル行列）
ことを特徴とする潜在パラメータ学習装置。
【請求項４】
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークであって、
前記アフィン変換部が行うアフィン変換は、請求項１に記載のニューラルネットワークのアフィン変換部が行うアフィン変換の逆変換である逆アフィン変換であり、
前記活性化関数計算部で用いる活性化関数は、請求項１に記載のニューラルネットワークの活性化関数計算部で用いる活性化関数の逆関数である
ニューラルネットワーク。
【請求項５】
請求項４に記載のニューラルネットワークのアフィン変換部が行うアフィン変換で用いる重み行列Wj+（1≦j≦J、Jは前記ニューラルネットワークに含まれる層の数）を生成する潜在パラメータ生成部を含む潜在パラメータ生成装置であって、
請求項１に記載のニューラルネットワークのアフィン変換部が行うアフィン変換で用いる重み行列をWjとし、
前記潜在パラメータ生成部は、前記重み行列Wj+を式
【数５１】
2020107199.tif 000053
（ただし、Kj, Kj-1は重み行列Wjの行の数、列の数である）により生成する
潜在パラメータ生成装置。
【請求項６】
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークが、入力データを推定出力データに変換する変数変換方法であって、
前記アフィン変換部が、特異値がすべて正である重み行列を用いてアフィン変換を行うアフィン変換ステップと、
前記活性化関数計算部が、リプシッツ平滑性の上界係数と下界係数のいずれもが正である活性化関数を計算する活性化関数計算ステップと、
を含む変数変換方法。
【請求項７】
潜在パラメータ学習装置が、請求項６に記載の変数変換方法のアフィン変換ステップで行うアフィン変換で用いる重み行列Wj（1≦j≦J、Jは前記変数変換方法を実行するニューラルネットワークに含まれる層の数）を学習する学習ステップを実行する潜在パラメータ学習方法であって、
前記学習ステップで用いる目的関数を構成する正規化項Rは、所定の実数ηmin, ηmax（ただし、0<ηmin≦ηmax<+∞を満たす）を用いて定義される式
【数５２】
2020107199.tif 000054
で与えられる
潜在パラメータ学習方法。
【請求項８】
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークが、入力データを推定出力データに変換する変数変換方法であって、
前記アフィン変換部が、請求項６に記載の変数変換方法のアフィン変換ステップで行うアフィン変換の逆変換である逆アフィン変換を行うアフィン変換ステップと、
前記活性化関数計算部が、請求項６に記載の変数変換方法の活性化関数計算ステップで計算する活性化関数の逆関数を計算する活性化関数計算ステップと
を含む変数変換方法。
【請求項９】
潜在パラメータ生成装置が、請求項６に記載の変数変換方法のアフィン変換ステップで行うアフィン変換の逆変換である逆アフィン変換で用いる重み行列Wj+（1≦j≦J、Jは前記変数変換方法を実行するニューラルネットワークに含まれる層の数）を生成する潜在パラメータ生成ステップを実行する装置潜在パラメータ生成方法であって、
前記変数変換方法のアフィン変換ステップで行うアフィン変換で用いる重み行列をWjとし、
前記潜在パラメータ生成ステップでは、前記重み行列Wj+を式
【数５３】
2020107199.tif 000055
（ただし、Kj, Kj-1は重み行列Wjの行の数、列の数である）により生成する
潜在パラメータ生成方法。
【請求項１０】
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークであって、入力データから、前記入力データの次元以上の次元の特徴量である第１高次元特徴量を生成する第１ニューラルネットワークと、
所定の可逆関数を用いて、前記第１高次元特徴量から第２高次元特徴量を生成する接続変数変換部と、
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークであって、前記第２高次元特徴量から、前記第２高次元特徴量の次元以下の次元のデータである推定出力データを生成する第２ニューラルネットワークと
を含む変数変換装置。
【請求項１１】
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークである第１ニューラルネットワークが、入力データから、前記入力データの次元以上の次元の特徴量である第１高次元特徴量を生成する第１変数変換ステップと、
接続変数変換部が、所定の可逆関数を用いて、前記第１高次元特徴量から第２高次元特徴量を生成する接続変数変換ステップと、
１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークである第２ニューラルネットワークが、前記第２高次元特徴量から、前記第２高次元特徴量の次元以下の次元のデータである推定出力データを生成する第２変数変換ステップと
を含む変数変換方法。
【請求項１２】
請求項１または４に記載のニューラルネットワーク、請求項２または請求項３に記載の潜在パラメータ学習装置、請求項５に記載の潜在パラメータ生成装置、請求項１０に記載の変数変換装置のいずれかとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークと、ニューラルネットワークを用いた変数変換技術に関する。
【背景技術】
【０００２】
深層ニューラルネットワーク（Deep Nueral Network, DNN）を用いたアプリケーションの開発が盛んに行われている。アプリケーションの例として、音声／画像の認識・ノイズ除去・生成や、自動運転向けの行動モデリング・ロボット制御等がある。画像の生成では、例えば、元の絵の画風を変えることや、線画に色をつけることなどが行われている。こうしたデータ空間を確率分布でモデリングする問題において、２０１０年以前までは、単純な確率的コスト関数を用いることが多かった。例えば、音声／画像のノイズ除去では、残留ノイズはガウス分布に従う、生成した信号はスパース性が高いのでラプラス分布に従うなどの確率的仮定を用いていた。このような単純な確率的コスト関数を用いる方法で解ける問題も多く存在するのも確かであるが、例えば、多者の音声を認識して言語情報を得るといった、より難しい問題を解けるようにするためには、より複雑な確率的コスト関数を用いて、入出力データ（入出力確率変数）間の関係を記述する必要がある。
【０００３】
深層ニューラルネットワークは、入出力データの複雑な関係を記述するための、非常に強力な方法であり、２０１０年頃から爆発的に研究されるようになってきた。その結果、深層ニューラルネットワークの有効性が実例にて示されている。例えば、音声認識の分野では、２０１３年頃において、従来のGMM-HMMを用いた方法よりも１０％以上の認識率改善が報告されている。このことは、深層ニューラルネットワークが入出力データ（例えば、音声と言語ラベル）のそれぞれが従う分布間の複雑な関係を非常に柔軟に記述できることを暗に示している。その一方で、そのような関数を設計できるという性質は確率変数のデータの変化に対して非常に敏感に変化するということを意味し、そのため、深層ニューラルネットワークは何が出力されるか全く予想できないブラックボックス関数であるという懸念を含む。
【０００４】
例えば、非特許文献１の研究は、わざと誤認識させてしまうような敵対的サンプルに関する報告である。この研究では、例えば、車両と認識される画像にわずかなノイズを加算した画像が車両の画像であると認識されなくなる例が報告されている。このことは、深層ニューラルネットワークがいかに予測不能な挙動のブラックボックス関数であるかを示す一例である。
【０００５】
深層ニューラルネットワークを用いてサービスを実現するためには、上記のような誤作動をできるだけ減らす必要がある。そのため、サービスを展開する企業はデータ収集とそのラべリングに熱心である。大量のデータ（ビッグデータ）を入出力として深層ニューラルネットワークの潜在パラメータを学習（最適化）することにより、目標に対する出力誤差が統計的に少ない深層ニューラルネットワークが得られるからである。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, Rob Fergus, “Intriguing properties of neural networks”, arXiv preprint arXiv:1312.6199, 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、大量のデータを用いて深層ニューラルネットワークを学習したとしても、上記のような誤作動がなくなったことを保証できるわけではない。
【０００８】
深層ニューラルネットワークにおける入出力データ間の関係を記述するDeep Nueral Network関数（以下、DNN関数という）の性質を数理的に解明し、その性質を用いてDNN関数を意図したように制御できるようになるのであれば、ある程度のデータ量しか用意できなかった場合においても、十分に入出力データ間の関係を記述できるDNN関数を構成できる可能性がある。例えば、自動運転／ロボットや医療機器などの制御において、物理的におおよそ動作制限をかけることができるだろう。また、DNN関数から出力される値の挙動を予測できるようにできるのであれば、誤認識／事故が起きてしまったとしても、DNN関数を解析することにより、どういう状態だったのかなどの原因を推定できるようになるかもしれない。原因が推定できれば、DNN関数にさらに制約を課すことにより、誤認識／事故が起こらないようにすることに繋げられる可能性もある。
【０００９】
そこで本発明では、ニューラルネットワークにおける入出力データ間の関係を記述する関数が単射であることを保証できる確率変数変換技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様は、１のアフィン変換部と１の活性化関数計算部とを含む層を１以上含むニューラルネットワークであって、前記アフィン変換部が行うアフィン変換で用いる重み行列は、その特異値がすべて正であり、前記活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数と下界係数のいずれもが正である。
【発明の効果】
【００１１】
本発明によれば、ニューラルネットワークにおける入出力データ間の関係を記述する関数が単射であることを保証できる確率変数変換系を構成することができる。
【図面の簡単な説明】
【００１２】
【図１】相互確率的データ変換モデルを説明する図。
【図２】行列特異値計算アルゴリズムを示す図。
【図３】潜在パラメータ学習装置１００の構成を示すブロック図。
【図４】潜在パラメータ学習装置１００の動作を示すフローチャート。
【図５】学習部１１０の構成例を示すブロック図。
【図６】学習部１１０の動作例を示すフローチャート。
【図７】変数変換部１１１の構成を示すブロック図。
【図８】変数変換部１１１の動作を示すフローチャート。
【図９】潜在パラメータ生成装置２００の構成を示すブロック図。
【図１０】潜在パラメータ生成装置２００の動作を示すフローチャート。
【図１１】逆変数変換装置３００の構成を示すブロック図。
【図１２】逆変数変換装置３００の動作を示すフローチャート。
【図１３】変数変換装置４００の構成を示すブロック図。
【図１４】変数変換装置４００の動作を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１４】
各実施形態の説明に先立って、この明細書における表記方法について説明する。
【００１５】
_（アンダースコア）は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
【００１６】
また、ある文字xに対するx^やx~のような上付き添え字の”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、x^やx~と記載しているものである。
【００１７】
＜技術的背景＞
本発明の実施形態の原理を説明する前に、まず、問題設定と従来技術であるスペクトル正規化法について説明する。
【００１８】
《問題設定》
確率分布Pxに従って生成された確率変数（のデータ）xが用意されているものとする。確率変数xには、以下のようなものがある。
（１）マイクロホン／カメラで取得したメディアデータxdata〜Px_data
（２）データが属するカテゴリ、分類情報を表すラベルデータxlabel〜Px_label
（３）ノイズが混在した観測データxnoisy〜Px_noisy
（４）クリーンな環境で収録したデータxclean〜Px_clean
（５）データを生成するための生成源データxsource〜Px_source
（６）人の操作／動作（例えばインデックスを操作する／手書きの文字やモーションにより操作する）によって観測されたデータxmanipulate〜Px_manipulate
それぞれの確率変数に関してデータの集合（以下、データセットという）が与えられているものとする。もし、2種類の確率変数を写像である確率変数変換により変換するような場合（例えば、音声から言語への変換を考える場合）、2種類の確率変数のデータセットは、互いに関連付けられる必要がある（例えば、音声とその言語を対応付けるラベル）。この2種類以上の確率変数が関連付けられたデータセットを、ラベル付などされていない単一の確率変数のデータセットと区別するために、関連付けデータセットと呼ぶ。
【００１９】
確率変数xの生成過程を尤度関数P(x|θ)として表す。ここで、尤度関数P(x|θ)には確率変数変換が含まれており、確率変数変換としてDNN関数を用いる。θは、DNN関数に含まれる潜在パラメータ（例えば重み行列）である。また、潜在パラメータθの事前確率をP(θ)で表す。
【００２０】
このとき、事後確率最大化(Maximum a posteriori, MAP)に従った潜在パラメータの点推定は、同時確率（尤度と事前確率の積）を最大化するθを求める問題として定式化される。
【００２１】
【数１】
2020107199.tif 000003
【００２２】
また、尤度関数P(x|θ)、事前確率P(θ)が、罰則項L、正規化項Rを用いてP(x|θ)∝exp(-L(θ, x))、P(θ)∝exp(-R(θ))として与えられるとき、式(1-1)を解くことは、式(1-2)を解くことと等価になる。
【００２３】
【数２】
2020107199.tif 000004
【００２４】
さらに、J層からなるDNN関数は以下のように表現される。
【００２５】
【数３】
2020107199.tif 000005
【００２６】
ただし、{W1, …, WJ, b1, …, bJ}∈wは重み行列群（なお、ここでは、バイアス群{bj}も重み行列群の中に含むことにする）、aj(1≦j≦J)は活性化関数である。活性化関数の例として、線形関数、シグモイド、ReLU、leaky ReLU、PReLUなどがある。
【００２７】
罰則項Lは、DNN関数GwとDNN関数Gwの出力変数が従う確率分布を仮定し、その確率分布に基づくコスト関数Fzの合成関数として表現される。
【００２８】
【数４】
2020107199.tif 000006
【００２９】
ここで、〇は2種類の関数を合成する演算子である。式(1-4)の潜在パラメータは{w, z}∈θである。
【００３０】
以下、罰則項Lの設計事例を2つ説明する。
【００３１】
［事例1:ノイズ除去問題］
ノイズが混在した信号を入力変数とし、ノイズが除去されたクリーンな信号を推定するノイズ除去問題を考える。DNN関数の出力変数またはDNN関数の出力変数にアフィン変換を適用した変数（推定したクリーン信号）と教師信号（クリーン信号）との差は、ガウス分布に従うとする。{xnoisy, xclean}∈xを入力変数と出力変数の組（つまり、関連付けデータセット）、{Z}∈zをアフィン変換行列、{w, z}∈θを（DNNを含むすべての）潜在パラメータとすると、このノイズ除去問題の罰則項Lは以下の式で表される。
【００３２】
【数５】
2020107199.tif 000007
【００３３】
ここで、E[・]は期待値演算、||・||pはLpノルムを表す。なお、期待値演算E[・]の代わりに、多数のデータを使った平均演算を用いてもよい。
【００３４】
なお、式(1-5)は、差(xclean-ZGw(xnoisy))が平均0, 分散1のガウス分布N(0, 1)に従うとしたとき、そのガウス分布の負の指数関数、つまりexp(-N(0, 1))が二次形式であることから導いた。
【００３５】
［事例2:多クラス分類問題］
（音声／画像等の）データを入力変数とし、（当該入力変数がどのクラスに所属するのかを示す）ラベル情報を推定する多クラス分類問題を考える。DNN関数の出力変数またはDNN関数の出力変数にアフィン変換を適用した変数（推定したラベル情報）と教師信号（ラベル情報）との差は、多項分布に従うとする。{xdata, xlabel}∈x（ただし、xlabelは所属する1つのクラスに対して1、その他は0であるベクトル）を入力変数と出力変数の組（関連付けデータセット）とすると、この多クラス分類問題の罰則項Lは以下の式で表される。
【００３６】
【数６】
2020107199.tif 000008
【００３７】
式(1-6)の拘束条件は、アフィン変換後のDNN関数の出力変数は、非負であり、かつ、その和が1となるように正規化されている必要があることを示す。また、式(1-6)をみると、DNN関数の出力変数が多項分布に従うことを仮定したとき、コスト関数Fzが交差エントロピーになることを示している。
【００３８】
一方、式(1-2)の正規化項Rの設計事例についても、様々ある。例えば、L1正則化に基づくスパース表現、スペクトル正規化法（参考非特許文献１）による方法がある。
【００３９】
（参考非特許文献１：Takeru Miyato, Toshiki Kataoka, Masanori Koyama, Yuichi Yoshida, “Spectral Normalization for Generative Adversarial Networks”, arXiv preprint arXiv:1802.05957, 2018.）
以下、スペクトル正規化法について説明する。
【００４０】
《スペクトル正規化法》
スペクトル正規化法の処理は至って簡単である。以下の式のように、重み行列群wの各重み行列Wj(1≦j≦J)のスペクトルノルム（最大特異値σmax(Wj)）が1となるように毎ステップ更新することで実装される。
【００４１】
【数７】
2020107199.tif 000009
【００４２】
式(1-7)の処理は、次式で定義される正規化項Rの実装方法の一つとして解釈できる。
【００４３】
【数８】
2020107199.tif 000010
【００４４】
ここで、δ(σ_max=1)は非負バリア関数である。
【００４５】
上記のように重み行列のスペクトルノルムを制限することにより、DNN関数の性質を制限できることがわかっている。
【００４６】
ここで、DNN関数のリプシッツ(Lipschitz)平滑性を表すため、新しい記法を導入する。以下でいうリプシッツ平滑性の上界係数は、通常、単にリプシッツ係数と呼ばれるものであるが、本発明の実施形態の原理では、リプシッツ平滑性の下界についても言及するので、リプシッツ平滑性の上界係数という用語を用いることにした。
【００４７】
関数gjのリプシッツ平滑性の上界係数||gj||UBは、任意の入力変数ペア{x, x’ }に対して以下の不等式を満たすβUBの最小値である。
【００４８】
【数９】
2020107199.tif 000011
【００４９】
また、リプシッツ平滑性の上界係数は、関数の合成に対して、以下の不等式を満たす。
【００５０】
【数１０】
2020107199.tif 000012
【００５１】
DNN関数に含まれるアフィン写像hin→houtのリプシッツ平滑性の上界係数||hj-1→Wjhj-1+bj||UBは、次式のようにアフィン写像で用いる重み行列Wjの最大特異値で与えられる。
【００５２】
【数１１】
2020107199.tif 000013
【００５３】
また、DNN関数に含まれる活性化関数ajに関しても、リプシッツ平滑性の上界係数||aj||UBを定義することは可能である。ここでは、よく使われる非線形性の活性化関数ReLU、leaky ReLU、PReLUを例としてリプシッツ平滑性の上界係数||aj||UBを説明する（参考非特許文献２）。
【００５４】
（参考非特許文献２：Kevin Jarrett, Koray Kavukcuoglu, Marc'Aurelio Ranzato, Yann LeCun, “What is the best multi-stage architecture for object recognition?”, 2009 IEEE 12th International Conference on Computer Vision, IEEE, pp.2146-2153, 2009.）
ReLU、leaky ReLU、PReLUは以下で表される。
【００５５】
【数１２】
2020107199.tif 000014
【００５６】
ReLUについては以下の係数が設定される。
【００５７】
【数１３】
2020107199.tif 000015
【００５８】
また、leaky ReLUについては以下の係数が設定される。
【００５９】
【数１４】
2020107199.tif 000016
【００６０】
PReLUについては以下の係数が設定される。
【００６１】
【数１５】
2020107199.tif 000017
【００６２】
式(1-12)で表される活性化関数を用いている場合、リプシッツ平滑性の上界係数||aj||UBは以下で与えられる。
【００６３】
【数１６】
2020107199.tif 000018
【００６４】
ここで、DNN関数Gwのリプシッツ平滑性の上界係数||Gw||UBは以下で与えられる。
【００６５】
【数１７】
2020107199.tif 000019
【００６６】
つまり、重み行列のスペクトルノルム（最大特異値）と活性化関数のリプシッツ平滑性の上界係数の積によって、DNN関数Gwのリプシッツ平滑上界係数||Gw||UBが決まる。
【００６７】
式（1-17）は、DNN関数Gwがリプシッツ関数（リプシッツ平滑性の上界が制限されたリプシッツ関数）であることを保証する。これは入力変数の変化に対してある程度緩やかに変化することを数理的に表現している。つまり、柔軟過ぎるDNN関数の性質に対して緩やかに変化するための制約を加えている。（上界が制限された）リプシッツ関数になるDNN関数Gwを用いると、例えば、学習用のデータセットへの過適合(overfitting)を抑制する効果が期待できる。
【００６８】
以上の説明からわかるように、スペクトル正規化法はDNN関数のブラックボックス性を解放する一つの方法と言える。以下では、この考え方をさらに進めることを考える。リプシッツ平滑性の上界だけではなく下界も存在する関数としては、バイ・リプシッツ(bi-Lipschitz)関数と呼ばれるものがあり、バイ・リプシッツ関数は単射な関数である（参考非特許文献３）。そこで、DNN関数Gwに対して、リプシッツ平滑性の上界だけでなく、下界も制御してバイ・リプシッツ関数にすることができれば、DNN関数Gwが単射であることを保証できるとの着想に至った。
【００６９】
（参考非特許文献３：G. DAVID and D. JERISON, “Lipschitz Approximation to Hypersurfaces, Harmonic Measure, and Singular Integrals”, Indiana University Mathematics Journal, Vol. 39, No. 3, pp. 831-845, 1990.）
以下、本発明の実施形態の原理として今回発案した、リプシッツ平滑性の上界係数と下界係数を制御する方法（一般化スペクトル正規化法）について説明する。
【００７０】
《一般化スペクトル正規化法》
DNN関数Gwに含まれる、重み行列Wjを用いたアフィン写像に対して、リプシッツ平滑性の下界係数の下限値とリプシッツ平滑性の上界の上限値{ηmin, ηmax}を事前に与えることを考える。次式のように双方とも正であることを仮定する。
【００７１】
【数１８】
2020107199.tif 000020
【００７２】
また、重み行列WjはKj×Kj-1（Kj(1≦j≦J)はj層目の変数次元）の実数行列であるものとする。なお、j=1のとき、Kj-1=K0となるが、K0はDNN関数の入力変数の次元を表すものとする。
【００７３】
【数１９】
2020107199.tif 000021
【００７４】
重み行列Wjの最小特異値をσmin(Wj)と表すことにする。重み行列Wjの最小特異値σmin(Wj)が正であるためには、重み行列Wjは正方行列(Kj = Kj-1)であるか、拡大行列(Kj > Kj-1)である必要がある。
【００７５】
式(2-1)を満たすように重み行列の特異値を制御するための正規化項Rは以下で与えられる。
【００７６】
【数２０】
2020107199.tif 000022
【００７７】
以下、重み行列の最大特異値(スペクトルノルム)だけでなく、最小特異値も制御することの効果を示す。そのため、DNN関数のリプシッツ平滑性の下界を表すための新しい記法を導入する。
【００７８】
関数gjのリプシッツ平滑性の下界係数||gj||LBは、任意の入力変数ペア{x, x’ }に対して以下の不等式を満たすβLBの最大値である。
【００７９】
【数２１】
2020107199.tif 000023
【００８０】
また、リプシッツ平滑性の下界係数は、関数の合成に対して、以下の不等式を満たす。
【００８１】
【数２２】
2020107199.tif 000024
【００８２】
DNN関数に含まれるアフィン写像hin→houtのリプシッツ平滑性の下界係数||hj-1→Wjhj-1+bj||LBは、次式のようにアフィン写像で用いる重み行列Wjの最小特異値で与えられる。
【００８３】
【数２３】
2020107199.tif 000025
【００８４】
また、DNN関数に含まれる活性化関数ajに関しても、リプシッツ平滑性の下界係数||aj||LBを定義することは可能であり、式(1-12)に従う非線形性の活性化関数を用いるとき、リプシッツ平滑性の下界係数||aj||LBは以下で与えられる。
【００８５】
【数２４】
2020107199.tif 000026
【００８６】
ここで、DNN関数Gwのリプシッツ平滑性の下界係数||Gw||LBは以下で与えられる。
【００８７】
【数２５】
2020107199.tif 000027
【００８８】
式(2-8)より、（１）正規化項Rを式(2-3)で定義し、重み行列の最小特異値が正となるように制御すること及び（２）リプシッツ平滑性の下界係数が正である活性化関数を選択することにより、DNN関数のリプシッツ平滑性の下界係数||Gw||LBもまた正となることを保証できる。このとき、以下を満たす正の係数γが存在する。
【００８９】
【数２６】
2020107199.tif 000028
【００９０】
すなわち、任意の入力変数ペア{x, x’ }に対して以下の不等式が成り立つので、DNN関数Gwがバイ・リプシッツ性を有することを保証できる。
【００９１】
【数２７】
2020107199.tif 000029
【００９２】
前述の通り、式(2-10)を満たすDNN関数Gwは単射であり、DNN関数Gwは逆関数Gw-1を持つ。
【００９３】
ここで、DNN関数Gwが単射であることに基づいて、入出力変数に対して罰則項Lがどのような確率的仮定を課しているのかについて説明する。DNN関数Gwは単射であり、リプシッツ平滑の上界係数／下界係数ともに正の値であることが保証されているので、狭義単調関数であることがわかる。罰則項Lはコスト関数FzとDNN関数Gwの合成関数であるので、罰則項Lはコスト関数FzをDNN関数Gwで変調したような特性を持つ。負の罰則項Lに対して指数関数をとることで、入力変数xが従うと仮定している確率分布が得られる。これにより、入力変数xが従う確率分布の性質を予測可能であることがわかる。
【００９４】
次に、一般化スペクトル正規化法を用いたDNN関数の逆関数の設計と当該関数を用いた確率的データ生成モデルについて説明する。
【００９５】
《DNN関数の逆関数を用いた確率的データ生成モデル》
事後確率最大化に基づいて設計したDNN関数Gwが逆関数を持つのであれば、順問題（例：ガウスノイズ等でモデル化される生成源変数から画像等のメディアデータ、すなわちデータ変数を推定する問題）を解く代わりに、逆問題（例：画像等のデータ変数から生成源変数を推定する問題）を解くことにより、順問題もまた解けたことになる。
【００９６】
現在のDNNを用いた確率的データ生成モデルに関する研究では、生成源変数からデータ変数を推定する問題を解いている。その中で最も著名な研究は、敵対的データ生成深層ニューラルネットワーク(GAN)である（参考非特許文献４）。
【００９７】
（参考非特許文献４：Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, “Generative Adversarial Nets”, In Advances in Neural Information Processing Systems 27 (NIPS 2014), pp.2672-2680, 2014.）
生成源変数からデータ変数を推定するGANを構成（学習）する手順は以下の通りである。まず、GANで推定したデータ変数と本物のデータ変数を識別するための識別関数Dzを、深層ニューラルネットワークを用いて設計する。そして、この識別関数Dzによる真偽の判定がつかなくなるまで、つまり、推定されたデータ変数のクオリティが真偽判定できない程度まで高くなるように、GANの学習をする。多くの研究事例において、GANを使ってそれらしいデータ変数（例えば、画像）が得られていることが確認されているが、次に述べるような問題もある。すなわち、一般に生成源変数からデータ変数を推定する順問題を解くことは難しいため、識別関数Dzを用いて真偽を見破れないようにするというGANの構成方法は、学習が難しい上、安定しないという問題である。実際、このような指摘をした報告が数多く挙がっている。この欠点を克服するため、難しい順問題を解く代わりに、比較的容易な逆問題を解くことを以下では考える。この考え方は、（非線形処理と線形処理の違いはあるが）音声符号化で広く用いられているソース・フィルタモデルに近い考え方である。
【００９８】
学習によりバイ・リプシッツ平滑性を有するDNN関数Gwを得られたものとする。
【００９９】
【数２８】
2020107199.tif 000030
【０１００】
このとき、逆関数Gw-1は以下で与えられる。
【０１０１】
【数２９】
2020107199.tif 000031
【０１０２】
ここで、{rp,j, rn,j}がともに0よりも大きいとき、活性化関数ajの逆関数aj-1は次式により与えられる。
【０１０３】
【数３０】
2020107199.tif 000032
【０１０４】
なお、式(1-3)’とその逆関数である式(2-11)が互いに均衡で安定であるためには、活性化関数ajの係数rp,jとrn,jは下記の（１）から（３）の少なくとも何れかとなるようにするとよい。
（１）活性化関数の係数rp,jとrn,jが逆数になるようにする。すなわち、rp,j=1/rn,jとする。
（２）活性化関数の係数を層ごとに逆数になるようにする。すなわち、κ>0としたとき、活性化関数の係数が下記の条件を満たすようにする。
{rp,j, rn,j}={κ, 1/κ}    （jが偶数のとき）
{rp,j, rn,j}={1/κ, κ}    （jが奇数のとき）
（３）最終層（J層目）の活性化関数を線形関数とする。
【０１０５】
また、重み行列Wjの逆行列/擬似逆行列Wj+は次式により与えられる。
【０１０６】
【数３１】
2020107199.tif 000033
【０１０７】
この性質を用いると、以下のように確率的データ生成モデルを構築することが可能になる。
【０１０８】
ステップ１:一般化スペクトル正規化法を用いて、データ変数から生成源変数を推定する逆問題を解くDNN関数Gwを学習する最適化フェーズ
まず、||aj||UB>0及び||aj||LB>0を満たす活性化関数ajを選択する。活性化関数ajとしては、係数rp,jとrn,jが上述した（１）から（３）の少なくとも何れかを満たすものを選択するのがよいが、式(1-12)で表されるleaky ReLU、PReLUのいずれかの活性化関数を選択してもよいし、これらに限定する必要はない。
【０１０９】
次に最適化に用いる罰則項Lと正則化項Rを設計する。生成源変数が例えば多次元ガウス分布に従うことを仮定すると、事後確率最大化(MAP)に基づくコスト関数最適化は次式により与えられる。
【０１１０】
【数３２】
2020107199.tif 000034
【０１１１】
なお、正規化項Rには式(2-3)で定義される式を用いる。
【０１１２】
式(2-14)はDNN関数の出力変数のエネルギー期待値を最小化する式に対応するので、分散が小さい多次元ガウス分布に従う生成源変数が出力されることが期待される。
【０１１３】
一方、生成源変数が大きな分散ρ2をもつ多次元ガウス分布N(0, ρ2)に従うようにしたい場合には、一例として、次式の敵対的学習に基づくコスト関数最適化を用いて実現する。
【０１１４】
【数３３】
2020107199.tif 000035
【０１１５】
ここで、関数Dzは、ガウス乱数生成器N(0, ρ2)から生成された変数nGaussと、DNN関数にデータ変数xdataを入力して出力された生成源変数ydataと、の真偽を最大限区別するように学習される。潜在パラメータの学習過程に用いる深層ニューラルネットワークの構成はGANと同様であるが、DNN関数の入出力変数が異なる。具体的には、GANでは生成源変数を入力としてデータ変数を出力としているが、式(2-15)ではその逆である。この構成が許容されるのは、上述した一般化スペクトル正規化法により設計したDNN関数Gwが逆関数Gw-1を持つからである。GANでは、本物の画像と生成された画像を最大限区別するように識別関数Dzを設計／更新する必要があるが、うまくいっている事例が多く報告されているものの、実際この問題を安定的に解くのは比較的難しい。一方、上述した構成では、ガウス乱数生成器で生成された本物のガウス乱数と、入力されたデータ変数を変換して得られたガウス生成源変数と、を最大限区別するように識別関数Dzは設計／更新される。この構成は、GANで解いている問題、すなわち、本物の画像と生成画像を区別する問題と比較すれば、かなり簡易な問題であると考えられる。つまり、大きな分散ρ2の多次元ガウス分布N(0, ρ2)に従う生成源変数を得るように、DNN関数の潜在パラメータを学習することは実現可能であるといえる。
【０１１６】
また、罰則項Lに含まれるコスト関数FzとしてピアソンダイバージェンスやKLダイバージェンスを用いる方法もある。
【０１１７】
情報理論を基に構成されたインフォマックス(Infomax)論（参考非特許文献５）と照らし合わせると、確率的生成モデルにおけるDNN関数の出力変数(生成源変数)のエントロピーが大きいほど、入出力変数間の相互情報量が大きくなる。すなわち、出力変数に入力変数(データ変数)の情報がより多く含まれていることを意味する。式(2-14)のように出力変数が分散の小さい多次元ガウス分布に従うことと、式(2-15)のように出力変数が分散の大きな多次元ガウス分布に従うことでは、後者のほうが出力変数のエントロピーが大きい。それは出力変数yが多次元ガウス分布（相互相関が0）に従うとき、そのエントロピーが次式で表せるからである。
【０１１８】
【数３４】
2020107199.tif 000036
【０１１９】
つまり、分散ρ2が大きいほど、出力変数の次元Kjが大きいほど、出力変数のエントロピーが大きくなり、相互情報量も大きくなる。すなわち、高精度なデータ変数を生成したいのであれば、式(2-14)よりも式(2-15)を用いて潜在パラメータを学習したほうがよいと言える。
【０１２０】
（参考非特許文献５：A. J. Bell and T. J. Sejnowski, “An Information-Maximization Approach to Blind Separation and Blind Deconvolution”, Neural Computation, vol.7, no.6, pp.1129-1159, 1995.）
【０１２１】
ステップ２: DNN関数Gwの逆関数Gw-1を生成するフェーズ
ステップ１で学習した重み行列Wjに対して、式(2-13)によりその逆行列／擬似逆行列Wj+を計算する。また、活性化関数ajに対して逆関数aj-1を式(2-12)により計算する。これらの逆行列／擬似逆行列Wj+と逆関数aj-1を用いて、逆関数Gw-1を計算する深層ニューラルネットワークを構成する。この深層ニューラルネットワークは式(2-11)を計算するものであり、例えばガウス乱数でモデル化された生成源変数のデータから（例えば画像のような）データ変数のデータを生成することができる。
【０１２２】
ここまで、確率的データ生成モデルの設計方法について述べてきた。ここから、確率的データ生成モデルの更なる拡張として、相互確率的データ変換モデルについて説明する。
【０１２３】
《相互確率的データ変換モデル》
確率的データ生成モデルでは、例えばガウス分布や一様分布等の少ないパラメータを用いて表現できる確率分布に従う生成源変数と、複雑で未知の確率分布に従うデータ変数を相互に変換できる問題について扱ってきた。相互確率的データ変換モデルでは、例えば図１に示すように、2種類のデータ変数（例えば、画像（音声）と分類ラベル（人間のインデックス操作信号））を相互に変換する問題を扱う。相互確率的データ変換モデルが従来の確率変数変換問題（例えば音声から言語ラベルへの変換）と異なるのは、（１）逆関数を持つので、相互に変換可能であるという点と、（２）その変数変換過程で高次元の特徴空間に写像されるという点である。なお、例示はしないが、相互確率的データ変換モデルでは、2種類の変数の組合せによって3種類以上の変数の相互変換を構成することが可能である。すなわち、相互確率的データ変換モデルでは、2種類以上のデータ変数を相互に変換することができる。
【０１２４】
確率的データ生成モデルの説明の中で、例えば式(2-15)を用いることで、出力変数（生成源変数）のエントロピーが大きくなり、入出力変数間の相互情報量も大きくなることを説明した。それは、出力変数（生成源変数）に入力変数（データ変数）の情報がより多く含まれていることを意味している。これは、別の見方をすると、出力変数（生成源変数）は入力変数（データ変数）の有用な高次元特徴量であることを意味する。つまり、そのとき、DNN関数は高次元特徴空間写像関数となる。
【０１２５】
複数のデータ変数（例えば音声と言語ラベル）のデータセットがそれぞれ独立に用意されているとき（したがって、これらのデータ変数は関連付けデータセットである必要はない）、式(2-15)に従い、それぞれのデータ変数xi（例えばi=1が画像、i=2が分類ラベル／人間のインデックス操作信号）に対する高次元特徴空間写像関数Gi,wiを学習／設計できる。このとき、高次元特徴量はyi=Gi,wi(xi)によって得る。
【０１２６】
2種類のデータ変数{x1, x2}がそれぞれ高次元特徴量{y1, y2}に変換されたものとする。さらに、それらを関連付けるための可逆関数C1,2 (y2=C1,2(y1))が用意されたものとする（この可逆関数の設計法については後述する）。このとき、x1からx2に変換する関数（例えば、画像から分類ラベルを推定、つまり画像認識）は、次式で与えられる。
【０１２７】
【数３５】
2020107199.tif 000037
【０１２８】
また、その逆関数、つまり、x2からx1に変換する関数（例えば、人が低次元インデックスを操作し、その操作意図に応じた画像が生成されるアプリケーション）は、次式で与えられる。
【０１２９】
【数３６】
2020107199.tif 000038
【０１３０】
確率的データ生成モデルでは、ガウス乱数を入力として画像を生成していたが、意図した画像が出力されていなかった。ここでは、2種類の変数空間を関連付けることで、例えば、人の低次元インデックス操作意図に応じて、画像が作れるという利点を示した。
【０１３１】
もう一つの利点として、関連付けデータセットの規模が大きくなかったとしても、2種類の変数を高精度に変換する関数C1,2を設計できる可能性がある。つまり、2種類以上のデータ変数を相互に関連付ける作業（例えば、人手によるラべリング）にかかる費用コスト／時間を大幅に削減できるメリットがある。
【０１３２】
2種類の高次元特徴量を関連付ける可逆関数C1,2を設計するために、{x1, x2}に関する関連付けデータセットは必ず必要である。C1,2はこれまでと同様に逆関数を持つDNN関数として設計することもできる。また、C1,2は、可逆な線形変換関数を用いて実装することもできる。所定の条件を満たす場合には後者のほうが有用であると考えられる。具体的には、（１）特徴量次元が十分に高く、（２）2種類の異なるデータ変数の特徴量{y1, y2}の次元が同じで、（３）{y1, y2}が同じ形状の分布に従うように学習されている場合（例えば多次元ガウス分布）である。それは、この場合には、確率密度関数の変換式より、C1,2に線形変換を用いたとしても、相互に変換することは無理のない問題設定であるからである。C1,2が線形変換で実装されているのであれば、その潜在パラメータの自由度は極めて小さい。つまり、大量の関連付けデータセットが用意できなくても、{y1, y2}を関連付ける可逆関数C1,2を設計／最適化できるはずである。
【０１３３】
最後に、潜在パラメータ最適化において、効率的に重み行列の最大特異値／最小特異値を計算するためのアルゴリズムについて説明する。
【０１３４】
《行列特異値計算アルゴリズム》
式(2-3)の正規化項Rを含む目的関数を用いて重み行列群wを最適化する場合、重み行列Wjの特異値の最大値だけではなく、最小値も制御する必要がある。しかし、行列サイズ（Kj×Kj-1）が大きい場合には、計算時間もかかるし、膨大なメモリ量も必要になる。
【０１３５】
そこで、Wjを区分巡回行列とすることで、特異値計算のための計算量軽量化／メモリ縮小化を実現できることを説明する。なお、参考非特許文献６で指摘されているように、Wjを区分巡回行列とすることで、DNNの順伝播／逆伝搬の計算の軽量化／低メモリ化にも役に立つ（学習済み潜在パラメータを用いた順伝播の変数変換するフェーズにおけるリアルタイム性が高くなる）。
【０１３６】
（参考非特許文献６：Caiwen Ding, Siyu Liao, Yanzhi Wang, Zhe Li, Ning Liu, Youwei Zhuo, Chao Wang, Xuehai Qian, Yu Bai, Geng Yuan, et al. “CirCNN: accelerating and compressing deep neural networks using block-circulant weight matrices”, In Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture, pp.395-408, 2017.）
区分巡回行列Wj(1≦j≦J)は、次式により表される。
【０１３７】
【数３７】
2020107199.tif 000039
【０１３８】
ここで、行列Wj,k,m(1≦k≦βj, 1≦m≦βj-1)は巡回行列である。つまり、式(2-19)は区分巡回行列Wjがβj×βj-1個の巡回行列Wj,k,mで構成されていることを意味する。
【０１３９】
巡回行列Wj,k,mは、離散フーリエ分解(DFT)行列を用いると、以下のように分解できる。
【０１４０】
【数３８】
2020107199.tif 000040
【０１４１】
つまり、ブロック対角化行列Djはβj個のNj点DFT行列ΩNjを含む。なお、ΩNjは、次式により表される。
【０１４２】
【数３９】
2020107199.tif 000041
【０１４３】
上記区分対角行列Φjは次式により表される。
【０１４４】
【数４０】
2020107199.tif 000042
【０１４５】
ここで、Φj,k,m(1≦k≦βj, 1≦m≦βj-1)は対角DFTスペクトル行列であり、次式により表される。
【０１４６】
【数４１】
2020107199.tif 000043
【０１４７】
このとき、DFT行列は直交行列であるので、区分巡回行列Wjの特異値列と区分対角行列Φjの特異値列は一致する。区分対角行列Φjは、非ゼロの要素が(βj×βj-1×Nj)個であり、非常にスパースであるので、区分巡回行列Wjの特異値の代わりに区分対角行列Φjの特異値を推定する問題を解いた方が簡単になる。それは行と列の順序入れ替えすることにより、ブロック対角行列になるためである。
【０１４８】
この考え方を基に構築した行列特異値計算アルゴリズムの実装例を図２に示す。図２のアルゴリズムは、確率的勾配法(Stochastic Gradient Descent, SGD)に基づくものである。ステップ２におけるNiterationは更新回数を表す。ステップ４では、SGDに基づいて{W1, …, WJ, b1, …, bJ}を更新する。具体的には、ミニバッチxMB、学習率αを用いて更新する。ステップ５では、固有値Λjと固有ベクトルVj(1≦j≦J)とを用いて特異値を計算する。ステップ６では、{ηmin, ηmax}の範囲に入るように特異値Σ~j=diag([σj,1, …, σj,K_j-1]) (1≦j≦J)を修正した後、Wj(1≦j≦J)を更新する。
【０１４９】
あるいは、順序入れ替えすることにより得られたブロック対角行列に対して、ブロック小行列ごとに特異値分解することで、軽い計算量で特異値列を得られる。FFTを使って区分対角行列Φjを計算することで、計算時間の短縮に役立つ。また、特異値分解の結果を使うことで、逆関数Gw-1を含まれる式(2-13)の逆行列Wj+もまた効率的に計算可能である。
【０１５０】
《効果》
重み行列の特異値がすべて正になることと、リプシッツ平滑性の上界係数と下界係数が正になる活性化関数を選択することにより、（１）入力変数xが従う確率分布の性質が予測可能であり、（２）逆関数を持つDNN関数を構成することができる。特に、（２）の効果は、順問題の逆、つまり、逆問題を解いても問題が解決されることを示唆しており、例えば、ガウス乱数等の生成源変数からデータ変数を推定する順問題ではなく、比較的容易なその逆問題を解いても、順問題を解く確率的データ生成モデルが得ることができる。
【０１５１】
＜第１実施形態＞
ここでは、学習用データセットを用いて潜在パラメータを学習する潜在パラメータ学習装置１００について説明する。学習用データセットは、学習のために事前に準備した確率変数データセット（学習用データセット）xである。また、潜在パラメータは、後述する重み行列群{W1, …, WJ, b1, …, bJ}∈wである。
【０１５２】
以下、図３〜図４を参照して潜在パラメータ学習装置１００を説明する。図３は、潜在パラメータ学習装置１００の構成を示すブロック図である。図４は、潜在パラメータ学習装置１００の動作を示すフローチャートである。図３に示すように潜在パラメータ学習装置１００は、学習部１１０と、記録部１９０を含む。記録部１９０は、潜在パラメータ学習装置１００の処理に必要な情報を適宜記録する構成部である。記録部１９０は、例えば、学習対象となる潜在パラメータを記録する。なお、潜在パラメータは、学習開始に先立って、例えば乱数を用いて初期化されるものとする。
【０１５３】
潜在パラメータ学習装置１００は、学習用データセット記録部９１０に接続している。学習用データセット記録部９１０は、例えば、事前に収集した、入力データ（入力変数）と当該入力データを変数変換した結果である出力データ（出力変数）を、学習用入力データと学習用出力データの組（学習用データセット）として記録している。なお、学習の際には入力データと出力データのいずれか一方を所定の確率分布に従う変数として扱ってもよく、その場合には学習用データセット記録部９１０には、学習用入力データのデータセットと学習用出力データデータのデータセットとのいずれか一方を記録しておけばよい。
【０１５４】
図４に従い潜在パラメータ学習装置１００の動作について説明する。学習部１１０は、学習用データセットを用いて潜在パラメータを学習する（Ｓ１１０）。以下、図５〜図６を参照して学習部１１０の一例について説明する。図５は、学習部１１０の構成例を示すブロック図である。図６は、学習部１１０の動作例を示すフローチャートである。図５に示すように学習部１１０は、変数変換部１１１と、目的関数計算部１１３と、潜在パラメータ更新部１１５と、収束条件判定部１１７を含む。
【０１５５】
図６に従い学習部１１０の動作例について説明する。変数変換部１１１は、学習用データセットに含まれる学習用入力データから、推定出力データを生成する（Ｓ１１１）。変数変換部１１１は、ニューラルネットワークとして構成される構成部（つまり、ニューラルネットワークにおける入出力データ間の関係を記述する関数（以下、NN関数という）を計算する構成部）である。
【０１５６】
以下、図７〜図８を参照して変数変換部１１１について説明する。図７は、変数変換部１１１の構成を示すブロック図である。図８は、変数変換部１１１の動作を示すフローチャートである。図７に示すように変数変換部１１１は、第1アフィン変換部１１１−ａ１と、第1活性化関数計算部１１１−ｂ１と、…、第Jアフィン変換部１１１−ａＪと、第J活性化関数計算部１１１−ｂＪを含む（ただし、Jは1以上の整数である）。なお、アフィン変換部と活性化関数計算部の組を層といい、第jアフィン変換部１１１−ａｊと第j活性化関数計算部１１１−ｂｊの組を第j層という。したがって、Jは変数変換部１１１に含まれる層の数を表す。第jアフィン変換部１１１−ａｊ(1≦j≦J)は、重み行列Wjとバイアスbjを用いて表現されるアフィン変換（第jアフィン変換）を実行する構成部である。また、第j活性化関数計算部１１１−ｂｊは、活性化関数aj(1≦j≦J)の値を計算する構成部である。活性化関数aj(1≦j≦J)は、そのリプシッツ平滑性の上界係数と下界係数のいずれもが正であるものであれば、任意の活性化関数を用いてよい（つまり、そのような活性化関数ajを選択すればよい）。例えば、活性化関数ajは、＜技術的背景＞で説明したleaky ReLU、PReLUのいずれかとすればよい。
【０１５７】
以上より、変数変換部１１１は、１個のアフィン変換部と１個の活性化関数計算部とを含む層がJ個あり、J個のアフィン変換とJ個の活性化関数の計算を行うニューラルネットワークであると言える。なお、J>1の場合、変数変換部１１１は、深層ニューラルネットワークとなる。
【０１５８】
図８に従い変数変換部１１１の動作について説明する。第jアフィン変換部１１１−ａｊ(1≦j≦J)は、第(j-1)活性化関数計算部１１１−ｂ（ｊ−１）からの出力を入力とし、当該第(j-1)活性化関数計算部１１１−ｂ（ｊ−１）からの出力に対して重み行列Wjとバイアスbjを用いて表現されるアフィン変換（第jアフィン変換）を実行する（Ｓ１１１−ａｊ）。ただし、j=1のとき、第1アフィン変換部１１１−ａ１に学習用入力データを入力する。
【０１５９】
第j活性化関数計算部１１１−ｂｊ(1≦j≦J)は、第jアフィン変換部１１１−aｊからの出力を入力とし、当該第jアフィン変換部１１１−aｊからの出力に対する活性化関数ajの値を計算する（Ｓ１１１−ｂｊ）。なお、j=Jのとき、第J活性化関数計算部１１１−ｂＪは、推定出力データを出力する。
【０１６０】
目的関数計算部１１３は、Ｓ１１１で生成した推定出力データと学習用データセットに含まれる学習用出力データから、目的関数の値を計算する（Ｓ１１３）。目的関数は、罰則項Lと正規化項Rの和として定義される。罰則項Lは、変数変換部１１１の出力である推定出力変数が従う確率過程に基づくコスト関数であり、推定出力変数と学習用出力変数の誤差を測定する関数である。また、正規化項Rは、所定の実数ηmin, ηmax（ただし、0<ηmin≦ηmax<+∞を満たす）を用いて定義される式
【０１６１】
【数４２】
2020107199.tif 000044
【０１６２】
で与えられる。
【０１６３】
正規化項Rの値を計算するためには、重み行列Wjの特異値を計算する必要がある。重み行列Wj(1≦j≦J)が、βj×βj-1個の巡回行列Wj,k,m(1≦k≦βj, 1≦m≦βj-1)を用いて式
【０１６４】
【数４３】
2020107199.tif 000045
【０１６５】
で与えられる区分巡回行列である場合は、目的関数計算部１１３は、重み行列Wjの特異値を求める代わりに次式で与えられる区分対角行列Φjの特異値を計算するようにしてもよい。
【０１６６】
【数４４】
2020107199.tif 000046
【０１６７】
（ただし、Φj,k,m(1≦k≦βj, 1≦m≦βj-1)は式
【０１６８】
【数４５】
2020107199.tif 000047
【０１６９】
で与えられる対角DFTスペクトル行列）
潜在パラメータ更新部１１５は、Ｓ１１３で計算した目的関数の値を最適化するように、潜在パラメータである重み行列群{W1, …, WJ、b1, …, bJ}∈wを更新する（Ｓ１１５）。潜在パラメータの更新には、例えば、確率的勾配法を用いるとよい。
【０１７０】
収束条件判定部１１７は、潜在パラメータ更新の終了条件として事前に設定された収束条件を判定し、収束条件が満たされた場合はＳ１１５で生成した潜在パラメータを出力し、収束条件が満たされない場合はＳ１１１〜Ｓ１１５の処理を繰り返す（Ｓ１１７）。収束条件として、例えばＳ１１１〜Ｓ１１５の処理の実行回数が所定の回数（例えば、10万回程度）に達したかという条件を採用することができる。
【０１７１】
このようにして得られる重み行列群wの重み行列Wj(1≦j≦J)、つまり、第jアフィン変換部が行うアフィン変換で用いる重み行列Wjは、その特異値がすべて正となる。
【０１７２】
変数変換部１１１に上記学習した重み行列群wを適用した、単独のニューラルネットワーク１１１（以下、変数変換装置１１１ともいう）を構成することもできる。つまり、変数変換装置１１１は、第1アフィン変換部１１１−ａ１と、第1活性化関数計算部１１１−ｂ１と、…、第Jアフィン変換部１１１−ａＪと、第J活性化関数計算部１１１−ｂＪと、（図示しない）記録部を含むものである（図６、図７参照）。この変数変換装置１１１は、特異値がすべて正である重み行列を含む重み行列群w（例えば潜在パラメータ学習装置１００が学習した潜在パラメータである重み行列群w）とリプシッツ平滑性の上界係数と下界係数のいずれもが正である活性化関数を用いて、変数変換部１１１と同一の処理を実行し、入力データから推定出力データを生成する。つまり、変数変換装置１１１は入力データを推定出力データに変換する。
【０１７３】
＜技術的背景＞で説明したように、変数変換装置１１１が実行する変数変換の逆変換を実行するニューラルネットワークを構成することができる。この逆変換を実行するニューラルネットワークが逆変数変換装置３００である。また、逆変数変換装置３００で用いる重み行列を生成するのが潜在パラメータ生成装置２００である。
【０１７４】
以下、潜在パラメータ生成装置２００、逆変数変換装置３００について説明する。まず、図９〜図１０を参照して潜在パラメータ生成装置２００を説明する。図９は、潜在パラメータ生成装置２００の構成を示すブロック図である。図１０は、潜在パラメータ生成装置２００の動作を示すフローチャートである。図９に示すように潜在パラメータ生成装置２００は、潜在パラメータ生成部２１０と、記録部２９０を含む。記録部２９０は、潜在パラメータ生成装置２００の処理に必要な情報を適宜記録する構成部である。
【０１７５】
潜在パラメータ生成装置２００には、特異値がすべて正である重み行列を含む重み行列群{W1, …, WJ、b1, …, bJ}∈w、例えば、潜在パラメータ学習装置１００が学習した潜在パラメータである重み行列群{W1, …, WJ,b1, …, bJ}∈wが入力される。
【０１７６】
図１０に従い潜在パラメータ生成装置２００の動作について説明する。潜在パラメータ生成部２１０は、潜在パラメータ生成装置２００の入力である重み行列群{W1, …, WJ, b1, …, bJ}∈wから、潜在パラメータである重み行列群{W1+, …, WJ+, b1, …, bJ}∈w+を生成する（Ｓ２１０）。重み行列Wj+は、変数変換装置１００に含まれる第jアフィン変換部１１１−ａｊが計算するアフィン変換の逆変換である逆アフィン変換（逆第jアフィン変換）で用いるものである。具体的には、潜在パラメータ生成部２１０は、重み行列Wj+を式
【０１７７】
【数４６】
2020107199.tif 000048
（ただし、Kj,Kj-1は重み行列Wjの行の数、列の数である）により生成する。
【０１７８】
なお、潜在パラメータ生成装置２００には、重み行列{W1, …, WJ}のみを入力するようにしてもよい。
【０１７９】
続いて、図１１〜図１２を参照して逆変数変換装置３００について説明する。この逆変数変換装置３００は入力データを推定出力データに変換する。なお、逆変数変換装置３００のことをニューラルネットワーク３００ともいう。図１１は、逆変数変換装置３００の構成を示すブロック図である。図１２は、逆変数変換装置３００の動作を示すフローチャートである。図１１に示すように逆変数変換装置３００は、逆第J活性化関数計算部３１０−ｂＪと、逆第Jアフィン変換部３１０−ａＪと、…、逆第1活性化関数計算部３１０−ｂ１と、逆第1アフィン変換部３１０−ａ１と、記録部３９０（逆変数変換装置３００の処理に必要な情報を適宜記録する構成部）を含む。なお、Jは変数変換装置１１１に含まれる層の数である。逆第j活性化関数計算部３１０−ｂｊは、活性化関数ajの逆関数である活性化関数aj-1（以下、逆活性化関数という）の値を計算する構成部である。活性化関数ajがleaky ReLU、PReLUのいずれかである場合、逆活性化関数aj-1は、＜技術的背景＞で説明したように式(2-12)で与えられる。なお、活性化関数aj(1≦j≦J)のリプシッツ平滑性の上界係数と下界係数のいずれもが正である場合、逆活性化関数aj-1のリプシッツ平滑性の上界係数と下界係数のいずれも正となる。また、逆第jアフィン変換部１１１−ａｊ(1≦j≦J)は、重み行列Wj+とバイアスbjを用いて表現されるアフィン変換（逆第jアフィン変換）を実行する構成部である。
【０１８０】
以上より、逆変数変換装置３００は、１個のアフィン変換部と１個の活性化関数計算部とを含む層がJ個あり、J個の逆アフィン変換とJ個の逆活性化関数の計算を行うニューラルネットワークであると言える。
【０１８１】
図１２に従い逆変数変換装置３００の動作について説明する。逆第j活性化関数計算部３１０−ｂｊ(1≦j≦J)は、逆第(j+1)アフィン変換部３１０−a（ｊ＋１）からの出力を入力とし、当該逆第(j+1)アフィン変換部３１０−a（ｊ＋１）からの出力に対する逆活性化関数a(j+1)-1の値を計算する（Ｓ３１０−ｂｊ）。ただし、j=Jのとき、逆第J活性化関数計算部３１０−ｂＪに変数変換したいデータ（変数）を入力データとして入力する。
【０１８２】
逆第jアフィン変換部３１０−ａｊ(1≦j≦J)は、逆第j活性化関数計算部３１０−ｂｊからの出力を入力とし、当該逆第j活性化関数計算部３１０−ｂｊからの出力に対して重み行列Wj+とバイアスbjを用いて表現されるアフィン変換（逆第jアフィン変換）を実行する（Ｓ３１０−ａｊ）。なお、j=1のとき、逆第1活性化関数計算部３１０−ａ１は、推定出力データを出力する。
【０１８３】
本実施形態の発明によれば、NN関数の構成に用いる重み行列や活性化関数の数理的性質に対して制限を課すことにより、当該関数が単射であることを保証できる変数変換を構成することができる。具体的には、重み行列の特異値がすべて正になることと、リプシッツ平滑性の上界係数／下界係数が正になる活性化関数を選択する 。これにより、（１）入力変数xが従う確率分布の性質が予測可能であり、（２）逆関数を持つNN関数を構成することができる。
【０１８４】
＜第２実施形態＞
ここでは、＜技術的背景＞で説明した相互確率的データ変換モデルを用いた変数変換装置について説明する。以下、図１３〜図１４を参照して変数変換装置４００について説明する。この変数変換装置４００は入力データを推定出力データに変換する。図１３は、変数変換装置４００の構成を示すブロック図である。図１４は、変数変換装置４００の動作を示すフローチャートである。図１３に示すように変数変換装置４００は、変数変換部４１０と、接続変数変換部４２０と、逆変数変換部４３０と、記録部４９０を含む。記録部４９０は、変数変換装置４００の処理に必要な情報を適宜記録する構成部である。変数変換装置４００は、２種類のデータを相互に変換する相互確率的データ変換モデルにおける変換に対応するものであり、２種類のデータのうちの一方のデータを入力データとして、２種類のデータのうちの他方のデータである推定出力データに変換するものである。
【０１８５】
変数変換部４１０は、２種類のデータのうちの一方のデータ（以下、１種類目のデータという）を入力データとして、その１種類目のデータの次元以上の次元の特徴量である第１高次元特徴量を得るものであり、第１実施形態の変数変換部１１１と同様のものである。変数変換部４１０は、第１実施形態の変数変換部１１１と同じ構成であり、１個のアフィン変換部と１個の活性化関数計算部とを含む層がJ個あり、J個のアフィン変換とJ個の活性化関数の計算を行うニューラルネットワークである。変数変換部４１０の各アフィン変換部が行うアフィン変換の重み行列は、その特異値がすべて正である。変数変換部４１０の各活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数と下界係数のいずれもが正である。なお、変数変換部４１０のことを第１ニューラルネットワーク４１０ともいう。
【０１８６】
逆変数変換部４３０は、２種類のデータのうちの他方のデータ（以下、２種類目のデータという）の次元以上の次元の特徴量である第２高次元特徴量から、２種類目のデータの推定出力データを得るものであり、２種類目のデータを入力データとして、２種類目のデータの次元以上の次元の特徴量である第２高次元特徴量を得る第１実施形態の変数変換部１１１に対応する第１実施形態の逆変数変換装置３００と同様のものである。逆変数変換部４３０は、第１実施形態の逆変数変換装置３００と同じ構成であり、１個のアフィン変換部と１個の活性化関数計算部とを含む層がJ個あり、J個の逆アフィン変換とJ個の逆活性化関数の計算を行うニューラルネットワークである。逆変数変換部４３０の各逆アフィン変換部が行うアフィン変換で用いる重み行列は、２種類目のデータを入力データとして、２種類目のデータの次元以上の次元の特徴量である第２高次元特徴量を得る第１実施形態の変数変換部１１１の対応するアフィン変換部で用いる重み行列の逆行列／擬似逆行列である。逆変数変換部４３０の各逆活性化関数計算部で用いる活性化関数は、２種類目のデータを入力データとして、２種類目のデータの次元以上の次元の特徴量である第２高次元特徴量を得る第１実施形態の変数変換部１１１の対応する活性化関数計算部で用いる活性化関数の逆関数である。なお、逆変数変換部４３０のことを第２ニューラルネットワーク４３０ともいう。
【０１８７】
接続変数変換部４２０は、第１高次元特徴量と第２高次特徴量とを関連付ける可逆関数を用いて、第１高次元特徴量から第２高次元特徴量を得るものである。
【０１８８】
まず、２種類のデータ{x1, x2}のうちのx1を入力データとして、x2の推定出力データであるx^2を得る場合の変数変換装置４００の動作例について図１４に従って説明する。変数変換部４１０は、入力データx1から、NN関数y1=G1,w1(x1)により、入力データx1の次元以上の次元の特徴量である第１高次元特徴量y1を生成する（Ｓ４１０）。接続変数変換部４２０は、Ｓ４１０で生成した第１高次元特徴量y1から、可逆関数C1,2を用いてy2=C1,2(y1)により、第２高次元特徴量y2を生成する（Ｓ４２０）。逆変数変換部４３０は、推定出力データx^2の次元以上の次元の特徴量である、Ｓ４２０で生成した第２高次元特徴量y2から、NN関数x^2=G-12,w2(y2)により、推定出力データx^2を生成する（Ｓ４３０）。
【０１８９】
次に、２種類のデータ{x1, x2}のうちのx2を入力データとして、x1の推定出力データであるx^1を得る場合の変数変換装置４００の動作例について図１４に従って説明する。変数変換部４１０は、入力データx2から、NN関数y2=G2,w2(x2)により、入力データx2の次元以上の次元の特徴量である第１高次元特徴量y2を生成する（Ｓ４１０）。接続変数変換部４２０は、Ｓ４１０で生成した第１高次元特徴量y2から、可逆関数C1,2の逆関数である可逆関数C-11,2を用いてy1=C-11,2(y2)により、第２高次元特徴量y1を生成する（Ｓ４２０）。逆変数変換部４３０は、推定出力データx^1の次元以上の次元の特徴量である、Ｓ４２０で生成した第２高次元特徴量y1から、NN関数x^1=G-11,w1(y1)により、推定出力データx^1を生成する（Ｓ４３０）。
【０１９０】
なお、＜技術的背景＞で説明した相互確率的データ変換モデルには対応しないが、逆関数を持たないNN関数で変数変換装置４００を構成してもよい。この場合は、変数変換部４１０の各アフィン変換部が行うアフィン変換で用いる重み行列は、その特異値がすべて正でなくてもよく、変数変換部４１０の各活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数やリプシッツ平滑性の下界係数が正でなくてもよい。また、逆変数変換部４３０は、２種類目のデータを入力データとして第２高次元特徴量を得る第１実施形態の変数変換部１１１に対応する第１実施形態の逆変数変換装置３００と同様のものでなくてもよく、例えば、２種類目のデータを入力データとして第２高次元特徴量を得る第１実施形態の変数変換部１１１と同様のものであってもよいし、その変数変換部１１１と同様の構成に含まれる各アフィン変換部が行うアフィン変換の重み行列は、その特異値がすべて正でなくてもよく、各活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数やリプシッツ平滑性の下界係数が正でなくてもよい。
【０１９１】
すなわち、第２実施形態の変数変換装置４００は、第１ニューラルネットワーク４１０が、入力データから、入力データの次元以上の次元の特徴量である第１高次元特徴量を生成し（Ｓ４１０）、接続変数変換部４２０が、可逆関数を用いて、Ｓ４１０で生成した第１高次元特徴量から、第２高次元特徴量を生成し（Ｓ４２０）、第２ニューラルネットワーク４３０が、Ｓ４２０で生成した第２高次元特徴量から、第２高次元特徴量の次元以下の次元のデータである推定出力データを生成する（Ｓ４３０）、という動作をするものである。
【０１９２】
本実施形態の発明によれば、（生成源変数ではない）データ変数のデータを相互に変換できるようになる。
【０１９３】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【０１９４】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。
【０１９５】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。
【０１９６】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【０１９７】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【０１９８】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【０１９９】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０２００】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０２０１】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2020107199.tif 000056
【図２】
2020107199.tif 000057
【図３】
2020107199.tif 000058
【図４】
2020107199.tif 000059
【図５】
2020107199.tif 000060
【図６】
2020107199.tif 000061
【図７】
2020107199.tif 000062
【図８】
2020107199.tif 000063
【図９】
2020107199.tif 000064
【図１０】
2020107199.tif 000065
【図１１】
2020107199.tif 000066
【図１２】
2020107199.tif 000067
【図１３】
2020107199.tif 000068
【図１４】
2020107199.tif 000069