هوش مصنوعی · معماری شناختی · یادگیری عمیق

Latent Variable؛ از یک مفهوم آماری تا بخشی از معماری هوش خودمختار

بررسی مفهوم Latent Variable در معماری هوش مصنوعی خودمختار یان لکان
Latent Variable Yann LeCun World Model JEPA EBM یادگیری عمیق

مقدمه: اولین مواجهه با یک مفهوم آشنا اما ناآشنا

اولین بار که با مفهوم Latent Variable به‌صورت جدی مواجه شدم، در مقاله‌ی یان لکان با عنوان "A Path Towards Autonomous Machine Intelligence" (۲۰۲۲) بود. چیزی که برای من جالب بود، فقط خودِ واژه‌ی «latent» نبود، بلکه جایگاهی بود که این مفهوم در تصویرِ لکان از یک ماشینِ هوشمند و خودمختار پیدا می‌کرد. در این معماری، مفاهیمی مانند World Model، Energy-Based Model، Latent Variables، JEPA، Planning و Uncertainty در کنار یکدیگر قرار می‌گیرند تا ماشین بتواند جهان را از طریقِ مشاهده یاد بگیرد، وضعیتِ آینده را پیش‌بینی کند، پیامدِ اعمالِ خود را تصور کند و بر اساسِ آن برای عمل تصمیم بگیرد.

خودِ لکان نیز در ابتدای مقاله تأکید می‌کند که این نوشته یک position paper است که هدفِ آن ارائه‌ی یک مسیر و معماریِ پیشنهادی برای ساختِ ماشین‌های خودمختار است، نه معرفیِ یک الگوریتمِ نهایی و کامل.

برای درک بهتر جایگاه این مفهوم در کل معماری، می‌توان آن را در کنار معماری هوش خودمختار لکان و همچنین مباحث Energy-Based Models مطالعه کرد؛ زیرا Latent Variable در این نگاه، جدا از World Model و مدل‌های انرژی‌محور فهمیده نمی‌شود.

مفهوم Latent Variable در معماری هوش خودمختار یان لکان
شکل ۱: نقش Latent Variable در معماری شناختی پیشنهادی یان لکان

۱. تعریفِ اولیه؛ Latent Variable چیست؟

در نگاه اول، برداشتِ من از واژه‌ی Latent بسیار ساده بود: چیزی که پنهان است و مستقیماً آن را مشاهده نمی‌کنیم.

مثلاً اگر تصویرِ یک خودرو را ببینم، خودِ خودرو برای من قابلِ مشاهده است، اما نمی‌توانم مستقیماً بفهمم راننده در لحظه‌ی بعد چه خواهد کرد. آیا به چپ می‌پیچد؟ مستقیم حرکت می‌کند؟ ترمز می‌کند؟ بنابراین در یک برداشتِ اولیه، می‌توانم بگویم «نیتِ راننده» یک عاملِ پنهان است.

اما وقتی متنِ لکان را دقیق‌تر خواندم، متوجه شدم که این تعریف برای Latent، بیش از اندازه محدود است. Latent در اینجا الزاماً به معنی «یک شیء یا حقیقتِ پنهان در جهان» نیست؛ بلکه می‌تواند متغیری باشد که مقدارِ آن مشاهده نشده یا مستقیماً از ورودی قابلِ استخراج نیست و برای توضیحِ رابطه‌ی بینِ آنچه می‌بینیم و آنچه می‌خواهیم پیش‌بینی کنیم، موردِ نیاز است.

۲. تعریفِ دقیق‌تر از نگاهِ لکان

لکان در بخش "Latent-Variable Energy-Based Model" تعریفی ارائه می‌دهد که به‌نظر من برای فهمِ کلِ ایده بسیار مهم است:

"The latent variable can be seen as parameterizing the set of possible relationships between an x and a set of compatible y."

و بلافاصله اضافه می‌کند:

"Latent variables represent information about y that cannot be extracted from x."

این دو جمله باعث شد نگاهِ من به Latent تغییر کند. دیگر Latent را صرفاً «اطلاعاتِ پنهان» نمی‌دیدم، بلکه آن را به‌عنوانِ متغیری برای توصیف یا پارامتری کردنِ مجموعه‌ای از روابط و حالت‌هایِ ممکن درک کردم.

به‌بیانِ ریاضی، اگر داشته باشیم:

x = وضعیتِ فعلیِ جهان
y = وضعیتِ آینده

آنگاه یک Latent Variable z به‌صورتِ مفهومی می‌تواند در رابطه‌ی زیر ظاهر شود:

y = f(x, z)

و z نشان‌دهنده‌ی آن بخش از اطلاعاتِ مربوط به y است که از x قابلِ استخراج نیست.

۳. Latent و Uncertainty؛ نمایشِ آینده‌هایِ متعدد

از همین‌جا، اولین ارتباطِ مهم میانِ Latent و Uncertainty برای من شکل گرفت. مسئله فقط این نیست که ماشین پاسخِ صحیح را نمی‌داند؛ مسئله این است که خودِ جهان می‌تواند چندین ادامه‌یِ ممکن داشته باشد.

لکان در بخش "Handling Uncertainty with Latent Variables" توضیح می‌دهد که یکی از مسائلِ اصلی، تواناییِ مدل در نمایشِ multiple predictions است و استفاده از یک latent variable می‌تواند یکی از راه‌های رسیدن به این هدف باشد.

برای مثال، فرض کنید یک خودرو به یک دوراهی نزدیک می‌شود. اگر x تصویرِ خودرو در لحظه‌ی فعلی باشد و y تصویرِ همان خودرو چند ثانیه بعد، آنگاه:

z1 = turn left   ⇒   y1 = f(x, z1)
z2 = turn right   ⇒   y2 = f(x, z2)

در اینجا، یک وضعیتِ فعلی، اما چند آینده‌ی سازگار وجود دارد.

لکان در ادامه، مفهومِ Latent را به بخشی از آینده مرتبط می‌کند که از گذشته و مشاهده‌ی فعلی قابلِ پیش‌بینی نیست:

"The latent variable represents what cannot be predicted about y (the future) solely from x and from past observations (the past)."

و در ادامه، درباره‌ی راننده می‌گوید:

"I may not know whether the driver in front of me will turn left or right, accelerate or brake, but I can represent those options by a latent variable."

۴. Latent فقط «عاملِ پنهان» نیست

در ادامه‌ی مطالعه‌ی مقاله، متوجه شدم که نباید مفهومِ Latent را فقط به مثال‌هایی مانند «نیتِ راننده» محدود کنم.

در مقاله‌ی Dawid و LeCun با عنوان "Introduction to Latent Variable Energy-Based Models: A Path Towards Autonomous Machine Intelligence" (منتشرشده در Journal of Statistical Mechanics، ۲۰۲۴)، این مفهوم با جزئیاتِ بیشتری بررسی می‌شود. آنها نیز latent variable را متغیری می‌دانند که مقدارش معمولاً مستقیماً در اختیار ما نیست و می‌تواند اطلاعاتی درباره‌ی y را که مستقیماً از x در دسترس نیست، در خود بگیرد.

اما نکته‌ی جالب این است که آنها Latent را فقط برای Uncertainty معرفی نمی‌کنند. Latent می‌تواند برای Structured Prediction نیز استفاده شود؛ یعنی زمانی که خودِ ساختارِ داده را نمی‌دانیم و مدل باید آن را استنباط کند.

برای مثال:

  • در Speech Recognition، ممکن است audio را داشته باشیم اما segmentationِ دقیقِ آن به کلمات را نداشته باشیم.
  • در Handwriting Recognition، segmentationِ یک کلمه به حروف می‌تواند ناشناخته باشد.
  • در Image Understanding، ممکن است برخی ساختارها، اشیاء یا روابطِ موردِ نظر مستقیماً به ما داده نشده باشند.

بنابراین، در این موارد، خودِ ساختارِ ناشناخته‌ی مسئله می‌تواند به‌عنوان یک Latent Variable مدل شود.

نکته کلیدی

Latent، لزوماً یک «واقعیتِ پنهان» نیست؛ بلکه می‌تواند یک عامل، حالت، ساختار یا متغیرِ ناشناخته باشد که برای توضیحِ مسئله لازم است.

۵. چالشِ اصلی؛ محدودیتِ ظرفیتِ Latent

اینجا یک مسئله‌ی بسیار مهم مطرح می‌شود: اگر Latent بیش از اندازه ظرفیت داشته باشد، مدل ممکن است تمامِ اطلاعاتِ لازم برای prediction را در z قرار دهد.

Dawid و LeCun در اینجا هشدارِ بسیار مهمی می‌دهند:

"The tricky part is that the information capacity of the latent variable must be minimized. Otherwise, the training may put all the information needed for the prediction into them."

این جمله برای من اهمیت زیادی دارد. هدف این نیست که Latent را به یک حافظه‌ی عظیم تبدیل کنیم. بلکه باید ظرفیتِ آن را به‌گونه‌ای کنترل کنیم که:

  1. بتواند variation، uncertainty یا structure موردِ نیاز را بیان کند.
  2. اما تمامِ مسئله را در خودش ذخیره نکند.

به‌همین‌دلیل، مقاله پیشنهاد می‌کند که ظرفیتِ Latent با روش‌هایی مانند:

  • Discrete بودن
  • Sparse بودن
  • Stochastic بودن
  • Low-dimensional بودن

کنترل شود.

۶. تفاوتِ Latent Variable و Latent Space

در اینجا لازم می‌دانم میانِ دو مفهومی که در بسیاری از منابع در کنارِ هم دیده می‌شوند، اما یکی نیستند، تفاوت بگذارم:

Latent Variable و Latent Space.

اگر داشته باشیم:

sx = Enc(x)

آنگاه sx یک Latent Representation از x است. اگر مجموعه‌ای از این representationها را در نظر بگیریم، می‌توانیم از فضایی صحبت کنیم که این representationها در آن قرار گرفته‌اند:

s ∈ 𝒮

که معمولاً از آن با عنوان Latent Space یا Representation Space یاد می‌شود.

اما z در بحثِ Latent-Variable EBM، چیزِ دیگری است. z می‌تواند یک متغیرِ ناشناخته باشد که مدل باید آن را infer کند.

Latent Variable = یک عامل، وضعیت، ساختار یا متغیرِ ناشناخته
Latent Representation = نمایشِ نهفته‌ی یک داده یا وضعیت
Latent Space = فضایی است که این representationها در آن قرار می‌گیرند

برای من، این تمایز بسیار مهم است، زیرا در ادامه‌ی بحثِ World Model و JEPA، هر دو مفهوم هم‌زمان ظاهر می‌شوند.

۷. Latent در معماریِ World Model و JEPA

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

در اینجا یک نکته‌ی مهم وجود دارد: منظور من از فرمِ زیر، چارچوب latent-variable مورد بحث لکان و Dawid–LeCun است، نه اینکه هر معماری با نام JEPA الزاماً دقیقاً چنین latent variableای داشته باشد. برای مثال، I-JEPA در کار Assran و همکاران یک معماری مشخص برای self-supervised learning از تصاویر است و نباید همه‌ی فرم‌های JEPA را با صورت‌بندی latent-variable این مقاله یکی دانست.

برای قرار دادن این بحث در زمینه‌ی گسترده‌تر، مطالعه‌ی رابطه EBM، JEM و JEPA در نگاه یان لکان نیز می‌تواند مفید باشد؛ زیرا در آن مقاله، رابطه‌ی میان یادگیری انرژی‌محور و معماری‌های پیش‌بین در سطح گسترده‌تری بررسی می‌شود.

در این چارچوب، دو نمایش داریم:

sx = Encx(x)
sy = Ency(y)

و یک پیش‌بینی‌کننده:

ŝy = Pred(sx, z)

که در این صورت‌بندی، z یک Latent Variable است.

نقشِ z در اینجا چیست؟ می‌تواند برای مدل‌سازی عدم‌قطعیت و چندگانگیِ prediction به کار رود؛ یعنی زمانی که از روی sx به‌تنهایی یک sy یکتا تعیین نمی‌شود.

در نتیجه، z می‌تواند بخشی از اطلاعاتِ مرتبط با y را نمایندگی کند که از x به‌طور مستقیم در دسترس نیست و برای توضیحِ تفاوت میان predictionهای ممکن مورد نیاز است.

به همین معنا، Latent Variable در این چارچوب می‌تواند به مدل اجازه دهد چند prediction ممکن را نمایش دهد و از این طریق به برخورد با uncertainty کمک کند.

نقش Latent Variable در معماری JEPA و World Model
شکل ۲: جایگاه Latent Variable در معماری JEPA و World Model

۸. Latent در خدمتِ Planning

یکی از جذاب‌ترین کاربردهایِ Latent، جایی است که با Planning ترکیب می‌شود.

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

  1. چندین آینده‌یِ ممکن را با استفاده از متغیرهای latent در مدلِ پیش‌بینی در نظر بگیرد.
  2. هر آینده را با استفاده از Cost Module یا یک سازوکار ارزیابی بررسی کند.
  3. بر اساسِ نتیجه‌ی ارزیابی، مسیر یا action مناسب را انتخاب کند.

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

at:t+H* = arg minat:t+H Στ=tt+H E(sτ, aτ, sτ+1, zτ)

این فرمول صورت‌بندی مفهومی من برای توضیح ارتباط prediction، latent و planning است و نباید به‌عنوان فرمولِ مستقیمِ ارائه‌شده توسط LeCun یا Dawid–LeCun در نظر گرفته شود.

در این صورت‌بندی، zτ متغیری latent است که می‌تواند variation یا عدم‌قطعیتِ موجود در prediction را مدل کند.

بنابراین، Latent خودش تصمیم‌گیرنده نیست؛ بلکه می‌تواند در مدل‌کردن predictionهای ممکن نقش داشته باشد و این predictionها سپس در فرایند ارزیابی و Planning مورد استفاده قرار گیرند.

۹. جمع‌بندی؛ Latent برای من چه معنایی پیدا کرده است؟

بعد از خواندن "A Path Towards Autonomous Machine Intelligence" و سپس "Introduction to Latent Variable Energy-Based Models"، برداشتِ من از Latent، دیگر فقط «متغیرِ پنهان» نیست.

Latent Variable = متغیری که مقدارِ آن مستقیماً مشاهده یا داده نشده است

اما این متغیر می‌تواند نقش‌هایِ متفاوتی داشته باشد:

  • می‌تواند یک Hidden Factor باشد؛ مانند pose یا عاملی مانند نیتِ احتمالیِ راننده.
  • می‌تواند یک Hidden Structure باشد؛ مانند segmentation در speech یا handwriting.
  • می‌تواند یک Hidden Parameter باشد؛ مانند زاویه‌ی نقطه روی یک بیضی.
  • و در معماری‌هایِ پیش‌بین، می‌تواند متغیری باشد که variation میان predictionها یا آینده‌هایِ ممکن را parameterize کند.

به‌همین‌دلیل، Latent با Uncertainty ارتباط پیدا می‌کند:

z1, z2, z3 → y1, y2, y3

یعنی یک ورودی، می‌تواند چندین predictionِ سازگار داشته باشد.

اما یک محدودیتِ اساسی:

Capacity(z) باید محدود باشد

چون در غیرِ این‌صورت، مدل ممکن است تمامِ اطلاعاتِ لازم برای prediction را در z قرار دهد.

هدف چیست؟

نه اینکه «تمامِ اطلاعاتِ جهان را داخلِ Latent قرار دهیم.»

بلکه هدف این است که: Latent به‌اندازه‌ای اطلاعات داشته باشد که عواملِ پنهان، ساختارها و variationهایِ مهم را توضیح دهد، اما آن‌قدر ظرفیت نداشته باشد که کلِ مسئله را در خودش پنهان کند.

۱۰. سؤالی که برای من باقی ماند

شاید مهم‌ترین سؤالی که از این بحث برای من باقی می‌ماند، دیگر این نباشد که:

«Latent چیست؟»

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

سؤال اصلی

چه چیزی از جهان باید در یک Latent Representation حفظ شود، چه عواملی باید به‌صورت Latent Variables مدل شوند، چه اطلاعاتی نباید وارد آن شوند، و چگونه می‌توان از این نمایش برای تصورِ آینده‌هایِ ممکن و انتخابِ یک عملِ مناسب استفاده کرد؟

به‌نظر من، دقیقاً در پاسخ به همین سؤال است که مفهومِ کلاسیکِ Latent Variable به مفاهیمی مانند Latent Space، World Model، JEPA، Uncertainty و Planning متصل می‌شود و در برخی معماری‌هایِ پیشنهادی برای هوش خودمختار، از یک مفهومِ صرفاً آماری به یک جزءِ مهم در مدل‌سازی و پیش‌بینی تبدیل می‌شود.

پرسش‌های متداول درباره Latent Variable

Latent Variable چیست؟

Latent Variable متغیری است که مقدار آن مستقیماً مشاهده یا به مدل داده نشده است و می‌تواند برای توضیح عوامل، ساختارها یا روابط ناشناخته میان ورودی و خروجی مورد استفاده قرار گیرد.

تفاوت Latent Variable و Latent Space چیست؟

Latent Variable یک متغیر یا عامل ناشناخته است، در حالی که Latent Space فضایی است که نمایش‌های نهفته در آن قرار می‌گیرند. بنابراین این دو مفهوم به هم مرتبط‌اند اما یکی نیستند.

Latent Variable چه ارتباطی با Uncertainty دارد؟

در برخی چارچوب‌های پیش‌بینی، Latent Variable می‌تواند بخشی از تفاوت میان چند آینده یا prediction سازگار را مدل کند؛ در نتیجه امکان نمایش چند پاسخ محتمل به یک وضعیت فعلی فراهم می‌شود.

چرا ظرفیت Latent Variable باید محدود باشد؟

اگر ظرفیت latent بیش از اندازه زیاد باشد، مدل ممکن است اطلاعات لازم برای prediction را به‌طور گسترده در latent قرار دهد و نقش بخش اصلی مدل پیش‌بینی کم‌رنگ شود. به همین دلیل، کنترل ظرفیت latent در این چارچوب اهمیت دارد.

آیا هر معماری JEPA از Latent Variable به همین شکل استفاده می‌کند؟

خیر. صورت‌بندی latent-variable مطرح‌شده در این مقاله را نباید با تمام معماری‌های JEPA یکی دانست. I-JEPA برای نمونه یک معماری مشخص برای self-supervised learning از تصاویر است، در حالی که این مقاله بر چارچوب latent-variable مورد بحث LeCun و Dawid–LeCun تمرکز دارد.

منابع و مطالعه بیشتر

  1. LeCun, Y. (2022). A Path Towards Autonomous Machine Intelligence. OpenReview. https://openreview.net/pdf?id=BZ5a1r-kVsf
  2. Dawid, A., & LeCun, Y. (2024). Introduction to Latent Variable Energy-Based Models: A Path Towards Autonomous Machine Intelligence . Journal of Statistical Mechanics: Theory and Experiment, 2024, 104011. DOI: 10.1088/1742-5468/ad292b
  3. Ha, D., & Schmidhuber, J. (2018). World Models. arXiv preprint.
  4. Hafner, D., et al. (2019). Learning Latent Dynamics for Planning from Pixels. ICML.
  5. Hafner, D., et al. (2020). Dream to Control: Learning Behaviors by Latent Imagination. ICLR.
  6. Assran, M., et al. (2023). Self-Supervised Learning From Images With a Joint-Embedding Predictive Architecture . CVPR.
  7. Kingma, D. P., & Welling, M. (2014). Auto-Encoding Variational Bayes. ICLR.