Eldor’s AI Lab
Open in 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!
Show moreThe country is not specifiedThe category is not specified
382
Subscribers
No data24 hours
-37 days
No data30 days
Posts Archive
📌 6.7-dars: Batch Normalization — Chuqur tarmoqlarda o'qitishni tezlashtirish
🎯 Deep Learning Mathematics — @EldorML
Oldingi darsda overfitting va generalization haqida gaplashdik.
Endi savol:
❓ Nega chuqur tarmoqlar o'qitish davomida beqaror bo'ladi?
❓ Nega learning rateni katta qilsak training buziladi?
Javob: Internal Covariate Shift.
🔹 1. Internal Covariate Shift nima?
Masalan, fabrika misolini olsak:
• Yaxshi holat → xomashyo har kuni bir xil keladi, ishchi bir maromda ishlaydi
• Yomon holat → xomashyo har kuni boshqacha, ishchi doim moslashadi
Tarmoqda ham xuddi shunday:
• Har qatlam oldingi qatlamdan input oladi
• O'qitish davomida oldingi qatlam o'zgargani sayin keyingi qatlam inputi ham o'zgaradi
• Keyingi qatlam doim "yangi sharoitga" moslashadi → o'qitish sekinlashadi
Bu — Internal Covariate Shift.
🔹 2. Batch Normalization — Yechim
G'oya: har qatlamning inputini normalizatsiya qilamiz — ya'ni mean=0, std=1 ga keltiramiz.
Batch = [1.0, 2.0, 3.0, 4.0] misol sifatida:
1-qadam — Mean:
μ = (1.0 + 2.0 + 3.0 + 4.0) / 4 = 2.5
2-qadam — Variance:
σ² = ((1−2.5)² + (2−2.5)² + (3−2.5)² + (4−2.5)²) / 4
= (2.25 + 0.25 + 0.25 + 2.25) / 4 = 1.25
3-qadam — Normalizatsiya:
x̂ᵢ = (xᵢ − μ) / √(σ² + ε)
x̂₁ = (1.0 − 2.5) / √1.25 = −1.34
x̂₂ = (2.0 − 2.5) / √1.25 = −0.45
x̂₃ = (3.0 − 2.5) / √1.25 = +0.45
x̂₄ = (4.0 − 2.5) / √1.25 = +1.34
Natija: mean ≈ 0, std ≈ 1 ✅
4-qadam — Scale va Shift: yᵢ = γ · x̂ᵢ + β
💡 γ va β nima uchun kerak?
Agar faqat normalizatsiya qilsak — model har doim mean=0, std=1 ga majbur.
Lekin ba'zi qatlamlarda boshqa taqsimot kerak bo'lishi mumkin.
γ va β — o'rganiluvchi parametrlar, model o'zi kerakli taqsimotni tanlaydi.
🔹 3. Training vs Inference
Muammo: inferenceda batch bo'lmasa nima qilamiz?
Yechim — Running Statistics:
μ_run ← (1−α)·μ_run + α·μ_batch
σ²_run ← (1−α)·σ²_run + α·σ²_batch
Training: batch statistikasi + running yangilanadi
Inference: running statistikasi — o'zgarmaydi
PyTorchda:
model.train() → batch stat, running yangilanadi
model.eval() → running stat, o'zgarmaydi
⚠️ Keng tarqalgan xato: model.eval() qismini unutish:
Inferenceda BatchNorm noto'g'ri ishlaydi → natijalar beqaror.
🔹 4. Batch Norm afzalliklari
• Katta LR ishlatish mumkin → tezroq o'qitish
• Initializationga kamroq bog'liqlik
• Regularization effekti — ozgina overfitting kamayadi
• Gradient vanishing kamayadi
🔹 5. Qayerga qo'yish kerak?
Original: Linear → BN → Activation
Zamonaviy: Linear → Activation → BN
PyTorchda:
nn.Linear(in, out)
nn.BatchNorm1d(out)
nn.ReLU()
🎯 Yakuniy xulosa:
• Internal Covariate Shift → qatlam inputi o'qitishda o'zgarib turadi
• Batch Norm → har batchda mean=0, std=1 ga keltiradi
• γ, β → model kerakli taqsimotni o'zi o'rganadi
• model.eval() → running statistikani ishlatadi
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr 🙏
@EldorML
📌 6.6-dars: Overfitting va Generalization — Model nima o'rganadi?
🎯 Deep Learning Mathematics — @EldorML
Oldingi darsda regularization haqida gaplashdik.
Endi savol:
❓ Nega train datada yaxshi, yangi datada yomon ishlaydi?
❓ Model aslida nimani o'rganishi kerak?
Javob: Model bog’liqlikni (pattern) o'rganishi kerak — chalg’ituvchi ma’lumotni (noise) emas.
🔹 1. Overfitting / Underfitting
Imtihon analogiyasi:
• Umuman o'qimagansiz → Underfitting
• Mavzuni tushundingiz → Just right ✅
• Faqat javoblarni yod oldingiz → Overfitting
Math:
• Underfitting: Train loss↑ Val loss↑
• Just right: Train loss↓ Val loss↓ (yaqin)
• Overfitting: Train loss↓↓ Val loss↑
Polinom misoli:
• Daraja 1 → juda sodda → underfitting
• Daraja 4 → optimal → just right ✅
• Daraja 20 → juda murakkab → overfitting
🔹 2. Generalization Geometriyasi
Loss yuzada ikki xil minimum:
Sharp minimum:
Loss
| \ /
| \ /
| \ / ← tik devorlar
| \ /
| \/
Flat minimum:
Loss
| \ /
| \ /
| \_____/ ← keng, tekis tub
Nima uchun flat minimum yaxshi?
Train va test distribution ozgina farq qilsa → parametrlar siljishi mumkin.
• Sharp → kichik siljish → loss tez oshadi → testda yomon natija
• Flat → kichik siljish → loss deyarli o'zgarmaydi → testda yaxshi natija
Flat minimumga qanday erishish mumkin?
• Kichik batch size → flat minimum
• Weight Decay / L2 → katta parametrlarni jazolaydi
• Dropout → robustness oshadi
💡 Kichik batch (32–256) ko'proq tavsiya etiladi — tezroq bo'lmasa ham.
🔹 3. Bias-Variance Tradeoff
Xato = Bias² + Variance + Irreducible Noise
Bias → modelning tizimli xatosi → underfitting belgisi
Variance → modelning train dataga bog'liqligi → overfitting belgisi
Murakkablik bilan o'zgarishi:
Bias: ████████ → ░░░░░░░░ (murakkaklik oshsa kamayadi)
Variance: ░░░░░░░░ → ████████ (murakkaklik oshsa oshadi)
⚠️ Deep learningda "Double Descent" hodisasi:
Juda katta modellarda umumiy xato yana pasayadi — lekin bu hali to'liq tushuntirilmagan mavzu.
🔹 4. Train / Val / Test Split
| Set | Maqsad | Hajm |
| Train | Modelni o'qitish | 70–80% |
| Val | Hyperparameter sozlash | 10–15% |
| Test | Yakuniy baholash | 10–15% |
⚠️ Oltin qoida: Test setga faqat bir marta qarang.
Agar test natijasiga qarab model o'zgartirsangiz — u endi haqiqiy test emas.
Early Stopping:
Val loss oshib ketganda o'qitishni to'xtatish.
Epoch: 1 2 3 4 5 6 7 ...
Train: 0.9 0.7 0.5 0.4 0.3 0.2 0.15
Val: 0.95 0.8 0.65 0.6 0.58 0.60 0.65
↑
eng yaxshi model
🔹 5. Qaysi holda nima qilish kerak?
• Train↓ Val↑ → overfitting → regularization, dropout, ko'proq data
• Train↑ Val↑ → underfitting → kattaroq model, ko'proq epoch
• Train≈Val, ikkalasi↑ → ko'proq data kerak
• Train≈Val, ikkalasi↓ → ideal ✅
🎯 Yakuniy xulosa
• Overfitting → train datani yod olish
• Flat minimum → yaxshi umumiylashtirish
• Bias²+Variance → xatoning ikki komponenti
• Train/Val/Test → har birining alohida vazifasi bor
Yaxshi model — trainda eng past loss emas,
ko'rmagan datada eng past loss. ✅
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr 🙏
@EldorML
📌 6.5-dars: Regularization — Overfittingga qarshi kurash
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda optimizerlar va learning rate haqida gaplashdik.
Endi savol:
❓ Nega model train datada yaxshi, test datada yomon ishlaydi?
❓ Parametrlar juda katta bo'lsa nima bo'ladi?
Javob: Model "tushunmaydi" — faqat "yod oladi". Bunga overfitting deyiladi.
🔹 1. Overfitting nima?
Imtihonga tayyorgarlik analogiyasi:
• Yod olish → yangi savol chiqsa javob bera olmaysiz
• Tushunish → har qanday savolga javob bera olasiz
Xuddi shunday modellarda:
• Overfitting → train datani "yod oladi"
• Regularization → modelni "tushunishga" majbur qiladi
🔹 2. L2 Regularization (Ridge)
Oddiy loss: Loss = (1/n)·Σ(y_i − ŷ_i)²
L2 loss: Loss = (1/n)·Σ(y_i − ŷ_i)² + λ·Σ w_j²
Endi model ikki narsani kamaytiradi: xato + katta parametrlar.
Yangilanish: w ← w − η·(gradient + 2λ·w)
Misol: η=0.1, λ=0.1, w=3.0, gradient=2.0
• L2 bilan: w = 3.0 − 0.1×(2.0+0.6) = 2.74
• L2 siz: w = 3.0 − 0.1×2.0 = 2.80
💡 L2 parametrlarni nolga yaqinlashtiradi, lekin aynan nolga tushirmaydi.
🔹 3. L1 Regularization (Lasso)
Loss_L1 = (1/n)·Σ(y_i − ŷ_i)² + λ·Σ|w_j|
L2 dan farqi: ba'zi parametrlarni aynan nolga tushiradi → model o'zi muhim feature larni tanlaydi.
⚠️ Deep learningda L1 kamdan-kam, L2 ko'proq ishlatiladi.
🔹 4. Dropout
Muammo: neyronlar bir-biriga haddan ortiq tayanadi → overfitting.
Yechim: har o'qitish qadamida neyronlarning bir qismini tasodifiy o'chiramiz.
Oddiy: [N1][N2][N3][N4][N5]
Dropout: [N1][ 0 ][N3][ 0 ][N5] ← har qadamda boshqalar o'chiriladi
⚠️ dropout=0.2 → neyronlarning 20% i o'chiriladi, 80% i saqlanadi.
Inverted Dropout — train/inference miqyos farqini hal qiladi:
h̃_j = (r_j · h_j) / p
💡 PyTorch buni avtomatik bajaradi.
🔹 5. AdamW
Adam bilan L2 ishlatilsa — λ·w ham √v̂_t ga bo'linadi → regularization kuchi parametrga qarab o'zgaradi. Bu noto'g'ri!
L2 (Adam): w ← w − η/√v̂_t · (gradient + 2λ·w)
AdamW: w ← w − η/√v̂_t · gradient − η·λ·w
Weight decay gradient yangilanishidan alohida qo'shiladi — bu to'g'ri yondashuv!
💡 Adam ishlatayotgan bo'lsangiz → har doim AdamW ishlatish tavsiya qilinadi.
🔹 6. Qaysi biri qachon?
• Parametrlar juda katta → L2
• Feature selection kerak → L1
• Neyronlar bir-biriga tayanadi → Dropout
• Adam ishlatilayotgan bo'lsa → AdamW
Kombinatsiya:
• Kichik model → L2
• O'rta model → L2 + Dropout
• Katta model → AdamW + Dropout
🎯 Yakuniy xulosa
• L2 → parametrlarni nolga yaqinlashtiradi
• L1 → keraksiz parametrlarni butunlay o'chiradi
• Dropout → neyronlarni mustaqil ishlashga majbur qiladi
• AdamW → Adam da weight decay ni to'g'ri amalga oshiradi
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr 🙏
@EldorML
📌 6.4-dars: Learning Rate (LR) Schedules — LR qanday o'zgartiriladi?
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda loss surface va curvature haqida gaplashdik.
Endi savol:
❓ Nega model ba'zan minimumda sakrab yuradi?
❓ Nega fixed learning rate yetarli emas?
Javob: LR dinamik bo'lishi kerak.
🔹 1. Muammo nima?
Fixed LR bilan:
• Katta LR → oxirida minimumda "o'tib ketadi" (overshoot)
• Kichik LR → juda sekin, vaqt isrof
Yechim — LRni vaqt bo'yicha o'zgartirish.
Ikki xil yondashuv:
• LR Schedule → LRni biz boshqaramiz
• Adaptive Methods → har parametr o'z LRini o'zi moslashtiradi
🔹 2. Step Decay
Formula: η_t = η₀ × γ^⌊t/S⌋
Misol: η₀=0.1, γ=0.5, S=20
• Epoch 0 → LR = 0.100
• Epoch 20 → LR = 0.050
• Epoch 40 → LR = 0.025
• Epoch 60 → LR = 0.013
Har 20 epochda LR ikki barobarga kamayadi.
⚠️ Kamchiligi: LR keskin sakraydi — to'satdan o'zgarish.
🔹 3. Cosine Annealing
Formula: η_t = η_min + ½(η_max − η_min)(1 + cos(t/T · π))
Nima uchun cosine?
• Boshida sekin kamayadi — model yo'nalish topmoqda
• O'rtada tez kamayadi — model yaqinlashmoqda
• Oxirida sekin — minimumga aniq o'tiradi
• LR hech qachon nolga tushmaydi
💡 Zamonaviy o’qitish uchun eng ko'p ishlatiladigan schedule.
🔹 4. Warmup + Cosine
Katta modellarda (GPT, BERT) yangi muammo: Boshida gradientlar ishonchsiz → katta LR bilan boshlasak model noto'g'ri tomonga ketadi.
Bu — training collapse hisoblanadi.
Formula (2 bosqich):
Warmup (t ≤ W): η_t = η_max × t/W
Cosine (t > W): η_t = cosine formula
Misol: W=10, T=100
• Epoch 0 → LR = 0.000
• Epoch 5 → LR = 0.050
• Epoch 10 → LR = 0.100 ← peak
• Epoch 100 → LR = 0.001
💡 Transformer modellarning barchasi warmup ishlatadi.
🔹 5. SGD + Momentum
Oddiy SGD muammosi — oscillation:
Tik yo'nalish: +2 → -1.8 → +1.6 → ... (tebranish)
Tekis yo'nalish: 2 → 1.8 → 1.6 → ... (sekin)
Formula:
v_{t+1} = β·v_t + ∇L(w_t)
w_{t+1} = w_t − η·v_{t+1}
β=0.9 — oldingi tezlikni 90% saqlaydi.
Analogiya: Qor to'pi tepalikdan tushganda tezlashadi —
har qadam oldingi tezlikni "eslab" qoladi.
🔹 6. Adam
• SGD+Momentum
• Har parametr uchun LR: ❌
• Momentum: ✅
• RMSProp
• Har parametr uchun LR: ✅
• Momentum: ❌
• Adam
• Har parametr uchun LR: ✅
• Momentum: ✅
Kingma & Ba (2015): ikkalasini birlashtirdi.
4 qadam:
1. m_t = β₁·m_{t-1} + (1−β₁)·∇L ← momentum
2. v_t = β₂·v_{t-1} + (1−β₂)·∇L² ← gradient kvadrati
3. m̂_t = m_t/(1−β₁ᵗ) ← bias correction
4. w_{t+1} = w_t − η/√v̂_t · m̂_t ← yangilanish
Default qiymatlar: β₁=0.9, β₂=0.999, η=0.001
💡 Yangi loyihada boshqa optimizer o'ylamasdan Adamdan boshlang.
🔹 7. Qaysi biri qachon?
• Oddiy model → Adam + Cosine Annealing
• Transformer (GPT, BERT) → Adam + Warmup + Cosine
• Image classification → SGD + Momentum + Step Decay
🎯 Yakuniy xulosa
• LR Schedule — LR ni biz vaqt bo'yicha boshqaramiz
• Adaptive — har parametr o'z LR sini o'zi moslashtiradi
• Step Decay → keskin sakrash bor
• Cosine Annealing → silliq, zamonaviy
• Warmup → training collapse dan himoya
• Adam → bugungi kunda default tanlov
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo'lishi mumkin. Oldindan uzr 🙏
@EldorML
Assalomu alaykum, do’stlar!
So‘nggi paytlarda postlar kamroq chiqayotganini sezgan bo‘lsangiz kerak. Sababi sog‘lig‘im bilan bog‘liq ayrim muammolar yuzaga keldi. Shu sababli avvalgidek faol bo‘la olmayapman 🙏
Shunga qaramay, kursni to‘xtatmayman va albatta oxirigacha yetkazamiz. Hozir imkon qadar haftasiga kamida 2 ta sifatli post berishga harakat qilyapman.
Boshlagan ishimizni albatta yakunlaymiz. Noqulayliklar uchun uzr so‘rayman va tushunganingiz uchun rahmat 🤲
📌 6.3-dars: Loss Surface Curvature — sirt qanchalik tik?
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda gradient haqida gaplashdik.
Endi savol:
❓ Nega ba’zi joyda model tebranadi?
❓ Nega learning rate ba’zan ishlaydi, ba’zan esa training buziladi?
Javob: curvature.
🔹 1. Gradient vs Curvature
Gradient formulasi: w_{t+1} = w_t − η · ∇L(w_t)
Bu yerda:
w — parametr
η — learning rate
∇L — gradient (yo‘nalish)
Gradient faqat qaysi tomonga yurishni aytadi.
Curvature esa sirt qanchalik tikligini bildiradi.
🔹 2. 1D misol
Ikki funksiya:
L1(w) = w²
L2(w) = 10w²
Ikkinchi hosila (curvature):
L1''(w) = 2
L2''(w) = 20
Demak:
• w² → silliq
• 10w² → tik
Curvature katta bo‘lsa, ehtiyotkor yurish kerak.
🔹 3. Learning rate bilan bog‘liqlik
L(w) = 10w²
Gradient: dL/dw = 20w
Yangilanish:
w_{t+1} = w_t − η · 20w_t = w_t(1 − 20η)
Agar η = 0.1 bo‘lsa:
w_{t+1} = w_t(1 − 2) = −w_t
Natija:
• Har qadamda ishora almashadi
• Oscillation (tebranish)
Qoida: Curvature katta → learning rate kichik
🔹 4. 2D misol
L(w1, w2) = 5w1² + 0.5w2²
Bu nimani bildiradi?
• w1 yo‘nalishida tik
• w2 yo‘nalishida tekis
Model bir yo‘nalishda tez o‘zgaradi,
Ikkinchisida esa sekin.
🔹 5. Hessian matritsasi
Ko‘p o‘lchamda curvature matritsa ko‘rinishida bo‘ladi:
H = [ d²L/dw1² d²L/dw1dw2
d²L/dw2dw1 d²L/dw2² ]
Bizning misolda:
H = [ 10 0
0 1 ]
Diagonal sonlar — har yo‘nalishdagi tiklik.
🔹 6. Eigenvalue nima beradi?
Hessian eigenvalue lari sirtning haqiqiy tikligini ko‘rsatadi.
Bu misolda:
λ1 = 10
λ2 = 1
• Katta λ → tik
• Kichik λ → tekis
Agar barcha λ > 0 bo‘lsa → bu minimum.
🔹 7. Sharp vs Flat minimum
Sharp minimum:
• Eigenvalue katta
• Parametr ozgina siljisa loss tez o‘zgaradi
• Umumiylashtirish yomonroq
Flat minimum:
• Eigenvalue kichik
• Parametr siljishi lossni deyarli o‘zgartirmaydi
• Umumiylashtirish yaxshiroq
Shuning uchun katta modellarda flat minimum qidiriladi.
🔹 8. Newton usuli
Gradient descent: w_{t+1} = w_t − η · ∇L
Newton usuli: w_{t+1} = w_t − H^{-1} · ∇L
Bu yerda H^{-1} tik joyda qadamni kichraytiradi,
tekis joyda esa kattalashtiradi.
Kamchiligi: Katta modellarda H ni hisoblash juda qimmat.
🔹 9. Eng muhim tushuncha
Gradient → yo‘nalish
Curvature → tezlikni nazorat qiladi
Agar curvature hisobga olinmasa:
• Oscillation bo‘ladi
• Divergence yuz beradi
• Training sekinlashadi
Deep learning — bu geometriya.
🎯 Yakuniy xulosa
• Curvature — sirt tikligi
• Hessian — curvature matritsasi
• Eigenvalue — har yo‘nalishdagi tiklik
• Flat minimum — barqaror model
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo‘lishi mumkin. Oldindan uzr 🙏
@EldorML
📌 6.2-dars: Weight initialization — modelni qanday to‘g‘ri boshlash kerak?
🎯 Deep Learning Mathematics — @EldorML
Oldingi darsda gradient muammosini ko‘rdik.
Endi savol:
❓ Model nega ba’zan umuman o‘rganmaydi?
❓ Nega chuqur networkda signal yo‘qoladi yoki portlaydi?
Javob: weight initialization.
🔹 1. Eng muhim formula
Bir neyron: z = w₁x₁ + w₂x₂ + ... + wₙxₙ
Agar kirishlar (input) tarqalishi ≈ 1 bo‘lsa: Var(z) ≈ n × Var(W)
Misol: n = 100
• Var(W) = 1 → Var(z) = 100 ❌ signal portlaydi
• Var(W) = 0.0001 → Var(z) = 0.01 ❌ signal yo‘qoladi
Ideal holat: Var(W) ≈ 1 / n
👉 Initializationning asosiy g‘oyasi shu.
🔹 2. Xavier initialization (Tanh / Sigmoid)
Formula: Var(W) = 2 / (fan_in + fan_out)
Misol:
Linear(100, 50)
fan_in = 100
fan_out = 50
Var(W) = 2 / 150 = 0.0133
std ≈ 0.115
Teng ehtimollik taqsimoti limit:
a = sqrt(6 / 150) = 0.2
Demak:
W ∈ [-0.2 , 0.2]
👉 Tanh uchun signal barqaror saqlanadi
🔹 3. He initialization (ReLU)
ReLU manfiy qiymatlarni 0 qiladi → signal yarmi yo‘qoladi.
Shuning uchun:
Var(W) = 2 / fan_in
Misol: Linear(100, 50)
Var(W) = 2 / 100 = 0.02
std ≈ 0.141
a = sqrt(6 / 100) ≈ 0.245
Demak:
W ∈ [-0.245 , 0.245]
👉 Xavierdan kattaroq
👉 ReLU yo‘qotgan signalni kompensatsiya qiladi
🔹 4. Qachon qaysi biri?
Sigmoid → Xavier
Tanh → Xavier
ReLU → He
LeakyReLU → He
GELU → He
Oddiy qoida:
"Nolni kesadigan aktivatsiya → He"
"Simmetrik aktivatsiya → Xavier"
🔹 5. Eng muhim tushuncha
Agar initialization noto‘g‘ri bo‘lsa:
• Gradient barqaror bo‘lmaydi
• Chuqur qatlamlar o‘rganmaydi
• Model ishlamaydi
Deep learning — bu matematik balans.
🎯 Yakuniy xulosa
• Initialization — training (model o’qitish)ning poydevori
• ReLU uchun He ishlating
• Tanh/Sigmoid uchun Xavier ishlating
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar jonli yozilgan. Matematik izohlarda xatolar bo‘lishi mumkin. Oldindan uzr 🙏
@EldorML
📌 6.1-dars: Gradient stability — model nega o‘rganmaydi?
🎯 Deep Learning Mathematics — @EldorML
Oldingi mavzularda biz backpropagation orqali model qanday o‘rganishini ko‘rdik.
Ammo amalda ko‘pincha quyidagi holat yuz beradi:
❓ Loss kamaymaydi
❓ Model umuman o‘rganmaydi
❓ Ba’zida esa birdan NaN chiqadi
Buning asosiy sababi — gradient stability muammosi.
🔹 1. Gradient qanday tarqaladi?
Backpropagation zanjir qoidasiga asoslanadi:
- Gradient = oxirgi xato × qatlam hosilalari ko‘paytmasi
Ya’ni chuqur tarmoqda gradient — bu juda ko‘p sonlarning ko‘paytmasi.
🔹 2. Vanishing gradient (yo‘qoluvchi gradient)
Agar har qatlamda (L) hosila < 1 bo‘lsa:
Gradient_L = (0.5)^L
Misol:
L = 5 ta → 0.031
L = 10 ta → 0.00098
L = 20 ta → ~0
👉 Ko’p qatlamlar deyarli yangilanmaydi
👉 Model faqat oxirgi qatlamni o‘rganadi
Ayniqsa sigmoid funksiyada bu kuchli kuzatiladi:
maximum hosila ≈ 0.25 → 0.25^10 ≈ 0 ga teng
🔹 3. Exploding gradient (portlovchi gradient)
Agar hosila > 1 bo‘lsa:
Gradient_L = (1.5)^L
Misol:
L = 5 ta → 7.6
L = 10 ta → 57
L = 20 ta → 3325
👉 Ichki parameterlar (weightlar) sakrab ketadi
👉 Loss = NaN bo‘lishi mumkin
🔹 4. Gradient clipping — yechim
Gradient juda katta bo‘lsa uni qisqartiramiz:
agar g > c:
g_new = g × (c / ||g||)
Misol:
g = [6, 8]
g = 10
c = 5
Yangi gradient = [3, 4]
👉 Yo‘nalish saqlanadi
👉 Model o’qitish barqarorlashadi
🔹 5. Eng muhim tushuncha
Gradient — bu ichki qatlamlar bo‘yicha eksponent o‘zgaradi:
< 1 → yo‘qoladi
> 1 → portlaydi
> ≈ 1 → ideal training
Shuning uchun deep learning ishlashi uchun alohida texnikalar kerak bo‘ladi.
🎯 Yakuniy xulosa
• Deep networklar o‘z-o‘zidan o‘rganmaydi
• Muammo optimizatsiyada emas — matematikada
• Gradient stability — deep learningning yuragi
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.9-dars: Attention visualization — model nimaga e’tibor beryapti?
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda biz Transformerda Attention mexanizmi qanday ishlashini matematik jihatdan ko‘rdik.
Endi esa juda muhim savolga kelamiz:
❓ Model qaysi tokenlarga qarayapti?
❓ U nimani muhim deb hisoblayapti?
Javob:
👉 Buni attention visualization orqali ko‘rish mumkin.
🔹 1. Attention — bu ichki signal
Ko‘pchilik xato tushunadi:
❌ Attention = tushuntirish
Aslida:
👉 Attention — bu axborot oqimi kuchi
👉 Qaysi token qaysi tokendan ko‘proq foydalanayotganini ko‘rsatadi
Bu sabab emas, lekin kuchli signal.
🔹 2. Attention matritsa nimani anglatadi?
Transformer ichida attention natijasi — bu matritsa:
• Qatorlar — Query tokenlar
• Ustunlar — Key tokenlar
• Qiymatlar — e’tibor kuchi (softmax natijasi)
Muhim:
👉 Har bir qator yig‘indisi ≈ 1
👉 Diagonal har doim eng katta bo‘lishi shart emas
Bu degani:
👉 Tokenlar faqat o‘ziga emas, kontekstga qaraydi
🔹 3. Attention patternlar
Attention doim bir xil ko‘rinishda bo‘lmaydi.
Model ichida turli tuzilmalar paydo bo‘ladi:
• Lokal (yaqin tokenlar)
• Uzoq masofali bog‘lanishlar
• Maxsus tokenlar ([CLS], [SEP])
• Semantik munosabatlar
👉 Ayniqsa chuqur qatlamlarda ma’no bilan bog‘liq tuzilmalar ko‘rinadi
🔹 4. Multi-Head Attention — nega bitta emas?
Bitta attention yetarli emas.
Har bir head:
• boshqa munosabatni o‘rganadi
• boshqa nuqtai nazar bilan qaraydi
Misol:
• bitta head — grammatik bog‘lanish
• boshqasi — semantik
• yana biri — uzoq masofa
👉 Shu sababli head’lar soni ko‘p bo‘ladi
🔹 5. Eng muhim ogohlantirish
⚠️ Attention ≠ Explanation
Ya’ni:
• Attention katta → sabab degani emas
• Vizualizatsiya ehtiyotkorlik bilan talqin qilinadi
Ilmiy yondashuv:
👉 Attention + boshqa interpretability usullari
🎯 Yakuniy xulosa
• Attention visualization — model ichiga qarash oynasi
• Tuzilmalar orqali Transformer nimani o‘rganayotganini ko‘ramiz
• Lekin sabab–natija bilan adashtirmaymiz
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook (interactive demo): 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.8-dars: Positional Encoding (Transformerda tartibni kodlash)
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda biz Transformerda Attention qanday ishlashini ko‘rdik.
Lekin shu yerda juda muhim savol paydo bo‘ladi:
❓ Attention tokenlar tartibini qayerdan biladi?
Javob oddiy va biroz xavotirli:
👉 O‘zi bilmaydi.
Aynan shu muammo Positional Encoding orqali hal qilinadi.
🔹 1. Muammo: Self-Attention tartibni “ko‘rmaydi”
Attention formulasi:
• Tokenlardan Q, K, V olinadi
• O‘xshashlik hisoblanadi
• Yakuniy yig‘indi olinadi
Muhim jihat:
👉 Agar tokenlar faqat embedding sifatida berilsa,
👉 Model ularni to‘plam (set) deb qabul qiladi.
Misol:
• Men bugun maktabga bordim
• Bugun men maktabga bordim
Ma’no yaqin.
Ammo:
• It odamni tishladi
• Odam itni tishladi
👉 Tartib o‘zgardi → ma’no butunlay o‘zgardi.
Demak, modelga token qaysi o‘rinda turgani haqida signal kerak.
🔹 2. Real hayot analogiyasi
Tasavvur qiling:
• Stol ustida 10 ta kitob bor
• Lekin ularning 1-chi, 2-chi yoki oxirgisi ekani noma’lum
Attention ham xuddi shunday:
• Tokenlar bor
• Ammo tartib yo‘q
Positional Encoding —
👉 har bir token ustiga yopishtirilgan raqamli stiker kabi.
🔹 3. Asosiy g‘oya: Embedding + Position
Har bir token uchun:
• Token embedding: E(x)
• Pozitsiya vektori: PE(pos)
Modelga beriladigan kirish: X = E(x) + PE(pos)
Muhim:
👉 Positional encoding alohida qatlam emas
👉 U embeddingga qo‘shib yuboriladi
🔹 4. Sinusoidal (Fixed) Positional Encoding
Klassik Transformer sinus va cosinusdan foydalanadi.
Formula:
Agar d_model — embedding o‘lchami bo‘lsa,
• Juft indekslar uchun: PE(pos, 2i) = sin( pos / (10000^(2i / d_model)) )
• Toq indekslar uchun: PE(pos, 2i+1) = cos( pos / (10000^(2i / d_model)) )
Mazmuni:
• Ba’zi o‘lchamlar tez tebranadi (yaqin pozitsiyalar)
• Ba’zilari sekin tebranadi (uzoq masofa)
👉 Shu kombinatsiya pozitsiyani aniq va barqaror kodlaydi.
🔹 5. Juda oddiy matematik misol
Faraz qilamiz:
• d_model = 4
• pozitsiyalar: 0, 1, 2
Denominatorlar:
• i = 0 → 10000^0 = 1
• i = 1 → 10000^(2/4) = sqrt(10000) = 100
Pozitsiya 0: PE(0) = [0, 1, 0, 1]
Pozitsiya 1: PE(1) ≈ [0.84, 0.54, 0.01, 0.999]
Pozitsiya 2: PE(2) ≈ [0.91, -0.42, 0.02, 0.999]
Natija:
👉 Har bir pozitsiya — boshqa koordinata
👉 Model tartibni farqlay boshlaydi
🔹 6. Nega bu ishlaydi?
• Har bir pozitsiya — noyob vektor
• Sin va cos xossalari tufayli:
→ tokenlar orasidagi masofa ham bilinarli bo‘ladi
Ma’no:
👉 Model nafaqat “kim” balki “qancha uzoqda” ekanini ham sezadi
🔹 7. Learned vs Fixed Positional Embedding
1️⃣ Fixed (sinusoidal):
• O‘qitilmaydi
• Parametr yo‘q
• Uzun ketma-ketliklarga yaxshi umumlashadi
2️⃣ Learned:
• Har bir pozitsiya uchun embedding o‘rganiladi
• Qisqa va cheklangan uzunliklarda kuchli
• Lekin maksimal uzunlik bilan cheklanadi
🔹 8. Eng sodda tushuncha
A va B token embeddinglari bir xil bo‘lsa ham,
pozitsiya qo‘shilgandan keyin: X0 ≠ X1
👉 Attention endi ularni aralashtirib yubormaydi
🎯 Yakuniy xulosa
• Self-attention tartibni o‘zi bilmaydi
• Shuning uchun positional encoding zarur
• Sinusoidal encoding — klassik va barqaror yechim
• Learned variant — vazifaga moslashuvchan
Bu dars Transformer tushunishda kalit bosqich hisoblanadi.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.7-dars: Transformer tuzilmasi
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda biz Attention va Multi-Head Attention mexanizmlarini alohida-alohida matematik jihatdan tahlil qildik.
Bu dars esa kursning markaziy nuqtasi hisoblanadi.
👉 Chunki bu yerda barcha bo‘laklar bitta to‘liq Transformer blokiga yig‘iladi.
Bu darsda maqsad:
👉 Transformer blokida har bir detal nima qiladi va nega aynan shunday joylashtirilganini tushunish.
🔹 Transformer oddiy model emas
U quyidagi savollarga javob beradi:
• Nega model chuqurlashsa barqaror bo‘lib qoladi?
• Axborot qanday qilib qatlamdan qatlamga yo‘qolmasdan o‘tadi?
• Nega bitta emas, bir nechta nuqtai nazar kerak bo‘ladi?
Bu savollarga javoblar:
👉 Residual Connection
👉 Layer Normalization
👉 Multi-Head Attention
👉 Feed-Forward Network
🔹 1. Bitta Transformer blokining umumiy tuzilmasi
Ketma-ketlik:
1. Multi-Head Attention
2. Residual + LayerNorm
3. Feed-Forward Network
4. Residual + LayerNorm
Muhim jihat:
👉 Attention va FFN orasida axborotni saqlovchi va barqarorlashtiruvchi mexanizmlar mavjud.
🔹 2. Residual Connection — nega kerak?
🔸 Muammo:
DNNda:
• gradient yo‘qoladi
• kirishda(input)gi ma’lumot buziladi
• model o‘rganishi qiyinlashadi
🔸 Yechim: Residual Connection
Oddiy formula: output = x + F(x)
Bu yerda:
• x — qatlam uchun kirish (input)
• F(x) — attention yoki FFN natijasi
Mazmuni juda oddiy:
👉 Agar yangisini o‘rganmasang ham, eskisini buzma.
🔹 3. Layer Normalization (LayerNorm)
🔸 Muammo: Qatlam natijalari turli diapazonda bo‘lib ketadi → training beqaror bo‘ladi
🔸 Yechim: LayerNorm — har bir token ichida normallashtirish
Agar token vektori: x = [x1, x2, x3, x4]
O‘rtacha: mu = (x1 + x2 + x3 + x4) / 4
Dispersiya: var = ((x1 - mu)^2 + ... ) / 4
Normallashtirish: x_norm = (x - mu) / sqrt(var + eps)
Nega BatchNorm emas?
• Ketma-ketlik uzunligi o‘zgaradi
• Har bir token mustaqil
Shuning uchun Transformer → LayerNorm
🔹 4. Multi-Head Attention (qisqa eslatma)
Multi-Head Attention = bir nechta parallel Attention
Formula (so‘z bilan):
• Har bir head uchun alohida Q, K, V
• Har biri mustaqil Attention hisoblaydi
• Natijalar concat qilinadi (qo’shiladi)
• Oxirida W0 orqali proyeksiya qilinadi
Mazmuni:
👉 Har bir head boshqa bog‘lanishni ko‘radi
🔹 5. Feed-Forward Network (FFN)
Muhim savol:
👉 Attention tokenlar bog’liqligini o‘rgansa, token ichidagi murakkablikni kim o‘rganadi?
Javob: Feed-Forward Network
Formula: FFN(x) = max(0, xW1 + b1)W2 + b2
Misol o‘lchamlar:
• d_model = 512
• W1: 512 → 2048
• W2: 2048 → 512
Natija:
👉 Har bir token ichki jihatdan chuqur tahlil qilinadi
🔹 6. To‘liq Transformer blok (bosqichma-bosqich)
Kirish: x
1-qadam: y1 = MultiHead(x)
2-qadam: y2 = LayerNorm(x + y1)
3-qadam: y3 = FFN(y2)
4-qadam: output = LayerNorm(y2 + y3)
Natija:
👉 Barqaror, chuqur va semantik jihatdan boy ifoda
🔹 Transformer blokni eslab qolish uchun:
• Attention — kim kim bilan bog‘liq?
• FFN — token ichida nima bo‘lyapti?
• Residual — eski bilimni saqla
• LayerNorm — barqarorlikni ta’minla
Shu sababli Transformer:
• murakkab
• parallel
• uzoq bog‘lanishni ushlaydi
🎯 Asosiy xulosa
Transformer kuchi bitta g‘oyada emas.
U to‘g‘ri yig‘ilgan oddiy mexanizmlar kombinatsiyasi.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.6-dars: Multi-Head Attention matematikasi
🎯 Deep Learning Mathematics — @EldorML
Oldingi darsda biz Self-Attention mexanizmini to‘liq matematik asosda ko‘rib chiqdik.
👉 Q, K, V nima ekanini
👉 QKᵀ nega faqat o‘xshashlik ekanini
👉 Attention qachon boshlanishini
Bu darsda esa keyingi muhim bosqichga o‘tamiz:
👉 Nega Transformerlar bitta Attention bilan cheklanmaydi?
🔹 Muammo
Bitta Attention faqat bitta nuqtai nazarni o‘rganadi.
Ammo til murakkab:
* ma’no (semantika)
* grammatik rol
* uzoq masofali bog‘lanishlar
👉 Bularni bitta Attention bilan bir vaqtda ushlab bo‘lmaydi.
Shu sababli:
> Multi-Head Attention ishlatiladi.
🔹 Multi-Head Attention g‘oyasi
Bir xil gapga bir vaqtning o‘zida:
* bir nechta Attention
* bir nechta “qarash nuqtasi” qo‘llaniladi.
Muhim jihat:
👉 Barcha headlar bir xil X ni oladi
👉 Lekin har biri boshqa parametrlar bilan ishlaydi
Natija:
* har bir head boshqa turdagi bog‘lanishni o‘rganadi
🔹 Multi-Head Attention qanday ishlaydi? (katta rasm)
Jarayon quyidagicha:
X (embeddinglar)
→ har bir head uchun alohida Q, K, V
→ har bir head Attention hisoblanadi
→ headlar natijasi yonma-yon birlashtiriladi (concat)
→ W₀ orqali yakuniy proyeksiya
👉 Natijada har bir so‘z uchun boyroq va chuqurroq vektor hosil bo‘ladi.
🔹 Matematik misol (to‘liq va qo‘lda hisoblangan)
Bu darsda biz:
* 2 ta so‘z bilan ishladik
* d_model = 4
* 2 ta parallel head
Har bir bosqichda:
* QKᵀ qanday chiqishini
* masshtablash nima uchun kerakligini
* softmax qator bo‘yicha qanday ishlashini
* V bilan ko‘paytirish nimani berishini
👉 har bir katakchani qo‘lda hisoblab chiqdik.
🔹 Nega bu juda muhim?
Chunki:
* Multi-Head Attention Transformerlarning asosiy kuch manbai
* Headlar ko‘payishi — modelning “fikrlash kengligi” oshishi
* Concat + W₀ — turli bilimlarni yagona qarorga keltirish
🔹 Analogiya
Multi-Head Attentionni shunday tasavvur qiling:
* bir xil matn
* bir nechta o‘qituvchi
* har biri boshqa jihatdan tahlil qiladi
Oxirida esa:
👉 umumiy, boy xulosa chiqariladi.
🎯 Asosiy xulosa
* Multi-Head Attention = Attentionni ko‘paytirish emas
* Bu — parallel ravishda turli xususiyatlarni o‘rganish
* Har bir head bir xil input, lekin boshqa parametrlar
* Shuning uchun Transformerlar kuchli
🤝 YouTube dars: 🎥 Havola
🖥️ Colab notebook: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📢 Aziz do‘stlar!
Afsuski, so‘nggi paytlarda sog‘lig‘im bilan bog‘liq muammolar bo‘ldi 🤕. Shu sababli yangi videolarni vaqtida joylay olmadim.
Noqulaylik uchun uzr so‘rayman. Hozir imkon qadar asta-sekin kontent yuklashni boshlayman. Tushunganingiz va qo‘llab-quvvatlaganingiz uchun rahmat 🙏
📌 5.5-dars: Self-Attention matematikasi
🎯 Deep Learning Mathematics — @EldorML
Oldingi darsda biz Attentionning g‘oyasini tushundik:
👉 so‘zlar bir-biriga qaraydi va muhimini tanlaydi.
Bu darsda esa eng muhim savolga javob beramiz:
👉 Bu jarayon matematik jihatdan qanday ishlaydi?
Bu yerda endi: bitta vektor emas butun matritsa bilan ishlaymiz.
🔹 Self-Attention’ning katta rasmi
Jarayon quyidagicha:
Embeddings (X)
→ Q, K, V
→ QKᵀ (o‘xshashliklar jadvali)
→ bo‘lish sqrt(d_k) ga
→ Softmax (attention parametrlari)
→ A · V
→ yangi (contextual) embeddinglar
👉 Bu — Transformerlarning yuragi.
🔹 So‘zlar endi vektor emas, MATRITSA
Masalan: “Men olmani yedim”
Bu gap modelda shunday ko‘riladi:
* har bir so‘z — bitta qator
* butun gap — bitta matritsa
👉 Shunda model barcha so‘zlarni bir vaqtda ko‘radi.
🔹 QKᵀ — bu hali Attention EMAS
Ko‘pchilik shu yerda adashadi.
QKᵀ nimani beradi?
👉 o‘xshashlik (similarity)
Ya’ni:
* qaysi so‘z qaysi so‘zga o‘xshaydi
* lekin hali ma’lumot uzatilmaydi
Muhim xulosa:
👉 Similarity ≠ Attention
🔹 Attention qachon boshlanadi?
Attention faqat shu bosqichda boshlanadi:
Output = A · V
Bu yerda:
- A — attention parametrlari
- V — value vektorlari
👉 Model:
- nimaga qarashni emas
- nimadan ma’lumot olishni
hal qiladi.
🔹 Nega so‘z o‘ziga eng ko‘p e’tibor beradi?
Attention jadvalida diagonal elementlar katta bo‘ladi.
Bu nimani bildiradi?
👉 so‘z:
* avvalo o‘z ma’nosini saqlaydi
* keyin boshqalardan ma’lumot qo‘shadi
Bu — xato emas, balki barqarorlik mexanizmi.
🔹 Self-Attention = Graph
Self-Attentionni boshqacha tasavvur qiling:
* so‘zlar — tugunlar
* attention parametrlari — qirralar
Natija:
👉 to‘liq bog‘langan, yo‘naltirilgan graph
Shuning uchun:
> Self-Attention NLP ichidagi implicit Graph Neural Networkga o‘xshaydi.
🔹 Self-Attention nimani QILA OLMAYDI?
Self-Attention kuchli, lekin cheklovlarga ega.
❌ 1. So‘z tartibini bilmaydi
→ Positional Encoding shart
❌ 2. Lokal kontekstni avtomatik ushlamaydi
→ yaqin so‘zlar alohida ustun emas
❌ 3. Bias va noto‘g‘ri bog‘lanishlar bo‘lishi mumkin
→ statistik bog‘lanish ≠ semantik to‘g‘rilik
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.4-dars: Attention mexanizmi — Query, Key, Value
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda biz RNN, LSTM va Seq2Seq modellarida bitta muhim muammo borligini ko‘rdik:
👉 model uzoq gaplarda qaysi so‘z muhimligini aniqlay olmaydi.
Masalan: Men kecha bozordan olma sotib oldim, chunki u juda shirin edi.
Savol:
👉 “u” nimani bildiradi?
RNN uchun bu juda murakkab. Attention mexanizmi esa aynan shu muammoni hal qiladi.
🔹 Attention g‘oyasi nimada?
Attention shuni o‘rgatadi:
* har bir so‘z
* boshqa so‘zlarga qaraydi
* qaysi biri muhimligini baholaydi
* va shunga qarab ma’lumot yig‘adi
Ya’ni model:
👉 qayerga qarash kerakligini o‘rganadi.
Bu — soft (yumshoq) e’tibor.
🔹 Query, Key, Value nima?
Attention uchta tushunchaga tayangan:
* Query (Q) — “Men nimani qidiryapman?”
* Key (K) — “Menda qanday ma’lumot bor?”
* Value (V) — “Agar mos kelsa, nimani beraman?”
Hayotiy analogiya:
* Query → savol
* Key → kalit so‘z
* Value → javob mazmuni
🔹 Attention qanday hisoblanadi?
1️⃣ Avval o‘xshashlik topiladi (dot product): score = Q · K
Bu:
👉 so‘zlar qanchalik o‘xshashligini ko‘rsatadi.
2️⃣ Scaling — nega √d_k kerak?
Agar vektor o‘lchami katta bo‘lsa, score juda kattalashib ketadi.
Shuning uchun normallashtiramiz:
score = (Q · K) / √d_k
Bu yerda:
* d_k — Key vektor o‘lchami (uzunligi)
👉 √d_k qiymatlarni barqaror qiladi.
3️⃣ Softmax — e’tibor ulushi
score qiymatlar ehtimollikka aylantiriladi:
alpha = softmax(score)
Natija:
* barcha e’tiborlar yig‘indisi = 1
* model qaysi so‘zga ko‘proq e’tibor berishini biladi
4️⃣ Value bilan yig‘indi — ENG MUHIM QADAM
Yakuniy attention natijasi:
output = Σ (alpha_i * V_i)
Bu nimani beradi?
👉 so‘zning kontekstga mos, yangi ma’nosini.
Endi so‘z yolg‘iz emas — u butun gapni hisobga oladi.
🔹 Self-Attention nima?
* Query, Key, Value — bitta gapdan olinadi
* so‘zlar bir-biriga qaraydi
Masalan:
> “u” so‘zi “olma” so‘ziga kuchli e’tibor beradi
🔹 Cross-Attention nima?
* Query — bitta manbadan
* Key va Value — boshqa manbadan
Misollar:
* tarjima
* rasm + matn (CLIP)
🔹 Nega Attention juda muhim?
Attention:
* uzoq masofadagi bog‘lanishni ko‘radi
* parallel hisoblanadi
* kontekstni yo‘qotmaydi
* Transformerlarning asosidir
👉 GPT, BERT, T5 — barchasi Attention ustiga qurilgan.
👉 Xulosa
Attention — bu:
* qayerga qarashni o‘rganish
* so‘zlar orasidagi bog‘lanishni topish
* ma’noni kontekst asosida shakllantirish
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.3-dars: Sequence-to-Sequence (Seq2Seq) — Encoder, Decoder va Teacher Forcing
🎯 Deep Learning Mathematics — @EldorML
Oldingi darslarda biz RNN, LSTM va GRU bitta ketma-ketlikdan bitta natija olishga qanday moslashganini ko‘rdik.
Bu darsda esa navbatdagi muhim savolga javob beramiz:
👉 Qanday qilib model bitta ketma-ketlikni boshqa ketma-ketlikka aylantiradi?
Masalan:
I am learning → Men o‘rganayapmanBu vazifani oddiy RNN hal qila olmaydi. 🔹 Sequence-to-Sequence (Seq2Seq) nima? Seq2Seq — bu: * kirish ketma-ketligi * chiqish ketma-ketligi uzunligi bir xil bo‘lishi shart bo‘lmagan modellar oilasi. Shu sababli Seq2Seq quyidagi vazifalarda ishlatiladi: * tarjima * savol–javob * matnni qisqartirish 🔹 Encoder nima qiladi? Encoder: * kirish so‘zlarini ketma-ket o‘qiydi * har qadamda xotirani yangilaydi * oxirida butun gapning siqilgan ma’nosini hosil qiladi Bu yakuniy xotira: 👉 context vector deb ataladi. 🔹 Decoder nima qiladi? Decoder: * faqat context vectorni ko‘radi * chiqishni token bo’yicha generatsiya qiladi * qachon to‘xtashni
<EOS> tokeni orqali o‘rganadi
Muhim jihat:
* <SOS> va <EOS> — so‘z emas, maxsus tokenlar
* model so‘zlar sonini emas, tokenlar ketma-ketligini o‘rganadi
🔹 Teacher Forcing nima uchun kerak?
Trening vaqtida:
* decoderga to‘g‘ri oldingi token beriladi
Bu:
* o‘rganishni tezlashtiradi
* xatolar yig‘ilib ketishini kamaytiradi
* modelni barqaror qiladi
Teacher Forcing bo‘lmasa:
* model bir xil so‘zlarni qayta-qayta takrorlashi mumkin
👉 Xulosa
Seq2Seq modeli:
* so‘zlarni emas, ma’noni o‘rganadi
* encoder orqali ma’noni yig‘adi
* decoder orqali uni qayta generatsiya qiladi
* Teacher Forcing orqali treningda barqarorlashtiriladi
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lish mumkin. Uzr so‘rayman 🙏
@EldorML📌 5.2-dars: Vanishing / Exploding Gradient — LSTM va GRU nima uchun kerak?
🎯 *Deep Learning Mathematics* — @EldorML
Oldingi darsda RNN xotirani qanday yangilashini ko‘rdik.
Bu darsda esa muhim savolga javob beramiz:
👉 Nega oddiy RNN uzoq ketma-ketliklarda ishlamay qoladi?
Bu muammo arxitekturada emas, balki gradientlar vaqt bo‘yicha qanday tarqalishida ekanini ko‘rasiz.
🔹 Vanishing gradient nimani anglatadi?
RNNda xato (loss) oxirgi vaqt qadamida hisoblanadi, lekin uning ta’siri bir necha qadam orqaga uzatiladi.
Agar bu ta’sir har qadamda kichrayib borsa — gradient yo‘qoladi.
Natija:
* model uzoq o‘tmishni “eslay olmaydi”
* faqat oxirgi bir necha qadamni o‘rganadi
Bu holat vanishing gradient deb ataladi.
🔹 Exploding gradient nima?
Agar gradient har qadamda kichraymasdan, aksincha kattalashib borsa:
* sonlar nazoratdan chiqadi
* loss sakraydi
* o‘rganish buziladi
Bu esa exploding gradient hodisasi.
🔹 Muammo qayerdan keladi? (Chain rule)
RNNda gradient vaqt bo‘yicha:
* ketma-ket ko‘paytiriladi
* bir xil parametrlar qayta-qayta ishlatiladi
Shuning uchun:
* kichik sonlar → nolga yaqinlashadi
* katta sonlar → portlab ketadi
🔹 LSTM nima bilan farq qiladi?
LSTM xotirani to‘liq almashtirmaydi.
U xotirani shunday yangilaydi:
* qanchasini saqlashni
* qanchasini qo‘shishni
alohida gatelar orqali boshqaradi.
Natijada xotira:
* sekin o‘zgaradi
* barqaror bo’ladi
* gradientlar yo‘qolmaydi
🔹 GRU nimasi bilan boshqacha?
GRU alohida cell state ishlatmaydi.
U xotirani:
* eski holat
* va yangi ma’lumot
orasida blend (aralashtirish) orqali yangilaydi.
Ya’ni xotira:
* keskin almashtirilmaydi
* asta-sekin moslashadi
👉 Xulosa
RNN muammosi:
* xotira noto‘g‘ri yangilanadi
LSTM va GRU:
* xotirani yo‘qotmaslik uchun matematik jihatdan to‘g‘ri yechim
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lish mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.1-dars: RNN — xotira qanday ishlaydi?
🎯 Deep Learning Mathematics — @EldorML
Bu darsda Recurrent Neural Network (RNN) ni oddiy “ketma-ketlik modeli” sifatida emas, balki vaqt bo‘yicha xotirani yangilovchi aniq matematik mexanizm sifatida tushuntiramiz.
RNN bu yerda “so‘zlarni ketma-ket o‘qiydigan model” emas. RNN — bu har bir vaqt qadamida hozirgi kirish va o‘tmish xotirasini birlashtiradigan formula.
🔹 RNNning asosiy formulasi nimani anglatadi?
RNNda har vaqt qadamida xotira yangilanadi:
h_t = tanh( W_x · x_t + W_h · h_(t-1) + b )
Bu yerda:
* x_t — hozirgi vaqt qadamidagi kirish
* h_(t-1) — oldingi xotira
* h_t — yangi xotira
* W_x — input uchun model parametrlari
* W_h — xotira uchun model parametrlari
Ya’ni model har safar o‘ziga savol beradi:
"Hozir nima keldi va men buni avval bilganlarim bilan qanday birlashtiraman?"
🔹 Nega RNNda xotira kerak?
Agar model faqat x_t ga qarasa, u har bir qadamni alohida ko‘radi.
Xotira (h_t) esa modelga:
* o‘tmishdagi ma’lumotni saqlash
* kontekstni yo‘qotmaslik
* vaqt bo‘yicha bog‘lanishni tushunish
imkonini beradi.
Shuning uchun RNN matn, audio, vaqt qatorlari kabi ketma-ket ma’lumotlar uchun ishlatiladi.
🔹 W_x va W_h haqida muhim tushuncha
RNNda atigi ikkita asosiy parametr bor:
* W_x — hozirgi kirishni o‘qiydi
* W_h — o‘tmish xotirasini olib keladi
Bu parametrlar:
* har bir vaqt qadamida o‘zgarmaydi
* butun ketma-ketlik bo‘ylab bir xil ishlatiladi
Ammo:
* W_x va W_h bir-biriga teng emas
* ular faqat vaqt bo‘yicha qayta ishlatiladi
🔹 Agar W_h = 0 bo‘lsa nima bo‘ladi?
Agar xotira parametri o‘chirilsa:
h_t = tanh( W_x · x_t + b )
Bu holda model:
* o‘tmishni unutadi
* har qadamni alohida ko‘radi
* oddiy feed-forward (MLP) modelga aylanadi
Bu misol RNNning xotirasi aynan W_h orqali kelishini juda aniq ko‘rsatadi.
🔹 Nega tanh ishlatiladi?
tanh funksiyasi xotirani -1 va +1 oralig‘ida ushlab turadi.
Bu:
* qiymatlarning haddan tashqari kattalashib ketishini oldini oladi
* o‘rganishni barqaror qiladi
* gradientlar bilan bog‘liq muammolarni kamaytiradi
👉 Xulosa
RNN — bu blackbox emas.
RNN — bu vaqt bo‘yicha takrorlanadigan aniq algebraik qoida.
Modelda faqat:
* hozirgi kirish
* oldingi xotira
* va ularni birlashtiruvchi ikkita parametr
bor xolos.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 5.1-dars: RNN — xotira qanday ishlaydi?
🎯 Deep Learning Mathematics — @EldorML
Bu darsda Recurrent Neural Network (RNN) ni oddiy “ketma-ketlik modeli” sifatida emas, balki vaqt bo‘yicha xotirani yangilovchi aniq matematik mexanizm sifatida tushuntiramiz.
RNN bu yerda “so‘zlarni ketma-ket o‘qiydigan model” emas. RNN — bu har bir vaqt qadamida hozirgi kirish va o‘tmish xotirasini birlashtiradigan formula.
🔹 RNNning asosiy formulasi nimani anglatadi?
RNNda har vaqt qadamida xotira yangilanadi:
h_t = tanh( W_x · x_t + W_h · h_(t-1) + b )
Bu yerda:
* x_t — hozirgi vaqt qadamidagi kirish
* h_(t-1) — oldingi xotira
* h_t — yangi xotira
* W_x — input uchun model parametrlari
* W_h — xotira uchun model parametrlari
Ya’ni model har safar o‘ziga savol beradi:
"Hozir nima keldi va men buni avval bilganlarim bilan qanday birlashtiraman?"
🔹 Nega RNNda xotira kerak?
Agar model faqat x_t ga qarasa, u har bir qadamni alohida ko‘radi.
Xotira (h_t) esa modelga:
* o‘tmishdagi ma’lumotni saqlash
* kontekstni yo‘qotmaslik
* vaqt bo‘yicha bog‘lanishni tushunish
imkonini beradi.
Shuning uchun RNN matn, audio, vaqt qatorlari kabi ketma-ket ma’lumotlar uchun ishlatiladi.
🔹 W_x va W_h haqida muhim tushuncha
RNNda atigi ikkita asosiy parametr bor:
* W_x — hozirgi kirishni o‘qiydi
* W_h — o‘tmish xotirasini olib keladi
Bu parametrlar:
* har bir vaqt qadamida o‘zgarmaydi
* butun ketma-ketlik bo‘ylab bir xil ishlatiladi
Ammo:
* W_x va W_h bir-biriga teng emas
* ular faqat vaqt bo‘yicha qayta ishlatiladi
🔹 Agar W_h = 0 bo‘lsa nima bo‘ladi?
Agar xotira parametri o‘chirilsa:
h_t = tanh( W_x · x_t + b )
Bu holda model:
* o‘tmishni unutadi
* har qadamni alohida ko‘radi
* oddiy feed-forward (MLP) modelga aylanadi
Bu misol RNNning xotirasi aynan W_h orqali kelishini juda aniq ko‘rsatadi.
🔹 Nega tanh ishlatiladi?
tanh funksiyasi xotirani -1 va +1 oralig‘ida ushlab turadi.
Bu:
* qiymatlarning haddan tashqari kattalashib ketishini oldini oladi
* o‘rganishni barqaror qiladi
* gradientlar bilan bog‘liq muammolarni kamaytiradi
👉 Xulosa
RNN — bu blackbox emas.
RNN — bu vaqt bo‘yicha takrorlanadigan aniq algebraik qoida.
Modelda faqat:
* hozirgi kirish
* oldingi xotira
* va ularni birlashtiruvchi ikkita parametr
bor xolos.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 4.8-dars: CNNning matematik modeli
🎯 Deep Learning Mathematics — @EldorML
Bu darsda Convolutional Neural Network (CNN) haqida eng muhim savolga javob beramiz:
CNN qanday ishlaydi emas, balki CNN aslida nima?
Avvalgi darslarda convolution, filter, receptive field va feature hierarchyni o’rgangandik. Ushbu darsda esa CNNni to‘liq matematik nuqtai nazardan ko‘rib chiqamiz — formulalar, chiziqlilik va fazoviy harakat orqali.
CNN bu yerda “rasm ustida yuradigan filter” emas. CNN — bu fazoda har bir nuqtada bir xil algebraik amalni bajaruvchi matematik operator.
🔹 2D Convolution nimani anglatadi?
Convolution — bu har bir joyda rasmning kichik bir qismini olib, kernel bilan ichki ko‘paytma qilishdir. Natijada har bir nuqta uchun bitta son olinadi. Bu son shu joyda kernel qidirayotgan shakl qanchalik kuchli ekanini bildiradi.
Shu sababli CNN alohida piksellarni emas, balki fazodagi o‘zgarishlarni va tuzilmani “his qiladi”. Qirralar, burchaklar va teksturalar aynan shu yo‘l bilan aniqlanadi.
🔹 Convolution nima uchun chiziqli (linear)?
Convolution superpozitsiya qonuniga bo‘ysunadi. Agar ikkita signal qo‘shilsa, convolution natijasi ham alohida natijalar yig‘indisiga teng bo‘ladi: Conv(X1 + X2) = Conv(X1) + Conv(X2)
Bu juda muhim xulosa beradi: CNNning convolution qatlami murakkab emas. Murakkablik aktivatsiya (activation) funksiyalardan va qatlamlarning ketma-ketligidan kelib chiqadi. Convolution esa sof algebra.
🔹 CNN — yashirin katta matritsa
Convolutionni katta, maxsus tuzilishga ega matritsa bilan ko‘paytirish sifatida ham ko‘rish mumkin. Bu matritsada bir xil kernel butun fazo bo‘ylab takrorlanadi.
Aynan shu sababli CNN kam parametr bilan ishlaydi va obyektning joylashuviga bog‘lanib qolmaydi. Rasmning qayerida bo‘lishidan qat’i nazar, bir xil matematik qoida qo‘llanadi.
🔹 Fazoda harakat: Translation Equivariance
Agar obyekt rasm ichida siljisa, convolution natijasi ham siljiydi. CNN obyektni yo‘qotmaydi — faqat feature map ichidagi joylashuvi o‘zgaradi.
Bu xususiyat CNNga joylashuvdan mustaqil holda obyektlarni tanish imkonini beradi. Keyinchalik pooling bilan birga bu invariantlikka olib keladi.
🔹 Ko‘p kanalli convolution nimani qiladi?
RGB yoki ko‘p feature mapli tasvirlarda convolution har bir chiqish (output) kanalini barcha kirish (input) kanallaridan kelgan ma’lumotni birlashtirish orqali hosil qiladi.
Bu jarayon feature fusion deb ataladi. Ya’ni rang, tekstura va boshqa belgilar bitta semantik featurega aylanadi.
🔹 CNN qatlamning to‘liq matematik ko‘rinishi
Convolution chiziqli o‘lchov beradi, bias uni siljitadi, activation esa nochiziqlilik qo‘shadi. Agar activation bo‘lmaganida, bir nechta convolution qatlamlari bitta katta chiziqli operatorga yig‘ilib ketar edi.
Shu oddiy nochiziqlilik CNNga murakkab qaror chegaralarini o‘rganish imkonini beradi.
👉 Xulosa
CNN — bu blackbox emas. CNN — bu chiziqli algebra va fazoviy geometriya ustiga qurilgan aniq matematik model.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki matematik izohlarda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
