以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
各実施形態の説明に先立って、この明細書における表記方法について説明する。
_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
また、ある文字xに対するx^やx~のような上付き添え字の”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、x^やx~と記載しているものである。
<技術的背景>
本発明の実施形態の原理を説明する前に、まず、問題設定と従来技術であるスペクトル正規化法について説明する。
《問題設定》
確率分布Pxに従って生成された確率変数(のデータ)xが用意されているものとする。確率変数xには、以下のようなものがある。
(1)マイクロホン/カメラで取得したメディアデータxdata~Px_data
(2)データが属するカテゴリ、分類情報を表すラベルデータxlabel~Px_label
(3)ノイズが混在した観測データxnoisy~Px_noisy
(4)クリーンな環境で収録したデータxclean~Px_clean
(5)データを生成するための生成源データxsource~Px_source
(6)人の操作/動作(例えばインデックスを操作する/手書きの文字やモーションにより操作する)によって観測されたデータxmanipulate~Px_manipulate
それぞれの確率変数に関してデータの集合(以下、データセットという)が与えられているものとする。もし、2種類の確率変数を写像である確率変数変換により変換するような場合(例えば、音声から言語への変換を考える場合)、2種類の確率変数のデータセットは、互いに関連付けられる必要がある(例えば、音声とその言語を対応付けるラベル)。この2種類以上の確率変数が関連付けられたデータセットを、ラベル付などされていない単一の確率変数のデータセットと区別するために、関連付けデータセットと呼ぶ。
確率変数xの生成過程を尤度関数P(x|θ)として表す。ここで、尤度関数P(x|θ)には確率変数変換が含まれており、確率変数変換としてDNN関数を用いる。θは、DNN関数に含まれる潜在パラメータ(例えば重み行列)である。また、潜在パラメータθの事前確率をP(θ)で表す。
このとき、事後確率最大化(Maximum a posteriori, MAP)に従った潜在パラメータの点推定は、同時確率(尤度と事前確率の積)を最大化するθを求める問題として定式化される。
また、尤度関数P(x|θ)、事前確率P(θ)が、罰則項L、正規化項Rを用いてP(x|θ)∝exp(-L(θ, x))、P(θ)∝exp(-R(θ))として与えられるとき、式(1-1)を解くことは、式(1-2)を解くことと等価になる。
さらに、J層からなるDNN関数は以下のように表現される。
ただし、{W1, …, WJ, b1, …, bJ}∈wは重み行列群(なお、ここでは、バイアス群{bj}も重み行列群の中に含むことにする)、aj(1≦j≦J)は活性化関数である。活性化関数の例として、線形関数、シグモイド、ReLU、leaky ReLU、PReLUなどがある。
罰則項Lは、DNN関数GwとDNN関数Gwの出力変数が従う確率分布を仮定し、その確率分布に基づくコスト関数Fzの合成関数として表現される。
ここで、〇は2種類の関数を合成する演算子である。式(1-4)の潜在パラメータは{w, z}∈θである。
以下、罰則項Lの設計事例を2つ説明する。
[事例1:ノイズ除去問題]
ノイズが混在した信号を入力変数とし、ノイズが除去されたクリーンな信号を推定するノイズ除去問題を考える。DNN関数の出力変数またはDNN関数の出力変数にアフィン変換を適用した変数(推定したクリーン信号)と教師信号(クリーン信号)との差は、ガウス分布に従うとする。{xnoisy, xclean}∈xを入力変数と出力変数の組(つまり、関連付けデータセット)、{Z}∈zをアフィン変換行列、{w, z}∈θを(DNNを含むすべての)潜在パラメータとすると、このノイズ除去問題の罰則項Lは以下の式で表される。
ここで、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は以下の式で表される。
式(1-6)の拘束条件は、アフィン変換後のDNN関数の出力変数は、非負であり、かつ、その和が1となるように正規化されている必要があることを示す。また、式(1-6)をみると、DNN関数の出力変数が多項分布に従うことを仮定したとき、コスト関数Fzが交差エントロピーになることを示している。
一方、式(1-2)の正規化項Rの設計事例についても、様々ある。例えば、L1正則化に基づくスパース表現、スペクトル正規化法(参考非特許文献1)による方法がある。
(参考非特許文献1: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となるように毎ステップ更新することで実装される。
式(1-7)の処理は、次式で定義される正規化項Rの実装方法の一つとして解釈できる。
ここで、δ(σ_max=1)は非負バリア関数である。
上記のように重み行列のスペクトルノルムを制限することにより、DNN関数の性質を制限できることがわかっている。
ここで、DNN関数のリプシッツ(Lipschitz)平滑性を表すため、新しい記法を導入する。以下でいうリプシッツ平滑性の上界係数は、通常、単にリプシッツ係数と呼ばれるものであるが、本発明の実施形態の原理では、リプシッツ平滑性の下界についても言及するので、リプシッツ平滑性の上界係数という用語を用いることにした。
関数gjのリプシッツ平滑性の上界係数||gj||UBは、任意の入力変数ペア{x, x’ }に対して以下の不等式を満たすβUBの最小値である。
また、リプシッツ平滑性の上界係数は、関数の合成に対して、以下の不等式を満たす。
DNN関数に含まれるアフィン写像hin→houtのリプシッツ平滑性の上界係数||hj-1→Wjhj-1+bj||UBは、次式のようにアフィン写像で用いる重み行列Wjの最大特異値で与えられる。
また、DNN関数に含まれる活性化関数ajに関しても、リプシッツ平滑性の上界係数||aj||UBを定義することは可能である。ここでは、よく使われる非線形性の活性化関数ReLU、leaky ReLU、PReLUを例としてリプシッツ平滑性の上界係数||aj||UBを説明する(参考非特許文献2)。
(参考非特許文献2: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は以下で表される。
ReLUについては以下の係数が設定される。
また、leaky ReLUについては以下の係数が設定される。
PReLUについては以下の係数が設定される。
式(1-12)で表される活性化関数を用いている場合、リプシッツ平滑性の上界係数||aj||UBは以下で与えられる。
ここで、DNN関数Gwのリプシッツ平滑性の上界係数||Gw||UBは以下で与えられる。
つまり、重み行列のスペクトルノルム(最大特異値)と活性化関数のリプシッツ平滑性の上界係数の積によって、DNN関数Gwのリプシッツ平滑上界係数||Gw||UBが決まる。
式(1-17)は、DNN関数Gwがリプシッツ関数(リプシッツ平滑性の上界が制限されたリプシッツ関数)であることを保証する。これは入力変数の変化に対してある程度緩やかに変化することを数理的に表現している。つまり、柔軟過ぎるDNN関数の性質に対して緩やかに変化するための制約を加えている。(上界が制限された)リプシッツ関数になるDNN関数Gwを用いると、例えば、学習用のデータセットへの過適合(overfitting)を抑制する効果が期待できる。
以上の説明からわかるように、スペクトル正規化法はDNN関数のブラックボックス性を解放する一つの方法と言える。以下では、この考え方をさらに進めることを考える。リプシッツ平滑性の上界だけではなく下界も存在する関数としては、バイ・リプシッツ(bi-Lipschitz)関数と呼ばれるものがあり、バイ・リプシッツ関数は単射な関数である(参考非特許文献3)。そこで、DNN関数Gwに対して、リプシッツ平滑性の上界だけでなく、下界も制御してバイ・リプシッツ関数にすることができれば、DNN関数Gwが単射であることを保証できるとの着想に至った。
(参考非特許文献3: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}を事前に与えることを考える。次式のように双方とも正であることを仮定する。
また、重み行列WjはKj×Kj-1(Kj(1≦j≦J)はj層目の変数次元)の実数行列であるものとする。なお、j=1のとき、Kj-1=K0となるが、K0はDNN関数の入力変数の次元を表すものとする。
重み行列Wjの最小特異値をσmin(Wj)と表すことにする。重み行列Wjの最小特異値σmin(Wj)が正であるためには、重み行列Wjは正方行列(Kj = Kj-1)であるか、拡大行列(Kj > Kj-1)である必要がある。
式(2-1)を満たすように重み行列の特異値を制御するための正規化項Rは以下で与えられる。
以下、重み行列の最大特異値(スペクトルノルム)だけでなく、最小特異値も制御することの効果を示す。そのため、DNN関数のリプシッツ平滑性の下界を表すための新しい記法を導入する。
関数gjのリプシッツ平滑性の下界係数||gj||LBは、任意の入力変数ペア{x, x’ }に対して以下の不等式を満たすβLBの最大値である。
また、リプシッツ平滑性の下界係数は、関数の合成に対して、以下の不等式を満たす。
DNN関数に含まれるアフィン写像hin→houtのリプシッツ平滑性の下界係数||hj-1→Wjhj-1+bj||LBは、次式のようにアフィン写像で用いる重み行列Wjの最小特異値で与えられる。
また、DNN関数に含まれる活性化関数ajに関しても、リプシッツ平滑性の下界係数||aj||LBを定義することは可能であり、式(1-12)に従う非線形性の活性化関数を用いるとき、リプシッツ平滑性の下界係数||aj||LBは以下で与えられる。
ここで、DNN関数Gwのリプシッツ平滑性の下界係数||Gw||LBは以下で与えられる。
式(2-8)より、(1)正規化項Rを式(2-3)で定義し、重み行列の最小特異値が正となるように制御すること及び(2)リプシッツ平滑性の下界係数が正である活性化関数を選択することにより、DNN関数のリプシッツ平滑性の下界係数||Gw||LBもまた正となることを保証できる。このとき、以下を満たす正の係数γが存在する。
すなわち、任意の入力変数ペア{x, x’ }に対して以下の不等式が成り立つので、DNN関数Gwがバイ・リプシッツ性を有することを保証できる。
前述の通り、式(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)である(参考非特許文献4)。
(参考非特許文献4: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を得られたものとする。
このとき、逆関数Gw
-1は以下で与えられる。
ここで、{rp,j, rn,j}がともに0よりも大きいとき、活性化関数ajの逆関数aj
-1は次式により与えられる。
なお、式(1-3)’とその逆関数である式(2-11)が互いに均衡で安定であるためには、活性化関数ajの係数rp,jとrn,jは下記の(1)から(3)の少なくとも何れかとなるようにするとよい。
(1)活性化関数の係数rp,jとrn,jが逆数になるようにする。すなわち、rp,j=1/rn,jとする。
(2)活性化関数の係数を層ごとに逆数になるようにする。すなわち、κ>0としたとき、活性化関数の係数が下記の条件を満たすようにする。
{rp,j, rn,j}={κ, 1/κ} (jが偶数のとき)
{rp,j, rn,j}={1/κ, κ} (jが奇数のとき)
(3)最終層(J層目)の活性化関数を線形関数とする。
また、重み行列Wjの逆行列/擬似逆行列Wj
+は次式により与えられる。
この性質を用いると、以下のように確率的データ生成モデルを構築することが可能になる。
ステップ1:一般化スペクトル正規化法を用いて、データ変数から生成源変数を推定する逆問題を解くDNN関数Gwを学習する最適化フェーズ
まず、||aj||UB>0及び||aj||LB>0を満たす活性化関数ajを選択する。活性化関数ajとしては、係数rp,jとrn,jが上述した(1)から(3)の少なくとも何れかを満たすものを選択するのがよいが、式(1-12)で表されるleaky ReLU、PReLUのいずれかの活性化関数を選択してもよいし、これらに限定する必要はない。
次に最適化に用いる罰則項Lと正則化項Rを設計する。生成源変数が例えば多次元ガウス分布に従うことを仮定すると、事後確率最大化(MAP)に基づくコスト関数最適化は次式により与えられる。
なお、正規化項Rには式(2-3)で定義される式を用いる。
式(2-14)はDNN関数の出力変数のエネルギー期待値を最小化する式に対応するので、分散が小さい多次元ガウス分布に従う生成源変数が出力されることが期待される。
一方、生成源変数が大きな分散ρ2をもつ多次元ガウス分布N(0, ρ2)に従うようにしたい場合には、一例として、次式の敵対的学習に基づくコスト関数最適化を用いて実現する。
ここで、関数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)論(参考非特許文献5)と照らし合わせると、確率的生成モデルにおけるDNN関数の出力変数(生成源変数)のエントロピーが大きいほど、入出力変数間の相互情報量が大きくなる。すなわち、出力変数に入力変数(データ変数)の情報がより多く含まれていることを意味する。式(2-14)のように出力変数が分散の小さい多次元ガウス分布に従うことと、式(2-15)のように出力変数が分散の大きな多次元ガウス分布に従うことでは、後者のほうが出力変数のエントロピーが大きい。それは出力変数yが多次元ガウス分布(相互相関が0)に従うとき、そのエントロピーが次式で表せるからである。
つまり、分散ρ2が大きいほど、出力変数の次元Kjが大きいほど、出力変数のエントロピーが大きくなり、相互情報量も大きくなる。すなわち、高精度なデータ変数を生成したいのであれば、式(2-14)よりも式(2-15)を用いて潜在パラメータを学習したほうがよいと言える。
(参考非特許文献5: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.)
ステップ2: DNN関数Gwの逆関数Gw
-1を生成するフェーズ
ステップ1で学習した重み行列Wjに対して、式(2-13)によりその逆行列/擬似逆行列Wj
+を計算する。また、活性化関数ajに対して逆関数aj
-1を式(2-12)により計算する。これらの逆行列/擬似逆行列Wj
+と逆関数aj
-1を用いて、逆関数Gw
-1を計算する深層ニューラルネットワークを構成する。この深層ニューラルネットワークは式(2-11)を計算するものであり、例えばガウス乱数でモデル化された生成源変数のデータから(例えば画像のような)データ変数のデータを生成することができる。
ここまで、確率的データ生成モデルの設計方法について述べてきた。ここから、確率的データ生成モデルの更なる拡張として、相互確率的データ変換モデルについて説明する。
《相互確率的データ変換モデル》
確率的データ生成モデルでは、例えばガウス分布や一様分布等の少ないパラメータを用いて表現できる確率分布に従う生成源変数と、複雑で未知の確率分布に従うデータ変数を相互に変換できる問題について扱ってきた。相互確率的データ変換モデルでは、例えば図1に示すように、2種類のデータ変数(例えば、画像(音声)と分類ラベル(人間のインデックス操作信号))を相互に変換する問題を扱う。相互確率的データ変換モデルが従来の確率変数変換問題(例えば音声から言語ラベルへの変換)と異なるのは、(1)逆関数を持つので、相互に変換可能であるという点と、(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に変換する関数(例えば、画像から分類ラベルを推定、つまり画像認識)は、次式で与えられる。
また、その逆関数、つまり、x2からx1に変換する関数(例えば、人が低次元インデックスを操作し、その操作意図に応じた画像が生成されるアプリケーション)は、次式で与えられる。
確率的データ生成モデルでは、ガウス乱数を入力として画像を生成していたが、意図した画像が出力されていなかった。ここでは、2種類の変数空間を関連付けることで、例えば、人の低次元インデックス操作意図に応じて、画像が作れるという利点を示した。
もう一つの利点として、関連付けデータセットの規模が大きくなかったとしても、2種類の変数を高精度に変換する関数C1,2を設計できる可能性がある。つまり、2種類以上のデータ変数を相互に関連付ける作業(例えば、人手によるラべリング)にかかる費用コスト/時間を大幅に削減できるメリットがある。
2種類の高次元特徴量を関連付ける可逆関数C1,2を設計するために、{x1, x2}に関する関連付けデータセットは必ず必要である。C1,2はこれまでと同様に逆関数を持つDNN関数として設計することもできる。また、C1,2は、可逆な線形変換関数を用いて実装することもできる。所定の条件を満たす場合には後者のほうが有用であると考えられる。具体的には、(1)特徴量次元が十分に高く、(2)2種類の異なるデータ変数の特徴量{y1, y2}の次元が同じで、(3){y1, y2}が同じ形状の分布に従うように学習されている場合(例えば多次元ガウス分布)である。それは、この場合には、確率密度関数の変換式より、C1,2に線形変換を用いたとしても、相互に変換することは無理のない問題設定であるからである。C1,2が線形変換で実装されているのであれば、その潜在パラメータの自由度は極めて小さい。つまり、大量の関連付けデータセットが用意できなくても、{y1, y2}を関連付ける可逆関数C1,2を設計/最適化できるはずである。
最後に、潜在パラメータ最適化において、効率的に重み行列の最大特異値/最小特異値を計算するためのアルゴリズムについて説明する。
《行列特異値計算アルゴリズム》
式(2-3)の正規化項Rを含む目的関数を用いて重み行列群wを最適化する場合、重み行列Wjの特異値の最大値だけではなく、最小値も制御する必要がある。しかし、行列サイズ(Kj×Kj-1)が大きい場合には、計算時間もかかるし、膨大なメモリ量も必要になる。
そこで、Wjを区分巡回行列とすることで、特異値計算のための計算量軽量化/メモリ縮小化を実現できることを説明する。なお、参考非特許文献6で指摘されているように、Wjを区分巡回行列とすることで、DNNの順伝播/逆伝搬の計算の軽量化/低メモリ化にも役に立つ(学習済み潜在パラメータを用いた順伝播の変数変換するフェーズにおけるリアルタイム性が高くなる)。
(参考非特許文献6: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)は、次式により表される。
ここで、行列Wj,k,m(1≦k≦βj, 1≦m≦βj-1)は巡回行列である。つまり、式(2-19)は区分巡回行列Wjがβj×βj-1個の巡回行列Wj,k,mで構成されていることを意味する。
巡回行列Wj,k,mは、離散フーリエ分解(DFT)行列を用いると、以下のように分解できる。
つまり、ブロック対角化行列Djはβj個のNj点DFT行列ΩNjを含む。なお、ΩNjは、次式により表される。
上記区分対角行列Φjは次式により表される。
ここで、Φj,k,m(1≦k≦βj, 1≦m≦βj-1)は対角DFTスペクトル行列であり、次式により表される。
このとき、DFT行列は直交行列であるので、区分巡回行列Wjの特異値列と区分対角行列Φjの特異値列は一致する。区分対角行列Φjは、非ゼロの要素が(βj×βj-1×Nj)個であり、非常にスパースであるので、区分巡回行列Wjの特異値の代わりに区分対角行列Φjの特異値を推定する問題を解いた方が簡単になる。それは行と列の順序入れ替えすることにより、ブロック対角行列になるためである。
この考え方を基に構築した行列特異値計算アルゴリズムの実装例を図2に示す。図2のアルゴリズムは、確率的勾配法(Stochastic Gradient Descent, SGD)に基づくものである。ステップ2におけるNiterationは更新回数を表す。ステップ4では、SGDに基づいて{W1, …, WJ, b1, …, bJ}を更新する。具体的には、ミニバッチxMB、学習率αを用いて更新する。ステップ5では、固有値Λjと固有ベクトルVj(1≦j≦J)とを用いて特異値を計算する。ステップ6では、{ηmin, ηmax}の範囲に入るように特異値Σ~j=diag([σj,1, …, σj,K_j-1]) (1≦j≦J)を修正した後、Wj(1≦j≦J)を更新する。
あるいは、順序入れ替えすることにより得られたブロック対角行列に対して、ブロック小行列ごとに特異値分解することで、軽い計算量で特異値列を得られる。FFTを使って区分対角行列Φjを計算することで、計算時間の短縮に役立つ。また、特異値分解の結果を使うことで、逆関数Gw
-1を含まれる式(2-13)の逆行列Wj
+もまた効率的に計算可能である。
《効果》
重み行列の特異値がすべて正になることと、リプシッツ平滑性の上界係数と下界係数が正になる活性化関数を選択することにより、(1)入力変数xが従う確率分布の性質が予測可能であり、(2)逆関数を持つDNN関数を構成することができる。特に、(2)の効果は、順問題の逆、つまり、逆問題を解いても問題が解決されることを示唆しており、例えば、ガウス乱数等の生成源変数からデータ変数を推定する順問題ではなく、比較的容易なその逆問題を解いても、順問題を解く確率的データ生成モデルが得ることができる。
<第1実施形態>
ここでは、学習用データセットを用いて潜在パラメータを学習する潜在パラメータ学習装置100について説明する。学習用データセットは、学習のために事前に準備した確率変数データセット(学習用データセット)xである。また、潜在パラメータは、後述する重み行列群{W1, …, WJ, b1, …, bJ}∈wである。
以下、図3~図4を参照して潜在パラメータ学習装置100を説明する。図3は、潜在パラメータ学習装置100の構成を示すブロック図である。図4は、潜在パラメータ学習装置100の動作を示すフローチャートである。図3に示すように潜在パラメータ学習装置100は、学習部110と、記録部190を含む。記録部190は、潜在パラメータ学習装置100の処理に必要な情報を適宜記録する構成部である。記録部190は、例えば、学習対象となる潜在パラメータを記録する。なお、潜在パラメータは、学習開始に先立って、例えば乱数を用いて初期化されるものとする。
潜在パラメータ学習装置100は、学習用データセット記録部910に接続している。学習用データセット記録部910は、例えば、事前に収集した、入力データ(入力変数)と当該入力データを変数変換した結果である出力データ(出力変数)を、学習用入力データと学習用出力データの組(学習用データセット)として記録している。なお、学習の際には入力データと出力データのいずれか一方を所定の確率分布に従う変数として扱ってもよく、その場合には学習用データセット記録部910には、学習用入力データのデータセットと学習用出力データデータのデータセットとのいずれか一方を記録しておけばよい。
図4に従い潜在パラメータ学習装置100の動作について説明する。学習部110は、学習用データセットを用いて潜在パラメータを学習する(S110)。以下、図5~図6を参照して学習部110の一例について説明する。図5は、学習部110の構成例を示すブロック図である。図6は、学習部110の動作例を示すフローチャートである。図5に示すように学習部110は、変数変換部111と、目的関数計算部113と、潜在パラメータ更新部115と、収束条件判定部117を含む。
図6に従い学習部110の動作例について説明する。変数変換部111は、学習用データセットに含まれる学習用入力データから、推定出力データを生成する(S111)。変数変換部111は、ニューラルネットワークとして構成される構成部(つまり、ニューラルネットワークにおける入出力データ間の関係を記述する関数(以下、NN関数という)を計算する構成部)である。
以下、図7~図8を参照して変数変換部111について説明する。図7は、変数変換部111の構成を示すブロック図である。図8は、変数変換部111の動作を示すフローチャートである。図7に示すように変数変換部111は、第1アフィン変換部111-a1と、第1活性化関数計算部111-b1と、…、第Jアフィン変換部111-aJと、第J活性化関数計算部111-bJを含む(ただし、Jは1以上の整数である)。なお、アフィン変換部と活性化関数計算部の組を層といい、第jアフィン変換部111-ajと第j活性化関数計算部111-bjの組を第j層という。したがって、Jは変数変換部111に含まれる層の数を表す。第jアフィン変換部111-aj(1≦j≦J)は、重み行列Wjとバイアスbjを用いて表現されるアフィン変換(第jアフィン変換)を実行する構成部である。また、第j活性化関数計算部111-bjは、活性化関数aj(1≦j≦J)の値を計算する構成部である。活性化関数aj(1≦j≦J)は、そのリプシッツ平滑性の上界係数と下界係数のいずれもが正であるものであれば、任意の活性化関数を用いてよい(つまり、そのような活性化関数ajを選択すればよい)。例えば、活性化関数ajは、<技術的背景>で説明したleaky ReLU、PReLUのいずれかとすればよい。
以上より、変数変換部111は、1個のアフィン変換部と1個の活性化関数計算部とを含む層がJ個あり、J個のアフィン変換とJ個の活性化関数の計算を行うニューラルネットワークであると言える。なお、J>1の場合、変数変換部111は、深層ニューラルネットワークとなる。
図8に従い変数変換部111の動作について説明する。第jアフィン変換部111-aj(1≦j≦J)は、第(j-1)活性化関数計算部111-b(j-1)からの出力を入力とし、当該第(j-1)活性化関数計算部111-b(j-1)からの出力に対して重み行列Wjとバイアスbjを用いて表現されるアフィン変換(第jアフィン変換)を実行する(S111-aj)。ただし、j=1のとき、第1アフィン変換部111-a1に学習用入力データを入力する。
第j活性化関数計算部111-bj(1≦j≦J)は、第jアフィン変換部111-ajからの出力を入力とし、当該第jアフィン変換部111-ajからの出力に対する活性化関数ajの値を計算する(S111-bj)。なお、j=Jのとき、第J活性化関数計算部111-bJは、推定出力データを出力する。
目的関数計算部113は、S111で生成した推定出力データと学習用データセットに含まれる学習用出力データから、目的関数の値を計算する(S113)。目的関数は、罰則項Lと正規化項Rの和として定義される。罰則項Lは、変数変換部111の出力である推定出力変数が従う確率過程に基づくコスト関数であり、推定出力変数と学習用出力変数の誤差を測定する関数である。また、正規化項Rは、所定の実数ηmin, ηmax(ただし、0<ηmin≦ηmax<+∞を満たす)を用いて定義される式
で与えられる。
正規化項Rの値を計算するためには、重み行列Wjの特異値を計算する必要がある。重み行列Wj(1≦j≦J)が、βj×βj-1個の巡回行列Wj,k,m(1≦k≦βj, 1≦m≦βj-1)を用いて式
で与えられる区分巡回行列である場合は、目的関数計算部113は、重み行列Wjの特異値を求める代わりに次式で与えられる区分対角行列Φjの特異値を計算するようにしてもよい。
(ただし、Φj,k,m(1≦k≦βj, 1≦m≦βj-1)は式
で与えられる対角DFTスペクトル行列)
潜在パラメータ更新部115は、S113で計算した目的関数の値を最適化するように、潜在パラメータである重み行列群{W1, …, WJ、b1, …, bJ}∈wを更新する(S115)。潜在パラメータの更新には、例えば、確率的勾配法を用いるとよい。
収束条件判定部117は、潜在パラメータ更新の終了条件として事前に設定された収束条件を判定し、収束条件が満たされた場合はS115で生成した潜在パラメータを出力し、収束条件が満たされない場合はS111~S115の処理を繰り返す(S117)。収束条件として、例えばS111~S115の処理の実行回数が所定の回数(例えば、10万回程度)に達したかという条件を採用することができる。
このようにして得られる重み行列群wの重み行列Wj(1≦j≦J)、つまり、第jアフィン変換部が行うアフィン変換で用いる重み行列Wjは、その特異値がすべて正となる。
変数変換部111に上記学習した重み行列群wを適用した、単独のニューラルネットワーク111(以下、変数変換装置111ともいう)を構成することもできる。つまり、変数変換装置111は、第1アフィン変換部111-a1と、第1活性化関数計算部111-b1と、…、第Jアフィン変換部111-aJと、第J活性化関数計算部111-bJと、(図示しない)記録部を含むものである(図6、図7参照)。この変数変換装置111は、特異値がすべて正である重み行列を含む重み行列群w(例えば潜在パラメータ学習装置100が学習した潜在パラメータである重み行列群w)とリプシッツ平滑性の上界係数と下界係数のいずれもが正である活性化関数を用いて、変数変換部111と同一の処理を実行し、入力データから推定出力データを生成する。つまり、変数変換装置111は入力データを推定出力データに変換する。
<技術的背景>で説明したように、変数変換装置111が実行する変数変換の逆変換を実行するニューラルネットワークを構成することができる。この逆変換を実行するニューラルネットワークが逆変数変換装置300である。また、逆変数変換装置300で用いる重み行列を生成するのが潜在パラメータ生成装置200である。
以下、潜在パラメータ生成装置200、逆変数変換装置300について説明する。まず、図9~図10を参照して潜在パラメータ生成装置200を説明する。図9は、潜在パラメータ生成装置200の構成を示すブロック図である。図10は、潜在パラメータ生成装置200の動作を示すフローチャートである。図9に示すように潜在パラメータ生成装置200は、潜在パラメータ生成部210と、記録部290を含む。記録部290は、潜在パラメータ生成装置200の処理に必要な情報を適宜記録する構成部である。
潜在パラメータ生成装置200には、特異値がすべて正である重み行列を含む重み行列群{W1, …, WJ、b1, …, bJ}∈w、例えば、潜在パラメータ学習装置100が学習した潜在パラメータである重み行列群{W1, …, WJ,b1, …, bJ}∈wが入力される。
図10に従い潜在パラメータ生成装置200の動作について説明する。潜在パラメータ生成部210は、潜在パラメータ生成装置200の入力である重み行列群{W1, …, WJ, b1, …, bJ}∈wから、潜在パラメータである重み行列群{W1
+, …, WJ
+, b1, …, bJ}∈w+を生成する(S210)。重み行列Wj
+は、変数変換装置100に含まれる第jアフィン変換部111-ajが計算するアフィン変換の逆変換である逆アフィン変換(逆第jアフィン変換)で用いるものである。具体的には、潜在パラメータ生成部210は、重み行列Wj
+を式
(ただし、K
j,K
j-1は重み行列W
jの行の数、列の数である)により生成する。
なお、潜在パラメータ生成装置200には、重み行列{W1, …, WJ}のみを入力するようにしてもよい。
続いて、図11~図12を参照して逆変数変換装置300について説明する。この逆変数変換装置300は入力データを推定出力データに変換する。なお、逆変数変換装置300のことをニューラルネットワーク300ともいう。図11は、逆変数変換装置300の構成を示すブロック図である。図12は、逆変数変換装置300の動作を示すフローチャートである。図11に示すように逆変数変換装置300は、逆第J活性化関数計算部310-bJと、逆第Jアフィン変換部310-aJと、…、逆第1活性化関数計算部310-b1と、逆第1アフィン変換部310-a1と、記録部390(逆変数変換装置300の処理に必要な情報を適宜記録する構成部)を含む。なお、Jは変数変換装置111に含まれる層の数である。逆第j活性化関数計算部310-bjは、活性化関数ajの逆関数である活性化関数aj
-1(以下、逆活性化関数という)の値を計算する構成部である。活性化関数ajがleaky ReLU、PReLUのいずれかである場合、逆活性化関数aj
-1は、<技術的背景>で説明したように式(2-12)で与えられる。なお、活性化関数aj(1≦j≦J)のリプシッツ平滑性の上界係数と下界係数のいずれもが正である場合、逆活性化関数aj
-1のリプシッツ平滑性の上界係数と下界係数のいずれも正となる。また、逆第jアフィン変換部111-aj(1≦j≦J)は、重み行列Wj
+とバイアスbjを用いて表現されるアフィン変換(逆第jアフィン変換)を実行する構成部である。
以上より、逆変数変換装置300は、1個のアフィン変換部と1個の活性化関数計算部とを含む層がJ個あり、J個の逆アフィン変換とJ個の逆活性化関数の計算を行うニューラルネットワークであると言える。
図12に従い逆変数変換装置300の動作について説明する。逆第j活性化関数計算部310-bj(1≦j≦J)は、逆第(j+1)アフィン変換部310-a(j+1)からの出力を入力とし、当該逆第(j+1)アフィン変換部310-a(j+1)からの出力に対する逆活性化関数a(j+1)
-1の値を計算する(S310-bj)。ただし、j=Jのとき、逆第J活性化関数計算部310-bJに変数変換したいデータ(変数)を入力データとして入力する。
逆第jアフィン変換部310-aj(1≦j≦J)は、逆第j活性化関数計算部310-bjからの出力を入力とし、当該逆第j活性化関数計算部310-bjからの出力に対して重み行列Wj
+とバイアスbjを用いて表現されるアフィン変換(逆第jアフィン変換)を実行する(S310-aj)。なお、j=1のとき、逆第1活性化関数計算部310-a1は、推定出力データを出力する。
本実施形態の発明によれば、NN関数の構成に用いる重み行列や活性化関数の数理的性質に対して制限を課すことにより、当該関数が単射であることを保証できる変数変換を構成することができる。具体的には、重み行列の特異値がすべて正になることと、リプシッツ平滑性の上界係数/下界係数が正になる活性化関数を選択する 。これにより、(1)入力変数xが従う確率分布の性質が予測可能であり、(2)逆関数を持つNN関数を構成することができる。
<第2実施形態>
ここでは、<技術的背景>で説明した相互確率的データ変換モデルを用いた変数変換装置について説明する。以下、図13~図14を参照して変数変換装置400について説明する。この変数変換装置400は入力データを推定出力データに変換する。図13は、変数変換装置400の構成を示すブロック図である。図14は、変数変換装置400の動作を示すフローチャートである。図13に示すように変数変換装置400は、変数変換部410と、接続変数変換部420と、逆変数変換部430と、記録部490を含む。記録部490は、変数変換装置400の処理に必要な情報を適宜記録する構成部である。変数変換装置400は、2種類のデータを相互に変換する相互確率的データ変換モデルにおける変換に対応するものであり、2種類のデータのうちの一方のデータを入力データとして、2種類のデータのうちの他方のデータである推定出力データに変換するものである。
変数変換部410は、2種類のデータのうちの一方のデータ(以下、1種類目のデータという)を入力データとして、その1種類目のデータの次元以上の次元の特徴量である第1高次元特徴量を得るものであり、第1実施形態の変数変換部111と同様のものである。変数変換部410は、第1実施形態の変数変換部111と同じ構成であり、1個のアフィン変換部と1個の活性化関数計算部とを含む層がJ個あり、J個のアフィン変換とJ個の活性化関数の計算を行うニューラルネットワークである。変数変換部410の各アフィン変換部が行うアフィン変換の重み行列は、その特異値がすべて正である。変数変換部410の各活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数と下界係数のいずれもが正である。なお、変数変換部410のことを第1ニューラルネットワーク410ともいう。
逆変数変換部430は、2種類のデータのうちの他方のデータ(以下、2種類目のデータという)の次元以上の次元の特徴量である第2高次元特徴量から、2種類目のデータの推定出力データを得るものであり、2種類目のデータを入力データとして、2種類目のデータの次元以上の次元の特徴量である第2高次元特徴量を得る第1実施形態の変数変換部111に対応する第1実施形態の逆変数変換装置300と同様のものである。逆変数変換部430は、第1実施形態の逆変数変換装置300と同じ構成であり、1個のアフィン変換部と1個の活性化関数計算部とを含む層がJ個あり、J個の逆アフィン変換とJ個の逆活性化関数の計算を行うニューラルネットワークである。逆変数変換部430の各逆アフィン変換部が行うアフィン変換で用いる重み行列は、2種類目のデータを入力データとして、2種類目のデータの次元以上の次元の特徴量である第2高次元特徴量を得る第1実施形態の変数変換部111の対応するアフィン変換部で用いる重み行列の逆行列/擬似逆行列である。逆変数変換部430の各逆活性化関数計算部で用いる活性化関数は、2種類目のデータを入力データとして、2種類目のデータの次元以上の次元の特徴量である第2高次元特徴量を得る第1実施形態の変数変換部111の対応する活性化関数計算部で用いる活性化関数の逆関数である。なお、逆変数変換部430のことを第2ニューラルネットワーク430ともいう。
接続変数変換部420は、第1高次元特徴量と第2高次特徴量とを関連付ける可逆関数を用いて、第1高次元特徴量から第2高次元特徴量を得るものである。
まず、2種類のデータ{x1, x2}のうちのx1を入力データとして、x2の推定出力データであるx^2を得る場合の変数変換装置400の動作例について図14に従って説明する。変数変換部410は、入力データx1から、NN関数y1=G1,w1(x1)により、入力データx1の次元以上の次元の特徴量である第1高次元特徴量y1を生成する(S410)。接続変数変換部420は、S410で生成した第1高次元特徴量y1から、可逆関数C1,2を用いてy2=C1,2(y1)により、第2高次元特徴量y2を生成する(S420)。逆変数変換部430は、推定出力データx^2の次元以上の次元の特徴量である、S420で生成した第2高次元特徴量y2から、NN関数x^2=G-1
2,w2(y2)により、推定出力データx^2を生成する(S430)。
次に、2種類のデータ{x1, x2}のうちのx2を入力データとして、x1の推定出力データであるx^1を得る場合の変数変換装置400の動作例について図14に従って説明する。変数変換部410は、入力データx2から、NN関数y2=G2,w2(x2)により、入力データx2の次元以上の次元の特徴量である第1高次元特徴量y2を生成する(S410)。接続変数変換部420は、S410で生成した第1高次元特徴量y2から、可逆関数C1,2の逆関数である可逆関数C-1
1,2を用いてy1=C-1
1,2(y2)により、第2高次元特徴量y1を生成する(S420)。逆変数変換部430は、推定出力データx^1の次元以上の次元の特徴量である、S420で生成した第2高次元特徴量y1から、NN関数x^1=G-1
1,w1(y1)により、推定出力データx^1を生成する(S430)。
なお、<技術的背景>で説明した相互確率的データ変換モデルには対応しないが、逆関数を持たないNN関数で変数変換装置400を構成してもよい。この場合は、変数変換部410の各アフィン変換部が行うアフィン変換で用いる重み行列は、その特異値がすべて正でなくてもよく、変数変換部410の各活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数やリプシッツ平滑性の下界係数が正でなくてもよい。また、逆変数変換部430は、2種類目のデータを入力データとして第2高次元特徴量を得る第1実施形態の変数変換部111に対応する第1実施形態の逆変数変換装置300と同様のものでなくてもよく、例えば、2種類目のデータを入力データとして第2高次元特徴量を得る第1実施形態の変数変換部111と同様のものであってもよいし、その変数変換部111と同様の構成に含まれる各アフィン変換部が行うアフィン変換の重み行列は、その特異値がすべて正でなくてもよく、各活性化関数計算部で用いる活性化関数は、そのリプシッツ平滑性の上界係数やリプシッツ平滑性の下界係数が正でなくてもよい。
すなわち、第2実施形態の変数変換装置400は、第1ニューラルネットワーク410が、入力データから、入力データの次元以上の次元の特徴量である第1高次元特徴量を生成し(S410)、接続変数変換部420が、可逆関数を用いて、S410で生成した第1高次元特徴量から、第2高次元特徴量を生成し(S420)、第2ニューラルネットワーク430が、S420で生成した第2高次元特徴量から、第2高次元特徴量の次元以下の次元のデータである推定出力データを生成する(S430)、という動作をするものである。
本実施形態の発明によれば、(生成源変数ではない)データ変数のデータを相互に変換できるようになる。
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。