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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
🎞 یادگیری انتقالی و پیاده سازی 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
👨‍🎓 آشنایی با رمزگذار یا Encoder در شبکه‌های خودرمزنگار

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

🔵 نحوه کار رمزگذار

رمزگذار معمولاً شامل چند لایه‌ست که می‌تونه شامل لایه‌های کاملاً متصل (fully connected layers)، لایه‌های کانولوشنی (convolutional layers) یا حتی لایه‌های تکراری (recurrent layers) باشه.

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

🔵 تکنیک‌های پیشرفته در رمزگذارها

در مدل‌های پیشرفته‌تر، رمزگذارها ممکنه از تکنیک‌هایی مثل رگولاریزاسیون (Regularization) برای جلوگیری از بیش‌برازش استفاده کنن. علاوه بر این، میشه از خودرمزنگار متغیر (Variational Autoencoders) که مدل‌های احتمالی هستن هم استفاده کرد تا یک توزیع احتمالی از داده‌ها رو در فضای کد مدل‌سازی کنن.

🔵 کاربردهای Encoderها

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

#Deep_Learning
#AutoEncoders

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

در این کد، یک کدگذار ساده در شبکه‌های خودرمزنگار با استفاده از کتابخانه‌ی Keras و با هدف کاهش بعد داده‌های تصویری پیاده‌سازی شده.

import numpy as np
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model

def build_autoencoder(input_dim, encoding_dim):
# تعریف ورودی
input_img = Input(shape=(input_dim,))

# لایه‌ی کدگذار
encoded = Dense(encoding_dim, activation='relu')(input_img)

# لایه‌ی کدگشا
decoded = Dense(input_dim, activation='sigmoid')(encoded)

# مدل خودرمزنگار کامل
autoencoder = Model(input_img, decoded)

# مدل کدگذار
encoder = Model(input_img, encoded)

# مدل کدگشا
# برای ساخت کدگشا به یک ورودی برای لایه‌های کدگشا نیاز داریم
encoded_input = Input(shape=(encoding_dim,))
decoder_layer = autoencoder.layers[-1]
decoder = Model(encoded_input, decoder_layer(encoded_input))

autoencoder.compile(optimizer='adam', loss='binary_crossentropy')

return autoencoder, encoder, decoder

# پارامترهای مدل
input_dim = 784 # مثلا برای تصاویر MNIST با ابعاد 28x28
encoding_dim = 32 # ابعاد فضای ویژگی که می‌خواهیم داده‌ها را به آن تبدیل کنیم

autoencoder, encoder, decoder = build_autoencoder(input_dim, encoding_dim)

autoencoder.summary()
encoder.summary()
decoder.summary()


#Deep_Learning
#AutoEncoders

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👌31👨‍💻1
👨‍🎓 فضای پنهان یا Latent Space

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

🔵 کاربردهای فضای پنهان

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

🔵فضای پنهان باید به نحوی طراحی شه که بتونه ویژگی‌های مهم داده‌ها رو حفظ کنه؛ پس معماری شبکه و تابع هزینه‌ای که برای آموزش خودرمزنگار استفاده می‌شه مهمه.

🔵در سطح پیشرفته‌تر، مطالعه Latent Space شامل بررسی نحوه تنظیم شبکه‌ها برای به دست آوردن نمایش‌هاییه که کارآمدتر و معنادارتر هستن. تکنیک‌هایی مثل آموزش تقویتی، نظارت شده و نیمه‌نظارتی به بهبود کارایی فضای پنهان کمک می‌کنن. همچنین، استفاده از خودرمزنگارهای متغییر (Variational AutoEncoders) که یک نمونه از خودرمزنگارها با قابلیت تولید نمونه‌های جدید از فضای پنهانه، هم بسیار مورد توجه قرار گرفته. این مدل‌ با استفاده از روش‌های آماری، فضای پنهان رو به نحوی مدل‌سازی می‌کنه که داده‌های جدید با ویژگی‌های مشابه به داده‌های آموزشی باشن.

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

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌5👍3👨‍💻2
📝 چه عواملی روی ظرفیت و اندازه فضای پنهان در یک خودرمزنگار تأثیر گذارن؟

🔵پیچیدگی داده‌های ورودی: داده‌های پیچیده‌تر با ویژگی‌های بیشتر ممکنه نیازمند یک فضای پنهان با ابعاد بزرگتر برای نگه‌داری اطلاعات باشن.

🔵هدف مدل‌سازی: اگه هدف کاهش ابعاد برای تجزیه و تحلیل داده‌ها باشه، احتمالا یک فضای پنهان کوچک‌تر مناسبه؛ در حالی که برای بازسازی داده‌ها با دقت بالا، فضای پنهان بزرگتری نیازه.

🔵معماری خودرمزنگار: تعداد و اندازه لایه‌ها و نورون‌ها در شبکه، مستقیماً روی اندازه و ظرفیت فضای پنهان تأثیر می‌گذاره.

🔵رگولاریزاسیون: استفاده از روش‌های رگولاریزاسیون مثل L1 و L2 به کنترل اندازه فضای پنهان کمک می‌کنه تا از بیش‌برازش جلوگیری شه.

🔵تنظیمات آموزش: نرخ یادگیری، تعداد epochها و سایر پارامترهای آموزشی روی توانایی شبکه در یادگیری نمایش‌های مؤثر در فضای پنهان تأثیر گذارن.

در نهایت، تعادل بین ظرفیت Latent Space و توانایی شبکه برای بازسازی داده‌ها، به دقت فرایند یادگیری و هدف نهایی مدل بستگی داره. انتخاب درست اندازه و ظرفیت این فضا به بهینه‌سازی عملکرد خودرمزنگار در کاربردهای مختلف کمک می‌کنه.

#Deep_Learning
#AutoEncoders

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

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

🔵 معماری Decoder

معماری دیکودر می‌تونه به شکل‌های مختلفی باشه اما اغلب شامل لایه‌هایی هست که عملکردی معکوس نسبت به لایه‌های انکودر دارن. این لایه‌ها ممکنه شامل کانولوشن، لایه‌های کاملاً متصل و یا حتی لایه‌های نرمال‌سازی باشن.

🔵 عملکرد Decoder

عملکرد Decoder مستقیماً تحت تاثیر کیفیت نمایش ارائه شده توسط Encoder قرار داره. اگه نمایش فشرده دارای اطلاعات کافی و مرتبط با ویژگی‌های داده‌های ورودی باشه، رمزگشا می‌تونه بازسازی دقیق‌تری انجام بده. در نتیجه کیفیت آموزش Encoder روی عملکرد Decoder تاثیر مستقیم داره.

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

#Deep_Learning
#AutoEncoders

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