Onlinebme
✅ فرق بین convolution و cross-correlation ✍اگه پردازش تصویر یا شبکه های عمیق کار کرده باشید حتما دو عبارت کانولوشن (convolution) و میان-همبستگی (cross-correlation) را شنیده اید. هر دو عملیات از لحاظ ریاضیاتی خیلی شبیه بهم هستند. اگه بخوایم یه تعریف کلی…
This media is not supported in your browser
VIEW IN TELEGRAM
👍3🤩3
Onlinebme
✅ همه چیز درباره PyCharm 💡پایچارم یک پلتفرم ترکیبی است که توسط JetBrains به عنوان یک IDE پایتون توسعه داده شده است. یک محیط توسعه یکپارچه (IDE) است که برای برنامه نویسی در پایتون استفاده می شود. پایچارم یک پلتفرم بسیار خوب برای کارهای تحقیقاتی در زمینه یادگیری…
✅نحوه ایجاد virtual environment در VsCode
1⃣ مرحله اول: اطمینان از نصب بودن پایتون در سیستم
برای اینکار در ترمینال vscode یا CMD سیستم دستور زیر رو اجرا کنید.
python --version
اگر پایتون نصب باشه، نسخه آن نمایش داده میشه، در غیراینصورت خطای میده که باید به سایت پایتون بروید و پایتون رو نصب کنید.
2⃣ مرحله دوم: ایجاد یک فولدر در مسیر دلخواه برای ساخت venv
یک مسیری انتخاب کنید و اونجا یک فولدری خالی ایجاد کنید.
3⃣ مرحله سوم: ساخت محیط مجازی در مسیر مشخص شده.
ابتدا از منوی file، گزینه open folder برید به مسیری که فولدر خالی ایجاد کردید، سپس select folder رو انتخاب کنید.
سپس، از طریق منوی view موارد زیر رو انجام بدید:
View--command platee-- create environment-- venv environment
4⃣ مرحله چهارم: انتخاب مفسر پایتون و نوشتن اولین اسکریپت
کدی نوشته و بعد از ذخیره اجرا کنید، موقع اجرا مفسر پیشنهادی رو انتخاب کنید.
حال در مسیر مورد نظر شما محیط مجازی ساخته شده است و میتونید از vscode برای برنامه نویسی پایتون استفاده کنید.
5⃣ مرحله نهایی: نصب کتابخانههای مورد نیاز (اختیاری ولی ضروری برای پروژهها)
💡برای اینکه بتونید به ابزارهای بیشتری دسترسی داشته باشید، باید کتابخانه هایی که لازم هست رو نصب کنید.
میتونید از طریق ترمینال vscode، یا CMD سیستم و یا در همان کد jupyter با دستور pip install libararyName کتابخانه مدنظر رو نصب کنید.
☑️ اگه کتابخانه ای نصب نمیشه، موارد زیر رو به ترتیب بررسی کنید:
🔷دستور نصب درست نوشته شده ؟
(از وبسایت اصلی کتابخانه میتونید بررسی کنید، برخی دستورات متفاوتی دارند)
🔷اینترنت اختلال داره یا نه؟
🔷فیلترشکن روشن هست یا خاموش؟ (دو حالت رو هم چک کنید، گاها وجود فیلترشکن باعث نصب یا عدم نصب میشه).
پ.ن: اولین ویدیو به این سبک تند هست که خیلی وقت دوستان گرفته نشه. اگه نظری داشتید خوشحال میشم مطرح کنید تا ویدیوهای بعدی لحاظ کنم.
🎦📺https://youtu.be/YsSLeYVo2D4?si=r2ORoA8x2HpOikqj
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@Onlinebme
1⃣ مرحله اول: اطمینان از نصب بودن پایتون در سیستم
برای اینکار در ترمینال vscode یا CMD سیستم دستور زیر رو اجرا کنید.
python --version
اگر پایتون نصب باشه، نسخه آن نمایش داده میشه، در غیراینصورت خطای میده که باید به سایت پایتون بروید و پایتون رو نصب کنید.
2⃣ مرحله دوم: ایجاد یک فولدر در مسیر دلخواه برای ساخت venv
یک مسیری انتخاب کنید و اونجا یک فولدری خالی ایجاد کنید.
3⃣ مرحله سوم: ساخت محیط مجازی در مسیر مشخص شده.
ابتدا از منوی file، گزینه open folder برید به مسیری که فولدر خالی ایجاد کردید، سپس select folder رو انتخاب کنید.
سپس، از طریق منوی view موارد زیر رو انجام بدید:
View--command platee-- create environment-- venv environment
4⃣ مرحله چهارم: انتخاب مفسر پایتون و نوشتن اولین اسکریپت
کدی نوشته و بعد از ذخیره اجرا کنید، موقع اجرا مفسر پیشنهادی رو انتخاب کنید.
حال در مسیر مورد نظر شما محیط مجازی ساخته شده است و میتونید از vscode برای برنامه نویسی پایتون استفاده کنید.
5⃣ مرحله نهایی: نصب کتابخانههای مورد نیاز (اختیاری ولی ضروری برای پروژهها)
💡برای اینکه بتونید به ابزارهای بیشتری دسترسی داشته باشید، باید کتابخانه هایی که لازم هست رو نصب کنید.
میتونید از طریق ترمینال vscode، یا CMD سیستم و یا در همان کد jupyter با دستور pip install libararyName کتابخانه مدنظر رو نصب کنید.
☑️ اگه کتابخانه ای نصب نمیشه، موارد زیر رو به ترتیب بررسی کنید:
🔷دستور نصب درست نوشته شده ؟
(از وبسایت اصلی کتابخانه میتونید بررسی کنید، برخی دستورات متفاوتی دارند)
🔷اینترنت اختلال داره یا نه؟
🔷فیلترشکن روشن هست یا خاموش؟ (دو حالت رو هم چک کنید، گاها وجود فیلترشکن باعث نصب یا عدم نصب میشه).
پ.ن: اولین ویدیو به این سبک تند هست که خیلی وقت دوستان گرفته نشه. اگه نظری داشتید خوشحال میشم مطرح کنید تا ویدیوهای بعدی لحاظ کنم.
🎦📺https://youtu.be/YsSLeYVo2D4?si=r2ORoA8x2HpOikqj
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@Onlinebme
YouTube
نحوه ساخت environment در VsCode
در این ویدیوی کوتاه نحوه ساخت environment در VsCode رو توضیح داده میشه. از ساخت محیط مجازی تا نحوه نصب و استفاده از کتابخونه ها در این ویدیو توضیح داده میشه.
#vscode #environment #venv #machinelearning #deeplearning #signalprocessing
#vscode #environment #venv #machinelearning #deeplearning #signalprocessing
👍6👏1
Onlinebme
📄مقاله تازهای با عنوان Diffusing Blame: Task-Dependent Credit Assignment in Biologically Plausible Dual-Stream Networks منتشر شده است که مستقیماً به قلب مسئلهی Credit Assignment و محدودیتهای بیولوژیکی شبکههای عصبی میزند. نکته اصلی مقاله رو اگه بخوایم…
🧠 آیا میتوان شبکهای ساخت که کمی شبیه مغز یاد بگیرد؟
▪️در شبکههای عصبی معمولی، یک نورون میتواند از طریق وزنهای مختلف هم اثر مثبت و هم اثر منفی روی نورونهای بعدی بگذارد.
▫️اما در مغز، وضعیت متفاوت است. نورونها عمدتاً تحریکی (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
Piko 🐾
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
#Backpropagation
#Neuroscience
#DeepLearning #BiologicallyPlausibleAI
▪️در شبکههای عصبی معمولی، یک نورون میتواند از طریق وزنهای مختلف هم اثر مثبت و هم اثر منفی روی نورونهای بعدی بگذارد.
▫️اما در مغز، وضعیت متفاوت است. نورونها عمدتاً تحریکی (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
Piko 🐾
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
#Backpropagation
#Neuroscience
#DeepLearning #BiologicallyPlausibleAI
arXiv.org
Diffusing Blame: Task-Dependent Credit Assignment in Biologically...
Biological neural circuits obey Dale's principle: each neuron's synapses are uniformly excitatory or inhibitory. Artificial networks that respect this constraint must coordinate separate...
❤11👍1
Onlinebme
انتخاب اول شما برای داده جدولی؟
💡آیا یادگیری عمیق برای دادههای جدولی (Tabular Data) همیشه بهترین انتخاب است؟
✍
https://youtu.be/k72AIR1VjNI?is=cpk2he8fyLe84Urfp
⭕️ مطالعه در سایت👇
https://onlinebme.com/deep-learning-or-xgboost-in-tabular-data/
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
✍
وقتی از Deep Learning صحبت میکنیم، معمولاً ذهنمان به سمت تصویر، ویدئو، صدا یا مدلهای زبانی بزرگ میرود. اما بخش قابلتوجهی از دادههای واقعی دنیا شکل بسیار سادهتری دارند: دادههای جدولی یا همان Tabular Data. دادههای جدولی بخش بزرگی از دادههای واقعی دنیا را تشکیل میدهند. اما آیا شبکههای عصبی عمیق (deep neural networks) که در تصویر و زبان عالی عمل میکنند، برای داده جدولی هم بهترین گزینهاند؟ یک مقاله مروری این موضوع رو بررسی کرده است که در این پست به این موضوع میپردازیم.📺 مشاهده ویدیو 👇
https://youtu.be/k72AIR1VjNI?is=cpk2he8fyLe84Urfp
⭕️ مطالعه در سایت👇
https://onlinebme.com/deep-learning-or-xgboost-in-tabular-data/
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
YouTube
1-آیا یادگیری عمیق (Deep Learning) برای دادههای جدولی (Tabular Data) همیشه بهترین انتخاب است؟
بخش اول: بررسی مختصر مقاله مروری شبکه های عصبی عمیق در داده جدولی
دادههای جدولی بخش بزرگی از دادههای واقعی دنیا را تشکیل میدهند. اما آیا شبکههای عصبی عمیق (deep neural networks) که در تصویر و زبان عالی عمل میکنند، برای داده جدولی هم بهترین گزینهاند؟…
دادههای جدولی بخش بزرگی از دادههای واقعی دنیا را تشکیل میدهند. اما آیا شبکههای عصبی عمیق (deep neural networks) که در تصویر و زبان عالی عمل میکنند، برای داده جدولی هم بهترین گزینهاند؟…
👍6❤2
Onlinebme
روش PC-ALM؛ یک رویکرد Local Learning بهعنوان جایگزینی برای Backpropagation @Onlinebme
🧠 آیا میشود شبکههای بسیار عمیق را بدون Backpropagation آموزش داد؟
💡 یک مقاله جالب با عنوان Augmented Lagrangian Predictive Coding (PC-ALM) به سراغ همین سؤال رفته است.
✅ روش PC-ALM؛ یک رویکرد Local Learning بهعنوان جایگزینی برای Backpropagation
در Predictive Coding خبری از backward pass سراسری Backpropagation نیست؛ هر لایه با استفاده از prediction errorهای محلی و ارتباط با لایههای مجاور بهروزرسانی میشود.
اما همین local بودن، در شبکههای عمیق یک چالش ایجاد میکند: سیگنال credit که از خروجی وارد میشود، هنگام عبور از لایههای متوالی میتواند بهتدریج ضعیف شود و در نتیجه، آموزش شبکههای عمیق و باریک برای Predictive Coding معمولی دشوارتر میشود.
💡 ایدهی PC-ALM این است که با اضافه کردن Lagrange Multipliers (Dual Neurons) به این دینامیک محلی، این مشکل را برطرف کند. در نتیجه، هر لایه با یک سازوکار محلی و شبیه به PI feedback controller در فرآیند یادگیری مشارکت میکند.
نکته جالب اینکه نویسندگان گزارش کردهاند این روش میتواند شبکههایی تا ۱۰۰۰ لایه را بدون Backpropagation آموزش دهد؛ بهخصوص در شبکههای عمیق و باریک که Predictive Coding معمولی با مشکل مواجه میشود.
و اتفاقاً این نکته، هستهی جذاب مقاله است:
روش PC-ALM نمیخواهد Backpropagation را بهتر کند؛ بلکه میخواهد نشان دهد آیا میتوان credit assignment شبیه BP را با محاسبات کاملاً محلی انجام داد یا نه.
در حالت خطی، نویسندگان نشان میدهند که متغیرهای دوگان میتوانند در حالت همگرایی، credit signalهای Backpropagation را بازسازی کنند.
💻 نکته جذاب دیگر اینکه کد رسمی مقاله هم روی GitHub منتشر شده و میتوان روش را از نزدیک بررسی و اجرا کرد.
📄 مقاله:
https://arxiv.org/abs/2605.31022
💻 کد:
https://github.com/SakanaAI/pc-alm
Piko 🐾
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
#Backpropagation
#Neuroscience
#DeepLearning
💡 یک مقاله جالب با عنوان Augmented Lagrangian Predictive Coding (PC-ALM) به سراغ همین سؤال رفته است.
✅ روش PC-ALM؛ یک رویکرد Local Learning بهعنوان جایگزینی برای Backpropagation
در Predictive Coding خبری از backward pass سراسری Backpropagation نیست؛ هر لایه با استفاده از prediction errorهای محلی و ارتباط با لایههای مجاور بهروزرسانی میشود.
اما همین local بودن، در شبکههای عمیق یک چالش ایجاد میکند: سیگنال credit که از خروجی وارد میشود، هنگام عبور از لایههای متوالی میتواند بهتدریج ضعیف شود و در نتیجه، آموزش شبکههای عمیق و باریک برای Predictive Coding معمولی دشوارتر میشود.
💡 ایدهی PC-ALM این است که با اضافه کردن Lagrange Multipliers (Dual Neurons) به این دینامیک محلی، این مشکل را برطرف کند. در نتیجه، هر لایه با یک سازوکار محلی و شبیه به PI feedback controller در فرآیند یادگیری مشارکت میکند.
نکته جالب اینکه نویسندگان گزارش کردهاند این روش میتواند شبکههایی تا ۱۰۰۰ لایه را بدون Backpropagation آموزش دهد؛ بهخصوص در شبکههای عمیق و باریک که Predictive Coding معمولی با مشکل مواجه میشود.
و اتفاقاً این نکته، هستهی جذاب مقاله است:
روش PC-ALM نمیخواهد Backpropagation را بهتر کند؛ بلکه میخواهد نشان دهد آیا میتوان credit assignment شبیه BP را با محاسبات کاملاً محلی انجام داد یا نه.
در حالت خطی، نویسندگان نشان میدهند که متغیرهای دوگان میتوانند در حالت همگرایی، credit signalهای Backpropagation را بازسازی کنند.
💻 نکته جذاب دیگر اینکه کد رسمی مقاله هم روی GitHub منتشر شده و میتوان روش را از نزدیک بررسی و اجرا کرد.
📄 مقاله:
https://arxiv.org/abs/2605.31022
💻 کد:
https://github.com/SakanaAI/pc-alm
Piko 🐾
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@onlinebme
#Backpropagation
#Neuroscience
#DeepLearning
arXiv.org
Augmented Lagrangian Predictive Coding
Predictive coding (PC) is a local-learning alternative to backpropagation (BP), training deep networks via local energy-minimization dynamics rather than a global backward pass. We introduce...
❤2👍2👏1💯1