تجسم یا مصورسازی لایههای پنهان (Hidden Layers Visualization)، فرآیندیه که از طریقش میتونیم فعالیتهای داخل شبکه رو مشاهده کنیم.
لایههای پنهان در CNNها شامل مجموعهای از فیلترها یا کرنلها هستن که ویژگیهای مختلفی از تصاویر ورودی استخراج میکنن. در لایههای اولیه، این ویژگیها معمولاً ساده هستن مثل لبهها یا زوایا. در لایههای نهایی، ویژگیهای پیچیدهتر و انتزاعیتری شناسایی میشن.
برای تجسم فعالیت لایهها، روشهای مختلفی وجود داره. یکی از روشهای اولیه، نمایش نقشه ویژگیه (Feature Map) که در این نقشه خروجیهای فعالیت لایههای مختلف برای یک تصویر ورودی نشون داده میشه. در نتیجه میتونیم ببینیم کدوم ویژگیها در هر لایه فعال شدن.
از چالشهای این روش میشه به درک دقیق این مصورسازیها و تفسیرشون اشاره کرد. همچنین، تجسم لایههای عمیقتر که ویژگیهای بسیار انتزاعیتری رو استخراج میکنن، سختتره.
یکی از راهکارها برای حل این چالشها، استفاده از تکنیکهای یادگیری عمیق توضیحپذیر (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%
فیلترها تنها در مصورسازیهای سهبعدی قابل تحلیل هستن
😎4❤2👍2🤔2
یادگیری عمیق توضیحپذیر یا Explainable AI رویکردهایی برای افزایش شفافیت و فهمپذیری مدلهای یادگیری ماشین ارائه میده تا تصمیماتشون قابل درک و قابل اعتماد باشن.
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👏1👌1
کتابخانه PyTorch برپایه Tensorهاست که معادلات چندبعدی رو با سرعت بالا روی سختافزارهای مختلف اجرا میکنن. علاوه بر این، PyTorch یک اتوگراد (autograd) قدرتمند برای محاسبهی خودکار گرادیانها ارائه میده که یکی از اجزای مهم در آموزش شبکههای عصبیه.
برای پیادهسازی یک CNN ساده با PyTorch، اول باید ماژولهای مورد نیاز رو وارد کنیم:
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
nn.Module
ارثبری میکنه:class SimpleCNN(nn.Module):
def __init__(self):
super(SimpleCNN, self).__init__()
self.conv1 = nn.Conv2d(1, 20, 5, 1) # پیچشی لایه با 20 کانال خروجی و فیلتر 5x5
self.conv2 = nn.Conv2d(20, 50, 5, 1) # دومین لایه پیچشی
self.fc1 = nn.Linear(4*4*50, 500) # لایه کاملاً متصل با 500 نورون
self.fc2 = nn.Linear(500, 10) # لایه خروجی با 10 نورون برای 10 کلاس
def forward(self, x):
x = F.relu(self.conv1(x))
x = F.max_pool2d(x, 2, 2) # استفاده از Max Pooling
x = F.relu(self.conv2(x))
x = F.max_pool2d(x, 2, 2)
x = x.view(-1, 4*4*50) # تغییر شکل تنسور برای ورودی به لایه کاملاً متصل
x = F.relu(self.fc1(x))
x = self.fc2(x)
return F.log_softmax(x, dim=1)
برای آموزش شبکه، اول یک نمونه از شبکهی عصبی تعریف شده ایجاد و یک بهینهساز مثل Adam یا SGD تنظیم میشه:
model = SimpleCNN()
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)
for epoch in range(num_epochs):
for batch_idx, (data, target) in enumerate(train_loader):
optimizer.zero_grad() # پاک کردن گرادیانهای موجود
output = model(data) # محاسبه خروجی شبکه
loss = F.nll_loss(output, target) # محاسبه خطا
loss.backward() # محاسبه گرادیانها
optimizer.step() # بهروزرسانی وزنها
در این مثال،
train_loader
یک تابع بارگذاری دادهست که دادههای آموزشی رو در دستههایی با اندازه مشخص فراهم میکنه. num_epochs
تعداد دفعاتیه که میخوایم دادههای آموزشی رو برای آموزش شبکه عبور بدیم.#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3👨💻1
❓کوییز شماره ۱۰۲: در PyTorch، کدومیک از موارد زیر به درستی توصیف میکنه که چطور یک تصویر RGB 32x32 با استفاده از مدلهای CNN پردازش میشه؟
Anonymous Quiz
14%
تبدیل به یک آرایه یک بعدی 1024 عنصری و بعد اعمال یک لایه Fully Connected
11%
استفاده مستقیم از تصویر به عنوان ورودی برای لایههای Convolutional بدون هیچگونه پیش پردازش
47%
تبدیل تصویر به تنسور PyTorch و اعمال یک سلسله لایههای Convolutional و Pooling
28%
فشردهسازی تصویر به ابعاد کوچکتر برای کاهش پیچیدگی محاسباتی قبل از اعمال لایههای Convolutional
😎5👍4🤔2
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2👌2
#Weekend
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👏3👌2👍1
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4👏3🔥1
ما فعالیت این کانال رو حدود چهار ماه پیش، با هدف آموزش مباحث ماشین لرنینگ و دیتا ساینس از پایه، شروع کردیم و تا الان با پشت سر گذاشتن ۱۷ هفته آموزشی، مباحث زیر مرور شدن:
از اینکه پیگیر یادگیری هستین، خوشحالیم و تلاشمون رو میکنیم تا به خاطر پیگیری شما، محتوای با کیفیت ارائه بدیم.
فعالیت این کانال از یازدهم فروردین ادامه پیدا میکنه. امیدوارم سال جدید پر از سلامتی، شادی، موفقیت و عشق باشه براتون
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👏4👌3🔥2👍1
سال خوبی رو براتون آرزو میکنیم
#AI_Generated
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥2
Forwarded from آموزش دیتاساینس و ماشینلرنینگ
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥1
معماری شبکههای عصبی LeNet، که به نام LeNet-5 هم شناخته میشه، یکی از اولین شبکههای عصبی پیچشی (Convolutional Neural Networks یا CNNs) هست که با موفقیت برای شناسایی اعداد دستنویس در دیتاست MNIST استفاده شد. این شبکه توسط یان لیکان (Yann LeCun) و همکارانش در دهه ۹۰ میلادی توسعه یافت.
معماری LeNet-5 شامل لایههای پیچشی (Convolutional Layers)، لایههای نمونهبرداری (Subsampling یا Pooling Layers) و لایههای کاملاً متصل (Fully Connected Layers) هست. این ساختار به شبکه امکان میده که ویژگیهای مهم تصاویر رو شناسایی کنه.
به عنوان یکی از اولین معماریهای شبکههای عصبی پیچشی، نقش مهمی در توسعه یادگیری عمیق داشته و ایدهاش در توسعه معماریهای پیچیدهتر و پیشرفتهتری مثل AlexNet، VGG و ResNet کاربرد داشته.
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2👨💻1
❓کوییز شماره ۱۰۳: لایههای کانولوشنی در معماری LeNet-5 از چه تابع فعالسازی استفاده میکنن؟ نوع Pooling در این معماری به چه صورته و تعداد پارامترهای قابل آموزش حدوداً چقدرن؟
Anonymous Quiz
43%
ReLU - Max Pooling - 10,000
22%
Sigmoid - Global Max Pooling - 50,000
22%
Tanh - Average Pooling - 60,000
14%
Leaky ReLU - Global Average Pooling - 100,000
👌3❤2👍2
وقتی حرف از شبکههای عصبی کانولوشنی میشه، لازمه از لینت-۵ یا LeNet-5 که اولین شبکهایه که از backpropagation استفاده کرده هم صحبت کنیم. درواقع میشه گفت یادگیری عمیق و شبکههای CNN با معرفی این شبکه شکل گرفتن.
👉
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2👏2
مسابقه ILSVRC (ImageNet Large Scale Visual Recognition Challenge) یکی از معتبرترین رویدادها در حوزه بینایی ماشینه که با هدف ارزیابی پیشرفت در شناسایی اشیاء در مقیاس بزرگ برگزار میشه.
بنابراین، ILSVRC به عنوان یک نقطه عطف در پیشرفت فناوریهای بینایی ماشین و یادگیری عمیق شناخته میشه و تأثیر عمیقی روی پژوهشها و کاربردهای صنعتی در این حوزهها داشته.
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3👨💻1
❓کوییز شماره ۱۰۴: کدوم مدل از شبکههای عصبی زیر برای اولین بار استفاده از تابع فعالساز ReLU و چند GPU برای آموزش سریعتر رو در مسابقه ILSVRC معرفی کرد؟
Anonymous Quiz
7%
ZFNet
18%
VGG-16
66%
AlexNet
9%
ResNet
👍3🔥3🤔1
رقابت سالانه ILSVRC، یه رقابت در حوزه Computer Vision یا بینایی ماشینه که هدفش بهبود تسکهای مختلفی مثل تشخیص اشیاست.
👉
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1
معماری AlexNet یک شبکه عصبی کانولوشنیه که از لحاظ ساختاری شباهتهایی به LeNet داره، اما بسیار عمیقتر و پیچیدهتره. این شبکه شامل ۵ لایه کانولوشنی و چندین لایه کاملاً متصل (fully connected) هست.
این معماری در مسابقه ILSVRC 2012 تونست خطای تشخیص رو در Top-1 error و Top-5 error به طور چشمگیری کاهش بده و این پیشرفت قابل توجهی در حوزه پردازش تصویر بود.
برای جلوگیری از بیشبرازش، لایههای dropout قبل از لایههای fully connected قرار داده شدن که با احتمال 0.5، در هر دور بعضی از نورونها غیر فعال میشن.
این ویژگی که در بین لایههای کانولوشنی قرار گرفته، به نرمالسازی پاسخهای محلی کمک میکنه و باعث افزایش عملکرد شبکه میشه.
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3👨💻1
❓کوییز شماره ۱۰۵: اندازه تصویر ورودی استاندارد در معماری AlexNet چه تأثیری روی شبکه داره و چرا این اندازه انتخاب شده؟
Anonymous Quiz
48%
ابعاد 224x224x3 به دلیل سازگاری با ابعاد فیلترهای شبکه و باعث کاهش پیچیدگی محاسباتی میشه.
13%
ابعاد 256x256x3 که بعد از یک مرحله به 227x227x3 تغییر پیدا میکنه، به منظور افزایش تنوع دادهها.
32%
ابعاد 227x227x3 تا امکان استفاده از فیلتر سایزهای 11x11 در لایه اول و افزایش استخراج ویژگی فراهم شه.
6%
ابعاد 224x224x3 چون اندازه استاندارد تصاویر در پایگاه دادههای تصویریه و نیازی به تغییر نداره.
❤2👍2🤔2😎2