Eldor’s AI Lab
前往频道在 Telegram
🚀 Eldor’s AI Lab – Sun’iy intellektni chuqur va amaliy o‘rganish! 🔹 AI va ML nazariyasi 🔹 Kod va amaliy mashg‘ulotlar 🔹 Dasturlash bo‘yicha maslahatlar 🔹 Ilmiy maqolalar va eng so‘nggi yangiliklar 💡 AIni o‘rganishni istaysizmi? Let's go!
显示更多未指定国家未指定类别
385
订阅者
无数据24 小时
-27 天
+530 天
吸引订阅者
七月 '26
七月 '26
+15
在0个频道中
六月 '26
+7
在0个频道中
Get PRO
五月 '26
+13
在0个频道中
Get PRO
四月 '26
+19
在0个频道中
Get PRO
三月 '26
+26
在0个频道中
Get PRO
二月 '26
+12
在0个频道中
Get PRO
一月 '26
+21
在0个频道中
Get PRO
十二月 '25
+21
在0个频道中
Get PRO
十一月 '25
+19
在0个频道中
Get PRO
十月 '25
+149
在2个频道中
Get PRO
九月 '250
在1个频道中
Get PRO
八月 '25
+13
在1个频道中
Get PRO
七月 '250
在1个频道中
Get PRO
六月 '25
+165
在1个频道中
Get PRO
五月 '250
在0个频道中
Get PRO
四月 '250
在4个频道中
Get PRO
三月 '250
在0个频道中
Get PRO
二月 '25
+2
在4个频道中
| 日期 | 订阅者增长 | 提及 | 频道 | |
| 29 七月 | 0 | |||
| 28 七月 | 0 | |||
| 27 七月 | 0 | |||
| 26 七月 | 0 | |||
| 25 七月 | 0 | |||
| 24 七月 | 0 | |||
| 23 七月 | 0 | |||
| 22 七月 | 0 | |||
| 21 七月 | +1 | |||
| 20 七月 | +1 | |||
| 19 七月 | +1 | |||
| 18 七月 | +2 | |||
| 17 七月 | +1 | |||
| 16 七月 | +2 | |||
| 15 七月 | +1 | |||
| 14 七月 | +1 | |||
| 13 七月 | 0 | |||
| 12 七月 | 0 | |||
| 11 七月 | +2 | |||
| 10 七月 | 0 | |||
| 09 七月 | 0 | |||
| 08 七月 | 0 | |||
| 07 七月 | +1 | |||
| 06 七月 | +1 | |||
| 05 七月 | 0 | |||
| 04 七月 | +1 | |||
| 03 七月 | 0 | |||
| 02 七月 | 0 | |||
| 01 七月 | 0 |
频道帖子
📌 9.2-dars: Gradient Accumulation — Katta batch, kichik xotira
🎯 Deep Learning Mathematics — @EldorML
❓ Savol: GPT-3 o'qitishda batch size = 3.2 million token ishlatilgan.
Bitta GPUda bu mumkin emas. Nima qilish kerak?
💡 Javob: Gradient Accumulation.
🔹 Asosiy muammo
Katta batch → yaxshi o'qitish, lekin ko'p xotira.
ResNet50, batch=256:
Model vaznlari: ~100 MB
Aktivatsiyalar: ~4 GB
Gradientlar: ~100 MB
Jami: ~4.5 GB
batch=512 → ~9 GB
batch=1024 → ~18 GB 💥 16 GB GPU da sig'maydi!
🔹 Asosiy g'oya
Kichik batchlarda gradientlarni yig’ish,
keyin BIR MARTA yangilash.
Misol: 100 savol, stol faqat 10 ta sig'adi.
1. 10 ta savol yech → eslab qol
2. Stol tozala, 10 ta yangi yech → qo'sh
3. Yana 10 ta...
4. Yana 10 ta...
5. Jami 40 ta yechildi → xulosa chiqar!
Gradient Accumulation ham xuddi shu.
🔹 Matematik isbot
Oddiy batch=32:
W_yangi = W - lr × (1/32) × sum(grad_i)
GA (micro=8, steps=4):
g1 = (1/8) × sum(grad 1-8)
g2 = (1/8) × sum(grad 9-16)
g3 = (1/8) × sum(grad 17-24)
g4 = (1/8) × sum(grad 25-32)
W_yangi = W - lr × (g1+g2+g3+g4)/4
Natija:
(g1+g2+g3+g4)/4 = (1/32) × sum(grad 1-32)
✅ AYNAN BIR XIL!
🔹 Kod o'zgarishi — faqat 3 ta qator
Avval (oddiy):
optimizer.zero_grad()
loss = criterion(model(x), y)
loss.backward()
optimizer.step()
Keyin (GA, accum=4):
loss = criterion(model(x), y) / 4 ← bo'lish
loss.backward() ← zero_grad yo'q!
if (i+1) % 4 == 0:
optimizer.step() ← faqat shu yerda
optimizer.zero_grad()
🔹 Nima uchun loss bo'linadi?
Bo'lmasak, gradientlar YIG'INDI bo'ladi, o'rtacha emas.
g1 + g2 + g3 + g4 ≠ (g1+g2+g3+g4)/4
loss / 4 qilsak:
g1/4 + g2/4 + g3/4 + g4/4 = (g1+g2+g3+g4)/4
✅ To'g'ri o'rtacha — batch=32 bilan bir xil.
🔹 Mixed Precision + GA (eng kuchli kombinatsiya)
with autocast():
loss = criterion(model(x), y) / accum_steps
scaler.scale(loss).backward()
if (i+1) % accum_steps == 0:
scaler.step(optimizer)
scaler.update()
optimizer.zero_grad()
Natija:
✅ Katta effective batch
✅ 2× tezroq hisoblash (FP16)
✅ 2× kam xotira
✅ Uch afzallik bitta kodda!
🔹 Effective batch size formulasi
Effective batch = micro_batch × accum_steps × num_GPUs
1 GPU misoli: 8 × 4 × 1 = 32
8 GPU misoli: 8 × 4 × 8 = 256
GPT-3 misoli: ? × ? × 1024 = 3,200,000
🔹 Cheklovlar
⚠️ BatchNorm muammosi:
micro-batch = 8 dan statistika oladi,
effective batch = 32 bo'lsa ham.
Yechim: GroupNorm yoki LayerNorm.
⚠️ O'qitish sekinlashadi:
GA: 4 qadam = 1 update
(lekin update sifati bir xil)
⚠️ Learning rate moslash:
lr_yangi = lr × (effective_batch / base_batch)
Misol: 0.001 × (256/32) = 0.008
🎯 Asosiy xulosa
GA — eng oddiy va eng kuchli xotira yechimi.
8 GB GPU bilan 32 GB GPU kabi katta batch o'qitish.
Faqat 3 qator kod o'zgarishi.
GPT, LLaMA, BERT — barchasi GA ishlatadi.
Endi siz ham ishlatishingiz mumkin.
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML
| 2 | 📌 9.1-dars: Mixed Precision Training — Tezroq va tejamkor model o'qitish
🎯 Deep Learning Mathematics — @EldorML
❓ Savol: Model to'g'ri ishlaydi. Lekin GPU xotirasi yetmayapti, o'qitish esa juda sekin. Qanday qilib model sifatini saqlagan holda 1.5–2× tezroq o'qitish mumkin?
💡 Javob: Mixed Precision Training.
🔹 Asosiy g'oya
Hamma hisoblashlarni 32-bit aniqlikda bajarish shart emas.
FP32 (32-bit) → son jihatdan muhim hisoblashlar
FP16/BF16 (16-bit) → tez hisoblashlar
Natija:
✅ Kamroq GPU xotira
✅ Tezroq trening
✅ Deyarli bir xil model sifati
🔹 Floating Point formatlari
FP32:
* 32 bit
* 4 bayt
* Yuqori aniqlik
FP16:
* 16 bit
* 2 bayt
* Kichik diapazon
* Yuqoriroq aniqlik
BF16:
* 16 bit
* 2 bayt
* FP32 bilan bir xil diapazon
* Pastroq aniqlik
💡 BF16 = FP32 exponent + FP16 o'lcham
🔹 Nima uchun bu ishlaydi?
Deep Learning mukammal aniqlikni talab qilmaydi.
Model:
• millionlab parametrlar
• minglab iteratsiyalar
• statistik optimizatsiya
Shuning uchun kichik hisoblash xatolari odatda yakuniy natijaga deyarli ta'sir qilmaydi.
🔹 Lekin muammo bor...
FP16 da juda kichik gradientlar yo'qolishi mumkin.
Gradient
0.0000003
↓
FP16 uchun juda kichik
↓
0 ga underflow bo'lishi mumkin
↓
Model o'rganmay qoladi
🔹 Dynamic Loss Scaling
Yechim juda oddiy.
1️⃣ Loss × 1024
↓
2️⃣ Gradient ham kattalashadi
↓
3️⃣ Optimizer oldidan yana 1024 ga bo'linadi
✅ Gradient yo'qolmaydi.
💡 BF16 da odatda Loss Scaling kerak bo'lmaydi.
🔹 Mixed Precision qanday ishlaydi?
FP16/BF16
✅ Forward pass
✅ Backward pass
✅ Ko'pchilik matritsa ko'paytirishlar
FP32
✅ Master weights
✅ Optimizer state
✅ Son jihatdan sezgir hisoblashlar
Shuning uchun ham tezlik, ham aniqlik saqlanadi.
🔹 Nima uchun tezroq?
GPU ichida maxsus Tensor Core lar mavjud.
FP32 Matritsa
│
▼
CUDA Core
│
▼
Natija
FP16/BF16 Matritsa
│
▼
Tensor Core ⚡
│
▼
Natija
Tensor Core lar 16-bit hisoblashlarni ancha tez bajaradi.
Bundan tashqari:
FP32: 1 son = 4 bayt
FP16: 1 son = 2 bayt
Kamroq xotira o'qiladi, kamroq ma'lumot uzatiladi va hisoblash tezlashadi.
🔹 Xotira misoli
GPT-2 (117 million parametr)
FP32: 117M × 4 bayt ≈ 468 MB
FP16: 117M × 2 bayt ≈ 234 MB
💡 Bir xil model — ikki baravar kam xotira.
🔹 PyTorch AMP
Oldin:
output = model(x)
Endi esa:
with autocast():
output = model(x)
PyTorch avtomatik ravishda qaysi operatsiyalarni FP16/BF16 da bajarishni o'zi hal qiladi.
Dasturchi deyarli hech narsani o'zgartirmaydi.
🔹 Natija
Ko'p Deep Learning loyihalarida:
🚀 1.5–2× tezroq trening
💾 30–50% kam GPU xotira
🎯 Model sifati deyarli o'zgarmaydi
🎯 Asosiy xulosa
Mixed Precision — zamonaviy Deep Learning'ning eng muhim optimallashtirish usullaridan biri.
Bugungi kunda Google, NVIDIA, OpenAI, Meta va deyarli barcha yirik AI kompaniyalari katta modellarni aynan FP16 yoki BF16 yordamida o'qitadi.
Agar siz LLM, Computer Vision yoki boshqa zamonaviy AI modellarini production darajasida o'qitmoqchi bo'lsangiz, **Mixed Precision**'ni bilishingiz shart.
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 221 |
| 3 | 📌 8.5-dars: Model Interpretability — Model ichida nima bo'layotganini tushunish
🎯 Deep Learning Mathematics — @EldorML
Savol: Model 99% aniqlik bilan ishlaydi.
Lekin nima uchun aynan shu qarorni qabul qildi?
Javob: Black Box muammosi — va uni hal qiluvchi usullar.
🔹 Asosiy muammo — Black Box
Kirish rasm (🐱)
│
▼
█████
█████ ← ichkarida nima bo'layotgani
█████ KO'RINMAYDI
│
▼
"Mushuk" (97%)
Tibbiyot, moliya, avtonom haydashda
“Asossiz ishoning" tushunchasi — qabul qilinmaydi.
🔹 Nima uchun xavfli?
"Bo'ri vs It" klassifikatori: 95% aniqlik.
Lekin model hayvonga emas — QOR FONIGA qaraydi!
Barcha bo'ri rasmlari qorli fonda olingan edi.
Model "bo'ri"ni emas, "qor”ni o'rgangan.
❌ To'g'ri javob, noto'g'ri sabab.
Interpretability bu xatoni fosh qiladi.
🔹 1. Activation Maximization
"Har bir neyron nimani yoqtiradi?"
Gradient Ascent:
x_yangi = x + η · d(f_i(x))/dx
Rasm gradient yo'nalishida yangilanadi —
neyronni maksimal faollashtiradigan tasvir topiladi.
Natija:
1-qatlam → qirralar, ranglar
5-qatlam → shakllar, naqshlar
15-qatlam → to'liq tushunchalar (mushuk yuzi)
🔹 2. Saliency Maps
"Model qaysi piksellarga e'tibor berdi?"
Formula: S(x) = |dy/dx|
Gradient katta → piksel MUHIM
Gradient kichik → piksel muhim emas
✅ Juda tez (1 marta backward pass)
❌ Ko'pincha shovqinli natija
🔹 3. Grad-CAM (2017)
Saliency Mapdan yaxshiroq yechim.
Piksel darajasi: 224×224 = 50,176 nuqta (shovqinli)
Feature map: 7×7 = 49 hudud (silliq!)
Har feature map uchun ahamiyat:
α_k = gradient o'rtachasi
L = ReLU(Σ α_k · A_k)
Natija: original rasm ustiga qizil "issiqlik xaritasi"
Qizil = model eng ko'p e'tibor bergan hudud
Ko'k = muhim emas
🔹 Saliency vs Grad-CAM
Saliency: tez, shovqinli, har model uchun
Grad-CAM: silliq, tushunarli, faqat CNN uchun
💡 Debug uchun → Saliency
Shifokorga/mijozga ko'rsatish uchun → Grad-CAM
🔹 Misollar
Tibbiyot:
Rentgen → "Pnevmaniya 89%"
Grad-CAM → o'pkaning pastki qismi qizil
Shifokor: "Ha, men ham shu joyga qarayman" ✅
Self-driving:
Kamera → "STOP belgisi aniqlandi"
Saliency → belgi konturlariga qaragan ✅
Klassifikatsiya (xato topish):
Grad-CAM ko'rsatadi — model hayvonga emas,
fon yoki egalik qo'liga qaraydi ❌
🔹 Cheklovlar
⚠️ Explanation ≠ Reasoning
Model "fikr yuritmaydi" — gradient hisoblaydi
⚠️ Bir xil rasm, bir xil model:
Saliency → A hudud
Grad-CAM → B hudud
Integrated Gradients → C hudud
Qaysi biri "haqiqiy"? — Aniq javob yo'q
💡 Interpretability — yakuniy haqiqat emas,
gipoteza yaratish va tekshirish vositasi.
🔹 Zamonaviy usullar
Integrated Gradients — shovqinni kamaytiradi
SmoothGrad — gradientlarni o'rtachalash
SHAP — har xususiyatning hissasi
LIME — mahalliy chiziqli yaqinlashish
Attention Visualization — Transformer uchun
🎯 Asosiy xulosa
Model o'qitish = faqat aniqlik emas.
Yuqori xavfli sohalarda NIMA UCHUN — aniqlikning o'zidan ham muhimroq bo'lishi mumkin.
Bugungi AI kompaniyalari (Google, Meta, OpenAI) — interpretability bo'yicha alohida jamoa va
tadqiqot yo'nalishiga ega. Sababi shu.
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 257 |
| 4 | 📌 8.4-dars: Dimensionality Reduction — Modelni "ichidan" ko'rish
🎯 Deep Learning Mathematics — @EldorML
Savol: BERT 768, ResNet 2048 o'lchamli vektor chiqaradi.
Bu vektorlar ichida nima bor? Modelni qanday "tushunish" mumkin?
Javob: Latent space vizualizatsiyasi — 2D grafikda modelning ichki dunyosi.
🔹 Asosiy muammo
Modellar yuqori o'lchamli vektorlar bilan ishlaydi:
BERT: 768 o'lcham
ResNet: 2048 o'lcham
CLIP: 512 o'lcham
GPT-3: 12,288 o'lcham
Biz 2Ddan ko'pini ko'ra olmaymiz.
Yechim — dimensionality reduction: 2048D → 2D.
🔹 Latent Space nima?
Model har rasmni/har so'zni vektor sifatida ifodalaydi.
O'xshash narsalar — yaqin joylashadi.
Boshqa narsalar — uzoq joylashadi.
Misol (Word Embeddings): king - man + woman ≈ queen
Model "qirol" va "malika" so'zlarini hech kim aytmagan.
U faqat matndan o'rgandi. Lekin vektor arifmetikasi ishlaydi!
Bu — modelning ichki "tasavvur fazosi".
🔹 1. PCA (1901) — eng eski usul
Asosiy g'oya: eng katta o'zgaruvchanlik qaysi yo'nalishda?
✅ Juda tez (1 soniyada)
✅ Reversible — qaytarish mumkin
✅ Variance Explained — qancha ma'lumot saqlangani aniq
❌ Faqat chiziqli — egri tuzilmani topa olmaydi
Misol:
512D → 2D: PC1=35%, PC2=18% → jami 53% saqlandi
🔹 2. t-SNE (2008) — klasterlar uchun
Asosiy g'oya: yuqori o'lchamda yaqin → past o'lchamda ham yaqin.
✅ Klasterlarni aniq ko'rsatadi
✅ Egri tuzilmani topadi
❌ Sekin (10K nuqta = 30 daqiqa)
❌ Har safar boshqa natija
❌ Global tuzilishni buzadi
🔹 3. UMAP (2018) — bugungi standart
t-SNE muammolarini hal qildi.
✅ t-SNE dan 10-100x tezroq
✅ Global tuzilishni saqlaydi
✅ Yangi nuqta qo'shish oson
✅ Hugging Face, bioinformatika, NLP standarti
🎯 Qaysi qachon?
Tez ko'rish → PCA
Klasterlar vizualizatsiyasi → UMAP
Kichik dataset (1-10K) → t-SNE
Katta dataset (100K+) → UMAP
Yangi nuqta qo'shish → PCA yoki UMAP
💡 Qoida: avval PCA, keyin UMAP.
💡 Asosiy xulosa
Model hech qachon "3 yumaloq" deb o'rganmagan.
U faqat piksellardan o'rgandi.
Lekin latent spaceda barcha "3"lar yaqin joylashadi.
Bu — modelning ichki tushunishi.
Dimensionality reduction — shu tushunishni KO'RISH imkoni.
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 268 |
| 5 | 📌 8.3-dars: Normalization Layers — Tarmoqni barqarorlashtirish
🎯 Deep Learning Mathematics — @EldorML
Savol: Activation function nochiziqlilik beradi. Lekin chuqur tarmoqlar nima uchun hali ham beqaror o'rganadi?
Javob: Har qatlamdagi qiymatlar masshtabi nazoratsiz o'zgaradi. Yechim — Normalization.
🔹 Asosiy muammo — Internal Covariate Shift
10 qatlamli tarmoqda o’qitishda:
- 1-qatlam kirishi: ~ N(0, 1) taqsimot
- 5-qatlam kirishi: ~ N(5, 100) taqsimot
- 10-qatlam kirishi: ~ N(-50, 10000) taqsimot
💥 Har qatlam boshqa "dunyoda" yashaydi. Model sekin va beqaror o'rganadi.
Yechim — har qatlamga BIR XIL TARTIBDA ma'lumot keltirish.
🔹 Umumiy formula
Barcha normalizationlar bir xil asosga ega:
x_norm = (x - μ) / √(σ² + ε)
y = γ·x_norm + β
Farq faqat μ va σ² QAYSI QIYMATLARDAN hisoblanishida.
γ va β — model normalizatsiyani kerak bo'lsa "qaytarib olishi" mumkin.
🔹 1. BatchNorm (2015) — Birinchi inqilob
Har KANAL bo'yicha, batch ichidagi barcha rasmlardan o'rtacha.
✅ CNNni 2-3x tezroq o'rgatadi
✅ Yuqori learning rate ishlatish mumkin
❌ Kichik batch (1-2) da BUZILADI:
batch=64: yaxshi ✅
batch=2: noaniq ❌
batch=1: ishlamaydi 💥
⚠️ Train/eval rejimida farqli ishlaydi — running mean/var ishlatiladi.
🔹 2. LayerNorm (2016) — Transformer davri
Batch bo'yicha emas, har NAMUNA ICHIDA o'rtacha.
Transformerda har TOKEN uchun alohida.
✅ Batch sizega bog'liq emas (batch=1 ham ishlaydi)
✅ Sequence uzunligi muhim emas
✅ Train/eval bir xil ishlaydi
🔥 BERT, GPT-2, GPT-3, ViT — barchasi LayerNorm.
🔹 3. InstanceNorm (2016) — Style Transfer
Har RASM, har KANAL alohida statistika.
"Har rasmning o'z uslubi bor — aralashtirmaslik kerak."
🎨 Style Transfer, GAN, CycleGAN, Pix2Pix.
🔹 4. GroupNorm (2018) — Goldilocks zone
Kanallarni GURUHLARGA bo'ladi, har guruh alohida.
BatchNorm: batch birgalikda (batchga bog'liq)
LayerNorm: barcha kanal birga (o'ta umumiy)
InstanceNorm: har kanal alohida (o'ta nozik)
GroupNorm: aralash — Goldilocks! ✅
✅ Batch'ga bog'liq emas
✅ CNN strukturasini saqlaydi
✅ Kichik batch + CNN uchun ideal
🔥 Stable Diffusion, DALL-E, zamonaviy YOLO — GroupNorm.
🎯 Qaysi vazifada qaysi?
CNN (klassik) → BatchNorm
Transformer (BERT, GPT, ViT) → LayerNorm
GAN / Style Transfer → InstanceNorm
Diffusion (Stable Diffusion) → GroupNorm
Object Detection (kichik batch) → GroupNorm
RNN/LSTM → LayerNorm
Mobile inference (batch=1) → GroupNorm / LayerNorm
💡 Qoida:
- Katta batch + CNN → BatchNorm
- Transformer → LayerNorm
- Kichik batch → GroupNorm
- Style transfer → InstanceNorm
💡 Asosiy xulosa
Activation tarmoqqa NOCHIZIQLILIK beradi.
Normalization unga BARQARORLIK beradi.
Ikkisi birga — bugungi muvaffaqiyatli deep learning modellarining asosi.
Faqat normalization qo'shish — 30-50% tezroq o’qitish!
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 284 |
| 6 | 📌 8.2-dars: Activation Functions — Neyron tarmoqning "qarori"
🎯 Deep Learning Mathematics — @EldorML
Savol: 100 ta qatlam qo'shsam, model kuchliroq bo'ladimi?
Javob: Activation bo'lmasa — YO'Q. Sababini ko'ramiz.
🔹 Asosiy mantiq
Faqat W·x + b ishlatib 2 qatlam qursak:
• z1 = W1·x + b1
• y = W2·z1 + b2
= (W2·W1)·x + (W2·b1 + b2)
= W_yangi·x + b_yangi
💥 100 ta qatlam birlashib — bitta chiziqqa aylanadi! Chuqurlik kuch bermaydi.
Yechim — qatlamlar orasiga nochiziqli funksiya qo’shish: h = f(z1) ← activation!
Endi qatlamlar birlashmaydi. Model egri chiziq, XOR, rasm, matnni o'rgana oladi.
🔹 1. Sigmoid (1990) — birinchi mashhur
σ(x) = 1 / (1 + e^(-x)) → chiqish (0, 1)
✅ Ehtimollik sifatida o'qiladi
❌ Vanishing gradient: max hosila = 0.25
10 qatlam: 0.25^10 ≈ 0.0000009
💀 Birinchi qatlamga gradient yetmaydi!
Shu sabab 1990-yillarda chuqur tarmoqlar ishlamasdi.
🔹 2. Tanh — yaxshilangan Sigmoid
tanh(x) → chiqish (-1, 1), nol atrofida markazlangan
Sigmoiddan yaxshiroq, lekin vanishing gradient muammosi qoldi.
💡 RNN/LSTM ichida bugungacha ishlatiladi.
🔹 3. Softmax — ko'p sinf uchun
Sigmoid 2 sinf uchun. 10 sinf (0-9) uchun — Softmax:
Softmax(xᵢ) = e^(xᵢ) / Σ e^(xⱼ)
Logitlar → ehtimollar, yig'indi = 1.00
💡 Faqat oxirgi qatlamda ishlatiladi.
🔹 4. ReLU (2012) — INQILOB
ReLU(x) = max(0, x)
2012-yil AlexNet ImageNet'da g'olib. Siri — ReLU.
✅ Hosila = 1 (musbat tomonda) → vanishing gradient ancha yaxshi
✅ Juda tez (faqat if x > 0)
✅ Sparsity — neyronlarning yarmi "uyqu rejimida"
❌ Dying ReLU: katta manfiy bias → neyron har doim 0 → gradient 0 → o'lik ☠️
Yechim — Leaky ReLU:
x ≤ 0 → 0.01·x (kichik gradient, neyron o'lmaydi)
🔹 5. GELU (2018) — Transformer davri
ReLU qattiq qaror beradi: x ≤ 0 → 0.
GELU yumshoq, ehtimol asosida:
GELU(x) = x · Φ(x)
x = -2: ReLU → 0, GELU → -0.046
x = 2: ReLU → 2, GELU → 1.95
🔥 BERT, GPT-2, GPT-3, ViT — hammasi GELU.
🔹 6. Swish/SiLU (2017) va Mish (2019)
SiLU(x) = x · σ(x)
Mish(x) = x · tanh(ln(1 + e^x))
GELUga juda o'xshash. Farqi kichik koeffitsient.
SiLU → EfficientNet, MobileNetV3, YOLOv5/v8, Stable Diffusion
Mish → YOLOv4
💡 GELU vs Swish vs Mish — farqi juda kichik, kontekstga bog'liq.
🎯 Qaysi vazifada qaysi?
CNN (rasm) → ReLU yoki SiLU
Transformer (BERT, GPT, ViT) → GELU
Mobile / Diffusion → SiLU
YOLO → SiLU
RNN/LSTM → Tanh
Binary (oxirgi qatlam) → Sigmoid
Multi-class (oxirgi qatlam) → Softmax
💡 Qoida: ReLU bilan boshlang, keyin GELU/SiLU sinab ko'ring.
⚠️ Muhim: Hech qaysi activation "muammosiz" emas. Har biri ayrim kamchiliklarni yumshatadi, lekin o'z narxi bilan (sekinroq hisoblash, ko'proq xotira).
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 286 |
| 7 | 视频消息 | 330 |
| 8 | 📌 8.1-dars: Forward va Backward Pass — Neyron tarmoq qanday "o'ylaydi" va "o'rganadi"
🎯 Deep Learning Mathematics — @EldorML
Savol: CNN, ViT, Diffusion, GNN, Transformer — nima ularni bog'laydi?
Javob: Forward + Backward Pass. Hammasining yuragi shu.
🔹 Asosiy mantiq
Bola olma va apelsinni o'rganadi:
- Forward: mevani ko'radi → "olma" deydi
- Backward: ona "yo'q, apelsin" → bola xatoni tushunadi
Neyron tarmoq aynan shu. "Bola" o'rniga — weights. "Ona javobi" o'rniga — loss.
🔹 1. Forward Pass — bashorat
2 qatlamli tarmoq, x = [1, 2], target = 5:
z1 = W1·x + b1 → [0.2, 1.9, 1.3]
h = ReLU(z1) → [0.2, 1.9, 1.3]
y = W2·h + b2 → 0.5
L = (y - 5)² → 20.25
Model 0.5 dedi, javob 5 edi. Xato = 20.25 💥
🔹 2. Computation Graph
Har operatsiya grafga yoziladi:
x → [W1·x+b1] → [ReLU] → [W2·h+b2] → y → L
Backward passda shu grafdan teskari yo'l yuriladi.
💡 PyTorch, TensorFlow — barchasi shu prinsipda. Siz forward yozasiz, framework backwardni avtomatik hisoblaydi (autograd).
🔹 3. Backward Pass — Chain Rule
Savol: "W1 ni biroz o'zgartirsam, loss qanchaga o'zgaradi?"
dL/dW1 = dL/dy · dy/dh · dh/dz1 · dz1/dW1
Qatlamma-qatlam orqaga:
dL/dy = 2(y-5) = -9
dL/dh = -9 · W2 = [-3.6, -2.7, 4.5]
dL/dz1 = dL/dh · 1 = [-3.6, -2.7, 4.5] (ReLU musbat)
dL/dW1 = dL/dz1 · xᵀ → 3×2 matritsa
🔹 4. Gradient Descent — yangilanish
W_yangi = W_eski - η · dL/dW
η = 0.01 bilan:
W1 = [[0.5, -0.2], → [[0.536, -0.128],
[0.3, 0.8], [0.327, 0.854],
[-0.1, 0.6]] [-0.145, 0.510]]
Parametrlar xato kamayadigan tomonga siljidi 📉
🔹 5. To'liq oqim
Forward → Loss → Backward → Yangilash
↓
1000 marta takrorlash
↓
Model tayyor ✅
🎯 Xulosa
- Forward — bashorat (kirish → chiqish)
- Loss — xatoni o'lchash
- Backward — chain rule bo'yicha gradientlar
- Gradient Descent — parametrlarni yangilash
- Autograd — PyTorch buni avtomatik qiladi
💡 CNN, ViT, Diffusion, GNN, Transformer — hammasi shu mexanizmda o'rganadi. Faqat ichidagi operatsiyalar farq qiladi. GPT-4 da ham, sizning 2 qatlamli tarmog'ingizda ham — bir xil prinsip!
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 368 |
| 9 | 📌 7.5-dars: Efficient Attention — Transformerning O(n²) muammosi
🎯 Deep Learning Mathematics — @EldorML
Savol: ChatGPT, Claude, Llama qanday qilib 1M tokenli kontekstni qo'llab-quvvatlaydi?
Javob: Efficient Attention variantlari.
🔹 Muammo: O(n²)
n = 512 → 262 ming
n = 8192 → 67 million
n = 100K → 10 milliard 💥
QK^T — n×n matritsa. n oshganda portlaydi.
🔹 1. Sparse Attention — kam juftlik
Token hammaga qarashi shart emas.
- Sliding Window — yaqin w ta tokenga
- Longformer — lokal + global tokenlar (65K)
- BigBird — window + global + random (100K)
Murakkablik: O(n·w) — chiziqli
🔹 2. Linear Attention — matematik usul
Usul: (QK^T)V = Q(K^T V)
K^T V → d × d matritsa (kichik!)
Murakkablik: O(n · d²)
Softmax muammosi → kernel usuli (Performer):
softmax(q·k) ≈ phi(q)·phi(k)
n = 100K da: standart 10 milliard → Performer 26 million
Tezlash: 380x 🚀
🔹 3. FlashAttention — GPU darajasidagi
O(n²) ni o'zgartirmaydi, lekin 5-10x tezroq!
Siri: GPU xotirasi 2 xil
HBM (40 GB, sekin)
SRAM (20 MB, 100x tez)
Standart: hammasi HBM orqali (sekin)
Flash: bloklarda SRAMda → HBMga faqat natija
Natija: xotira 10-20x kam, 2-4x tezroq
🔹 4. Qo'shimcha usullar
- Gradient Checkpointing — xotira 4x kam (+30% vaqt)
- Mixed Precision (BF16) — 2x kam, 2x tez
- GQA — Llama, GPT-4 da ishlatiladi
🎯 Xulosa
- O(n²) — uzun matn uchun fizik to'siq
- Sparse → Longformer/BigBird (kam juftlik)
- Linear → Performer (matematik qayta yozish)
- FlashAttention → 5-10x bepul tezlash
- GQA + BF16 + Checkpointing → barcha LLM'da
💡 GPT-4, Claude, Llama 3 — bir nechta tekniklarni birga ishlatadi: GQA + FlashAttention + BF16 + KV-cache. Endi 128K, 1M tokenli kontekst qanday ishlashini tushunasiz!
🤝 YouTube: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 286 |
| 10 | 📌 7.4-dars: Graph Neural Networks (GNN) — Graf shaklidagi ma'lumotlar
🎯 Deep Learning Mathematics — @EldorML
Oldingi darsda Diffusion Models va shovqin (noise)dan rasm yaratish haqida gaplashdik.
Endi savol:
❓ Agar ma'lumot rasm ham, matn ham emas, balki graf bo'lsa-chi?
❓ Facebook "Siz tanishingiz mumkin", Google Maps trafik, AlphaFold — qanday ishlaydi?
Javob: barchasi Graph Neural Networks asosida.
🔹 1. Asosiy savol
CNN — rasmlar uchun (regular grid)
Transformer — matn uchun (sequence)
GNN — graflar uchun (irregular structure)
Misollar:
• Ijtimoiy tarmoq: odamlar (tugun) + do'stlik (qirra)
• Molekula: atomlar + bog'lanishlar
• Yo'l xaritasi: shaharlar + yo'llar
• Tavsiya: foydalanuvchi-mahsulot
"GNN — bu CNNning umumlashtirilgan versiyasi: 'qo'shni piksellar' o'rniga 'qo'shni tugunlar' bilan ishlaydi."
🔹 2. Adjacency Matrix — grafni raqamlarda
Kim kim bilan bog'langanini matritsa orqali ifodalaymiz:
Ali Vali Soli Rustam
Ali [ 0 1 1 0 ]
Vali [ 1 0 0 1 ]
Soli [ 1 0 0 1 ]
Rustam [ 0 1 1 0 ]
🟢 Diagonal nol — tugun o'ziga bog'lanmagan
🟢 Simmetrik — yo'naltirilmagan grafda
Self-loop qo'shamiz:
A_tilde = A + I
Sababi: tugun aggregate paytida o'z xususiyatini ham saqlashi kerak.
🔹 3. Message Passing — GNNning yuragi
Uch qadam:
1) MESSAGE — har tugun qo'shnilariga "xabar" yuboradi
2) AGGREGATE — har tugun olgan xabarlarni birlashtiradi (sum/mean/max)
3) UPDATE — neyron tarmoq orqali yangi xususiyat hisoblanadi
Hayotiy o'xshatish — gap-tarqalish:
Boshida: faqat Ali biladi
1 qadam: Ali → Vali, Soli ham biladi
2 qadam: Vali, Soli → Rustam ham biladi
💡 Eng muhim xulosa: K marta message passing = har tugun K-uzoqlikdagi qo'shnilardan ma'lumot oladi degani.
🔹 4. GCN formulasi
H^(k+1) = sigma( A_hat · H^(k) · W^(k) )
Bu yerda:
A_hat = D^(-1/2) · A_tilde · D^(-1/2)
Qadamma-qadam:
• A_tilde · H — qo'shnilar yig'indisi (avtomatik aggregate)
• H · W — linear transform (CNNdagi filter o'xshashi)
• D^(-1/2) bilan ko'paytma — normalizatsiya
• sigma — ReLU yoki SiLU
🔹 5. Normalizatsiya nima uchun?
Muammo: ba'zi tugunlarda 1000+ qo'shni (mashhur odam), ba'zilarida 5 ta.
Sodda yig'indida:
Mashhur odam → katta qiymat
Oddiy odam → kichik qiymat
Bu adolatsiz — mashhur tugunlar dominantlik qiladi.
Yechim: degree bilan bo'lish:
h_i_new = sum( h_j / sqrt(d_i · d_j) )
Endi har kimning ma'lumoti bir xil masshtabda.
🔹 6. K qatlam = K-uzoqlik
1 qatlam → bevosita qo'shnilar
2 qatlam → qo'shnining qo'shnisi
K qatlam → K-uzoqlik
⚠️ Lekin 5+ qatlam — over-smoothing muammosi:
barcha tugunlar bir xil bo'lib qoladi.
Boshida: 10 qatlamdan keyin:
Ali = [1, 0] Ali = [0.4, 0.4]
Vali = [0, 1] Vali = [0.4, 0.4]
Soli = [1, 1] Soli = [0.4, 0.4]
→ HAMMASI BIR XIL!
Optimal: 2-3 qatlam.
🔹 7. GNN vazifa turlari
Node-level — har tugun uchun bashorat
Misol: spam akkauntmi? qaysi guruh?
Edge-level — qirra bo'ladimi?
Misol: do'st tavsiyasi (link prediction)
Graph-level — butun graf uchun
Misol: molekula zaharlimi?
🎯 Yakuniy xulosa
• Graf = tugunlar + qirralar (adjacency matrix bilan ifoda)
• Message passing: message → aggregate → update
• GCN formula: H' = sigma(A_hat · H · W) — qo'shnilar yig'indisi + linear + ReLU
• Normalizatsiya: degree bilan bo'lish (mashhur tugunlar dominatsiya qilmasin)
• 2-3 qatlam optimal, 5+ qatlam over-smoothing keltiradi
• GNN istalgan o'lchamdagi grafda ishlaydi (permutation invariant)
💡 AlphaFold (protein), Google Maps (trafik), Pinterest (tavsiya), Facebook ("siz tanishingiz mumkin") — barchasi GNN asosida. Biz har kuni GNN dan foydalanamiz, lekin uni ko'rmaymiz.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr so'rayman 🙏
@EldorML | 267 |
