科学・技術
SVDを意識せずに導出する
Deriving SVD without even aiming at it (stillthinking.net)
要約
この記事は、数学における概念の理解と学習方法について考察し、特に線形代数の特異値分解(SVD)を、その最終的な形式からではなく、より直感的で自然な方法で導出することを試みています。著者は、伝統的な数学書が概念の構造を把握するための道筋を示さず、形式化された最終形を提示する傾向があると指摘し、応用数学の概念は特定の課題を解決するために生まれたという視点からSVDを解説しています。具体的な線形変換の例を通じて、基底の選択がいかに複雑な表現を生み出すかを示し、行列の対角化が可能な場合のメリットと、そうでない場合にSVDがいかに有用であるかの直感的な説明を行っています。
全文翻訳
免責事項:この記事の作成にAIは一切使用されていません。いかなる誤り、ぎこちない文章、奇妙な脱線も100%オーガニックで、放し飼いの、人間によるものです。
何かを実際に学ぶにはどうすればよいか?
私は長い間、数学における何かを学ぶ、あるいは把握するとはどういうことなのかを自問自答してきました。これは他の分野にも広げられると思いますが、数学は多くの概念において日常生活から特にかけ離れていることが多く、私にとっては(少なくとも)直感的で自然な理解、つまり概念の基礎的な構造を与え、将来的に詳細を自分で再構築できるような理解を得ることが困難です。私は、ある分野で一般的な構造を本当に捉えたという感覚を何度か経験しており、それによって現在の理解だけを頼りに表現したり事実を導き出したりすることができます。良い例の1つは、実解析での最初の経験です。最初は非常に混乱し、困難に感じましたが、しばらくすると主要な概念の構造を捉え、ほとんどの概念を自分で動かすことができるようになります。しかし、私が理解するのに時間がかかりすぎたことが1つあります。伝統的な数学の教科書は、構造を捉えたり、概念をより直感的で自然な方法で(後で再構築できるような方法で)把握するための道筋を示すのに失敗することが非常に多いのです。これは、ほとんどの数学の教科書が数学を最終的な形式化された形で提示しているためです。しかし、そこに至るまでの道のり、つまり多くの場合、混沌としていて、実験的で、試行錯誤の連続であった道のりを隠しているのです。このブログは、あなたがすでに数学の基本的な知識を持っていることを前提としています。すべてをゼロから教えるのは現実的ではありませんが、私の目標は、概念を把握するのに役立ったつながりのいくつかをここに書くことです。
どこから始めるか
私は線形代数(L.A)から始めることにしました。これは数学の中で最も適用可能でアクセスしやすい分野の1つです。中心的な線形代数の概念である特異値分解(SVD)を初めて知ったとき、それが何であるかを本当に理解するのに時間がかかりました。ほとんどの教科書は、通常、正式に述べられた最終的な結論から始めるため、読者には意味不明になり、それを簡単に説明することに失敗していると思います。そもそもなぜこれが作成されたのかという動機を紹介することが重要だと考えています。応用数学のほとんどのものは、誰かが解決しようとしていた特定の課題から生まれました。線形代数は、より高度な非線形分野よりも somehow 簡単であるだけでなく、微積分、情報理論、画像処理、機械学習など、他の多くの分野とつながっているため、始めるのに最適な場所です。それはある種の基本的または中心的な分野ですが、どこから始めても、十分に掘り下げれば他の分野とのつながりに到達すると思います。L.Aではそれがさらに顕著です。
SVDを意識せずに自然に導出してみましょう。
線形変換の行列A
同じ線形変換であっても、選択された入力基底と出力基底によって行列の表現は異なります。これを確認するために、意図的に単純な線形写像を考えます。x軸を3倍に引き伸ばし、y軸はそのままにします。
A(x,y)=(3x, y)
標準基底では、その行列は基底ベクトルがどこに着地するかを直接読み取ることができます。
M=(3001)
これ以上明確なことはありません。「x軸を伸ばす」だけです。次に、同じ写像を斜めに傾いた非正規直交基底で記述してみましょう。
P=(1112),P−1=(2−1−11)
この基底における同じ変換の行列はP−1MPP^{-1} M Pです。
P−1MP=(2−1−11)(3001)(1112)=(54−2−1)
同じ変換です。すべての実際のベクトルに対して同じ写像です。しかし、今ではスケーリング、シアリング、符号反転の任意の絡み合いのように見えます。これが単に「x軸を3倍に伸ばす」だけだとは誰も想像できないでしょう。複雑さは写像そのものではなく、基底にありました。
行列を対角化できる場合もあります。これは、A
の行列を対角化する新しい基底を選択するだけで可能です(これは、Aが固有ベクトル基底を許容する場合にのみ可能ですが、この事実は今のところ証明しません)。もちろん、すべての線形変換が固有ベクトルの基底を許容するわけではありません。実際、一部の線形変換は正方行列ですらありません(例えば、入力次元と出力次元が同じでない場合)。入力と出力が同じ次元空間に出力しない線形変換については、固有ベクトルについて語ることはできません。なぜなら、固有ベクトルはスカラー倍を除いて固定されているため、入力と出力が同じ次元に制限されることは明らかだからです。
行列を対角化できるとき、興味深いことが起こります。線形変換自体が、行列を表すために選択された基底のために、より複雑に見せかけられた単純な非一様スケールであるということが明確にわかります(これは、私たちが以前行った操作、つまり単純なスケールがより複雑な行列形式で表現できることを示した操作の逆です)。したがって、対角化可能な線形変換A
の行列M
を取り上げ、次のように記述します。
M=P−1DPM
すると、M
は対角行列と類似になります。したがって、潜在的に複雑なM
は、特殊な基底変換行列P
を除けば、行列の対角線上のいくつかの数値とそれ以外のすべてのゼロに過ぎません。これは、コンピュータに保存したり、行列の乗算を効率的に実行したりするのに最適です。データをP
の参照フレームに一度変換し、対角行列(簡単)を使用して何百万回も行列の乗算を行い、次にP−1
を使用して元のフレームに戻すことができます。この単純化は、線形変換A
から構造を抽出できたために可能です。
行列の対角化に失敗するのはいつか?
対角化可能な行列が、ある特殊な座標系で偽装されたスケールに過ぎないとしたら、線形変換が偽装されたスケール以上のものであれば、対角化に失敗します(実際、これはA
が固有ベクトルの基底を許容できないというのと同じことです。自分で証明してみてください)。例えば、A
が2次元の回転である場合、2つの独立した固有ベクトルを持ちません(実固有ベクトルはまったく持ちません。回転は平面内のすべての方向を動かします!)。A
が2次元のシアである場合も、同様の理由で対角化することはできません。では、対角化可能な線形変換で行ったのと同じ方法で、任意の線形変換から構造を抽出することはできるでしょうか?もしできれば、対角行列で行ったような利点が得られるかもしれません…
直感的に、N次元の単位球が一般的な線形変換によってどうなるかを見てみましょう。それは非単射である可能性があります。つまり、一部の方向は消滅する(0に潰れる、そのため球は円盤に平坦化される)可能性があります。他の方向を任意の値でスケールする可能性があります(そのため、球や円盤は楕円体や楕円になります)。他の方向を任意の軸周りに任意の角度で回転させる可能性があります。また、球を他の方向にせん断する可能性もあります(せん断された球は依然として回転した楕円体です)。この単純な事実は次のように書くことができます。
si ui=Avisiui=Avi
ここでsi
siはスカラー(伸縮係数)であり、ui
は単位出力方向です。これだけです。ui
とvi
を分離し、それらが固有ベクトルであるとはもはや要求しません。それらは単なる任意のベクトルです。上記の表現は新しい事実を導入するものではなく、単に任意の線形変換に何が起こるかを示しているだけですが、si
をスケールファクターとして、ui
を新しい回転方向として見れば、単位球がある方法で回転した楕円体へと写像されるという私たちの感覚を確かに捉えています。私たちの感覚は今、線形変換がいくつかの動作を行うかもしれないということです。