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

نویسنده: عباس ریزی

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

abbas.sitpor.org

تجربه شخصی در کارهای مربوط به تحلیل داده در بازار و نه دانشگاه!

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

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

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

۱) پایتون یاد بگیرید

پایتون بر هر درد بی‌درمان دواست. اینم سه تا دوره خوب فارسی:

💡 اگر پایتون رو شروع کردین، ادامه این نوشته رو بخونید!

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

در ضمن گوگل یه چیزی درست کرده به اسم Google Colab که یه ژوپتر نوت بوک آنلاینه که میشه بری اونجا و آنلاین کد بزنی روی کامپیوترای گوگل! ۱۲ گیگ رم میده بهتون با یه پردازنده نسبتا معقول. gpu هم میده برای پردازش‌های موازی! خوبی این‌کار اینه که حتی با یه کامپیوتر ضعیف هم میشه راحت کد پایتون زد و مهم‌تر این‌که میشه کد رو به اشتراک بذاری و همزمان چند نفر توی یه پروژه مشارکت داشته باشند. در ضمن، هر چیزی که بشه روی کامپیوتر شخصی نصب کرد، به راحتی روی گوگل کولب هم نصب میشه. خودتون ببنید چیه دیگه! داخل خود پروژه هم کلی کد نمونه هست. فیلم آموزشی هم هست. اینجا هم یکمی توضیح هست برای گوگل کولب.

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

۲) تحلیل داده به کمک پایتون

الان وقتشه که یه سری کورس تحلیل داده هم ببینید و یاد بگیرین (مهم‌ترین کتابخونه پایتون برای تحلیل داده Pandas هست). با دوره‌ آنلاین آشنا هستید؟!

دوره‌های پیشنهادی:

یک دوره جامع از دانشگاه میشیگان:

۳) آمار یاد بگیرید

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

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

#شرح_پیچیدگی

در توییتر متخصصان حوزه پیچیدگی با هشتگ #ComplexityExplained در مورد مفهوم پیچیدگی توییت کردند و ماحصل توییت‌ها تبدیل به دفترچه‌ای شد در #شرح_پیچیدگی. دفترچه‌ای برای توضیح مفهوم پیچیدگی بر اساس آرا صاحب‌نظران این حوزه!

شما می‌توانید سایت اصلی این پروژه را با رفتن به این نشانی ببینید:
complexityexplained.github.io

این اثر با مجوز زیر منتشر شده است:
CC BY-NC-ND 4.0

این شما و این نسخه فارسی این دفترچه :

ComplexityExplainedFarsi

«مقدمه‌ای بر بازبهنجارش» هفته پنجم: بازبهنجارش در فیزیک انرژی‌های بالا، نظریه گروه‌ها و نظریه نرخ-اعوجاج

دوره «مقدمه‌ای بر بازبهنجارش»

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

با تشکر از Simon Dedeo، موسسه سانتافه و بهار بلوک آذری.

ایده بازبهنجارش در مورد مطالعه نظریه‌ها است هنگامی که از مقیاسی به مقیاس دیگر می‌روند.

هفته پنجم: بازبهنجارش در فیزیک انرژی‌های بالا، نظریه گروه‌ها و نظریه نرخ-اعوجاج

در ابتدای این جلسه کمی در مورد بازبهنجارش در فیزیک انرژی‌های بالا صحبت خواهم کرد و سپس با معرفی کوتاهی از نظریه‌ گروه‌ها، سراغ قضیه Krohn–Rhodes می‌روم. در انتها به این پرسش می‌پردازم که آیا برتری بین روش‌های درشت-دانه‌بندی وجود دارد یا خیر. در قسمت انتهایی نظریه نرخ-اعوجاج (Rate–distortion theory) را مطرح می‌کنم.


ویدیوها

۱) بازبهنجارش در فیزیک انرژی‌های بالا

۲) نظریه گروه‌ها

۳) نظریه نرخ-اعوجاج


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


اسلایدها

بازبهنجارش-قسمت-آخر

«مقدمه‌ای بر بازبهنجارش» هفته چهارم: مدل آیزینگ

دوره «مقدمه‌ای بر بازبهنجارش»

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

با تشکر از Simon Dedeo، موسسه سانتافه و بهار بلوک آذری.

ایده بازبهنجارش در مورد مطالعه نظریه‌ها است هنگامی که از مقیاسی به مقیاس دیگر می‌روند.

هفته چهارم: مدل آیزینگ

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


ویدیوها

۱) مرور جلسات گذشته و معرفی مدل آیزینگ

۲) درشت-دانه بندی شبکه اسپینی

۳) یافتن نقاط ثابت


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

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

شبیه‌سازی مدل آیزینگ


اسلایدها

بازبهنجارش-آیزینگ1

«مقدمه‌ای بر بازبهنجارش» هفته سوم: اتوماتای سلولی

دوره «مقدمه‌ای بر بازبهنجارش»

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

با تشکر از Simon Dedeo، موسسه سانتافه و بهار بلوک آذری.

ایده بازبهنجارش در مورد مطالعه نظریه‌ها است هنگامی که از مقیاسی به مقیاس دیگر می‌روند.

هفته سوم: اتوماتای سلولی

یک اتوماتای سلولی شامل یک شبکه منظم از سلول‌های خاموش و روشن است. تحول این سلول‌ها توسط قواعد ثابتی که فقط وابسته به وضعیت قبلی آن سلول و همسایگانش است مشخص می‌شود. در این جلسه ابتدا اتوماتای سلولی را معرفی می‌کنم و به مفاهیمی چون «کامل بودن تورینگ» و «نمودارهای جابه‌جاشوند»  می‌پردازم. سپس سراغ درشت-دانه‌بندی اتوماتای سلولی و مقاله ۲۰۰۴ و ۲۰۰۵ گلدنفلد می‌روم و در نهایت در مورد شبکه‌‌های بازبهنجارش بحث خواهم کرد.


ویدیوها

۱) معرفی اتوماتای سلولی

۲) درشت-دانه بندی اتوماتای سلولی

۳) شبکه‌های بازبهنجارش


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


اسلایدها

بازبهنجارش-اتوماتای-سلولی5

«مقدمه‌ای بر بازبهنجارش» هفته دوم: زنجیره‌های مارکوف

دوره «مقدمه‌ای بر بازبهنجارش»

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

با تشکر از Simon Dedeo، موسسه سانتافه و بهار بلوک آذری.

ایده بازبهنجارش در مورد مطالعه نظریه‌ها است هنگامی که از مقیاسی به مقیاس دیگر می‌روند.

هفته دوم: زنجیره‌های مارکوف

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


ویدیوها

۱) سری‌های زمانی و زنجیره‌های مارکوف

۲) ریاضیات زنجیره‌های مارکوف

۳) مدل بنیادی‌تر برای داده ریز-دانه‌بندی شده


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


اسلایدها

2-MC

پیشنهادهایی برای دانشجویان تحصیلات تکمیلی، به‌ویژه برای سیستم‌های پیچیده

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

تا جایی که می‌تونید با سواد بشید.

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

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

مستقل از حرف‌های بالا، یه سری چیزها رو باید خوب بدونید:

برنامه‌نویسی و شبیه‌سازی رو جدی بگیرید

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

عمیق بشید

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

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

تماشاچی نباشید!

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

این جزئیات هم مهمه: