← 一覧へ戻る

2026-05-10

行列方程式の情報不足やランク不足に対する処置

研究で方程式の数が足りない行列方程式やランク不足に悩まされることが増えてきたため、その取り扱い方をまとめます

数学線形代数

考えること

𝑚×𝑛(𝑚<𝑛)の行列𝐴に対して、方程式

𝒚=𝐴𝒙

を考えてみる。つまり、𝒚𝑚,𝒙𝑛

この方程式において、既知の𝒚𝐴から未知の𝒙を復元することを目標とする。

もし𝒙𝑛を一意に復元したいなら、本来は𝑛個分の独立な情報が必要になる。 しかし、今観測できている方程式の数は𝑚本しかなく、𝑚<𝑛である。 したがって、単純な逆行列による解法は使えない。困った。

まずは、行列𝐴の行がすべて独立である場合、つまり

rank𝐴=𝑚

である場合を考える。このとき、次元定理より

dimker𝐴=𝑛rank𝐴=𝑛𝑚

となる。

つまり、𝒚𝐴が与えられても、𝒙は一意には定まらず、 𝑛𝑚次元分の自由度が残ってしまう。 言い換えると、観測された𝑚本の方程式だけでは、𝒙のうち𝑛𝑚次元分の情報が見えていない。

厳密には...

上では「解の次元」という言い方をしているが、実際の解集合は以下の式で表されるアフィン空間となる。 𝒙0はこの方程式の特解で、何か一つでも方程式を満たすベクトルが見つかればそれを採用してよい。(線形な方程式の解の構造はだいたいこうでしょ)

𝒙=𝒙0+ker𝐴

ここで重要なのは、ker𝐴方向の成分は𝐴をかけると消えてしまうという点である。 実際、任意の𝒗ker𝐴について、

𝐴(𝒙0+𝒗)=𝐴𝒙0+𝐴𝒗=𝒚

となる。

したがって、𝒙0ker𝐴の成分をどれだけ足しても、観測される𝒚は変わらない。 この意味で、ker𝐴は「観測からは区別できない方向」を表している。

本記事では、このように𝑚<𝑛で方程式の本数が足りない状況において、 残ってしまった𝑛𝑚次元分の自由度をどのように扱うかを考える。

さらに実際の応用、例えばRLNCやMIMOなどのような通信ネットワーク・信号処理の文脈では、 データの欠損や線形従属な情報の受信などにより、 行列𝐴が最大ランクを満たさないケースもしばしば発生する。 その場合には、そもそも独立な情報が𝑚本分すら得られていないことになり、 不足する自由度はさらに大きくなる。

仮定

本記事では、以下の条件を仮定として進めていく。

  • 観測された𝒚は、ある真のベクトル𝒙から生成されたものとする。 つまり、

    𝒚=𝐴𝒙

    を満たす𝒙が存在すると仮定する。 言い換えると、

    𝒚Im𝐴

    である。

  • まずはノイズの影響は考えず、方程式𝒚=𝐴𝒙を厳密に満たす解が存在する場合を考える。

  • 追加の独立な方程式が十分に集まり、拡張された係数行列𝐴̃

    rank𝐴̃=𝑛

    を満たせば、𝒙は一意に復元できるものとする。

何が足りていないのか

いま、未知ベクトル𝒙𝑛次元の情報を持っている。 一方で、観測として得られている𝒚𝑚次元であり、𝑚<𝑛である。

したがって、観測𝒚だけから𝒙のすべてを決めることはできない。 最大ランクrank𝐴=𝑚の場合であっても、

dimker𝐴=𝑛𝑚

であるから、𝑛𝑚次元分の自由度が残る。

この𝑛𝑚次元分が、今回「どうにかして埋めたい」部分である。

ただし、ここでいう「埋める」には二つの意味がある。 一つは、本当に追加の情報を集めて、足りない方程式を補うという意味である。 もう一つは、情報そのものは足りないままだが、何らかの仮定や基準を追加して、 無数にある解の中から一つを選ぶという意味である。

前者は、例えば通信で追加のパケットを受信することに対応する。 後者は、例えば「ノルムが最小の解を選ぶ」「疎な解を選ぶ」「非負な解だけを考える」といった制約を入れることに対応する。

方針1:追加の情報を集める

最も直接的な方法は、不足している情報を追加で集めることである。 これは、行列𝐴に新しい行を追加していくことに対応する。

例えば、新しく一つの方程式

𝑦𝑚+1=𝒂𝑚+1𝑇𝒙

が得られたとする。 このとき、もとの方程式は

(𝒚𝑦𝑚+1)=(𝐴𝒂𝑚+1𝑇)𝒙

のように拡張される。

ここで重要なのは、新しく得られた方程式が既存の方程式と独立であるかどうかである。 もし𝒂𝑚+1𝑇が、すでにある𝐴の行ベクトルたちの線形結合で表されるなら、 方程式の本数は増えてもランクは増えない。

つまり、見かけ上は情報が増えたように見えても、実際には新しい情報は増えていない。

逆に、新しく得られた方程式が既存の方程式と独立であれば、係数行列のランクは増える。 このようにして独立な方程式を追加していき、最終的に拡張された係数行列𝐴̃

rank𝐴̃=𝑛

を満たせば、ker𝐴̃={𝟎}となり、𝒙は一意に定まる。でも、私の研究ではリアルタイム性を追求しているため、こんなことはできない。

RLNCの文脈では、これは「十分な数の線形独立な符号化パケットを集めるまで復号を待つ」ことに対応する。 受信したパケットの本数が多くても、それらが線形従属であれば復号には不十分である。 一方で、独立なパケットが𝑛本集まれば、元の𝑛個のパケットを復元できる。

方針2:今ある情報だけで解を一つ選ぶ

しかし、常に追加の情報が得られるとは限らない。 通信路の制約、欠損、観測コストなどの理由により、𝑚本の方程式しか使えない場合もある。

この場合、𝒚=𝐴𝒙を満たす解は無数に存在する。 したがって、観測だけから真の𝒙を完全に特定することはできない。

そこで、次に考えるのは「どの解を代表として選ぶか」である。

例えば、解集合

𝒙=𝒙0+ker𝐴

の中から、ノルムが最も小さいものを選ぶという方針がある。 これは、余計な成分をできるだけ含まない解を選ぶという考え方である。

このような解は、擬似逆行列𝐴+を用いて

𝒙=𝐴+𝒚

と表される。

この解は、𝒚=𝐴𝒙を満たす解の中で、

𝒙2

が最小となる解である。

つまり、足りない𝑛𝑚次元分の自由度を「ノルムが最小になるように」埋めていると見ることができる。やっぱり困った時は最小二乗法。

方針3:事前情報を使う(私の研究の本筋!)

事前情報とは何か

別の考え方として、𝒙について何らかの事前情報がある場合には、 その情報を使って解を選ぶことができる。

事前情報とは、方程式𝒚=𝐴𝒙そのものからは得られないが、 対象についてすでに知っている性質や、別の仕組みから得られる予測のことである。

例えば、「この値は急には変わらない」「多くの成分は0である」 「成分は非負である」「前時刻の状態からだいたい予測できる」といった情報は、 観測だけでは足りない自由度を埋めるための手がかりになる。

つまり、方程式だけでは足りない部分を、問題固有の知識によって補うという方針である。

例1:推測航法を事前情報として使う

ここで、事前情報を使う例として推測航法を考えてみる。

推測航法では、現在の位置や状態を観測だけから決めるのではなく、 一つ前の時刻の状態と、その間に加わった入力や移動量から現在の状態を予測する。 例えば、時刻𝑡における未知の状態を𝒙𝑡とすると、 前時刻の推定値𝒙̂𝑡1と入力𝒖𝑡を用いて、

𝒙𝑡𝐹𝒙̂𝑡1+𝐵𝒖𝑡

のように予測できる場合がある。

ここで

𝒙prior=𝐹𝒙̂𝑡1+𝐵𝒖𝑡

とおくと、𝒙priorは 「観測する前に、たぶんこのあたりにいるだろう」と予測された値である。

一方で、観測から得られる方程式は

𝒚=𝐴𝒙𝑡

である。 しかし、𝑚<𝑛であるため、この観測だけでは𝒙𝑡を一意に決めることはできない。

そこで、観測を満たす解の中から、推測航法による予測値に最も近いものを選ぶことを考える。 つまり、

min𝒙𝑡𝒙𝑡𝒙prior22subject to𝐴𝒙𝑡=𝒚

という問題を考える。

これは、解集合

𝒙𝑡=𝒙0+ker𝐴

の中から、推測航法で得られた予測値𝒙priorに最も近い点を選ぶ、という意味である。

つまり、観測だけでは決まらないker𝐴方向の自由度を、 「前時刻からの運動モデルではこのあたりにいるはず」という事前情報で埋めていると見ることができる。

もし観測にノイズが含まれる場合には、等式制約として扱うのではなく、

min𝒙𝑡(𝐴𝒙𝑡𝒚22+𝜆𝒙𝑡𝒙prior22)

のように書くこともできる。

第一項は、観測𝒚にどれだけ合っているかを表す。 第二項は、推測航法による予測𝒙priorからどれだけ離れているかを表す。 𝜆>0は、この事前情報をどれくらい信用するかを決めるパラメータである。

𝜆を大きくすると、推測航法による予測をより強く信じることになる。 逆に𝜆を小さくすると、観測の方をより重視することになる。

ただし、推測航法による予測はあくまで予測であり、真の値そのものではない。 移動量の誤差やセンサのズレが積み重なると、予測値は少しずつ真の状態からずれていく。 そのため、推測航法を使う場合には、 「予測を絶対に正しいものとして固定する」のではなく、 「観測だけでは足りない部分を補うための柔らかい制約」として使うのが自然である。

この例では、足りない𝑛𝑚次元分の自由度を 「過去の状態と運動モデルから見て自然な方向に」埋めていると解釈できる。

例2:疎性を事前情報として使う

例えば、𝒙の多くの成分が0であると分かっているなら、 疎な解を選ぶのが自然である。 この場合、単にノルム最小の解を選ぶのではなく、 非ゼロ成分が少ない解を優先する。

理想的には、

min𝒙𝒙0subject to𝐴𝒙=𝒚

のような問題を考えることになる。 ここで𝒙0は、𝒙の非ゼロ成分の数を表す。

ただし、この問題はそのままでは扱いにくいため、実際には𝐿1ノルムを用いて

min𝒙𝒙1subject to𝐴𝒙=𝒚

のような形に緩和して考えることが多い。

この場合、足りない𝑛𝑚次元分の自由度を「なるべく疎になるように」埋めていると解釈できる。

同じように、𝒙の成分が非負であることが分かっているなら、

𝒙𝟎

という制約を加えることができる。 また、成分の大きさに上限がある、滑らかである、整数である、などの情報があれば、 それらも解を選ぶための追加条件として使うことができる。

方針4:正則化で安定な解を選ぶ

実際のデータでは、観測にノイズが含まれることも多い。 その場合、

𝒚=𝐴𝒙

を厳密に満たす𝒙が存在しないこともある。

このときは、方程式を完全に満たす解ではなく、

𝐴𝒙𝒚

となるような解を考える。

代表的には、残差

𝐴𝒙𝒚22

を小さくする最小二乗法を考える。 しかし、𝑚<𝑛のままでは最小二乗解も一般には一意に定まらない。

そこで、解の大きさを抑える項を加えて、

min𝒙(𝐴𝒙𝒚22+𝜆𝒙22)

のような問題を考える。 ここで𝜆>0は正則化の強さを表すパラメータである。

これは、観測にできるだけ合うようにしつつ、解が大きくなりすぎないようにする方法である。 言い換えると、足りない自由度を「解が安定になるように」埋めていると見ることができる。

𝜆を大きくすると、解の大きさを抑える効果が強くなる。 一方で、𝜆を小さくすると、観測𝒚により強く合わせることになる。

したがって、正則化は「観測への適合」と「解の安定性」のバランスを取る方法である。

ランク不足の場合

ここまでは、基本的に𝐴が最大ランク

rank𝐴=𝑚

を持つ場合を考えてきた。

しかし実際には、受け取った方程式が互いに線形従属であるなどの理由により、 𝐴が最大ランクを持たない場合がある。 このとき、

𝑟=rank𝐴<𝑚

とおくと、

dimker𝐴=𝑛𝑟

となる。

つまり、方程式の本数は𝑚本あったとしても、独立な情報は𝑟本分しかない。 そのため、不足している自由度は、本来期待していた𝑛𝑚ではなく、

𝑛𝑟

まで増えてしまう。

この意味で、ランク不足とは「ただでさえ𝑚<𝑛で情報が足りない状況において、 さらに有効な情報量が減ってしまう現象」と解釈できる。

通信の文脈で言えば、RLNCでは受信した符号化パケットの本数が十分に見えても、 それらの係数ベクトルが線形従属であれば、元のパケットを復元するには不十分である。 また、MIMOでは通信路行列のランクが低いと、複数の送信ストリームを受信側で十分に分離できない。

したがって、ランク不足が起きている場合には、単に方程式の本数を見るのではなく、 実際にどれだけの独立な情報が得られているか、つまりrank𝐴を見る必要がある。

まとめ

𝑚×𝑛(𝑚<𝑛)の行列𝐴に対して

𝒚=𝐴𝒙

を考えると、未知ベクトル𝒙𝑛次元であるのに対して、 観測として得られる方程式は𝑚本しかない。

そのため、𝐴が最大ランクrank𝐴=𝑚を持つ場合であっても、

dimker𝐴=𝑛𝑚

となり、𝑛𝑚次元分の自由度が残る。

この不足した自由度を扱う方法は、大きく分けて二つある。

一つは、追加の情報を集める方法である。 これは、新しい独立な方程式を追加し、係数行列のランクを𝑛まで上げることに対応する。

もう一つは、現在得られている情報だけを使い、 追加の基準や仮定によって解を一つ選ぶ方法である。 最小ノルム解、疎な解、非負制約付きの解、正則化された解などは、 すべてこの考え方に含まれる。

さらに、𝐴がランク不足である場合には、 独立な情報の数は𝑚ではなくrank𝐴=𝑟となる。 このとき、不足する自由度は𝑛𝑟となり、問題はさらに不定になる。

したがって、劣決定な線形方程式を扱うときに重要なのは、 単に方程式の本数を見ることではなく、 どれだけの独立な情報が得られているか、 そして足りない自由度をどのような基準で補うかである。

後記

図が何もなくて抽象的な話ばかりだとAIの出力をただ眺めているのと変わらないですね。この記事のレベルならまだAIと対話していた方が有意義かもしれないです。以後、もっとわかりやすく書けるようにがんばりますね。