حالا از کجا باید مدل گیر بیاریم؟
وبسایت های مختلفی است. تو مثال من که PyTorch کار میکنم تو هر domain library اش یه بخش به اسم models داره.
torchvision.models
torchtext.models
torchaudio.models
همینطور huggingface هم کلی model و dataset داره:
HuggingFace Models
HuggingFace Datasets
و در نهایت paperswithcode که وبسایتی هست که آخرین تحقیقات و مقاله ها در زمینه یادگیری عمیق و هوش مصنوعی رو به اشتراک میزاره.
تفاوتش با بقیه اینجاست که وزن مدل ها و کد های تحقیقات هم همراه باهاش موجود اند.
paperswithcode
وبسایت های مختلفی است. تو مثال من که PyTorch کار میکنم تو هر domain library اش یه بخش به اسم models داره.
torchvision.models
torchtext.models
torchaudio.models
همینطور huggingface هم کلی model و dataset داره:
HuggingFace Models
HuggingFace Datasets
و در نهایت paperswithcode که وبسایتی هست که آخرین تحقیقات و مقاله ها در زمینه یادگیری عمیق و هوش مصنوعی رو به اشتراک میزاره.
تفاوتش با بقیه اینجاست که وزن مدل ها و کد های تحقیقات هم همراه باهاش موجود اند.
paperswithcode
برای اطلاعات بیشتر راجب transfer learning از جمله feature extraction و fine-tuning میتونید به ریفرنس های زیر برید
PyTorch:
Feature Extraction
Tensorflow:
Feature Extraction
Fine-tuning
PyTorch:
Feature Extraction
Tensorflow:
Feature Extraction
Fine-tuning
👍2
سلام دوستان.
از اونجایی که خیلیاتون جدید هستید و تازه اومدید گفتم که یک سری course ها و آموزشهای ویدیویی خوبی در مورد Machine Learning و Deep Learning بزارم که شما هم ازش استفاده کنید.
کتاب دیجیتالش رو هم گذاشتم که ببینید چه مباحثی رو کاور میشه و آیا چیزی که میخواید رو داره یا نه.
🔗 Complete A.I. Machine Learning and Data Science: Zero to Mastery
این یه بوت کمپ کلی هست که مباحث Data Science, Machine Learning و همینطور مقداری Deep Learning رو کاور میکنه.
یه برشی هم به Data Engineering میزنه ولی در حد تعریف و ابزاراش تا بدونید.
کتابخونه های پایه Machine Learning مثل numpy, pandas, matplotlib و scikit-learn رو کاور میکنه.
کتابخونه Deep Learning اش Tensorflow هست.
اگر دنبال شبکه های عصبی و Deep Learning هستید این آموزش خوبه چون بیس دنیای Machine Learning هست و اجباریه ولی بعد از این باید روی دوره های Tensorflow و PyTorch تمرکز کنید.
📕 کتاب دیجیتال
🔗 PyTorch for Deep Learning Bootcamp (2024): Zero to Mastery
بوت کمپ PyTorch که خودم دارم آموزشش رو دنبال میکنم (تقریباً ¾ امش رو تموم کردم).
وارد یادگیری عمیق (مخصوصاً بخش vision اش) میشه.
سه تا بخش مختص به PyTorch داره که تو دوره Tensorflow اش نیست. اولیش بخش Paper Replication اش هست که با Transformer ها آشنا میشید و Vision Transformer رو مستقیم از مقاله تحقیقاتی تا کدش پیاده میکنید.
تو بخش Experiment Tracking با مفهوم آزمایش و مقایسه بین مدل ها آشنا میشید.
و بخش آخرش هم Model Deployment هست که استقرار مدل و مفاهیم MLOps رو تا حدی یاد میگیرید.
📕 کتاب دیجیتال
🔗 TensorFlow for Deep Learning Bootcamp (2024): Zero to Mastery
بوت کمپ Tensorflow که با مباحث PyTorch مقداری همپوشانی داره ولی تفاوتش با PyTorch اینه وارد NLP و Time Series هم میشه و بخش transfer learning اش fine-tuning هم اضافی داره.
(لزوماً دوره بهتر از PyTorch نیست، همین مباحث رو هم میتونید راحت تو اینترنت پیدا کنید و متوجه بشید، اگر خودم واردش شدم ریسورس هام رو همینجا میزارم)
📕 کتاب دیجیتال
🔴 نکته مهم: چیزی که از آدم های پر تجربه شنیدم اینه. قاعدتا هیچ دوره ای از شما مهندس هوش مصنوعی نمیسازه.
(مقاله بالا رو به شدت پیشنهاد میکنم بخونید، واسه هر نوع آموزش دیگه هم صدق میکنه)
اونقدر دنیای هوش مصنوعی در حال پیشرفت هست که شما باید research paper بخونید با کد پیاده کنید و مهارت های لازم رو کسب کنید.
پس بعد از یکی دو تا course کامل وقتتون رو روی course های بیشتر تلف نکنید.
دست به کد بشید. پروژه بزنید.
با دیتا ست، الگوریتم ها (و تو یادگیری عمیق، لایه های مختلف) کار کنید.
و از پشت پرده الگوریتم ها (و لایه ها) هم غفلت نکنید.
کنجکاو باشید، آزمایش کنید و لذت ببرید.
⚡️@tech_stash ⚡️
از اونجایی که خیلیاتون جدید هستید و تازه اومدید گفتم که یک سری course ها و آموزشهای ویدیویی خوبی در مورد Machine Learning و Deep Learning بزارم که شما هم ازش استفاده کنید.
کتاب دیجیتالش رو هم گذاشتم که ببینید چه مباحثی رو کاور میشه و آیا چیزی که میخواید رو داره یا نه.
🔗 Complete A.I. Machine Learning and Data Science: Zero to Mastery
این یه بوت کمپ کلی هست که مباحث Data Science, Machine Learning و همینطور مقداری Deep Learning رو کاور میکنه.
یه برشی هم به Data Engineering میزنه ولی در حد تعریف و ابزاراش تا بدونید.
کتابخونه های پایه Machine Learning مثل numpy, pandas, matplotlib و scikit-learn رو کاور میکنه.
کتابخونه Deep Learning اش Tensorflow هست.
اگر دنبال شبکه های عصبی و Deep Learning هستید این آموزش خوبه چون بیس دنیای Machine Learning هست و اجباریه ولی بعد از این باید روی دوره های Tensorflow و PyTorch تمرکز کنید.
📕 کتاب دیجیتال
🔗 PyTorch for Deep Learning Bootcamp (2024): Zero to Mastery
بوت کمپ PyTorch که خودم دارم آموزشش رو دنبال میکنم (تقریباً ¾ امش رو تموم کردم).
وارد یادگیری عمیق (مخصوصاً بخش vision اش) میشه.
سه تا بخش مختص به PyTorch داره که تو دوره Tensorflow اش نیست. اولیش بخش Paper Replication اش هست که با Transformer ها آشنا میشید و Vision Transformer رو مستقیم از مقاله تحقیقاتی تا کدش پیاده میکنید.
تو بخش Experiment Tracking با مفهوم آزمایش و مقایسه بین مدل ها آشنا میشید.
و بخش آخرش هم Model Deployment هست که استقرار مدل و مفاهیم MLOps رو تا حدی یاد میگیرید.
📕 کتاب دیجیتال
🔗 TensorFlow for Deep Learning Bootcamp (2024): Zero to Mastery
بوت کمپ Tensorflow که با مباحث PyTorch مقداری همپوشانی داره ولی تفاوتش با PyTorch اینه وارد NLP و Time Series هم میشه و بخش transfer learning اش fine-tuning هم اضافی داره.
(لزوماً دوره بهتر از PyTorch نیست، همین مباحث رو هم میتونید راحت تو اینترنت پیدا کنید و متوجه بشید، اگر خودم واردش شدم ریسورس هام رو همینجا میزارم)
📕 کتاب دیجیتال
🔴 نکته مهم: چیزی که از آدم های پر تجربه شنیدم اینه. قاعدتا هیچ دوره ای از شما مهندس هوش مصنوعی نمیسازه.
(مقاله بالا رو به شدت پیشنهاد میکنم بخونید، واسه هر نوع آموزش دیگه هم صدق میکنه)
اونقدر دنیای هوش مصنوعی در حال پیشرفت هست که شما باید research paper بخونید با کد پیاده کنید و مهارت های لازم رو کسب کنید.
پس بعد از یکی دو تا course کامل وقتتون رو روی course های بیشتر تلف نکنید.
دست به کد بشید. پروژه بزنید.
با دیتا ست، الگوریتم ها (و تو یادگیری عمیق، لایه های مختلف) کار کنید.
و از پشت پرده الگوریتم ها (و لایه ها) هم غفلت نکنید.
کنجکاو باشید، آزمایش کنید و لذت ببرید.
⚡️@tech_stash ⚡️
👍2🔥2
درس تلخ: چرا روش های کلی با محاسبات بیشتر بهتر عمل میکنند.
محققان همیشه دنبال راهی هستن که بتونن علوم خودشون و دانششون رو داخل یک سیستمی اعمال کنن. و این تحقیقات درسته که تو کوتاه مدت پیشرفتی رو به دنبال میاره. اما تو طولانی مدت دوام نمیاره. درس تلخی که همچنان خیلی از محققان نگرفتند.
مثال خیلی سادش تو شطرنج بود. اولین مدل هوش مصنوعی شطرنج که Kasparov رو در سال ۱۹۹۷ شکست داد از جستجوی عمیق بود... این روش از سخت افزار و نرم افزار های خاصی استفاده میکرد و محاسبات به شدت سنگینی داشت.
هیچ روش یا دانشی خاصی از شطرنج هم توش پیاده نشده بود. فقط قوانین بازی بود و همینو بس. نه تکنیک های شطرنجی و نه قواعد و اصول بازی کردن که ما به بقیه یاد میدیم.
یک مثال دیگش در بازی Go. بیست سال بعد از شطرنج. کلی تحقیقات انجام شد که دانش انسان راجب بازی Go رو درون سیستم به کار ببرن یا از ویژگی های خود بازی استفاده کنن. اما وقتی از جستجو وسیع استفاده شد تمام نتایج تحقیقات این آدما رو به باد داد.
البته که اهمیت یادگیری (مثل یادگیری ماشین و عمیق) اون موقع تو سال ۱۹۹۷ مطرح نبود ولی جلوتر که اومدیم دیدیم که یادگیری هم جزو راهکار هایی برای حل کلی مسئله ها مطرح شد.
از طرفی هم نگاه کنیم یادگیری مثل جستجو میمونه، چون از مقدار زیادی پردازش استفاده میکنه.
مثال سومی هم از تشخیص صدا بود. محقق ها از دانش تخصصی خودشون راجب صدا مثل کلمات، واج ها، گلو و هنجره انسان به کار بگیرن. از طرفی هم روش های جدیدی بودن که از آمار و پردازش های سنگینی استفاده میکردن و در نهایت از روش های انسانی به مقدار بسیار زیادی پیشی گرفتن. الان میبینید که یادگیری عمیق به عنوان روش اصلی برای تشخیص صدا استفاده میشه.
پس میبینیم که محقق هایی که دنبال اعمال دانش خودشون تو این زمینه بودن نتایج مطلوبی دریافت نکردن ولی کسایی که روش های کلی با هزینه پردازشی زیاد رو انتخاب کردن (مثل جستجو و یادگیری) تونستن تو این فیلد ها بسیار پیشی بگیرن.
دلیل پیشی گرفتن این روش ها به خاطر قانون moore هست. چون پیشرفت پردازش خیلی سریع هست نسبت به تحقیقات سر همین خیلی سریع از تحقیقات ها جلو میزنه و روش های کلی خیلی بهبود پیدا میکنن.
این درس خیلی مهمی هست. چون بار ها و بار ها تکرار شده و همچنان محقق ها چنین درسی رو به خاطر نسپردن.
دومین چیزی که میشه از این درس تلخ گرفت اینه که محتوا های یک ذهن خیلی خیلی پیچیده هست.
به جای اینکه دنبال راهی باشیم که محتوا های ذهن رو ساده کنیم. مثل ساده فکر کردن راجب فضا، شی ها، تصاویر و ...
اینا تو مخیله یک سیستم کامپیوتری جا نمیشن... نمیتونیم بهش به صورت ساده بفهمونیم که این تصویر یه پیتزا هست یا هات داگ
باید دنبال راه و روش هایی باشیم که این پیچیدگی ها رو خود کامپیوتر پیدا کنه و درکشون کنه.
مدل هایی که بتونن خوب تقریب بزنن و خوب حدس بزنن و خودشون با روش های ما پیدا کنن، نه ما دانشمون رو بهشون انتقال بدیم (همونطور که گفتیم غیر ممکنه).
درسی که ما میتونیم به عنوان مهندس های یادگیری عمیق بگیریم:
هر موقع که میخواید یه مدل هوش مصنوعی انتخاب کنید. اگر پردازش نامحدود و سرور های فراوان دارید. سنگین ترین مدل ممکن رو انتخاب کنید.
ریفرنس
محققان همیشه دنبال راهی هستن که بتونن علوم خودشون و دانششون رو داخل یک سیستمی اعمال کنن. و این تحقیقات درسته که تو کوتاه مدت پیشرفتی رو به دنبال میاره. اما تو طولانی مدت دوام نمیاره. درس تلخی که همچنان خیلی از محققان نگرفتند.
مثال خیلی سادش تو شطرنج بود. اولین مدل هوش مصنوعی شطرنج که Kasparov رو در سال ۱۹۹۷ شکست داد از جستجوی عمیق بود... این روش از سخت افزار و نرم افزار های خاصی استفاده میکرد و محاسبات به شدت سنگینی داشت.
هیچ روش یا دانشی خاصی از شطرنج هم توش پیاده نشده بود. فقط قوانین بازی بود و همینو بس. نه تکنیک های شطرنجی و نه قواعد و اصول بازی کردن که ما به بقیه یاد میدیم.
یک مثال دیگش در بازی Go. بیست سال بعد از شطرنج. کلی تحقیقات انجام شد که دانش انسان راجب بازی Go رو درون سیستم به کار ببرن یا از ویژگی های خود بازی استفاده کنن. اما وقتی از جستجو وسیع استفاده شد تمام نتایج تحقیقات این آدما رو به باد داد.
البته که اهمیت یادگیری (مثل یادگیری ماشین و عمیق) اون موقع تو سال ۱۹۹۷ مطرح نبود ولی جلوتر که اومدیم دیدیم که یادگیری هم جزو راهکار هایی برای حل کلی مسئله ها مطرح شد.
از طرفی هم نگاه کنیم یادگیری مثل جستجو میمونه، چون از مقدار زیادی پردازش استفاده میکنه.
مثال سومی هم از تشخیص صدا بود. محقق ها از دانش تخصصی خودشون راجب صدا مثل کلمات، واج ها، گلو و هنجره انسان به کار بگیرن. از طرفی هم روش های جدیدی بودن که از آمار و پردازش های سنگینی استفاده میکردن و در نهایت از روش های انسانی به مقدار بسیار زیادی پیشی گرفتن. الان میبینید که یادگیری عمیق به عنوان روش اصلی برای تشخیص صدا استفاده میشه.
پس میبینیم که محقق هایی که دنبال اعمال دانش خودشون تو این زمینه بودن نتایج مطلوبی دریافت نکردن ولی کسایی که روش های کلی با هزینه پردازشی زیاد رو انتخاب کردن (مثل جستجو و یادگیری) تونستن تو این فیلد ها بسیار پیشی بگیرن.
دلیل پیشی گرفتن این روش ها به خاطر قانون moore هست. چون پیشرفت پردازش خیلی سریع هست نسبت به تحقیقات سر همین خیلی سریع از تحقیقات ها جلو میزنه و روش های کلی خیلی بهبود پیدا میکنن.
این درس خیلی مهمی هست. چون بار ها و بار ها تکرار شده و همچنان محقق ها چنین درسی رو به خاطر نسپردن.
دومین چیزی که میشه از این درس تلخ گرفت اینه که محتوا های یک ذهن خیلی خیلی پیچیده هست.
به جای اینکه دنبال راهی باشیم که محتوا های ذهن رو ساده کنیم. مثل ساده فکر کردن راجب فضا، شی ها، تصاویر و ...
اینا تو مخیله یک سیستم کامپیوتری جا نمیشن... نمیتونیم بهش به صورت ساده بفهمونیم که این تصویر یه پیتزا هست یا هات داگ
باید دنبال راه و روش هایی باشیم که این پیچیدگی ها رو خود کامپیوتر پیدا کنه و درکشون کنه.
مدل هایی که بتونن خوب تقریب بزنن و خوب حدس بزنن و خودشون با روش های ما پیدا کنن، نه ما دانشمون رو بهشون انتقال بدیم (همونطور که گفتیم غیر ممکنه).
درسی که ما میتونیم به عنوان مهندس های یادگیری عمیق بگیریم:
هر موقع که میخواید یه مدل هوش مصنوعی انتخاب کنید. اگر پردازش نامحدود و سرور های فراوان دارید. سنگین ترین مدل ممکن رو انتخاب کنید.
ریفرنس
👍2👏1👌1
CNN Explainer
یکی از بهترین سایت ها واسه یادگیری و درک بهتر شبکه های عصبی CNN.
به صورت گرافیکی مدل TinyVGG رو نمایش داده و توضیحات خیلی خوبی در باره هر بخش از این مدل نوشته.
راستی میتونید یه تصویر هم آپلود کنید و مدل رو زنده تست کنید.
یکی از بهترین سایت ها واسه یادگیری و درک بهتر شبکه های عصبی CNN.
به صورت گرافیکی مدل TinyVGG رو نمایش داده و توضیحات خیلی خوبی در باره هر بخش از این مدل نوشته.
راستی میتونید یه تصویر هم آپلود کنید و مدل رو زنده تست کنید.
poloclub.github.io
CNN Explainer
An interactive visualization system designed to help non-experts learn about Convolutional Neural Networks (CNNs).
👍2
Transformer
یکی از لایه های پیچیده ای هست که درکش برای من مشکل بود.
به خاطر تفاوت زیادی که با لایه های قبلی مثل CNN و دیگر لایه ها داشت.
اما این ریسورس ها درکش رو برای من ساده تر کرد.
The Illustrated Transformer - Jay Alammar
Transformer Explainer
همینطور بد نیست بعد از خوندن اینا سری به خود مقاله تحقیقاتی که ازش نشات گرفت بزنید.
حتی اگر هم چیزی متوجه نشید، مشکلی نیست چون بلاخره باید مقالات تحقیقاتی بخونید تا یادگیری عمیق کار کنید.
Attention Is All You Need
یکی از لایه های پیچیده ای هست که درکش برای من مشکل بود.
به خاطر تفاوت زیادی که با لایه های قبلی مثل CNN و دیگر لایه ها داشت.
اما این ریسورس ها درکش رو برای من ساده تر کرد.
The Illustrated Transformer - Jay Alammar
Transformer Explainer
همینطور بد نیست بعد از خوندن اینا سری به خود مقاله تحقیقاتی که ازش نشات گرفت بزنید.
حتی اگر هم چیزی متوجه نشید، مشکلی نیست چون بلاخره باید مقالات تحقیقاتی بخونید تا یادگیری عمیق کار کنید.
Attention Is All You Need
❤1👍1
در ضمن. میدونستید که Transformer فقط برای text نیست؟
Vision Transformer
داخل این معماری ما با استفاده از یک لایه CNN تصویر رو به تکه های متعددی تبدیل میکنیم و Flatten میکنیم تا تبدیل به یه Sequence برای پاس دادن به Transformer بشه.
یکی از استفاده های باحالی از Transformer ها بود خارج از LLM.
و اتفاقا خودم دارم پیادش میکنم طبق این ریسورس.
معماری State of The Art هست و هر روز دارن راهی پیدا میکنن که بهترش کنن..
مقاله تحقیقاتی که این روش رو معرفی کرد:
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Vision Transformer Explained - Papers With Code
Vision Transformer
داخل این معماری ما با استفاده از یک لایه CNN تصویر رو به تکه های متعددی تبدیل میکنیم و Flatten میکنیم تا تبدیل به یه Sequence برای پاس دادن به Transformer بشه.
یکی از استفاده های باحالی از Transformer ها بود خارج از LLM.
و اتفاقا خودم دارم پیادش میکنم طبق این ریسورس.
معماری State of The Art هست و هر روز دارن راهی پیدا میکنن که بهترش کنن..
مقاله تحقیقاتی که این روش رو معرفی کرد:
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Vision Transformer Explained - Papers With Code
👍1
TECH STASH
در ضمن. میدونستید که Transformer فقط برای text نیست؟ Vision Transformer داخل این معماری ما با استفاده از یک لایه CNN تصویر رو به تکه های متعددی تبدیل میکنیم و Flatten میکنیم تا تبدیل به یه Sequence برای پاس دادن به Transformer بشه. یکی از استفاده های باحالی…
اشتباهات (Errata):
البته دقیق بخوایم بگیم SOTA نیست و paper جدید هم نیست (با سرعتی که داریم تو فیلد یادگیری عمیق جلو میریم) ولی معماری های بیس ViT هستن که در حال حاظر تو فیلد Classification بهترین عملکرد رو دارن.
SOTA = State of The Art
یعنی آخرین و بهترین ها تو هر حوزه ای
واسه اینکه ببینید چه مدل هایی بهترین هستن تو هر دیتاست و فیلد حتما وبسایت Paperswithcode رو سری بزنید.
البته دقیق بخوایم بگیم SOTA نیست و paper جدید هم نیست (با سرعتی که داریم تو فیلد یادگیری عمیق جلو میریم) ولی معماری های بیس ViT هستن که در حال حاظر تو فیلد Classification بهترین عملکرد رو دارن.
SOTA = State of The Art
یعنی آخرین و بهترین ها تو هر حوزه ای
واسه اینکه ببینید چه مدل هایی بهترین هستن تو هر دیتاست و فیلد حتما وبسایت Paperswithcode رو سری بزنید.
huggingface.co
Trending Papers - Hugging Face
Your daily dose of AI research from AK
بلاگ پستی که خیلی باهاش حال کردم.
مسیر یادگیری Machine Learning و Deep Learning اش رو برای همه ما به اشتراک گذاشته و منابع و ریفرنس های خیلی خوبی رو معرفی کرده که از کیفیت بالایی برخوردارن.
اگر دنبال منابع خوب و با کیفیت هستید حتما به این سری بزنید.
https://www.mrdbourke.com/ml-resources/
مسیر یادگیری Machine Learning و Deep Learning اش رو برای همه ما به اشتراک گذاشته و منابع و ریفرنس های خیلی خوبی رو معرفی کرده که از کیفیت بالایی برخوردارن.
اگر دنبال منابع خوب و با کیفیت هستید حتما به این سری بزنید.
https://www.mrdbourke.com/ml-resources/
Daniel Bourke
Machine Learning Courses & Resources I Recommend
"Where should I go to learn machine learning?" These places.
👍45
همینطور اینجا هم کلی منابع خوبی میشه پیدا کرد.
نکته: این پست رو Daniel Bourke زمانی ساخت که میخواست کامل از صفر شروع کنه و بدون دانشگاه Machine Learning و Deep Learning رو یاد بگیره نوشته.
یکسری آدما کلا اینطوری ان که همزمان که یاد میگیرن به اشتراک میزارن. خودمم همینطوری.
https://www.mrdbourke.com/aimastersdegree/
نکته: این پست رو Daniel Bourke زمانی ساخت که میخواست کامل از صفر شروع کنه و بدون دانشگاه Machine Learning و Deep Learning رو یاد بگیره نوشته.
یکسری آدما کلا اینطوری ان که همزمان که یاد میگیرن به اشتراک میزارن. خودمم همینطوری.
https://www.mrdbourke.com/aimastersdegree/
Daniel Bourke
My Self-Created Artificial Intelligence Masters Degree
University pathways were too expensive, so I decided to create my own.
👍1
چالش برنامه نویسی Advent of Code از ۱ دسامبر شروع میشه.
یکی از چالش های خیلی معروف سالیانه هست که از سال ۲۰۱۵ شروع شده و برنامه نویسای زیادی توش شرکت میکنن.
تم کریسمسی داره.
چالش هایی که وجود داره از مهارت های مختلفی هست و توسط هر زبانی میتونه حل بشه.
داوطلب ها بر اساس سرعت تو رتبه بندی خصوصی و جهانی رده بندی میشن.
من خودم شرکت نکرده بودم و نمیدونم چطوری هست ولی قراره امسال شرکت کنم.
(چیز خیلی جدی نیست، فقط برای تفریح و تمرینه)
https://adventofcode.com/
یکی از چالش های خیلی معروف سالیانه هست که از سال ۲۰۱۵ شروع شده و برنامه نویسای زیادی توش شرکت میکنن.
تم کریسمسی داره.
چالش هایی که وجود داره از مهارت های مختلفی هست و توسط هر زبانی میتونه حل بشه.
داوطلب ها بر اساس سرعت تو رتبه بندی خصوصی و جهانی رده بندی میشن.
من خودم شرکت نکرده بودم و نمیدونم چطوری هست ولی قراره امسال شرکت کنم.
(چیز خیلی جدی نیست، فقط برای تفریح و تمرینه)
https://adventofcode.com/
👍1
روند های مختلف Loss curve و معنیشون.
تو اولی ما underfitting داریم. یعنی مدل ما الگو ها رو درست یاد نگرفته.
تو دومی overfitting داریم. یعنی مدل ما الگو ها رو حفظ کرده و سر همین تو train data خیلی خوب عمل میکنه.
سومی روند درست و معمولی هست.
تو حالت عادی باید train یکم بهتر از test عمل کنه.
اگر test بهتر از train عمل میکنه یعنی به اندازه کافی نگذاشتید train بشه.
تو اینجا لینک یکسری اطلاعات بیشتر راجب Loss curve ها هست.
تو پست بعدی راجب راه هایی برای فیکس کردن Overfitting صحبت میکنم.
تو اولی ما underfitting داریم. یعنی مدل ما الگو ها رو درست یاد نگرفته.
تو دومی overfitting داریم. یعنی مدل ما الگو ها رو حفظ کرده و سر همین تو train data خیلی خوب عمل میکنه.
سومی روند درست و معمولی هست.
تو حالت عادی باید train یکم بهتر از test عمل کنه.
اگر test بهتر از train عمل میکنه یعنی به اندازه کافی نگذاشتید train بشه.
تو اینجا لینک یکسری اطلاعات بیشتر راجب Loss curve ها هست.
تو پست بعدی راجب راه هایی برای فیکس کردن Overfitting صحبت میکنم.
TECH STASH
راه های درست کردن Overfitting: 1. دیتای بیشتری جمع کنیم 2. بهبود داده 3. استفاده از انتقال یادگیری 4. مدل رو ساده تر کنیم 5. استفاده از learning rate decay 6. توقف زودهنگام
توضیحات هر کدوم از این روش ها:
1. دیتای بیشتری جمع کنیم: وقتی به اندازه کافی دیتا نداشته باشیم مدل نمیتونه الگویی از این دیتا ها استخراج کنه تا بتونه باهاش test data رو درست حدس بزنه.
2. بهبود داده: با کمی دستکاری میتونیم یادگیری دیتا ها رو متنوع تر کنیم و مدل رو مجبور کنیم تا الگو های قابل تعمیم تری یاد بگیره.
اطلاعات بیشتر راجب augment کردن دیتا تو خود داکیومنت torchvision هست.
3. استفاده از انتقال یادگیری: روش مورد علاقه خودم که قبل تر راجبش توضیح دادم. از یک مدل با وزن های آماده استفاده میکنیم و تغییراتی روی لایه های پایانی میدیم تا بتونیم برای مثال خودمون استفاده کنیم (یا حتی fine tuning انجام میدیم اگر دیتا بیشتری داشته باشیم).
4. مدل رو ساده تر کنیم: مدل بیش از حد اندازه پیچیده ممکنه الگو های قابل تعمیم روی test data یاد نگیره و در عوضش train data رو حفظ کنه. سر همین مدل رو میتونید ساده کنید تا مجبور بشه که الگو های قابل تعمیم یاد بگیره.
5. استفاده از learning rate decay: استفاده از ضریب یادگیری (learning rate) ثابت کارو وقتی که به نقطه همگرایی نزدیک میشیم سخت میکنه. مثل سکه ای که پشت مبل افتاده. وقتی نزدیک تر میشی باید گام کمتری برداری. کاهش ضریب یادگیری هم همینکارو میکنه.
تو داکیومنت PyTorch بهش میگن Learning rate scheduling که اطلاعات بیشتر در این باره اینجا هست.
6. توقف زودهنگام: وقتی یه مدل رو زیاد train کنیم به جایی میرسیم که overfitting رخ بده. پس باید به موقع توقف کنیم و بیشتر از این train نکنیم. وقتی که شروع کرد به overfit کردن میریم و وزن های قبلی ایده آلی که برای مثال تو 10 epoch قبل بود رو انتخاب و ذخیره کنید.
این منبع خوبی برای بحث early stopping هست.
1. دیتای بیشتری جمع کنیم: وقتی به اندازه کافی دیتا نداشته باشیم مدل نمیتونه الگویی از این دیتا ها استخراج کنه تا بتونه باهاش test data رو درست حدس بزنه.
2. بهبود داده: با کمی دستکاری میتونیم یادگیری دیتا ها رو متنوع تر کنیم و مدل رو مجبور کنیم تا الگو های قابل تعمیم تری یاد بگیره.
اطلاعات بیشتر راجب augment کردن دیتا تو خود داکیومنت torchvision هست.
3. استفاده از انتقال یادگیری: روش مورد علاقه خودم که قبل تر راجبش توضیح دادم. از یک مدل با وزن های آماده استفاده میکنیم و تغییراتی روی لایه های پایانی میدیم تا بتونیم برای مثال خودمون استفاده کنیم (یا حتی fine tuning انجام میدیم اگر دیتا بیشتری داشته باشیم).
4. مدل رو ساده تر کنیم: مدل بیش از حد اندازه پیچیده ممکنه الگو های قابل تعمیم روی test data یاد نگیره و در عوضش train data رو حفظ کنه. سر همین مدل رو میتونید ساده کنید تا مجبور بشه که الگو های قابل تعمیم یاد بگیره.
5. استفاده از learning rate decay: استفاده از ضریب یادگیری (learning rate) ثابت کارو وقتی که به نقطه همگرایی نزدیک میشیم سخت میکنه. مثل سکه ای که پشت مبل افتاده. وقتی نزدیک تر میشی باید گام کمتری برداری. کاهش ضریب یادگیری هم همینکارو میکنه.
تو داکیومنت PyTorch بهش میگن Learning rate scheduling که اطلاعات بیشتر در این باره اینجا هست.
6. توقف زودهنگام: وقتی یه مدل رو زیاد train کنیم به جایی میرسیم که overfitting رخ بده. پس باید به موقع توقف کنیم و بیشتر از این train نکنیم. وقتی که شروع کرد به overfit کردن میریم و وزن های قبلی ایده آلی که برای مثال تو 10 epoch قبل بود رو انتخاب و ذخیره کنید.
این منبع خوبی برای بحث early stopping هست.
👍1
تکنیک های دیگه هم برای بهبود training وجود داره:
1. Learning rate warmup
2. Weight decay
3. Gradient clipping
اما از اونجایی که وارد نشدم فعلا توضیحی راجبشون ندادم.
وقتی که یاد گرفتم و ازشون استفاده کردم حتما راجبشون مینویسم.
1. Learning rate warmup
2. Weight decay
3. Gradient clipping
اما از اونجایی که وارد نشدم فعلا توضیحی راجبشون ندادم.
وقتی که یاد گرفتم و ازشون استفاده کردم حتما راجبشون مینویسم.
👍1
TECH STASH
راههای حل مشکل Underfitting: 1. اضافه کردن لایههای بیشتر یا افزایش پارامتر های هر لایه 2. دستکاری learning rate (پایین آوردن) 3. استفاده از انتقال یادگیری 4. بیشتر train کردن 5. کاهش regularization
توضیحات هر کدوم از این روش ها:
1. شاید مدلتون به دلیل کمبود پارامتر توانایی یادگیری الگو ها رو نداره. معمولاً وقتی که این اتفاق میفته باید تعداد لایه ها و پارامتر ها رو افزایش بدید. ولی خب حواستون باشه که زیادی هم افزایش ندید که به overfitting بخورید.
2. ضریب یادگیری بیش از حد بالا میتونه به دلیل تغییرات زیاد موجب عدم یادگیری مدل بشه. انگار مدل داره پرش های بزرگی انجام میده و به همگرایی نمیرسه. سر همین استفاده از learning rate معقول توصیه میشه.
3. انتقال یادگیری سر همین روش مورد علاقم هست. چون هم برای overfitting کاربرد داره و هم underfitting. یک تیر تو دو نشان.
4. بعضی وقتا باید صبر کرد و بیشتر train کرد. مخصوصاً اگر روندی که مدل داره میره این موضوع رو نشون میده (test loss کمتر از train loss).
5. وقتی از regularization بیش از حد استفاده میکنیم (سعی میکنیم که مدل الگو هایی رو یاد بگیره که قابل بسط روی test set باشه) ممکنه به underfitting بخوریم.
1. شاید مدلتون به دلیل کمبود پارامتر توانایی یادگیری الگو ها رو نداره. معمولاً وقتی که این اتفاق میفته باید تعداد لایه ها و پارامتر ها رو افزایش بدید. ولی خب حواستون باشه که زیادی هم افزایش ندید که به overfitting بخورید.
2. ضریب یادگیری بیش از حد بالا میتونه به دلیل تغییرات زیاد موجب عدم یادگیری مدل بشه. انگار مدل داره پرش های بزرگی انجام میده و به همگرایی نمیرسه. سر همین استفاده از learning rate معقول توصیه میشه.
3. انتقال یادگیری سر همین روش مورد علاقم هست. چون هم برای overfitting کاربرد داره و هم underfitting. یک تیر تو دو نشان.
4. بعضی وقتا باید صبر کرد و بیشتر train کرد. مخصوصاً اگر روندی که مدل داره میره این موضوع رو نشون میده (test loss کمتر از train loss).
5. وقتی از regularization بیش از حد استفاده میکنیم (سعی میکنیم که مدل الگو هایی رو یاد بگیره که قابل بسط روی test set باشه) ممکنه به underfitting بخوریم.
👍1
تمامی اینا عملا صد درصدی کار نمیکنن. هیچ silver bullet ای داخل هوش مصنوعی نیست.
بهترین راه اینه که امتحان کنید.
جدا از این موضوع این تمام تکنیک های موجود نیست. قطعا تکنیک های بیشتری هم وجود دارن.
اصن یکی از بحثهای تحقیقاتی تو موضوع machine learning همین موضوعات هست. Overfitting و Underfitting.
یک خط خیلی باریکی هم بین این دو هست که ما ترجیحاً دنبال این میگردیم.
یعنی اگر خیلی تلاش کنیم که جلوی underfitting رو بگیریم overfit میکنیم و برعکس.
سر همین یکی از هنر های machine learning اینه که چطوری این حد وسط ایدهآل رو پیدا کنیم.
بهترین راه اینه که امتحان کنید.
جدا از این موضوع این تمام تکنیک های موجود نیست. قطعا تکنیک های بیشتری هم وجود دارن.
اصن یکی از بحثهای تحقیقاتی تو موضوع machine learning همین موضوعات هست. Overfitting و Underfitting.
یک خط خیلی باریکی هم بین این دو هست که ما ترجیحاً دنبال این میگردیم.
یعنی اگر خیلی تلاش کنیم که جلوی underfitting رو بگیریم overfit میکنیم و برعکس.
سر همین یکی از هنر های machine learning اینه که چطوری این حد وسط ایدهآل رو پیدا کنیم.
👍1
در ضمن یه منبع خیلی خوبی هم پیدا کردم که راجب مفاهیم هوش مصنوعی اطلاعات خوبی میده و ریفرنس های خوبی هم برای مطالعه ارائه میکنه.
https://ml-cheatsheet.readthedocs.io/en/latest/index.html
راجب regularization یه بخش داره که اگر اطلاعات بیشتری در این بحث میخواید پیشنهاد میدم مطالعه کنید.
https://ml-cheatsheet.readthedocs.io/en/latest/index.html
راجب regularization یه بخش داره که اگر اطلاعات بیشتری در این بحث میخواید پیشنهاد میدم مطالعه کنید.
🆒1