cover part1-optimized

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

1.1.چرا جبر خطی زبان ریاضی شبکه‌های عصبی است؟

مقدمه

یادگیری عمیق در ظاهر درباره ساختارهایی مانند:

  • نورون مصنوعی
  • شبکه چندلایه
  • کانولوشن
  • Transformer
  • شبکه‌های گرافی

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

جبر خطی (Linear Algebra)

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

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

تمام این فرآیند به صورت زنجیره‌ای از عملیات زیر بیان می‌شود:

𝐱→𝐖𝐱+𝐛→f(𝐖𝐱+𝐛)\mathbf{x}\rightarrow\mathbf{W}\mathbf{x}+\mathbf{b}\rightarrow f(\mathbf{W}\mathbf{x}+\mathbf{b})

که در آن:

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

است.

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

  1.1.1. داده‌ها چگونه به زبان جبر خطی تبدیل می‌شوند؟

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

  • تصویر
  • متن
  • صدا
  • رفتار کاربر
  • معنی یک جمله

را مستقیماً درک کند.

تمام اطلاعات باید به مجموعه‌ای از اعداد تبدیل شوند.

این نمایش عددی معمولاً یک بردار (Vector) است.

مثال: نمایش یک تصویر

فرض کنید یک تصویر سیاه‌وسفید با ابعاد:

𝟐𝟖×𝟐𝟖\mathbf{28}\times\mathbf{28}

پیکسل داریم.

این تصویر شامل:

𝟕𝟖𝟒\mathbf{784}

عدد است.

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

𝐱=[x1x2x3⋮x789]\mathbf{x}=\begin{bmatrix}x_1\\x_2\\x_3\\\vdots\\x_{789}\end{bmatrix}

بنابراین:

𝐱∈ℝ784\mathbf{x}\in\mathbb{R}^{784}

یعنی تصویر در یک فضای ۷۸۴ بعدی قرار گرفته است.

مفهوم فضای ویژگی (Feature Space)

در یادگیری ماشین، داده‌ها معمولاً در یک فضای ریاضی قرار می‌گیرند.

برای مثال:

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

شبکه عصبی تلاش می‌کند این فضاها را به نمایش‌هایی تبدیل کند که اطلاعات مهم را بهتر آشکار کنند.

   1.1.2.شبکه عصبی به عنوان یک تبدیل خطی

یک نورون مصنوعی ساده را در نظر بگیرید.

ورودی:

𝐱=[x1,x2,…,xn]\mathbf{x}=[x_1,x_2,\ldots,x_n]

وزن‌ها:

𝐰=[w1,w2,…,wn]\mathbf{w}=[w_1,w_2,\ldots,w_n]

نورون ابتدا حاصل جمع وزن‌دار را محاسبه می‌کند:

𝐳=𝐰1𝐱1+𝐰2𝐱2+⋯+𝐰n𝐱n+𝐛\mathbf{z}=\mathbf{w}_1\mathbf{x}_1+\mathbf{w}_2\mathbf{x}_2+\cdots+\mathbf{w}_n\mathbf{x}_n+\mathbf{b}

این رابطه همان ضرب داخلی دو بردار است:

𝐳=𝐰T𝐱+𝐛\mathbf{z}=\mathbf{w}^{T}\mathbf{x}+\mathbf{b}

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

1.1.3.چرا ماتریس‌ها در شبکه عصبی ضروری هستند؟

فرض کنید یک شبکه دارای:

  • 1000 نمونه ورودی
  • 784 ویژگی

باشد.

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

ماتریس داده:

𝐗=[x11x12…x21x22…………]\mathbf{X}=\begin{bmatrix}x_{11}&x_{12}&\ldots\\x_{21}&x_{22}&\ldots\\\ldots&\ldots&\ldots\end{bmatrix}

ابعاد:

𝐗∈ℝm×n\mathbf{X}\in\mathbb{R}^{m\times n}

که:

  • m تعداد نمونه‌ها
  • n تعداد ویژگی‌ها

وزن‌های یک لایه:

𝐖∈ℝn×k\mathbf{W}\in\mathbb{R}^{n\times k}

خروجی:

𝐘=𝐗𝐖\mathbf{Y}=\mathbf{X}\mathbf{W}

این عملیات پایه تقریباً تمام شبکه‌های عصبی است.

 1.2. فضای برداری؛ محیط زندگی داده‌های هوشمند

1.2.1.  تعریف بردار

یک بردار مجموعه‌ای مرتب از اعداد است:

𝐯=[257]\mathbf{v}=\begin{bmatrix}2\\5\\7\end{bmatrix}

این بردار یک نقطه در فضای سه‌بعدی را نشان می‌دهد.

عملیات اصلی روی بردارها

  • جمع بردارها
𝐚+𝐛=[a1+b1a2+b2]\mathbf{a}+\mathbf{b}=\begin{bmatrix}a_1+b_1\\a_2+b_2\end{bmatrix}
  • ضرب اسکالر
c𝐯=[cv1cv2]c\mathbf{v}=\begin{bmatrix}cv_1\\cv_2\end{bmatrix}
  • ضرب داخلی
𝐚T𝐛\mathbf{a}^{T}\mathbf{b}

مثلاً:

𝐚=[1,2,3],𝐛=[4,5,6]\mathbf{a}=[1,2,3],\quad \mathbf{b}=[4,5,6]

پس:

𝐚T𝐛=1(4)+2(5)+3(6)=32\mathbf{a}^{T}\mathbf{b}=1(4)+2(5)+3(6)=32

تفسیر در یادگیری عمیق

ضرب داخلی میزان شباهت دو بردار را اندازه می‌گیرد.

برای همین در:

  • سیستم توصیه‌گر
  • موتور جستجو
  • مدل‌های زبانی
  • embedding

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

 1.2.2.ماتریس‌ها؛ ابزار اصلی تبدیل ویژگی‌ها

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

𝐀=[1234]\mathbf{A}=\begin{bmatrix}1&2\\3&4\end{bmatrix}

اما در یادگیری عمیق، ماتریس فقط یک جدول عددی نیست.

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

  • تبدیل
  • وزن
  • ارتباط
  • نگاشت بین فضاها

است.

مثال شبکه عصبی

فرض کنید:

ورودی:

𝐱∈ℝ3\mathbf{x}\in\mathbb{R}^3

داریم.

یک لایه:

𝐖=[0.20.50.10.70.30.8]\mathbf{W}=\begin{bmatrix}0.2&0.5&0.1\\0.7&0.3&0.8\end{bmatrix}

ابعاد:

𝐖∈ℝ2×3\mathbf{W}\in\mathbb{R}^{2\times 3}

خروجی:

𝐖𝐱\mathbf{W}\mathbf{x}

یک بردار دو بعدی خواهد بود.

یعنی شبکه:

فضای ۳ بعدی را به فضای ۲ بعدی منتقل کرده است.

نکته مهم

هر لایه شبکه عصبی را می‌توان به صورت یک نگاشت بین فضاهای مختلف دید:

ℝn→ℝm\mathbb{R}^n\rightarrow\mathbb{R}^m

مثلاً:

تمرین مفهومی فصل

  • سؤال 1

چرا می‌توان گفت شبکه عصبی یک مدل جبر خطی + غیرخطی است؟

  • سؤال 2

اگر یک تصویر 32×32 RGB داشته باشیم، چند ویژگی اولیه دارد؟

  • سؤال 3

در رابطه:

𝐳=𝐖𝐱+𝐛\mathbf{z}=\mathbf{W}\mathbf{x}+\mathbf{b}

1.3 دستگاه‌های خطی (Linear Systems)

 1.3.1 مسئله بنیادی دستگاه‌های خطی

یکی از مهم‌ترین مسائل در ریاضیات و علوم مهندسی، یافتن مقادیر مجهول در مجموعه‌ای از روابط است.

فرض کنید سه متغیر مجهول داریم:

x1 , x2 , x3

و سه رابطه خطی:

{2x1+x2+x3=5x1+3x2+2x3=103x1+2x2+x3=8\begin{cases} 2x_1+x_2+x_3=5\\ x_1+3x_2+2x_3=10\\ 3x_1+2x_2+x_3=8 \end{cases}

هدف، یافتن مقادیری است که هر سه معادله را همزمان ارضا کنند.

این مجموعه از معادلات یک دستگاه خطی نامیده می‌شود.

1.3.2.نمایش ماتریسی دستگاه خطی

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

Ax=b{Ax}={b}

که در آن:

ماتریس ضرایب:

𝐀=[211132321]\mathbf{A}=\begin{bmatrix}2&1&1\\1&3&2\\3&2&1\end{bmatrix}

بردار مجهولات:

𝐱=[x1x2x3]\mathbf{x}=\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}

بردار خروجی:

𝐛=[5108]\mathbf{b}=\begin{bmatrix}5\\10\\8\end{bmatrix}

بنابراین:

[211132321][x1x2x3]=[5108]\begin{bmatrix}2&1&1\\1&3&2\\3&2&1\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}5\\10\\8\end{bmatrix}

1.3.3.دیدگاه هندسی دستگاه خطی

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

در فضای دو بعدی:

a1x+a2y=ba_1 x+a_2 y=b

یک خط را تشکیل می‌دهد.

در فضای سه بعدی:

a1x+a2y+a3z=ba_1 x+a_2 y+a_3 z=b

یک صفحه ایجاد می‌کند.

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

حالت‌های ممکن جواب

یک دستگاه خطی سه حالت دارد:

1- جواب یکتا (Unique Solution)

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

2- بی‌نهایت جواب

معادلات یک اطلاعات مشابه ارائه می‌کنند.

مثلاً:

2x+4y=102x+4y=10

و:

x+2y=5x+2y=5

هر دو یک خط را نمایش می‌دهند.

3- بدون جواب

معادلات با هم سازگار نیستند.

مثلاً:

x+y=2xx+y=2x

و:

x+y=5x+y=5

 1.3.4. حل دستگاه‌های خطی و ارتباط آن با یادگیری عمیق

در یادگیری عمیق، معمولاً هدف حل مستقیم:

𝐀𝐱=𝐛\mathbf{A}\mathbf{x}=\mathbf{b}

نیست.

اما مفهوم تبدیل خطی بسیار مهم است.

هر لایه شبکه عصبی:

𝐳=𝐖𝐱+𝐛\mathbf{z}=\mathbf{W}\mathbf{x}+\mathbf{b}

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

ماتریس:

W{W}

مشابه ماتریس ضرایب در دستگاه خطی است.

اما تفاوت مهم وجود دارد:

در دستگاه‌های خطی کلاسیک:

W{W}

مشخص و ثابت است.

در شبکه عصبی:

W{W}

پارامتری است که طی فرآیند آموزش یاد گرفته می‌شود.

1.3.5.یادگیری وزن‌ها به عنوان یافتن بهترین تبدیل

فرض کنید داده آموزشی داریم:

𝐗={x1,x2,…,xn}\mathbf{X}=\{x_1,x_2,\ldots,x_n\}

و خروجی‌های واقعی:

Y{Y}

شبکه تلاش می‌کند ماتریسی پیدا کند که:

𝐗𝐖≈𝐘\mathbf{X}\mathbf{W}\approx\mathbf{Y}

را ایجاد کند.

یعنی وزن‌ها باید به گونه‌ای تنظیم شوند که بهترین تبدیل بین ورودی و خروجی ساخته شود.

مثال ساده

فرض کنید:

ورودی:

[23]\begin{bmatrix}2\\3\end{bmatrix}

وزن:

[0.5110.2]\begin{bmatrix}0.5&1\\1&0.2\end{bmatrix}

خروجی:

Wx{Wx}

خواهد بود:

[0.5110.2][23]\begin{bmatrix}0.5&1\\1&0.2\end{bmatrix}\begin{bmatrix}2\\3\end{bmatrix}

محاسبه:

عنصر اول:

(𝟎.𝟓)(𝟐)+(𝟏)(𝟑)=𝟒(\mathbf{0}.\mathbf{5})(\mathbf{2})+(\mathbf{1})(\mathbf{3})=\mathbf{4}

عنصر دوم:

(𝟏)(𝟐)+(𝟎.𝟐)(𝟑)=𝟐.𝟔(\mathbf{1})(\mathbf{2})+(\mathbf{0}.\mathbf{2})(\mathbf{3})=\mathbf{2}.\mathbf{6}

پس:

𝐖𝐱=[42.6]\mathbf{W}\mathbf{x}=\begin{bmatrix}4\\2.6\end{bmatrix}

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

  1.3.6. معکوس ماتریس و حل دستگاه

اگر ماتریس:

A{A}

معکوس داشته باشد:

A−𝟏{A}^{-\mathbf{1}}

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

Ax=b{Ax}={b}

دو طرف را در:

A−𝟏{A}^{-\mathbf{1}}

ضرب می‌کنیم

A−1Ax=A−1b{A}^{-{1}}{Ax}={A}^{-{1}}{b}

و چون:

A−1A=I{A}^{-{1}}{A}={I}

داریم:

x=A−1b{x}={A}^{-{1}}{b}

اما در یادگیری عمیق معمولاً این روش استفاده نمی‌شود.

چرا؟

زیرا شبکه‌های عمیق دارای:

  • میلیون‌ها پارامتر
  • ماتریس‌های بسیار بزرگ
  • داده‌های عظیم

هستند.

محاسبه معکوس ماتریس بسیار پرهزینه است.

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

  • Gradient Descent
  • Adam
  • SGD

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

 1.3.7.  ارتباط دستگاه‌های خطی باBackpropagation

در آموزش شبکه عصبی:

ابتدا:

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

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

سپس خطا:

L(y,y^){L}({y},\hat{{y}})

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

بعد گرادیان وزن‌ها:

∂L∂W\frac{\partial L}{\partial W}

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

یعنی حتی مرحله آموزش نیز بر پایه محاسبات ماتریسی است.

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

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

  • دستگاه خطی مجموعه‌ای از روابط همزمان است.
  • نمایش فشرده آن:
Ax=b{Ax}={b}

است.

  • شبکه عصبی نیز از تبدیل‌های خطی استفاده می‌کند:
Wx+b{Wx}+{b}
  • تفاوت اصلی این است که در شبکه عصبی، ماتریس وزن‌ها یاد گرفته می‌شود.
  • آموزش شبکه در واقع یافتن بهترین ماتریس تبدیل برای داده‌ها است.

 1.4.استقلال خطی، رتبه و پایهLinear Independence, Rank and Basis

مقدمه

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

آیا ویژگی‌هایی که داریم واقعاً اطلاعات جدیدی اضافه می‌کنند یا فقط تکرار اطلاعات قبلی هستند؟

این پرسش مستقیماً با مفهوم استقلال خطی ارتباط دارد.

 1.4.1.مفهوم استقلال خطی (Linear Independence)

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

ایده اصلی:

مجموعه‌ای از بردارها مستقل خطی هستند اگر هیچ‌کدام از آن‌ها را نتوان با ترکیب خطی سایر بردارها ساخت.

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

اگر هر بردار اطلاعات جدیدی به مجموعه اضافه کند، آن بردار مستقل است.

فرض کنید چند بردار داریم:

𝐯1,𝐯2,…,𝐯n\mathbf{v}_1,\mathbf{v}_2,\ldots,\mathbf{v}_n

این بردارها مستقل خطی هستند اگر تنها جواب معادله:

a1𝐯1+a2𝐯2+…+an𝐯n=0a_1\mathbf{v}_1+a_2\mathbf{v}_2+\ldots+a_n\mathbf{v}_n=0

برابر باشد با:

a1=a2=…=an=0a_1=a_2=\ldots=a_n=0

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

مثال هندسی

دو بردار زیر را در نظر بگیرید:

𝐯1=[10]\mathbf{v}_1=\begin{bmatrix}1\\0\end{bmatrix}

و:

𝐯2=[10]\mathbf{v}_2=\begin{bmatrix}1\\0\end{bmatrix}

این دو بردار مستقل هستند.

زیرا هیچ ضریبی از یکی نمی‌تواند دیگری را ایجاد کند.

آن‌ها دو جهت مستقل در فضای دوبعدی ایجاد می‌کنند.

اما بردارهای زیر را ببینید:

𝐯1=[12]\mathbf{v}_1=\begin{bmatrix}1\\2\end{bmatrix}

مشاهده می‌کنیم:

𝐯2=[24]\mathbf{v}_2=\begin{bmatrix}2\\4\end{bmatrix}

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

این دو بردار وابسته خطی هستند.

 1.4.2.استقلال خطی در داده‌های یادگیری ماشین

در یادگیری ماشین، ویژگی‌های داده معمولاً به صورت بردار نمایش داده می‌شوند.

مثلاً برای پیش‌بینی قیمت خانه:

𝐱=[متراژ,تعداد اتاق,سن ساختمان,مساحت زمین]\mathbf{x}=[\text{متراژ},\text{تعداد اتاق},\text{سن ساختمان},\text{مساحت زمین}]

هر ویژگی یک بعد از فضای داده است.

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

مثال

فرض کنید دو ویژگی داریم:

  • ویژگی اول:
x1=متراژ خانهx_1=\text{متراژ خانه}
  • ویژگی دوم:
x2=2×متراژ خانهx_2=2\times\text{متراژ خانه}

حالا ویژگی دوم اطلاعات جدیدی ارائه نمی‌دهد.

از نظر ریاضی:

x2=2x1x_2=2x_1

بنابراین:

x1,x2x_1,x_2

وابسته خطی هستند.

چرا این موضوع مهم است؟

وجود ویژگی‌های وابسته باعث مشکلاتی می‌شود:

1- افزایش تعداد پارامترها

مدل مجبور است وزن‌هایی را برای اطلاعات تکراری یاد بگیرد.

2-کاهش تفسیرپذیری

مشخص نیست کدام ویژگی واقعاً مهم است.

3- مشکل در بهینه‌سازی

وجود همبستگی شدید بین ویژگی‌ها می‌تواند سطح خطا را پیچیده‌تر کند.

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

  • Regularization
  • Batch Normalization
  • Representation Learning

تا حدی کنترل می‌شود.

 1.4.3.مفهوم پایه (Basis)

بعد از مفهوم استقلال خطی، باید مفهوم پایه را درک کنیم.

پایه یعنی:

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

مثلاً در فضای دوبعدی:

R 𝟐{{R}\ }^\mathbf{2}

دو بردار مستقل نیاز داریم:

𝐞1=[10]\mathbf{e}_1=\begin{bmatrix}1\\0\end{bmatrix}

و:

𝐞2=[01]\mathbf{e}_2=\begin{bmatrix}0\\1\end{bmatrix}

هر نقطه در این فضا را می‌توان با ترکیب این دو ساخت:

𝐱=a𝐞1+b𝐞2\mathbf{x}=a\mathbf{e}_1+b\mathbf{e}_2

مثلاً:

𝐱=[35]\mathbf{x}=\begin{bmatrix}3\\5\end{bmatrix}

برابر است با:

3[10]+5[10]3\begin{bmatrix}1\\0\end{bmatrix}+5\begin{bmatrix}1\\0\end{bmatrix}

 1.4.4. پایه در یادگیری عمیق؛ مفهوم نمایش ویژگی

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

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

مثال:

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

𝟕𝟖𝟒\mathbf{784}

بعد باشد.

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

شبکه عصبی یاد می‌گیرد ویژگی‌های مهم را استخراج کند:

𝐱raw→𝐡\mathbf{x}_{\text{raw}}\rightarrow\mathbf{h}

که:

h {h}\

یک نمایش جدید است.

مثلاً:

فضای اولیه:

R𝟕𝟖𝟒 {R}^{\mathbf{784}}\

فضای ویژگی:

R 𝟏𝟐𝟖{{R}\ }^{\mathbf{128}}

اما این ۱۲۸ ویژگی جدید ممکن است اطلاعات مهم‌تری از ۷۸۴ مقدار اولیه داشته باشند.

1.4.5.رتبه ماتریس (Matrix Rank)

رتبه یکی از مهم‌ترین مفاهیم جبر خطی است.

تعریف:

رتبه یک ماتریس تعداد ابعاد مستقل اطلاعات موجود در آن ماتریس است.

اگر ماتریس:

A {A}\

داشته باشیم:

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

یعنی این ماتریس دارای:

r {r}\

جهت مستقل است.

مثال

ماتریس:

𝐀=[1224]\mathbf{A}=\begin{bmatrix}1&2\\2&4\end{bmatrix}

سطر دوم:

𝟐× \mathbf{2}\times\

.سطر اول است.

پس فقط یک اطلاعات مستقل داریم:

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

اما:

B= [𝟏𝟎𝟎𝟏]{B}=\ \left[\begin{matrix}\mathbf{1}&\mathbf{0}\\\mathbf{0}&\mathbf{1}\\\end{matrix}\right]

دارای دو جهت مستقل است:

Rank(B)=2 {Rank}({B})={2}\

1.4.6.رتبه و ظرفیت اطلاعاتی شبکه عصبی

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

یک ماتریس وزن:

W{W}

ممکن است:

W∈R 𝟏𝟎𝟎𝟎×𝟏𝟎𝟎𝟎{{W}\in{R}\ }^{\mathbf{1000}\times\mathbf{1000}}

باشد.

از نظر تعداد پارامتر:

یک میلیون مقدار دارد.

اما اگر:

Rank(W)<<𝟏𝟎𝟎𝟎 {Rank}({W})<<\mathbf{1000}\

باشد، یعنی اطلاعات واقعی کمتر از تعداد پارامترها است.

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

  • Low Rank Approximation
  • Matrix Factorization
  • LoRA در مدل‌های زبانی بزرگ

1.4.7.ارتباط Rank با شبکه‌های عمیق بزرگ

مدل‌های مدرن مانند:

  • Transformer
  • Large Language Models

دارای میلیاردها پارامتر هستند.

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

یعنی:

W≈UVT{{W}\approx{UV}}^{T}

به جای ذخیره مستقیم W.

مزایا:

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

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

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

مفهوممعنی
استقلال خطیهر بردار اطلاعات جدید اضافه می‌کند
وابستگی خطیاطلاعات تکراری وجود دارد
پایهمجموعه‌ای برای ساخت کل فضا
رتبهتعداد ابعاد مستقل اطلاعات
Rank پاییننمایش فشرده داده

ارتباط با یادگیری عمیق

شبکه عصبی:

  • داده را به فضای جدید منتقل می‌کند.
  • ویژگی‌های مستقل‌تر استخراج می‌کند.
  • نمایش کم‌بعد و غنی ایجاد می‌کند.
  • از ساختارهای کم‌رتبه برای کاهش پیچیدگی استفاده می‌کند.

1.5.نرم‌ها و فاصله‌هاNorms and Distances

1.5.1.چرا مفهوم اندازه در یادگیری عمیق مهم است؟

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

مثلاً:

  • طول یک خط
  • فاصله دو نقطه
  • اندازه یک جسم

اما در یادگیری ماشین، داده‌ها معمولاً در فضاهای بسیار بزرگ قرار دارند.

مثلاً:

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

بنابراین باید بتوانیم مفهوم:

  • اندازه
  • فاصله
  • شباهت

را در فضای ریاضی تعریف کنیم.

این مفهوم با Norm و Distance بیان می‌شود.

1.5.2.مفهوم نرم (Norm)

نرم یک تابع ریاضی است که اندازه یک بردار را مشخص می‌کند.

برای یک بردار:

𝐱=[x1x2x3⋮xn]\mathbf{x}=\begin{bmatrix}x_1\\x_2\\x_3\\\vdots\\x_n\end{bmatrix}

نرم آن را به یک عدد تبدیل می‌کند:

||x||\mid\mid{x}\mid\mid

که نشان‌دهنده بزرگی بردار است.

یک نرم باید سه ویژگی اصلی داشته باشد:

ویژگی اول: مثبت بودن

||x||≥𝟎\mid\mid{x}\mid\mid\geq\mathbf{0}

اندازه هیچ برداری منفی نیست.

ویژگی دوم: صفر بودن فقط برای بردار صفر

||x||=𝟎\mid\mid{x}\mid\mid=\mathbf{0}

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

x=𝟎{x}=\mathbf{0}

باشد.

ویژگی سوم: خاصیت همگنی

اگر بردار را در یک عدد ضرب کنیم:

a𝐱=a⋅𝐱a\mathbf{x}=a\cdot\mathbf{x}

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

1.5.3.نرم L2 یا فاصله اقلیدسی

معروف‌ترین نرم در یادگیری ماشین، نرم اقلیدسی یا L2 است.

فرمول:

‖𝐱‖2=x12+x22+⋯+xn2\|\mathbf{x}\|_2=\sqrt{x_1^2+x_2^2+\cdots+x_n^2}

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

مثال

بردار:

𝐱=[34]\mathbf{x}=\begin{bmatrix}3\\4\end{bmatrix}

داریم:

‖𝐱‖2=32+42=9+16=5\|\mathbf{x}\|_2=\sqrt{3^2+4^2}=\sqrt{9+16}=5

این همان قضیه فیثاغورس است.

کاربرد L2 در شبکه عصبی

1. اندازه وزن‌ها

فرض کنید وزن‌های شبکه:

𝐖=[0.50.20.10.8]\mathbf{W}=\begin{bmatrix}0.5&0.2\\0.1&0.8\end{bmatrix}

باشند.

می‌توانیم اندازه کل وزن‌ها را با نرم L2 بسنجیم.

2. جلوگیری از بیش‌برازش (Regularization)

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

Lossnew=Loss+λ‖𝐖‖2\text{Loss}_{\text{new}}=\text{Loss}+\lambda\|\mathbf{W}\|_2

که به آن:

L2 RegularizationL_2\ \text{Regularization}

گفته می‌شود.

ایده:

اگر وزن‌ها خیلی بزرگ شوند، مدل بیش از حد به داده آموزشی وابسته می‌شود.

بنابراین جریمه‌ای برای وزن‌های بزرگ اضافه می‌کنیم.

1.5.4.نرم L1

نرم L1 به صورت زیر تعریف می‌شود:

X1=x1+x2+⋯+xnX_1=x_1+x_2+\cdots+x_n

مثال

𝐱=[3,−4,2]\mathbf{x}=[3,-4,2]

پس:

X1=3+(−4)+2=3+4+2=9X_1=3+(-4)+2=3+4+2=9

تفاوت L1 و L2

ویژگیL1L2
فرمولجمع قدرمطلقریشه مجموع مربع‌ها
اثر روی وزن‌هاصفر کردن برخی وزن‌هاکوچک کردن همه وزن‌ها
ایجاد sparsityزیادکم
کاربردانتخاب ویژگیRegularization

1.5.5.مفهوم فاصله (Distance)

نرم اندازه یک بردار را بیان می‌کند.

اما فاصله، رابطه بین دو نقطه را مشخص می‌کند.

برای دو بردار:

x{x}

و:

y{y}

فاصله اقلیدسی:

d(𝐱,𝐲)=‖𝐱−𝐲‖2d(\mathbf{x},\mathbf{y})=\|\mathbf{x}-\mathbf{y}\|_2

است.

مثال

دو نقطه:

𝐱=[1,2],𝐲=[4,6]\mathbf{x}=[1,2],\quad \mathbf{y}=[4,6]

اختلاف:

𝐱−𝐲=[−3,−4]\mathbf{x}-\mathbf{y}=[-3,-4]

فاصله:

d=(−3)2+(−4)2=5d=\sqrt{(-3)^2+(-4)^2}=5

1.5.6.فاصله در فضای ویژگی شبکه عصبی

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

فرض کنید شبکه یک تصویر را به یک بردار ویژگی تبدیل کند:

تصویر A:

zA=[𝟎.𝟐 ,𝟎.𝟓 ,𝟎.𝟕]{z}_{A}=[\mathbf{0}.\mathbf{2}\ ,\mathbf{0}.\mathbf{5}\ ,\mathbf{0}.\mathbf{7}]

تصویر B:

zB=[𝟎.𝟑 ,𝟎.𝟔 ,𝟎.𝟖]{z}_{B}=[\mathbf{0}.\mathbf{3}\ ,\mathbf{0}.\mathbf{6}\ ,\mathbf{0}.\mathbf{8}]

اگر:

zA−zBz_A-z_B

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

این مفهوم پایه بسیاری از مدل‌ها است:

  • Face Recognition
  • Recommendation Systems
  • Search Engines
  • Contrastive Learning

1.5.7.شباهت کسینوسی (Cosine Similarity)

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

شباهت کسینوسی:

Similarity(𝐱,𝐲)=𝐱T𝐲‖𝐱‖2‖𝐲‖2\text{Similarity}(\mathbf{x},\mathbf{y})=\frac{\mathbf{x}^{T}\mathbf{y}}{\|\mathbf{x}\|_2\|\mathbf{y}\|_2}

این مقدار بین:

−𝟏-\mathbf{1}

تا:

𝟏\mathbf{1}

قرار دارد.

تفسیر هندسی

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

صفر باشد:

بردارها هم‌جهت هستند:

Similarity=𝟏{Similarity}=\mathbf{1}

90 درجه باشد:

ارتباطی ندارند:

Similarity=𝟎{Similarity}=\mathbf{0}

مخالف جهت باشند:

Similarity=−𝟏{Similarity}=-\mathbf{1}

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

مدل‌های زبانی بزرگ مانند Transformer کلمات و جملات را به بردار تبدیل می‌کنند.

مثلاً:

king

و:

queen

در فضای embedding قرار می‌گیرند.

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

فاصله زاویه‌ای آن‌ها کم است.

به همین دلیل می‌توان پرسید:

کدام جمله به جمله موردنظر نزدیک‌تر است؟

با محاسبه:

CosineSimilarity

1.5.9.نرم فروبنیوس (Frobenius Norm)

برای ماتریس‌ها، مشابه نرم L2، نرم فروبنیوس استفاده می‌شود.

اگر:

𝐀=[a11a12a21a22]\mathbf{A}=\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{bmatrix}

باشد:

‖𝐀‖F=a112+a122+a212+a222\|\mathbf{A}\|_F=\sqrt{a_{11}^2+a_{12}^2+a_{21}^2+a_{22}^2}

کاربردها:

  • اندازه ماتریس وزن شبکه
  • مقایسه دو مدل
  • تحلیل تغییرات وزن‌ها
  • Regularization

1.5.10.ارتباط نرم‌ها با آموزش شبکه عصبی

در فرآیند آموزش، هدف شبکه کاهش خطا است.

تابع هدف:

J(W){J}({W})

معمولاً شامل دو بخش است:

بخش اول:

خطای پیش‌بینی:

Loss(y,y^){Loss}({y},\hat{{y}})

بخش دوم:

کنترل پیچیدگی مدل:

λ||W||{\lambda}\mid\mid{W}\mid\mid

بنابراین:

J(W)=Loss+λ||W||{J}({W})={Loss}+{\lambda}\mid\mid{W}\mid\mid

این رابطه نشان می‌دهد که جبر خطی مستقیماً در یادگیری مدل دخالت دارد.

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

مفهومکاربرد در Deep Learning
Normاندازه بردار و وزن
L1انتخاب ویژگی و sparsity
L2Regularization
Distanceمقایسه نمونه‌ها
Cosine Similarityمقایسه embeddingها
Frobenius Normتحلیل ماتریس وزن

1.6.مقادیر ویژه و بردارهای ویژهEigenvalues and Eigenvectors

1.6.1.چرا مقادیر ویژه مهم هستند؟

در بسیاری از مسائل یادگیری ماشین، ما با تبدیل‌های خطی سروکار داریم.

یک ماتریس:

AA

می‌تواند یک بردار ورودی را تغییر دهد:

y=Axy=Ax

این تغییر ممکن است شامل:

  • تغییر جهت
  • تغییر اندازه
  • چرخش
  • کشیدگی
  • فشردگی

باشد.

اما سؤال مهم این است:

آیا جهاتی وجود دارند که بعد از اعمال این تبدیل، جهت خود را حفظ کنند؟

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

این جهت‌ها همان بردارهای ویژه هستند.

1.6.2.تعریف بردار ویژه (Eigenvector)

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

AA

را روی بردار:

v{v}

اعمال کنیم:

Av{Av}

اگر نتیجه فقط باعث تغییر اندازه بردار شود و جهت آن تغییر نکند، یعنی:

Av=λv{Av}={\lambda v}

در این رابطه:

  • v : بردار ویژه (Eigenvector)
  • λ: مقدار ویژه (Eigenvalue)

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

به زبان ساده:بردار ویژه، جهتی در فضای داده است که یک تبدیل خطی آن را نمی‌چرخاند؛ فقط آن را بزرگ‌تر یا کوچک‌تر می‌کند.

1.6.3.شهود هندسی Eigenvector

فرض کنید یک ماتریس مانند یک دستگاه تغییر شکل عمل کند.

یک شبکه مختصات را تصور کنید:

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

اما برخی جهت‌ها فقط کشیده یا فشرده می‌شوند.

این جهت‌ها Eigenvector هستند.

1.6.4.محاسبه مقادیر ویژه

برای یافتن Eigenvalue باید رابطه زیر را حل کنیم:

Av=λv{Av}={\lambda v}

می‌توانیم بنویسیم:

Av−λv=0{Av}-{\lambda v}={0}

عامل‌گیری:

(A−λI)v=0({A}-{\lambda I}){v}={0}

برای اینکه جواب غیرصفر داشته باشیم، باید:

det(A−λI)=0{det}({A}-{\lambda I})={0}

باشد.

این معادله را:

معادله مشخصه (Characteristic Equation)

می‌نامیم.

مثال ساده

ماتریس:

𝐀=[3002]\mathbf{A}=\begin{bmatrix}3&0\\0&2\end{bmatrix}

را در نظر بگیرید.

بردار:

v𝟏=[𝟏𝟎]{v}_\mathbf{1}=\left[\begin{matrix}\mathbf{1}\\\mathbf{0}\\\end{matrix}\right]

را اعمال کنیم:

Av𝟏=[𝟑𝟎𝟎𝟐] [𝟏𝟎]{A}{v}_\mathbf{1}=\left[\begin{matrix}\mathbf{3}&\mathbf{0}\\\mathbf{0}&\mathbf{2}\\\end{matrix}\right]\ \left[\begin{matrix}\mathbf{1}\\\mathbf{0}\\\end{matrix}\right]

نتیجه:

=[𝟑𝟎]=\left[\begin{matrix}\mathbf{3}\\\mathbf{0}\\\end{matrix}\right]

یعنی:

Av1=3v𝟏{A}{v}_{1}={3}{v}_\mathbf{1}

پس:

λ=𝟑{\lambda}=\mathbf{3}

برای بردار:

v𝟐=[𝟎𝟏]{v}_\mathbf{2}=\left[\begin{matrix}\mathbf{0}\\\mathbf{1}\\\end{matrix}\right]

داریم:

Av𝟏= [𝟎𝟐]{A}{v}_\mathbf{1}=\ \left[\begin{matrix}\mathbf{0}\\\mathbf{2}\\\end{matrix}\right]

پس:

λ=𝟐{\lambda}=\mathbf{2}

1.6.5.ارتباط Eigenvalue با اهمیت اطلاعات

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

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

هر جهت:

v𝟏{v}_\mathbf{1}

یک الگوی تغییر را نشان می‌دهد.

مقدار ویژه:

λ1=100,λ2=20,λ3=2\lambda_1=100,\quad \lambda_2=20,\quad \lambda_3=2

نشان می‌دهد این جهت چقدر اهمیت دارد.

مثلاً:

فرض کنید:

یعنی:

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

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

PCA

است.

1.6.6.ارتباط با تحلیل مؤلفه اصلی (PCA)

PCA تلاش می‌کند داده را به جهاتی منتقل کند که بیشترین تغییرات اطلاعاتی را دارند.

این جهت‌ها همان بردارهای ویژه ماتریس کوواریانس هستند.

مراحل PCA:

  1. مرکز کردن داده‌ها
𝐗−𝐗\mathbf{X}-\overline{\mathbf{X}}
  1. محاسبه کوواریانس:
𝐂=1n𝐗T𝐗\mathbf{C}=\frac{1}{n}\mathbf{X}^{T}\mathbf{X}
  1. محاسبه:
Cv=λv{Cv}={\lambda v}
  1. انتخاب بزرگ‌ترین Eigenvalueها

نتیجه:

داده در فضای جدیدی قرار می‌گیرد که مؤلفه‌های مهم‌تر در آن حفظ شده‌اند.

1.6.7.کاربرد Eigenvalue در شبکه‌های عصبی

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

1. تحلیل فضای ویژگی

لایه‌های شبکه عصبی:

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

نمایش جدیدی از داده ایجاد می‌کنند.

با تحلیل Eigenvalue می‌توان فهمید:

  • کدام ویژگی‌ها مهم‌تر هستند.
  • آیا فضای ویژگی بیش از حد فشرده شده است.
  • آیا اطلاعات از بین رفته است.

2. تحلیل ماتریس وزن‌ها

وزن‌های یک شبکه:

W{W}

یک تبدیل خطی ایجاد می‌کنند.

بررسی ساختار طیفی آن:

Eigenvalue(W)

اطلاعاتی درباره:

  • پایداری آموزش
  • رفتار گرادیان
  • پیچیدگی مدل

ارائه می‌دهد.

1.6.8.ارتباط با مشکل انفجار و ناپدید شدن گرادیان

در شبکه‌های عمیق، گرادیان‌ها از ضرب چندین ماتریس عبور می‌کنند:

𝐖1𝐖2𝐖3…𝐖n\mathbf{W}_1\mathbf{W}_2\mathbf{W}_3\ldots\mathbf{W}_n

رفتار این ضرب به مقادیر ویژه ماتریس‌ها وابسته است.

اگر مقدار ویژه بسیار بزرگ باشد:

λ>𝟏{\lambda}>\mathbf{1}

ممکن است گرادیان افزایش یابد.

نتیجه:

Exploding Gradient{Exploding}\ {Gradient}

اگر:

λ<𝟏{\lambda}<\mathbf{1}

باشد:

Vanishing Gradient{Vanishing}\ {Gradient}

رخ می‌دهد.

1.6.9.شعاع طیفی (Spectral Radius)

یکی از مفاهیم مهم در تحلیل شبکه‌ها:

ρ(A)=max|λi|{\rho}({A})={max}\mid{\lambda}_{i}\mid

است.

یعنی بزرگ‌ترین مقدار مطلق Eigenvalue.

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

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

شود.

1.6.10. ارتباط با شبکه‌های بازگشتی (RNN)

در RNN:

𝐡t=𝐟(𝐖𝐡t−1+𝐔𝐱t)\mathbf{h}_t=\mathbf{f}(\mathbf{W}\mathbf{h}_{t-1}+\mathbf{U}\mathbf{x}_t)

حالت پنهان چندین بار با ماتریس:

W

ضرب می‌شود.

پس:

Wt{W}^{t}

در طول زمان ایجاد می‌شود.

رفتار:

Wt{W}^{t}

به Eigenvalueهای W وابسته است.

اگر:

|λ|<1|\mid{\lambda}\mid<{1}|

اطلاعات گذشته سریع کاهش می‌یابد.

اگر:

|λ|>1\mid{\lambda}\mid>{1}

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

1.6.11. Eigenvalue و یادگیری نمایش (Representation Learning)

یکی از اهداف Deep Learning یافتن فضای نمایش مناسب است.

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

ورودی:

x{x}

را به:

h{h}

تبدیل کند:

h=f(Wx){h}={f}({W}_{x})

این فضای جدید دارای ساختار هندسی جدید است.

تحلیل Eigenvalue کمک می‌کند بفهمیم:

  • چه ابعادی اطلاعات بیشتری دارند؟
  • آیا فضای ویژگی فشرده شده؟
  • آیا ویژگی‌های مهم حفظ شده‌اند؟

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

مفهوممعنیکاربرد
Eigenvectorجهتی که تغییر جهت نمی‌دهدتحلیل فضا
Eigenvalueمیزان تغییر در آن جهتاهمیت اطلاعات
Characteristic Equationروش یافتن Eigenvalueمحاسبات ماتریسی
PCAانتخاب جهت‌های مهمکاهش بعد
Spectral Radiusبزرگ‌ترین Eigenvalueپایداری شبکه

نکته کلیدی

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

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: محتوا غیر قابل انتخاب و کپی است.