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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
👨‍🎓 معماری Squeeznet

معماری SqueezeNet یک شبکه عصبی کانولوشنی (CNN) هست که برای اولین بار در سال 2016 معرفی شد. این معماری با هدف ارائه دقت مشابه با AlexNet با ۵۰ برابر پارامتر کمتر طراحی شده بود.

یکی از ویژگی‌های کلیدی SqueezeNet اینکه با کاهش تعداد پارامترها، فضای ذخیره‌سازی کمتری اشغال می‌کنه و سریع‌تر میشه روی دستگاه‌های دارای منابع محدود اجراش کرد.

🔵 ساختار اصلی SqueezeNet

معماری SqueezeNet بر اساس سه اصل اساسی طراحی شده:

🔵جایگزینی فیلترهای 3x3 با 1x1: فیلترهای 1x1 تعداد پارامترها و محاسبات را به طور قابل توجهی کاهش می‌دهند.

🔵کاهش تعداد کانال‌ها قبل از فیلترهای 3x3: با این کار محاسبات مربوط به فیلترهای بزرگتر کاهش پیدا می‌کنه.

🔵استفاده مؤثر از اتصالات غیر مستقیم: این رویکرد به حفظ اطلاعات مفید از لایه‌های قبلی کمک می‌کنه.

🔵 ماژول‌های Fire

واحد اصلی در SqueezeNet ماژول Fire هست. هر ماژول Fire از دو بخش تشکیل شده: یک لایه فشرده‌ساز (Squeeze) که از فیلترهای 1x1 استفاده می‌کنه، و لایه‌های گسترش‌دهنده (Expand) که از ترکیبی از فیلترهای 1x1 و 3x3 استفاده می‌کنه.

🔵 چرا SqueezeNet مهمه؟

🔵معماری SqueezeNet به دلیل کارایی بالا در محیط‌های با منابع محدود مثل تلفن‌های هوشمند و دستگاه‌های IoT (اینترنت اشیاء) محبوبه.

🔵علاوه بر این، امکان انتقال یادگیری (Transfer Learning) در SqueezeNet باعث می‌شه که بشه از مدل‌های آموزش‌دیده روی دیتاست‌های بزرگ برای مسائل خاص با تنظیم مجدد لایه‌های کمتری استفاده کرد.

🔵همچنین این معماری برای بهینه‌سازی اجرای سریع‌تر و کارآمدتر در دستگاه‌های مختلف، مخصوصاً برای کاربردهای Edge Computing کاربرد داره.

🔵 مقایسه با دیگر معماری‌ها

🔵معماری‌های AlexNet و VGG: در مقایسه با AlexNet، معماری SqueezeNet تونست با تعداد پارامترهای بسیار کمتر، دقت مشابهی ارائه بده. نسبت به VGG، معماری SqueezeNet افزایش زیادی در کارایی و کاهش در اندازه مدل نشان می‌ده.

🔵معماری‌های MobileNet و EfficientNet: هر دو این معماری‌ها برای کارایی بالا در دستگاه‌های با منابع محدود طراحی شدن و هر کدوم استراتژی‌های خاص خودشون رو برای کاهش پیچیدگی محاسباتی دارن.

#Deep_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2👌2👨‍💻1
کوییز شماره ۱۱۰: در نسخه 1.1 SqueezeNet، تغییر کدوم پارامتر باعث کاهش 2.4 برابری محاسبات و کاهش تعداد پارامترها شده، بدون اینکه دقت کاهش پیدا کنه؟
Anonymous Quiz
18%
افزایش تعداد لایه‌ها
41%
کاهش اندازه کرنل‌ها
29%
کاهش تعداد واحدهای Fire
12%
تغییر در تعداد کانال‌های لایه‌های فشرده‌ساز (Squeeze)
4👍3👨‍💻1
📊 روند استفاده از معماری‌های شبکه عصبی در مقالات علمی

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

#Deep_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1👏1
👨‍🎓 معماری MobileNet

معماری MobileNet با هدف ارائه مدلی با تعادل مناسب بین دقت و سرعت طراحی شده و با استفاده از تکنیک‌های مختلفی مثل فاکتور بندی عمقی (depthwise separable convolution) بهینه‌سازی می‌شه تا تعداد پارامترها و محاسبات رو بدون تأثیر چشمگیری روی دقت مدل کاهش بده.

🔵 فاکتور بندی عمقی

در MobileNet، فاکتور بندی عمقی، عملیات کانولوشن رو به دو بخش تقسیم می‌کنه: کانولوشن عمقی (Depthwise Convolution) و کانولوشن نقطه‌ای (Pointwise Convolution).

کانولوشن عمقی روی هر کانال ورودی به طور جداگانه اجرا می‌شه، در حالی که کانولوشن نقطه‌ای ترکیبی از کانال‌های خروجی از کانولوشن عمقی رو ایجاد می‌کنه.

🔵 نسخه‌های MobileNet

این معماری در طی زمان تکامل پیدا کرد و نسخه‌های مختلفی مثل MobileNetV1, MobileNetV2 و MobileNetV3 ارائه شدن.

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

🔵در MobileNetV2 از واحدهای خطی برگشت پذیر (Inverted Residuals) و برش‌های خطی (Linear Bottlenecks) استفاده شده که کمک می‌کنن عمق، بدون تأثیر منفی روی کارایی، افزایش پیدا کنه.

🔵نسخه MobileNetV3 با ترکیبی از روش‌های تحقیق مبتنی بر معماری و بهینه‌سازی‌های دستی ارائه شد. این نسخه از نوآوری‌های معرفی شده در MobileNetV2 و تکنیک‌های جدیدی مثل برش‌های غیر خطی و بهینه‌سازی‌های مبتنی بر سخت افزار استفاده می‌کنه.

🔵در توسعه MobileNetV3، از روش‌های یادگیری ماشین خودکار (AutoML) و به خصوص الگوریتم NetAdapt استفاده شده تا معماری شبکه به طور خودکار، بر اساس شرایط و محدودیت‌های مختلف دستگاه‌های هدف تنظیم و بهینه‌سازی شه.

🔵 بهینه‌سازی مبتنی بر Quantization

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

#Deep_Learning

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

در حالی که اکثر معماری‌های قبلی تمرکزشون روی افزایش تنها یکی از ابعاد مدل، مثل عمق یا پهنا، قرار می‌دادن، EfficientNet به طور همزمان و متناسب هر سه بعد مهم مدل یعنی عمق، پهنا و رزولوشن تصویر رو افزایش می‌ده و این روش مقیاس‌بندی ترکیبی (Compound Scaling Method) نام داره.

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

🔵 مفهوم مقیاس‌بندی

در EfficientNet، سه بعد مهم برای مقیاس‌بندی وجود داره: عمق (Depth)، پهنا (Width)، و اندازه تصویر (Resolution). افزایش هر کدوم از این ابعاد می‌تونه به بهبود عملکرد شبکه کمک کنه، اما باید به نحو اثربخشی تعادل بین‌شون برقرار شه.

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

🔵پهنای مدل به تعداد نورون‌ها در هر لایه اشاره داره و می‌تونه قدرت نمایش شبکه رو افزایش بده.

🔵اندازه تصویر هم به میزان وضوح تصاویر ورودی برای شبکه بستگی داره، که با افزایش‌اش، شبکه توانایی درک جزئیات بیشتری رو پیدا می‌کنه.

🔵 معماری EfficientNet

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

🔵 مدل‌های EfficientNet

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

🔵 مقایسه معماری‌های EfficientNet و ResNet: معماری EfficientNet از نظر کارایی و دقت به طور قابل توجهی از ResNet برتره. با استفاده از روش مقیاس‌بندی ترکیبی، این معماری در داده‌های استاندارد مثل ImageNet دقت بالاتری نسبت به ResNet داره و بهینه‌سازی منابع اونو برای استفاده در دستگاه‌های با منابع محدود ایده‌آل می‌کنه.

#Deep_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌42👍2👨‍💻1
🎞 یادگیری انتقالی و پیاده سازی EfficientNet با Keras

به خاطر ساختار نتورک و سرعت بالاتر در فازهای train و test، از بین نتورک‌های عمیق برنده ILSVRC نتورک EfficientNet یکی از محبوب ترین‌هاست.

در این ویدیو روی مقاله EfficientNet صحبت میشه و از روی داکیومنت کراس، از مدل pre-trainedاش برای کلاسبندی دیتاست Food101 استفاده می‌کنیم.

👉📎 https://youtu.be/MZZlHPMb1NE

🟢لینک کانال یوتیوب:

👉📎 https://youtube.com/@RezaShokrzad

#YouTube
#Deep_Learning

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3👨‍💻1
👨‍🎓 آشنایی با Keras

کراس یک کتابخانه متن‌باز، روی کتابخانه‌های Theano و TensorFlow هست و به عنوان یک واسط عمل می‌کنه در نتیجه بدون نیاز به یادگیری پیچیدگی‌های Theano یا TensorFlow، میشه مدل‌های یادگیری عمیق کارآمد ساخت.

🔵 مفاهیم اولیه

🔵لایه‌ها (Layers): لایه‌ها در کراس بلوک‌های سازنده مدل‌های عصبی هستن. هر لایه وظایف خاصی رو انجام می‌ده. برایمثال، لایهٔ Dense برای ایجاد لایه‌های کاملاً متصل و لایهٔ Conv2D برای ایجاد لایه‌های شبکه عصبی کانوولوشنی استفاده می‌شه.

🔵مدل‌ها (Models): مدل‌ها در کراس مجموعه‌ای از لایه‌ها هستن که به صورت متوالی یا توابع متمرکز به هم متصل شدن. مدل‌ها برای تعریف ساختار معماری شبکه‌های عصبی استفاده می‌شن.

🔵 ساختارهای مختلف مدل

🔵ساختار توالی (Sequential): در این ساختار، لایه‌ها به صورت متوالی به هم متصل می‌شن (مثلا خروجی لایهٔ اول به عنوان ورودی لایهٔ دوم استفاده میشه). این ساختار برای مدل‌هایی که لایه‌ها به ترتیب خاصی اعمال می‌شن مناسبه.

🔵ساختار تابع متمرکز (Functional): این ساختار اجازه می‌ده تا لایه‌های مختلف به صورت غیرخطی به هم متصل شن. در نتیجه این امکان رو می‌ده که مدل‌هایی پیچیده‌تر و با ساختارهای متنوع‌تر ساخته شن.

🔵 ساختار مدل با استفاده از توابع Functional

در این قسمت، برای مثال ساخت مدل شبکه عصبی در کراس، از تابع متمرکز و سه لایهٔ کاملاً متصل استفاده شده:

from keras.layers import Input, Dense
from keras.models import Model

# تعریف لایهٔ ورودی
input_layer = Input(shape=(input_dim,))

# تعریف لایهٔ مخفی اول
hidden_layer_1 = Dense(units=64, activation='relu')(input_layer)

# تعریف لایهٔ مخفی دوم
hidden_layer_2 = Dense(units=32, activation='relu')(hidden_layer_1)

# تعریف لایهٔ خروجی
output_layer = Dense(units=output_dim, activation='softmax')(hidden_layer_2)

# تعریف مدل با استفاده از تابع متمرکز
model = Model(inputs=input_layer, outputs=output_layer)

# نمایش ساختار مدل
model.summary()


در این کد، اول لایهٔ ورودی با استفاده از تابع Input تعریف شده. بعد دو لایهٔ مخفی با استفاده از تابع Dense هر کدوم با تعداد واحدها و تابع فعال‌ساز مشخص تعریف شدن. در نهایت، لایهٔ خروجی تعریف شده و مدل با استفاده از توابع متمرکز ساخته شده.

🔵 ساختار مدل با استفاده از توابع Sequential

در این قسمت، مثالی از ساختار مدل با استفاده از ساختار توالی رو مشاهده می‌کنین:

from keras.models import Sequential
from keras.layers import Dense

# تعریف یک مدل توالی
model = Sequential()

# اضافه کردن لایهٔ ورودی و لایهٔ مخفی اول
model.add(Dense(units=64, activation='relu', input_dim=input_dim))

# اضافه کردن لایهٔ مخفی دوم
model.add(Dense(units=32, activation='relu'))

# اضافه کردن لایهٔ خروجی
model.add(Dense(units=output_dim, activation='softmax'))

# نمایش ساختار مدل
model.summary()


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

🔵 مراحل تکمیلی در ایجاد مدل با کراس

بعد از تعریف ساختار مدل، مراحل دیگه‌ای برای آماده‌سازی مدل برای آموزش و ارزیابی وجود داره. این مراحل شامل compile کردن مدل، آموزش مدل و ارزیابی عملکرده.

🔵 کامپایل کردن مدل (Compile)

بعد از تعریف ساختار مدل، نیازه که مدل compile شه. در این مرحله، مشخص میشه که مدل چطور باید آموزش داده شه. برای این کار در تابع compile تابع هزینه (loss function)، الگوریتم بهینه‌سازی (optimizer) و معیارهای ارزیابی (metrics) اضافه می‌شن.

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


در این مثال، از الگوریتم بهینه‌سازی Adam و تابع هزینهٔ cross-entropy دسته‌ای استفاده شده. همچنین، معیار دقت (accuracy) برای ارزیابی عملکرد مدل در هر دوره از آموزش مشخص شده.

🔵 آموزش مدل

model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val))


در این مثال، مدل در ده epoch روی داده‌های آموزشی آموزش داده می‌شه. داده‌ها به دسته‌هایی به اندازهٔ 32 نمونه تقسیم شده و بعد از پایان هر دوره، عملکرد مدل روی داده‌های اعتبارسنجی با استفاده از داده‌های اعتبارسنجی ارزیابی می‌شه.

🔵 ارزیابی مدل

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

loss, accuracy = model.evaluate(X_test, y_test)


#Deep_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
4👌3👍1👨‍💻1
سوال مصاحبه: چه کارکردی در Keras به شما امکان می‌دهد متن را به دنباله‌ها یا بردارهای رمزگذاری شده یک‌به‌یک تبدیل کنید؟

کارکرد keras.preprocessing.text.Tokenizer این امکان رو می‌ده که متن رو به دنباله‌ها یا بردارهای رمزگذاری شده one-hot تبدیل کنید.

🔵مثال:

from keras.preprocessing.text import Tokenizer

tokenizer = Tokenizer(num_words=1000)
tokenizer.fit_on_texts(texts)

sequences = tokenizer.texts_to_sequences(texts)


در این مثال، یک tokenizer با حداکثر 1000 کلمه منحصر به فرد ایجاد و روی مجموعه داده‌ای از متن‌ها آموزش داده میشه. درنهایت متن‌ها رو به دنباله‌ای از اعداد صحیح تبدیل می‌کنه.

#Deep_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🤔1
👨‍🎓 آشنایی با Pytorch

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

🔵 تعریف تنسورها در PyTorch

یکی از مفاهیم مهم در PyTorch، تنسورها (Tensors) هستن. تنسورها مثل آرایه‌های چند بعدی در NumPy عمل می‌کنن، با این تفاوت که می‌تونن روی دستگاه‌های GPU هم قرار بگیرن. برای تعریف یک تنسور در PyTorch، میشه از دستورات زیر استفاده کرد:

import torch

# تعریف یک تنسور با مقدار ثابت
x = torch.tensor([5.0, 3.0])
print(x)

# تعریف یک تنسور خالی
y = torch.empty(3, 2)
print(y)


🔵 ساختن و آموزش مدل‌های عصبی

نحوه ساخت یک مدل شبکه عصبی ساده با استفاده از PyTorch:

import torch
import torch.nn as nn
import torch.optim as optim

# تعریف مدل شبکه عصبی
class SimpleNN(nn.Module):
def __init__(self):
super(SimpleNN, self).__init__()
self.fc = nn.Linear(3, 1) # 3 ورودی و 1 خروجی

def forward(self, x):
return self.fc(x)

# ایجاد نمونه از مدل
model = SimpleNN()

# تعریف تابع هزینه و بهینه‌ساز
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)

# داده‌های ورودی و خروجی مثال
inputs = torch.tensor([[1.0, 2.0, 3.0]])
targets = torch.tensor([[4.0]])

# آموزش مدل
for epoch in range(100):
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, targets)
loss.backward()
optimizer.step()
if (epoch+1) % 10 == 0:
print(f'Epoch [{epoch+1}/100], Loss: {loss.item()}')


🔵 آشنایی با TorchVision

تورچ ویژن (TorchVision) یک بخش از کتابخانه PyTorch هست که ابزارهای مختلفی رو برای کار با داده‌های تصویری و پردازش تصویر ارائه می‌کنه.

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

🔵دانلود و مدیریت داده‌های تصویری

تورچ ویژن ابزارهایی برای وارد کردن دیتاست‌های معروف تصویری مثل CIFAR-10، MNIST و ImageNet رو فراهم می‌کنه.

🔵پیش‌پردازش تصاویر

تورچ ویژن شامل مجموعه‌ای از ابزارها برای انجام پیش‌پردازش تصاویر، از جمله تبدیل‌هایی مثل تغییر اندازه تصاویر، برش، چرخش، نرمال‌سازی و تبدیل تصویر به تنسورهای PyTorch هست.

🔵تبدیل داده‌های تصویری

به طور معمول، داده‌های تصویری باید برای ورود به مدل‌های یادگیری عمیق مناسب شن. TorchVision ابزارهایی برای تبدیل داده‌های تصویری رو ارائه می‌ده که می‌تونن به طور معکوس همون عملیات رو روی پیش‌بینی‌های مدل انجام بدن.

🔵آموزش شبکه‌های عصبی دقیق تر

علاوه بر ابزارهای وارد کردن و پیش‌پردازش داده، TorchVision همچنین ابزارهایی رو فراهم می‌کنه که به توسعه‌دهندگان امکان می‌دن مدل‌ رو بهبود بدن و دقت و عملکرد رو بالا ببرن.
#Deep_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3👨‍💻1
کوییز شماره ۱۱۴: کدوم تابع در PyTorch.vision برای اعمال تبدیلات هندسی روی تصاویر استفاده می‌شه؟
Anonymous Quiz
16%
torch.transforms
40%
torchvision.transforms
36%
image.transforms
8%
vision.transforms
👍63🤔1👨‍💻1
هدف از استفاده ()zero_grad در PyTorch چیه و کی استفاده می‌شه؟

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

import torch
import torch.optim as optim

# تعریف یک مدل ساده و یک بهینه‌ساز
model = torch.nn.Linear(1, 1)
optimizer = optim.SGD(model.parameters(), lr=0.01)

# مقداردهی اولیه داده‌های ورودی و هدف
inputs = torch.randn(1, 1, requires_grad=True)
target = torch.randn(1, 1)

# شروع حلقه آموزش
for _ in range(5):
# انجام مرحله رو به جلو
output = model(inputs)
loss = torch.nn.functional.mse_loss(output, target)

# انجام مرحله رو به عقب و به‌روزرسانی پارامترهای مدل
optimizer.zero_grad() # صفر کردن گرادیان‌ها
loss.backward() # محاسبه گرادیان‌ها
optimizer.step() # به‌روزرسانی وزن‌ها


#Deep_Learning

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

🔺 آموزشی

🔵معماری Densenet
👉🔗 https://t.iss.one/data_ml/392

🔵معماری Squeeznet
👉🔗 https://t.iss.one/data_ml/395

🔵معماری MobileNet
👉🔗 https://t.iss.one/data_ml/398

🔵آشنایی با Keras
👉🔗 https://t.iss.one/data_ml/403

🔵آشنایی با Pytorch
👉🔗 https://t.iss.one/data_ml/406

🔺 کوئیز

🔵کوییز شماره ۱۰۹: عملکرد لایه‌های Bottleneck در Densenet
👉🔗 https://t.iss.one/data_ml/393

🔵کوییز شماره ۱۱۰: نسخه 1.1 SqueezeNet
👉🔗 https://t.iss.one/data_ml/396

🔵کوییز شماره ۱۱۱: مدل‌های MobileNet v1 و MobileNet v2
👉🔗 https://t.iss.one/data_ml/399

🔵کوییز شماره ۱۱۲: کدوم مورد درباره مدل EfficientNet
👉🔗 https://t.iss.one/data_ml/401

🔵کوییز شماره ۱۱۳: کاربرد اصلی keras.applications
👉🔗 https://t.iss.one/data_ml/404

🔵کوییز شماره ۱۱۴: PyTorch.vision و تابع اعمال تبدیلات هندسی
👉🔗 https://t.iss.one/data_ml/407

🔺 نکته

🔵 آشنایی با DenseNets-B و DenseNets-BC
👉🔗 https://t.iss.one/data_ml/394

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

🔵معماری EfficientNet
👉🔗 https://t.iss.one/data_ml/400

🔵یادگیری انتقالی و پیاده سازی EfficientNet با Keras
👉🔗 https://t.iss.one/data_ml/402

🔵تبدیل متن در Keras
👉🔗 https://t.iss.one/data_ml/405

🔵از استفاده ()zero_grad در PyTorch
👉🔗 https://t.iss.one/data_ml/408

#Weekend
#Deep_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1👏1
👩‍🎓 برنامه آموزشی هفته: اتوانکدرها - AutoEncoders

🟠شنبه: تعریف اتوانکدرها

🔵یک‌شنبه: رمزگذار یا Encoder

🟢دوشنبه: فضای پنهان یا Latent Space

🔴سه‌شنبه: رمزگشا یا Decoder

🟠چهارشنبه: معماری U-Net

🔵پنج‌شنبه: کاربردها

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

#Deep_Learning
#AutoEncoders

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥1👨‍💻1
🟡 وبینار رایگان توسعه مهارت فردی در دیتاساینس و ماشین لرنینگ

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

🔺 سرفصل‌ها

🔵چطور از روند سریع رشد هوش مصنوعی جا نمونیم؟
🔵هدف‌گذاری تحصیلی و شغلی برای ۱۴۰۳
🔵لایف استایل دیتاساینتیست‌ها چطوره؟
🔵چطور میشه در سازمان‌ها رشد کنم یا استارتاپ خودمون رو توسعه بدیم؟
🔵آشنایی با مهارت‌های لازم برای بقا در رقابت‌ بازارکار

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

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

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥3👍2👨‍💻2
👨‍🎓 آشنایی با خودرمزگذارها یا AutoEncoders

خودرمزگذارها کلاس خاصی از الگوریتم‌ها هستن که می‌تونن بدون نیاز به برچسب، بازنمایی‌های کارآمدی از داده‌های ورودی رو یاد بگیرن و زیر مجموعه‌ای از شبکه‌های عصبی مصنوعی هستن که برای یادگیری بدون نظارت طراحی شدن.

یادگیری فشرده سازی و نمایش موثر داده‌های ورودی بدون برچسب خاص، اصل اساسی یک رمزگشای خودکاره. این کار با استفاده از یک ساختار دو بخشی که از یک رمزگذار و یک رمزگشا تشکیل شده، انجام میشه. رمزگذار داده‌های ورودی رو به یک نمایش با ابعاد کم شده، تبدیل می‌کنه که معمولا به عنوان «فضای نهفته» یا «کدگذار» شناخته می‌شه.

از این نمایش، یک رمزگشا ورودی اولیه رو بازسازی می‌کنه. برای اینکه شبکه الگوهای معناداری در داده‌ها به دست بیاره، فرآیند کدگذاری و کدگشایی به تعریف ویژگی‌های ضروری کمک می‌کنن.

🔵 معماری خودرمزگذار در یادگیری عمیق

معماری کلی یک خودرمزگذار شامل یک رمزگذار، یک رمزگشا و یک فضای پنهان هست.

🔵رمزگذار (Encoder)

رمزگذار وظیفه تبدیل داده‌های ورودی به یک فرمت یا بردار با بعد کمتر و قابل استفاده است. این فرآیند به کاهش ابعاد داده‌ها کمک می‌کنه و ویژگی‌های مهم رو برجسته می‌کنه. این مرحله می‌تونه شبکه‌های عمیق مختلفی مثل CNN یا RNN استفاده کنه.

🔵رمزگشا (Decoder)

رمزگشا وظیفه بازسازی داده‌ها از فضای پنهان به فضای اصلی رو داره. این فرآیند برای بازیابی دقیق اطلاعات از فضای پنهان و تبدیل‌شون به یک فرمت قابل فهم مفیده. این مرحله هم همچنین می‌تونه شبکه‌های عمیق مختلفی مثل CNN یا RNN استفاده کنه.

🔵فضای پنهان (Latent Space)

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

#Deep_Learning
#AutoEncoders

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👌3👨‍💻1
🔵 انواع اتوانکودرها

🔵اتوانکودر ساده (Basic AutoEncoder)

در ساده‌ترین شکل، یک اتوانکودر شامل دو بخشه: کدگذار و کدگشا. هدف در این نوع، یادگیری ویژگی‌های مهم و حذف نویزه.

🔵Undercomplete AutoEncoder

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

🔵Sparse AutoEncoder

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

🔵اتوانکودر متغییر (Variational AutoEncoder - VAE)
خودرمزنگارهای متغییر از اتوانکودرهایی هستن که نمایش‌های داده رو به صورت توزیع احتمالاتی مدل‌سازی می‌کنن. در این مدل، کدگذار به جای تولید یک کد ثابت برای هر نمونه ورودی، پارامترهای یک توزیع احتمالاتی رو تولید می‌کنه که می‌تونه برای بازسازی داده‌های ورودی استفاده شه. در نتیجه VAE توانایی تولید داده‌های جدید که به داده‌های آموزشی شباهت دارن رو پیدا می‌کنه.

🔵اتوانکودر پاک‌سازی (Denoising AutoEncoder)

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

🔵اتوانکودر کانولوشنال (Convolutional AutoEncoder)

اتوانکودرهای کانولوشنال مخصوصا برای داده‌هایی با توپولوژی شبکه‌ای مثل تصاویر طراحی شدن. این مدل‌ها از لایه‌های کانولوشن به جای لایه‌های کاملاً متصل استفاده می‌کنن تا ویژگی‌های محلی داده‌ها رو بهتر یاد بگیرن و در نتیجه بازسازی دقیق‌تری از داده‌های ورودی ارائه بدن.

#Deep_Learning
#AutoEncoders

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👌2👨‍💻1