دستاوردهای یادگیری عمیق(InTec)
9.53K subscribers
363 photos
40 videos
44 files
674 links
هوش مصنوعی، یادگیری ماشین و یادگیری عمیق
موضوع اصلی کانال

این یک بلاگ شخصی با طرز تفکر شخصی هست.

Core Python : @PyHints

تلاشی هم در یادگیری Rust دارم که درحال داکیومنت شدن هم هست؛ اگر شماهم به این زبان علاقمند هستید join یادتون نره

Rust: @PyRust
Download Telegram
همه چیز از اینجا شروع شد که خواستم برنامه‌نویس خوبی باشم ...
شاید اگه به مردم بگیم که مغزتون ی برنامه‌اس ؛ شروع به استفاده ازش کنند.
بالاخره منتشر شد .
برای تمام دوستان علاقه‌مند به deep learning که با ریاضیات کمی مشکل دارند هم عالیه

توی چند فصلی که تو این ۲روز خوندم
کتاب عالیی هست (همونطور که انتظارش بود)

واقعاْ ارزش خرید داره
Hi

Highly recommended to see what is going on in these scientific Links ( Code, articles, summary , discussions .... )

AI Articles with Code ( most in Python )
https://www.paperswithcode.com/

Public summaries in Machine learning , organized with community ( Like stackoverflowin AI )
https://www.shortscience.org/?s=cs


Search /Filtering recent Arxiv ( pre print submissions ) ; Keep track of recent papers with sorting papers by similarity

https://www.arxiv-sanity.com



Latest Arxiv papers with abstract summary ! ( web interfece and python code )

https://github.com/chiphuyen/sotawhat
More info here :
https://huyenchip.com/2018/10/04/sotawhat.html


تشکر ویژه از دکتر حبیب‌زاده بابت به اشتراک گذاری منابع

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

ماشین‌لرنینگ تا دیپ لرنینگ
#پیشنهاد_ویژه
چندتا تغییر خیلی کوچیک ولی جالب تو پایتون که سرعت اجرای کد رو افزایش می‌ده :

اولین تغییر :
برای خودم اینجوری شروع شد که بجای
x += 1
توی کدهام از
x += True
استفاده کردم و باتوجه به
https://legacy.python.org/dev/peps/pep-0285/
bool هم از int گرفته شده و ...

خلاصه اینکه :
while True رو با while 1 مقایسه کردم
نتیجه :
While True : 1.37000703812
While 1 : 2.07638716698
و البته این مشکل مربوط به keywordها میشه (یه نگاهی بهش بکنید تو py3)

همین داستان رو برای
if x ==True: 0.212558031082
و
if x: 0.144327878952
هم داریم.
1
چرا بهتره که از ProtoBuff استفاده کنیم (مخصوصاْ برای tensorflow serve)
بدون شک یکی از باحالترین و دمه دست ترین کتابخونه‌های پایتون برای توسعه سیستم
Recommender ؛ python suprise هست
اگر تاحالا باهاش کار نکردید - تستش ضرر نداره

https://surpriselib.com/
👍1
یک سری دیتا امروز به دستم رسید و بعد شناخت کافی از دیتا شروع به حذف خیلی از ویژگی‌ها کردم ؛ و خب مثل خیلی از وقتا با دوستان به مشکل خوردم.

اینکه چرا باوجود تست الگوریتم‌های بسیار و همچنین صرف زمان بیش‌از معمول توسط دوستان راه‌حلی برای مسئله پیدا نشده و با وجود ‌قانون : "ویژگی بیشتر یادگیری بهتر در دیپ‌لرنینگ" (البته به گفته دوستان) ؛ کارم رو با حذف ویژگی‌ها شروع کردم موضوع این متن خواهد بود که فکر می‌کنم مفید باشه

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

همین مسئله حتی یکی از دلایل ؛ دیتای خیلی زیاد برای دیپ‌لرنینگ هست
ی مثال خوب و کمی تصورات هندسی برای درک :

فرض کنید ۱۰۰۰ تا داده دارید و مسئله ۲ کلاسه هست و هر نمونه فقط یک ویژگی هر ویژگی مقداری بین ۰ و ۱ خواهد داشت از الان تا آخر متن؛ ( همونطور که احتمالاْ همه میدونیم هر ویژگی یک بُعد رو نشون میده) می‌تونیم این دیتارو روی یک محور (X) و بین مقادیر ۰-۱ نشون بدیم
اگه بخوام ی خط بکشید و دیتاهارو از هم جدا کنید یا سخته یا اینکه خطای زیادی داره (رو کاغذ هم می‌شه تستش کرد)
پس از ی مفهموم دیگه کمک میگیرم و این طور تعریف می‌کنم :
نسبت داده ها به فضایی که در اختیارمون هست اسمش هم می‌شه
density
که برای ۱۰۰۰ تا داده روی ی بردار و مقدار بین ۰-۱ مقدار بزرگیه

چون دنسیتی دیتام خیلی بالاس ی ویژگی دیگه اضافه می‌کنم حالا بهتر شد توی فضای ۲بعدی باید ۱۰۰۰ تا دیتا رو از هم جدا کنم

و همینکارو ادامه میدم فضای ۳ بعدی ی مکعب رو در نظر بگیرید و این دیتا رو توش پراکنده کنید هربار که بُعدی رو اضافه می‌کنیم دنسیتی رو هم داریم کم می‌کنیم (شرایط بهتر شد و احتمالاْ می‌شه ی صفحه رسم کرد که دیتا رو بخوبی از هم جدا کنه )

حالا فرض کنید بجای ۱۰۰۰ تا دیتا فقط ۱۰ تا نمونه داده داریم میشه توی ۱ بعد دیتارو بخوبی پخش کرد و از هم جداکرد

توی ۲ بعد با چندین و چندخط می‌شه همینکارو کرد (هر خط یک مدل برای دسته‌بندی این داده‌هاس)

وقتی توی فضای ۳بعدی (دیتا با ۳ ویژگی) میریم ؛ دنسیتی بسیار پایین میاد و مدلهای خیلی خیلی زیادی برای جداسازی دیتا وجود خواهد داشت :
وقتی میگم مدلهای بسیار زیاد به این فکر کنید که چون دیتا کم هست و فضای مسئله بزرگ برای دسته بندی مدلها بسیاری از فضارو با حدس و گمان تقصیم می‌کنند؛ اگرچه عملکرد مدل روی دیتای آموزش خوبه اما هیچ تضمینی برای دیتای تست وجود نداره
👍2🔥2
با این حال خیلی وقتا می‌بینیم که زیاد کردن ویژگی بهتر عملکرد (با اینکه فضای مسئله بیخود بزرگتر شد و دنسیتی کمتر) دو حالت رو می‌شه در نظر گرفت :

۱- مثال اول جایی که دنسیتی خیلی بزرگ بود دیتا ۱۰۰۰ و فضای مسئله بردار ۰-۱
ولی حالت دوم که شاید چیزی ازش ندونیم نجات دهنده‌مون هست
۲- نعمت وجود ساختار :
همون ۱۰ تا دونه دیتا و فضای ۳ بعدی رو تصور کنید؛ نعمت وجود ساختار چیزیه که نمیذاره دیتای شما توی این فضای ۳بعدی پارکنده باشه و فرض کنید ۵ نمونه دسته منفی دقیقاْ کنار هم قرار بگیرند همین شرایط برای دسته مثبت هم هست

و همین شرایط باعث میشه به راحتی بشه دیتاهارو از هم جدا کرد علاوه براون نعمت وجود ساختار مارو بیمه هم می‌کنه و باعث می‌شه مدل در زمان تست هم عملکرد خوبی داشته باشه
چرا که احتمال زیاد دیتای تست هم جایی در نزدیکی دیتاهای ترین خواهد بود

اما چون همیشه اینطور نیست :
۱- دیتا رو خیلی خوب بشناسید
۲- ويژگی های اضافه رو حذف کنید
۳- زمان کمتری برای ترین کردن مدل هم صرف خواهید کرد

اگر علاقه‌ایی به حذف ویژگی‌های اضافه ندارید
سعی کنید دنسیتی رو بالا نگه دارید (دیتای بیشتر) تا شبکه برای تولید مدل نیاز به حدس و گمان بسیار نداشته باشه (شانسی نشه)

نفرین بعد بالا :
The curse of dimensionality
نعمت وجود ساختار :
Blessing of structure
دیدن این لینک‌ها خالی از لطف نیست :

https://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/

https://hackernoon.com/what-killed-the-curse-of-dimensionality-8dbfad265bbe
دیپ‌لرنینگ بدون کد زدن
هم جالبه و هم عنوان جذابی داره

مثال خودش برای دسته‌بندی متن هست ؛ خیلی راحت و جالبه

با ابزار جدید uber :

https://uber.github.io/ludwig/
دستاوردهای یادگیری عمیق(InTec)
دیپ‌لرنینگ بدون کد زدن هم جالبه و هم عنوان جذابی داره مثال خودش برای دسته‌بندی متن هست ؛ خیلی راحت و جالبه با ابزار جدید uber : https://uber.github.io/ludwig/
لیستی از کارهایی که با این ابزار می‌شه راحت انجام داد (بخش مثال داکیومنت ابزار)
تنها چیزی که لازمه کمی آشنایی با یونیکس‌ها هست

Text Classification
Named Entity Recognition Tagging
Natural Language Understanding
Machine Translation
Chit-Chat Dialogue Modeling through Sequence2Sequence
Sentiment Analysis
Image Classification
Image Captioning
One-shot Learning with Siamese Networks
Visual Question Answering
Predicting survivors
Time series forecasting
rating prediction
Multi-label classification
Multi-Task Learning
نمونه خروجی :
Wavenet
برای تبدیل متن به گفتار ؛ خروجی فوق‌العاده‌ایی داره که با صدای انسان قابل مقایسه هست
اما مشکل اساسی زمان هست
برای تبدیل متنی (برداشته شده از کامنت‌های پست دیپ‌مایند) که در زیر اومده
۴۲ دقیقه زمان برد اما نتیجه فوق‌العاده‌اس
Audio
I can hear some distortion in the piano notes which may be an audio compression artefact, or it may be the output of the resynthesis process.
Audio
خروجی ویونت روی فارسی :
بذار ببینیم با فارسی چیکار می‌کنی ؟

به معنای واقعی برای خودم خنده دار و جذاب بود کار روی
wavenet
نحوه لود کردن دیتا
imagenet , imdb_reviews
رو هم دارند.

بریم از اول یاد بگیریم یا زوده ؟

pip install tensorflow-dataset
بیش از ۳۰ دیتاست آماده و اگر دوست دارید می‌تونید دیتاتون رو برای اینکار اضافه کنید.
با این اسلاید آیا پایتورچ به شکست می‌رسه ؟
اضافه کنم :

Swift for Tensorflow رو هم داریم