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

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

Core Python : @PyHints

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

Rust: @PyRust
Download Telegram
Quick note :

بعنوان تست؛ ۵ نفر از اعضای تیم از امروز خیلی جدی روی Rust کار خواهند کرد

مخصوصاً تیم Tensorflow :
۳ نفر از دولوپر‌های تیم C++ / باقی از اعضای تیم python
۳ تا از ماژول‌های پرکاربرد هم قرار شد از Python به Rust بازنویسی بشه

اگر یادم بمونه نتیجه این تست‌هارو حتماً میذارم (هرچند توی تست اولیه تغییر ماژول به اعداد خوبی رسیدیم)

ماژولی پایتونی رو با rust بازنویسی کردیم و توی پایتون استفاده می‌کنیم.



پ.ن : اصلا پیشنهاد نمی‌کنم دوستان تازه کار سمت این زبان برنامه‌نویسی (مخصوصاً برای درآمدزایی برن)
👍26👎1
خیلی از دوستان نزدیک (برنامه نویسایی که می‌خوان وارد هوش مصنوعی هم بشن) ازم راجب دوره و کلاس و ... می‌پرسند
که خب پیام پین شده کانال گویای همه چیز هست :

اما برای یک فرد تازه‌ کار مسئله خیلی سختی نیست با توجه به چندتا نکته خودتون می‌تونید متوجه بشید دوره الکی و سرکاری هست یا واقعا قراره چیز خوبی یاد بگیرید (توجه کنید بازم می‌گم برای تازه‌کارها هست این بحث) :

۱- اگر پایتون بلد نیستی دوره پایتون شرکت کن : دوره ماشین لرنینگ قرار نیست اصول درست برنامه نویسی پایتون رو هم بهت یاد بده (اگر به من باشه دوره‌ای که قراره با برنامه نویسی پایتون پر بشه بدرد نمی‌خوره)
پس نکته اول اینه که نگاه کنید دوره چندساعت هست و چقدرش قرار خرج پایتون بشه

۲- اگر نمیخوای فقط چندخط کد بزنی و میخوای مسئله رو بفهمی :
باید دوره‌ای رو شرکت کنی که چرایی فرمول‌های ریاضی و ... رو هم بهت بگه

۳- قیمت دوره یا محل برگذاری هیچ ربطی به کیفیت دوره نداره ؛ مخصوصا محل برگذاری حواستون به این موضوع باشه و اگر فقط مدرکش براتون مهم نیست قیمت و محل برگذاری رو کمترین امتیاز رو بهش بدید

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

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

۵- ریاضیات رو نپیچون تا بعدا به مشکل نخوری.
👍151👎1
Quick Tip:

الان دیدم یکی از بچه‌ها داره از for line in lines برای خوندن یک فایل استفاده می‌کنه که بجای , از | برای جداسازی ستون‌ها استفاده شده
نامپای اینکارو به راحتی انجام میده براتون و خروجی رو هم بصورت array نگه میداره ؛ هم سریعتر هست هم رم کمتری مصرف می‌کنه

اگر میخواید همه‌ی ستون‌ها داخل یک متغیر باشه unpack رو حذف کنید.
پارامترهای مهم دیگه‌ای هم این متود داره مثلا usecols

پ.ن : سورس کد pandas هم همین رو استفاده می‌کنه
👍21👏4🔥21👎1
#آموزش #تجربه #مصاحبه

ببخشید کمی طولانی هست :

سال قبل ی گروه ۷-۸ نفره ایرانی تازه فارغ‌التحصیل برای یادگیری پایتون داشتم که خب می‌خواستند وارد بازار کار بشن و قرار بود practical coding فقط باشه

چند ماه پیش ۲ تا از بچه‌ها که هم خونه هستند پیام دادند که میخواهند از شرکت فعلی به شرکت دیگه‌ای برند حالا ۱ سال تجربه دارند و می‌خواهند اینبار کلاس داشته باشند بطوری که خودشون رو بجای Junior بعنوان Mid-level معرفی کنند.

برای senior شدن واقعاً یک فاکتور به اسم زمان دخیل هست حالا درسته تجربیات خوب و تیم خوب باعث میشه سریعتر به این مهم برسید ولی همونم حداقل ۲ سال زمان میبره به شرطی که هر روزش پر از یادگیری باشه.
اما برخلاف تصور و حرفای چرت و پرتی که گفته می‌شه mid-level شدن رو میشه از زمان جدا کرد طوری که اولین شغلی که میگیرید حتی بعنوان Mid-level دستمزد داشته باشید (مثالش بسیار هست و واقعاً دوستان اینطوری رو داریم تو کانال)

ازونجایی که وقت نداشتم براشون کلاس برگذار کنم گفتم که با شخص دیگری کلاس داشته باشند ۲ تا نکته واقعاً اذیت کننده بود :

۱- دستمزد، کسانی که باهاشون صحبت کرده بودند (پیام‌هارو دارم) برای جلسات ۱ ساعت قیمت‌هایی تا ۴-۵ میلیون تومان داده بودند.

من نمیدونم داستان چیه، ولی چرا تا ی ایرانی مقیم خارج می‌بینید می‌خواید همه مشکلات درآمدی رو جبران کنید !؟
اضافه کنم که این افراد مقیم ایران هم بودند و این رقم‌ها رو درخواست کردند ( یعنی مسئله پرداخت ریالی و خرج به دلار نیست)

مشکل من با این عدد بالا بعنوان دستمزد نیست، بعضی از اساتید بیشتر ازین هم ارزش داره کلاس‌ هاشون ( ۱ در هر ۱ میلیون استاد )

مشکلم با سرفصل‌هایی هست که ارائه داده بودند برای mid-level

۲- سرفصل :
خیلی‌هاشون زده بودن کار با درایور دیتابیس (mongodb - postgres)

ی چندتا زده بودند : PySpark

چرا دارید کار با ابزار یاد میدید !؟

دوستان دقت کنید : ی Junior باید توانای خوندن داکیومنت و یادگرفتن کار با ابزار رو داشته باشه فقط ممکن هست زمانبر باشه براش (این چیزی هست که همه توی دوره‌ی Internship یاد میگیرند).

اینکه ابزار یاد بدند برای مصاحبه‌های خاص و مشاغل خاص هست مثلاً اگر این دوستان می‌خواستند بعنوان Data engineer شرکت کنند
بله خوب بود که pyspark هم توی سرفصل‌ها باشه نه برای software engineer

چندتا مورد دیگه هم که باز اوضاع خوبی نداشت :
Clean code, Git , ....
بود

همین پیگیری استاد ازشون ۱ ماه وقت گرفت وقتی دوباره بهم پیام دادند و موارد بالا رو فرستادند دیدم وقت کمی دارند و براشون ۲ تا نکته جم و جور فرستادم که فقط توی مصاحبه بتونند خودشون رو mid-level نشون بدند :
1- system design

2- documentation (on git projects)

پ.ن : الگوریتم و data structure رو می‌دونستم بلد هستند.


دیشب پیام دادند که هر قبول شدند توی مصاحبه‌ و کار جدید رو قراره شروع کنند، برای همین ترجیح دادم این مورد رو برای دوستان تازه‌کار بذارم

بازم از مزایای درک درست system design خواهم گفت.
حتی توی مصاحبه‌های غیر از software engineering و حتی در ML/DL
👍23👏53👎1
دستاوردهای یادگیری عمیق(InTec)
#آموزش #تجربه #مصاحبه ببخشید کمی طولانی هست : سال قبل ی گروه ۷-۸ نفره ایرانی تازه فارغ‌التحصیل برای یادگیری پایتون داشتم که خب می‌خواستند وارد بازار کار بشن و قرار بود practical coding فقط باشه چند ماه پیش ۲ تا از بچه‌ها که هم خونه هستند پیام دادند که…
System design :

چون خیلی سوال شد، همینجا سریع بگم که توی مصاحبه‌ها ۲ تا سوال معمولاً پرسیده میشه از Senior توقع میره به خوبی هرچه تمام این ۲ سوال رو جواب بده

متأسفانه خیلی از بچه‌های ایرانی که توی مصاحبه (مخصوصاً بین‌المللی fail می‌شند بخاطر جواب بد دادن به این ۲ مدل سوال هست)

کمپانی‌های بزرگ مثل گوگل ٫ آمازون و ... (حتی شرکتی که ما کار می‌کنیم) یکی از مرحله‌های مصاحبه هست

یک محصول شرکت یا یکی از برنامه‌هایی که مجود داره رو به شما توضیح میدند (خیلی وقتا غیرکامل و دست و پا شکسته) و از شما توقع دارند طراحی انجام بدید (برای مثال میگن اینستاگرام رو اگر قرار باشه با ی سری تغییرات جدید (گفته میشه بهتون) طراحی کنید چطور میشه ؟! )

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

خیلی مهمه که قبل از اینکه ماژیک رو روی تخته بذارید و توضیح بدید کامل محصول رو درک کنید، جاهایی که توضیح درستی ندادند به عمد هست باید سوال کنید و ...

مثلاً برای بچه‌هایی که Sql Admin شرکت می‌کنند، تمرکز روی جدول‌های مورد نیاز، فیلدها و ... هست


نوع دومی که سوال میشه و توی هوش مصنوعی کسی بهش دقت نمی‌کنه که این سوال مربوط به system design هست و بسیار بسیار مهم اینه که :

شما توی رزومه زدید یک سیستم رو پیاده سازی کردید و روی production هست :

از شما می‌خواند راجبش توضیح بدید :
معمولاً از شما توقع میره سریع راجب الگوریتم مورد استفاده توضیح بدید و رد بشید و نحوه پیاده سازی سیستم رو بگید (اینجا ابزارها هم ممکنه مهم باشه) از طراحی تا پیاده سازی رو بگید

من خیلی خیلی زیاد توی بچه‌هایی که باهاشون تست مصاحبه میرم دیدم که شروع می‌کنن راجب Hyper parameters, Algorithm, Model, فریمورک توضیح دادن اینا اصلا مهم نیست :

مهم دیتا - مشکلات و نحوه حلشون - و البته از طراحی تا پیاده سازی محصول هست و نحوه عملکرد

اگر توجه کنید خوبی بلد بودن SYSTEM DESIGN همین هست، توی مصاحبه‌های مختلف حتی می‌دونید چه بخشی از تجربیاتتون رو bold کنید که مصاحبه کننده شکه بشه و نظرش بسیار مثبت باشه

این می‌تونه حتی اشتباهات کد زدن و ... رو هم ببخشه 😉


البته کلاً بچه‌های ایران تو این مورد ضعیف هستند، متأسفانه اساتید هم این مورد رو بلد نیستند خیلی وقتا و یا اگر می‌دوند هم توضیح نمیدن

شخصاً وقتی برنامه‌نویسی و مصاحبه رو شروع کردم (بعنوان برنامه‌نویس بیش از ۱۰ سال قبل)
بیشتر از ۲۰ تا مصاحبه و چندین سال تجربه طول کشید تا بفهمم واقعاً چقدر مهم هست این موضوع.
👍22👎1
نکته دیگه اینکه :
من گیتهابی برای کدهام ندارم،
گیت‌ شرکت‌ها رو برای همه‌ی کارها استفاده می‌کنم و خارج از اون پروژه‌های شرکت رو به هیچ‌وجه نمیذارم.

برای خودم هم یک سیستم Git ایجاد کردم و پروژه‌های شخصی رو اونجا قرار میدم از سرویس‌های عمومی فقط برای کدها و فایل‌های سمینار و ... سعی می‌کنم استفاده کنم.
#Quick_note

بالاخره یک رغیب جدی برای A100 پیدا شد :
Intel Gaudi 2
با همون ویژگی‌های مهم نسخه ۱؛
Gaudi 1
همون پردازشگرهای محاسباتی هست که قیمت AWS رو توی زمان خودش از همه رقیباش ارزون‌تر کرد در حالی که پردازش‌ها رو هم زودتر انجام می‌داد

توی نسخه ۲ با مموری گرافیکی برابر حتی همواره شاهد : بهبود ۲ برابری سرعت نسبت به Nvidia A100 هستیم (Resnet50 - Bert دمو شدند.)

درحال جستجو و مقایسه قیمت برای جایگزین کردن سرورهای Cloud - A100 شرکت به Gaudi2 هستیم.

مهمترین نکته برای ما
Inference Time
هست، که اگر سریعتر باشه نسبت به سرورهای A100 ؛ حتی با قیمت برابر هم تغییر صورت خواهد گرفت (این ینی تیم‌های ML/DL وقت بیشتری برای توسعه بهتر محصول دارند و وقت کمتری رو صرف optimization های مختلف خواهند کرد)
👍8🤔3
دستاوردهای یادگیری عمیق(InTec) pinned «#Roadmap 2022 این رو برای یک دوستی که تازه داره سعی می‌کنه وارد، ماشین‌لرنینگ بشه نوشتم ؛ اول اینکه توجه کنید, ۱- ایشون تازه برای کارشناسی بورسیه گرفته و قراره شروع کنه درسش رو ۲- پایتون رو در سطح متوسطی بلد هست و چندسالی هست که کد میزنه (Data structure…»
https://www.deepmind.com/publications/a-generalist-agent
Gato : 1.18 billion parameters
GPT-3 only for text : 175 billion

این مدل واقعا همه چیز رو می‌فهمه : متن - عکس - فیزیک (ربات) و البته RL
این در حالی هست که نیازی نیست برای هر تسک بصورت جدا finetune بشه
🤯9👍2
deepdoctection

توی همین مدت کم تبدیل به یکی از پکیج‌های بیسیک و تست من شده ؛ توی پروژه‌های OCR و ...
دیگه لازم نیست برای تست‌های کوچیک و سریع سراغ کدهای پروژه‌های قبلی برم

توی این ۲ ماه که opensource شده و در دسترس هست واقعا پیشرفت جالبی داشته و برای همین گفتم که اینجا معرفیش کنم.
👍7🔥1
این دیگه خیلی عجیب بود :

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

هیچ توضیحی هم ندادند،

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

بعد از هماهنگ کردن جلسه توضیح دادند، متوجه شدم که :
۱- مصاحبه نیست
۲- ربطی به هوش مصنوعی نداره
۳- مشاوره هست
۴- system design, api , microservice

بعد از اینکه گفتم زمان و ... ندارم برای اینکار،
الان که اومدم پاسخ به ساعت جلسه و ... رو no بزنم دیدم حتی ساعتی که من اعلام کرده بودم هم نیست؛ اونم با بیش از ۲ ساعت اختلاف.

خطاب به این مدل شرکت‌ها :

۱- این رفتارهای غیر حرفه‌ای رو از کجا یاد میگیرید !؟

۲- چرا حتی وقتی کار شما گیر هست بازم درگیر خود گنده نشون دادن هستید ؟!

۳- چرا به نیروها احترام نمی ذارید !؟

در نهایت خدارو شکر می‌کنم که همکاری صورت نگرفت
👍51👎3
#تجربه

چندروزی هست که به سیستم شخصی RTX 3090 اضافه کردم و بنا به دلایلی کارت گرافیک قبلی رو هم نگه داشتم (1080Ti) یک سری نکته رو خواستم برای دوستان بگم که امیدوارم مفید باشه :

۱- اولین مورد راجع به پیشنهاد خرید هست
من به ۹۰٪ بچه‌ها پیشنهاد خرید نمیدم مخصوصاً اونهایی که تازه میخوان همچین سیستمی رو جمع کنند، شما حتی چیزی در حد کولب هم امروز بخواید خرید کنید حدوداً درآمد ۲ سال کار کردن در ایران رو باید بذارید کنار براش (اما اگر درآمدتون از حد نرمال بالاتر هست میشه بهش فکر کرد)

۲- برای بچه‌های خارج از ایران ۱۰۰٪ خرید رو توصیه نمی‌کنم (مگر کمک مالی ٫ پاداش یا ...) تا وقتی Aws - lambda و ... هست چرا خرید !؟

۳- من تجربه کار کردن با سرورهای قدرتمند gpu رو دارم اما خب دسترسی تعریف شده و توی خیلی از موارد ۲ نکته وجود داره :

اول اینکه gpu رو یکپارچه می‌بینه سیستم
دوم اینکه gpu ها از یک مدل هستند

توی شرایطی مثل سیستم من :
3090
وقتی محاسبات رو تموم می‌کنه و برای cpu می‌فرسته بیکار می‌مونه تا 1080 هم محاسباتش تموم بشه و اطلاعات رو برای cpu بفرسته

که بخاطر bandwidth, حافظه کمتر 1080 نقش bottleneck رو بازی می‌کنه

که اصلاً خوب نیست، و تو خیلی از موارد ترین کردن مدل روی 3090 به تنهایی خیلی سریعتر هست

۴- اما خوبی‌هایی هم داره :

اول اینکه، وقتی طولانی مدت ترین روی gpu قویتر میذارم دیگه لازم نیست همه‌ی برنامه‌های گرافیکی رو ببندم (gpu قویتر هیچ display output ایی نداره و فقط برای پردازش استفاده می‌شه.)
وقتی تک gpu بود یا حالتی که همه‌ی gpu ها استفاده میشه
دیگه نمی‌شه حتی video , ... باز کرد بخاطر lag شدید.

پس توی مدت ترین به کارهای دیگه هم میرسم

دوم اینکه :
وقتی زمانبدی کار عقب میوفته، از کدها ۲ نسخه میگیرم و بصورت همزمان نسخه اصلی رو برای ترین روی gpu قویتر میذارم و نسخه دوم رو برای experiment های سریعتر روی gpu ضعیف

وقتی به
hyper parameters
های بهتر دست پیدا می‌کنم نسخه اصلی رو stop می‌کنم و از آخرین checkpoint با کانفیگ جدید ترین شبکه رو ادامه می‌دم

سوم :
توی reinforcement learning هم خیلی خوب کمک می‌کنه، environment, game , ... رو روی 1080 اجرا می‌کنم و مدل و دیتاها روی 3090 اینجوری مدل‌های بزرگتری رو هم می‌تونم تست کنم

چهارم :

ی پیشنهاد که خیلی زیاد می‌بینم اینه که ۲ تا 3080 بگیر بجای ۱ دونه 3090 عملکرد بهتری داره
اول اینکه ۲ تا 3080 با اینکه میگن تفاوت قیمت نداره؛ اما باعث میشه مجبور بشید بیش از ۲ برابر خرج کنید

سیستم خنک کننده - power قویتر - مادربرد قویتر و البته case بزرگتر حداقل چیزهایی هست که مجبورید براش بیشتر هزینه کنید (نگهداری هم که هست)

علاوه بر اون مدل‌های این سالهای آخر به اندازه کافی بزرگ شده (بعضی‌ها حتی توی ۱۲ گیگ هم جا نمی‌شه، خود مدل به تنهایی)
اگر دارید به شکوندن مدل روی ۲ تا gpu فکر می‌کنید،
اول اینکه : کار آسونی نیست واقعاً و بسیار بسیار زمانبر هست که برای تجربیات سریع اصن خوب نیست
دوم اینکه : هر مدلی رو نمیشه به همین سادگی به تفکیک کردنش روی ۲ تا gpu فکر کرد.


نکاتی بود که تجربه جالب چندروز اخیر بود برای من و دوست داشتم باشما هم به اشتراک بذارم، امیدوارم مفید باشه 🌹
👍3615👎2
هفته پیش شرکت برای جذب نیرو توی بخش research تبلیغات انجام داد :

به این صورت که :
فارغ‌التحصیلان - اون‌هایی که ترم آخر هستند و البته junior ها می‌تونستند درخواست ارسال کنند

بیش از ۱۰۰ تا رزومه دریافت شد که همه مدل آدم توش بود (بنا به دلایلی تصمیم شد که رزومه‌ها اتومات بررسی نشه)

به اینجا رسید که ۵ تا سوال مطرح شد برای افراد + یک فرصت پاسخ (بدون گوگل کردن)
به کمک همین روش فقط ۱۱ تا رزومه موند.

سوالی که خودم مطرح کردم پاسخ اشتباه زیادی داشت برای همین گفتم به اشتراک بذارم :

تصاویری پیوست شده :
نمودار مشتق اول یکسری از توابع هست، اگر قرار باشه تابع اصلی یکی ازین نمودارها بعنوان activation function استفاده بشه، بهترین گزینه کدوم تصویر هست، دلیل انتخاب چیه !؟
👍12
دستاوردهای یادگیری عمیق(InTec)
هفته پیش شرکت برای جذب نیرو توی بخش research تبلیغات انجام داد : به این صورت که : فارغ‌التحصیلان - اون‌هایی که ترم آخر هستند و البته junior ها می‌تونستند درخواست ارسال کنند بیش از ۱۰۰ تا رزومه دریافت شد که همه مدل آدم توش بود (بنا به دلایلی تصمیم شد که…
کسانی که می‌دونند یا توی ای زمینه تحقیق و کار کردند
پاسخ بدید، قطعاً جواب درست رو هم خودم قرار میدم

نکته دیگه اینکه (این سوال برای بخش research مطرح شده نه برای ml engineer یا ...)

بچه‌های research باید ریاضیات رو به خوبی بفهمند

توضیح درست دادن موقع انتخاب جواب هم شرط هست 😉
👍2
دستاوردهای یادگیری عمیق(InTec)
Photo
#جواب‌ درست (دوستانی هم به خوبی اشاره کردن) بطور ساده :

۱ عکس اول :
Vanishing Gradient
هست که به خوبی هم واضح هست، چرا که نقطه اوج برای مشتق اول تابع روی 0.25 هست
فرض کنید عمق شبکه فقط 5 لایه باشه، حتی اگر توی تمام موارد بیشترین مقدار برگرده

0.25 ** 5 = 0.000976

یک مشکل دیگه‌ای هم که داره اینه که توی شبکه‌های عصبی برامون مهم هست که دیتا
Mean = 0, Std=1
باشه، اما ازونجایی که این تابع نشون دهنده sigmoid هست و mean رو روی 0.5 نگه میداره پس مناسب لایه‌های میانی نیست (بخش دوم جواب برای کسایی که نوشته بودند امتیاز داشت اما واجب نبود)

۲ عکس دوم :
بازهم مشکل vanish gradient داره، اما نه توی peak (که خب خیلی کم اتفاق میوفته) و خب وقتی مقادیر روی بردار x از 0 فاصله بگیرند اعداد بسار کوچیک میشه و برای شبکه‌های عمیق مشکل قبل وجود داره (اما شدت کمتر)

ازونجایی که تابع اصلی این نمودار tanh هست پس مشکل
Mean, Std
رو نخواهیم داشت برای همین جایگزین بهتری برای لایه‌های میانی هست (بجای sigmoid) ولی خب مشکل اصلی همچنان باقی هست

۳ عکس سوم :
بخش سمت چپ که خب همواره صفر هست (خود این vanish gradient هست) و هیچ صحبتی راجبش وجود نداره (دقیقا مشکل relu هم هست و بعنوان جایگزین ELU , LEAKY , ...) معرفی شدند

اما بخش سمت راست به خوبی کار می‌کنه و مشکل vanish gradient نداره که گزینه خوبی هست برای deep learning مسئله جالبه دیگه اینکه که بصورت عملی ReLU داره جواب میده (پس احتمالاً همین که بخش مثبت به خوبی کار می‌کنه کفایت می‌کنه)

اما ۳تا مشکل حتی با relu وجود داره :
۱- بحث mean, std هست روی relu ؟ activation function جایگزین که حل کننده این موضوع باشه و بخوبی relu هم عمل کنه نداریم (من نمیشناسم حداقل)
۲- بخش سمت چپ که صحبت شد و مشکل dead neuron که راه‌حل هایی مثل leaky relu, elu براش ارائه شده
۳- exploiding gradinet
هست، حالتی برعکس vanish جایی که محاسبات اعداد بزرگی رو بر میگیردونند، و راه حلی مثل Clipping داره

بجای max(0, x) تابع بصورت
min(max(0,x), 6)
تعریف می‌شه.
👍34