• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:独立成分分析(ICA)の絶対値復元)

独立成分分析(ICA)の絶対値復元

このQ&Aのポイント
  • 独立成分分析(ICA)について質問です。観測データの絶対値を使って推定データの絶対値も復元することはできるでしょうか?
  • 独立成分分析(ICA)では絶対値は復元できないのでしょうか?混合(分離)行列を推定できていれば、元データの絶対値は再現できると信じていますが、間違いでしょうか?
  • 現在試しているステップの4で詰まっています。3成分を主成分分析し、規格化してICAに投入し、推定された混合(分離)行列要素で成分分解していますが、絶対値の復元がうまくいきません。

質問者が選んだベストアンサー

  • ベストアンサー
  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

 3人がわいわい喋って声s[j,t](j=1,2,3; tは時刻)が混ざっている。その周りに3本のマイクi(i=1,2,3)をばらばらに置いて録音したデータx[i,t]がある。各人の声jがマイクiに入って来るゲインは未知で、これをA[i,j]とすると、   x[i,t] = Σ{j=1,2,3}A[i,j] s[j,t] である。x[i,t] (i=1,2,3) を   x[i,t] = Σ{j=1,2,3}P[i,j] q[j,t] となるように分解し、ただしq[j,t] (j=1,2,3)は互いに独立で、規格化されている。これが仰る所のICAでしょうか。  もし理想的に旨く分解できたとすると、係数λ[i] (i=1,2,3)があって、   s[j,t] = λ[j] q[j,t] となっているはず。つまり、λ[i] (i=1,2,3)を対角成分とする3×3の対角行列をΛとすると、   PΛ = A である。  ここで、Λが分からない、ということが、仰る所の「絶対値が分からない」( |x| と書く絶対値のことじゃなくて、振幅(符号を含む))の意味でしょうか?  だとすると、上記の式を見れば、ΛP = AでありさえすればPはどうにでもなるわけで、言い換えれば、「誰が一番大声で喋っていたか」を知りたくても、「マイクがどこにあったか」という情報(つまりはΛの推定値)がなくちゃ再現不可能。  では他に何か手がかりはないか。たとえば、録音に含まれる背景ノイズはどのマイクでもほぼ同じである、と仮定すると、sの背景ノイズのレベルが揃うようにΛを推定する、ということができそうです。このためには、まずqをさらに発話者の音声と背景ノイズとに分離しなくてはならない。たとえば遠くから高周波成分を含む鳥の囀りが聞こえ、あるいはダンプカーが極低音の騒音を立てていたとすると、フィルタを使って背景ノイズが取り出せるかもしれない。  これができたとして、しかし3つのqベクトルは互いに独立なのだから、背景ノイズも独立成分に分解されて3つのqベクトルに振り分けられている。だからqのノイズ同士の相関を取っても何も出ない。代わりに、3つのqベクトルそれぞれに含まれるノイズの統計量(振幅の分散とか、エントロピーとか)を比較すれば、もしかすると、Λが推定できるかも。もちろん、ICAの前処理で背景ノイズを除去してしまうと、この手は使えませんが。

61686168
質問者

お礼

回答ありがとうございます。 残念ながら絶対値(信号の振幅)を情報なしで導出することは原理的に できないということですね。ノイズ量を比較するという提案も実用的には おもしろそうですが、今の私の要求にはこたえられなさそうです。 最も単純に二成分の信号の混合を考えて行列成分を陽に書きながら 比較してみましたが、混合信号(x)の情報だけでは振幅を含めた 元信号(s)は復元できなさそうですね。。。 世の中でICAを使っている人々はどうやって復元しているのでしょうか? 元信号(s)に関する情報はICAとは別のところから引っ張ってきて (回答者様の例ではΛの情報を他からもってきて)ICAの結果と組み合わせている、 ということでいいのでしょうか? ご存知でしたらご教授よろしくお願いします。

61686168
質問者

補足

どのコメントも重要なのですが、とりあえず一番最初の回答を ベストに選びました。 考え直すと今回の私の質問は 「ICAで推定した独立成分から、元信号の振幅(平均値と分散)は解析的に導出できますか?」 ということでした。 その答えは解析的には無理で、何かしらのモデルを使えば導出できる可能性がある、 ということになりそうです。

その他の回答 (2)

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.3

> 脳波  脳味噌の中で生じている電流が漏れ出てきたのを、脳味噌・脳脊髄液・硬膜・頭蓋骨・頭皮・電極のペーストまで介して引き出すんですから、(信号源を分離するとかしないとか以前に)個々の電極における絶対値の測定がそもそも無理です。(分離したか分離しないかに関わらず、)振幅については、安静時の信号を使って各電極における基準レベルを決めれば、以後は、たとえばタスクを課すと安静時に比べて振幅が大きくなった、小さくなったという相対変化を見る事ならできますし、それで十分。診断上は、振幅よりまず周波数成分の構成を見ますよね。(α波とかβ波とか言ってるやつ。)なお、脳味噌の絵の上にカラーで活動性を表示したりする脳波トポグラムは、「ある電極で取った信号はその近くで生じているだろう」という仮定のもとに色を塗っているだけの単純なものです。  ICAで脳波信号の分離をやっている? 信号源がどっさりあるんで、意味のある結果が得られるのかどうか、いやどうも怪しげだなあ。筋電位によるノイズや背景ノイズの除去にICAを使う、というのならアリかなと思いますが。  完全に脱線しますけど、脳磁図なら、上記のような介在物の影響なしに信号が測れる。けれども、脳味噌内のどこにどんな電流双極子がいくつあろうとも、「脳表だけに分布している沢山の電流双極子」によっても全く同じ磁場が作れる。すなわち、逆問題を解くことが原理的に不可能という、これは電磁気の基本的な性質なんです。なので脳磁図では、「majorな電流双極子が1個あるはせいぜい数個だけある」というような(ちょっとムリっぽい)仮定を置いて、その位置・方向・大きさを計算しているんです。

61686168
質問者

お礼

ななな、なんと、、、脳波・脳磁図ってそんな適当ってか ざっくりした定性的解析だったのですね、、、!! 知らなかった、、、 なんだよーwebとか教科書ではあんなに格好良く書いてるくせにー、 と思ったものの絶対値で求めてますとは一言も書いてなかったか、、、 ICAでは絶対値振幅は解析的には復元できないということが わかったわけですが、私が扱うのはせいぜい2,3成分なので 提示して頂いた手法を参考にしてがちゃがちゃと発見法的になら それらしい値を探すことができるかもしれません。 単なる線形結合の問題なので、解析的にはできない、 ということを認めてしまえばそれなりの方法を見つけられそうです。 (今までのひとは疑問に思わなかったのかなあ、、、?  検索しても同様の質問は見つからないし、、、) たくさんの含蓄のある回答ありがとうございました。 回答者さまのような方が身近にいればいろいろ質問できるのに、、、 と思いました。お陰様で疑問が氷解しました。

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.2

ANo.1へのコメントについてです。 > 原理的にできない  どの入力にも共通に入って来る背景ノイズというのは、ほとんどの場合にありそうに思いますが…。 > どうやって復元しているのでしょうか?  振幅まで復元する必要がある応用って、やっぱり思い当たらないんですが、それはさておき…  音声の場合、「同時に2~3人から話しかけられても、どの方向からの音声かをそれぞれ区別し、かつ、その発話内容を分離する」という技術は既に出来てますよね。  発話者とマイクとの距離の違いによる(音速が有限であるために生じる、1mあたり約 3ms もある)遅延の情報から、マイクアレイ(その空間配置は分かっているものとする)に対する発話者の位置を測定することが出来ます。方向だけではなく位置の情報まで欲しいので、マイク間の距離がかなり広くないといけません。単一音源なら、マイクの信号の低周波成分を捨てて、これを少しずつイロイロに遅延させたものの相関を見るだけでイケる。複数の話者がいる場合(やったことないのですが)も、あるひとりの話者がある位置pにいると仮定して遅延させたものを使って分析し、pを色々動かしてみると、分離された信号が最もうまく取り出せるような最適のpが見つけられるでしょう。(分離結果のひとつのチャネルのエントロピーが極値を取る、などの指標で測れそうです。)で、発話者の位置pが分かれば、音量の絶対値を推定することも当然できている。  この話をちょっと一般化して定式化すると、発話が混合する現象のモデル   f[j](t) = ΣA[j](p[i]) s[i](t-d(p[i],j)/v)  に対する逆問題、ということになりましょう。ここにf[j](t)はマイクjが収集した既知の信号、未知のs[i](t)は音源iの出す信号、未知のp[i]は音源iの位置、既知の関数d(p,j)は位置pとマイクjの距離、定数vは音速、既知の関数A[j](p)は位置pの音源に対するマイクjの感度(無指向性マイクならA[j](p) = d(p,j)^(-2)とか)。  ただしsについて、何か適切な束縛条件が必要です。(これはICAでも同じ事ですよね。)たとえば、長時間で見ると相互にほぼ無相関だとか、それぞれ周波数帯域が決まっているとか、短時間で見ると(無声音以外における)周波数成分の構成が倍音列になっているとか、自己相関関数が大体分かってるとか。もっとラジカルに行くと、「有意味の音声として認識可能である」という束縛条件もアリでしょう。  この逆問題を解くには、非線形ですから結局の所、モデル(順問題)の計算を繰り返して、最適解(s,d)を探索する、という形にならざるを得ない。なので、「束縛条件を良く満たしつつfを良く再現した」ということを測る評価関数を決めておかなくてはなりません。ここが難しそうですが。  もちろん、束縛条件だけを頼りに漠然と探索していたのではなかなか収束しない。そこで、「pを与えた時の、束縛条件をソコソコ満たすようなベクトル関数sの近似値(定数倍を除く)」を速く見つけるための手段としてICAを使うという案は、十分アリだし有力そうだと思います。(pと、sの近似値(定数倍を除く)を決めれば、定数倍の決定は単なる線形問題です。)sの分離には遅延の情報を利用しようというのが普通の発想だろうと思いますが、ICAなら音源の位置がかなり近接している場合でもマガリナリにも分離できるし、低周波成分に強いという利点がある。両方の特長をうまく活かすような工夫も可能ではないでしょうか。

61686168
質問者

お礼

丁寧な回答ありがとうございます。 そうですか、ノイズを使うのが一番手っ取り早いですかねえ、、、 でも元信号を知らない状況で信号とノイズを分けられるのでしょうか。 特定の成分だけにノイズが乗ってしまうとお手上げのような。 またさまざまな解決方法の提示もありがとうございます。 ですがある意味もうこれはICAとは別の問題になってしまっていますね。 そういう意味では、今回のこの私の質問に対する回答は「絶対値は復元できない」 ということになりそうです。(もちろん提示していただいたような方法を 使えば模型依存的には導出できる可能性はあるとは思いますが、 解析的には絶対値が導出できないという意味です。) >振幅まで復元する必要がある応用って、やっぱり思い当たらないんですが、それはさておき… そうなのですか!? よく知りませんが、ICAで脳波を調べたりすると聞きますが、 これは各部位での定性的な波形を見てるだけなのでしょうか。 絶対値で各部位の振幅を比較しないとどこが最も活性化してるとか 議論できないんじゃないんですかねえ。うーむ。

関連するQ&A