تابع هزینه، که گاهی به عنوان تابع خطا هم شناخته میشه، معیاری برای اندازهگیری میزان دقت یک مدل شبکه عصبی در پیشبینی نتایجه.
این تابع مقداری رو به عنوان هزینه یا خطا محاسبه میکنه که بیانگر تفاوت بین خروجی پیشبینی شده توسط مدل و خروجی هدفه.
توابع هزینه متفاوتی وجود دارن که بر اساس نوع مسئله و ساختار خروجی مدل انتخاب میشن.
برای کمینهسازی تابع هزینه و بهینهسازی وزنهای شبکه، روشهای مختلفی وجود داره. از جمله مهمترین روشها، الگوریتم پسانتشار (Backpropagation) هست.
یکی از چالشهای اصلی در استفاده از توابع هزینه و پسانتشار، مسئله محو شدگی گرادیانه. این مشکل حالتیه که گرادیانها در لایههای عمیقتر شبکه به شدت کاهش پیدا میکنن و بهروزرسانی وزنها بسیار کم میشه.
راهکارهایی مثل استفاده از توابع فعالسازی مناسب (مثل ReLU)، اولیهسازی وزنها و استفاده از نرخهای یادگیری تطبیقی به حل این مشکل کمک میکنن.
#Deep_Learning
#Artificial_Neural_Networks
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6❤3👨💻2👍1
❓کوییز شماره ۹۵: چرا استفاده از نرخ یادگیری بسیار بالا در Backpropagation میتونه مشکلساز باشه؟
Anonymous Quiz
14%
نرخ یادگیری بالا هیچ تأثیری روی سرعت همگرایی شبکه نداره.
81%
ممکنه باعث شه شبکه در طول زمان آموزش دائماً روی یک حداقل Local یا Global بپره و همگرا نشه.
5%
نرخ یادگیری بالا تنها برای شبکههای کوچیک مناسبه.
😎4👍3🤔1
محوشدگی گرادیان
نوید حقوقی
مشکل محوشدگی گرادیان یا Vanishing Gradient یکی از رفتارهای ناپایدار شبکهست و ممکنه موقع آموزش مدل پیش بیاد.
#Machine_Learning
#Podcast
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👌2❤1👍1
در یادگیری ماشین و یادگیری عمیق، مدلها گاهی اوقات بیشبرازش پیدا میکنن، به این معنی که بیش از حد به دادههای آموزشی وابسته میشن و قابلیت تعمیمشون به دادههای جدید کاهش پیدا میکنه. برای حل این مشکل، از تکنیکهای تنظیم استفاده میشه.
تنظیم L1 (معروف به Lasso) و L2 (معروف به Ridge) دو روش رایج برای جلوگیری از بیشبرازش هستن. هر دو این روشها با اضافه کردن یک جمله تنظیم به تابع هزینه کار میکنن که به وزنهای مدل جریمه اعمال میکنه.
روش دیگهاش که برای جلوگیری از بیشبرازش استفاده میشه، Dropout هست. در این روش، در هر دور آموزش، بعضی از نورونها به طور تصادفی انتخاب و حذف میشن.
این کار باعث میشه که مدل نتونه به طور کامل به دادههای آموزشی وابسته شه و مجبور به یادگیری ویژگیهای معنادارتر از دادهها میشه. Dropout به عنوان یک روش موثر در شبکههای عصبی عمیق شناخته شده.
نرمال سازی دسته ای یک تکنیک دیگه برای بهبود عملکرد و ثبات شبکههای عصبی عمیقه. این روش به نرمال سازی خروجی هر لایه با استفاده از میانگین و انحراف معیار خروجیهای اون دسته کار میکنه.
این کار باعث میشه که توزیع ورودیها به لایههای بعدی نسبتاً ثابت باقی بمونه و مشکل محوشدگی کاهش پیدا کنه.
در حالی که تنظیم L1، L2، Dropout و Batch Normalization روشهای رایج برای جلوگیری از بیشبرازش و بهبود عملکرد مدل هستن، روشهای جدیدی به طور مداوم درحال معرفی هستن.
برای مثال، نرمالسازی وزن و تنظیم خودکار (AutoML)، که هدفشون بهینهسازی هایپرپارامترها و رویکردهای تنظیمه، در حال توسعه هستن.
#Deep_Learning
#Artificial_Neural_Networks
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👌2👨💻2
❓کوییز شماره ۹۶: تکنیک Batch Normalization چطور به بهبود کارایی شبکههای عصبی عمیق کمک میکنه، به ویژه در شبکههای با لایههای زیاد؟
Anonymous Quiz
13%
با کاهش تاثیر نورونهای فعال روی خروجی نهایی مدل.
9%
افزایش دقت مدل فقط در مواردی که دادهها دارای توزیع یکنواخت باشن.
47%
بهبود ثبات فرایند آموزش با کاهش مشکل انتشار گرادیان ناپایدار و کمک به تنظیم خودکار سرعت یادگیری.
31%
تاثیر مستقیم روی کاهش زمان آموزش با کاهش تعداد دورههای لازم برای رسیدن به همگرایی.
❤3👌2😎2👍1
تکنیکهای Dropout و DropConnect هر دو برای جلوگیری از بیشبرازش در مدلهای یادگیری عمیق استفاده میشن، اما در نحوه عملکرد باهم متفاوتن.
تفاوت اصلی بین این دو در اینکه Dropout کل نورونها رو حذف میکنه، در حالی که DropConnect تنها بعضی از وزنهای مرتبط با نورونها رو حذف میکنه.
این تفاوت در نحوهی ایجاد تنوع و مقاومت در برابر بیشبرازش موثره. DropConnect میتونه به مدل اجازه بده که وابستگیهای پیچیدهتری رو یادبگیره، چون فقط بعضی از وزنها حذف میشن، نه کل نورون.
#Deep_Learning
#Artificial_Neural_Networks
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👌2❤1🔥1
#Weekend
#Deep_Learning
#Artificial_Neural_Networks
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👏2👍1👨💻1
در این وبینار شما با زمینههای متأثر از ماشین لرنینگ آشنا میشین. همچنین اپلیکیشنها و محصولات موفق این حوزههای مختلف معرفی خواهند شد.
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3❤2👍1👨💻1
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
آموزش دیتاساینس و ماشینلرنینگ
Audio
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥2
شبکههای عصبی پیچشی (Convolutional Neural Networks یا CNNs) با الهام از ساختار بینایی موجودات زنده طراحی شدن و توانایی شگفتانگیزی در استخراج ویژگیهای مهم از تصاویر با حداقل پیشپردازش دارن.
ایدهی اصلی پشت شبکههای عصبی پیچشی به مطالعهی چگونگی پردازش اطلاعات تصویری توسط مغز انسان و سایر موجودات زنده برمیگرده.
این کشف انگیزهای شد برای طراحی مدلهای مصنوعی که میتونن الگوهای مشابهی از دادهها رو با استفاده از فیلترهای پیچشی تشخیص بدن.
یکی از اولین کاربردهای عملی این ایده در شبکه نورونی لایه پیچشی (LeNet) توسط یان لیکان در دهه ۱۹۹۰ معرفی شد.
از نوآوریهای مهم در این حوزه، معرفی تکنیکهایی مثل انتقال یادگیری (Transfer Learning)، تکنیکهای افزایش داده (Data Augmentation) و شبکههای پیچشی عمیق با لایههای باقیمانده (Residual Networks) بود که توانایی مدلها در آموزش عمیقتر و کارآمدتر کردن فرآیند یادگیری رو افزایش داد.
با پیچیدهتر شدن شبکهها، مسائل جدیدی مثل بیشبرازش، نیاز به دادههای آموزشی زیاد و محدودیتهای محاسباتی به وجود اومد.
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌5❤4👍3👨💻1
❓کوییز شماره ۹۷: در یک شبکهی CNN، اصطلاح کرنل (Kernel) به چه معنی هست و کدوم یک از موارد زیر توصیفکنندهی عملکرد کرنل سوبل (Sobel Kernel) در تصاویره؟
Anonymous Quiz
51%
وزنهایی که به طور تصادفی اولیهسازی شده و در طول آموزش بهروزرسانی میشن. تشخیص لبههای عمودی تصویر
20%
تابع فعالسازی که روی خروجی هر لایه اعمال میشه. تشخیص تغییرات رنگ در سراسر تصویر
8%
مقدار خطای محاسبه شده در هر دور از آموزش. تخمین زاویههای موجود در تصویر
20%
الگوهای اولیه که شبکه قبل از آموزش شناسایی میکنه. ایجاد نقشهی حرارتی از ویژگیهای تصویر
😎5👍3❤2👨💻1
CNN
نوید حقوقی
حوزه بینایی ماشین یکی از حوزههای پرطرفدار هوش مصنوعیه و شبکه عصبی کانولوشنی یا CNN یکی از الگوریتمهای معروفیه که تو این حوزه خیلی استفاده میشه.
#Machine_Learning
#Podcast
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥2
فیلترها، هستههایی هستن که روی تصاویر ورودی اعمال میشن تا ویژگیهای خاصی رو استخراج کنن. هر فیلتر، یک آرایهای از وزنها (مقادیر) هست که با حرکت روی همه نقاط تصویر، یک نقشه ویژگی (feature map) تولید میکنه. این فرآیند، کانولوشن نام داره و به ما امکان میده تا ویژگیهایی مثل لبهها، بافتها و شکلها رو در تصویر شناسایی کنیم.
- فیلتر Sobel: برای تشخیص لبهها در تصاویر استفاده میشه. این فیلتر از ماتریسهای 3x3 تشکیل شده و لبههای عمودی، افقی و مورب رو در تصویر تشخیص میده.
- فیلتر Gaussian: برای تار کردن تصاویر و حذف نویز استفاده میشه. این فیلتر از ماتریسهای گاوسی تشکیل شده و نویز رو در تصویر با حفظ جزئیات مهم، حذف میکنه.
در طول فرآیند آموزش شبکه، شبکه با دریافت تصاویر ورودی و برچسبهای مربوطه، به طور خودکار فیلترهایی رو یاد میگیره که ویژگیهای مهم تصاویر رو برای تشخیص اشیاء یا طبقهبندی تصاویر استخراج کنن.
استراید، تعداد پیکسلهایی هست که فیلتر بین هر اعمال کانولوشن حرکت میکنه. اگه Stride برابر ۱ باشه، فیلتر بعد از هر اعمال، یک پیکسل حرکت میکنه.
اگه Stride بزرگتر باشه، فیلتر فواصل بیشتری رو پوشش میده، که منجر به کاهش ابعاد نقشه ویژگی میشه؛ در نتیجه به کاهش پیچیدگی محاسباتی و حافظه شبکه کمک شده.
پدینگ، فرآیندیه که در اون حاشیههای اطراف تصویر ورودی با مقادیر خاصی (معمولاً صفر) پر میشن تا ابعاد نقشه ویژگی نهایی تنظیم یا از کاهش شدید ابعاد جلوگیری شه.
- تکنیک Dilated Padding امکان افزایش فیلد دید فیلترها بدون افزایش تعداد پارامترها رو فراهم میکنه. این تکنیک به شبکهها اجازه میده که ویژگیهای موجود در دادهها رو بهتر استخراج کنن.
- در روش پدینگ انعطافپذیر یا Adaptive Padding، پدینگ بر اساس ویژگیهای خاص دادهها یا لایههای شبکه تنظیم میشه تا بهترین نحوه استفاده از پدینگ رو برای استخراج ویژگیها انتخاب کنه.
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👌4👨💻2❤1
❓کوییز شماره ۹۸: استفاده از پدینگ Same در یک لایه کانولوشنی با استراید ۱ چه تاثیری روی ابعاد نقشه ویژگی خروجی داره؟
Anonymous Quiz
13%
ابعاد نقشه ویژگی خروجی کاهش پیدا میکنه.
73%
ابعاد نقشه ویژگی خروجی نسبت به تصویر ورودی بدون تغییر باقی میمونه.
7%
ابعاد نقشه ویژگی خروجی پیدا میکنه.
7%
تنها تعداد کانالهای نقشه ویژگی خروجی تغییر میکنه.
😎4👌2❤1👍1🤔1
آموزش دیتاساینس و ماشینلرنینگ
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2
ابتدا باید کتابخانههای لازم رو نصب و وارد کنیم. 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)
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👌2❤1
کدوم تابع فعالساز معمولاً برای لایههای کانولوشن در CNN استفاده میشه؟
Anonymous Quiz
19%
Sigmoid
6%
Tanh
71%
ReLU
4%
Linear
😎7👍3❤1🤔1
#Deep_Learning
#CNNs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👌2👍1👨💻1