(57)【要約】      （修正有）【課題】独立成分分析等の信号分離技術において、精度をできるだけ向上し、収束をできるだけ速くする信号分離装置等を提供する。【解決手段】信号分離装置１００において、繰返計算部１０２は、反復推測部１０１に、観測信号行列Xを反復法により独立成分分析させ、その結果得られた源信号行列をさらに反復法により独立成分分析させることを繰り返させ、結果出力部１０３は、繰返しの過程で得られた各混合比行列の積を、観測信号行列Xに対する混合比行列Aとして出力し、繰り返しの最後に得られた源信号行列を観測信号行列Xに対する源信号行列Sとして出力する。繰返制御部１０４は、繰返計算部１０２に、各混合比行列や各源信号行列が収束条件を満たすまで、計算制御を繰り返させる。反復推測部１０１における反復法による反復回数は、固定回数でも良いし、収束がするまで反復を行うこととしても良い。【選択図】図２
2007298564.tif 000002
【特許請求の範囲】
【請求項１】
m行T列の観測信号行列Xを、m行n列の混合比行列Aとn行T列の源信号行列Sとm行T列の雑音行列Nとであって、所定の行列演算c(・,・)について
X = c(A,S) + N
を満たす行列A，Sに分離する信号分離装置であって、
m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数J(・,・,・)に対して、m行T列の行列とm行n列の行列とn行T列の行列とが与えられると、当該m行T列の行列を固定したときに当該行列関数J(・,・,・)が返すスカラー値を極値化する引き数のm行n列の行列とn行T列の行列との組合せを、所定の繰返し回数で反復推測する反復推測部、
L個の行列A1，A2，A3，…，ALであって、
c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
がm行n列の行列となるL個の行列を繰返しにより計算する繰返計算部であって、
S0 = X
として、i (= 1，2，3，…，L)回目の繰返しにおいて、前記反復推測部に、i回目の繰返しにおける行列関数Ji(・,・,・)であって、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数Ji(・,・,・)に対して、m行T列の行列Si-1とm行n列の所定の初期値行列とn行T列の所定の初期値行列とを与えて、反復推測させ、得られたm行n列の行列をAiとし、n行T列の行列をSiとする繰返計算部、
前記求められたL個の行列A1，A2，A3，…，ALから、m行n列の混合比行列Aを
A = c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
により計算し、
前記求められたn行T列の行列SLを、n行T列の源信号行列Sとして、行列A，Sを出力する結果出力部
を備えることを特徴とする信号分離装置。
【請求項２】
請求項１に記載の信号分離装置であって、
前記求められたL個の行列A1，A2，A3，…，ALとn行T列の行列SLとが所定の収束条件を満たすまで、前記繰返計算部に当該繰返しをやり直させ、i回目の繰返しにおけるm行n列の所定の初期値行列およびn行T列の所定の初期値行列として、やり直しの前回におけるAiおよびやり直しの前回におけるSiを与えさせる繰返制御部
をさらに備え、
前記結果出力部は、当該所定の収束条件が満たされると、行列A，Sを計算して出力する
ことを特徴とする信号分離装置。
【請求項３】
請求項１または２に記載の信号分離装置であって、
前記結果出力部は、m行T列の雑音行列Nを、
N = X - c(A,S)
によりさらに計算して、行列Nをさらに出力する
ことを特徴とする信号分離装置。
【請求項４】
請求項１から３のいずれか１項に記載の信号分離装置であって、当該所定の行列演算c(・,・)は、行列の積である
ことを特徴とする信号分離装置。
【請求項５】
請求項１から３のいずれか１項に記載の信号分離装置であって、
当該所定の行列演算c(・,・)は、コンボリューション演算である
ことを特徴とする信号分離装置。
【請求項６】
請求項１から３のいずれか１項に記載の信号分離装置であって、
当該所定の行列演算c(・,・)は、非線型リンク関数である
ことを特徴とする信号分離装置。
【請求項７】
請求項１から６のいずれか１項に記載の信号分離装置であって、
前記反復推測部における反復回数は、i (= 1，2，3，…，L)回目のいずれの繰返しにおいても１回である
ことを特徴とする信号分離装置。
【請求項８】
請求項１から７のいずれか１項に記載の信号分離装置であって、
前記反復推測部に対するi (= 1，2，3，…，L)回目の行列関数Ji(・,・,・)は、いずれも等しい
ことを特徴とする信号分離装置。
【請求項９】
m行T列の観測信号行列Xを、m行n列の混合比行列Aと、n行T列の源信号行列Sと、m行T列の雑音行列Nであって、所定の行列演算c(・,・)について
X = c(A,S) + N
を満たす行列A，S，Nに分離し、反復推測部、繰返計算部、結果出力部を有する信号分離装置にて実行される信号分離方法であって、
前記反復推測部が、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数J(・,・,・)に対して、m行T列の行列とm行n列の行列とn行T列の行列とが与えられると、当該m行T列の行列を固定したときに当該行列関数J(・,・,・)が返すスカラー値を極値化する引き数のm行n列の行列とn行T列の行列との組合せを、所定の繰返し回数で反復推測する反復推測工程、
前記繰返計算部が、L個の行列A1，A2，A3，…，ALであって、
c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
がm行n列の行列となるL個の行列を繰返しにより計算し、
S0 = X
として、i (= 1，2，3，…，L)回目の繰返しにおいて、前記反復推測部に、i回目の繰返しにおける行列関数Ji(・,・,・)であって、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数Ji(・,・,・)に対して、m行T列の行列Si-1とm行n列の所定の初期値行列とn行T列の所定の初期値行列とを与えて、反復推測させ、得られたm行n列の行列をAiとし、n行T列の行列をSiとする繰返計算工程、
前記結果出力部が、前記求められたL個の行列A1，A2，A3，…，ALから、m行n列の混合比行列Aを
A = c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
により計算し、前記求められたn行T列の行列SLを、n行T列の源信号行列Sとして、行列A，Sを出力する結果出力工程
を備えることを特徴とする信号分離方法。
【請求項１０】
請求項９に記載の信号分離方法であって、当該信号分離装置は、繰返制御部をさらに有し、
前記繰返制御部が、前記求められたL個の行列A1，A2，A3，…，ALとn行T列の行列SLとが所定の収束条件を満たすまで、前記繰返計算部に当該繰返しをやり直させ、i回目の繰返しにおけるm行n列の所定の初期値行列およびn行T列の所定の初期値行列として、やり直しの前回におけるAiおよびやり直しの前回におけるSiを与えさせる繰返制御工程
をさらに備え、
前記結果出力工程では、当該所定の収束条件が満たされると、行列A，Sを計算して出力する
ことを特徴とする信号分離方法。
【請求項１１】
コンピュータに、
m行T列の観測信号行列Xを、m行n列の混合比行列Aと、n行T列の源信号行列Sと、m行T列の雑音行列Nであって、所定の行列演算c(・,・)について
X = c(A,S) + N
を満たす行列A，S，Nに分離させるプログラムであって、
m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数J(・,・,・)に対して、m行T列の行列とm行n列の行列とn行T列の行列とが与えられると、当該m行T列の行列を固定したときに当該行列関数J(・,・,・)が返すスカラー値を極値化する引き数のm行n列の行列とn行T列の行列との組合せを、所定の繰返し回数で反復推測する反復推測部、
L個の行列A1，A2，A3，…，ALであって、
c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
がm行n列の行列となるL個の行列を繰返しにより計算する繰返計算部であって、
S0 = X
として、i (= 1，2，3，…，L)回目の繰返しにおいて、前記反復推測部に、i回目の繰返しにおける行列関数Ji(・,・,・)であって、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数Ji(・,・,・)に対して、m行T列の行列Si-1とm行n列の所定の初期値行列とn行T列の所定の初期値行列とを与えて、反復推測させ、得られたm行n列の行列をAiとし、n行T列の行列をSiとする繰返計算部、
前記求められたL個の行列A1，A2，A3，…，ALから、m行n列の混合比行列Aを
A = c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
により計算し、前記求められたn行T列の行列SLを、n行T列の源信号行列Sとして、行列A，Sを出力する結果出力部
として機能させることを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、当該コンピュータを、
前記求められたL個の行列A1，A2，A3，…，ALとn行T列の行列SLとが所定の収束条件を満たすまで、前記繰返計算部に当該繰返しをやり直させ、i回目の繰返しにおけるm行n列の所定の初期値行列およびn行T列の所定の初期値行列として、やり直しの前回におけるAiおよびやり直しの前回におけるSiを与えさせる繰返制御部
としてさらに機能させ、
前記結果出力部は、当該所定の収束条件が満たされると、行列A，Sを計算して出力する
ように機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、独立成分分析等の信号分離技術において、精度をできるだけ向上し、収束をできるだけ速くするのに好適な、信号分離装置、信号分離方法、ならびに、これらをコンピュータもしくはディジタル信号プロセッサ上にて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、主成分分析（スフィアリングによる成分分析を含む。）、独立成分分析、非負行列因子化（Non-negative Matfix Factorization；ＮＭＦ）による成分分析など、あるデータ列が与えられたときに、当該データ列を複数の成分（主成分、独立成分、因子等）に分離する手法が提案されている。たとえば、以下のような文献で、このような技術が開示されている。
【特許文献１】特開２００３−１４１１０２号公報
【０００３】
特許文献１では、主成分分析や独立成分分析を用いて、化学物質の量の変化を複数の成分に分離し、当該成分により、当該化学物質の生成の原因をグループ化する技術が提案されている。
【０００４】
一般に、独立成分分析においては、
（１）m個のチャンネルから観測信号を受け付けたときに、その時間方向の観測値を列方向に並べた行を、チャンネルの順序に並べたm行T列の観測信号行列X
を考える。
【０００５】
そして、観測信号行列Xを、
（２）n個のチャンネルの源信号の時間方向の源信号値を列方向に並べた行を、チャンネルの順序に並べたn行T列の源信号行列Sと、
（３）源信号の各チャンネルから観測信号の各チャンネルまでの経路の様子を表すm行n列の混合比行列Aと、
（４）m行T列の雑音行列Nと、
に、分離する。
【０００６】
その際に、所定の行列演算c(・,・)について
（５）X = c(A,S) + N
を満たすように分離をする。行列演算c(・,・)としては、行列の積、行列のコンボリューションのほか、各種の行列の非線型リンク関数が用いられる。
【０００７】
また、この際に、勾配法、共役勾配法、ニュートン法などの反復法を用いるのが一般的であるが、
（６）m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数J(・,・,・)
をコスト関数として採用する。
【０００８】
具体的には、J(X,A,S)に対して、Xを固定して、A，Sを変化させたときに、J(X,A,S)の値が最小（極小。一般には、極大もしくは極小、すなわち、「極値」。）となるようなA，Sの組合せを計算する。
【０００９】
コスト関数としては、たとえば、J(X,A,S)として、行列(X - AS)の絶対値最大の要素の絶対値（要素の最大絶対値）や、行列(X - AS)の各要素の自乗平均、行列(X - AS)の各要素の総自乗和等を用いることができる。また、必要に応じて、非負性（non-negativity）、疎性（sparseness）、統計的独立性（statistical independence）などの制約を課すこともある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、単純に反復法を適用するのみでは、源信号同士の強弱の差が大きい場合や観測信号同士の差が小さい場合（観測信号同士が似ている場合）には、収束に時間がかかり、しかも信号の分離性能が落ちるという問題があった。
【００１１】
したがって、このような場合であっても、高速に収束し、信号の分離性能を向上させるような信号分離技術に対する要望は強い。
【００１２】
本発明は、上記の課題を解決するためのもので、独立成分分析等の信号分離技術において、精度をできるだけ向上し、収束をできるだけ速くするのに好適な、信号分離装置、信号分離方法、ならびに、これらをコンピュータもしくはディジタル信号プロセッサ上にて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の観点に係る信号分離装置は、m行T列の観測信号行列Xを、m行n列の混合比行列Aとn行T列の源信号行列Sとm行T列の雑音行列Nとであって、所定の行列演算c(・,・)について
X = c(A,S) + N
を満たす行列A，Sに分離し、反復推測部、繰返計算部、結果出力部を備え、以下のように構成する。
【００１４】
すなわち、反復推測部は、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数J(・,・,・)に対して、m行T列の行列とm行n列の行列とn行T列の行列とが与えられると、当該m行T列の行列を固定したときに当該行列関数J(・,・,・)が返すスカラー値を極値化する引き数のm行n列の行列とn行T列の行列との組合せを、所定の繰返し回数で反復推測する。
【００１５】
一方、繰返計算部は、L個の行列A1，A2，A3，…，ALであって、
c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
がm行n列の行列となるL個の行列を繰返しにより計算し、
S0 = X
として、i (= 1，2，3，…，L)回目の繰返しにおいて、反復推測部に、i回目の繰返しにおける行列関数Ji(・,・,・)であって、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数Ji(・,・,・)に対して、m行T列の行列Si-1とm行n列の所定の初期値行列とn行T列の所定の初期値行列とを与えて、反復推測させ、得られたm行n列の行列をAiとし、n行T列の行列をSiとする。
【００１６】
さらに、結果出力部は、求められたL個の行列A1，A2，A3，…，ALから、m行n列の混合比行列Aを
A = c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
により計算し、
【００１７】
求められたn行T列の行列SLを、n行T列の源信号行列Sとして、行列A，Sを出力する。
【００１８】
また、本発明の信号分離装置は、繰返制御部をさらに備え、以下のように構成することができる。
【００１９】
すなわち、繰返制御部は、求められたL個の行列A1，A2，A3，…，ALとn行T列の行列SLとが所定の収束条件を満たすまで、繰返計算部に当該繰返しをやり直させ、i回目の繰返しにおけるm行n列の所定の初期値行列およびn行T列の所定の初期値行列として、やり直しの前回におけるAiおよびやり直しの前回におけるSiを与えさせる。
【００２０】
一方、結果出力部は、当該所定の収束条件が満たされると、行列A，Sを計算して出力する。
【００２１】
また、本発明の信号分離装置において、結果出力部は、m行T列の雑音行列Nを、
N = X - c(A,S)
によりさらに計算して、行列Nをさらに出力するように構成することができる。
【００２２】
また、本発明の信号分離装置において、当該所定の行列演算c(・,・)は、行列の積であるように構成することができる。
【００２３】
また、本発明の信号分離装置において、当該所定の行列演算c(・,・)は、コンボリューション演算であるように構成することができる。
【００２４】
また、本発明の信号分離装置において、当該所定の行列演算c(・,・)は、非線型リンク関数であるように構成することができる。
【００２５】
また、本発明の信号分離装置において、反復推測部における反復回数は、i (= 1，2，3，…，L)回目のいずれの繰返しにおいても１回であるように構成することができる。
【００２６】
また、本発明の信号分離装置において、反復推測部に対するi (= 1，2，3，…，L)回目の行列関数Ji(・,・,・)は、いずれも等しいように構成することができる。
【００２７】
本発明のその他の観点に係る信号分離方法は、m行T列の観測信号行列Xを、m行n列の混合比行列Aと、n行T列の源信号行列Sと、m行T列の雑音行列Nであって、所定の行列演算c(・,・)について
X = c(A,S) + N
を満たす行列A，S，Nに分離し、反復推測部、繰返計算部、結果出力部を有する信号分離装置にて実行され、反復推測工程、繰返計算工程、結果出力工程を備え、以下のように構成する。
【００２８】
すなわち、反復推測工程では、反復推測部が、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数J(・,・,・)に対して、m行T列の行列とm行n列の行列とn行T列の行列とが与えられると、当該m行T列の行列を固定したときに当該行列関数J(・,・,・)が返すスカラー値を極値化する引き数のm行n列の行列とn行T列の行列との組合せを、所定の繰返し回数で反復推測する。
【００２９】
一方、繰返計算工程では、繰返計算部が、L個の行列A1，A2，A3，…，ALであって、
c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
がm行n列の行列となるL個の行列を繰返しにより計算し、
S0 = X
として、i (= 1，2，3，…，L)回目の繰返しにおいて、反復推測部に、i回目の繰返しにおける行列関数Ji(・,・,・)であって、m行T列の行列とm行n列の行列とn行T列の行列とを受け付けてスカラー値を返す行列関数Ji(・,・,・)に対して、m行T列の行列Si-1とm行n列の所定の初期値行列とn行T列の所定の初期値行列とを与えて、反復推測させ、得られたm行n列の行列をAiとし、n行T列の行列をSiとする。
【００３０】
さらに、結果出力工程では、結果出力部が、求められたL個の行列A1，A2，A3，…，ALから、m行n列の混合比行列Aを
A = c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
により計算し、求められたn行T列の行列SLを、n行T列の源信号行列Sとして、行列A，Sを出力する。
【００３１】
また、本発明の信号分離方法において、当該信号分離装置は、繰返制御部をさらに有し、繰返制御工程をさらに備え、以下のように構成することができる。
【００３２】
すなわち、繰返制御工程では、繰返制御部が、求められたL個の行列A1，A2，A3，…，ALとn行T列の行列SLとが所定の収束条件を満たすまで、繰返計算部に当該繰返しをやり直させ、i回目の繰返しにおけるm行n列の所定の初期値行列およびn行T列の所定の初期値行列として、やり直しの前回におけるAiおよびやり直しの前回におけるSiを与えさせる。
【００３３】
一方、結果出力工程では、当該所定の収束条件が満たされると、行列A，Sを計算して出力する。
【００３４】
本発明のその他の観点に係るプログラムは、コンピュータもしくはディジタル信号プロセッサを上記の信号分離装置の各部として機能させ、もしくは、上記の信号分離方法を実行させるように構成する。
【００３５】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００３６】
上記プログラムは、プログラムが実行されるコンピュータやディジタル信号プロセッサとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータやディジタル信号プロセッサとは独立して配布・販売することができる。
【発明の効果】
【００３７】
本発明によれば、独立成分分析等の信号分離技術において、精度をできるだけ向上し、収束をできるだけ速くするのに好適な、信号分離装置、信号分離方法、ならびに、これらをコンピュータもしくはディジタル信号プロセッサ上にて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３８】
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限する物ではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００３９】
なお、以下の説明では、成分分析の手法として独立成分分析を例としてとりあげて説明するが、これと同様の手法によって、成分分析の手法を主成分分析（スフィアリングによる成分分析を含む。）非負行列因子化に置き換えることができ、これらの実施形態も本発明の範囲に含まれる。
【００４０】
また、以下の説明では、理解を容易にするため、行列の演算c(・,・)として、行列の積を例にあげて説明するが、行列のコンボリューションや各種の行列の非線型リンク関数を利用することも可能であり、これらを採用した場合も本発明の範囲に含まれる。
【実施例１】
【００４１】
まず、本実施例における計算処理の理解を容易にするため、各種記号について、説明する。
【００４２】
本実施例では、以下の行列Xを、信号分離の入力として用いる。
（１）m行T列の観測信号行列X
【００４３】
そして、以下の行列A，S，Nを信号分離の結果として得る。
（２）m行n列の混合比行列A
（３）n行T列の源信号行列S
（４）m行T列の雑音行列N
【００４４】
ただし、これらの行列の間には、以下の関係が成立しなければならない。
（５）X = AS + N
【００４５】
また、Xを固定してA，Sを微小に変化させたとしたときに、コスト関数J(X,A,S)最小あるいは極小（コスト関数の種類によっては、最大あるいは極大を含む「極値」。以下では、理解を容易にするため、コスト関数を極小にするものを求めるものとする。）となるものでなければならない。すなわち、以下が成立する。
（６）(A,S) = argmin(A,S)J(X,A,S)
【００４６】
一般的な独立成分分析の手法では、上記のコスト関数として行列(X - AS)の絶対値最大の要素の絶対値（要素の最大絶対値）や、行列(X - AS)の各要素の自乗平均、行列(X - AS)の各要素の総自乗和等のほか、甘利のα divergence、Kullback Leibler divergence、Frobenius norm、Jenssen Shannon divergence等を用いることができる。
【００４７】
また、上記の行列A，Sを求める計算手法としては、反復法（勾配法、共役勾配法、ニュートン法等）を採用する。通常、この反復は、A，Sが所定の反復終了条件を満たすようになるまで繰り返されるのが一般的である。たとえば、A，Sの要素の総自乗和に対する当該行列の反復の前後の要素の差の総自乗和の比が、所定の値εよりも小さくなった場合に反復終了条件が満たされる等である。
【００４８】
もっとも、粗い分析で十分な場合等には、反復回数を数回に固定することもありうる。後者の場合は、反復終了条件として「反復回数○○回」を指定したことと等価である。
【００４９】
このほか、解くべき信号の既知の性質に基づいて、非負性、疎性、時空間無相関性、smoothness、独立性などの束縛条件を課して、計算を行うこともある。
【００５０】
本実施形態では、このような独立成分分析を行う機能を、反復推測部という１つの計算モジュールとしてとらえるものとする。反復推測部が実行する処理については、既存の技術の他、各種の独立成分分析の技術を適用することができる。
【００５１】
図１は、反復推測部に対する入力と出力の様子を示す説明図である。以下、本図を参照して説明する。
【００５２】
反復推測部１０１は、一般的なコンピュータのＣＰＵ（Central Processing Unit）がＲＡＭ（Random Access Memory）などの記憶装置と共働して実現される。
【００５３】
反復推測部１０１に対しては、入力として行列X，A，Sが与えられる。一般には、行列X，A，SはＲＡＭ等に記憶されており、本実施形態では、反復推測部１０１を実現するライブラリ（プログラム）関数に、行列X，A，Sが確保されているメモリ内のアドレスが引き数として渡される構成をとる。
【００５４】
ここで、行列Xは、上記のように観測信号行列に相当するものであるが、広く考えると、反復法における条件を定める定数行列と考えることができる。一方、ここで与えられる行列A，Sは、混合比行列と源信号行列であるが、広く考えると、反復法において、真の値の近似値となる初期値と考えることができる。したがって、ＲＡＭ等に記憶される行列A，Sは、何らかの値で初期化される必要がある。
【００５５】
何ら情報がない場合には、行列Aの各要素には、要素分布が疎であるように乱数や定数（０や１や−１等）を与え、行列Sの各要素には乱数や定数（０，１，−１等）を与えたり、種々の技術が考えられる（図中の「初期化」）。また、後述するように、反復推測部１０１が前回の処理において出力した結果を初期値とすることとしても良く、多くの場合、これが好ましい。
【００５６】
このほか、コスト関数と反復終了条件も、反復推測部１０１に対して与えられる。これらは、反復推測部１０１を実現するためのコード（プログラム）に直接指定されることもあるし、ライブラリ関数のアドレスを指定することによる場合もありうる。
【００５７】
さて、反復推測部１０１は、上記のような諸情報を受け付けて、反復終了条件が満たされるまで反復を繰り返し、入力として与えられた行列A，Sを、さらに真の値に近付けた行列A'，S'を出力する。A'，S'が出力された、ということは、反復終了条件が満たされた、ということである。ここで、反復終了条件としては、以下のようなものが考えられる。
（１）反復回数が１回になったとき
（２）反復回数が所定のn回になったとき(n≧2)
（３）(Σi=1m Σk=1n |A'[i,k]-A[i,k]|2 + Σk=1n Σt=1T |S'[i,k]-S[i,k]|2) ≦ ε
（４）(maxi=1m maxk=1n |A'[i,k]-A[i,k]|2 + maxk=1n maxt=1T |S'[i,k]-S[i,k]|2) ≦ ε
（５）Σi=1m Σk=1n |A'[i,k]-A[i,k]|2 ≦ ε
（６）maxi=1m maxk=1n |A'[i,k]-A[i,k]|2 ≦ ε
（７）Σk=1n Σt=1T |S'[i,k]-S[i,k]|2 ≦ ε
（８）maxk=1n maxt=1T |S'[i,k]-S[i,k]|2 ≦ ε
【００５８】
ただし、出力方法としては、入力として与えられた行列A，SのＲＡＭ等内における領域に、A'，S'の内容を上書き（図中の「上書き」。）することとして、出力結果としても良い。本実施形態では、主にそのような態様を採用する。
【００５９】
さて、上記の事項に合わせて説明すると、反復法においては、Xを固定してJ(X,A,S)が小さくなるような方向にA，Sを移動させた結果をA'，S'とするのであるが、２つの行列A，Sをまとめて勾配法等に適用することはのは難しい場合もある。
【００６０】
そこで、コスト関数J(X,A,S)を、２つのコスト関数K(X,A,S)，H(X,A,S)の組み合わせとして取り扱う。ここで、K(・,・,・)とH(・,・,・)は、同じコスト関数を選択しても良いし（すなわち、K，H，Jの３つは同じコスト関数である。）、適宜異なるコスト関数を選択しても良い。
【００６１】
そして、
（１）まず、X,Aを固定して、K(X,A,S)を小さくする方向にSを移動させた結果をS'とし、
（２）次に、X,S'を固定して、H(X,A,S')を小さくする方向にAを移動させた結果をA'とする
ことを、反復の一回分と考えるのが典型的である。
【００６２】
あるいはその逆に、
（１）まず、X,Sを固定して、H(X,A,S)を小さくする方向にAを移動させた結果をA'とし、
（２）次に、X,A'を固定して、K(X,A',S)を小さくする方向にSを移動させた結果をS'とする
ことを、反復の一回分としても良い。
【００６３】
さて、本実施形態においては、上記のような反復推測部１０１を、サブルーチン呼び出しによって少なくともL  (L≧2)回用いるが、その際に与える引き数等が異なる。そこで、理解を容易にするため、以下では、個別に反復推測部１０１をL個用意したものとして説明する。
【００６４】
図２は、本実施形態に係る信号分離装置の構成を示す模式図である。以下、本図を参照して説明する。
【００６５】
信号分離装置１００は、L個の反復推測部１０１、繰返計算部１０２、結果出力部１０３、繰返制御部１０４のほか、記憶部１０５を備える。
【００６６】
本実施形態では、反復推測の多段構成によって独立成分分析を行うため、Lは、「段（step）数」「層（layer）数」に相当するものである。
【００６７】
記憶部１０５には、以下の情報を記憶するための領域が確保される。
（１）m行T列の観測信号行列X。これは、信号分離の象となる観測値である。
（２）L個の行列A1，…，AL。これは、一時的な計算のために用いられる。
（３）L個のn行T列の行列S1，…，SL。これは、一時的な計算のために用いられる。
（４）m行n列の混合比行列A。これは、信号分離の結果の一つである。
（５）m行T列の雑音行列N。これは、信号分離の結果の一つである。
【００６８】
なお、信号分離の結果の一つであるn行T列の源信号行列Sは、SLと同一視することができる。
【００６９】
また、漸化式による表現の理解を容易にするため、仮想的に、行列XをS0と同一視することとする。
【００７０】
さらに、以下では、混乱のない限り、行列名と行列の要素の値を記憶する記憶部１０５内での領域とを同じ記号で表記するものとする。
【００７１】
なお、L個の行列A1，…，ALは、所定の演算c(・,・)
c(A1,c(A2,c(A3,c(…,c(AL-1,AL)…))))
がm行n列の行列となるようなものであり、本実施形態では、c(・,・)として、行列の積を用いている。
【００７２】
したがって、本実施形態では、L個の行列の行数と列数を定める数列
n0 = m，n1，n2，…，nL-1，nL = n
が一意に定まり、Aiは、ni-1行ni列の行列であることになる。
【００７３】
図３は、本信号分離装置にて実行される信号分離処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００７４】
信号分離装置１００における処理が開始されると、行列X（すなわち、行列S0）に、入力となる観測信号の値を設定する（ステップＳ３０１）。
【００７５】
次に、行列S1，S2，…，SL-1，SLを適切な値で初期化する（ステップＳ３０２）。ここで、行列SLは行列Sと同一視することができる。
【００７６】
さらに、行列A1，A2，…，AL-1，ALを適切な値で初期化する（ステップＳ３０３）。
【００７７】
ステップＳ３０２およびステップＳ３０３における値の初期化は、上述した初期値による初期化のほか、種々の技術を適用することができる。本実施形態においては、これらの初期化処理は、ＣＰＵがＲＡＭ等と共働することによって実現される。
【００７８】
そして、繰返制御部１０４は、収束条件が満たされない間（ステップＳ３０８）、以下のステップＳ３０４〜ステップＳ３０８の処理を繰り返す（ステップＳ３０４）。収束条件については、反復終了条件同様種々のものを採用することができるが、当該繰返しにおける行列S1，…，SLおよび行列A1，…，ALの変化が極めて小さくなったときに、収束条件が満たされたものと考えるのが典型的である。
【００７９】
もっとも、適用分野によっては、繰返しの終端で判断される収束条件は常に真であることとしても良い。この場合、当該繰返しは１回だけ行われ、実際には単なる逐次処理を行うのみとなる。
【００８０】
したがって、繰返制御部１０４は、ＣＰＵがＲＡＭ等と共働することによって、実現される。
【００８１】
さて、当該繰返しの中で、繰返計算部１０２は、カウンタ変数iを、初期値1から終了値Lになるまで、１ずつ増やしながら、以下のステップＳ３０５〜ステップＳ３０７の処理を繰り返す（ステップＳ３０５）。
【００８２】
したがって、繰返計算部１０２は、ＣＰＵがＲＡＭ等と共働することによって、実現される。
【００８３】
すなわち、i番目の反復推測部１０１に、入力として、行列Si-1，Ai，Siを与えて、上記のような反復法の計算処理を行わせる（ステップＳ３０６）。
【００８４】
ステップＳ３０６における反復法の計算処理では、上述の通り、反復終了条件が満たされるまで反復を繰り返すが、いずれの反復終了条件を選択するかは、適用分野や目的に応じて適宜選択することができる。
【００８５】
また、i番目の反復推測部１０１に与えられるコスト関数Jiおよび反復終了条件(i)は、i = 1，…，Lのすべてにおいて同じものとしても良いし、異なるものとしても良い。
【００８６】
ステップＳ３０６の処理における反復法により「真の値」に近付く行列は、AiおよびSiである。そして、上記のように、記憶領域AiおよびSiに、反復推測部１０１における今回の推測結果が格納されることになる。
【００８７】
このようにして、反復推測部１０１における反復推測をi = 1，…，Lの間繰り返すと（ステップＳ３０７）、ステップＳ３０２、ステップＳ３０３において行列S1，…，SLおよび行列A1，…，ALに設定された初期値よりも、精度の高い値が、同じ領域に格納されることになる。
【００８８】
さて、この値を吟味することによって、収束条件が満たされたたか否かを判定し、収束条件が満たされていなければ、ステップＳ３０４に戻って繰り返しを続ける（ステップＳ３０８）。
【００８９】
一方、収束条件が満たされていれば、結果出力部１０３は、混合比行列Aを、
A = A1A2…AL-1AL
のように行列の乗算をすることによって求め（ステップＳ３０９）、雑音行列Nを、
N = X - AS
のように行列の演算をすることによって求め（ステップＳ３１０）、行列A，S (= SL)，Nを結果としてＲＡＭ等内に格納することによって出力して（ステップＳ３１１）、本処理を終了する。したがって、ＣＰＵがＲＡＭ等と共働して、結果出力部として機能することとなる。
【００９０】
さて、上記のような繰返しは、信号分離を以下のように行うことに相当する。なお、以下の式変形では、理解を容易にするため、雑音行列については表記を省略している。
X = 
S0 = A1S1；
S1 = A2S2；
S2 = A3S3；
…
SL-2 = AL-1SL-1；
SL-1 = ALSL
= ALS
【００９１】
これらをまとめると、以下のように表記することができる。
X = A1A2A3…ALS
= AS
【００９２】
ステップ３０９における乗算は、行列Aを上記のように求めていることに相当するのである。
【００９３】
（所定の行列の演算）
上記実施形態では、所定の行列演算c(・,・)として、行列の積を用いていた。すなわち、行列Zのi行t列の要素をZ[i,t]とし、行列Zの行数をrow(Z)、行列Zの列数をcol(Z)と書くとき、行列Z，Wであって、col(Z) = row(W)が成立する行列Z，Wについて、所定の演算は、
c(Z,W)[i,t] = Σk=1col(Z) Z[i,k]W[k,t]
と定義される。
【００９４】
c(・,・)として、行列のコンボリューション演算を考える場合は、２次元の行列（２階のテンソル）と３次元の行列（３階のテンソル）とを考慮した、いわゆるテンソル演算を行うことになる。このコンボリューション演算される行列を、混合作用素（mixing operator）と呼ぶ。
【００９５】
観測信号行列Xと源信号行列Sは、上記のように２次元の行列であるが、混合比行列Aは３次元の行列となる。３次元の行列の要素を、上記と同様に[・,・,・]の形式で表現することとし、また、テンソル演算の慣習にしたがって、要素が定義されていない範囲の値を０とおくこととし、Σの添字がテンソル内のインデックスとしてとりうる範囲をすべて走査した総和をとることとする。
【００９６】
すると、３階のテンソルAと２階のテンソルSとのコンボリューションは、［数１］のように定義される。
【００９７】
【数１】
2007298564.tif 000003
【００９８】
一方、３階のテンソルAと３階のテンソルBとのコンボリューションは、［数２］のように定義される。
【００９９】
【数２】
2007298564.tif 000004
【０１００】
また、非線型リンク関数を用いる場合、
c(A,S)[i,t] = f(Σk Z[i,k]W[k,t])
のように演算を定義する。関数f(・)としては、典型的には、ニューラルネットの分野でよく用いられるステップ関数の原点付近を滑らかにした関数を利用することができる。たとえば、
f(x) = 2 arctan(k x)/π
において、kを十分に大きくしたような関数である。ただし一般には、任意の非線型関数を適用することが可能である。
【０１０１】
（実験結果）
以下では、上記の実施形態と従来の手法とを比較する各種の実験結果について説明する。なお、以下の実験は、すべて計算機シミュレーションによっている。
【０１０２】
第１の実験は、複数の音源から発せられる音波を、近い位置に配置されたマイクで集めたときに相当する信号分離の様子を対比するものである。
【０１０３】
図４は、音源の波形の様子を示すグラフであり、図５は、当該音源から音波をマイクで集めた場合の源信号の波形の様子を示すグラフである。
【０１０４】
図４に示す音源波形に対して、条件数が１５,０００程度のヒルベルト行列を用いて混合を行うと、図５に示すような、互いに波形の類似した観測信号が得られる。
【０１０５】
図６は、L = 10として共役勾配法を用いて本実施形態の手法により４つの信号に独立成分分析を行った場合の波形のグラフであり、図７は、これに対して、従来の手法により４つの信号に独立成分分析を行った場合の波形のグラフである。
【０１０６】
従来の手法（図７）では、元の波形（図４）とはまったく異なる成分に分解がされてしまっているが、本実施形態の手法（図６）によると、元の波形（図４）に極めて近いものが得られていることがわかる。
【０１０７】
第２の実験は、雑音が大きい場合の信号分離の様子を示すものである。
【０１０８】
図８は、音源の波形の様子を示すグラフであり、図９は、当該音源から音波をマイクで集めた場合の観測信号の波形の様子を示すグラフである。
【０１０９】
図８中の上段a1に示すように、雑音レベルがかなり大きいため、図９に示すように、観測信号にも雑音が乗っていることがわかる。
【０１１０】
図１０は、L = 5として甘利のα-divergenceＮＭＦアルゴリズムを反復推測部において用いた本実施形態の手法により得られた波形のグラフであり、図１１は、ＳＩＲ値（Singnal to Interference Ratio）を示すグラフである。
【０１１１】
図８と対比すると、極めて類似したものが得られていることがわかり、また、ＳＩＲ値も４０ｄＢ〜５３ｄＢ程度と、性能が良いことがわかる。
【０１１２】
図１２は、NMF Lee-Seungアルゴリズムという従来の手法により得られた波形である。
【０１１３】
従来手法は、ＳＩＲ値が８ｄＢ未満となり、本実施形態の手法の性能の高さがわかる。
【０１１４】
第３の実験は、画像処理における適用である。
【０１１５】
図１３は、源信号となる画像を示す図であり、図１４は、観測信号に相当する画像を示す図であり、図１５は、L = 5として本実施形態の手法を採用した場合に得られる源信号の様子であり、図１６は、L = 2として本実施形態の手法を採用した場合に得られる源信号の様子であり、図１７は、NMF Lee-Seungアルゴリズムという従来の手法により得られた源信号の画像であり、図１８は、本実施形態の手法における信号のＳＩＲ値の値を示すグラフである。
【０１１６】
図１３に示すように、源信号は４つであり、図１４に示すように、これらを９個のチャンネルで観測する。
【０１１７】
L = 5として本発明の手法により独立成分分析すると、図１５に示すように、源信号がほぼ完璧に復元される。ＳＩＲ値は、図１８に示すように、４６ｄＢ程度である。
【０１１８】
一方、L = 2として本発明の手法により独立成分分析すると、図１６に示すように、分離は不十分であり、ＳＩＲ値も１５ｄＢ未満と低い。Lの値を増やすことの効果がよくあらわれている。
【０１１９】
従来手法による分離の結果は、図１７に示すようになり、やはり分離は不十分で、ＳＩＲ値は１０ｄｂ未満である。
【産業上の利用可能性】
【０１２０】
本発明によれば、独立成分分析等の信号分離技術において、精度をできるだけ向上し、収束をできるだけ速くするのに好適な、信号分離装置、信号分離方法、ならびに、これらをコンピュータもしくはディジタル信号プロセッサ上にて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１２１】
【図１】本発明の実施形態の一つに係る送信装置および信号分離装置の概要構成を示す模式図である。
【図２】本実施形態に係る信号分離装置の構成を示す模式図である。
【図３】本信号分離装置にて実行される信号分離処理の制御の流れを示すフローチャートである。
【図４】第１の実験における音源の波形の様子を示すグラフである。
【図５】第１の実験における当該音源から音波をマイクで集めた場合の源信号の波形の様子を示すグラフである。
【図６】第１の実験において、L = 10として共役勾配法を用いて本実施形態の手法により４つの信号に独立成分分析を行った場合の波形のグラフである。
【図７】第１の実験において、従来の手法により４つ信号に独立成分分析を行った場合の波形のグラフである。
【図８】第２の実験における音源の波形の様子を示すグラフである。
【図９】第２の実験における当該音源から音波をマイクで集めた場合の観測信号の波形の様子を示すグラフである。
【図１０】第２の実験においてL = 5として甘利のα-divergenceＮＭＦアルゴリズムを反復推測部において用いた本実施形態の手法により得られた波形のグラフである。
【図１１】第２の実験におけるＳＩＲ値（Singnal to Interference Ratio）を示すグラフである。
【図１２】第２の実験においてNMF Lee-Seungアルゴリズムという従来の手法により得られた波形である。
【図１３】第３の実験における源信号となる画像を示す図である。
【図１４】第３の実験における観測信号に相当する画像を示す図である。
【図１５】第３の実験においてL = 5として本実施形態の手法を採用した場合に得られる源信号の様子を示す図である。
【図１６】第３の実験においてL = 2として本実施形態の手法を採用した場合に得られる源信号の様子を示す図である。
【図１７】第３の実験において、NMF Lee-Seungアルゴリズムという従来の手法により得られた源信号の画像を示す図である。
【図１８】第３の実験における本実施形態の手法における信号のＳＩＲ値の値を示すグラフである。
【符号の説明】
【０１２２】
１００  信号分離装置
１０１  反復推測部
１０２  繰返計算部
１０３  結果出力部
１０４  繰返制御部
１０５  記憶部
【図１】
2007298564.tif 000005
【図２】
2007298564.tif 000006
【図３】
2007298564.tif 000007
【図４】
2007298564.tif 000008
【図５】
2007298564.tif 000009
【図６】
2007298564.tif 000010
【図７】
2007298564.tif 000011
【図８】
2007298564.tif 000012
【図９】
2007298564.tif 000013
【図１０】
2007298564.tif 000014
【図１１】
2007298564.tif 000015
【図１２】
2007298564.tif 000016
【図１３】
2007298564.tif 000017
【図１４】
2007298564.tif 000018
【図１５】
2007298564.tif 000019
【図１６】
2007298564.tif 000020
【図１７】
2007298564.tif 000021
【図１８】
2007298564.tif 000022