آموزش دیتاساینس و ماشین‌لرنینگ
1.89K subscribers
161 photos
9 videos
134 links
🔴 آموزش مباحث حوزه دیتا شامل علم داده، یادگیری ماشین و تحلیل داده (رضا شکرزاد)

🌀 کانال اخبار و منابع هوش مصنوعی:
@DSLanders

🌀 مشاوره و ارتباط مستقیم:
https://t.iss.one/dslanders_admin

یوتیوب:
Youtube.com/@RezaShokrzad

دوره‌ها:
cafetadris.com/datascience
Download Telegram
💡سوال مصاحبه: تفاوت بین Dropout و DropConnect چیه؟

تکنیک‌های Dropout و DropConnect هر دو برای جلوگیری از بیش‌برازش در مدل‌های یادگیری عمیق استفاده می‌شن، اما در نحوه عملکرد باهم متفاوتن.

تفاوت اصلی بین این دو در اینکه Dropout کل نورون‌ها رو حذف می‌کنه، در حالی که DropConnect تنها بعضی از وزن‌های مرتبط با نورون‌ها رو حذف می‌کنه.

این تفاوت در نحوه‌ی ایجاد تنوع و مقاومت در برابر بیش‌برازش موثره. DropConnect می‌تونه به مدل اجازه بده که وابستگی‌های پیچیده‌تری رو یادبگیره، چون فقط بعضی از وزن‌ها حذف می‌شن، نه کل نورون.

#Deep_Learning
#Artificial_Neural_Networks

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👌21🔥1
پست‌های هفته‌ای که گذشت رو این‌جا پیدا کنین!

🔺 آموزشی

🔵شبکه‌های کاملاً متصل در شبکه‌های عصبی مصنوعی
👉🔗 https://t.iss.one/data_ml/323

🔵معماری نورون‌ها و لایه‌ها در شبکه‌های عصبی مصنوعی
👉🔗 https://t.iss.one/data_ml/326

🔵توابع فعال‌ساز در شبکه‌های عصبی مصنوعی
👉🔗 https://t.iss.one/data_ml/329

🔵بهینه‌سازها در شبکه‌های عصبی مصنوعی
👉🔗 https://t.iss.one/data_ml/332

🔵تابع هزینه در شبکه‌های عصبی مصنوعی
👉🔗 https://t.iss.one/data_ml/335

🔵تکنیک‌های تنظیم در شبکه‌های عصبی مصنوعی
👉🔗 https://t.iss.one/data_ml/338

🔺 کوئیز

🔵کوییز شماره ۹۱: توابع فعال‌ساز و محوشدگی گرادیان
👉🔗 https://t.iss.one/data_ml/324

🔵کوییز شماره ۹۲: الگوریتم بهینه‌سازی "Adam"
👉🔗 https://t.iss.one/data_ml/327

🔵کوییز شماره ۹۳: تابع فعال‌ساز برای RNN
👉🔗 https://t.iss.one/data_ml/330

🔵کوییز شماره ۹۴: ویژگی‌ بهینه‌ساز Adamax
👉🔗 https://t.iss.one/data_ml/333

🔵کوییز شماره ۹۵: نرخ یادگیری بالا و Backpropagation
👉🔗 https://t.iss.one/data_ml/336

🔵کوییز شماره ۹۶: تکنیک Batch Normalization
👉🔗 https://t.iss.one/data_ml/339

🔺 نکته

🔵تفاوت بین لایه‌های کاملا متصل و لایه‌های کانولوشنی
👉🔗 https://t.iss.one/data_ml/325

🔵نحوه تعیین تعداد لایه‌ها و انواع اونها
👉🔗 https://t.iss.one/data_ml/328

🔵بلاگ Dropout
👉🔗 https://t.iss.one/data_ml/331

🔵ترکیب مومنتوم و Weight Decay
👉🔗 https://t.iss.one/data_ml/334

🔵پادکست محوشدگی گرادیان
👉🔗 https://t.iss.one/data_ml/337

🔵تفاوت بین Dropout و DropConnect
👉🔗 https://t.iss.one/data_ml/340

#Weekend
#Deep_Learning
#Artificial_Neural_Networks

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
4👏2👍1👨‍💻1
🟡 وبینار رایگان ماشین لرنینگ در صنعت (از ایده تا محصول نهایی)

در این وبینار شما با زمینه‌های متأثر از ماشین لرنینگ آشنا می‌شین. همچنین اپلیکیشن‌ها و محصولات موفق این حوزه‌های مختلف معرفی خواهند شد.

🔺 سرفصل‌ها
🔵دسته‌بندی زمینه‌های تحت تاثیر ماشین لرنینگ
🔵معرفی اپلیکشن‌های موفق در حوزه‌های مختلف
🔵معرفی محصولات شرکت‌های بزرگ برای ایده گرفتن
🔵بررسی ایده‌های استارتاپی
🔵بررسی ایده‌های پژوهشی برای انتخاب موضوع پایان نامه
🔵بررسی بازار کار برای مهندس ماشین لرنینگ در صنعت
🔵پیشنهاد برای نحوه ورود به دنیای ماشین لرنینگ

🗓 دوشنبه ۲۱ اسفند، ساعت ۱۹

🟢 رایگان ثبت‌نام کنین:‌
👉📎 https://ctdrs.ir/cr15482

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👏32👍1👨‍💻1
👩‍🎓 برنامه آموزشی هفته: شبکه‌های عصبی کانولوشنی یا CNNs

🟠شنبه: ایده پشت شبکه‌های عصبی کانولوشنی

🔵یک‌شنبه: Filter, stride, padding

🟢دوشنبه: CNN در پایتون با استفاده از کراس و پای‌تورچ

🔴سه‌شنبه: ابعاد و تعداد پارامترها

🟠چهارشنبه: مصورسازی لایه‌های پنهان

🔵پنج‌شنبه: مقایسه CNN در کراس و پای‌تورچ

🟢جمعه: جمع بندی

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1
آموزش دیتاساینس و ماشین‌لرنینگ
🟡 وبینار رایگان ماشین لرنینگ در صنعت (از ایده تا محصول نهایی) در این وبینار شما با زمینه‌های متأثر از ماشین لرنینگ آشنا می‌شین. همچنین اپلیکیشن‌ها و محصولات موفق این حوزه‌های مختلف معرفی خواهند شد. 🔺 سرفصل‌ها 🔵دسته‌بندی زمینه‌های تحت تاثیر ماشین لرنینگ 🔵معرفی…
Audio
🟡 وبینار رایگان ماشین لرنینگ در صنعت (از ایده تا محصول نهایی)

🔺 سرفصل‌ها

🔵دسته‌بندی زمینه‌های تحت تاثیر ML
🔵معرفی اپلیکشن‌های موفق در حوزه‌های مختلف
🔵معرفی محصولات شرکت‌های بزرگ برای ایده گرفتن
🔵بررسی ایده‌های استارتاپی
🔵بررسی ایده‌های پژوهشی برای انتخاب موضوع پایان نامه

🗓 دوشنبه ۲۱ اسفند، ساعت ۱۹

🟢 رایگان ثبت‌نام کنین:‌
👉📎 https://ctdrs.ir/cr15482

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥2
👨‍🎓 ایده پشت شبکه‌های عصبی کانولوشنی

شبکه‌های عصبی پیچشی (Convolutional Neural Networks یا CNNs) با الهام از ساختار بینایی موجودات زنده طراحی شدن و توانایی شگفت‌انگیزی در استخراج ویژگی‌های مهم از تصاویر با حداقل پیش‌پردازش دارن.

🔵 انگیزه و ایده پشت CNN‌ها

ایده‌ی اصلی پشت شبکه‌های عصبی پیچشی به مطالعه‌ی چگونگی پردازش اطلاعات تصویری توسط مغز انسان و سایر موجودات زنده برمی‌گرده.

🔵در دهه ۱۹۶۰، دیوید هیوبل و تورستن ویزل نشون دادن که نورون‌های خاصی در قشر بینایی مغز گربه‌ها وجود دارن که به صورت تخصصی به الگوهای خاصی از نور و سایه، خطوط و گوشه‌ها پاسخ می‌دن.

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

🔵 معماری LeNet

یکی از اولین کاربردهای عملی این ایده در شبکه نورونی لایه پیچشی (LeNet) توسط یان لیکان در دهه ۱۹۹۰ معرفی شد.

🔵این شبکه می‌تونست تصاویر دست‌نویس رو با دقت بالا شناسایی کنه و این با اعمال مکرر فیلترهای پیچشی و لایه‌های ادغام (Pooling) برای کاهش ابعاد و استخراج ویژگی‌های مهم تصویر انجام می‌شد.

🔵 مهم‌ترین پیشرفت‌ها در CNN‌ها

از نوآوری‌های مهم در این حوزه، معرفی تکنیک‌هایی مثل انتقال یادگیری (Transfer Learning)، تکنیک‌های افزایش داده (Data Augmentation) و شبکه‌های پیچشی عمیق با لایه‌های باقی‌مانده (Residual Networks) بود که توانایی مدل‌ها در آموزش عمیق‌تر و کارآمدتر کردن فرآیند یادگیری رو افزایش داد.

🔵 چالش‌های CNNs و راه‌حل‌شون

با پیچیده‌تر شدن شبکه‌ها، مسائل جدیدی مثل بیش‌برازش، نیاز به داده‌های آموزشی زیاد و محدودیت‌های محاسباتی به وجود اومد.

🔵برای حل با این چالش‌ها، تکنیک‌هایی مثل افزایش داده، Regularization و شبکه‌های پیچشی با کارایی بالا طراحی شدن که می‌تونن با استفاده از منابع محاسباتی محدودتر به دقت بالایی برسن.

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌54👍3👨‍💻1
CNN
نوید حقوقی
🔊 ۲۴. شبکه‌ عصبی کانولوشنی چیه؟

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

🟢 این‌جا می‌تونین بیشتر درموردش مطالعه کنین:

👉📎 https://ctdrs.ir/ds0024

🟡صدا: نوید حقوقی

#Machine_Learning
#Podcast

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥2
👨‍🎓 آشنایی با مفاهیم Filter،stride و padding

🔵 فیلتر (Filter)

فیلترها، هسته‌هایی هستن که روی تصاویر ورودی اعمال می‌شن تا ویژگی‌های خاصی رو استخراج کنن. هر فیلتر، یک آرایه‌ای از وزن‌ها (مقادیر) هست که با حرکت روی همه نقاط تصویر، یک نقشه ویژگی (feature map) تولید می‌کنه. این فرآیند، کانولوشن نام داره و به ما امکان می‌ده تا ویژگی‌هایی مثل لبه‌ها، بافت‌ها و شکل‌ها رو در تصویر شناسایی کنیم.

🔵انواع فیلتر

- فیلتر Sobel: برای تشخیص لبه‌ها در تصاویر استفاده می‌شه. این فیلتر از ماتریس‌های 3x3 تشکیل شده و لبه‌های عمودی، افقی و مورب رو در تصویر تشخیص می‌ده.

- فیلتر Gaussian: برای تار کردن تصاویر و حذف نویز استفاده می‌شه. این فیلتر از ماتریس‌های گاوسی تشکیل شده‌ و نویز رو در تصویر با حفظ جزئیات مهم، حذف می‌کنه.

🔵نحوه یادگیری فیلترها

در طول فرآیند آموزش شبکه، شبکه با دریافت تصاویر ورودی و برچسب‌های مربوطه، به طور خودکار فیلترهایی رو یاد می‌گیره که ویژگی‌های مهم تصاویر رو برای تشخیص اشیاء یا طبقه‌بندی تصاویر استخراج کنن.

🔵 استراید (Stride)

استراید، تعداد پیکسل‌هایی هست که فیلتر بین هر اعمال کانولوشن حرکت می‌کنه. اگه Stride برابر ۱ باشه، فیلتر بعد از هر اعمال، یک پیکسل حرکت می‌کنه.

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

🔵 پدینگ (Padding)

پدینگ، فرآیندیه که در اون حاشیه‌های اطراف تصویر ورودی با مقادیر خاصی (معمولاً صفر) پر می‌شن تا ابعاد نقشه ویژگی نهایی تنظیم یا از کاهش شدید ابعاد جلوگیری شه.

🔵دو نوع پدینگ وجود داره: پدینگ معمولی (Valid Padding) که در اون هیچ پدینگی اعمال نمی‌شه و پدینگ کامل (Same Padding) که به نحوی اعمال می‌شه تا ابعاد نقشه ویژگی خروجی با ابعاد تصویر ورودی برابر باشه.

🔵 تکنیک‌های پیشرفته Padding

- تکنیک Dilated Padding امکان افزایش فیلد دید فیلترها بدون افزایش تعداد پارامترها رو فراهم می‌کنه. این تکنیک به شبکه‌ها اجازه می‌ده که ویژگی‌های موجود در داده‌ها رو بهتر استخراج کنن.

- در روش پدینگ انعطاف‌پذیر یا Adaptive Padding، پدینگ بر اساس ویژگی‌های خاص داده‌ها یا لایه‌های شبکه تنظیم می‌شه تا بهترین نحوه استفاده از پدینگ رو برای استخراج ویژگی‌ها انتخاب کنه.

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

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👌4👨‍💻21
آموزش دیتاساینس و ماشین‌لرنینگ
👨‍🎓 آشنایی با مفاهیم Filter،stride و padding 🔵 فیلتر (Filter) فیلترها، هسته‌هایی هستن که روی تصاویر ورودی اعمال می‌شن تا ویژگی‌های خاصی رو استخراج کنن. هر فیلتر، یک آرایه‌ای از وزن‌ها (مقادیر) هست که با حرکت روی همه نقاط تصویر، یک نقشه ویژگی (feature map)…
🧑‍🎓 برای تکمیل آموزش امروز، پیشنهاد میشه بلاگ‌های زیر رو مطالعه کنین:

🔵لایه ادغام (Pooling Layer) چطور کار می‌کنه؟
👉🔗 ctdrs.ir/ds0038

🔴فیلتر و کرنل توی شبکه عصبی کانولوشنی چه نقشی دارن؟
👉🔗 ctdrs.ir/ds0047

🟢فرایند Padding در شبکه CNN چیه؟
👉🔗 ctdrs.ir/ds0086

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
👨‍🎓 پیاده‌سازی شبکه‌های عصبی کانولوشنال با Keras

ابتدا باید کتابخانه‌های لازم رو نصب و وارد کنیم. Keras بخشی از TensorFlow هست و با نصب TensorFlow به Keras هم دسترسی داریم.

import tensorflow as tf
from tensorflow.keras import layers, models


🔵 ساخت مدل

یک CNN ساده معمولا شامل لایه‌های کانولوشن، لایه‌های فعال‌ساز (Activation)، لایه‌های ادغام (Pooling) و در نهایت لایه‌های کاملا متصل (Dense) می‌شه. برای مثال یک CNN برای شناسایی اعداد دست‌نویس (MNIST) ایجاد کردیم.

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))


🔵 کامپایل و آموزش مدل

مدل بعد از ایجاد باید کامپایل شه و آموزش ببینه. این مرحله شامل تعیین optimizer، تابع هزینه و معیارهایی برای ارزیابی مدله.

model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

mnist = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_images = train_images.reshape((60000, 28, 28, 1))
train_images, test_images = train_images / 255.0, test_images / 255.0

model.fit(train_images, train_labels, epochs=5)


🔵 ارزیابی و پیش‌بینی

بعد از آموزش، مدل با داده‌های تست ارزیابی و برای پیش‌بینی‌های جدید استفاده میشه.

test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('\nTest accuracy:', test_acc)

predictions = model.predict(test_images)


🔵 بهینه‌سازی بیشتر

🔵برای بهبود عملکرد مدل، ممکنه نیاز به تنظیم بعضی پارامترها مثل نرخ یادگیری، تعداد فیلترهای لایه‌های کانولوشن و تعداد دوره‌های آموزش (epochs) باشه.

🔵همچنین استفاده از تکنیک‌هایی مثل Data Augmentation و Transfer Learning به بهبود عملکرد کمک می‌کنه.

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👌21
کدوم تابع فعال‌ساز معمولاً برای لایه‌های کانولوشن در CNN استفاده می‌شه؟
Anonymous Quiz
19%
Sigmoid
6%
Tanh
71%
ReLU
4%
Linear
😎7👍31🤔1
💡سوال مصاحبه: چه تکنیک‌هایی رو برای کاهش زمان محاسبات در یک CNN میشه به کار برد؟

🔵کاهش ابعاد ورودی با پیش پردازش، مثل تغییر اندازه تصاویر.
🔵استفاده از لایه‌های کانولوشنی با استرید بزرگتر برای کاهش ابعاد فیچر مپ‌ها.
🔵کاهش تعداد کانال‌ها یا فیلترهای مورد استفاده در لایه‌های کانولوشنی.
🔵استفاده از نسخه‌های سبک‌تر شبکه‌ها مثل SqueezeNet یا MobileNet.
🔵اعمال روش‌های ساده‌سازی مدل مثل هرس کردن (Pruning)، که بعضی اتصالات کم اهمیت‌ رو حذف می‌کنه.
🔵استفاده از الگوریتم‌های بهینه‌سازی سریع‌تر در مرحله آموزش، مثل Adam یا RMSprop.

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
7👌2👍1👨‍💻1
👨‍🎓 ابعاد و تعداد پارامترها در شبکه‌های عصبی کانولوشنی

شبکه‌های CNN از لایه‌های مختلفی تشکیل شدن که هر کدوم ویژگی‌هایی از داده‌های ورودی رو استخراج می‌کنن.

این لایه‌ها عبارتند از لایه‌های پیچشی (Convolutional Layers)، لایه‌های تجمعی (Pooling Layers) و لایه‌های کاملا متصل (Fully Connected Layers).

🔵لایه کانولوشنی: در یک لایه کانولوشنی، فیلترهایی با ابعاد کوچک (مثل 3x3 یا 5x5) روی تصویر ورودی حرکت داده می‌شن تا ویژگی‌های محلی استخراج شن. هر فیلتر به صورت مستقل پارامترهایی داره که طی فرایند آموزش بهینه می‌شن.

🔵لایه تجمعی: لایه‌های تجمعی معمولا بعد از لایه‌های کانولوشنی قرار می‌گیرن و وظیفه کاهش ابعاد ویژگی‌های استخراج شده رو دارن تا محاسبات کمتری نیاز باشه و شبکه بتونه ویژگی‌های سطح بالاتر رو تشخیص بده.

🔵لایه کاملا متصل: در نهایت، ویژگی‌های استخراج شده توسط لایه‌های قبلی به لایه‌های کاملا متصل می‌رسن که هدف‌شون انجام دسته‌بندی بر اساس ویژگی‌های استخراج شده است.

🔵 تعداد پارامترها:
تعداد پارامترها در یک شبکه CNN تاثیر مستقیمی روی ظرفیت یادگیری و تعداد محاسبات لازم برای آموزش و اجرا دارن. برای محاسبه تعداد پارامترها در یک لایه پیچشی، میشه از فرمول زیر استفاده کرد:

🔵تعداد پارامترها = (ابعاد فیلتر×تعداد کانال‌های ورودی+1)×تعداد فیلترها

برای مثال، اگه یک لایه کانولوشنی 32 فیلتر با ابعاد 3x3x3 داشته باشه، تعداد کل پارامترها به این صورت میشه: 32×(3×3×3+1)

این فرمول شامل وزن‌های فیلترها و یک بایاس برای هر فیلتره. "+1" در فرمول نشون‌دهنده بایاس اضافه شده به هر فیلتره.

🔵 نمونه کد: ایجاد یک لایه پیچشی در PyTorch

import torch
import torch.nn as nn

conv_layer = nn.Conv2d(in_channels=3, out_channels=32, kernel_size=3, stride=1, padding=1)

print(f"تعداد پارامترها: {sum(p.numel() for p in conv_layer.parameters() if p.requires_grad)}")


🔵 معماری‌های پیچیده‌تر

با پیشرفت در زمینه یادگیری عمیق، معماری‌های پیچیده‌تری مثل ResNet، Inception و DenseNet طراحی شدن که با استفاده از روش‌هایی مثل Skip Connections و ماژول‌های پیچیده، دقت و کارایی شبکه‌های CNN رو بهبود بخشیدن.

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌63👏2👍1👨‍💻1
کوییز شماره ۱۰۰: فرض کنید یک لایه کانولوشنی در یک شبکه CNN دارای فیلترهایی با اندازه 3x3 هست، تعداد کانال‌های ورودی 3 (برای تصاویر RGB) و تعداد فیلترها 64 باشه. تعداد کل پارامترها در این لایه کانولوشنی چنده؟
Anonymous Quiz
25%
576 
33%
1792
31%
1728   
11%
640
4😎3🤔2👍1👌1
💡سوال مصاحبه: چطور اشتراک‌گذاری پارامتر در لایه‌های کانولوشنی کار می‌کنه؟

در لایه‌های کانولوشنی، اشتراک‌گذاری پارامتر (Parameter Sharing) به این معنی هست که یک فیلتر (یا کرنل) وزن‌های یکسانی رو در همه موقعیت‌هایی که روی تصویر ورودی حرکت می‌کنه به کار می‌بره.

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

این رویکرد به شدت تعداد پارامترهای مورد نیاز رو کاهش میده و باعث میشه تا شبکه بتونه از داده‌های آموزشی به شکل موثرتری یاد بگیره و همچنین مقاومت بیشتری در برابر بیش‌برازش داشته باشه.

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

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👌1👨‍💻1
👨‍🎓 مصورسازی لایه‌های پنهان در CNNs

تجسم یا مصورسازی لایه‌های پنهان (Hidden Layers Visualization)، فرآیندیه که از طریقش می‌تونیم فعالیت‌های داخل شبکه رو مشاهده کنیم.

🔵 مبانی تجسم لایه‌های پنهان

لایه‌های پنهان در CNN‌ها شامل مجموعه‌ای از فیلترها یا کرنل‌ها هستن که ویژگی‌های مختلفی از تصاویر ورودی استخراج می‌کنن. در لایه‌های اولیه، این ویژگی‌ها معمولاً ساده هستن مثل لبه‌ها یا زوایا. در لایه‌های نهایی، ویژگی‌های پیچیده‌تر و انتزاعی‌تری شناسایی می‌شن.

برای تجسم فعالیت لایه‌ها، روش‌های مختلفی وجود داره. یکی از روش‌های اولیه، نمایش نقشه‌ ویژگیه (Feature Map) که در این نقشه خروجی‌های فعالیت لایه‌های مختلف برای یک تصویر ورودی نشون داده می‌شه. در نتیجه می‌تونیم ببینیم کدوم ویژگی‌ها در هر لایه فعال شدن.

🔵 روش‌های پیشرفته مصورسازی

🔵مصورسازی فعال‌ساز (Activation Visualization): این روش نشون می‌ده که کدوم نقاط از تصویر ورودی باعث فعال‌سازی بیشتر در نقشه‌های ویژگی می‌شن.

🔵مصورسازی فیلترها (Filter Visualization): این روش به ما امکان می‌ده تا مستقیماً فیلترهای داخلی هر لایه رو ببینیم و بفهمیم که هر کدوم دنبال چه نوع ویژگی‌هایی در تصاویر هستن.

🔵تولید تصاویری که فعال‌سازی رو به حداکثر می‌رسونن (Maximal Activation): این روش شامل تولید تصاویریه که به طور خاص برای فعال کردن یک نقشه ویژگی یا فیلتر خاص طراحی شدن.

🔵مصورسازی عملیاتی (Operational Visualization): این روش تلاش می‌کنه تا عملکرد کلی یک لایه یا بخشی از شبکه رو با استفاده از تصاویری که به طور خاص برای این منظور تولید شدن، نشون بده.

🔵 چالش‌ها و راهکارها

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

یکی از راهکارها برای حل این چالش‌ها، استفاده از تکنیک‌های یادگیری عمیق توضیح‌پذیر (Explainable AI) هست که تلاش می‌کنه تا تصمیمات و فرآیندهای داخلی شبکه‌های عصبی رو قابل فهم‌تر و شفاف‌تر کنه.

#Deep_Learning
#CNNs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
3👌3👍2👨‍💻1
کوییز شماره ۱۰۱: در تکنیک تجسم فیلترها برای درک عملکرد شبکه‌های کانولوشنی، چگونه می‌توان تعیین کرد که یک فیلتر خاص به دنبال چه نوع ویژگی‌ای است؟
Anonymous Quiz
48%
با مقایسه فعال‌سازهای قبل و بعد از اعمال فیلتر
12%
تنها با تحلیل مقادیر وزن‌دهی داخل فیلتر
32%
با تولید تصاویری که فعال‌ساز مشخصی در اونها فیلتر رو به حداکثر می‌رسونن
8%
فیلترها تنها در مصورسازی‌های سه‌بعدی قابل تحلیل هستن
😎42👍2🤔2