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

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

یکی از پرسش‌های اصلی که همیشه ذهنم را موقعی که هوش مصنوعی یاد میگرفتم به خود مشغول میکرد این بود که: چرا در بسیاری از الگوریتم‌های یادگیری ماشین از لگاریتم در تابع هدف استفاده می‌کنیم؟ اگر به پیشرفته‌ترین شبکه‌های عصبی نگاه کنیم، می‌بینیم کل شبکه روی یک عدد بهینه می‌شود؛ همان تابع خطا (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