Telegram Web
استفاده از یادگیری عمیق در پروژه های تجاری - بخش پنجم

مدیریت فرآیند آموزش

معمولا در پروژه های تجاری زمان تحویل پروژه یکی از مهمترین قسمتهای کار است. به این صورت که وقت محدودی برای توسعه مدل مورد نظر برای حل مساله وجود دارد. با این حال می دانیم که فرآیند آموزش شبکه های عصبی زمانبر است. از طرفی، بدلیل پیچیدگی و زمانبر بودنِ فرآیند آموزش نمی توانیم مانند مدلهای ساده یادگیری ماشین، همه فضای حالت هایپرپارامترها را بررسی کنیم.

اگر کامپیوترهای قوی به تعداد مناسب دارید، چندان دچار مشکل نمی شوید (هر چند نیاز دارید سخت افزار را درست مدیریت کنید تا بهره وری مناسبی داشته باشید) ولی اگر سخت افزار محدودی دارید که توان پردازشی بالایی ندارد (که بسیار محتمل است)، لازم است سیاست درستی را در مدیریت پروژه در پیش گیرید.

به هیچ وجه اجازه ندهید فرآیند آموزش خیلی طول بکشد؛ به عبارتی، نیاید و شش ماه یک مدل را آموزش بدهید. به احتمال فراوان، پروژه با شکست روبه رو خواهد شد و زمان زیادی را از دست خواهید داد؛ زیرا نتوانسته اید ایده های متفاوت را امتحان کنید. اصولا علت اینکه ممکن است بخواهید مدلتان زیاد آموزش ببینید این است که برای مثال از درصد 90 به 95 برسد ولی به دلیل مناطق هموار تابع هزینه این کار ممکن است طول بکشد. پیشنهاد می شود اگر دیدید که فرآیند آموزش پیش نمی رود یا خیلی کند شده، آموزش را متوفق کرده، ضعفها و کاستی ها را پیدا کنید و مجدد آموزش را آغاز کنید و اجازه ندهید فرآیند آموزش از چند هفته فراتر رود. آموزش شبکه، یک لوپ تکراری است. شما باید یک ایده ای داشته باشید، پیاده سازی کرده و آموزش دهید، بعد از مدتی مشکلات را بفهمید و بعدِ اصلاح مجدد، آموزش را مجدد شروع کنید.

(ادامه دارد)
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #iterative_process #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #training #پروژه_تجاری
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
Media is too big
VIEW IN TELEGRAM
یکی از تسکهایی که ما برای پایان نامه خیلی پیشنهاد می دهیم که رویش کار کنید، super resolution است.

پ.ن: ویدیو را با کیفیت بالا آپلود کرده ایم (علت بالا بودن حجمش) که جزییات مشخص باشد.

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #ارشد_دکتری #یادگیری_عمیق #ویدیو #سوپر_رزولوشن #super_resolution
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
اخیرا مطلع شدیم که خدمات سوپر کامپیوتر سیمرغ با تخفیف برای دانشجویان ارایه می شود؛ بنابراین اگر با پرداخت دلاری برای کولب مشکل دارید، این روش جایگزین مناسبی می تواند باشد.

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#اطلاع_رسانی #خبر #colab
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
This media is not supported in your browser
VIEW IN TELEGRAM
An extension of DeepDriving (deepdriving.cs.princeton.edu) for two-way traffic with U-turns.

The host car can have one of two goals: continue ahead or make the the next available U-turn. The host car's "goal" is analogous to a navigation system providing directions. To gather training data for this setting, TORCS was modified to allow for two-way traffic with grass medians.

In this video, the host car autonomously completes U-turns. The only input to the CNN is the bottom left image.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#یادگیری_عمیق #self_driving_car #ویدیو #autonomous
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
استفاده از یادگیری عمیق در پروژه های تجاری - بخش ششم

استفاده از optimizer مربوط به تسک

یکی
از مسائلی که معمولا در پروژه های تجاری به درستی رعایت نمی شود، استفاده از روش بهینه سازی مناسب است. اگر بخواهیم در مورد بهینه سازی به صورت مستقل نگاه کنیم، بحث بسیار است. به هر حال بهینه سازی یک گرایش در کارشناسی ارشد است ولی اگر بخواهیم بحث را مربوط به عنوان خودمان کنیم، می توان به صورت خلاصه گفت که برای مسائل متفاوت، از روشهای بهینه سازی مربوط به خودشان که خوب جواب داده اند استفاده کنید. به این شکل که اگر می خواهید پروژه ای را انجام دهید، در تمامیِ سایکلهای تغییر هایپرپارامترها از یک تابع بهینه سازی مثل Adam استفاده نکنید. دقت کنید که قرار نیست مقاله بنویسید، بلکه می خواهید برای تسکتان مدل مناسبی داشته باشید. در مقالات بهینه سازی مربوط به یادگیری عمیق معمولا بررسی می شود که روشهای ارایه شده برای چه تسکهایی مناسب هستند. در اینجا سوالاتی را مطرح می کنیم. اگر جوابشان را نمی دانید، این به این معنی است که تا به این لحظه به این نکته خیلی آگاه نبوده اید؛ بنابراین پیشنهاد می کنیم که در این زمینه چند مقاله بخوانید تا کامل متوجه شوید که در چه context ای از چه روشی برای بهینه سازی استفاده کنید.

- برای تسکهایی مثل detection روش SGD با Nesterov مناسب است یا Adam؟
- چرا وقتی از روشی مثل Adam که به نوعی حافظه دار است، استفاده می کنیم، دیگر روشهای رگیولاریزیشن مثل L2 چندان جواب نمی دهند؟
- آیا برای تمامی تسکهای NLP باید از یک تابع هزینه مثل Adam استفاده کرد؟
- نمی توان شکل تابع هزینه را به دلیل ابعاد بالا تصور کرد ولی آیا MSE برای تسکهای متفاوت شکل و رفتار یکسانی دارد؟

(ادامه دارد)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #بهینه_سازی #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #training #پروژه_تجاری
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
نقاط ضعف شبکه های کپسولی - بخش اول

پیش از این در ارتباط با نقاط ضعف شبکه های کانولوشنی صحبت کرده بودیم و برای ضعفهای متفاوت، راه حلی مثل شبکه کپسولی را ارایه کردیم. با این حال، این روش دارای ضعفهایی است و روی این ضعفها مقالات متعددی ارایه شده اند که هر یک سعی کرده اند نقاط ضعف را بهبود ببخشند. حل هر یک از این نقاط ضعف می تواند موضوعی برای پایان نامه باشد.

Background Texture

یکی از شناخته شده ترین ضعفها مربوط به texture موجود در تصاویر است. شبکه های کپسولی می توانند خیلی خوب کار کنند برای viewpoint هایی که ندیده اند ولی لازم است که این شبکه ها بتوانند سایر اجزای تصویر را نیز به نحو مناسب بیان کنند. این دقیقا نقطه ضعف این شبکه ها است. وقتی تصویر شلوغ می شود، عملکرد این شبکه ها کاهش پیدا می کند. اگر مقالاتی که هینتون در سالهای 2017، 2018 و 2019 کار کرده را بررسی کنید، می بینید که روشهای ارایه شده، روی دیتاستی مثل imagenet نیست. بلکه اصلا شبکه ها به صورت کلی روی دادگانی بدون texture امتحان شده اند تا قدرت تعمیم پذیری روی viewpoint های متفاوت بررسی شود. در مقاله 2019 صراحتا می بینید که روش روی cifar شکست می خورد. البته با وجود ذکر این ضعف، مقالات متعددی را می توانید پیدا کنید که سعی کرده اند این مشکل را حل کنند؛ با این حال، این مشکل در شبکه های کپسول وجود دارد.


(ادامه دارد)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #capsule_network #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #شبکه_کانولوشنی #ضعف_شبکه_کپسول
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
Media is too big
VIEW IN TELEGRAM
The connection of human brain and ANNs

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#ویدیو #یادگیری_عمیق #هینتون #بزرگان
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
نقاط ضعف شبکه های کپسولی - بخش دوم

محاسبات و پارامترهای زیاد

همانطور که احتمالا می دانید، شبکه های کپسول روی تصاویر با texture پیچیده خیلی خوب نیستند. راه کار احتمالی که به ذهن می رسد این است که تعداد کپسولها را زیاد کنیم. در مقاله 2017 ارایه شده بوسیله هینتون، این کار عملی نیست؛ بدلیل اتصال دو به دوی کپسولها در لایه های پی در پی، تعداد محاسبات و پارامترها به شدت زیاد می شد و کاملا این شبکه با شکست مواجه می شد برای دادگان پیچیده. در سال 2018، مقاله هینتون تعداد محاسبات را با تکنیکی جالب کاهش داد و به همین سبب، شبکه کپسول قابلیت عمیق شدن پیدا کرد؛ با این حال، همچنان روی texture های پیچیده جوابگو نبود. از سویی، همچنان تعداد محاسبات به خاطر فرآیند routing زیاد بود و با عمیق تر کردن شبکه، هم تعداد پارامترها و هم محاسبات، زیاد می شد و از طرفی دیگر تعداد routing ها بیشتر می شدند که به شدت زمانگیر بود. در سالهای اخیر مقالات متعددی به چاپ رسیده اند تا این نقطه ضعف را حل کنند؛ برای مثال، خود هینتون سال 2019، فرآیند routing را به کل حذف کرد و از یک ایده هیجان انگیز دیگری استفاده کرد تا نیاز به routing نباشد.


(ادامه دارد)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #capsule_network #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #شبکه_کانولوشنی #ضعف_شبکه_کپسول
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
نقاط ضعف شبکه های کپسولی - بخش سوم

رابطه part-whole یا whole-part

یکی از کلیدی ترین کارهایی که شبکه های کپسول انجام می دهند، پیدا کردن رابطه بین اجزای مختلف object و خود object است. ولی دو paradigm وجود دارد. در ابتدا تصور می شد که لازم است با استفاده از اجزا، بتوانیم شکل کل جسم را تخمین بزنیم. این روش ضعفی داشت و خود هینتون به آن آگاه بود. ما اگر یک ستاره را داشته باشیم، نمی توانیم بگوییم صورت فلکی آن در چه وضعی قرار دارد؛ به عبارت ساده تر، اگر یک شکل دایره ای داشته باشیم، با چرخش آن هیچ چیزی از شکل object ای که آن دایره را در بر می گیرد، نمی فهمیم. دایره، همچنان دایره است و فرقی نکرده با چرخش. بر همین اساس، در ارایه مقاله 2019، هینتون به صراحت بیان کرد که تا قبل از آن تاریخ، هر شبکه کپسولی که وجود داشته، غلط بوده است. شبکه های کپسول باید به دنبال پیدا کردن رابطه کل به جز باشند نه عکس آن که تا آن روز باب بود. پیدا کردن رابطه whole-part خیلی از مشکلات را حل می کرد. در این زمینه که مقالات آن تازه هستند، روش های جالبی وجود دارد.


(ادامه دارد)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #capsule_network #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #شبکه_کانولوشنی #ضعف_شبکه_کپسول
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
تجربه کاری - تعامل با مدیریت شرکتها و مسئولین پروژه

اگر تجربه کار کردن در شرکتها و هلدینگهای داخلی را داشته باشید، احتمالا با این موضوع برخورد کرده اید که کسی که از جانب شرکت با شما حرف می زند، معمولا کسی است که در حرف زدن تسلط بالایی دارد و فنون مذاکره را خوب می داند. در تعامل با این گونه افراد لازم است بسیار دقت کرد تا در هنگام بستن قرارداد کاری، امتیازاتی که به ضرر شما، به عنوان برنامه نویس یا محقق، است را ندهید. معمولا شرکتها و به خصوص هلدینگها دقیقا وظیفه املاکی ها را به عهده دارند. خودشان کار خاصی انجام نمی دهند ولی درصد بالایی از قرارداد کاری را برای خود بر می دارند. در اینجا به صورت خاص می خواهیم در مورد تکنیکی که مسئولین این شرکتها در هنگام تعامل با شما استفاده می کنند، صحبت کنیم.

شاید پیش از این اصطلاحِ Neuro-Linguistic Programming یا به اختصار NLP را نشنیده باشید ولی این زمینه، بسیار وسیع است و اگر با کسی تعامل دارید که این حوزه را می شناسد، لازم است بسیار هشیارانه با وی تعامل کنید. خیلی راحت تعریف کنیم، به این صورت است که فردی که NLP می داند، خیلی راحت می تواند روی افکار دیگران تسلط پیدا کند و به راحتی به خواسته هایش برسد. به عبارتی، به راحتی می تواند mind control داشته باشد. می توانید متوجه شوید که فرد مقابلتان از تکنیک های NLP استفاده می کند یا نه. ما به چند مورد اشاره می کنیم. توجه کنید که اگر دیدید جایی کسی یکی از موارد پایین را انجام داد، لزومی ندارد که وی NLP کار باشد ولی در شرکتها خیلی شک برانگیز خواهد بود.


- معمولا در هنگام دست دادن، بعد از اینکه دو طرف دست هم را گرفتند، فردی که NLP می داند، دست دیگرش را روی دستتان قرار می دهد. این کار به این معنی است که او روی شما تسلط دارد.
- گونه دیگری از دست دادن وجود دارد و به این شکل است که فردی که NLP می داند، کمی دستش را جلو می آورد و باعث می شود شما برای رسیدن به دست وی بسیار تقلا کنید و بیشتر دستتان را بکشید.
- وقتی می خواهند خودشان یا شرکتشان را پرزنت کنند، بسیار پر حرفی می کنند و به طرز چشمگیری مبالغه می کنند.
- وقتی می خواهند کارشان پیش برود و شما مخالفید، اگر از شما سفته داشته باشند، به صورت غیر واقعی می ترسانندتان و طوری رفتار می کنند که گویا دیگر هیچ راهی ندارید. در حالی که کافی است از اتاق خارج شوید، کمی تمرکز کنید و با کلی راه حل، تصمیم درست را بگیرید؛ بنابراین، در همان لحظه ی حرافی، فریب نخورید و چیزی را امضا نکنید. سعی کنید به سرعت بهانه بیاورید و از محل صحبت فاصله بگیرید.
- سعی می کنند امتیازاتی بگیرند که به چشم نیاید در ابتدا ولی بعدا با همان امتیازات خیلی ساده روی میز می زنند و اتاق را ترک می کنند تا شما مجبور باشید به پیششان بروید.
- یکی دیگر از ترفندها، ترغیب شما برای انجام کاری است که خودتان می دانید که نمی توانید انجام دهید. در این شرایط، خیلی باید مراقب باشید که چرا فرد مقابل این میزان خوشبینی را به شما القا می کند.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#عمومی #تجربه_کاری #توصیه_کاری
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
در پستهای قبلی در مورد کرونا صحبت کرده بودیم. امسال انیمیشنی، Encanto، جایزه معروف آمریکا را برد که در خود کدگذاری های بسیاری داشت. به مرد بیمار، ویروس کرونا و اجرام آبی رنگ توجه کنید. در شکل بالا در یکی از تابلو ها همانطور که می بینید، علامت کرونا قرار دارد. در کنار کرونا اگر دقت کنید شکلهای نارنجی رنگی قرار دارند. این اشکال شبیه به طاعون هستند، به تشابه اشکل نارنجی و آبی دقت کنید.

به ساعت نگاه کنید. ساعت دقایقی تا 12 شب را نشان می دهد. این الگو را در خیلی از فیلمها و انیمیشن ها می بینید. این کد گذاری پارسال در انیمیشن soul هم وجود داشت.

شکل ویروس کرونا پیش از این در فیلم نوح و عصر یخبندان پنج قرار داده شده بود که سالها قبل از کرونا عرضه شده بودند. حدود 25 سال قبل هم در کتابها و سری بازیهای رزیدنت ایول کلمه کرونا در نام شهری که ویروس پخش شده بود، گنجانده شده بود.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#خبر #تئوری_توطئه
نقاط ضعف شبکه های کپسولی - بخش چهارم

فرآیند
routing

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


(پایان)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #capsule_network #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #شبکه_کانولوشنی #ضعف_شبکه_کپسول
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
استفاده از یادگیری عمیق در پروژه های تجاری - بخش هفتم

کدزنی قابل گسترش

معمولا در برنامه نویسی، یکی از کلیدی ترین نکاتی که لازم است رعایت شود، استفاده از الگوهای طراحی است. اگر رعایت syntax و مواردی اینچین را الفبای زبان در نظر بگیریم، الگوهای طراحی نقشِ نحوه چگونه حرف زدن را بر عهده دارند. در برنامه نویسی به صورت کلی هدف تنها نباید این باشد که به هدفمان برسیم و کار راه بیاندازیم. این موضوع را با ذکر مثال توضیح می دهیم؛ در کامیونیتی ریاضی، در مقالات و نشستها، به صورت کلی، همه به دنبال اثباتهای دقیق هستند تا طبیعت را بررسی کنند؛ این در حالی است که در علوم مهندسی به هیچ وجه اینگونه نیست. در علوم مهندسی هدف این است که کار را راه بیاندازیم و به مطلوب برسیم. نیاز به این نیست که اثبات های دقیق داشته باشیم به صورت کلی. همین که مشکل حل شود، کافیست. در برنامه نویسی کمی اوضاع متفاوت است. ما لازم است جدای از اینکه به فکر حل مساله باشیم، به قابلیت گسترش کد فکر کنیم. کدی که قابلیت گسترش نداشته باشد چندان ارزش ندارد. این نکته بسیار کلیدی است. در شرکتهایی که چندین نفر روی یک پروژه کدزنی که کد آن share شده است کار می کنند، لازم است حتما کدی بزنید که قابلیت گسترش داشته باشد وگرنه احتمالا طرد شوید.
این موضوع در شبکه های عصبی نیز صادق است. شما لازم است بدانید کجا از singelton استفاده کنید یا از سایر الگوهای طراحی. در نوشتن فریمورکهای بزرگ، اگر الگوهای طراحی به درستی رعایت نشوند، به دلیل تعداد خطوط بالا، پروژه محکوم به شکست است؛ با این حال، در پروژه های با scale کوچک هم الگوهای طراحی اهمیت دارند. اگر به درستی رعایت نشوند، جدای از عدم قابل گسترش بودن، در هنگام استفاده مجدد، code reuse، با مشکل روبه رو خواهید شد. به صورت کلی، کد شما لازم است قابلیت plug-and-play داشته باشد.


(ادامه دارد)
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #کدزنی #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #پروژه_تجاری
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
استفاده از یادگیری عمیق در پروژه های تجاری - بخش هشتم

کدزنی به روش TDD


اکثر ما به عنوان برنامه نویس، به این شکل بوده که از توابع کوچک شروع کرده ایم و ساختارهای پیچیده تر را به تدریج یاد گرفته ایم؛ به عنوان مثال، به همه گفته اند که یک تابع بنویس که دو عدد را باهم جمع کند و حاصل را به عنوان خروجی بدهد؛ دانشجو هم احتمالا پس از مدتها تفکر عمیق، اندیشیدن و عرق ریختن، این کار بسیار پیچیده و چالش برانگیز را انجام داده است. این روش که به ما مساله ای داده شود و بعد خط به خط کد بزنیم تا به هدف برسیم به صورت پیش فرض در اکثر برنامه نویسان وجود دارد؛ با این حال، این روش کدزنی کاملا اشتباه است و بدلیل نحوه یادگرفتن برنامه نویسی، به صورت عمیق در همه ما نهادینه شده است.
شاید برایتان سوال پیش آمده باشد که چطور بازیهایی که صدها هزار خط کد دارند، مدیریت می شوند؟ اگر سهوا خطی از کد بعدها اشتباها پاک شود، از کجا تیم توسعه متوجه می شود؟ git را فراموش کنید. خطاهای سهوی به احتمال زیاد بین کامیت ها گم می شود.
در برنامه نویسی، اصطلاحی وجود دارد به نام test driven development. ایده کلی به این شکل است که اگر مساله ای دارید، نیایید و خط به خط، چیزی که از شما خواسته شده را بنویسید و بعد اجرا کنید که ببینید آیا درست کار می کند یا نه. این کار دو اشکال اساسی دارد. اول اینکه scalable نیست؛ زیرا اگر کد برنامه چند هزار خط باشد، این کار بسیار طاقت فرسا می شود. بدتر از این مورد، ممکن است شما کدی را بنویسید و کامل تست کنید و همه چیز مناسب باشد و از آن در جاهای مختلف استفاده کنید و همه چیز خوب باشد ولی بعد از مدتی به این نتیجه برسید که لازم است جاهایی با توجه به نیاز روز، تغییر کند. در این شرایط لازم است دستی تمامی جاهایی که قبلا کدتان استفاده شده را بررسی و دیباگ کنید.
به صورت خلاصه اشاره کنیم، در توسعه TDD، به این شکل باید کار کنید که اول تست بنویسید که در تست ها تمامی نیازهای مساله گنجانده شده باشد. بعد شروع به پیاده سازی توابع و کلاسهای اصلی کنید که از آنها قرار است استفاده کنید؛ با این کار، در ابتدا که توابع و کلاسها پیاده نشده اند، به تعداد زیادی خطا دارید. با خواندن خطاها، کد لازم را پیاده سازی می کنید و خطا از بین می رود. یعنی به صورت واقعی به نیازها جواب می دهید و بعدها خیلی راحت همه تست ها قابل استفاده مجدد هستند. در این شرایط تستها همواره هستند و شما اگر نیاز باشد جایی را تغییر دهید، تستها به شما می گویند آیا کدهای قبلی خطا پیدا کرده اند یا نه. از سویی دیگر، این نوع کدزنی در بروزرسانی های کتابخانه های مورد استفاده بسیار مناسب است. اگر کتابخانه ای را بروزرسانی کردید و مشکلی برای کدتان به وجود آمد، با اجرای تست، بلافاصله متوجه می شوید.

شاید با خود فکر کنید که این نوع کد زنی به یادگیری عمیق چه ارتباطی دارد؟ جدای از چک کردن ابعاد تنسورها که بدیهی ترین نوع استفاده از این نوع روش است، در یادگیری عمیق موارد متنوعی هستند که لازم است با تست بررسی شوند؛ برای مثال، توزیع داده های ورودی، توزیع کلاسها یا بررسی data cleaning.

(ادامه دارد)
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #کدزنی #یادگیری_عمیق #آموزش_شبکه_عصبی #مثالهای_کاربردی #پروژه_تجاری #TDD
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
تجربه کاری - توصیه برای نوشتن CV - بخش اول

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

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

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

(ادامه دارد)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#عمومی #تجربه_کاری #توصیه_کاری #نگارش_رزومه
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
یکی از شبکه هایی که در ایران کمتر شناخته شده است و معمولا در سرفصلهای تدریس نمی بینید، شبکه های spiking است که قبلا به آن اشاراتی داشته ایم. اخیرا مقاله ای چاپ شده که از این شبکه ها برای شبکه های کپسولی استفاده کند. پیش از این ذکر کرده بودیم که شبکه های کپسولی چه نقاط ضعفی دارند. در این مقاله سعی شده روی یکی از آن نقاط ضعف کار شود. بدلیل ناشناخته بودن شبکه ها spiking، این زمینه، یکی از زمینه هایی است که برای پایان نامه توصیه می کنیم.

Spiking CapsNet: A Spiking Neural Network With A Biologically Plausible Routing Rule Between Capsules

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#معرفی #معرفی_مقاله #یادگیری_عمیق #spiking #نکته_آموزشی #capsule_network
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
تجربه کاری - توصیه برای نوشتن CV - بخش دوم

- یکی از مواردی که بسیار اهمیت دارد، صفحه گیتهاب است. اولین نکته ای که لازم است توجه کنید، در گیتهاب، لاگ برای کامیتهای private دیده نمی شود و سایر افراد نمی توانند ببیند که در چه روزهایی فعالیت داشته اید، برخلاف کامیت های public؛ بنابراین سعی کنید همواره پروژه های public داشته باشید و سعی کنید که به صورت منظم کامیت داشته باشید و روی این پروژه ها کار کنید. صفحه گیتهاب فعال خیلی خیلی اهمیت دارد؛ همچنین مشارکت داشتن در پروژه های متن باز و بررسی و اصلاح کد مقالات یا نظر دادن مناسب، می تواند اثبات کند که فرد کارایی هستید.

- یکی دیگر از موارد، موردِ بحث برانگیزِ صفحه linkedin است. شاید مورد مخالفت تعدادی باشد ولی به صورت کلی، ما داشتن صفحه linkedin را توصیه نمی کنیم. به ذکر دو نکته بسنده می کنیم.

* اول اینکه داشتن این صفحه یک مزیتی که می تواند داشته باشد این است که بررسی کنیم افراد در زمینه ها مختلف چقدر بوسیله سایرین مورد تایید قرار گرفته اند. با این حال، خیلی ساده اگر می بینید فردی در زمینه ای بیشتر از 500 بار، برای مثال، مورد تایید قرار گرفته، این موضوع بسیار شک برانگیز است. اگر در شرکتهای ایرانی کار کرده باشید، احتمالا یک پنجاهم این عدد را هم در حوزه خودتان از نزدیک ندیده باشید. معمولا در شرکتها برای هر قسمت یک تیم چند نفره کار می کند و اعضای شرکتهای رقیب کمتر سایرین را تایید می کنند. این موضوع زمانی خودش را خیلی واضح نشان می دهد که فرد سنش خیلی زیاد نباشد که افراد متعددی را بشناسد. معمولا این تاییدیه ها به صورت متقابل است. شما یکی را تایید می کنید و فرد مقابل برای جبران، شما را در تعدادی از زمینه ها که فعالیت دارید تایید می کند. این تاییدیه چندان ارزش ندارد.

* مورد بعدی که بسیار مهم است، social engineering است. با قرار دادن رزومه، براحتی و بدون هیچ خرجی تمامی اطلاعاتتان را فاش کرده اید. بخواهید یا نه، در سطح وب افرادی هستند که شغل و راه کسب درآمدشان از راه هک است و به هیچ وجه وجدانی در کار نیست. اصولا رزومه یک مساله کاملا خصوصی است و نباید هر فردی بداند که شما چه کارهایی انجام می دهید. وقتی به راحتی رزومه تان را در اختیار دیگران قرار می دهید، باید حواستان به عواقبش هم باشد. احتمالا به این امید صفحه linkedin می سازید که از جاهای مختلف پیشنهاد کاری مناسب دریافت کنید. سوالی را مطرح می کنیم. تا به امروز چند پیشنهاد را دریافت کرده اید؟ اگر دریافت کرده اید، مشغول به کار شده اید؟

(ادامه دارد)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#عمومی #تجربه_کاری #توصیه_کاری #نگارش_رزومه
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
لایه تمام اتصال از منظری دیگر

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

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

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

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#نکته_آموزشی #جبر_خطی #یادگیری_عمیق #آموزش_شبکه_عصبی
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
تجربه کاری - توصیه برای نوشتن CV - بخش سوم

- معمولا در هنگام نگارش رزومه هدف خاصی را دنبال می کنیم؛ برای مثال، ممکن است به دنبال کار یا رشته تحصیلی خاصی باشیم. نمی توان قاعده کلی ارایه کرد ولی به صورت کلی سعی کنید که پخش و پلا رزومه ننویسید. لازم است در نوشتن رزومه به صورت متمرکز به هدفتان فکر کنید؛ برای مثال اگر هدفتان بدست آوردن شغلی در حوزه برنامه نویسی است، لازم است در همین حوزه، کارهایی که انجام داده اید را قرار دهید. باید بدانید که فرد مصاحبه گر توقع ندارد شما همه چیز را بدانید بلکه لازم است در زمینه ای که قرار است مشغول شوید مطالب مناسب و مورد نیاز را بدانید؛ پس اگر در دورانی از زندگی خیلی مثلا با بردهای الکترونیکی کار کرده اید ولی در حال حاضر اصلا به کارتان ارتباطی ندارد، لازم نیست خیلی رویش مانور دهید و اشاره ای کوتاه کفایت می کند. با اینکار انسجام رزومه حفظ می شود.

- همواره دقت کنید که در رزومه نوشتن، هر قسمتی می تواند مورد سوال قرار گیرد. نهایت صداقت را داشته باشید تا تناقض به وجود نیاید. از سویی، مطلبی را ننویسید که پاسخش را نمی دانید، نمی توانید یا نمی خواهید به آن اشاره کنید.

(پایان)
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
#عمومی #تجربه_کاری #توصیه_کاری #نگارش_رزومه
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
🌳 پشتیبانی | 🌺 کانال | 🌴 سایت
2025/06/29 19:10:00
Back to Top
HTML Embed Code: