Golem Course – Telegram
Golem Course
2.93K subscribers
47 photos
43 videos
40 files
144 links
Alireza Aghamohammadi, Ph.D.

https://youtube.com/@GolemCourse
Download Telegram
#معرفی_کتاب


دو کتاب مرجع در سال ۲۰۲۴ برای یادگیری عمیق (deep learning) منتشر شده‌اند:

1. Understanding Deep Learning, Simon J.D. Prince
2. Deep Learning: Foundations and Concepts, Christopher M.Bishop



تا جایی که من اطلاع دارم، هر دو کتاب به عنوان مرجع درس در دانشگاه خودمان (صنعتی شریف) استفاده می‌شوند. کتاب اول توسط دکتر سلیمانی و کتاب دوم توسط دکتر بیگی به عنوان یکی از منابع درسی استفاده می‌شوند.



هر دو کتاب واقعاً خوب نوشته شده‌اند و ارزش خواندن دارند. تقریباً ۹۰ درصد سرفصل‌های این دو کتاب با هم مشترک است. اگر بخواهم از تفاوت‌های بین سرفصل‌ها بگویم، کتاب دوم یک فصل را به نمونه‌گیری (sampling) اختصاص داده است، در حالی که کتاب اول یک فصل در مورد یادگیری تقویتی (reinforcement learning) دارد.



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



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


@golemcourse
👍25💯4🔥31
slides_graph_neural_networks.pdf
809 KB
مبحث شبکه‌های عصبی مبتنی بر گراف (GNN) را در کانال یوتیوب پوشش دادم. ویدیوهای شماره ۹۰ تا ۹۷ از پلی‌لیست یادگیری عمیق مربوط به این موضوع است. اسلایدهایی که به همین خاطر تهیه کرده‌ بودم، برایتان پیوست کردم.

@golemcourse
36🔥2💯1
الوعده وفا!

بالاخره تمام شد. ۹ ماه پیش زمانی که ضبط دوره یادگیری عمیق را شروع کردم، قول دادم که بیش از ۱۰۰ ویدیو برای آن ضبط خواهم کرد. امروز تمام ویدیوها را می‌توانید از پلی‌لیست یوتیوب تماشا کنید. در مجموع حدود ۲۶ ساعت محتوا است و مباحث زیر را پوشش دادم:


Optimization Algorithm (SGD, Momentum, Nesterov, Adam, ...)
Deep Neural Networks
Convolutional Neural Networks
Residual Neural Networks
Transformer and Large Language Models
Autoencoder
Variational Autoencoder (VAEs)
Generative Adversarial Networks (GAEs)
Normalizing Flows
Diffusion Models
Graph Neural Networks (GNNs)
Reinforcement Learning

@golemcourse
114🔥12👍7💯2
🎥 آموزش کوبرنتیز (Kubernetes)

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

در حال تهیه یک پلی‌لیست آموزشی جامع داخل کانال یوتیوب در این زمینه هستم. تا الان ۶ ویدیو ضبط کردم و تخمین می‌زنم این دوره در نهایت به حدود ۸۰ ویدیو برسد.

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

🎬 مشاهده پلی‌لیست آموزشی در یوتیوب

💻 دسترسی به کدها در گیتهاب

@golemcourse
37👍9🐳7
تفاوت فیدبک (بازخورد) و ریمارک (نکته)

Feedback vs. Remark

من این بحث رو قبلاً به شکل دیگه‌ای و در چارچوب متفاوتی در فایل صوتی گفتگوهای دشوار گفته‌ام.

اما احساس کردم خوبه یادآوری بشه.

دربارهٔ فیدبک در فضای کسب‌وکار بعداً یه پیام صوتی جدا می‌ذارم.

#هایلایت_کلمات #منبر
👍114
Golem Course
🎥 آموزش کوبرنتیز (Kubernetes) کوبرنتیز یک بستر متن‌باز برای مدیریت کانتینرها در محیط عملیاتی است که به توسعه‌دهندگان و تیم‌های فنی کمک می‌کند برنامه‌هایشان را با مقیاس‌پذیری، پایداری و انعطاف بالا مستقر کنند. در حال تهیه یک پلی‌لیست آموزشی جامع داخل…
دوستان پرسیده بودند کتاب برای یادگیری کوبرنتیز چی پیشنهاد می‌کنم؟

بین منابعی که خواندم و بررسی کردم، به نظرم دو مورد از بقیه بهتر آمدند:

1. Learn Kubernetes in a Month of Lunches
2. Kubernetes for Developers

همزمان می‌توانید ویدیوهای مرا هم تماشا کنید. تا الان ۴ ساعت ضبط کردم (۱۶ ویدیو) و همچنان ادامه داره.

@golemcourse
21👍6🐳3
در قرن نوزدهم میلادی، کارگران صنعت نساجی در انگلستان سلسله شورش‌هایی را در اعتراض به ورود ماشین‌آلات ترتیب دادند. این کارگران که به جنبش لادایت‌ها (Luddite) مشهور شدند، معتقد بودند که ماشین‌آلات با خودکارسازی فرآیندها، به کاهش و تعدیل نیروی کار منجر می‌شوند. نام لادایت از نِد لود، یکی از کارگران انگلیسی، برگرفته شده است که حوالی سال ۱۷۷۹ میلادی ماشین بافندگی را خرد کرد.


واژه‌ی لادایت بعدها به فرهنگ لغات اضافه شد. دیکشنری کمبریج این واژه را این‌گونه تعریف کرده است:

a person who is opposed to the introduction of new working methods, especially new machines


معادل فارسی این واژه را می‌توان «فرد ضد تکنولوژی» یا «فرد تجددستیز» در نظر گرفت.


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


@golemcourse
👍224🤔3
Golem Course
در قرن نوزدهم میلادی، کارگران صنعت نساجی در انگلستان سلسله شورش‌هایی را در اعتراض به ورود ماشین‌آلات ترتیب دادند. این کارگران که به جنبش لادایت‌ها (Luddite) مشهور شدند، معتقد بودند که ماشین‌آلات با خودکارسازی فرآیندها، به کاهش و تعدیل نیروی کار منجر می‌شوند.…
محمدرضا شعبانعلی در یکی از پست‌هایش (لینک) سوال جالبی مطرح کرده است:

اگر قرار باشد عددی بین صفر تا ۱۰۰ انتخاب کنید، کدام را برمی‌گزینید؟


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

بعد از انتخاب عدد خود، اجازه بدهید کمی فراتر از عدد ۱۰۰ برویم! به این موضوع خوب فکر کنید:

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

حالا تصور کنید اگر نئاندرتال‌ها در زمان تکامل خود می‌دانستند که روزی انسان‌های خردمند جایگزین آن‌ها خواهند شد و این انتخاب در اختیارشان بود که جلوی این روند را بگیرند، چه تصمیمی می‌گرفتند؟

به قول یکی از دیالوگ‌های سریال Westworld:

Do you know what happened to the Neanderthals, Bernard? We ate them.


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

یک توصیه دوستانه: فصل اول به‌تنهایی کافی و جامع است. نیازی به تماشای فصل‌های بعدی نیست. به جای تماشای کل سریال، فصل اول را چندین بار تماشا کنید 😁

و اگر فرصت یا حوصله‌ی تماشای سریال را ندارید (که به نظر من اشتباه می‌کنید!)، حتماً این شاهکار موسیقی از رامین جوادی را گوش کنید (لینک)

@golemcourse
17👍7
#Westworld
#شب_بخیر

If you can't tell does it matter?
12👍8🤔3🐳1
حدود شش ماه است که از روشی مشابه Inbox Zero برای مدیریت ایمیل‌هایم استفاده می‌کنم و از نتایج آن کاملاً راضی هستم. برای این منظور، سه قانون ساده تعیین کرده‌ام:

یادآوری: ایمیل‌های آرشیو (archive) شده تنها از اینباکس حذف می‌شوند اما همچنان از طریق جست‌وجو قابل دسترسی هستند.

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


با این روش، اینباکس من همواره حداکثر به تعداد انگشتان یک دست ایمیل دارد، که آن‌ها هم مربوط به کارهایی هستند که باید انجام دهم و به محض تکمیل، آرشیو می‌شوند.

تصویر از کتاب Become an Effective Software Engineering Manager است.

@golemcourse
👍202
Forwarded from Deep Time
همونطور که قبلا اینجا گفتم، یادگیری، تخصص و اعمال دانش از مواردی هست که بیشترین دوپامین و انگیزه رو ایجاد میکنه. حالا این یادگیری و توانایی تغییر مغز در واقع با مکانیزم نوروپلاستیسیتی انجام میشه که قابلیت مغز انسان برای ایجاد ارتباطات نورونی جدید هست. این توانایی برای تمام سنین هست اما از ۲۵ سالگی به بعد به پروتکل‌های خاصی نیاز هست تا مغز تغییر کنه و یادگیری اتفاق بیفته. در اصل دو ماده وجود دارن با دو کارکرد که اگر در مغز همزمان ترشح بشن قطعا نوروپلاستیسیتی اتفاق میفته.

۱_ ماده Epinephrine با کارکرد هشیاری (Alertness): که برای ترشحش دو راه مصرفی و رفتاری هست:
مصرفی: کافئین و Adrenal. شخصا هر روز قهوه میخورم.
رفتاری: عشق، ترس، لذت و ... برای مثال:
فرض کنید به این فکر میکنید که چقدر از متخصص شدن در ماشین لرنینگ و کوئانت لذت میبرید پس هشیاری ایجاد میشه برای مغز و آماده یادگیری. یا گاهی احساساتی مثل ترس و اشتیاق فرضا برای شرکت در مسابقات میتونن چالش های خوبی برای یادگیری و تثبیت در مغز باشن. اصولا ایجاد چالش مثبت باید یک روتین باشه. ترس از آلزایمر هم میتونه برای سنین بالا هشیاری کافی برای یادگیری رو ایجاد کنه.

۲_ ماده Acetylcholine با کارکرد تمرکز و توجه (Attention): برای ترشحش مجدد دو روش هست:
مصرفی: نیکوتین که ریسک سلامتی داره.
رفتاری: تمرکز بصری که در واقع مهم‌ترین و طبیعی ترین مکانیزمی تمرکز هست که همه باهاش به دنیا میایم یعنی. برای ایجاد این تمرکز بصری به شکل خیلی ساده کافیه ۶۰ الی ۱۲۰ ثانیه به یک نقطه نگاه کنیم.

نکته اساسی: نوروپلاستیسیتی در زمان بیداری تکمیل نمیشه و صرفا کانکشن های نورونی هایلایت میشن اما تثبیت در طول خواب اتفاق میفته که نیاز به خواب خوب در شب هست. اما یک مکانیزم که حتی از خواب شب بهتر عمل میکنه مکانزیم NSDR هست که در واقع نوعی مدیتیشن هست و البته میتونه یک چُرت هم باشه در حالت ساده. و حالت بهینه برای یادگیری ۹۰ دقیقه یادگیری و ۱۵ الی ۲۰ دقیقه NSDR

منبع: اپیزود Essentials: How to focus to change your brain از Hubermanlab که برای استاد نوروساینس استنفرد هست. اپیزودهای Essentials حدود ۴۰ دقیقه هستن و توصیه میکنم دنبال کنید.
👍87
Deep Time
همونطور که قبلا اینجا گفتم، یادگیری، تخصص و اعمال دانش از مواردی هست که بیشترین دوپامین و انگیزه رو ایجاد میکنه. حالا این یادگیری و توانایی تغییر مغز در واقع با مکانیزم نوروپلاستیسیتی انجام میشه که قابلیت مغز انسان برای ایجاد ارتباطات نورونی جدید هست. این…
این لینک NSDR که محمد معرفی کرده را حتماً چک کنید. حدوداً ۱۰ دقیقه است. چنین توضیحی برای ویدیو نوشته:

Non-Sleep Deep Rest protocol (NSDR) enhances the learning process by reducing day-time fatigue and improving focus. It can also greatly enhance your sleep, boost your mood, and promote #Neuroplasticity – the ability of your brain to change and grow.
👍7
همان‌طور که می‌دانید DeepSeek-R1 متن باز است و مقاله‌اش منتشر شده.

اگر دوست دارید تئوری پشت آن را یاد بگیرید و خواندن مقاله مخصوصاً بخش RL آن برایتان سنگین و سخت بود، این ویدیو یوتیوب به نظرم بخش ریاضی مقاله را بهتر از باقی ویدیوهای موجود در یوتیوب توضیح داده است.

@golemcourse
13👍10🐳3
ریچارد فاینمن، فیزیک‌دان مشهور قرن بیستم و برنده جایزه نوبل، در کتاب خاطراتش Surely You're Joking, Mr. Feynman خاطره‌ای از پائول الوم، ریاضیدان، نقل می‌کند که امروز هنگام خواندنش حسابی خندیدم.

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

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

فاینمن: «چطور این کار را کردی؟ 😳»

پائول: «رویش فکر کن.»

دو هفته تمام، در پرینستون راه می‌رفتم و مدام این نوار را امتحان می‌کردم تا بفهمم چطور باید نگهش داشت. آن‌قدر این کار را تکرار کردم که دستم کاملاً زخمی شد. بالاخره طاقت نیاوردم و رفتم سراغ پائول.

گفتم: «پائول! من تسلیم شدم. آخر چطور نگهش می‌داری که دردت نمی‌گیرد؟»

پائول: «کی گفته درد نداره؟ منم دردم می‌گیره! 😏»

فاینمن: احساس حماقت کردم. او مرا دو هفته تمام وا‌داشته بود بگردم و دستم را زخمی کنم. 😂

@golemcourse
👍26🤔93🐳3
دلایل زیادی وجود دارد که بخواهید یک کلاستر کوبرنتیز با چند node به صورت محلی روی لپ‌تاپ بالا بیاورید. یک دلیل این می‌تواند باشد که نخواهید فعلاً هزینه خدمات ابری را بدهید ولیکن از طرفی می‌خواهید محیط توسعه محصول تا جای ممکن شبیه محیط عملیاتی باشد (multi node cluster).

یک راهی که پیدا کردم که بدون مشکل توانستم چنین محیطی را ایجاد کنم استفاده از این پروژه گیتهاب بود (لینک).


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

۱. ابزار virtualbox برای ایجاد ماشین مجازی
۲. ابزار vagrant برای تعریف، پیکربندی و مدیریت ماشین‌های مجازی

صرفاً با دستور vagrant up می‌توانید کارهای راه‌اندازی کلاستر را انجام دهید.

محیط پیش‌فرض یک سرور را control plane و دو سرور را worker node در نظر می‌گیرد. امکان پیکربندی و تغییر محیط نیز وجود دارد.

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

@golemcourse
18👍7🐳1
امروز تعداد اعضای کانال یوتیوب از ۵۰۰۰ نفر عبور کرد. از همتون بابت این که در این دو سه سال حمایت کردید و انگیزه دادید بی‌نهایت ممنونم بچه‌ها ❤️.
120👍4🤔1🐳1
حدود ۱۰۰ روز پیش، دوره آموزش کوبرنتیز (Kubernetes) را در کانال یوتیوب آغاز کردم.

تاکنون ۵۲ ویدیو و بیش از ۱۰ ساعت محتوا ضبط شده است.

مباحث خیلی زیادی را تا الان پوشش دادم. از این پس، ویدیوهایی در قالب پروژه مانند اجرای ابزارهای ArgoCD، Fluentd و Prometheus روی بستر کوبرنتیز ضبط می‌کنم.

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

@golemcourse
82👍10🐳6
اگر خبر ندارید، دیروز گوگل نسخه Gemini 2.5 را معرفی کرد و توانست در بنچمارک‌ها رتبه اول را کسب کنه.

تصویر پیوست، وضعیت سایت شرط‌بندی Polymarket را نشان میده که بعد از انتشار مدل چه سیلی راه انداخته 😁

فعلاً رایگان است اما قرار است در آینده rate limit برای محیط تجاری تعریف کنند.
👍16
Golem Course
اگر خبر ندارید، دیروز گوگل نسخه Gemini 2.5 را معرفی کرد و توانست در بنچمارک‌ها رتبه اول را کسب کنه. تصویر پیوست، وضعیت سایت شرط‌بندی Polymarket را نشان میده که بعد از انتشار مدل چه سیلی راه انداخته 😁 فعلاً رایگان است اما قرار است در آینده rate limit برای…
اگر از ابزار cursor (شبیه vs code با قابلیت هوش مصنوعی) برای برنامه‌نویسی استفاده می‌کنید، openrouter.ai مدل گوگل Gemini 2.5 را اضافه کرده است. می‌توانید با ساخت API Key درون سایت openrouter و اضافه کردن مدل به ابزار cursor، حالش رو ببرید.
17👍5
چرا به جای تگ از SHA برای اجرای برنامه‌های داکری استفاده کنیم؟


حتماً شنیده‌اید که می‌گویند به جای استفاده از تگ latest، از تگ‌های مشخص (مثلاً nginx:1.27.4) در محیط داکر استفاده کنید. اما استفاده از تگ تمام مشکلات را حل نمی‌کند. بگذارید یک تجربه را بازگو کنم:


در پروژه‌ای که قرار بود پیاده‌سازی یکپارچه‌سازی مستمر/تحویل مستمر (CI/CD) داشته باشیم، در انتهای خط لوله CI از ابزار Sonar برای بررسی و تضمین کیفیت کد استفاده می‌کردیم. در ابتدا همه چیز به نظر درست می‌آمد و ابزار کار می‌کرد؛ اما گاهی، هرچند نادر، خط لوله دچار ارور می‌شد زیرا ابزار Sonar به درستی عمل نمی‌کرد. بررسی‌های بعدی نشان داد که نسخه Sonar که استفاده می‌کردیم، علی‌رغم اینکه تگ image تغییر نکرده بود، اما رفتار کانتینر تغییر کرده بود.


شاید بپرسید چرا؟ دلیل این است که توسعه‌دهندگان Sonar برخی patchها (مانند patchهای امنیتی) را روی یک نسخه خاص اعمال می‌کردند بدون اینکه تگ نسخه تغییر کند. در ظاهر، همان نسخه Sonar با همان قابلیت‌ها باقی می‌ماند، اما image تغییر کرده بود و این موضوع مشکلات ناسازگاری (compatibility) ناخواسته در محیط عملیاتی (production) ایجاد کرد.

راه‌حل چیست؟ استفاده از SHA است. برخلاف تگ‌ها که قابل تغییر (mutable) هستند، SHA یک عنصر تغییرناپذیر (immutable) است؛ یعنی اگر image تغییر کند حتی در حالی که تگ ثابت بماند، SHA نیز تغییر خواهد کرد.


برای روشن شدن موضوع، نگاهی به مثال زیر بیندازید.


استفاده از تگ mutable:

version: '3.8'

services:
webserver:
image: nginx:1.27.4
ports:
- "8080:80"
volumes:
- ./nginx-config:/etc/nginx/conf.d:ro
- ./website:/usr/share/nginx/html:ro
restart: unless-stopped


استفاده از SHA immutable:

version: '3.8'

services:
webserver:
image: nginx@sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19
ports:
- "8080:80"
volumes:
- ./nginx-config:/etc/nginx/conf.d:ro
- ./website:/usr/share/nginx/html:ro
restart: unless-stopped



با استفاده از SHA، اطمینان حاصل می‌کنید که دقیقاً همان image مورد نیاز اجرا می‌شود و از بروز مشکلات ناخواسته به دلیل تغییرات پنهانی در image جلوگیری می‌شود.

@golemcourse
👍26🤔4🐳1