ML & AI resources
171 subscribers
165 photos
13 videos
7 files
501 links
Explore AI & Deep Learning with us. Join our Telegram channel for the latest insights and tutorials, managed by CE students from Amirkabir University of Technology.

🆔 @ML_AI_resourses
Download Telegram
Forwarded from NLP stuff
آموزش بازی Minecraft با پیش آموزش ویدیویی

شرکت خرپول OpenAI در آخرین دستاورد خودش از مدلی که میتونه ماینکرافت بازی کنه رونمایی کرده. فرض کنید میخوایم به یک مدل یاد بدیم چطور ماینکرفت بازی کنه. اولین راهی که به ذهن میرسه اینه که یک سیمولاتور ماینکرفت درست کنیم و مدل رو به صورت RL طور روی این محیط بازی آموزش بدیم. مشکلی که اینجا به وجود میاد یکی سایز فضای حالت بالای بازی و نیاز بالای مدل به اکتشاف ( exploration ) و دیگری هم سختی تعریف تابع پاداش (ریوارد) در این فضا است. راه دوم اینه که بیایم یک تعداد عامل انسانی بذاریم و از بازی کردن اونها و اکشن‌هایی که انتخاب می‌کنند یک دیتاست درست کنیم و مدل رو به اصطلاح به صورت آفلاین آموزش بدیم. مشکل این راه اینه که برای این که یک مدل کارا داشته باشیم نیازه تا عامل‌های انسانی‌مون خیلی خیلی خیلی دیتا جمع آوری کنند که حتی برای openAI هم قفله. با این اوصاف به نظرتون OpenAI چه راهی در پیش گرفته؟
از اونجایی که OpenAI خیلی به داده‌های وسیع حاضر در اینترنت علاقه‌منده (این رو در طرز آموزش GPT و Clip و DallE هم قبلا دیده بودیم) اومده اولا "هفتاد هزار ساعت" فیلم ویدئو ماینکرافت بازی کردن ملت رو از اینترنت دانلود کرده. خب این دیتای ارزشمندیه ولی مشکل اینه که فقط فیلمه و معلوم نیست که گیمر در هر لحظه چه اکشنی رو انتخاب کرده که. پس OpenAI اومده و با استفاده از عامل‌های انسانی که داره حدود دوهزار ساعت ویدئو بازی کردنشون رو به صورت لیبل دار جمع آوری کرده (یعنی اون عامل انسانی ماینکرافت بازی کرده و مشاهداتی که داشته و اکشن هایی که در لحظه انجام داده به صورت دنباله ذخیره شده) حالا اومدن و یک مدل دیگه ای به نام IDM با استفاده از همین دیتا‌ها آموزش دادن که وظیفه اش اینه که با مشاهده یک دنباله از فریم‌های ویدئو تشخیص بده که گیمر در اون لحظه چه اکشنی رو انتخاب کرده (نکته خوب ماجرا اینه که این مدل Non-Autoregressive هست یعنی برای تشخیص اکشن انجام شده در یک فریم میتونه هم به فریم‌های قبلی و هم به فریم‌های بعدی نگاه و توجه کنه). حالا احتمالا اگر نخ ماجرا دستتون اومده باشه میتونید حدس بزنید که در گام بعدی اومدن به کمک همین مدل IDM به دست اومده اون داده‌های ویدئو بی لیبل هفتا هزار ساعتی رو لیبل زده اند. حالا در واقع یک دیتاست لیبل خورده هفتادهزار ساعتی حاضر و آماده است و میشه مدل اصلی و نهایی رو روی این دیتاست بزرگ آموزش داد. OpenAIای‌ها اسم این تکنیک رو گذاشتند Video PreTraining یا به اختصار VPT.

بعد از به دست اومدن این دیتاست هفتادهزار ساعته لیبلدار، حالا یک مدل رو به صورت Autoregressive رو دنباله فریم‌ها و اکشن‌ها به صورت imitation learningای (این تکنیک به این معناست که عوض این که مدل رو در پارادایم RL در یک محیط قرار بدیم و با دادن ریوارد بهش آموزشش بدیم بیایم اون تسک رو توسط عامل انسانی انجام بدیم و مدل رو روی داده‌ها و حرکات اون عامل انسانی آموزش بدیم به این امید که بتونه سیاست اون عامل انسانی رو تقلید کنه) آموزش دادند. روی نحوه بازی‌کردن این مدل هم یک‌سری مشاهدات و آزمایشات انجام دادند که حیرت آوره. مثلا مدل تونسته تسک‌هایی رو که گیمر‌های حرفه‌ای ماینکرفت ظرف ۲۰ دقیقه (۲۴ هزار اکشن) انجام میدند رو به خوبی یاد بگیره!!! یا مثلا همین مدل به دست اومده رو به عنوان یک نقطه شروع قرار دادند و با RL دوباره روی یک سری تسک‌های خاص فاین تیونش دادند و نتیجه‌های خوبی به دست گرفتند. فیلم بازی‌های این مدل خفن در لینک توسط OpenAI قرار داده شده. همچینن OpenAI ناپرهیزی کرده و این مدل رو بر خلاف مدل‌های دیگه اش اوپن سورس صلواتی منتشر کرده! با موفقیت این مدل انتظار می‌ره که OpenAI با توجه به روحیه‌ای که داره در گام‌های بعدی این متد رو به مسائل مشابه دیگر اعمال کند. این داستان ادامه دارد؟

لینک بلاگ OpenAI برای این مدل:
https://openai.com/blog/vpt/
لینک کد و وزن‌های این مدل:
https://github.com/openai/Video-Pre-Training
لینک مقاله:
https://cdn.openai.com/vpt/Paper.pdf

#read
#paper

@nlp_stuff
🤯4
Forwarded from PyTorch Howsam (Howsam Support)
اگه عاشق خودکار و کاغذ و ریاضی هستی، این پست رو احتمالا میپسندی...

Pen and Paper Exercises in Machine Learning
عنوان بالا اسم یه کتابچه هست که توی arxiv موجوده و شامل تمرینهای ریاضی برای یادگیری ماشینه. سوال مطرح کرده و جواب داده. این نوع کتابا واقعا مفیدن.

https://arxiv.org/abs/2206.13446

@pytorch_howsam
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥🔥 HD Dichotomous Segmentation 🔥🔥

👉 A new task to segment highly accurate objects from natural images.

𝐇𝐢𝐠𝐡𝐥𝐢𝐠𝐡𝐭𝐬:
5,000+ HD images + accurate binary mask
IS-Net baseline in high-dim feature spaces
HCE: model vs. human interventions
Source code (should be) available soon

More: https://bit.ly/3ah2BDO
🔥3
[Forwarded from Tensorflow(@CVision) (Alireza Akhavan)]
همان طور که قبلا اعلام شد یه کورس OpenCV دارم تهیه میکنم و قراره از مکتب خونه منتشر بشه. تا الان 45 تا نوت بوک درست کردم که در اینجا منتشر کردم، این پیج هر هفته با سرفصلها و نوت بوکهای جدید به روز خواهد شد...

https://github.com/Alireza-Akhavan/class.vision/blob/master/README.md
🔥2
NLP 800.pdf
14 MB
🔥2👍1
ورژن پنجم کورس جرمی هاوارد امروز منتشر شد!

Practical Deep Learning for Coders

https://course.fast.ai/

این کورس براساس کتابخونه‌های پایتورچ، fastai و huggingface و … هست و مباحث کامپیوتر ویژن، NLP، تحلیل داده structured، سیستم‌های توصیه دهنده و الگوریتم‌هایی مثل رگرسیون و random forest رو پوشش میده.

توضیحات بیشتر رو میتونید در توییت جرمی هاوارد بخونید:

https://twitter.com/jeremyphoward/status/1550264123925360640?s=21&t=EFNN4D6QI6Y5EDk_KxdPCw
🔥3
Python Artificial Intelligence Projects for Beginners
Get up and running with Artificial Intelligence using 8 smart and exciting AI applications

Download

#book
👍1
Forwarded from NLP stuff
تیر آخر برای فهمیدن ترنسفورمرها!

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

لینک بلاگ:
https://e2eml.school/transformers.html

لینک پیاده‌سازی:
https://nlp.seas.harvard.edu/annotated-transformer/#a-first-example

لینک ریپو:
https://github.com/dair-ai/Transformers-Recipe

#read
#blog

@nlp_stuff
Machine learning model performance degrades over time. When data quality is fine, there are two usual suspects: data drift or concept drift.

▪️ Data Drift -- The input data has changed. The distribution of the variables is meaningfully different. As a result, the trained model is not relevant for this new data.

▪️ Concept Drift -- In contrast to the data drift, the distributions might even remain the same. Instead, the relationships between the model inputs and outputs change. In essence, the very meaning of what we are trying to predict evolves.

source: https://www.linkedin.com/feed/update/urn:li:share:6959891342726463488?utm_source=linkedin_share&utm_medium=member_desktop_share&utm_content=post
👍2
هر لایه یک لاس‌فانکشن!

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

در این فرم‌ورک شبکه‌های عصبی رو ترکیبی ماژولار (و نه بهم پیوسته) از لایه‌ها متصور شدند که در هر لایه ابتدا یک تبدیل خطی روی ورودی اش انجام میشه و بعد هم یک تبدیل غیرخطی که همون Activation Function هست.خب تا اینجاش بجز ماژولار بودن تفاوتی با قبل نداشت. تفاوت اصلی در اینجاست که هر لایه برای خودش regularizer جدا، output target جدا و همچنین loss function جدا داره. که بخاطر همین لوکالیتی بودن اینها اسم فرم‌ورک رو گذاشتند LocoProp. یعنی Local Loss Optimization framework.

حالا چه مزیت‌هایی داره؟ به گفته خود اعزه گوگل مهمترین آورده local losses کاهش زمان Trian هست. چرا که ترین هر لایه بصورت Parallel انجام میشه. ضمن اینکه با اینکه در هر لایه از یک Optimizer درجه اول استفاده می‌کنیم اما در عمل نتایجش تنه به تنه Optimizer های با درجات بالا (مشتقات درجه چندم) می‌زنه و این یعنی در عین داشتن مزایای این اپتیمایزرها تمام هزینه‌های محاسباتی شون اعم از matrix inversions رو نداره.

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

لینک مقاله: https://lnkd.in/eqsrUnJA
لینک گوگل بلاگ: https://lnkd.in/ephQyxEE

من بلد نبودم gif توضیح تصویری فرم‌ورک رو بذارم تو پست. لینکش رو گذاشتم:
https://lnkd.in/eR83iPrn

source: https://www.linkedin.com/feed/update/urn:li:share:6960231926687227905?utm_source=linkedin_share&utm_medium=member_desktop_share&utm_content=post