PyTorch Howsam
3K subscribers
336 photos
48 videos
5 files
472 links
از هوش مصنوعی میگیم...

ارتباط با ادمین
@howsam_support
Download Telegram
یک دیتاست جالب در کگل!
شناسایی سیمپسون‌ها براساس تصاویر چهره 😄

https://www.kaggle.com/competitions/simpsons-faces-m1/overview

این دیتاست شامل 6 هزار داده از 18 شخصیت سریال سیمپسون‌ها هست.

قوانین جالبی هم داره:
* Don't cheat!
* Respect a model with at most 1M parameters (it will be checked)
* Max dataset image size must be (64, 64)

@pytorch_howsam
PyTorch Howsam
همه کگل رو میشناسیم. طبیعتا شما اگه در کگل فعالیت کنید، خیلی دقیق و اصولی فعالیت شما ثبت میشه و میتونه یک فاکتور مثبت در رزومه شما باشه. حالا میخوایم از قواعد و اصول فعالیت در کگل براتون بگیم. سیستم پیشرفت کگل حول چهار فاکتور طراحی شده: * مسابقه‌ها * نوتبوک‌ها…
در پست ریپلای‌شده، از سیستم پیشرفت کگل گفتیم و قرار بود ادامه بدیم. درمورد فاکتورهای مختلف و همچنین درجه‌های پیشرفت صحبت کردیم. همچنین، گفتیم که در ابتدای کار یک تازه‌کار (Novice) هستیم. حالا بریم ادامه...

چطوری میشه به درجه مشارکت‌کننده (Contributor) ارتقا پیدا کرد؟ به سادگی! کافیه که کارهای زیر رو انجام بدید:

1️⃣ یک نوتبوک در کگل اجرا کنید. یعنی از بخش نوتبوک‌ها، یک نوتبوک رو باز کنید و در همون کگل اجرا کنید. به همین سادگی! با این کار، نحوه اجرا شدن نوتبوک‌ها رو یاد می‌گیرید. هر نوتبوکی رو که باز کنید، یک گزینه Copy & Edit داره که مخصوص همین کار هست.

2️⃣ یک سابمیشن در مسابقه‌های کگل داشته باشید. یعنی توی یک مسابقه شرکت کنید و یک بار کد/مدل/روشتون رو بفرستید که کگل روی داده‌های تست ارزیابی کنه. سخت نیست. اصلا می‌تونید از همون کدهای آماده دیگران هم استفاده کنید. نیازی نیست که حتما کد خودتون باشه. یعنی همون کد بالایی رو که اجرا کرده بودید رو بدید به سیستم کگل که داوری کنه. :) با این کار، با سیستم اجرای کدها و سابمیشن توی کگل آشنا میشید.

3️⃣ یک کامنت بذارید. این هم ساده هست. برید توی بخش discussions و برای یکی یک کامنت بذارید. مثلا بعضی‌ها میان ارتقای درجه‌شون رو اعلام میکنن. شما هم برید یک تبریکی بهشون بگید! 😅

4️⃣ یک Upvote داشته باشید. یعنی مثلا به نوتبوک یک نفر، یک امتیاز بدید. وقتی نوتبوک یک نفر رو باز می‌کنید، یک گزینه Upvote داره. در واقع دارید لایکش می‌کنید. می‌تونید همون نوتبوکی که اجرا کرده بودید رو لایک کنید.

خب کم کم داریم به بخش‌های جالبش می‌رسیم. چیکار کنیم که درجه کارشناس (Expert) برسیم؟ در پست‌های بعدی درموردش صحبت می‌کنیم...

@pytorch_howsam
با تشکر از وحید برای معرفی این کتابخونه...

سلام
یه کتاب خونه خیلی باحال که پیدا کردم torchinfo بوده که یه چیز خیلی خوب داره و کمبودش توی پایتورچ حس میشد😁😁


@pytorch_howsam
This media is not supported in your browser
VIEW IN TELEGRAM
In pole position to learn reinforcement learning :
AWS DeepRacer gives you an interesting and fun way to get started with reinforcement learning (RL). RL is an advanced machine learning (ML) technique that takes a very different approach to training models than other machine learning methods. Its super power is that it learns very complex behaviors without requiring any labeled training data, and can make short term decisions while optimizing for a longer term goal.

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

https://aws.amazon.com/deepracer
Media is too big
VIEW IN TELEGRAM
🟠 نرم‌افزار داده‌کاوی Orange

در این ویدئوی کوتاه، نحوه استفاده از این نرم‌افزار جالب و ساده را با یک مثال آموزش دادیم.

📌 پیشنهاد می‌کنیم، برای تسلط بر مطالب یادگیری ماشین، با این نرم‌افزار کار کنید.

@howsam_org
www.howsam.org
یکسری دستورات هستن که کمتر توی آموزش‌ها درموردشون صحبت میشه، چون رایج نیستن. ولی وقتی موقعش برسه میتونن کارمون رو خیلی راحت کنن.

تصور کن یک آرایه دو بعدی داری که یکسری درایه‌هاش nan هستن. حالا تو میخوای میانگین و انحراف معیار این آرایه دوبعدی رو حساب کنی. به نظرت باید چیکار کرد؟ اول درموردش فکر کن و بعد بخش اسپویلر رو ببین...

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

خب به نظر میرسه که باید دو تا تابع برای محاسبه میانگین و انحراف بنویسیم که احتمالا سه چهار خطی کد و یکم هم فکر کردن نیاز داره...

اما این موقعیت همون موقعیتی هست که دستورهای آماده نه‌چندان رایج میتونن کمکمون کنن. دستورهای np.nanmean و np.nanstd به راحتی میانگین و انحراف رو بدون nan حساب میکنن. به همین سادگی! 😉


@pytorch_howsam
سلام
در مسابقه‌های کگل، مدل‌های CatBoost LightGBM XGBoost خیلی محبوب هستند. هر سه مدل از خانواده بوستینگ (Boosting) هستند. این سه عزیز در سایکیت‌لرن وجود ندارند و هرکدام برای خودشان یک لایبرری جداگانه دارند که باید با pip نصب شوند. کار ساده‌ای هست. اتفاقا استفاده از آنها هم خیلی ساده هست. چون شبیه سایکیت‌لرن هستند و همان fit و predict را دارند. حالا حرفمان در این پست چیست؟

این مدل‌ها هایپرپارامترهای بسیار زیادی دارند؛ خیلی‌ها می‌گویند:
در این مدل‌ها باید هایپرپارمترها رو دقیق تنظیم کنی وگرنه قدرت واقعیشون رو نمیبینی.

حالا ما هم می‌خواهیم درمورد همین تنظیم هایپرپارامترها صحبت کنیم...

دو نکته را مدنظر داشته باشید:

اول اینکه، باید تئوری این مدل‌ها را بدانید. تئوری اینها وابسته به دو بحث مدل‌های درخت تصمیم (Decision Trees) و بوستینگ (Boosting) هست. اگه اینها را بدانید، قطعا درک بهتری نسبت به هایپرپارامترها خواهید داشت.

دوم اینکه، در کگل برای تنظیم هایپرپارامترها از لایبرری‌های جانبی مثل Optuna بهره می‌برند. با این لایبرری می‌توانیم یک Grid Search بسازیم تا هایپرپارامترهای مناسب را پیدا کنیم. در ادامه، یک مثال از نحوه ترکیب Optuna با LGBMClassifier را آوردیم...

import lightgbm as lgb
import optuna
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# Load dataset
X, y = load_iris(return_X_y=True)
X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.2, random_state=42)

# Define objective function
def objective(trial):
params = {
'objective': 'multiclass',
'num_class': 3,
'metric': 'multi_logloss',
'verbosity': -1,
'boosting_type': 'gbdt',
'learning_rate': trial.suggest_float('learning_rate', 0.001, 0.1),
'max_depth': trial.suggest_int('max_depth', 2, 10),
'num_leaves': trial.suggest_int('num_leaves', 2, 100),
}

model = lgb.LGBMClassifier(**params)
model.fit(X_train, y_train)
preds = model.predict_proba(X_valid)
log_loss = lgb.log_loss(y_valid, preds)

return log_loss

# Run optimization
study = optuna.create_study(direction='minimize')
study.optimize(objective, n_trials=100)

# Get best hyperparameters
best_params = study.best_params
print("Best hyperparameters:", best_params)


در کد بالا، سه هایپرپارامتر learning_rate max_depth num_leaves را به Optuna داده‌ایم تا از بازه تعریف شده یک عدد انتخاب کند و میزان خطای مدل را حساب کند. ما به دنبال حالتی هستیم که کم‌ترین خطای ممکن حاصل شود. 100 بار انتخاب هایپرپارامترها به‌صورت رندوم انجام می‌شود و نهایتا بهترین هایپرپارامتر براساس کم‌ترین خطا گزارش می‌شود.

@pytorch_howsam
کتابخونه pandas یکی از مهم‌ترین و اصلی‌ترین کتابخونه‌های پیش‌پردازش داده‌ها و کار با Data Frame هاست. مسلط شدن به pandas برای کسانی که در حوزه دیتا کار می‌کنن، یک نیاز واجب و ضروریه.

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

مطالعه این کتاب فوق‌العاده از این نویسنده بسیار توانمند رو به کسانی که قصد تسلط و درک عمیق pandas رو دارن، بسیار پیشنهاد می‌کنیم.
کمبود GPU RAM؟!
بیایید یک راه‌کار ساده و فوق‌العاد کارآمد به شما یاد بدهیم...

کم بودن GPU RAM می‌تواند شما را در انتخاب سایز شبکه عصبی و همچنین بچ‌ساز محدود کند. اما راه‌کارهای مختلفی وجود دارد که شما از همان RAM کم نهایت استفاده را ببرید. یکی از راه‌کارها آموزش مدل با Float16 هست!

به‌صورت پیش‌فرض، در پایتورچ داده‌ها و مدل‌ها بر پایه Float32 هستند. اما با تغییراتی کوچک در کد، می‌توان داده‌ها و مدل‌ها را بر پایه Float16 تعریف کرد و تا 50 درصد از مصرف RAM صرفه‌جویی کرد! شاید باورتان نشود! این راه‌کار هم مصرف RAM را کاهش می‌دهد و هم در بسیاری از مسائل افت قابل توجهی در عملکرد (مثلا دقت) ایجاد نمی‌کند. حالا که مصرف RAM کمتر شده، می‌توانید هم مدل بزرگتری داشته باشید و هم بچ‌سایز را بزرگتر کنید.

در پایتورچ چگونه می‌توان از این ترفند استفاده کرد؟
در لینک زیر، خیلی ساده این ترفند توضیح داده شده است:
https://pytorch.org/tutorials/recipes/recipes/amp_recipe.html

@pytorch_howsam
چند روز قبل، یکی از دانشجویان دوره یادگیری ماشین هوسم سوالی را مطرح کرد که جالب بود. معمولا، کمتر در دوره‌ها و کتاب‌ها درمورد آن صحبت می‌شود. موضوع سوال به‌صورت کلی این بود:

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


معمولا، در یادگیری ماشین با تسک‌های دسته‌بندی غیرترتیبی/اسمی یا Nominal Classification مواجه هستیم. یعنی ترتیب در کلاس‌ها اهمیتی ندارد. مثل دسته‌بندی تصاویر CIFAR یا دسته‌بندی گل‌های زنبق یا همان Iris معروف یا موارد دیگر...

اما در دسته‌بندی، تسک دیگری به‌نام دسته‌بندی ترتیبی یا Ordinal Classification هم داریم. یکی از جالب‌ترین نمونه‌هایش، می‌تواند تخمین سن افراد باشد. تخمین سن را می‌توان هم به شکل رگرسیون و هم دسته‌بندی حل کرد. وقتی مبتنی بر دسته‌بندی بخواهیم این مساله را حل کنیم، تعدادی کلاس مشخص داریم: مثلا 100 کلاس معادل با 1 تا 100 سالگی.

وقتی به این مساله دقیق نگاه کنیم، کاملا مشخص هست که ترتیب در آن معنا دارد. اگر مدل ما سن یک فرد 40 ساله را 41 سال پیش‌بینی کند، نباید بگوییم که اشتباه کرده‌ای و یک پیش‌بینی اشتباه داریم. این نگرش مربوط به دسته‌بندی اسمی هست. در این حالت ما باید معیار ارزیابی مناسبی داشته باشیم که اختلاف کم بین 40 و 41 را نشان دهد. مدل ما فقط 1 سال پیش‌بینی اشتباه داشته که در تسک مشکل تخمین سن، اتفاقا عدد بسیار خوبی هست.

یکی از معیارهای ارزیابی رایج در دسته‌بندی ترتیبی، MAE یا Mean Absolute Error هست. یعنی ما یک مساله دسته‌بندی داریم، اما معیار ارزیابی‌مان شبیه رگرسیون هست. به مقاله‌های تخمین سن از روی چهره نگاه کنید؛ یکی از مهم‌ترین معیارهای ارزیابی آنها همین MAE هست. مثلا می‌گویند خطای MAE مدل پیشنهادی 4.7 هست. یعنی این مدل با خطای 4.7 سال، سن افراد را پیش‌بینی می‌کند.

@pytorch_howsam
🔥دوره OpenCV: از پردازش تا بینایی 🧿


🎁 60 درصد تخفیف برای ثبت‌نام زودهنگام، فقط تا 18 اسفند

⌛️شروع دوره: 18 فروردین 1403

👤 مدرس دوره: سیدسجاد اشرفی

🟢 اطلاعات بیشتر و ثبت‌نام: کلیک کنید!


راه‌های برقراری ارتباط با ما:
👤 @howsam_support
📞 09025469248
✉️ [email protected]
🌐 www.howsam.org
توی کگل یکسری مسابقه سطح پایین بنام Playground داریم...

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

حدودا 5 روزی هست که اپیزود سوم شروع شده. لینک مسابقه/اپیزود سوم:
https://www.kaggle.com/code/ankurgarg04/fault-detection-easy-xgb-with-optuna

از نوتبوک‌های دیگران غافل نشو. یک نوتبوک ساده برای شروع:
https://www.kaggle.com/code/ankurgarg04/fault-detection-easy-xgb-with-optuna

این هم یک نوتبوک جامع و سطح بالا از یک گرندمستر که شاید بررسی کردنش چند روز طول بکشه:
https://www.kaggle.com/code/lucamassaron/steel-plate-eda-xgboost-is-all-you-need

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

@pytorch_howsam
سلام
مهدی از بچه‌های هوسم این پیام رو در گروه فرستاده بود. اینجا هم فوروارد کردیم...

مسئله جدید مسابقات کگل یک مسئله multivariate هستش که ۷ تا تارگت با نام های:

Pastry, Z_Scratch, K_Scatch, Stains Dirtiness, Bumps, Other_Faults

داره که انواع خرابی های فولاد هستن. چالشِ تارگت‌های Pastry و Bumps و Other_faults از بقیه بیشتره (روی بقیه میشه به دقت های خوب و بالایی رسید).

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

همچنین یک دیتاست اورجینال هم هست که می تونید اضافه کنید به دیتاست ترین.

بالاترین دقت بدست اومده تا الان 0.89706 هست.

امیدوارم شما هم شرکت کنید و ایده‌ها و نظراتتون رو مطرح کنید. 🌟

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

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

1️⃣ پایتون برای هوش‌مصنوعی
🕔 44 ساعت
🌐 لینک دوره

2️⃣ یادگیری ماشین
🕔 127 ساعت
🌐 لینک دوره

3️⃣ یادگیری عمیق
🕔 83 ساعت
🌐 لینک دوره

4️⃣ دیپ کاتالیست (دوره پروژه-محور یادگیری عمیق)
🕔 54 ساعت
🌐 لینک دوره

5️⃣ آموزش OpenCV: از پردازش تا بینایی
🕔 96 ساعت
🌐 لینک دوره

6️⃣ آموزش پایتورچ رایگان
🕔 13 ساعت
🌐 لینک دوره

این کانال پایتورچ هم وابسته به آکادمی هوسم هست؛ همراه با تعدادی از دوستان، مطالب آموزنده و جالب درباره هوش مصنوعی رو به اشتراک میذاریم. این کانال برای من به یک دفترچه یادداشت طلایی تبدیل شده و خیلی دوستش دارم.

با احترام،
اشرفی
This media is not supported in your browser
VIEW IN TELEGRAM
این چی میـــــگـــــــه؟!

We're announcing TacticAI: an AI assistant capable of offering insights to football experts on corner kicks. ⚽️

Developed with LFC*, it can help teams sample alternative player setups to evaluate possible outcomes, and achieves state-of-the-art results. 🧵


*منظور از LFC، باشگاه Liverpool هست.

وبلاگ | مقاله | دیتا

کد نداره. گفتن نمی‌تونیم کدها رو منتشر کنیم.

@pytorch_howsam
یک تم خوب برای ژوپیترلب (برحسب تجربه):
pip install theme-darcula


بعد از نصب، از مسیر زیر تغییر تم انجام میشه:
Settings > JupyterLab Theme > Darcula


@pytorch_howsam
Today, we are excited to introduce DBRX, an open, general-purpose LLM created by Databricks.

https://www.databricks.com/blog/introducing-dbrx-new-state-art-open-llm
PyTorch Howsam
سلام مهدی از بچه‌های هوسم این پیام رو در گروه فرستاده بود. اینجا هم فوروارد کردیم... مسئله جدید مسابقات کگل یک مسئله multivariate هستش که ۷ تا تارگت با نام های: Pastry, Z_Scratch, K_Scatch, Stains Dirtiness, Bumps, Other_Faults داره که انواع خرابی های…
اولا، ممنون که ری‌اکشن نشون میدید. 🙏
دوم هم اینکه، نوتبوک مهدی آماده شده و می‌تونید بهش نگاه بندازید.

این هم توضیحات مهدی برای این نوتبوک:

لینک نوت بوکی که برای مسابقه حال حاضر کگل منتشر کردم رو در ادامه این پیام قرار دادم.

از روش های مختلف مثل LGBM و XGBoost , Random Forest و Catboost و همچنین میانگین خروجی احتمالاتی پیش بینی های این روش ها استفاده شده.

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

بهترین دقت نهایی بدست اومده مربوط به حالتی بود که از خروجی های مدل های مختلف میانگین گرفته شد ( 0.89389 )


https://www.kaggle.com/code/mahdiasghari5731/lgbm-catboost-xgb-eda-accuracy-0-8940

می‌تونید با upvote کردن نوتبوک بالا، مهدی رو تشویق کنید. 😊
کتاب درباره LLM با عنوان Build a Large Language Model

نویسنده این کتاب آقای سباستین راشکا (Sebastian Raschka) هست که فرد شناخته‌شده‌ای هست. همچنین، این کتاب در Manning منتشر شده. البته، هنوز کامل نشده و فصل‌های ابتدایی کتاب منتشر شده.

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

لینک کتاب | لینک گیتهاب

@pytorch_howsam