MatlabTips
888 subscribers
468 photos
73 videos
54 files
308 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
🔵آیا مدل‌های زبانی بزرگ (LLMs) دارای حالت ذهنی هستند؟🔵

هیلاری پاتنام (Hilary Putnam)، فیلسوف، ریاضی‌دان و دانشمند علوم رایانه ی آمریکایی، بر این باور بود که «حالات ذهنی» (mental state) با ماده ی سازنده ی (material substrate) آن‌ها تعریف نمی‌شوند (چه از نورون ساخته شده باشند، چه از سیلیکون یا هر چیز دیگر)، بلکه با نقش علّی و کارکردی‌شان در یک سامانه تعریف می‌شوند. برای نمونه، حالت ذهنی‌ای همچون «باور به این‌که باران خواهد بارید» با کارکردش تعریف می‌شود: این‌که چگونه پدید می‌آید (با دیدن ابرهای تیره)، چگونه با سایر حالات در ارتباط است (مثلاً باعث می‌شود چتر همراه داشته باشید)، و چگونه به رفتار منجر می‌شود (در خانه ماندن). امروزه ادعاهای زیادی در مورد «هوشمندی» مدل های زبانی بزرگ مطرح می شود. جدای ازین پرسش دشوار که «هوش» دقیقا چیست آیا می توان قائل به حالاتی برای این مدل ها بود که ما معمولا از یک موجود هوشمند انتظار داریم؟ به عبارتی دیگر پرسش این است: چگونه می‌توان آزمونی دقیق تعریف کرد که وجود یا عدم وجود چنین حالات ذهنی را در مدل‌های زبانی بزرگ اثبات یا رد کند؟

منظور ما از حالت ذهنی، اندیشه‌ها و عواطفی است که ماهیتی قضیه‌مند (propositional) دارند، می‌توانند خصوصی نگه داشته شوند و نسبتاً پایدار هستند. برای مثال، اگر از شما بخواهم به غذای محبوبتان فکر کنید، می‌توانید آن را پنهان کنید و در عین حال تصویری ذهنی از آن داشته باشید. پرسش اصلی این است: «آیا واقعاً ضروری است که قائل به این باشیم که فرد دارای یک حالت ذهنی خاص است اگر هیچ راهی برای تشخیص آن جز پرسش مستقیم درباره ی آن حالت ذهنی‌ وجود نداشته باشد؟» به بیان دیگر، اگر آزمون‌های رفتاری به‌خوبی نماینده ی حالات ذهنی باشند، وجود واقعی آن حالت دیگر اهمیتی ندارد! یا به شکلی دیگر: آیا می توان ربات هایی را تصور کرد که چیزی به اسم «حالت ذهنی» نداشته باشند چون تمام رفتار های آن ها تفاوتی با یک فرد با «حالت ذهنی» ندارد؟

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

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

انسان: بیا بازی کنیم، یک حیوان انتخاب کن و من سعی می‌کنم حدس بزنم.

مدل زبانی: بسیار خوب، حیوانی انتخاب کردم. می‌توانی پرسش‌های بله/خیر بپرسی تا حدس بزنی.

انسان: آیا پستاندار است؟

مدل زبانی: بله، پستاندار است.

انسان: آیا کوچک‌تر از انسان است؟

بله، کوچک‌تر از انسان است.

مدل زبانی: انسان: آیا موش است؟

مدل زبانی: نه، موش نیست.

انسان: آیا حیوان خانگی است؟

مدل زبانی: بله، معمولاً به‌عنوان حیوان خانگی نگه‌داری می‌شود.

انسان: آیا گربه است؟

مدل زبانی: بله، گربه است! خوب حدس زدی!


همه‌چیز تا اینجا خوب پیش می‌رود! به نظر می‌رسد مدل واقعاً درباره ی «گربه» اندیشیده است. اما در واقع ناممکن است که بدانیم آیا واقعاً چیزی «انتخاب» یا «در نظر گرفته» شده یا نه!

نمونه ی دیگر

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

مدل زبانی: بسیار خوب، آماده‌ام! بگذارید به یک کشور فکر کنم... خوب، یکی در ذهن دارم.

انسان: آیا در آسیاست؟

مدل زبانی: بله، در آسیا قرار دارد.

انسان: آیا در خاورمیانه است؟

مدل زبانی: بله، در خاورمیانه قرار دارد.

انسان: آیا عراق است؟

مدل زبانی: نه، عراق نیست.

انسان: آیا سوریه است؟

مدل زبانی: نه، سوریه نیست.

انسان: آیا ایران است؟

مدل زبانی: بله، درست حدس زدی! ایران است. آفرین!


به نظر می‌رسد که می‌توان چند حدس اشتباه زد، و همین نشان می‌دهد که چیزی واقعاً برای حدس زدن وجود داشته است. پس از چند بار بازی، روشن می‌شود که پاسخ معمولاً پس از چند پرسش ساده پیدا می‌شود. به بیان دیگر، «حالت ذهنی» مدل بیش از حد آسان قابل حدس است! هرچند گاهی مدل پاسخ‌های نادرست می‌دهد و بازی به پرسش و پاسخ بی‌پایان بدل می‌شود.
تغییر شکل بازی

بیاییم بازی را اندکی تغییر دهیم تا قابل‌کنترل‌تر شود. این بار به‌جای حیوان، از مدل می‌خواهیم عددی بین ۱ تا ۱۰۰ انتخاب کند. سپس ما به‌صورت تصادفی شروع به پرسیدن درباره ی اعداد مختلف می‌کنیم. برای ساده نگه داشتن بازی، از پرسش‌های هوشمندانه‌تر مانند «آیا عدد فرد است؟» یا «آیا بزرگ‌تر از ۵۰ است؟» پرهیز می‌کنیم تا فضای پاسخ محدود بماند. برای پیاده‌سازی این بازی، اسکریپتی در پایتون نوشته‌ام که با تولید تصادفی یکنواخت در هر تکرار می‌پرسد: «آیا عدد انتخابی x است؟»
اگر مدل واقعاً عددی را انتخاب کرده باشد و این انتخاب به‌طور واقعی تصادفی (با توزیع یکنواخت) انجام شده باشد، طبق «قانون اعداد بزرگ» (law of large numbers) انتظار داریم که در میانگین حدود ۵۰ گام به پاسخ درست برسیم. بیایید نتیجهٔ اجرای کد را در ۴۸ بار بررسی کنیم:

49, 65, 93, 101, 101, 90, 101, 101, 101, 38, 60, 101, 99, 101, 88, 80, 31, 101, 101, 22, 84, 2, 3, 72, 101, 6, 66, 101, 26, 4, 1, 73, 101, 2, 54, 101, 20, 39, 101, 101, 25, 101, 98, 101, 1, 101, 91, 101,


وقتی نتیجه ۱۰۱ است، به این معناست که مدل خطا کرده و یا اصلاً عددی انتخاب نکرده، یا انتخابش را کاملاً فراموش کرده است. می‌توان استدلال کرد که نسخه‌های آینده ی مدل‌های زبانی این مشکل حافظه را برطرف خواهند کرد. اما نکته ی جالب‌تر زمانی رخ می‌دهد که به مدل «زمینه ی بیشتری» بدهیم و پرسش‌های دقیق‌تری مطرح کنیم، نه فقط پرسش ساده ی «آیا عدد انتخابی x است؟».

برای نمونه، در یک آزمایش دیگر ابتدا پرسیدیم: «آیا عدد بزرگ‌تر از ۵۰ است؟» و بسته به پاسخ، در گام بعدی پرسیدیم «آیا بزرگ‌تر از ۷۵ است؟» یا «آیا بزرگ‌تر از ۲۵ است؟». به بیان دیگر، بازه را به چهار بخش تقسیم کردیم و سپس در همان چارچوب، مانند حالت قبلی، شروع به پرسش تصادفی از اعداد کردیم.

نتایج حیرت‌انگیز بودند: در حالی‌که انتظار می‌رفت میانگین تعداد گام‌ها برای رسیدن به پاسخ (پس از دو پرسش نخست) ۱۲.۵ باشد (چون ۲۵ عدد در آن بازه باقی مانده است)، در عمل میانگین در ۶۴ آزمایش حدود ۸.۳ گام بود (و هیچ بار بیشتر از ۱۷ گام طول نکشید!). نمودار هیستوگرام زیر توزیع تعداد حدس‌ها را نشان می‌دهد.
توزیع تعداد گام ها برای حدس زدن عدد در بازه ی ۲۵ تایی توسط مدل زبانی! همانطور که میبینید میانگین به جای آنکه بر روی ۱۲.۵ باشد بر روی ۸ متمرکز شده است
این یافته دلالت دارد که مدل‌های زبانی بزرگ در واقع چیزی را «در نظر نمی‌گیرند» (که البته بسیاری چنین نتیجه‌ای را بدیهی می‌دانند) زیرا این مدل‌ها حافظه ی واقعی ندارند. اما این نتیجه بحث‌برانگیز است، چون مدل‌های ترنسفورمری در حقیقت نوعی «حافظه ی کاری» (working memory) دارند، اما این حافظه بسیار سطحی است و هیچ حالت درونیِ پایداری را نگه نمی‌دارد. افزون بر این، این آزمایش نشان می‌دهد که آزمون‌های رفتاری (behavioral tests) که انتظار داریم از طریق زبان، «شبیه‌سازی» حالت ذهنی را آشکار سازند، برای گذراندن آزمون تورینگ کافی نیستند. گرچه مدل در پاسخ به پرسش‌های منفرد متقاعدکننده به نظر می‌رسد، تحلیل آماری دقیق می‌تواند چنین ناهنجاری‌هایی را فاش کند.

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

در آزمایش بازهٔ ۱ تا ۱۰۰، سیستم به‌سادگی در چرخه‌ای از پاسخ «نه، آن عدد نیست» گرفتار می‌شود. این الگو باعث می‌شود که مدل به احتمال زیاد همان ساختار پاسخ را تکرار کند. اما آزمایش اخیر این فرض را تأیید کرد: وقتی پرسش‌هایی مانند «آیا بزرگ‌تر از ۷۵ است؟» مطرح می‌کنیم، مدل زمینه ی کافی برای تولید پاسخ‌های دقیق‌تر پیدا می‌کند. در اینجا، احتمال تأیید عددهای بالاتر از ۷۵ افزایش می‌یابد، اما مدل ممکن است شتاب‌زده یکی از آن‌ها را تأیید کند. در نهایت، مدل هیچ انتخاب واقعی‌ای انجام نمی‌دهد، بلکه صرفاً واژه ی بعدی را بر اساس زمینه ی موجود پیش‌بینی می‌کند.

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

این آزمایش نامتعارف نشان می‌دهد که ویژگی‌های آماری زبان می‌تواند آشکار کند که برخی جنبه‌های رفتار انسانی را می‌توان با مدل‌های زبانی شبیه‌سازی کرد، حتی اگر کارکرد اصلی آن‌ها صرفاً «پیش‌بینی توکن بعدی» باشد.

پرسش جالبی که از اینجا پدید می‌آید این است که آیا می‌توان نمونه‌برداری تصادفی در سطح توکن‌های زبانی را طوری تغییر داد که مدل‌ها بتوانند چنین آزمون‌هایی را بی‌هیچ مشکل آماری پشت سر بگذارند؟ اما این احتمالاً چالشی جدی‌تر برای مدل‌های آماری‌ای مانند LLMها خواهد بود، چرا که آن‌ها می‌کوشند پیچیدگی‌های ذهن انسانی را دور بزنند و تنها جنبه‌های سطحی زبان را شبیه‌سازی کنند.
🔵 شگفتی (surprise) و مدل های زبانی 🔵

در فیلم زندگی چاک در صحنه ‌ای قهرمان داستان، یک حسابدار عادی، در حال قدم‌زدن در خیابان است که ناگهان به یک طبل زن (drummer) برمی‌خورد. بی‌هیچ مقدمه‌ای در میان خیابان شروع به رقصیدن با آن می‌کند. این لحظه‌ی خودانگیخته چنان در حافظه‌اش حک شد که به یکی از اصیل‌ترین و پررنگ‌ترین تجربه‌های زندگی‌اش بدل گشت؛ تجربه‌ای که حتی پس از آن‌که ذهن فروپاشیده‌اش دیگر توان به یاد آوردن نام اعضای خانواده‌اش را نداشت، همچنان در او زنده ماند.

این همان جوهره‌ی «شگفتی» است، عنصری چنان افسونگر که در بنیان بسیاری از نظریه‌هایی قرار دارد که به کمک آن‌ها جهان را می‌شناسیم. برخلاف آنچه به نظر می‌آید، علم صرفا کاهش‌دادن عدم‌ قطعیت یا زدودن شگفتی‌ها نیست، بلکه گاه خود آن‌ها را پدید می‌آورد. فرآیند کشف، چیزی جز الهامی سرکش و گریزان از عقل متعارف نیست. شگفتی‌ها (یا هم‌نشینی مفاهیم به‌ظاهر نامرتبط) ابزارهای قیاسی (analogical tools) بی‌سابقه‌ای در اختیارمان نهاده‌اند که به یاری‌شان جهان را به شیوه‌هایی درک کرده‌ایم که پیش‌تر محال می‌نمود. نظریه‌ی جاذبه را در نظر بگیرید: زاییده‌ی پیوندی غافلگیرکننده میان مکانیک زمین و مکانیک سماوی. نیروی گرانش (کنشی از دور، چون جادویی پنهان) خود شگفتی‌ای بنیادین بود. اما وقتی از قیاس حرف میزنیم فراتر از علم می رود و به تمام چارچوب های شناختی ما گره می خورد.

داگلاس هاستادر (Douglas R. Hofstadter) در کتابش سطوح و ذات ها: قیاس به عنوان سوخت اندیشه (Surfaces and Essences: Analogy as the Fuel and Fire of Thinking) از همانند سازی (فرآیند ساختن قیاس) به عنوان چارچوبی که اندیشه را شکل می دهد سخن می گوید او نشان می دهد ساده ترین مفاهیم از «میز» تا نظریات علمی بر اساس ایجاد «قیاس» ها ساخته شده است.زبان و استعاره‌ها بر پایهٔ همانند‌سازی ساخته می‌شوند: ما زمان را به‌صورت «فضا»، زندگی را «سفر»، و احساسات را «بالا» و «پایین» توصیف می‌کنیم، بی‌آنکه اغلب متوجه ریشهٔ آن باشیم. دقت کنید این همانند سازی ها از داخل خود زبان زاییده نمی شوند (انتظاری که گاه از مدل های زبانی داریم) بلکه از بیرون توسط کاربران زبان و محیط به آن شکل می دهد.

شگفتی‌ها در قالب همانند سازی ها فراتر از علم، در شعر، هنر و فلسفه نیز حضور دارند. حتی خیزش الگوهای محاسباتی همچون مدل‌های زبانی بزرگ (LLM) نیز بازتاب همین پدیده است. باید دقت کرد که این مدل ها شاید قیاس هایی که ما ایجاد کرده ایم را مدل سازی کرده باشند اما با این حال کاری که میکنند نقطه‌ی مقابل خلاقیت است: آن‌ها بر پایه‌ی کاستن از شگفتی کار می‌کنند. اصل آموزشی‌شان این است که «کمتر» از دیدن واژه‌ی بعدی غافلگیر شوند و بدین‌سان معیار «پیچیدگی» یا همان پرپلکسیتی (preplexity) اندازه‌ی فاصله (cross entropy) میان پیش‌بینی مدل و داده‌ی واقعی را پایین بیاورند. شگفت آن‌که پژوهش‌های اخیر نشان می‌دهد این مدل‌ها حتی از انسان نیز «بهتر» پیش‌بینی می‌کنند.

اما همین بیش‌ازحد پیش‌بینی‌پذیر بودن، محدودیت های آن‌ها را هم آشکار می‌سازد. LLMها اغلب سخت بر موضوع می‌چسبند و مستقیم سر اصل مطلب می‌روند، در حالی که ارتباط انسانی سرشار از پیش‌بینی‌ناپذیری است. انسانی ممکن است در میان درس ریاضی، ناگهان شوخی کند (کاری که هیچ LLMی جز به فرمان مستقیم انجام نمی‌دهد.) در گفت‌وگوی انسانی، واژه‌ی بعدی تنها تابع واژه‌های پیشین نیست، بلکه محصول برهم‌کنش نشانه‌های گوناگون حسی و زمینه‌ای است: آنچه می‌بینیم، می‌شنویم، می‌چشیم، یا حتی آنچه همان صبح خورده‌ایم. انتظار داشتن از مدلی متنی که بدون این سیگنال‌ها همچون انسان عمل کند، انتظاری گزاف است.
🔵فضای لگاریتمی🔵

(در فرهنگ کهن ایران «مَنه» به‌معنای نیروی اندیشه و تفکر انسان است. «منه» نخستین لایه‌ی روان است؛ بعد از آن «دئنا» (وجدان) و «روان» (روح جاودان) قرار می‌گیرند.)

یکی از پرسش‌های اصلی که همیشه ذهنم را موقعی که هوش مصنوعی یاد میگرفتم به خود مشغول میکرد این بود که: چرا در بسیاری از الگوریتم‌های یادگیری ماشین از لگاریتم در تابع هدف استفاده می‌کنیم؟ اگر به پیشرفته‌ترین شبکه‌های عصبی نگاه کنیم، می‌بینیم کل شبکه روی یک عدد بهینه می‌شود؛ همان تابع خطا (Loss Function). جالب اینجاست که این تابع اساساً لگاریتمِ احتمال داده ورودی است (Log P(x)). اما چرا لگاریتم؟ این تابع چه ویژگی خاصی دارد؟

برای فهم بهتر، بیایید به نظریه اعداد برگردیم. قضیه‌ی تجزیه به عوامل اول می‌گوید هر عدد طبیعی را می‌توان به حاصل‌ضرب چند عدد اول نوشت. مثلا:

125 = 5^3

یعنی برای ساختن 125 فقط به عدد اول 5 نیاز داریم. به‌طور کلی هر عدد N را می‌توان به شکل زیر نوشت:

N = p1^a1 * p2^a2 * ... * pk^ak

که در آن ai صفر است اگر آن عدد اول در تجزیه وجود نداشته باشد.

نکته مهم اینجاست که مجموعه اعداد اول «کوچک‌تر» از مجموعه کل اعداد طبیعی است، اما می‌تواند همه آن‌ها را کدگذاری کند. شاید بپرسید «کوچک‌تر» یعنی چه؟ مگر هر دو بی‌نهایت نیستند؟ در ریاضی می‌گوییم دو مجموعه بی‌نهایت هم‌اندازه‌اند اگر بتوانیم یک تناظر یک‌به‌یک بینشان پیدا کنیم. مثلا تعداد اعداد طبیعی و تعداد اعداد زوج برابر است چون رابطه ساده y = 2x یک تناظر می‌سازد.

اما درباره اعداد اول چه؟ «گائوس» در ۱۴ سالگی فهمید که هرچه اعداد بزرگ‌تر شوند، اعداد اول «پراکنده‌تر» می‌شوند. در واقع احتمال اینکه عددی نزدیک N اول باشد، حدود 1/log(N) است. این رابطه‌ی عجیب نشان می‌دهد که ساختار اعداد اول با لگاریتم گره خورده است.

برای مثال 125 را می‌توان با برداری از توان‌های اعداد اول نمایش داد (به ترتیب: 2، 3، 5، 7 و ...):

V = (0, 0, 3, 0, …)=125

ویژگی جالب این فضا این است که ضرب اعداد معادل جمع این بردارهاست. مثلا ضرب 125 در 30 (که خودش برابر است با 2*3*5) را می‌توان این‌طور نوشت:

(0, 0, 3, 0, …) + (1, 1, 1, 0, …) = (1, 1, 4, 0, …)

و تنها تابعی که به‌طور کلی ضرب را به جمع تبدیل می‌کند لگاریتم است. به همین دلیل می‌گوییم فضای توان‌های اعداد اول در واقع همان «فضای لگاریتمی» اعداد طبیعی است و رفتاری خطی دارد!

این ایده محدود به نظریه اعداد نیست. در جهان واقعی هم اغلب یک «فضای دوگان» (dual space) یا نمایشی ساده‌تر وجود دارد که پدیده‌های پیچیده را توصیف می‌کند. مثلا آنالیز فوریه نشان می‌دهد سیگنال‌های پیچیده را می‌توان با تعداد کمی فرکانس بازنمایی کرد.

ویژگی لگاریتم این است که محاسبات سخت را ساده می‌کند. همین بود که جداول لگاریتمی در گذشته ابزار حیاتی برای دریانوردان و دانشمندان شدند: آن‌ها می‌توانستند ضرب‌های بزرگ را با جمع‌های ساده جایگزین کنند.

در یادگیری ماشین هم همین ایده به‌کار می‌رود. ما لگاریتم احتمال‌ها را حساب می‌کنیم تا به طول کد یک توزیع احتمال پیچیده (مثل زبان یا عکس ها) برسیم. آنگاه باید طول کد را کوتاه تر کرد. از آنجا که «کد» در فضای لگاریتمی است عملا همان پارامتر های سیستم می شود که باید به حداقل برسد). در عمل، وزن‌های یک شبکه عصبی همان «کد» فشرده‌ای هستند که کل پیچیدگی زبان، تصویر یا داده‌های دیگر را ذخیره می‌کنند. این شبیه بدن و مغز ماست که سیل عظیم سیگنال‌های شیمیایی و فیزیکی را به کدهای کوچک‌تر و کارآمدتر تبدیل می‌کنند. فضای کد ساده تر و فشرده تر است!

اما لگاریتم فقط یک ابزار محاسباتی نیست؛ بلکه راهی است که طبیعت نظم درونی خود را آشکار می‌کند. از قانون بقای انرژی گرفته تا پایداری حیات، همه نشانه‌هایی‌اند از این اصل ساده: جهان پیچیدگی‌هایش را بر پایه‌ی قوانین ساده و پایدار می‌سازد. در قسمت های آینده نشان می دهیم که چگونه طبیعت از دیدگاه فضای دوگان داده ها که همان فضای لگاریتمی است همه جا پدیدار می شود !
توزیع اعداد اول در یک پنج ضلعی که به تدریج تنک تر می شود
🔵فضای لگاریتمی (قسمت دوم)🔵

در قسمت قبلی در مورد رابطه ی لگاریتم و اعداد اول گفتیم: اینکه اعداداول کدها (یا آجر های ساختمان اعداد هستند) و هر عدد را می توان به صورت یه بردار از توان ها اعداد اول تعریف کرد. گفتیم که تابع لگاریتم همین کار را برای اعداد غیر صحیح هم می کند اما چگونه؟ فرض کنید یک عدد گویا به شکل ۱۳۵/۳۰ داریم. اگر صورت و مخرج را به صورت تجزیه اعداد اول بنویسم آنگاه فقط باید توان ها را از هم کم کنیم. این دقیقا مانند کم کردن دو بردار است! اینجا اعداد منفی در توان ها ظاهر می شود:

135 = 2^0 * 3^3 * 5^1
30 = 2^1 * 3^1 * 5^1

که می شود:
(0, 3, 1) - (1, 1, 1)= (-1, 2, 0)

که معادل با عدد
2^-1 * 3^2
است. این ویژگی امکان می دهد نسبت هر دو عدد صحیح را به صورت یک بردار با اعداد منفی در بیاوریم. اما برای اعداد غیر گویا چه؟ تعریف عدد غیر گویا مشخصا منکر نسبت دو عدد صحیح است اما بر اساس «قضیه تخمین دیریکله» (dirichlet approximation theorem) می توانیم هر عدد حقیقی را با دقت دلخواه اندازه بگیریم. تنها تفاوت اینجاست که اینجا دیگر یک بردار محدود نداریم: دنباله ی اعدادی که در بردار بالا ظاهر می شود تمام نمی شود. آنگاه تخمین زدن آن عدد حقیقی نیازمند دنباله ای از نسبت هایی است که اعداد اول بزرگتر و بزرگتر در آن ظاهر می شود! به عبارتی فرآیند دقیق تر کردن «کد» یا عدد حقیقی مورد نظر از طریق یافتن اعداد اول بزرگتر است. با این حال اصلا چرا ما باید فرض کنیم که به دنبال اعداد غیر گویا هستیم جز اینکه در توابع loss ظاهر می شوند؟ چه چیزی در مورد رابطه ی اعداد گویا و غیر گویا در سیستم های ساده و پیچیده به ما در مورد آنها می گوید؟

برای درک این موضوع باید یک میانبر عجیب به نجوم بزنیم: یکی از دریافت های اولیه نجومی حرکت منظم سیارات به دور خورشید است. به این معنا که هر سیاره ای با یک نسبت مشخص با بقیه در حال حرکت است. زمین هر ۳۶۵ روز (تقریبا) به دور خورشید می چرخد در حالی که ماه حدودا ۳۰ روز طول می کشد که به دور زمین بچرخد و الخ! با این حال این اعداد معمولا دقیق نیستند با این خاطر که حرکت زمین به دور خورشید به طور کامل تناوبی (periodic) نیست بلکه شبه تناوبی (qusiperiodic) هستند به این معنا که حرکت آن ها دقیقا به نقطه ی اول بر نمیگردد بلکه کمی جابجاست! اما چرا باید چنین باشد. برای فهم این موضوع باید به حرکت زمین دقت کنید: زمین نه تنها تحت تاثیر جرم خورشید است بلکه با یک تناوب به دور دومین جرم عظیم منظومه ی خورشید ما یعنی مشتری هم میچرخد. نتیجه ی این دو تناوب حرکت نه بر روی یک دایره بلکه یک دونات شکل (در ریاضی به آن تورس torus) می گوییم و به صورت زیر است
یک دونات (یا torus) ترکیب دو چرخش هست. دایره ی کوچک چرخش کوچکتر q و دایره ی بزرگ چرخش بزرگتر p را نشان می دهند
در حالت غیرگویا مسیر هیچ گاه به نقطه ی اول برنمیگردد و تمام فضای دونات را به تدریج اشغال می کند (فضای dense)
دایره ی بزرگتر حرکت به دور خورشید و دایره کوچک تر حرکت به دور مشتری است ( در سایز ها بسیار اغراق شده است چون حرکت چرخشی زمین روی دایره ی دوم بسیار کوچکتر است). نکته ی بسیار مهم که اینجا وجود دارد نسبت فرکانس چرخش در هر دایره است. اگر این فرکانس ها یک عدد گویا مانند p/q باشد این بدان معناست که حرکت بعد از t=gcd(p, q) (ب م م دو فرکانس) به نقطه ی اول بر میگردد به طور مثال اگر این نسبت ۸ و ۶ باشد بعد از ۲۴ دور به نقطه ی اول برمیگردیم. این اعداد اطلاعات بسیار مهمی در مورد وضعیت آب و هوایی زمین می گویند. اگرچه اثرات چنین حرکاتی بسیار کند تر است: دوره های بزرگتری از فاصله ی بیشتر و کمتر از حد معمول با خورشید بوجود می آید که از مهمترین عوامل شناخته شده برای تغییرات آب و هوایی گسترده در طول تاریخ زمین بخصوص یخبندان ها است. این همان چرخه‌های میلانکوویچ (Milankovitch cycles) است. میلوتین میلانکویچ ریاضیدان و ستاره شناس صربستانی این موضوع را در اواخر قرن نوزدهم فرضیه سازی کرد و از آن زمان شواهد بیشتر و بیشتری برای ان مشاده شده است.
در این تصویر اگر نسبت غیر گویا باشد حرکت بر روی دونات هرگز به نقطه ی اول خود بر نمیگردد ولی به آن بی نهایت نزدیک می شود (سیستم های ارگودیک ergodic sysems)

نسبت های بین فرکانس ها از مهمترین ویژگی هاس سیستم های دینامیکی است. پیچیدگی آنها (دارا بودن اعداد اول بزرگتر در تخمین های آنها) نشان دهنده ی فرکانس های گوناگونی است که سیستم به سمت آن ها حرکت کرده است. این نسبت فرکانس ها نه تنها در دینامیک بین ذرات بلکه در سیستم های پیچیده مانند حیات و زیست بوم وجود دارند. در‌ آینده نشان میدهیم. این فرکانس ها سازنده ی هر ساختار پیچیده ای است که در اطراف خود میبینیم! فرکانس هایی که بیشتر و بیشتر نسبت آنها ساختار فراکتالی پیچیدگی هایی که بازنمایی می کنند نمایش می دهد.
توزیع دوره های زاد و ولد سیکاداها در ایالات متحد، دو دوره ی تناوب ۱۳ و ۱۷ ساله با آفست های زمانی مختلف به رنگ های مختلف
حشره ی سیکادا دری بر روی دینامیک حیات باز می کند
زیست: بازی شکار اعداد اول!

در قسمت قبل دیدیم که نسبت بین فرکانس ها در سیستم های دینامیکی مستقیما با اعداد اول مرتبط می شود. در سیستم های ارگودیک همیشه این انتظار وجود دارد که سیستم بعد از حرکت در مجموعه ای از حالات به حالت اول خود برگردد. روابط بین مدارهای سامانه ی خورشیدی ما دوره هایی را ساخته است از جمله روز ماه سال و سال کبیسه و غیره. این تناوب ها زمانی رخ می دهند که به اندازه ی ک م م فرکانس ها چرخش ایجاد شده باشد. اگر یک سیستم بخواهد تناوب های طولانی تر ایجاد کند چاره ای ندارد جز اینکه عدد دوره تناوب چرخش بعدی شا نسبت به تمام تناوب های کوتاه ترش اول باشد! به طور مثال اگر سیستم تناوب های ۳، ۴، ۵ داشته باشد تناوب بعدی ۷ خواهد بود چون نسبت به تمام قبلی ها اول است. این دینامیک جالب در جای دیگری هم دیده می شود. برای این منظور یک گذار به زیست شناسی می زنیم!

سیکاداها (cicadas) نوعی حشره هستند که در بسیاری از نقاط جهان زندگی می‌کنند. در میان آن‌ها، گونه‌ای به نامMagicicada که در آمریکای شمالی یافت می‌شود، ۹۹٫۵٪ از عمر طولانی خود را به‌صورت نابالغ و زیرزمینی در پیله (nymph) می‌گذراند. اما چیزی که جالب‌تر است این است که این حشرات، بسته به منطقه یا زیرگونه‌شان، به‌صورت دسته‌جمعی هر ۱۳ یا ۱۷ سال یک‌بار از زیر خاک بیرون می‌آیند. نکته‌ی قابل توجه این است که هر دو عدد ۱۳ و ۱۷ عدد اول هستند. در نگاه اول ممکن است این موضوع تنها یک تصادف به نظر برسد، اما بسیاری این پدیده را به‌عنوان نمونه‌ای از یک راهبرد ضدشکارچی (Antipredator adaptation) مطرح کرده‌اند. چرا که سیکاداها شکارچیان طبیعی بسیاری دارند، از جمله خزندگان، پرندگان، سنجاب‌ها و دیگر پستانداران بزرگ‌تر.

این چرخه‌های عدد اول خاص باعث می‌شود که شکارچیان نتوانند با هم‌زمان‌سازی نسل‌های خود با مقسوم‌های دوره‌ی ظهور سیکاداها، جمعیت‌شان را به‌طور تناوبی افزایش دهند. برای درک بهتر، فرض کنید دوره‌ی ظهور سیکاداها هر ۱۵ سال باشد؛ در این صورت شکارچیان می‌توانند به‌راحتی چرخه‌های زادآوری ۳ یا ۵ ساله برای خود تنظیم کنند تا به موقع به طعمه‌های خود دسترسی داشته باشند و تعدادشان را افزایش دهند.

به این ترتیب، دسته‌هایی از سیکاداها که چرخه‌های عدد اول دارند، راهبردی را در پیش می‌گیرند تا تقریباً همیشه در زمانی ظاهر شوند که بخشی از شکارچیان‌شان هنوز از نظر جنسی نابالغ هستند و بنابراین نمی‌توانند از این منبع غذایی لحظه‌ای و بی‌حد و مرز حداکثر بهره را ببرند.

این دینامیک عجیب شاید یک مورد استثنا بنظر برسد با این حال چنین پدیده ای می تواند مسئول تقریبا تمام پیچیدگی که اطرافمان میبینیم، باشد

دینامیک شکارچی و شکار!
آلفرد لوتکا (Alfred Lotka) ریاضیدان و زیست شناس آمریکایی-لهستانی یکی از اولین افرادی بود که به مطالعه ی دقیق و ریاضی مشاهدات زیست شناسی مشغول شد. یافتن دینامیک مشهور شکار و شکارچی (Predator prey) یکی از بزرگترین دستاورد های زیست شناسی ریاضیاتی (mathematical biology) بود. این مدل یکی از اساسی ترین دینامیک های طبیعت را توضیح می دهد که در آن یک گونه ی شکارچی به دنبال شکار می گردد. به طور مثال می توان به جمعیت روباه ها و خرگوش ها به عنوان یک نمونه از این دینامیک نگاه کرد. به دور از جزییات تکنیکی این مدل یک گردش بی پایان بین جمعیت های شکار و شکارچی را نشان می دهد. به طور که اگر نمودار آن را بر روی فضای فاز بکشیم یک حلقه را ایجاد می کند که همیشه در حال چرخش است (چیزی که در ریاضیات به آن limit cycle) گفته می شود. به این ترتیب که زمانی که جمعیت شکار ها زیاد است جمعیت شکارچی زیاد می شود (غذای بیشتر) تا اینکه این مقدار کم شده تا جایی که شکارچی نیاز دارد جمعیتش را کمتر کند (از بین رفتن) و به این ترتیب فرصت مجدد برای شکار برای افزایش جمعیت پیدا می شود.
نکته ی مهمی که در مورد این دینامیک وجود دارد عدم تقارن بنیادی آن است. اگر جمعیت شکار زیاد شود جمعیت شکارچی بیشتر می شود اما برعکس اگر جمعیت شکارچی زیاد شود جمعیت شکار کمتر می شود! این عدم تقارن باعث چنین چرخشی می شود. با این حال این دینامیک فقط یک روند تقریبا سینوسی از جمعیت شکارچی و شکار را نشان می دهد و به این ترتیب یک معادله با یک نقطه ی تعادل است. چنین نقاط تعادلی در طبیعت بسیار زیادند. چنین تعادل هایی باعث «مقاومت» (robust) سیستم می شود: اگر شما در یک تعادل طبیعی دخالت کنید به طور مثال تعداد خرگوش ها را زیاد کنید جمعیت روباه ها به نسبت زیاد شده تا آن ها را به تعادل برساند از طرفی اگر جمعیت روباه ها را زیاد کنید شکار کم شده، روباه های بیشتری از گرسنگی مرده و جمعیت به تعادل بر میگردد. با این حال مقداری از «مقاومت» وجود دارد: گاهی اوقات این تغییرات منجر به انقراض یک گونه می تواند بشود!

برای اینکه ارتباط این موضوع را با torus ببینید می توانید حلقه ی توصیف شده را به صورت عمومی تر بین تعدادی زیادی تناوب های شکار و شکارچی ببینید باشد. به طور مشخص تر معادله ی کلی شکار و شکارچی بین p شکار و q شکارچی p+q=n برای n-torus یا تورس n بعدی ایجاد می کند! در اینجا هر شکارچی می تواند چندین شکار داشته باشد و هر شکار می تواند طعمه ی چندین شکارچی باشد! (شبکه ی غذا food web)

زمانی که نسبت فرکانس ها یک عدد گویا است فقط در بخشی از فضا حرکت میکنیم این همان تعادل است. در نظریه بازی ها همیشه به دنبال پیدا کردن چنین راه حلی هستیم: نقطه ای که ثابت است یا سیستم در تعادل قرار می گیرد! با این حال طبیعت فقط تعادل نیست که اگر این گونه بود چیزی نباید تغییر می کرد و «فرگشتی» (evolution) ی وجود نداشت. منشا این عدم تعادل چیست؟ در قسمت بعدی نشان می دهیم چگونه معادله ی شکار و شکارچی سیستم را در نهایت دچار «عدم تعادل» کرده و از طریق این آشوب سیستم را به نقطه ی تعادل بعدی متناظر با عدد های اول بزرگتر هدایت می کند!
معادله شکار و شکارچی در یک بعد حلقه هایی ایجاد می کند. در حالت کلی این حلقه ها با هم کار می کنند و یک n-torus (تورس n بعدی) شکل می دهند. اینجا را ببینید

https://lotka-volterra.vercel.app/

با کد گیتهاب https://github.com/roholazandie/Lotka-Volterra