【解決手段】符号化部は、複素数の観測データを、勾配法を利用した学習により求められた複素数のパラメータが設定されたニューラルネットワークである複素ニューラルネットワークを用いて複素数のまま符号化し、複素数の潜在変数の分布を符号化データとして出力する。復号部は、複素数の観測データが符号化された符号化データを、勾配法を利用した学習により求められた複素数のパラメータが設定されたニューラルネットワークである複素ニューラルネットワークを用いて複素数のまま復号して得られる復号データとして、再構築された前記複素数の観測データを出力する。本技術は、例えば、音声データや画像データなどの複素数データの符号化および復号に適用できる。
複素数の観測データを、勾配法を利用した学習により求められた複素数のパラメータが設定されたニューラルネットワークである複素ニューラルネットワークを用いて複素数のまま符号化し、複素数の潜在変数の分布を符号化データとして出力する符号化部
を備える符号化装置。
前記複素ニューラルネットワークは、確率分布を使って潜在変数を求める生成モデルであるVAE(variational autoencoder)に基づいて、複素数データをそのまま扱えるように表現された複素VAEである
請求項1に記載の符号化装置。
前記複素ニューラルネットワークの出力層となるノードが、前記複素数の潜在変数の分布の平均を出力する平均出力部、前記複素数の潜在変数の分布の分散を出力する分散出力部、および、前記複素数の潜在変数の分布の擬似分散を出力する擬似分散出力部により構成される
請求項2に記載の符号化装置。
複素数の観測データが符号化された符号化データである複素数の潜在変数を、勾配法を利用した学習により求められた複素数のパラメータが設定されたニューラルネットワークである複素ニューラルネットワークを用いて複素数のまま復号して得られる復号データとして、再構築された前記複素数の観測データを出力する復号部
を備える復号装置。
前記複素ニューラルネットワークは、確率分布を使って潜在変数を求める生成モデルであるVAE(variational autoencoder)に基づいて、複素数データをそのまま扱えるように表現された複素VAEである
請求項7に記載の復号装置。
前記複素ニューラルネットワークの出力層となるノードが、複素平均を出力する複素平均出力部、分散行列を出力する分散行列出力部、および、擬似分散行列を出力する擬似分散行列出力部により構成される
請求項8に記載の復号装置。
複素数の観測データを、第1の複素数のパラメータが設定されたニューラルネットワークである第1の複素ニューラルネットワークを用いて複素数のまま符号化し、複素数の潜在変数の分布を符号化データとして出力する符号化部と、
前記符号化データを、第2の複素数のパラメータが設定されたニューラルネットワークである第2の複素ニューラルネットワークを用いて複素数のまま復号して得られる復号データとして、再構築された前記複素数の観測データを出力する復号部と
を備え、
前記第1の複素数のパラメータおよび前記第2の複素数のパラメータを、勾配法を利用した学習により求める
パラメータ学習装置。
【発明を実施するための形態】
【0021】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0022】
<従来のモデルであるVAE>
まず、本明細書において提案される新たなモデルである複素VAE(variational autoencoder)について説明する前に、従来のモデルであるVAEについて説明する。
【0023】
VAEは、D次元の観測データx∈R
DからH次元の潜在変数h∈R
Hの分布を表す確率的なエンコーダq
φ(h|x)と、逆に潜在変数から観測データの分布を表す確率的なデコーダp
θ(x|h)とを、それぞれ異なるニューラルネットワークで表現した生成モデルである。また、エンコーダq
φ(h|x)のモデルパラメータφ、および、デコーダp
θ(x|h)のモデルパラメータθ(正確には、θはモデル全体のパラメータ)は、AEVB(auto-encoding variational bayes)アルゴリズムによって推定される。
【0024】
図1には、VAEの構造が示されている。例えば、エンコーダ11は、観測データxを入力し、潜在変数hの確率分布を出力する。一方、デコーダ12は、潜在変数hを入力し、観測データx’を再構築する。
【0025】
ここで、観測データxの対数尤度は、次の式(1)に示すイェンセンの不等式より、下限L(θ,φ;x)を求めることができる。ただし、式(1)において、D
KL(q||p)は、分布qおよび分布pどうしの間のKLダイバージェンスを表す。
【0027】
さらに、この下限L(θ, φ; x)は、次の式(2)に示すように変形することができる。
【0029】
この式(2)の右辺第一項は、観測データxから得られる潜在変数hから生成されるデータの対数尤度の期待値を表している。また、この式(2)の右辺第二項は、観測データxから得られる潜在変数hの分布q
φ(h|x)を、潜在変数hの単純な事前分布p
θ(h)に近付ける制約項を表している。
【0030】
そして、補助関数法の考え方から、下限L(θ,φ;x)を最大化するエンコーダ11のモデルパラメータφおよびデコーダ12のモデルパラメータθは、対数尤度log p
θ(x)についても最適化する。したがって、VAEでは、下限L(θ,φ;x)を最大化するように勾配法を用いて、エンコーダ11のモデルパラメータφおよびデコーダ12のモデルパラメータθを最適化する。
【0031】
しかしながら、上述した式(2)の右辺第一項について、エンコーダ11のモデルパラメータφに関する勾配を求めることは困難である。そこで、以下で説明するReparameterization Trickが用いられる。
【0032】
例えば、VAEを用いた多くの研究は、潜在変数hの確率分布としてGaussian分布を仮定している。この場合、エンコーダ11のニューラルネットワークは、Gaussian分布の平均μ∈R
Hおよび分散σ∈R+
Hの結合ベクトル[μ
T σ
T]
Tを出力する。
【0033】
そして、VAEの順伝播では、次の式(3)より得られる潜在変数hのサンプルh~をデコーダ12のニューラルネットワークの入力とし、その出力である再構築データx’を取得する。
【0035】
ここで、式(3)において、N(・;μ,Σ)は、平均μ、分散共分散行列Σの多変量正規分布を表す。また、Δ(・)は、入力を対角成分とする行列を返す関数とする。
【0036】
しかしながら、
図2のAに示すように、潜在変数hはサンプルされたものであるので微分可能ではない。したがって、学習時にデコーダ12のニューラルネットワークから逆伝播された誤差を、エンコーダ11のニューラルネットワークへ逆伝播することができない。
【0037】
そこで、次の式(4)に示すように、標準正規分布からサンプルされた標準正規乱数εを用いて、潜在変数hを計算する。
【0039】
これにより、
図2のBに示すように、学習時にデコーダ12のニューラルネットワークから逆伝播された誤差を、エンコーダ11のニューラルネットワークへ逆伝播させることができる。
【0040】
ここで、
図2は、Gaussian 分布に従う潜在変数を仮定したVAEにおいて、
図2のAは、Reparameterization Trickを使用しない場合を示し、
図2のBは、Reparameterization Trickを使用した場合を示している。また、
図2において、実線は順伝播を表し、点線はサンプリングを表す。
【0041】
次に、Gaussian 分布を仮定したVAEおよびパラメータ最適化について説明する。
【0042】
上述したように、VAEのパラメータは、上記の式(2)を最大化するように勾配法を用いて最適化することで求められる。ここでは、デコーダ12のニューラルネットワークの出力確率として、連続値データを表現する単位分散の多変量正規分布を、次の式(5)に示すように仮定する。
【0044】
ただし、式(5)で用いられている複素平均a∈R
Dは、デコーダ12のニューラルネットワークの出力値である。また、期待値E
qφ(h|x)[f(h)]は、モンテカルロ法によって、次の式(6)に示すように近似することができるが、この式(6)で用いられるサンプル数L=1としても十分な性能となることが知られている。
【0046】
以上より、上述した式(2)の右辺第一項は、次の式(7)により表される。なお、式(7)で用いられているKは、モデルのパラメータに依存しない項である。
【0048】
また、潜在変数hの分布としてGaussian分布を仮定した場合、多くの既存研究は、潜在変数hの事前分布p
θ(h)を、次の式(8)に示すように、標準正規分布と同時に仮定している。
【0050】
したがって、上述した式(2)の右辺第二項は、次の式(9)に示すように、解析的に求めることができる。
【0052】
以上のように、VAEでは、観測データの分布としてGaussianを仮定しているため、実数値を取り得る観測データを表現することができる。また、Bernoulli分布を仮定して二値データを適切に表現することもできる。なお、この場合には、式(7)のloss関数はクロスエントロピーとなる。
【0053】
しかしながら、いずれも分布の仮定上においても、従来、複素スペクトルなどの複素数データを直接表現することはできなかった。そこで、以下で説明するように、従来のVAEに基づいて、エンコーダにより得られる潜在変数から、デコーダを通して複素数データを表現する新たな生成モデルを提案する。
【0054】
<提案のモデルである複素VAE>
図3に示すモデルを、複素変分自己符号化器(複素VAE;complex-valued variationalautoencoder ; CVAE)と称する。
【0055】
図3に示すように、エンコーダ21は、複素数の観測データzを入力し、複素数の潜在変数hの確率分布を出力する。一方、デコーダ22は、複素数の潜在変数hを入力し、複素数の観測データz’を再構築する。
【0056】
複素VAEでは、複素数の潜在変数h∈C
Hからデコーダ22を通して得られる観測データz∈C
Dは、次の式(10)に示すように、複素平均a∈C
D、分散行列Γ∈C
D×D、および、擬似分散行列C∈C
D×Dの多変量複素正規分布に従うとする。
【0058】
ここで、式(10)で用いられている複素平均a、分散行列Γ、および擬似分散行列Cは、いずれもデコーダ22の出力であり、デコーダ22のパラメータθは、全て複素数である。なお、より簡易化するため、分散行列Γを単位分散とし、擬似分散行列Cを零擬似分散行列(すなわち、p
θ(z|h)=Nc(x;μ,I,O))として、複素平均aのみがデコーダ22の出力であるとすることができる。
【0059】
また、複素VAEでは潜在変数に対しても複素正規分布を仮定する。とりわけ、複素数を表現する単純な(次元独立な)複素正規分布として対角な分散行列Γおよび擬似分散行列Cの分布を、次の式(11)に示すように仮定する。
【0061】
ここで、φは、エンコーダ21の複素パラメータ集合であり、平均μ∈C
H、分散σ∈R
H、擬似分散δ∈C
Hはいずれも、入力される複素数の観測データzに対するエンコーダ21の出力である。そして、複素VAEでは、潜在変数hの事前分布として、次の式(12)に示すように、最も単純な複素正規分布である標準複素正規分布と仮定する。
【0063】
このとき、潜在変数に関する制約項は、次の式(13)に示すように解析的に計算することができる。
【0065】
ただし、式(13)において、・
2は、要素ごとの二乗を表し、|・|は、絶対値を表す。また、式(13)で示す制約項は、エンコーダ21を通して得られる複素潜在変数の分布について、平均μや分散σだけでなく擬似分散δも入力により変化する中で、なるべく単純な複素正規分布に近付ける役割を果たす。
【0066】
また、複素VAEの目的関数は、従来のVAEと同様に、次の式(14)で示す制約付き対数尤度の下限Lを求める関数とする。
【0068】
次に、複素VAEにおけるReparameterizationTrickおよびパラメータ最適化について説明する。
【0069】
複素VAEでは、上述した式(14)を最大化するように、例えば、複素勾配法を用いて複素VAEのパラメータφおよびパラメータθを最適化する。例えば、最も単純な複素勾配法は複素最急降下法であり、複素数の学習率α∈C(αの実部は0より大きい:Re(α)>0)を用いて、パラメータθは、次の式(15)を繰り返し計算することで更新される。
【0071】
なお、このようなパラメータθの更新の拡張として、例えば、複素Adam(Adaptive moment estimation)を用いてもよい。また、式(15)ではパラメータθについて示したが、パラメータφについても同様に、更新することができる。
【0072】
ただし、この式(15)における複素数の偏微分は、パラメータθの実部Re(θ)および虚部Im(θ)により、次の式(16)で示すWirtinger微分である。
【0074】
しかしながら、上述した式(11)に従って潜在変数を単純にサンプリングし、デコーダ22へ入力すると、このプロセスが微分可能ではないためエンコーダ21側へ誤差を逆伝播することができないことになる。そこで、上述したような従来のVAEと同様に、標準正規分布に従う乱数を用いて潜在変数のサンプルを表現する、複素VAEにおけるReparameterization Trickを提案する。
【0075】
例えば、複素数の潜在変数h∈C
Hは、実部x∈R
Hおよび虚部y∈R
Hを用いて、h=x+iyと記述することができる。そこで、上述した式(11)の仮定より、複素数の潜在変数hの各要素は互いに独立となり、複素数の潜在変数hの実部xおよび虚部yは、それぞれ平均μの実部Re(μ)および虚部Im(μ)、並びに、分散σの実部σ
xおよび虚部σ
yの正規分布に従う。ただし、分散σの実部σ
xおよび虚部σ
yは、次の式(17)で表される。
【0077】
また、複素数の潜在変数hの実部xおよび虚部yの添字の対応する要素間には相関があり、その相関係数ベクトルρ∈R
Hは、次の式(18)で表される。
【0079】
そして、次の式(19)に示すように、標準正規乱数ε
x〜N(0,I)を用いて複素数の潜在変数hの実部xをサンプリングしたとき、複素数の潜在変数hの虚部yは、次の式(20)に示すような条件付確率に従う。
【0081】
したがって、標準正規乱数ε
y〜N(0,I)を用いて、次の式(21)を計算することで、複素数の潜在変数hの虚部yのサンプルy~を得ることができる。ただし、この式(1)において、√・は要素ごとの平方根を表し、・
2は要素ごとの二乗を表す。
【0083】
以上をまとめると、複素潜在変数のサンプルh~は、
図4に示すように、標準正規乱数ε
xおよび標準正規乱数ε
yを用いて、次の式(22)に示すように表すことができる。
【0085】
なお、この式(22)で用いられている補助演算係数κ
xおよびκ
yは、次の式(23)に示すように定義される。
【数23】
【0086】
ここで、補助演算係数κ
xおよびκ
yは、
図4に示すようにデコーダ22からエンコーダ21へ誤差を逆伝播することが可能となるような複素数の潜在変数hの分布を求めるための補助的な演算を行うのに用いられる。即ち、エンコーダ21から出力される分散σおよび擬似分散δから直接的に複素数の潜在変数hの分布を求めるのではなく、分散σおよび擬似分散δから式(23)に従って補助的に補助演算係数κ
xおよびκ
yを求めた後に、補助演算係数κ
xおよびκ
yから複素数の潜在変数hの分布が求められる。
【0087】
なお、学習を安定化させるため、例えば、分散および擬似分散に代えて、対数分散および対数擬似分散をエンコーダ21の出力としてもよい。このようなテクニックは、従来のVAEでもしばしば同様に用いられる。
【0088】
<符号化装置および復号装置の構成例>
図5は、本技術を適用した符号化装置の一実施の形態の構成例を示すブロック図である。
【0089】
図5に示すように、符号化装置31は、複素数データ取得部41、前処理部42、パラメータ保持部43、および符号化部44を備えて構成される。例えば、符号化装置31には、複素数の観測データzが入力され、符号化装置31からは、複素数の潜在変数hの分布が出力される。
【0090】
複素数データ取得部41は、符号化装置31において符号化の対象となる複素数の観測データzが供給されると、その複素数の観測データzを取得して、前処理部42に供給する。例えば、符号化装置31における符号化の対象としては、音声データや画像データなど様々なデータが適用可能であり、それらのデータは、複素数データとして供給される。
【0091】
前処理部42は、複素数データ取得部41から供給された複素数の観測データzに対して、符号化部44において符号化が行われる前に必要となる前処理を施す。例えば、前処理部42は、符号化装置31において音声データを符号化の対象とする場合には、その音声データを単位時間(以下、フレームと称する)ごとに切り出す。そして、前処理部42は、フレームごとの音声データから、MFCC(Mel-Frequency Cepstrum Coefficients:メル周波数ケプストラム係数)やメルケプストラム特徴量などのようなスペクトル特徴量を算出する。さらに、前処理部42は、フレームごとの音声データのスペクトル特徴量を正規化して、符号化部44に供給する。
【0092】
パラメータ保持部43は、符号化部44の複素ニューラルネットワーク45に設定されるパラメータφを保持しており、後述する
図9のパラメータ学習装置61において勾配法を利用した学習により求められたパラメータφが供給される。
【0093】
符号化部44は、複素ニューラルネットワーク45により構成され、パラメータ保持部43で保持されているパラメータφが設定された複素ニューラルネットワーク45により、前処理部42において前処理が施された複素数の観測データzを符号化する。
【0094】
複素ニューラルネットワーク45は、上述したように、従来のVAEを、複素数データをそのまま扱うことができるように拡張表現されたモデルである複素VAEである。例えば、複素ニューラルネットワーク45の出力層となる各ノードは、複素正規分布の平均μを出力する平均出力部46、複素正規分布の分散σを出力する分散出力部47、および、複素正規分布の擬似分散δを出力する擬似分散出力部48により構成される。
【0095】
そして、符号化部44は、複素ニューラルネットワーク45の出力に基づき、複素数の観測データzを符号化した符号化データとして、複素数の潜在変数hの分布を出力する。
【0096】
例えば、符号化部44は、平均出力部46から出力される平均μ、分散出力部47から出力される分散σ、および、擬似分散出力部48から出力される擬似分散δを用いて、上述した式(11)を演算して求められる複素正規分布p
φ(h|z)を、複素数の潜在変数hの分布として出力することができる。または、符号化部44は、平均μ、分散σ、および擬似分散δをそのまま、複素数の潜在変数hの分布として出力してもよい。または、符号化部44は、最も簡易化して、平均μのみを複素数の潜在変数hの分布として出力してもよい。
【0097】
このように符号化装置31は構成されており、複素数の観測データzを、複素VAEによって複素数データのまま扱って符号化し、符号化データとして、複素数の潜在変数hの分布を出力することができる。
【0098】
図6は、本技術を適用した復号装置の一実施の形態の構成例を示すブロック図である。
【0099】
図6に示すように、復号装置32は、復号部51、パラメータ保持部52、後処理部53、および出力部54を備えて構成される。例えば、復号装置32には、符号化装置31から出力される複素数の潜在変数hの分布が入力され、復号装置32からは、再構築された複素数の観測データz’が出力される。
【0100】
復号部51には、復号装置32において復号の対象となる符号化データとして複素数の潜在変数hの分布が供給される。復号部51は、複素ニューラルネットワーク55により構成され、パラメータ保持部52で保持されているパラメータθが設定された複素ニューラルネットワーク55により、複素数の潜在変数hの分布を復号する。
【0101】
複素ニューラルネットワーク55は、上述したように、従来のVAEを、複素数データをそのまま扱うことができるように拡張表現されたモデルである複素VAEである。例えば、複素ニューラルネットワーク55の出力層となる各ノードは、複素平均aを出力する複素平均出力部56、分散行列Γを出力する分散行列出力部57、および、擬似分散行列Cを出力する擬似分散行列出力部58により構成される。
【0102】
そして、復号部51は、複素ニューラルネットワーク55の出力に基づき、複素数の潜在変数hの分布を復号した復号データとして、符号化装置31に入力された複素数の観測データzを再構築した複素数の観測データz’を出力する。
【0103】
例えば、復号部51は、複素平均出力部56から出力される複素平均a、分散行列出力部57から出力される分散行列Γ、および、擬似分散行列出力部58から出力される擬似分散行列Cを用いて、上述した式(10)を演算することにより求められる多変量複素正規分布p
θ(z|h)を、再構築した複素数の観測データz’として出力する。または、復号部51は、複素平均a、分散行列Γ、および擬似分散行列Cをそのまま、再構築した複素数の観測データz’として出力してもよい。または、復号部51は、最も簡易化して、複素平均aのみを、再構築した複素数の観測データz’として出力してもよい。
【0104】
パラメータ保持部52は、復号部51の複素ニューラルネットワーク55に設定されるパラメータθを保持しており、後述する
図9のパラメータ学習装置61において勾配法を利用した学習により求められたパラメータθが供給される。
【0105】
後処理部53は、復号部51から出力される再構築した複素数の観測データz’に対して、符号化装置31の前処理部42で行われた前処理を元に戻す後処理を施し、即ち、単位時間(例えば、音声データであればフレーム)ごとに正規化されたスペクトル特徴量を元に戻し、出力部54に供給する。
【0106】
出力部54は、後処理部53において後処理が施された再構築した複素数の観測データz’を、復号装置32の後段に出力する。
【0107】
このように復号装置32は構成されており、複素数の潜在変数hを、複素VAEによって複素数データのまま扱って復号し、復号データとして、再構築された複素数の観測データz’を出力することができる。
【0108】
図7は、符号化装置31が実行する符号化処理を説明するフローチャートである。
【0109】
ステップS11において、複素数データ取得部41は、符号化装置31において符号化の対象となる複素数の観測データzを取得して、前処理部42に供給する。
【0110】
ステップS12において、前処理部42は、ステップS11で複素数データ取得部41から供給された複素数の観測データzに対し、上述したような前処理を施して、符号化部44に供給する。
【0111】
ステップS13において、符号化部44は、ステップS12で前処理部42により前処理が施された複素数の観測データzを、パラメータφが設定された複素ニューラルネットワーク45により符号化して、複素数の潜在変数hの分布を取得する。
【0112】
ステップS14において、符号化部44は、ステップS12における符号化で取得された複素数の潜在変数hの分布を、符号化データとして出力する。
【0113】
以上のような符号化処理によって、符号化装置31は、複素数の観測データzを符号化した符号化データとして、複素数の潜在変数hの分布を出力することができる。
【0114】
図8は、復号装置32が実行する復号処理を説明するフローチャートである。
【0115】
ステップS21において、復号部51は、符号化装置31から出力された符号化データ、即ち、複素数の潜在変数hの分布を取得する。
【0116】
ステップS22において、復号部51は、ステップS21で取得した複素数の潜在変数hの分布を、パラメータθが設定された複素ニューラルネットワーク55により復号して、再構築した複素数の観測データz’を取得し、後処理部53に供給する。
【0117】
ステップS23において、後処理部53は、ステップS22で復号部51から供給される再構築した複素数の観測データz’に対し、上述したような後処理を施して、出力部54に供給する。
【0118】
ステップS24において、出力部54から供給される再構築した複素数の観測データz’を、復号データとして出力する。
【0119】
以上のような復号処理によって、復号装置32は、複素数の潜在変数hの分布を復号した復号データとして、再構築した複素数の観測データz’を出力することができる。
【0120】
<パラメータ学習装置の構成例>
図9は、パラメータ学習装置の構成例を示すブロック図である。
【0121】
図9に示すように、パラメータ学習装置61は、複素数データ取得部41、前処理部42、符号化部44、復号部51、初期パラメータ設定部62、補助演算部63、サンプリング部64、初期パラメータ設定部65、判定部66、およびパラメータ更新部67を備えて構成される。
【0122】
例えば、パラメータ学習装置61には、符号化装置31に供給される複素数の観測データzと同様の学習用複素数データが供給される。そして、パラメータ学習装置61は、符号化部44が符号化に用いるパラメータφ、および、復号部51が復号に用いるパラメータθを、勾配法を利用して学習するパラメータ学習処理を行い、その学習の結果として最適化されたパラメータφおよびパラメータθを出力する。
【0123】
また、パラメータ学習装置61が備える複素数データ取得部41、前処理部42、および符号化部44は、符号化装置31が備える複素数データ取得部41、前処理部42、および符号化部44と共通の構成となっている。同様に、パラメータ学習装置61が備える復号部51は、復号装置32が備える復号部51と共通の構成となっている。
【0124】
即ち、パラメータ学習装置61に供給される学習用複素数データは、複素数データ取得部41により取得され、前処理部42により前処理が施されて、符号化部44に供給される。
【0125】
初期パラメータ設定部62は、パラメータ学習装置61において行われるパラメータ学習処理の開始時に使用される初期のパラメータφを保持しており、符号化部44の複素ニューラルネットワーク45に対して設定する。
【0126】
符号化部44は、複素ニューラルネットワーク45の出力に基づき、学習用複素数データを符号化した符号化データとして、複素正規分布の平均μ、複素正規分布の分散σ、および、複素正規分布の擬似分散δを出力する。そして、符号化部44は、複素正規分布の平均μ、複素正規分布の分散σ、および、複素正規分布の擬似分散δから求められる符号化データである複素正規分布p
φ(h|z)を、判定部66に供給する。また、符号化部44は、パラメータ学習処理の開始時には初期パラメータ設定部62により設定される初期のパラメータφを用い、その後は、パラメータ更新部67により更新されたパラメータφを用いる。
【0127】
補助演算部63は、
図4を参照して上述したように、復号部51から符号化部44へ誤差を逆伝播することが可能となるような複素数の潜在変数hの分布を求めるための補助演算を行う。即ち、補助演算部63は、符号化部44から出力される複素正規分布の分散σおよび擬似分散δから補助演算係数κ
xおよびκ
yを求めるために、上述した式(23)を演算する。そして、補助演算部63は、補助演算係数κ
xおよびκ
yと、符号化部44から出力される複素正規分布の平均μを用いて、複素数の潜在変数hの分布を求めて、サンプリング部64に供給する。
【0128】
サンプリング部64は、補助演算部63から出力される複素数の潜在変数hの分布に対するサンプリングを行い、複素数の潜在変数hのサンプルを取得して復号部51に供給する。
【0129】
初期パラメータ設定部65は、パラメータ学習装置61において行われるパラメータ学習処理の開始時に使用される初期のパラメータθを保持しており、復号部51の複素ニューラルネットワーク55に対して設定する。
【0130】
復号部51は、複素ニューラルネットワーク55の出力に基づき、サンプリング部64から供給される複素数の潜在変数hのサンプルを復号した復号データとして、複素平均a、分散行列Γ、および、擬似分散行列Cをから求められる復号データである多変量複素正規分布p
θ(z|h)を出力する。
【0131】
判定部66は、繰り返して求められるパラメータφおよびパラメータθが、所定の終了条件を満足したか否かを判定する。例えば、判定部66は、現時点のパラメータφに基づいて得られる符号化データである複素正規分布p
φ(h|z)と、現時点のパラメータθに基づいて得られる符号化データである多変量複素正規分布p
θ(z|h)とを用いて、上述した式(14)を演算し、制約付き対数尤度の下限Lが最大化された場合に、終了条件を満足したと判定することができる。その他、判定部66は、予め設定された回数に応じて、パラメータφおよびパラメータθが繰り返して求められたことを終了条件として、判定を行ってもよい。
【0132】
パラメータ更新部67は、上述した式(15)を演算することで、複素勾配法を用いてパラメータθを更新する。また、パラメータ更新部67は、同様の演算を行ってパラメータφを更新することができる。
【0133】
このようにパラメータ学習装置61は構成されており、勾配法を利用した学習により最適化されたパラメータφおよびパラメータθを求めることができる。
【0134】
図10は、パラメータ学習装置61が実行するパラメータ学習処理を説明するフローチャートである。
【0135】
ステップS31において、初期パラメータ設定部62は、符号化部44の複素ニューラルネットワーク45に対して初期のパラメータφを設定し、初期パラメータ設定部65は、復号部51の複素ニューラルネットワーク55に対して初期のパラメータθを設定する。
【0136】
ステップS32において、複素数データ取得部41は学習用複素数データを取得し、前処理部42は学習用複素数データに前処理を施して、符号化部44に供給する。
【0137】
ステップS33において、符号化部44は、ステップS32で供給された学習用複素数データを符号化し、複素正規分布の平均μ、複素正規分布の分散σ、および、複素正規分布の擬似分散δを補助演算部63に供給する。さらに、符号化部44は、複素正規分布の平均μ、複素正規分布の分散σ、および、複素正規分布の擬似分散δから求められる符号化データである複素正規分布p
φ(h|z)を、判定部66に供給する。
【0138】
ステップS34において、補助演算部63は、ステップS33で供給された複素正規分布の分散σおよび擬似分散δから補助演算係数κ
xおよびκ
yを求める補助演算を行う。さらに、補助演算部63は、ステップS33で供給された複素正規分布の平均μと、補助演算係数κ
xおよびκ
yとを用いて、複素数の潜在変数hの分布を求めて、サンプリング部64に供給する。
【0139】
ステップS35において、サンプリング部64は、ステップS34で供給された複素数の潜在変数hの分布に対するサンプリングを行い、複素数の潜在変数hのサンプルを復号部51に供給する。
【0140】
ステップS36において、復号部51は、ステップS35で供給された複素数の潜在変数hのサンプルを復号し、複素平均a、分散行列Γ、および、擬似分散行列Cから求められる復号データである多変量複素正規分布p
θ(z|h)を、判定部66に供給する。
【0141】
ステップS37において、判定部66は、繰り返して求められるパラメータφおよびパラメータθが、所定の終了条件を満足したか否かを判定する。例えば、判定部66は、ステップS33で符号化部44から供給される複素正規分布p
φ(h|z)、および、ステップS36で復号部51から供給される多変量複素正規分布p
θ(z|h)を用いて、上述した式(14)を演算することにより制約付き対数尤度の下限Lを求める。そして、判定部66は、制約付き対数尤度の下限Lが最大化された場合に、その時点で求められているパラメータφおよびパラメータθが、所定の終了条件を満足したと判定する。
【0142】
ステップS37において、判定部66が終了条件を満足していないと判定した場合、処理はステップS38に進む。
【0143】
ステップS38において、パラメータ更新部67は、上述したようにパラメータφおよびパラメータθを更新し、それぞれ符号化部44および復号部51に設定した後、処理はステップS33に戻り、以下、同様の処理が繰り返して行われる。
【0144】
一方、ステップS37において、判定部66が終了条件を満足したと判定した場合、処理はステップS39に進む。
【0145】
ステップS39において、判定部66は、最適化されたパラメータφおよびパラメータθを出力し、パラメータφを符号化装置31に供給してパラメータ保持部43に保持させ、パラメータθを復号装置32に供給してパラメータ保持部52に保持させる。その後、パラメータ学習処理は終了される。
【0146】
以上のようなパラメータ学習処理によって、パラメータ学習装置61は、勾配法を利用した学習により最適化されたパラメータφおよびパラメータθを求めることができる。
【0147】
<実験条件および実験結果>
図11乃至
図13を参照して、複素VAEについて行われた実験について説明する。
【0148】
上述したように本実施の形態で提案した複素VAEの有効性を確認するため、一般的に提供されている音声データベース・セットの音声を用いて再構築音声の品質評価実験を行なった。例えば、その音声データベース・セットから50文音声(約4.2 分、サンプリングレート20kHzを16kHzにダウンサンプリング)を使用し、窓幅を512として64サンプルオーバーラップの短時間フーリエ変換を施した255次元の複素スペクトルを入力特徴量とした。そして、50次元の潜在変数を持つ複素VAEを学習させた後、別の53文音声に対してエンコーダ・デコーダを通して再合成された音声について客観評価基準値であるPESQ(Perceptual Evaluation of. Speech Quality)を用いて品質評価を行った。
【0149】
さらに、比較手法として、同じ複素スペクトルデータの実部および虚部を連結したベクトルを入力特徴量としたVAE(以下、VAE(R+I)と称する)、および、255次元の振幅スペクトルを入力特徴量としたVAE(以下、VAE(GL)と称する)を用いた。
【0150】
図11には、複素VAE、VAE(R+I)、およびVAE(GL)について行われた実験条件の一例が示されている。
【0151】
例えば、いずれの手法においても、バッチサイズは100とし、ロスが下がらなくなった時点で停止するように学習を行った。また、
図11に示すネットワークの構造を示す表記について、例えば、CVAEの“255-100-[50,50,50]”は、3層構造で入力側から順に255,100,50×3ユニットのfull-connected層が並んでいることを示している。
【0152】
なお、VAE(R+I)は、各ユニットが実部および虚部の2つの自由度を持つ複素VAEとの公平な比較のために、各層のユニット数を複素VAEの2倍にしている。また、VAE(GL)のみ得られた振幅スペクトルからGriffin-Lim法によって位相復元し、その他の手法は、そのまま逆短時間フーリエ変換を施して音声信号を復元する。
【0153】
図12には、
図11に示した実験条件において行われた実験に対する評価の一例が示されている。例えば、
図12には、VAE(GL)、VAE(R+I)、複素VAE、および複素VAE(w/o δ)の各手法によるPESQ評価が示されている。
【0154】
また、
図13には、
図11に示した実験条件において行われた実験で得られた実験結果の一例として、振幅スペクトルの一部と、対応するオリジナル音声の振幅スペクトルが示されている。例えば、
図13に示すAは、オリジナルの振幅スペクトルであり、
図13に示すBは、VAE(GL)により再構築された振幅スペクトルであり、
図13に示すCは、VAE(R+I)により再構築された振幅スペクトルであり、
図13に示すDは、複素VAEにより再構築された振幅スペクトルである。
【0155】
図12の評価では、複素VAEによって復元された音声が最も高い品質であったことが示されている。
【0156】
また、
図13の実験結果に示すように、従来のVAEにおいて、複素スペクトルの実部および虚部を連結したベクトルを特徴量に用いると、再構築スペクトルでは特に高周波域の情報が失われてしまって、うまく学習されていないことが表れている。
【0157】
これに対し、複素VAEでは、再構築スペクトルのどの周波数帯域でも微細構造やフォルマントがよく表れている。これは、複素VAEでは、複素数データの複素数構造を保持したまま符号化および復号が行われ、複素勾配法によるパラメータ最適化を行なっていることより、学習中に出現する複素スペクトルの頻出パターンをより捉えられていることによると考察される。
【0158】
また、参考として、複素VAEにおいて複素潜在変数の擬似分散δを導入することによる効果を確認するため、擬似分散δを含まない(すなわち、常にδ=0)モデルの性能を評価したところ、
図12のCVAE(w/o δ)において、性能が低下することが示されている。これは、複素VAEの符号化部を通して実部と虚部との間に相関のある潜在変数が作成され、その相関を取り除くような制約を加えた方が質の高い潜在変数となることを示唆している。
【0159】
以上のように、本実施の形態では、近年、様々な分野で基盤として用いられるVAEを拡張して、複素数データを直接表現できる複素VAEを新たに提案し、音声の複素スペクトルモデリングに適用してその有効性を確認した。
【0160】
そして、複素VAEの特徴として、次の第1乃至第4の特徴などが挙げられる。第1の特徴は、入力、出力、潜在変数、およびパラメータ全てが複素数で構成され、複素数の構造を保ったまま情報伝播およびパラメータ最適化を行っていることである。また、第2の特徴は、デコーダの出力および潜在変数ともに複素正規分布を仮定していることである。また、第3の特徴は、潜在変数の分布について擬似分散を考慮して標準複素正規分布に近付ける制約を加え、さらにその制約が解析的に求まり微分可能であることである。そして、第4の特徴は、デコーダからエンコーダへ勾配を誤差逆伝播できるReparametrizationが存在することである。
【0161】
なお、本技術は、符号化装置31および復号装置32が一体で構成された符号化および復号システムに適用してもよい。また、パラメータ学習装置61が、符号化装置31または復号装置32に組み込まれるような構成としてもよく、その構成では、それぞれ同一の処理を行うブロックが共通で用いられることになる。
【0162】
また、
図5および
図9に示した複素ニューラルネットワーク45、並びに、
図6および
図9に示した複素ニューラルネットワーク55について、図示したモデルは模式的な例示であって、ノードの個数や中間層の数などは、用途に応じて適切に設計することができる。なお、複素ニューラルネットワーク45および55は、従来のVAEと異なって複素数のまま演算を行うことにより、適切な制約が自動的に加わることになる。
【0163】
<コンピュータの構成例>
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0164】
図14は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
【0165】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
【0166】
あるいはまた、プログラムは、ドライブ109によって駆動されるリムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウェアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【0167】
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【0168】
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
【0169】
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
【0170】
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
【0171】
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【0172】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0173】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0174】
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0175】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0176】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0177】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0178】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0179】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0180】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0181】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。