رفتن به نوشته‌ها

برچسب: نظریه اطلاعات

یادگیری «سیستم‌های پیچیده» رو از کجا و چه‌طور آغاز کنیم؟!

خیلی وقته که از من پرسیده میشه که اگر بخوایم یادگیری سیستم‌های پیچیده رو شروع کنیم باید چیکار کنیم؟! آیا میشه بیرون از دانشگاه این کار رو انجام داد؟ یا اگر من رشته‌م مثلا کیهان‌شناسی، آمار یا ریاضی هست برام مقدوره که یادبگیرم؟ خب جواب اینه: چرا که نه! اما اینکه یک راه خیلی خاص وجود داشته باشه، راستش وجود نداره. در حقیقت آدم‌های مختلفی به این سوال طی سال‌های گذشته جواب‌های متنوعی دادن؛ مثلا  مارک نیومن یک‌بار در مورد موضوعات مطرح و منابع موجود در Complex Systems: A Survey نوشته. با این حال سعی می‌کنم طرحی برای شروع یادگیری سیستم‌های پیچیده در ادامه ترسیم کنم. از هرگونه نظر، انتقاد یا پیشنهاد از صمیم قلب استقبال می‌کنم، به‌ویژه از طرف متخصصان. راستی  قبل‌تر نوشته‌ای با عنوان «چگونه یک‌ فیزیک‌دان نظری خوب شویم؟» از خِراردوس توفت، نوبلیست، ترجمه کرده بودم.

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

کتاب مقدمه‌ای بر نظریه سیستم‌های پیچیده

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

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

۱) جبر خطی و ماتریس‌ها

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

  1. کورس جبر خطی Vector and Matrix Algebra by Anthony D. Rhodes
  2. ویدیوهای Essence of linear algebra
  3. کورس و کتاب جبرخطی Gilbert Strang
این کتاب با نگاهی جدید به مکانیک کلاسیک، به موضوعات مورد نیاز برای سیستم‌های پیچیده می‌پردازد.

۲) مکانیک کلاسیک

بخش زیادی از سیستم‌های پیچیده توسط فیزیک‌دانان توسعه داده شده، پس باید با ادبیات ابتدایی فیزیک آشنا بشید!

  1. کورس مکانیک کلاسیک لنرد ساسکیند
  2. کتاب Introduction to Modern Dynamics – Chaos, Networks, Space and Time – David D. Nolte

۳) آمار، احتمال و فرایندهای تصادفی

ایده‌های اصلی آمار و احتمال رو باید بدونید. یعنی هرکسی که در دنیای امروز زندگی می‌‌کنه باید بدونه!

  1. کتاب An Introduction to Random Vibrations, Spectral & Wavelet Analysis by D. E. Newland
  2. کتاب Probability Theory: The Logic of Science by E. T. Jaynes
  3. جزوه فرایندهای تصادفی دکتر کریمی‌پور

۴) فرکتال‌ها و مفاهیم مقیاسی

  1. مقدمه‌ای بر هندسه فرکتالی: ویدیو
  2. کتاب Scale: The Universal Laws of Growth, Innovation, Sustainability, and the Pace of Life in Organisms, Cities, Economies, and Companies by Geoffrey West
  3. کورس Fractals and Scaling by David Feldman
  4. این ویدیو رو ببینید:

۵) فیزیک آماری و پدیده‌های بحرانی

مکانیک آماری رو خیلی خوب باید بدونید! از ایده‌های ابتدایی تا مباحث پیشرفته. مدل آیزینگ رو خیلی جدی بگیرین!

  1. کورس مکانیک آماری لنرد ساسکیند
  2. کورس و کتاب فیزیک آماری ذرات، مهران کاردر
  3. کتاب Statistical Mechanics Entropy, Order Parameters, and Complexity by James P. Sethna
  4. کورس کوتاه  Introduction to Renormalization by Simon DeDeo
  5. کتاب Lectures On Phase Transitions And The Renormalization Group by Nigel Goldenfeld
  6. کتاب David Tong: Lectures on Kinetic Theory

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

۶) دینامیک غیرخطی و آشوب

  1. کورس Introduction to Dynamical Systems and Chaos by David Feldman
  2. کورس و کتاب Nonlinear Dynamics and Chaos by Steven H. Strogatz
  3. کورس Nonlinear Dynamics: Mathematical and Computational Approaches by Liz Bradley

۷) شبکه‌ها (علم شبکه)

  1. ویدیو «ظهور علم شبکه»
  2. مقاله مروری The shortest path to complex networks by S. N. Dorogovtsev and J. F. F. Mendes
  3. این ۴ ویدیو رو ببینند.
  4. کتاب علم شبکه باراباشی
  5. کتاب Networks: An Introduction by Mark Newman
  6. این ویدیو رو ببینید:

۸) روش‌ها و تکنیک‌های محاسباتی و شبیه‌سازی

  1. کورس پایتون برای همه
  2. کورس پایتون برای پژوهش
  3. کتاب Monte Carlo Simulation in Statistical Physics: An Introduction by Kurt Binder, Dieter W. Heermann
  4. کتاب Complex Network Analysis in Python by Dmitry Zinoviev
  5. کورس Introduction to Agent-Based Modeling by William Rand

۹)  نظریه اطلاعات و محاسبه

Self-contained, precise. Numerous examples and exercises make it a valuable teaching book
Builds a bridge between physics of glasses and computer science problems
  1. کورس Introduction to Computation Theory by Josh Grochow
  2. مقاله مروری A Mini-Introduction To Information Theory by Edward Witten
  3. کتاب Information, Physics, and Computation by Marc Mézard and Andrea Montanari

۱۰) نظریه بازی‌‌ها

  1. کورس Game Theory I – Static Games by Justin Grana
  2. کورس Game Theory II- Dynamic Games by Justin Grana
  3. کتاب Strategy: An Introduction to Game Theory by Joel Watson

۱۱) یادگیری ماشین

  1. کورس Matrix Methods in Data Analysis, Signal Processing, and Machine Learning – Gilbert Strang
  2. کورس Fundamentals of Machine Learning by Brendan Tracey and Artemy Kolchinsky
  3. مقاله مروری A high-bias, low-variance introduction to Machine Learning for physicists
  4. ویدیو Bayesian Inference by Peter Green

به طور کلی، دوره‌های آموزشی Complexity Explorer رو دنبال کنید. موسسه سن‌تافه (سانتافه!)  یک کورس مقدماتی روی پیچیدگی داره. همین‌طور پیشنهاد می‌کنم عضو کانال Complex Systems Studies در تلگرام بشین. فراموش نکنید که اینترنت پره از منابع خوب برای یادگیری ولی چیزی که کمه، همت! در آخر دیدن این ویدیو رو با زیرنویس فارسی پیشنهاد می‌کنم:

سیستم‌های پیچیده: «ماهیت و ویژگی‌»

پیچیدگی چیست؟!

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

سردمداران فیزیک مدرن – پنجمین کنفرانس سُلوی (۱۹۲۷).

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

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

  • برای ما، پیچیدگی به معنای وجود ساختار به همراه تغییرات است. (۱)
  • از یک جهت، سیستم‌پیچیده، سیستمی است که تحول آن شدیدا به شرایط اولیه و یا اختلال‌های کوچک حساس است. سیستمی شامل تعداد زیادی قسمتِ مستقلِ درحالِ برهمکنش با یکدیگر که می‌تواند مسیرهای مختلفی برای تحولش را بپیماید. توصیف تحلیلی چنین سیستمی قاعتدا نیاز به معادلات دیفرانسیل غیرخطی دارد. از جهت دیگر، می‌توانیم نگاهی غیررسمی داشته باشیم، به این معنا که اگر بخواهیم قضاوتی داشته باشیم، سیستم «بغرنج (complicated) » است و قابلیت اینکه دقیقا به طور تحلیلی یا نوع دیگری توصیف شود  وجود نداشته باشد.(۲)
  • به طور کلی، صفت «پیچیده»، سیستم و یا مولفه‌ای را توصیف می‌کند که فهم یا تغییر طراحی و/یا عملکرد آن دشوار باشد. پیچیدگی توسط عواملی چون تعداد مولفه‌های سازنده و روابط غیربدیهی بین‌ آن‌ها، تعداد و روابط غیربدیهی شاخه‌های شرطی، میزان تودرتو بودن و نوع ساختمان داده است. (۳)
  • نظریه پیچیدگی بیان می‌کند که جمعیت زیادی از اجزا، می‌توانند به سمت توده‌ها خودسازماندهی کنند و منجر به ایجاد الگو، ذخیره اطلاعات و مشارکت در تصمیم‌گیری جمعی شوند. (۴)
  • پیچیدگی در الگوهای طبیعی نمایانگر دو مشخصه کلیدی است؛ الگوهای طبیعی حاصل از پردازش‌های غیرخطی، آن‌هایی که ویژگی‌های محیطی که در آن عمل می‌کنند یا شدیدا جفت‌شده‌اند  را اصلاح می‌کنند و الگوهای طبیعی که در سیستم‌هایی شکل می‌گیرند که یا باز هستند یا توسط تبادل انرژی، تکانه، ماده یا اطلاعات توسط مرزها از تعادل خارج شده‌اند. (۵)
  • یک سیستم پیچیده، دقیقا سیستمی است که برهم‌کنش‌های چندگانه‌ای بین عناصر متفاوت آن وجود دارد. (۶)
  • سیستم‌های پیچیده، سیستم‌هایی با تعداد اعضای بالایی هستند که نسبت به الگوهایی که اعضای آن می‌سازند، سازگار می‌شوند یا واکنش نشان می‌دهند. (۷)
  • در سال‌های اخیر، جامعه علمی، عبارت کلیدی «سیستم‌ پیچیده‌»  را برای توصیف پدیده‌ها، ساختار، تجمع‌ها، موجودات زنده و مسائلی که چنین موضوع مشترکی دارند را مطرح کرده است: ۱) آن‌ها ذاتا بغرنج و تودرتو هستند. ۲) آن‌ها به ندرت کاملا تعینی هستند. ۳) مدل‌های ریاضی این گونه سیستم‌ها معمولا پیچیده و شامل رفتار غیرخطی، بدوضع (ill-posed) یا آشوبناک هستند. ۴) این سیستم‌ها متمایل به بروز رفتارهای غیرمنتظره (رفتارهاری ظهوریافته) هستند. (۸)
  • پیچیدگی زمانی آغاز می‌شود که علیت نقض می‌شود! (۹)
برای آشنایی بیشتر به این پروژه سر بزنید!

در مورد تعاریف فوق ابهاماتی وجود دارد؛ در (۱) باید ساختار و تغییرات را به درستی و دقت معنا کنیم. در (۲) باید به دنبال تلفیق سیستم‌های پیچده و مفاهیمی چون غیرخطی، آشوب‌ناک و بس‌ذره‌ای بودن باشیم و به درستی مشخص کنیم که آیا این‌ ویژگی‌ها شرط لازم / کافی برای یک سیستم پیچیده هستند یا نه. (۳) و (۴) مفاهیم محاسباتی و موضوعاتی از علم کامپیوتر را مطرح می‌کند که به خودی‌خود مسائل چالش‌برانگیزی هستند! (۵) ایده مرکزی غیرخطی بودن را مطرح می‌کند؛ در ادامه می‌بینیم با این که تعداد زیادی از سیستم‌های پیچیده از ویژگی غیرخطی بودن تبعیت می‌کنند، با این وجود غیرخطی بودن نه شرط لازم و نه شرط کافی برای پیچیدگی است. در مورد (۶) و (۷) نیز باید تاکید کنیم که بس‌ذره‌ای بودن و شامل اعضا/عناصر/مولفه/افراد زیادی بودن نیز شرط کافی برای پیچیدگی نیست.  در ادامه خواهیم دید، تعریف (۸) که ایده‌ی پدیدارگی (ظهوریافتگی یا برآمدگی: Emergence) را مطرح می‌کند می‌تواند مفهومی بسیار گیج‌کننده باشد برای اینکه به کمک آن بتوانیم سیستم‌های پیچیده را تمیز و تشخیص دهیم. در مورد تعریف (۹) باید بحث زیادی کنیم چرا که افراد زیادی در برابر نقص علیت ناراحت خواهند شد! به همین دلیل است که گاهی درک سیستم‌های پیچیده برای مردم دشوار است. بنابراین با توجه به ابهامات تعاریف افراد مختلف در حوزه‌های گوناگون علم، بهتر از است که مفاهیم وابسته به پیچیدگی را بررسی کنیم.