cover part2-optimized

جبر خطی پیشرفته برای یادگیری عمیق؛ آموزش SVD، PCA و کاربرد در شبکه‌های عصبی(بخش دوم)

1.7.تجزیه ماتریس‌هاMatrix Decompositions

1.7.1.چرا به تجزیه ماتریس نیاز داریم؟

ماتریس‌ها یکی از اصلی‌ترین ساختارهای محاسباتی در یادگیری عمیق هستند.

در یک شبکه عصبی، ماتریس‌ها برای نمایش موارد زیر استفاده می‌شوند:

  • وزن‌های شبکه
  • تبدیل ویژگی‌ها
  • نمایش داده‌ها
  • ارتباط بین لایه‌ها

یک شبکه عمیق ممکن است شامل میلیون‌ها یا میلیاردها پارامتر باشد که به شکل ماتریس ذخیره می‌شوند.

برای مثال:

W∈ℝm×nW\in\mathbb{R}^{m\times n}

اما کار مستقیم با این ماتریس‌ها همیشه ساده نیست.

بنابراین یک ایده مهم مطرح می‌شود:

آیا می‌توان یک ماتریس پیچیده را به چند ماتریس ساده‌تر تبدیل کرد؟

پاسخ مثبت است.

این فرآیند را:

Matrix Decomposition{Matrix}\ {Decomposition}

یا تجزیه ماتریس می‌نامیم.

1.7.2.مفهوم کلی تجزیه ماتریس

هدف تجزیه ماتریس تبدیل:

A{A}

به چند ماتریس ساده‌تر است:

A = BC {A}\ =\ {BC}\

یا:

A = BCD {A}\ =\ {BCD}\

که در آن:

  • A: ماتریس اصلی
  • B,C,D: اجزای ساده‌تر

هستند.

مزایای تجزیه ماتریس:

  1. کاهش هزینه محاسباتی
  2. حل سریع‌تر سیستم‌های خطی
  3. کاهش حافظه موردنیاز
  4. تحلیل ساختار داده
  5. استخراج ویژگی‌های مهم

1.7.3.تجزیه LU

LU Decomposition

یکی از قدیمی‌ترین و مهم‌ترین روش‌های تجزیه ماتریس است.

در این روش یک ماتریس به حاصل‌ضرب دو ماتریس تبدیل می‌شود:

A=LU {A}={LU}\

که:

  • L: ماتریس مثلثی پایین (Lower Triangular Matrix)
  • U: ماتریس مثلثی بالا (Upper Triangular Matrix)

است.

ماتریس مثلثی پایین

شکل کلی:

L=[l1100l21l220l31l32l33]L=\begin{bmatrix}l_{11}&0&0\\l_{21}&l_{22}&0\\l_{31}&l_{32}&l_{33}\end{bmatrix}

تمام عناصر بالای قطر اصلی صفر هستند.

ماتریس مثلثی بالا

U=[u11u12u130u22u2300u33]U=\begin{bmatrix}u_{11}&u_{12}&u_{13}\\0&u_{22}&u_{23}\\0&0&u_{33}\end{bmatrix}

تمام عناصر پایین قطر اصلی صفر هستند.

1.7.4.مثال تجزیه LU

فرض کنید:

A=[2347]A=\begin{bmatrix}2&3\\4&7\end{bmatrix}

می‌توان آن را به شکل:

A=LU {A}={LU}\

نوشت.

مثلاً:

L=[1021]L=\begin{bmatrix}1&0\\2&1\end{bmatrix}

و:

U=[2301]U=\begin{bmatrix}2&3\\0&1\end{bmatrix}

داریم:

LU=[1021][2301]LU=\begin{bmatrix}1&0\\2&1\end{bmatrix}\begin{bmatrix}2&3\\0&1\end{bmatrix}

بنابراین:

=[2347]=\begin{bmatrix}2&3\\4&7\end{bmatrix}

که همان ماتریس اولیه است.

1.7.5.کاربرد LU در یادگیری ماشین

اگر بخواهیم دستگاه:

Ax=b {Ax}={b}\

را حل کنیم، با LU می‌توانیم آن را به دو مرحله تقسیم کنیم:

ابتدا:

Ly=b {Ly}={b}\

سپس:

Ux=y {Ux}={y}\

این کار از نظر محاسباتی بسیار سریع‌تر از محاسبه مستقیم معکوس ماتریس است.

1.7.6.تجزیه QR

QR Decomposition

در تجزیه QR:

A=QR{A}={QR}

که:

  • Q: ماتریس متعامد (Orthogonal Matrix)
  • R: ماتریس مثلثی بالا

است.

ویژگی ماتریس Q

یک ماتریس متعامد دارای ویژگی زیر است:

QTQ=I{Q}^{T}{Q}={I}

یعنی:

Q−1=QT{Q}^{-{1}}={Q}^{T}

1.7.7.مفهوم هندسی QR

ماتریس:

Q {Q}

یک تغییر جهت بدون تغییر اندازه ایجاد می‌کند.

یعنی:

||Qx||=||x|| ||{Qx}||=||{x}||\

بنابراین طول بردار حفظ می‌شود.

ماتریس:

R {R}\

میزان کشیدگی و ترکیب خطی را مشخص می‌کند.

1.7.8.کاربرد QR در یادگیری عمیق

QR در موارد زیر استفاده می‌شود:

1. حل مسائل کمترین مربعات

در بسیاری از مسائل یادگیری ماشین هدف یافتن:

min⁡‖Ax−b‖2\min \|Ax-b\|^2

است.

QR یک روش پایدار برای حل این مسئله است.

2. تحلیل وزن‌های شبکه

ماتریس‌های وزن را می‌توان با QR بررسی کرد تا:

  • وابستگی ویژگی‌ها
  • ساختار فضای وزن
  • پایداری

تحلیل شود.

1.7.9.تجزیه چولسکیCholesky Decomposition

این تجزیه برای ماتریس‌های خاص استفاده می‌شود.

اگر ماتریس:

A {A}\

متقارن و مثبت معین باشد:

 A=AT\ {A}={A}^{T}

می‌توان نوشت:

A=LLT{A}={{LL}}^{T}

که:

  • L: ماتریس مثلثی پایین

است.

مثال کاربردی

ماتریس کوواریانس در آمار:

∑\sum

معمولاً:

∑=∑T\sum={\sum}^T

است.

بنابراین می‌توان نوشت:

∑=LLT\sum={{LL}}^{T}

1.7.10.ارتباط تجزیه ماتریس با شبکه‌های عصبی

در شبکه عصبی:

z=Wx+b {z}={Wx}+{b}\

ماتریس وزن:

W{W}

معمولاً بسیار بزرگ است.

مثلاً:

W∈R10000×10000W\in R^{10000\times 10000}

یعنی:

100,000,000

پارامتر.

اما ممکن است این ماتریس دارای ساختار پنهان باشد.

مثلاً:

W≈AB{W}\approx{AB}

که:

A∈R10000×100A\in R^{10000\times 100}

و

B∈R100×10000B\in R^{100\times 10000}

باشد.

تعداد پارامتر جدید:

10000(100)+100(10000)

برابر:

2,000,000

است.

در حالی که حالت اولیه:

100,000,000

پارامتر داشت.

این ایده پایه روش‌های:

  • Low Rank Approximation
  • Model Compression
  • LoRA

است.

1.7.11.ارتباط با مدل‌های زبانی بزرگ

در مدل‌های بزرگ مانند Transformer، ماتریس‌های زیر بسیار بزرگ هستند:

WQ,WK,WV,WOW_Q, W_K, W_V, W_O

که در Attention استفاده می‌شوند.

مثلاً:

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^{T}}{\sqrt{d_k}}\right)V

تجزیه ماتریس کمک می‌کند:

  • حجم مدل کاهش یابد.
  • آموزش سریع‌تر شود.
  • حافظه کمتر مصرف شود.

1.7.12.مقایسه روش‌های تجزیه ماتریس

روشتجزیهکاربرد اصلی
LUA=LUحل دستگاه خطی
QRA=QRکمترین مربعات و پایداری
CholeskyA=LL^Tماتریس کوواریانس
SVDA = ΣU^Tکاهش بعد و فشرده‌سازی

جمع‌بندی بخش 1.7

در این بخش یاد گرفتیم:

  • ماتریس‌های بزرگ را می‌توان به اجزای ساده‌تر تقسیم کرد.
  • LU برای حل دستگاه‌های خطی استفاده می‌شود.
  • QR ساختار هندسی ماتریس را تحلیل می‌کند.
  • Cholesky برای ماتریس‌های کوواریانس مهم است.
  • تجزیه ماتریس پایه بسیاری از روش‌های کاهش محاسبات در Deep Learning است.

1.8.تجزیه مقادیر منفردSingular Value Decomposition (SVD)

1.8.1.مقدمه‌ای بر SVD

تجزیه مقادیر منفرد یا Singular Value Decomposition یکی از مهم‌ترین ابزارهای جبر خطی در علوم داده، یادگیری ماشین و یادگیری عمیق است.

ایده اصلی SVD این است:

هر ماتریس را می‌توان به سه تبدیل ساده‌تر تجزیه کرد: یک چرخش در فضای ورودی، یک تغییر مقیاس، و یک چرخش در فضای خروجی.

به صورت ریاضی:

A=UΣVTA=U\Sigma V^{T}

که در آن:

  • A: ماتریس اصلی
  • U: ماتریس بردارهای منفرد چپ (Left Singular Vectors)
  • Sigma: ماتریس مقادیر منفرد (Singular Values)
  • V^T: ترانهاده ماتریس بردارهای منفرد راست (Right Singular Vectors)

است.

1.8.2.شهود هندسی SVD

یک تبدیل ماتریسی عمومی می‌تواند چند اتفاق را همزمان انجام دهد:

  1. چرخاندن فضا
  2. کشیدن یا فشرده کردن فضا
  3. چرخاندن دوباره فضا

SVD این فرآیند را جدا می‌کند.

یعنی:

x→VTx→ΣVTx→UΣVTxx\rightarrow V^{T}x\rightarrow \Sigma V^{T}x\rightarrow U\Sigma V^{T}x

به صورت مفهومی:

1.8.3.ساختار ماتریس‌های SVD

فرض کنید:

A∈Rm×nA\in R^{m\times n}

باشد.

تجزیه SVD:

A=UΣVTA=U\Sigma V^{T}

دارای ابعاد زیر است:

U∈Rm×m,Σ∈Rm×n,VT∈Rn×nU\in R^{m\times m},\quad \Sigma\in R^{m\times n},\quad V^{T}\in R^{n\times n}

ماتریس:

Sigma

دارای ساختار قطری است:

Σ=[σ1000σ2000σ3]\Sigma=\begin{bmatrix}\sigma_1&0&0\\0&\sigma_2&0\\0&0&\sigma_3\end{bmatrix}

که مقادیر:

σ1,σ2,σ3\sigma_1,\sigma_2,\sigma_3

مقادیر منفرد هستند.

1.8.4.مقادیر منفرد (Singular Values)

مقادیر منفرد مشخص می‌کنند هر جهت چقدر اهمیت دارد.

فرض کنید:

σ1>σ2>σ3\sigma_1>\sigma_2>\sigma_3

باشد.

یعنی:

  • جهت اول بیشترین اطلاعات را حمل می‌کند.
  • جهت دوم اهمیت کمتر دارد.
  • جهت سوم ممکن است فقط نویز باشد.

به همین دلیل SVD ابزاری قدرتمند برای:

  • کاهش ابعاد
  • حذف نویز
  • فشرده‌سازی داده

است.

1.8.5.ارتباط SVD با رتبه ماتریس

تعداد مقادیر منفرد غیرصفر، رتبه ماتریس را مشخص می‌کند.

یعنی:

Rank(A)=r {Rank}({A})={r}\

اگر:

σr≠0\sigma_r\neq 0

و:

σr+1=0\sigma_{r+1}=0

باشد.

مثلاً:

Σ=[1000050000]\Sigma=\begin{bmatrix}10&0&0\\0&5&0\\0&0&0\end{bmatrix}

دارای دو مقدار منفرد غیرصفر است.

پس:

Rank(A)=𝟐{Rank}({A})=\mathbf{2}

1.8.6.تقریب کم‌رتبه (Low Rank Approximation)

یکی از مهم‌ترین کاربردهای SVD این است که می‌توان یک ماتریس بزرگ را با یک ماتریس کوچک‌تر تقریب زد.

فرض کنید:

A=UΣVTA=U\Sigma V^{T}

باشد.

اگر فقط بزرگ‌ترین:

kk

مقدار منفرد را نگه داریم:

Ak=UkΣkVkTA_k=U_k\Sigma_k V_k^{T}

یک تقریب کم‌رتبه از ماتریس خواهیم داشت.

هدف:حفظ بیشترین اطلاعات با کمترین پارامتر.

مثال مفهومی

فرض کنید یک ماتریس تصویر داریم:

A∈R1000×1000A\in R^{1000\times 1000}

تعداد پارامترها:

1,000,000

است.

اما بعد از SVD:

A≈U50Σ50V50TA\approx U_{50}\Sigma_{50}V_{50}^{T}

ممکن است فقط ۵۰ مؤلفه اصلی لازم باشد.

1.8.7.ارتباط SVD با فشرده‌سازی تصاویر

تصویر دیجیتال یک ماتریس است:

A

که هر عنصر شدت روشنایی یک پیکسل است.

با SVD:

A=UΣVTA=U\Sigma V^{T}

می‌توان مؤلفه‌های کم‌اهمیت را حذف کرد.

مثلاً:

قبل:

1000×10001000\times 1000

مقدار

بعد:

1000×50+50×50+50×10001000\times 50+50\times 50+50\times 1000

مقدار

حافظه بسیار کمتر می‌شود.

1.8.8. SVD و کاهش پارامترهای شبکه عصبی

در شبکه‌های عمیق، وزن یک لایه معمولاً یک ماتریس است:

W∈Rm×nW\in R^{m\times n}

برای مثال:

W∈R4096×4096W\in R^{4096\times 4096}

تعداد پارامترها:

409624096^{2}

یعنی:

16,777,21616,777,216

پارامتر.

با SVD:

W≈UrΣrVrTW\approx U_r\Sigma_r V_r^{T}

می‌توان آن را به چند ماتریس کوچک تبدیل کرد.

به جای:

mn

پارامتر،

داریم:

 r(m+n)

پارامتر.

که:

r<<min(m,n)

است.

1.8.9.کاربرد SVD در شبکه‌های Transformer

در معماری Transformer، ماتریس‌های بزرگی وجود دارند:

WQ,WK,WV,WOW_Q, W_K, W_V, W_O

برای مثال:

Q=XWQK=XWKV=XWV\begin{aligned} Q&=XW_Q\\ K&=XW_K\\ V&=XW_V \end{aligned}

این ماتریس‌ها بخش بزرگی از پارامترهای مدل را تشکیل می‌دهند.

روش‌های مبتنی بر SVD می‌توانند:

  • وزن‌ها را کم‌رتبه کنند.
  • حجم مدل را کاهش دهند.
  • سرعت inference را افزایش دهند.

1.8.11. SVD و LoRA

یکی از کاربردهای مدرن SVD در مدل‌های زبانی بزرگ، ایده آموزش کم‌پارامتر است.

در LoRA به جای تغییر مستقیم:

W

یک تغییر کم‌رتبه اضافه می‌شود:

 W′=W+∆W\ {W}\prime={W}+∆W

که:

∆W=AB∆W=AB

است.

در نتیجه:

A∈Rm×rA\in R^{m\times r}

و:

B∈Rr×nB\in R^{r\times n}

با:

r≪m,nr\ll m,n

مزیت:

  • پارامترهای کمتر
  • آموزش سریع‌تر
  • حافظه کمتر

1.8.11.ارتباط SVD با سیستم‌های توصیه‌گر

یکی از کاربردهای کلاسیک SVD در Recommendation Systems است.

فرض کنید ماتریس تعامل کاربر-کالا داریم:

R {R}\

که:

Rij {R}_{{ij}}\

امتیاز کاربر  i به محصول  j  است.

این ماتریس معمولاً بسیار بزرگ و پراکنده است.

SVD آن را به شکل زیر تجزیه می‌کند:

R≈UkΣkVkTR\approx U_k\Sigma_k V_k^{T}

که:

  • Uk: نمایش کاربران
  • Vk: نمایش کالاها

است.

مثلاً یک عامل پنهان می‌تواند نشان‌دهنده:

  • سبک ورزشی
  • قیمت بالا
  • علاقه به تکنولوژی

باشد.

1.8.12.تفاوت Eigenvalue و SVD

این دو مفهوم بسیار مرتبط هستند اما یکسان نیستند.

ویژگیEigenvalueSVD
ورودیماتریس مربعیهر ماتریسی
فرمولAv = λvA = U Σ V^T
کاربرد اصلیتحلیل تبدیلتجزیه عمومی
PCAمستقیمغیرمستقیم
شبکه عصبیتحلیل پایداریفشرده‌سازی وزن

جمع‌بندی بخش 1.8

در این بخش یاد گرفتیم:

  • SVD یکی از مهم‌ترین تجزیه‌های ماتریسی است.
  • هر ماتریس را می‌توان به سه بخش:
A=UΣVTA=U\Sigma V^{T}

تقسیم کرد.

  • مقادیر منفرد اهمیت اطلاعاتی هر جهت را نشان می‌دهند.
  • حذف مقادیر کوچک باعث کاهش بعد و فشرده‌سازی می‌شود.
  • SVD در موارد زیر کاربرد دارد:
    • PCA
    • Compression
    • Recommendation System
    • Transformer
    • LoRA
    • Model Optimization

1.9.کاهش بُعد و تحلیل مؤلفه‌های اصلی(Dimensionality Reduction and Principal Component Analysis (PCA)

1.9.1.مقدمه‌ای بر کاهش بُعد

در بسیاری از مسائل یادگیری ماشین، داده‌ها دارای تعداد بسیار زیادی ویژگی هستند.

برای مثال:

نوع دادهتعداد ابعاد احتمالی
تصویر HDمیلیون‌ها پیکسل
متن در فضای embeddingهزاران بعد
ژنوم انسانیده‌ها هزار ویژگی
رفتار کاربرصدها یا هزاران ویژگی

اگرچه افزایش تعداد ویژگی‌ها می‌تواند اطلاعات بیشتری فراهم کند، اما همیشه باعث بهبود مدل نمی‌شود.

این مسئله به یکی از چالش‌های اساسی یادگیری ماشین منجر می‌شود:

1.9.2.نفرین ابعاد (Curse of Dimensionality)

با افزایش تعداد ابعاد، فضای داده بسیار بزرگ می‌شود.

فرض کنید داده‌ها در یک فضای یک‌بعدی قرار دارند:

x∈R{x}\in{R}

برای پوشش فضای داده، تعداد کمی نمونه کافی است.

اما اگر:

x∈R𝟏𝟎𝟎{x}\in{R}^{\mathbf{100}}

باشد، فضای ممکن به شدت افزایش می‌یابد.

نتیجه:

  • فاصله بین نقاط افزایش می‌یابد.
  • داده‌ها پراکنده‌تر می‌شوند.
  • نیاز به نمونه‌های بسیار بیشتری داریم.
  • یادگیری الگوها سخت‌تر می‌شود.

مثال شهودی

فرض کنید می‌خواهیم فضای یک مکعب را با نقاط پر کنیم.

در یک بعد:

10

نقطه کافی است.

در دو بعد:

𝟏𝟎𝟐=𝟏𝟎𝟎{\mathbf{10}}^\mathbf{2}=\mathbf{100}

نقطه لازم است.

در سه بعد:

𝟏𝟎𝟑=𝟏𝟎𝟎𝟎{\mathbf{10}}^\mathbf{3}=\mathbf{1000}

نقطه لازم است.

در صد بعد:

𝟏𝟎𝟏𝟎𝟎{\mathbf{10}}^{\mathbf{100}}

نقطه نیاز است.

بنابراین یکی از اهداف مهم یادگیری ماشین:

یافتن نمایش کم‌بعدتر که همچنان اطلاعات مهم را حفظ کند.

1.9.3. مفهوم کاهش بُعد(Dimensionality Reduction)

کاهش بعد یعنی تبدیل داده از فضای بزرگ‌تر به فضای کوچک‌تر:

Rn→Rk{R}^{n}\rightarrow{R}^{k}

که:

k<n {k}<{n}\

است.

مثلاً:

داده اولیه:

x∈R1000{x}\in{R}^{{1000}}

پس از کاهش بعد:

x∈R𝟓𝟎{x}\in{R}^{\mathbf{50}}

اما هدف این نیست که فقط تعداد ابعاد کم شود.

هدف اصلی:

حفظ بیشترین اطلاعات ممکن.

1.9.4.انواع روش‌های کاهش بعد

روش‌های کاهش بعد به دو دسته کلی تقسیم می‌شوند:

1. روش‌های خطی

مانند:

  • PCA
  • SVD
  • Linear Discriminant Analysis

2. روش‌های غیرخطی

مانند:

  • t-SNE
  • UMAP
  • Autoencoder

در این فصل تمرکز اصلی بر PCA است، زیرا پایه بسیاری از روش‌های مدرن یادگیری عمیق است.

1.9.5.تحلیل مؤلفه‌های اصلیPrincipal Component Analysis (PCA)

PCA یکی از مهم‌ترین روش‌های کاهش بعد است.

ایده اصلی PCA:

یافتن جهت‌هایی در فضای داده که بیشترین تغییرات و بیشترین اطلاعات را نگه می‌دارند.

فرض کنید داده‌ها:

X=[x11x12…x1nx21x22…x2n…]X=\begin{bmatrix}x_{11}&x_{12}&\ldots&x_{1n}\\x_{21}&x_{22}&\ldots&x_{2n}\\\ldots\end{bmatrix}

باشند.

هدف یافتن یک فضای جدید است:

Z=XW{Z}={XW}

که:

  • ابعاد کمتر دارد.
  • اطلاعات مهم را حفظ می‌کند.

1.9.6.مرحله اول PCA: مرکز کردن داده‌ها

ابتدا میانگین هر ویژگی محاسبه می‌شود:

μ=1m∑i=1mxi\mu=\frac{1}{m}\sum_{i=1}^{m}x_i

سپس داده‌ها مرکز می‌شوند:

Xc=X−μX_c=X-\mu

هدف:

قرار دادن مرکز داده‌ها روی نقطه صفر.

1.9.7.مرحله دوم PCA: محاسبه ماتریس کوواریانس

ماتریس کوواریانس نشان می‌دهد ویژگی‌ها چگونه با یکدیگر تغییر می‌کنند.

فرمول:

C=1m−1XcTXcC=\frac{1}{m-1}X_c^{T}X_c

که:

 C

یک ماتریس:

n×n{n}\times{n}

است.

مثلاً اگر سه ویژگی داشته باشیم:

C=[Var(x1)Cov(x1,x2)Cov(x1,x3)Cov(x2,x1)Var(x2)Cov(x2,x3)Cov(x3,x1)Cov(x3,x2)Var(x3)]C=\begin{bmatrix}Var(x_1)&Cov(x_1,x_2)&Cov(x_1,x_3)\\Cov(x_2,x_1)&Var(x_2)&Cov(x_2,x_3)\\Cov(x_3,x_1)&Cov(x_3,x_2)&Var(x_3)\end{bmatrix}

1.9.8. مرحله سوم PCA: محاسبه بردارهای ویژه

در PCA، بردارهای ویژه ماتریس کوواریانس محاسبه می‌شوند:

 Cv=λ v \ {Cv}={\lambda}\ {v}\

که:

  • v: جهت‌های اصلی داده
  •  λ: میزان اهمیت هر جهت

است.

مقدار ویژه بزرگ‌تر:

λi{\lambda i}

یعنی:

اطلاعات بیشتری در آن جهت وجود دارد.

1.9.9.مرحله چهارم PCA: انتخاب مؤلفه‌های اصلی

فرض کنید Eigenvalueها:

λ1=80λ2=15λ3=4λ4=1\begin{aligned} \lambda_1&=80\\ \lambda_2&=15\\ \lambda_3&=4\\ \lambda_4&=1 \end{aligned}

باشند.

کل اطلاعات:

𝟖𝟎+𝟏𝟓+𝟒+𝟏=𝟏𝟎𝟎 \mathbf{80}+\mathbf{15}+\mathbf{4}+\mathbf{1}=\mathbf{100}\

نسبت واریانس:

λi∑jλj\frac{\lambda_i}{\sum_j \lambda_j}

بنابراین:

مؤلفه اول:

80100=80%\frac{80}{100}=80\%

اطلاعات را نگه می‌دارد.

دو مؤلفه اول:

95\%

اطلاعات را حفظ می‌کنند.

پس می‌توان چهار بعد را به دو بعد کاهش داد.

1.9.10.ارتباط PCA و SVD

PCA را می‌توان با SVD نیز محاسبه کرد.

اگر:

X=UΣVTX=U\Sigma V^{T}

باشد، مؤلفه‌های اصلی از ستون‌های:

V

به دست می‌آیند.

ارتباط مهم:

C=XTXC=X^{T}X

و بردارهای ویژه کوواریانس همان بردارهای منفرد SVD هستند.

بنابراین:

PCA↔Eigenvalue↔SVDPCA\leftrightarrow Eigenvalue\leftrightarrow SVD

یک زنجیره بنیادی در جبر خطی یادگیری ماشین است.

1.9.11. کاربرد PCA در یادگیری عمیق

اگرچه شبکه‌های عمیق معمولاً خودشان ویژگی استخراج می‌کنند، PCA هنوز کاربردهای مهمی دارد.

1. تجسم فضای ویژگی

شبکه‌های عمیق ممکن است بردارهایی با صدها بعد تولید کنند:

h∈R512h\in R^{512}

برای نمایش دو بعدی:

R512→R2R^{512}\rightarrow R^{2}

می‌توان از PCA استفاده کرد.

2. حذف نویز

برخی مؤلفه‌ها دارای مقدار ویژه کوچک هستند.

این مؤلفه‌ها معمولاً اطلاعات کم یا نویز هستند.

با حذف آن‌ها:

Xclean≈XkX_{clean}\approx X_k

به دست می‌آید.

3. پیش‌پردازش داده

در برخی پروژه‌ها قبل از آموزش مدل:

X→PCA(X)X\rightarrow PCA(X)

انجام می‌شود.

مزایا:

  • کاهش زمان آموزش
  • کاهش حافظه
  • حذف ویژگی‌های زائد

1.9.12. ارتباط PCA با Autoencoder

Autoencoder یک شبکه عصبی برای کاهش بعد است.

ساختار:

x→Encoder→z→Decoder→x′x\rightarrow Encoder\rightarrow z\rightarrow Decoder\rightarrow x’

در PCA:

تبدیل:

X→ZX\rightarrow Z

خطی است.

اما Autoencoder می‌تواند:

Z=f(X)

را به صورت غیرخطی یاد بگیرد.

بنابراین:

PCA:

LinearFeatureExtractionLinear Feature Extraction

Autoencoder:

NonlinearFeatureLearningNonlinear Feature Learning

1.9.13. PCA در سیستم‌های توصیه‌گر

در سیستم‌های توصیه‌گر، ماتریس تعامل کاربر-کالا:

R

معمولاً بسیار بزرگ است.

مثلاً:

R∈R100000×50000R\in R^{100000\times 50000}

PCA یا روش‌های مرتبط می‌توانند عوامل پنهان را استخراج کنند:

R→ZR\rightarrow Z

که در آن:

  • ویژگی‌های پنهان کاربران
  • ویژگی‌های پنهان کالاها

نمایش داده می‌شوند.

جمع‌بندی بخش 1.9

مفهومنقش
Curse of Dimensionalityمشکل فضای بسیار بزرگ
Dimensionality Reductionکاهش ابعاد با حفظ اطلاعات
PCAیافتن جهت‌های مهم داده
Eigenvectorجهت مؤلفه اصلی
Eigenvalueاهمیت مؤلفه
SVDروش محاسباتی PCA
Autoencoderکاهش بعد غیرخطی

نکته کلیدی

کاهش بعد به معنی حذف ساده اطلاعات نیست؛ بلکه یافتن یک نمایش جدید است که اطلاعات مهم داده را در فضای کوچک‌تر نگه می‌دارد.

این ایده یکی از پایه‌های اصلی یادگیری عمیق است، زیرا شبکه‌های عصبی نیز در هر لایه در حال یادگیری نمایش‌های جدید و فشرده‌تر از داده هستند.

1.10.کاربرد جبر خطی در شبکه‌های عصبی عمیق(Linear Algebra Applications in Deep Neural Networks)

1.10.1.مقدمه: شبکه عصبی به عنوان یک سیستم جبر خطی

تا این مرحله، مفاهیم اصلی جبر خطی را بررسی کردیم:

  • بردارها
  • ماتریس‌ها
  • فضاهای برداری
  • استقلال خطی
  • رتبه
  • نرم‌ها
  • مقادیر ویژه
  • تجزیه ماتریس
  • SVD
  • PCA

اکنون باید ببینیم این مفاهیم چگونه در قلب شبکه‌های عصبی استفاده می‌شوند.

یک دیدگاه بنیادی در یادگیری عمیق وجود دارد:

هر لایه شبکه عصبی یک تبدیل ریاضی است که داده را از یک فضای برداری به فضای برداری جدید منتقل می‌کند.

به صورت کلی:

h=f(Wx+b)h=f(Wx+b)

که در آن:

  • x: بردار ورودی
  • W: ماتریس وزن‌ها
  • b: بردار بایاس
  • f: تابع فعال‌سازی
  • h: نمایش جدید داده

است.

1.10.2.نورون مصنوعی به عنوان یک عملگر برداری

ساده‌ترین واحد شبکه عصبی، نورون مصنوعی است.

یک نورون چند ورودی دریافت می‌کند:

x=[x1x2…xn]x=\begin{bmatrix}x_1\\x_2\\\ldots\\x_n\end{bmatrix}

و برای هر ورودی یک وزن دارد:

w=[w1w2…wn]w=\begin{bmatrix}w_1\\w_2\\\ldots\\w_n\end{bmatrix}

محاسبه نورون:

z=wTx+bz=w^{T}x+b

است.

باز کردن رابطه:

z=∑i=1nwixi+bz=\sum_{i=1}^{n}w_ix_i+b

یعنی نورون در واقع یک ضرب داخلی انجام می‌دهد.

تفسیر هندسی

ضرب داخلی:

wTxw^{T}x

اندازه‌ای از میزان هم‌جهتی بین:

  • ورودی
  • وزن‌ها

است.

اگر:

wTxw^{T}x

بزرگ باشد، ورودی با الگوی یادگرفته‌شده نورون شباهت دارد.

1.10.3.یک لایه شبکه عصبی به عنوان تبدیل ماتریسی

یک نورون فقط یک خروجی تولید می‌کند.

اما یک لایه شبکه عصبی معمولاً صدها یا هزاران نورون دارد.

فرض کنید:

ورودی:

x∈Rnx\in R^n

و لایه دارای:

m

نورون باشد.

وزن‌ها:

W∈Rm×nW\in R^{m\times n}

خواهند بود.

خروجی قبل از فعال‌سازی:

z=Wx+bz=Wx+b

است.

مثال:

فرض کنید:

x∈R784x\in R^{784}

(تصویر MNIST)

و لایه اول:

128

نورون دارد.

پس:

W∈R128×784W\in R^{128\times 784}

خواهد بود.

خروجی:

z∈R128z\in R^{128}

است.

یعنی شبکه تصویر ۷۸۴ بعدی را به یک فضای ویژگی ۱۲۸ بعدی منتقل کرده است.

1.10.4.شبکه عصبی به عنوان زنجیره‌ای از تبدیل‌های خطی و غیرخطی

یک شبکه چندلایه:

x

را از چندین فضای مختلف عبور می‌دهد.

مثلاً:

h1=f(W1x+b1)h2=f(W2h1+b2)y=W3h2+b3\begin{aligned} h_1&=f(W_1x+b_1)\\ h_2&=f(W_2h_1+b_2)\\ y&=W_3h_2+b_3 \end{aligned}

اگر توابع فعال‌سازی حذف شوند:

y=W3W2W1xy=W_3W_2W_1x

خواهیم داشت.

یعنی کل شبکه فقط یک تبدیل خطی خواهد بود.

بنابراین نقش تابع فعال‌سازی بسیار مهم است.

زیرا:

Linear+Linear=LinearLinear + Linear = Linear

اما:

Linear+NonlinearLinear+Nonlinear

قدرت نمایش بسیار بیشتری ایجاد می‌کند.

1.10.5. جبر خطی در شبکه‌های کانولوشنی (CNN)

شبکه‌های CNN برای پردازش تصویر طراحی شده‌اند.

تصویر یک تانسور است:

X∈RH×W×CX\in R^{H\times W\times C}

که:

  • H: ارتفاع
  • W: عرض
  • C: تعداد کانال‌ها

است.

مثلاً یک تصویر RGB

X∈RH×W×CX\in R^{H\times W\times C}

دارد.

عملیات کانولوشن از دید جبر خطی

فیلتر CNN:

K

نیز یک ماتریس کوچک است.

مثلاً:

K∈R3×3K\in R^{3\times 3}

عملیات کانولوشن در واقع مجموعه‌ای از ضرب‌های داخلی است:

Yi,j=∑m∑nXi+m,j+nKm,nY_{i,j}=\sum_{m}\sum_{n}X_{i+m,j+n}K_{m,n}

یعنی CNN دائماً در حال انجام:

Input×KernelInput\times Kernel

است.

1.10.6. تبدیل کانولوشن به ضرب ماتریسی

یکی از مفاهیم مهم در پیاده‌سازی CNN، تبدیل کانولوشن به ضرب ماتریسی است.

با روش:

im2col

می‌توان تصویر را به ماتریس تبدیل کرد.

سپس:

Y=XW

محاسبه می‌شود.

این موضوع نشان می‌دهد که حتی CNN نیز در نهایت به جبر خطی وابسته است.

1.10.7.جبر خطی در شبکه‌های Transformer

مدل‌های Transformer یکی از مهم‌ترین معماری‌های هوش مصنوعی مدرن هستند.

قلب Transformer مکانیزم:

Attention

است.

Attention به زبان جبر خطی

سه ماتریس اصلی داریم:

Query

Q=XWQQ=XW_Q

Key

K=XWKK=XW_K

Value

V=XWVV=XW_V

سپس:

Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax\left(\frac{QK^{T}}{\sqrt{d_k}}\right)V

تمام اجزای این رابطه:

  • ضرب ماتریسی
  • ترانهاده
  • مقیاس‌بندی
  • جمع برداری

هستند.

1.10.8.تفسیر هندسی Attention

ماتریس:

QKTQK^{T}

شباهت بین بردارهای مختلف را محاسبه می‌کند.

اگر:

qiTkjq_i^{T}k_j

بزرگ باشد:

یعنی Query و Key مشابه هستند.

بنابراین Attention در اصل:

محاسبه شباهت بین بردارها در یک فضای ویژگی است.

1.10.9. جبر خطی در Embeddingها

یکی از مهم‌ترین کاربردهای جبر خطی در هوش مصنوعی، تبدیل مفاهیم به بردار است.

مثلاً:

کلمه:

“king”

به یک بردار تبدیل می‌شود:

xking∈Rdx_{king}\in R^d

مدل تلاش می‌کند روابط معنایی را در فضای برداری یاد بگیرد.

مثلاً:

king−man+woman≈queenking-man+woman\approx queen

این رابطه یک عملیات برداری است.

1.10.10. جبر خطی در سیستم‌های توصیه‌گر

در سیستم‌های توصیه‌گر، کاربران و کالاها به بردار تبدیل می‌شوند.

کاربر:

u∈Rdu\in R^d

کالا:

v∈Rdv\in R^d

امتیاز پیش‌بینی‌شده:

r^=uTv\hat{r}=u^{T}v

است.

اگر شباهت کاربر و کالا زیاد باشد:

r^=uTv\hat{r}=u^{T}v

بزرگ‌تر خواهد بود.

این همان ایده‌ای است که در:

  • Netflix
  • Amazon
  • سیستم‌های پیشنهاد محتوا

استفاده می‌شود.

1.10.11. جبر خطی در شبکه‌های گرافی (GNN)

در Graph Neural Network داده‌ها به شکل گراف نمایش داده می‌شوند:

G=(V,E)

که:

  • V: گره‌ها
  • E: یال‌ها

هستند.

ماتریس مجاورت:

A

روابط بین گره‌ها را نشان می‌دهد.

عملیات اصلی GNN:

H(l+1)=σ(AH(l)W(l))H^{(l+1)}=\sigma(AH^{(l)}W^{(l)})

است.

که در آن:

  • A: ساختار گراف
  • H: ویژگی گره‌ها
  • : وزن شبکه

است.

یعنی حتی یادگیری روی گراف نیز با جبر خطی انجام می‌شود.

1.10.12. جبر خطی و فرآیند یادگیری

در آموزش شبکه عصبی، هدف پیدا کردن وزن‌ها است.

تابع هزینه:

J(W)

داریم.

وزن‌ها به‌روزرسانی می‌شوند:

Wnew=W−η∇J(W)W_{\text{new}}=W-\eta\nabla J(W)

که:

  • η: نرخ یادگیری
  • ΔWJ(W): گرادیان نسبت به وزن‌ها

است.

گرادیان نیز یک ساختار برداری/ماتریسی است.

بنابراین:

  • Forward Pass
  • Backpropagation
  • Optimization

همگی بر پایه جبر خطی هستند.

جمع‌بندی نهایی

در این فصل مشاهده کردیم که جبر خطی فقط یک ابزار ریاضی مقدماتی نیست؛ بلکه زبان اصلی یادگیری عمیق است.

مفهوم جبر خطیکاربرد در Deep Learning
بردارنمایش داده و ویژگی
ماتریسوزن شبکه و تبدیل ویژگی
ضرب داخلیفعالیت نورون
تبدیل خطیعملکرد لایه‌ها
Normکنترل وزن و فاصله
Eigenvalueتحلیل ساختار داده
SVDفشرده‌سازی مدل
PCAکاهش بعد
تانسورنمایش داده‌های پیچیده
Matrix Multiplicationهسته محاسبات شبکه

پیام اصلی فصل

شبکه‌های عصبی در ظاهر مدل‌هایی الهام‌گرفته از مغز هستند، اما در سطح محاسباتی، ماشین‌هایی برای انجام تبدیل‌های جبر خطی پیچیده هستند که با داده‌ها یاد می‌گیرند چگونه بهترین فضای نمایش را ایجاد کنند.

Sidebar atefi
دکتر محمدرضا عاطفی

عضو هیئت علمی دانشگاه
رئیس هیئت مدیره گروه ناب
هم بنیان گذار شرکت دانش بنیان
مشاور شرکت ها و سازمان های بزرگ کشور

آنچه می خوانید

Cover part2 optimized 300x169
هوش مصنوعی

جبر خطی پیشرفته برای یادگیری عمیق؛ آموزش SVD، PCA و کاربرد در شبکه‌های عصبی(بخش دوم)

1.7.تجزیه ماتریس‌هاMatrix Decompositions 1.7.1.چرا به تجزیه ماتریس نیاز داریم؟ ماتریس‌ها یکی از اصلی‌ترین ساختارهای محاسباتی در یادگیری عمیق هستند. در یک شبکه عصبی، ماتریس‌ها برای نمایش موارد زیر استفاده می‌شوند: یک شبکه عمیق ممکن است شامل میلیون‌ها یا میلیاردها پارامتر باشد که به شکل ماتریس ذخیره می‌شوند. برای مثال: اما

توضیحات بیشتر »
Cover part1 optimized 300x169
هوش مصنوعی

جبر خطی برای یادگیری عمیق؛ آموزش بردارها، ماتریس‌ها و مقادیر ویژه (بخش اول)

1.1.چرا جبر خطی زبان ریاضی شبکه‌های عصبی است؟ مقدمه یادگیری عمیق در ظاهر درباره ساختارهایی مانند: است، اما در سطح محاسباتی، تقریباً تمام این معماری‌ها بر یک زبان مشترک بنا شده‌اند: جبر خطی (Linear Algebra) شبکه عصبی بدون جبر خطی قابل تصور نیست؛ زیرا تمام مراحل اصلی یادگیری عمیق شامل

توضیحات بیشتر »
COVER compressed 21 300x169
هوش مصنوعی

فصل ۱5: سنجش ارزش و بازگشت سرمایه هوش مصنوعی: از  ROI تا داشبورد مدیریتی

از معیارهای ساده تا معماری ارزش چندلایه در جهانی که سرمایه‌گذاری در هوش مصنوعی به سرعت در حال رشد است، پرسش بنیادین مدیران دیگر “آیا باید سرمایه‌گذاری کنیم؟” نیست؛ بلکه “چگونه ارزش واقعی این سرمایه‌گذاری را بسنجیم؟” این فصل، چارچوبی جامع برای عبور از سنجش‌های سطحی ROI به معماری ارزش

توضیحات بیشتر »
error: محتوا غیر قابل انتخاب و کپی است.