- 深度學習與大模型基礎
- 段小手
- 1054字
- 2025-03-27 18:19:12
2.7 奇異值分解
奇異值分解 ( Singular Value Decomposition, 簡稱SVD) 是線性代數中的一種重要技術。它可以將任意矩陣分解成三個部分的乘積, 即A=U∑VT, 其中A是一個m×n的實數或復數矩陣, U 和 V 是兩個列正交矩陣 (也就是說, 它們的列向量兩兩正交且長度為1) ,∑是一個m×n的對角矩陣, 對角線上的元素稱為奇異值。
具體來說, 對于一個m×n的矩陣A, 我們可以找到兩個列正交矩陣U和V, 以及一個對角矩陣∑, 使得A=U∑VT。其中, U的列向量組成了A的左奇異向量, V的列向量組成了A的右奇異向量, 而∑的對角線上的元素則表示A在這些奇異向量方向上的奇異值。
舉個常見的例子——假設你正在學習一門課程, 考試之后你得到了若干個分數作為成績。這些分數可以被表示為一個向量 (也就是一列數值)。現在假設你要分析所有同學的成績, 你需要把這些向量放到一個矩陣中。這個矩陣的行表示不同的學生, 列表示不同的考試題目。
但是你發現這個矩陣非常大, 而且很多的數據都是冗余的或者無用的。例如, 某些學生可能從來沒有考過某個題目, 某些題目可能沒有任何學生答對, 等等。此時, 你希望找到一種方法, 壓縮這個矩陣并提取出最重要的信息。
這時候, 奇異值分解就可以派上用場了。它可以將一個很大的矩陣分解成三個部分的乘積, 其中第一個矩陣U包含最重要的行信息, 第二個矩陣∑包含每個行向量的重要程度, 而第三個矩陣V則包含最重要的列信息, 就像圖2-17所示的這樣。

圖2-17 奇異值分解, 就像把全校學生的成績單分解成U、∑、 V三個矩陣
換句話說, 通過奇異值分解, 我們可以用更小的矩陣來表示原始矩陣, 并從中提取出最重要的信息。這個過程就相當于對成績進行降維, 只保留最重要的因素, 而忽略一些無用或冗余的信息。
類似的例子還有很多, 比如在圖片壓縮中, 我們可以用奇異值分解來找到圖像的主要特征, 從而把圖像壓縮成更小的尺寸。在音頻處理中, 我們也可以用奇異值分解來提取音頻信號的主要特征, 從而實現音頻降噪、語音識別等功能。
原理輸出2. 17
為了幫助大家更好地理解奇異值分解的概念, 請大家在ChatGPT的幫助下, 錄制一個長度約為2分鐘的短視頻, 介紹什么是奇異值分解。
小貼士
可以參考的ChatGPT提示詞如下。
“請簡要介紹什么是奇異值分解。”
“請結合生活中的例子, 介紹奇異值分解的概念。”
“假設你是一位大學老師, 請用輕松易懂的語言向學生講解奇異值分解。”
實操練習2. 17
為了讓大家可以用代碼的形式學習奇異值分解, 接下來大家可以讓ChatGPT生成代碼演示, 并在Colab新建一個Notebook文件運行這些代碼。
小貼士
要讓ChatGPT生成代碼, 可以參考的提示詞如下。
“請用Python演示奇異值分解, 需要可視化。”
“用Python可視化的方法演示奇異值分解。”