الرئيسية / LA 101 / الوحدة 7 / الدرس 3
وضع القصص

تحليل القيم الشاذة (SVD)

تحليل أي مصفوفة A = UΣVᵀ — يعمل مع أي شكل وأي رتبة، ويكشف الهندسة الخفية، ويقود ضغط الصور واختزال الأبعاد وعلم البيانات الحديث.

~20 دقيقة قراءة و7 · د3 متوسط

ما هو تحليل القيم الشاذة؟

تحليل القيم الشاذة (SVD) هو أقوى تحليل مصفوفي وأكثره عمومية في الجبر الخطي. خلافاً لتحليل LU الذي يتطلب مصفوفة مربعة، أو تحليل QR الذي يتطلب أعمدة مستقلة خطياً، فإن SVD يعمل مع أي مصفوفة بأي شكل وأي رتبة. كل مصفوفة A من الأبعاد m × n — حتى المفردة أو المستطيلة — يمكن كتابتها على الشكل A = UΣVᵀ، حيث U و V مصفوفتان متعامدتان وΣ مصفوفة قطرية من الأعداد غير السالبة.

القيم الموجودة على قطر Σ تُسمى القيم الشاذة للمصفوفة A، وتُرتَّب تنازلياً: σ₁ ≥ σ₂ ≥ … ≥ σₗ ≥ 0، حيث l = min(m, n) هو عدد القيم الشاذة. أعمدة U هي المتجهات الشاذة اليسرى وأعمدة V هي المتجهات الشاذة اليمنى. معاً، توفر صورة هندسية كاملة لما تفعله A بأي متجه: تدوير (أو انعكاس) عبر Vᵀ، ثم تمدد على طول r من المحاور المستقلة بمقدار القيم الشاذة، ثم تدوير (أو انعكاس) ثانٍ عبر U.

يكشف SVD بنية المصفوفة الحقيقية أكثر من أي تحليل آخر. من تحليل واحد تحصل على الرتبة، ورقم التكييف، والفضاءات الجوهرية الأربعة (فضاء الأعمدة، وفضاء الصفوف، وفضاء العدم، وفضاء العدم الأيسر)، وأفضل تقريب منخفض الرتبة. وهو الأساس الرياضي لتحليل المكونات الرئيسية، وضغط الصور، وتحليل الدلالات الكامنة، وتقليل الأبعاد.

العوامل الثلاثة: U و Σ و V

لمصفوفة A من الأبعاد m × n، يكتب SVD الكامل A = UΣVᵀ حيث:

تحليل القيم الشاذة
A = U \Sigma V^T, \quad U^T U = I_m, \quad V^T V = I_n, \quad \Sigma = \mathrm{diag}(\sigma_1, \sigma_2, \ldots, \sigma_l), \quad \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_l \geq 0
A من الأبعاد m × n، وU متعامدة m × m، وΣ قطرية m × n بقيم σ₁ ≥ σ₂ ≥ … ≥ 0 على القطر، وV متعامدة n × n. عدد القيم الشاذة غير الصفرية يساوي رتبة r للمصفوفة A. يتضمن "SVD الرفيع" أو "الاقتصادي" فقط r قيمة شاذة غير صفرية والأعمدة r المقابلة من U و V.

هناك أيضاً صيغة "رفيعة" أو "اقتصادية" من SVD: تُقلَّم U إلى m × r فلا تبقى فيها إلا المتجهات الشاذة اليسرى المقابلة للقيم الشاذة غير الصفرية، وتُقلَّم Σ إلى r × r فلا تبقى منها إلا الكتلة القطرية غير الصفرية، وتُقلَّم V إلى n × r. الصيغة الرفيعة تحقق A = UΣVᵀ تماماً كما تحققها الصيغة الكاملة، لكنها لا تهدر مساحة على القيم الشاذة الصفرية. وعملياً تمنحك numpy.linalg.svd وscipy.linalg.svd معامل full_matrices لتختار بين الصيغتين.

التفسير الهندسي: تدوير ← تمدد ← تدوير

لـ SVD A = UΣVᵀ معنى هندسي جميل. عندما تعمل A على متجه x، يحدث التحويل في ثلاث مراحل:

  1. Vᵀ يُدوّر (أو يعكس) المدخل. لأن V متعامدة، فإن الضرب في Vᵀ هو حركة صارمة — تحافظ على جميع الأطوال والزوايا. تُعرّف المتجهات الشاذة اليمنى v₁، …، vₙ نظام إحداثيات في فضاء الدخل.
  2. Σ تمدد على طول المحاور الإحداثية. بعد التدوير إلى قاعدة المتجهات الشاذة اليمنى، تُقاس كل إحداثية بالقيمة الشاذة المقابلة σᵢ. تُضخَّم الاتجاهات ذات القيم الشاذة الكبيرة؛ الاتجاهات ذات σᵢ = 0 تنهار إلى صفر.
  3. U يُدوّر (أو يعكس) المخرج. تُعرّف المتجهات الشاذة اليسرى u₁، …، uₘ نظام إحداثيات في فضاء الخرج، والضرب في U حركة صارمة أخرى.
توسيع حاصل الضرب الخارجي
A = \sum_{i=1}^{r} \sigma_i \, u_i v_i^T = \sigma_1 u_1 v_1^T + \sigma_2 u_2 v_2^T + \cdots + \sigma_r u_r v_r^T
كل مصفوفة A هي مجموع r مصفوفات من الرتبة الأولى σᵢuᵢvᵢᵀ، كل منها مبنية من زوج من المتجهات الشاذة مضروباً في القيمة الشاذة المقابلة. الحد الأول σ₁u₁v₁ᵀ يلتقط "الاتجاه" المسيطر في A؛ الحدود اللاحقة تضيف تفاصيل أدق. قطع هذا المجموع عند k حدود يعطي أفضل تقريب من الرتبة k لـA.

هذه النظرة عبر حاصل الضرب الخارجي مفيدة جداً. تقول إن A تؤثّر على أي متجه x بثلاث خطوات: تُسقط x على كل متجه شاذ أيمن vᵢ فتحصل على المركبة vᵢᵀx، ثم تضربها في σᵢ، ثم تضع الناتج على المتجه الشاذ الأيسر uᵢ في فضاء الخرج. وأهم اتجاهات التأثير هي التي تحمل أكبر القيم الشاذة.

SVD والفضاءات الجوهرية الأربعة

يكشف SVD مباشرةً الفضاءات الجوهرية الأربعة للمصفوفة A — الأربعة التي نظّمها جيلبرت سترانغ في "الصورة الكبرى" الشهيرة للجبر الخطي:

ولاحظ كيف تصبح نظرية الرتبة والعدم (r + (n − r) = n) ظاهرة للعين مباشرةً: فضاء الصفوف وفضاء العدم يقسمان معاً الفضاء ℝⁿ إلى مُتمّمين متعامدين، وبالمثل يقسم فضاء الأعمدة وفضاء العدم الأيسر الفضاء ℝᵐ. وSVD يجعل هذا كله صريحاً، لأنه يسمّي أساساً متعامداً موحّداً للفضاءات الأربعة في وقت واحد.

القيم الشاذة والقيم الذاتية ورقم التكييف

القيم الشاذة مرتبطة بالقيم الذاتية لكنها ليست هي. بالنسبة لمصفوفة A عامة من الأبعاد m × n، فإن القيم الشاذة σᵢ هي الجذور التربيعية للقيم الذاتية للمصفوفة المتماثلة شبه الموجبة AᵀA (أو AAᵀ). وإذا كانت A نفسها متماثلة وشبه موجبة، تساوي قيمها الشاذة قيمها الذاتية، ويرتد SVD إلى التحليل الذاتي.

القيم الشاذة والقيم الذاتية
A^T A = V \Sigma^T U^T U \Sigma V^T = V \Sigma^2 V^T, \quad \sigma_i = \sqrt{\lambda_i(A^T A)}, \quad \kappa_2(A) = \frac{\sigma_1}{\sigma_\ell}, \;\; \ell = \min(m,n)
المتجهات الشاذة اليمنى V هي متجهات ذاتية لـAᵀA؛ المتجهات الشاذة اليسرى U هي متجهات ذاتية لـAAᵀ؛ القيم الشاذة تحقق σᵢ² = λᵢ(AᵀA). معيار المصفوفة ‖A‖₂ = σ₁ (أكبر قيمة شاذة)، ورقم التكييف κ₂(A) = σ₁/σₗ حيث l = min(m, n) (نسبة أكبر قيمة شاذة إلى أصغرها). المصفوفة ناقصة الرتبة لها σₗ = 0، فيكون κ₂ = ∞؛ والمصفوفة حسنة الحالة يكون σ₁/σₗ فيها قريباً من 1.

رقم التكييف κ₂(A) = σ₁/σₗ، حيث l = min(m, n)، هو المفتاح لفهم مدى حساسية المنظومة الخطية Ax = b للاضطرابات. فإذا كان κ₂ كبيراً، أحدث أي تغيّر صغير في b (ضوضاء القياس مثلاً) تغيّراً كبيراً في x. وSVD يجعل رقم التكييف صريحاً وقابلاً للحساب، ويكشف لك بالضبط أي الاتجاهات في فضاء الدخل والخرج حسنة الحالة (σᵢ كبيرة) وأيها سيئة الحالة (σᵢ صغيرة). وحين تكون A ناقصة الرتبة، يصبح σₗ = 0 وκ₂ = ∞؛ وفي هذه الحالة ما يُذكر عادةً هو رقم التكييف الفعّال σ₁/σᵣ، المقصور على القيم الشاذة غير الصفرية وعددها r = rank(A). والاثنان يتطابقان تماماً عندما تكون A مربعة وكاملة الرتبة.

التقريب منخفض الرتبة: نظرية إيكارت–يونغ

أشهر تطبيقات SVD هو التقريب الأمثل منخفض الرتبة. خُذ مصفوفة A رتبتها r: أفضل تقريب لها بمصفوفة من الرتبة k (لأي k ≤ r) هو SVD المقطوع — وهذا صحيح في معيار فروبينيوس والمعيار الطيفي معاً:

نظرية إيكارت–يونغ
A_k = \sum_{i=1}^{k} \sigma_i u_i v_i^T, \quad \|A - A_k\|_2 = \sigma_{k+1}, \quad \|A - A_k\|_F = \sqrt{\sigma_{k+1}^2 + \cdots + \sigma_r^2}
Aₖ = Σᵢ₌₁ᵏ σᵢuᵢvᵢᵀ هو أفضل تقريب من الرتبة k للمصفوفة A. خطأ التقريب في معيار فروبينيوس هو ‖A − Aₖ‖_F = √(σ²_{k+1} + … + σ²_r)، وفي المعيار الطيفي هو ‖A − Aₖ‖₂ = σ_{k+1}. لا توجد مصفوفة من الرتبة k أقرب إلى A في أي من المعيارين. هذا ضغط أمثل: تلتقط أهم "اتجاهات" A بأقل عدد من الحدود.

تضمن نظرية إيكارت–يونغ (1936) أن SVD المقطوع هو أفضل ضغط ممكن للمصفوفة A — لا يمكنك أن تفعل أفضل من ذلك بأي مصفوفة أخرى من الرتبة k. وعملياً نقيس "التباين المُفسَّر" في SVD المقطوع بنسبة كتلة مربعات القيم الشاذة المحتفظ بها: (σ₁² + … + σₖ²) / (σ₁² + … + σᵣ²). وفي مصفوفات البيانات الحقيقية تتضاءل القيم الشاذة سريعاً، فيكفي k صغير لالتقاط 95% من التباين أو أكثر.

ضغط الصور باستخدام SVD

الصورة الرمادية تُمثَّل طبيعياً كمصفوفة A من قيم البيكسل. صورة m × n تحتوي على mn رقماً. تقريب SVD المقطوع Aₖ يخزّن فقط k(m + n + 1) رقماً (k متجهاً شاذاً أيسر، وk قيمة شاذة، وk متجهاً شاذاً أيمن) — نسبة ضغط mn / [k(m + n + 1)]. لصورة 1000 × 1000 مع k = 50، هذا يعني 1,000,000 مقابل 100,050 رقماً — ضغط بمعامل 10× — مع الحفاظ على الجزء الأكبر من المحتوى البصري.

كيف يُحسب SVD؟

حساب SVD الكامل يمرّ على مرحلتين. في المرحلة الأولى تُختزل A إلى صيغة ثنائية القطر B = UᵀAV باستخدام انعكاسات هاوسهولدر — بالطريقة نفسها التي تختزل بها هاوسهولدر أي مصفوفة إلى صيغة هيسنبرغ قبل حساب القيم الذاتية. المصفوفة ثنائية القطر B لا تحمل قيماً غير صفرية إلا على القطر الرئيسي والقطر الذي يعلوه مباشرةً. وتكلفة هذه المرحلة O(mn²) عملية عائمة عندما m ≥ n.

في المرحلة الثانية تُحسب القيم الشاذة للمصفوفة B بخوارزمية تكرارية — خوارزمية غولوب–راينش، وهي صيغة من خوارزمية QR مطبَّقة على B. كل خطوة من التكرار تُنزل زوجاً واحداً من القيم الشاذة وتُخرجه من المسألة حتى تُستنفد جميعها. وعملياً تتقارب الخوارزمية سريعاً إذا اختيرت الإزاحات اختياراً جيداً، وتكون التكلفة الإجمالية لـSVD الكامل O(mn² + n³) — يهيمن عليها الاختزال إلى الصيغة ثنائية القطر.

أما المصفوفات الضخمة فحساب كل قيمها الشاذة فيها باهظ إلى حد التعذّر. هنا تدخل خوارزميات SVD العشوائي (مثل طريقة هالكو–مارتينسون–تروب): تجد تقريباً لـSVD المقطوع في زمن O(mn log k + (m + n)k²) بإسقاط A عشوائياً على فضاء جزئي أقل بُعداً، ثم حساب SVD الدقيق للمصفوفة الصغيرة المُسقطة، ثم رفع النتيجة إلى الأبعاد الأصلية. لمصفوفة 10,000 × 10,000 مع k = 100، يكون SVD العشوائي أسرع نحو 100× من SVD الكامل، وبخطأ تقريب يقارب الأمثل باحتمال كبير.

تطبيقات SVD

تحليل المكونات الرئيسية (PCA)

PCA هو SVD مطبَّق على بيانات مُمركزة. خُذ مصفوفة بيانات X فيها m مشاهدة وn سمة، وامركزها لتحصل على X̃ = X − متوسط(X). تحليل X̃ = UΣVᵀ يعطي المكونات الرئيسية في أعمدة V (المتجهات الشاذة اليمنى)، والتباين الذي يفسّره كل مكوّن هو σᵢ²/(m − 1). PCA يجد اتجاهات التباين الأقصى في البيانات — أي الاتجاهات التي "تنتشر" البيانات فيها أكثر ما تنتشر. وهو الأداة الأولى للاستكشاف الأولي للبيانات، والتصوير في بُعدين أو ثلاثة، واستخلاص السمات، وإزالة الضوضاء.

أنظمة التوصية

مصفوفة تقييمات المستخدم-العنصر R (صفوف = مستخدمون، أعمدة = أفلام) متفرقة جداً ومنخفضة الرتبة في العادة: معظم الأفلام يقيّمها عدد قليل من المستخدمين، وأذواق المستخدمين تتجمّع في عدد صغير من "العوامل الكامنة" (الأنواع، الأمزجة، وهكذا). SVD المقطوع Rₖ = UₖΣₖVₖᵀ يجد هذه العوامل الكامنة، ويستطيع التنبؤ بالتقييمات المفقودة بملئها من التقريب منخفض الرتبة. هذا هو القلب الرياضي للتصفية التعاونية — الخوارزمية خلف توصيات Netflix وSpotify.

تحليل الدلالات الكامنة

في معالجة اللغات الطبيعية، مصفوفة المصطلح-المستند T فيها صف لكل كلمة وعمود لكل مستند، والعنصر T_{ij} هو تكرار الكلمة i في المستند j. تحليل SVD المقطوع Tₖ يجد "المواضيع الدلالية الكامنة" — اتجاهات في فضاء الكلمات تلتقط أنماط التواجد المتكرر. المستندات المتقاربة في المعنى تنتهي إلى متجهات متقاربة في الفضاء الكامن، حتى إذا استخدمت كلمات مختلفة تماماً. وهذا أساس الفهرسة الدلالية الكامنة، وهي سابقة تاريخية لتضمينات الكلمات الحديثة.

المعكوس التعميمي وحل أي منظومة خطية

المعكوس التعميمي Moore–Penrose A⁺ لأي مصفوفة A يُعرَّف عبر SVD كـ A⁺ = VΣ⁺Uᵀ، حيث Σ⁺ يستبدل كل σᵢ غير صفري بـ 1/σᵢ ويترك الأصفار كما هي. المعكوس التعميمي يعطيك حل المربعات الصغرى ذا المعيار الأصغر x = A⁺b: من بين كل المتجهات x التي تصغّر ‖Ax − b‖، يختار صاحب أصغر ‖x‖. وللمصفوفات المربعة كاملة الرتبة يكون A⁺ = A⁻¹. أما للمنظومات المفرطة التحديد أو ناقصة التحديد، فيعطي A⁺ "أفضل حل ممكن" بمعنى محدد تماماً.

المعكوس التعميمي Moore–Penrose
A^+ = V \Sigma^+ U^T, \quad \Sigma^+_{ii} = \begin{cases} 1/\sigma_i & \sigma_i > 0 \\ 0 & \sigma_i = 0 \end{cases}, \quad x^* = A^+ b
A⁺ = VΣ⁺Uᵀ حيث Σ⁺ يعكس القيم الشاذة غير الصفرية. حل المربعات الصغرى ذو المعيار الأصغر للمنظومة Ax = b هو x* = A⁺b = VΣ⁺Uᵀb. هذا يُعمّم عكس المصفوفة لأي مصفوفة، مربعة أو غير مربعة، كاملة الرتبة أو ناقصتها. وعندما تكون أعمدة A مستقلة خطياً يكون A⁺ = (AᵀA)⁻¹Aᵀ — أي حل المعادلات الطبيعية، محسوباً بثبات عبر SVD.

الخصائص العددية لـSVD

SVD هو أوثق تحليلات المصفوفات عددياً. تُحسب القيم الشاذة بدقة تقارب دقة الآلة حتى للمصفوفات سيئة الحالة، وتخرج U و V متعامدتين إلى حدود دقة الآلة. لكن لهذه الموثوقية ثمناً: SVD أغلى نحو 6× من تحليل QR للمصفوفة نفسها. وفي المسائل التي تكون الدقة فيها هي الأولوية، يستحق الفارق ثمنه.

من أهم استخدامات SVD تحديد الرتبة العددية للمصفوفة. فعدّ القيم الشاذة غير الصفرية هشّ في الحساب العائم، ولذلك نعدّ بدلاً منه القيم الشاذة التي تتجاوز عتبة τ = ε · σ₁، حيث ε هو إبسيلون الآلة. هذه "الرتبة العددية" هي مفهوم الرتبة الصحيح لبيانات حقيقية شوّهتها أخطاء التمثيل العائم أو ضوضاء القياس.


التطبيق الهندسي

SVD موجود في كل مكان في الهندسة: numpy.linalg.svd وscipy.linalg.svd في Python، وsvd في MATLAB أداة معيارية، وsklearn.decomposition.TruncatedSVD وsklearn.decomposition.PCA يستخدمانه خلف الكواليس. في معالجة الإشارات، تظهر طرق SVD في خوارزميات MUSIC وESPRIT لتقدير اتجاه الوصول، وفي ترشيح فينر، وفي تشكيل الحزمة التكيّفي. في نظرية التحكم، قيم هانكل الشاذة للنظام الديناميكي (المحسوبة عبر SVD) تحدد الحالات التي يمكن حذفها عند اختزال رتبة النموذج. وفي تعلّم الآلة، يقوم SVD تحت تضمينات الكلمات في word2vec وGloVe، وأنظمة التوصية القائمة على تحليل المصفوفات، وآلية الانتباه في المحوّلات (التي تحسب إسقاطات Q و K و V — أي تحليلاً منخفض الرتبة متعلَّماً لمصفوفة الانتباه).

النقاط الرئيسية

SVD يحلل أي مصفوفة A = UΣVᵀ إلى مصفوفتين متعامدتين ومصفوفة قطرية من القيم الشاذة. يكشف الرتبة ورقم التكييف وجميع الفضاءات الجوهرية الأربعة. نظرية إيكارت–يونغ تضمن أن SVD المقطوع هو أفضل تقريب منخفض الرتبة. المعكوس التعميمي A⁺ = VΣ⁺Uᵀ يحل أي منظومة خطية بمعنى المربعات الصغرى ذي الحدّ الأدنى للنظام. التطبيقات تشمل ضغط الصور، وPCA، وأنظمة التوصية، وتحليل الدلالات الكامنة، وحساب المعكوس التعميمي. SVD هو أكثر تحليلات المصفوفات موثوقية وشمولاً في الجبر الخطي العددي.