💡آیا یادگیری عمیق برای دادههای جدولی (Tabular Data) همیشه بهترین انتخاب است؟
✍
وقتی از Deep Learning صحبت میکنیم، معمولاً ذهنمان به سمت تصویر، ویدئو، صدا یا مدلهای زبانی بزرگ میرود. اما بخش قابلتوجهی از دادههای واقعی دنیا شکل بسیار سادهتری دارند: دادههای جدولی یا همان Tabular Data. دادههای جدولی بخش بزرگی از دادههای واقعی دنیا را تشکیل میدهند. اما آیا شبکههای عصبی عمیق (deep neural networks) که در تصویر و زبان عالی عمل میکنند، برای داده جدولی هم بهترین گزینهاند؟ یک مقاله مروری این موضوع رو بررسی کرده است که در این پست به این موضوع میپردازیم.
📺 مشاهده ویدیو 👇
https://youtu.be/k72AIR1VjNI?is=cpk2he8fyLe84Urfp
⭕️ مطالعه در سایت👇
https://onlinebme.com/deep-learning-or-xgboost-in-tabular-data/
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
📚 به نظرم اگر قرار است به صورت تخصصی وارد حوزه deep Learning شویم، درک مبانی Pattern Recognition میتواند پایه بسیار خوبی باشد؛ مخصوصاً وقتی هدف فقط استفاده از مدلها نیست و میخواهیم بفهمیم پشت الگوریتمها چه میگذرد. خوندن این مفاهیم، یادگیری مباحث مدرن مثل Deep Learning را هم راحتتر میکند.
در ادامه دو کتابی که خودم خواندهام و برای شروع و ساختن بینش و ذهنیت پایه مناسب هست رو معرفی میکنم.
📚 عنوان کتاب اول: Introduction to Pattern Recognition: A MATLAB Approach
نویسندگان: Sergios Theodoridis, Aggelos Pikrakis, Konstantinos Koutroumbas, Dionisis Cavouras
این کتاب یک راهنمای عملی و مکمل برای کتاب معروف Pattern Recognition است و تمرکز اصلیاش روی پیادهسازی الگوریتمها با MATLAB است.
💡 ویژگیهای کتاب:
- شامل کدهای MATLAB اکثر الگوریتمهای مهم
- مثالهای حلشده با دادههای واقعی
- مناسب برای دانشجویان و مهندسانی که میخواهند همزمان تئوری و پیادهسازی یاد بگیرند
- رویکرد آموزشی و قدم به قدم
📚 عنوان کتاب دوم: Pattern Classification (Second Edition)
نویسندگان: Richard O. Duda, Peter E. Hart, David G. Stork
یکی از کلاسیکترین و تأثیرگذارترین کتابهای تاریخ شناسایی الگو که نسخه دوم آن با مباحث شبکههای عصبی و یادگیری ماشین به روزرسانی شده است.
💡ویژگیهای کتاب:
- پوشش عمیق و سیستماتیک مفاهیم بنیادین
- توضیح واضح روشهای کلاسیک و جدید
- مثالهای کارشده و مقایسههای دقیق بین روشها
- پایهای بسیار قوی برای درک تئوری تصمیم و شناسایی الگوی آماری
🔲 اصول برنامهنویسی در متلب (رایگان)
▪️مدت دوره: 11 ساعت
🔘 Link
〰〰〰 برنامهنویسی پایتون 〰〰〰
⚪️ فصل 1: اصول برنامهنویسی پایتون
◽️مدت دوره: 32 ساعت
🔘 Link
⚪️ فصل 2-3: کتابخانه NumPy و Matplotlib
◽️مدت دوره: 18 ساعت
🔘 Link
⚪️ فصل 4: برنامه نویسی شیء گرا در پایتون
◽️مدت دوره: 14 ساعت 30 دقیقه
🔘 Link
〰〰 شناسایی الگو و یادگیری ماشین 〰〰
⚠️ 140 ساعت ویدیوی آموزشی
🔹آموزش تئوری و مباحث ریاضیاتی طبق مراجع معتبر
🔹پیادهسازی مرحله به مرحله الگوریتمها
🔹انجام پروژه های عملی و تخصصی
🔹پیاده سازی گام به گام مقالات تخصصی
⚪️فصل 1 تا 4: از بیزین تا SVM
◽️مدت دوره: 75 ساعت
🔘 Link
⚪️فصل 5: یادگیری جمعی
◽️مدت دوره: 18 ساعت
🔘 Link
⚪️فصل 6: الگوریتمهای کاهش بعد
◽️مدت دوره: 11 ساعت
🔘 Link
⚪️فصل 7: الگوریتمهای انتخاب ویژگی
◽️مدت دوره: 16 ساعت
🔘 Link
⚪️فصل 8: الگوریتمهای خوشهبندی
◽️مدت دوره: 13 ساعت
🔘 Link
〰〰〰〰 شبکههای عصبی 〰〰〰〰
⚪️ پیاده سازی گام به گام شبکه های عصبی
◽️مدت دوره: 25 ساعت
🔘 Link
⚪️ دوره پروژه محور شبکه عصبی کانولوشنی (CNN)
◽️مدت دوره: 11 ساعت
🔘 Link
⚪️ دوره پروژه محور شبکه عصبی بازگشتی (RNN)
◽️مدت دوره: 13 ساعت
🔘 Link
⚪️دوره پروژه محور کاربرد شبکههای عمیق در بینایی ماشین
◽️مدت دوره: 16 ساعت
🔘 Link
⚪️ دوره پیادهسازی شبکههای عصبی با PyTorch
◽️مدت دوره: 70 ساعت
🔘 Link
〰〰〰 پردازش سیگنال مغزی 〰〰〰
⚪️ دوره جامع پردازش سیگنال مغزی(EEG)
◽️مدت دوره: 50 ساعت
🔘 Link
⚪️ واسط مغز-کامپیوتر مبتنی بر P300
◽️مدت دوره: 28 ساعت
🔘 Link
⚪️ واسط مغز-کامپیوتر مبتنی بر SSVEP
◽️ مدت دوره: 33 ساعت
🔘 Link
⚪️ واسط مغز-کامپیوتر مبتنی بر تصور حرکتی
◽️مدت دوره: 21 ساعت
🔘 Link
⚪️ پیادهسازی مقاله CSSP (BCI مبتنی بر MI)
◽️مدت دوره: 7 ساعت و 30 دقیقه
🔘 Link
⚪️پیادهسازی مقاله RCSP (BCI مبتنی بر MI)
◽️مدت دوره: 5 ساعت
🔘 Link
⚪️دوره تبدیل فوریه زمان کوتاه در پردازش سیگنال مغزی
◽️مدت دوره: 8 ساعت
🔘 Link
⚪️دوره پردازش سیگنال مغزی با کتابخانه MNE پایتون
◽️مدت دوره: 33 ساعت
🔘 Link
〰〰〰〰 دوره جامع پردازش تصویر 〰〰〰〰
⚪️فصل 1: آستانه گذاری تصویر، تبدیلات شدت روشنایی و هندسی
◽️مدت دوره: 30 ساعت
🔘 Link
⚪️فصل 2: پردازش هیستوگرام تصویر
◽️مدت دوره: 6 ساعت و 30 دقیقه
🔘 Link
⚪️فصل 3: فیلترهای مکانی
◽️مدت دوره: 15 ساعت و 30 دقیقه
🔘 Link
⚪️فصل 4: عملیات مورفورلوژی
◽️مدت دوره: 6 ساعت
🔘 Link
〰〰〰〰〰 پردازش سیگنال قلبی 〰〰〰〰
⚪️ دوره پردازش سیگنال ECG
◽️مدت زمان دوره: 37 ساعت و 45 دقیقه
🔘 Link
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
🎯 چارچوب انجام یک پروژه تشخیص آریتمی قلبی با سیگنال ECG؛ از معرفی داده تا روال ارزیابی مدل
متأسفانه در بسیاری از مقالات حوزه تشخیص آریتمی قلبی با ECG، آنطور که باید به نحوه طراحی آزمایشها و ارزیابی مدل توجه نشده است و تعداد زیادی مقاله چاپ شده که اکثرا به روش اشتباه روش خودشون رو چاپ کردند.
یک مطالعه مروری در 2023 این روش هارو بررسی کرده که از این 357 مقاله، فقط 38 مقاله به شکل استاندارد روش خودشون رو ارزیابی کردند!
اکثرا هم یک مدل با Accuracy بسیار بالا گزارش میشود، اما وقتی دقیقتر بررسی میکنیم، متوجه میشویم که نحوه تقسیم دادهها یا روش ارزیابی، قابلیت واقعی مدل برای تعمیم به بیماران جدید را نشان نمیدهد.
مشکل اینجاست که اگر ما هم صرفاً همان چارچوبهای رایج اما نادرست را تکرار کنیم، دیر یا زود با این مشکل جدی مواجه خواهیم شد؛ چه هدفمان چاپ یک مقاله علمی معتبر باشد و چه بخواهیم روزی از مدل در یک کاربرد بالینی واقعی استفاده کنیم.
☑️ به نظر من در پروژههای پزشکی، قبل از اینکه بپرسیم:«چه مدلی بسازیم که Accuracy بالاتری داشته باشد؟» باید بپرسیم:«چطور آزمایش را طراحی کنیم که عددی که به دست میآوریم واقعاً قابل اعتماد باشد؟»
🎥 در ویدیوی جدید، دقیقاً درباره همین موضوع صحبت کردهام و چارچوبی را که برای طراحی آزمایشها و ارزیابی روشهای تشخیص آریتمی قلبی از روی ECG دنبال کردم، توضیح دادهام؛ از Data Splitting و Validation گرفته تا ارزیابی Inter-subject، Cross-database و Cross-validation و چالشهایی که در مسیر وجود دارند.
اگر روی پایاننامه، مقاله یا پروژهای در زمینه ECG، تشخیص آریتمی، Machine Learning یا Deep Learning در پزشکی کار میکنید، فکر میکنم این ویدیو قبل از شروع آزمایشهای نهایی میتواند برایتان مفید باشد.
🧠 آیا میتوان شبکهای ساخت که کمی شبیه مغز یاد بگیرد؟
▪️در شبکههای عصبی معمولی، یک نورون میتواند از طریق وزنهای مختلف هم اثر مثبت و هم اثر منفی روی نورونهای بعدی بگذارد.
▫️اما در مغز، وضعیت متفاوت است. نورونها عمدتاً تحریکی (Excitatory) یا مهاری (Inhibitory) هستند؛ یعنی ماهیت اثر خروجی آنها ثابت میماند. این ویژگی را با نام Dale’s principle میشناسیم.
☑️ حالا یک سؤال جالب مطرح میشود:
اگر شبکه عصبی را مجبور کنیم این محدودیت زیستی را رعایت کند، آیا هنوز میتواند یاد بگیرد؟
📑مقالهی جدید Diffusing Blame دقیقاً همین سؤال را بررسی میکند.
پژوهشگران شبکه را به دو جریان جداگانهی تحریکی و مهاری تقسیم کردند و وزنهای قابل یادگیری را غیرمنفی نگه داشتند.
🔺اما چالش مهم دیگری باقی میماند: Backpropagation برای محاسبهی سهم هر لایه در خطا، به اطلاعات وزنهای مسیر forward در مسیر backward وابسته است؛ مسئلهای که به Weight Transport Problem معروف است و سازوکار مشخصی برای آن در مغز نمیشناسیم.
💡راهحل این مقاله، استفاده از Error Diffusion است.
بهجای اینکه خطا مثل Backpropagation لایه به لایه به عقب برگردد، یک سیگنال خطای خروجی مستقیماً به بخشهای مختلف شبکه میرسد. نویسندگان با معرفی Modulo Error Routing این ایده را برای مسائل چندکلاسه نیز گسترش دادهاند.
و نتیجه؟
✅ این شبکه واقعاً توانست یاد بگیرد:
MNIST → 96.7٪
CIFAR-10 → 61.7٪
در یادگیری تقویتی نیز Error Diffusion را با PPO ترکیب کردند و روی چند محیط آزمایش کردند. در بعضی موارد عملکرد رقابتی بود، اما در مسائل دشوارتر همچنان فاصله و ناپایداری نسبت به روشهای مبتنی بر Backpropagation دیده میشود.
💡اما شاید مهمترین پیام مقاله همین باشد:
این پژوهش نمیگوید Backpropagation را کنار بگذاریم.
بلکه نشان میدهد میتوان محدودیتهایی الهامگرفته از ساختار واقعی مغز را وارد شبکه کرد و بدون Weight Transport و با رعایت Dale’s principle، همچنان یک سیستم یادگیرنده ساخت.
و این ما را به یک سؤال عمیقتر میرساند:
اگر مغز از Backpropagation کلاسیک استفاده نمیکند، پس چگونه مسئلهی Credit Assignment را حل میکند؟
این مقاله پاسخ نهایی را پیدا نکرده؛
اما یک قدم جالب در مسیر پیدا کردن آن است.
📄 مقاله:
Diffusing Blame: Task-Dependent Credit Assignment in Biologically Plausible Dual-Stream Networks
مطالعه مقاله در arXiv