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

Tag: یادگیری ماشین

جایگاه علم داده در نجوم امروزی

بخش ششم از سری گفت‌وگوهای «پشت‌پرده نجوم»

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

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

در علم نجوم امروزی، به‌دلیل ساخت تلسکوپ‌ها و آشکارساز‌های بزرگ متعدد ـ و ترکیب تلسکوپ‌های بزرگ با یکدیگر با استفاده از روش تداخل‌سنجی، برای ساخت تلسکوپ‌های مجازیِ حتی بزرگ‌تر ـ و هم‌چنین افزایش کیفیت و رزولوشن تصاویر دریافتی از آسمان، حجم داده‌ها بسیار افزایش پیدا کرده و کار با داده‌های کلان، به مسئله‌ای مهم تبدیل شده است. به‌عنوان مثال، برای ثبت اولین تصویر از یک سیاه‌چاله که سال پیش توسط تیم تلسکوپ افق رویداد منتشر شد، هشت آرایه‌ از تلسکوپ‌های رادیویی، حدود یک هفته رصد انجام دادند که منجر به دریافت داده‌ای با حجم حدود ۲۷ پتا‌بایت شد و کار انتقال، پاکسازی و تحلیل آن حدود ۲ سال طول کشید (برای اطلاعات بیشتر درمورد جزئیات ثبت این تصویر، این نوشته را بخوانید)! 

در گفت‌وگویمان با علیرضا وفایی‌صدر، به مسائل مختلفی در ‌زمینه نقش داده در نجوم پرداخته‌ایم؛ از جمله اینکه: چطور می‌توان داده‌های کلان را سرو‌سامان داد؟ ماشین‌‌ها (کامپیوترها) چه جنس کارهایی را در زمینه نجوم می‌توانند برای ما انجام دهند؟ همکاری‌های بین‌المللی چه نقشی در این زمینه دارند؟

بخش ششم «پشت‌ پرده نجوم»
ویدیوی گفت‌و‌گوی محمد‌مهدی موسوی (فیزیک‌پیشه) و علیرضا وفایی‌صدر (پژوهشگر فیزیک در مقطع پسادکتری در IPM) درمورد جایگاه علم داده در نجوم امروزی

به این گفت‌وگو گوش دهید:

وبلاگ‌نویسی و روایتگری در علم

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

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

برای شروع وبلاگ‌نویسی

.There is nothing to writing. All you do is sit down at a typewriter and bleed

Ernest Hemingway, awarded the 1954 Nobel Prize in Literature

می‌تونید به سادگی وبلاگ شخصی خودتون رو توی blog.ir یا ویرگول یا هر جای دیگه درست کنید. برای دنبال کردن وبلاگ‌های مورد علاقه‌تون هم می‌تونید همه‌ رو به صورت یکجا به کمک feedly.com داشته باشید. این نوشته از جادی رو بخونید: برای پیشرفت مجدد، دوباره وبلاگ بنویسید!

وبلاگ‌های پیشنهادی

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

برای زندگی روزمره و بیشتر برای جنبه‌های عمومی مسئله:

«عمومی» 
«کمی فنی» 

نوشته‌های مربوط به فیزیک جریان‌اصلی:

«کمی فنی» 

فیزیک آماری، ماده‌چگال و محاسباتی:

«فنی» 

سیستم‌های پیچیده، یادگیری ماشین و علوم داده:

«فنی» 
«خیلی فنی» 

برای عمیق شدن در ریاضیات:

«خیلی فنی» 

این دو تدتاک رو هم برای جنبه عمومی نوشتن پیشنهاد می‌کنم:

یادگیری متلب و گنو اُکتاو

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

با این وجود گاهی پیش میاد که آدم مجبور به استفاده از زبان‌های دیگه بشه. تجربه شخصی من اینه که عمده دانشگاهی‌ها به این دلیل مجبور میشن از یک زبان خاص استفاده کنند که به قدر کافی آدم‌های حرفه‌ای در تیمشون نیست! گاهی استاد و تیمی که پروژه‌ای رو پیش برده سال‌ها با یک زبان خاص کد زدند و ترجیحشون اینه که آدم‌های جدید هم با همون زبون ادامه بدن. راه کم‌دردسرتری هست معمولا، هر چند که گاهی می‌تونه به شدت احمقانه باشه! خلاصه ممکنه که هر کسی مجبور بشه سراغ زبان‌ها یا محیط‌های دیگه برنامه‌نویسی بره. یکی از این محیط‌ها متلب هست. توی لینوکس می‌تونید از Octave به جای متلب استفاده کنید و لذتش رو ببرید!

متلب یک محیط نرم‌افزاری برای انجام محاسبات عددی و یک زبان برنامه‌نویسی نسل چهارم است. واژهٔ متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامه‌نویسی مورد نظر است که از ترکیب دو واژهٔ MATrix (ماتریس) و LABoratory (آزمایشگاه) ایجاد شده‌است. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته می‌شوند.

گنو اُکتاو ( GNU Octave) زبان برنامه‌نویسی سطح بالایی است که بیشتر برای محاسبات عددی به کار می‌رود. این برنامه امکانات زیادی را از طریق رابط خط فرمان برای حل عددی مسائل خطی و غیر خطی می‌دهد. این برنامه را می‌توان جایگزین مناسبی برای همتای غیر آزاد خود متلب به حساب آورد.

ویکی‌پدیا

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

برای شروع

از بین این دوره‌ها، ببینید کدوم یکی به مذاقتون بیشتر خوش میاد:

برای محسابات عددی

به طور کلی

پیشنهاد من اینه که کلیات متلب رو یاد بگیرین و از منابع مختلف مربوط به کارتون استفاده کنید. مخصوصا از مثال‌های خود Mathworks استفاده کنید. مثلا اینجا ۵۰۰ تا مثال خیلی خوب برای ریاضیات، آمار و یادگیری ماشین هست. خوبه به این‌ها حتما نگاه کنید. حواستون باشه که به روی ایران بسته‌س و شما نیاز به چیزی برای دور زدن تحریم دارین که حتما راه‌های مختلفی بلدین براش!

این کتاب پر از مثال‌های خیلی قشنگه و اساسا آموزشش بر پایه مثال زدن. فصل اولش هم برای کسایی که آشنایی با متلب ندارن یک سری مثال آموزشی خوب داره.

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

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

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

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