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!
Показати більшеКраїна не вказанаКатегорія не вказана
376
Підписники
Немає даних24 години
+17 днів
+330 день
Архів дописів
📌 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
📌 4.7-dars: Fourier bo‘yicha Convolution — Filtrlashning Yashirin Qiyofasi
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda convolutionning eng muhim matematik ko‘rinishlaridan biri — Fourier bo‘yicha Convolution qanday ishlashini sodda misollar orqali tushuntirib beramiz.
Oddiy convolution filtrni tasvir bo‘ylab suradi va ko‘paytirish + qo‘shish orqali natija chiqaradi. Fourier usulida esa convolution juda sodda ko‘rinishga keladi:
👉 Convolution = chastotalar bo‘yicha oddiy ko‘paytirish
Blur, Sharpen, Edge Detection kabi filtrlarning ichki ishlashini aynan shu yondashuv juda aniq tushuntiradi.
🔹 Convolution Theorem — asosiy tushuncha
Oddiy (fazo) convolution: y[n] = sum( x[k] * h[n - k] )
Fourier bo‘yicha: Y[k] = X[k] * H[k]
Bu yerda:
• X[k] — signalning k-chastotadagi kuchi
• H[k] — filtr shu chastotaga qanday ta’sir qilishi
• Y[k] — filtrlangan signalning chastotadagi qiymati
Blur filtri: past chastotani o‘tkazadi, yuqori chastotani kamaytiradi.
Sharpen: yuqori chastotani oshiradi.
Fourier bu jarayonlarni juda sodda ko‘rsatib beradi.
🔹 Fourier orqali Convolution qanday bajariladi?
Fourier usulida convolution quyidagi bosqichlarda bajariladi:
1) DFT(y) olinadi
DFT — Discrete Fourier Transform.
U signalni odatiy ko‘rinishdan “chastotalar ko’rinishi”ga o‘tkazadi.
Ya’ni qaysi chastotalar kuchli, qaysilari zaif — shuni ko‘rsatadi.
2) Kernel (h)ni nol bilan o‘lcham bo‘yicha to‘ldiriladi
FFT ishlashi uchun signal (input) va filtr bir xil uzunlikda bo‘lishi kerak.
Kernelning shakli o‘zgarmaydi — faqat oxiriga nol qo‘shiladi.
3) Har bir chastotada ko‘paytirish bajariladi
Chastotalar bo‘yicha convolution quyidagiga teng:
Y[k] = X[k] * H[k]
Ya’ni har bir chastota komponenti filtrning shu chastotaga ta’siriga ko‘paytiriladi.
Bu bosqichda hech qanday qo‘shish yo‘q — faqat oddiy ko‘paytirish.
4) IDFT qilinadi
IDFT — Inverse Discrete Fourier Transform.
Bu chastotalardan signalni yana odatiy ko‘rinishga qaytaradi.
Natija fazodagi oddiy convolution bilan bir xil bo‘ladi.
Eslatma: amalda DFT o‘rniga uning juda tez varianti — FFT ishlatiladi.
🔹 1D Misol — Fourier orqali Convolution qanday ishlaydi?
Oddiy misol olaylik:
Signal: y = [1, 3, 0, 0]
Blur kernel: h = [1/3, 1/3, 1/3]
1) DFT(y) olinadi: X ≈ [4, (1 - 3j), -2, (1 + 3j)]
2) Kernel nol bilan to‘ldiriladi h_pad = [1/3, 1/3, 1/3, 0]
DFT(h_pad): H ≈ [1, -j/3, 1/3, j/3]
3) Har bir chastotada ko‘paytirish bajariladi:
Y[k] = X[k] * H[k]
Natija (yaqin qiymatlar):
Y ≈ [4, (-1 - j/3), -0.66, (-1 + j/3)]
4) IDFT orqali fazoga qaytish:
y_filtered ≈ [1.33, 1.33, 1.0, 0.0]
Bu aynan blur filtrining fazodagi (oddiy convolution) natijasi bilan bir xil.
👉 Xulosa: Fourier bo‘yicha convolution — fazodagi convolution bilan aniq bir xil natija beradi,
faqat “sliding convolution” o‘rniga “chastotalar bo‘yicha ko‘paytirish” bajariladi.
🔹 Qachon Fourier Convolution ishlatiladi?
• Filtr juda katta bo‘lganda (masalan 50×50) — FFT 10–100 marta tezroq
• Tasvir yoki audio shovqinini kamaytirishda
• Blur va Sharpen filtrlarining ta’sirini tushuntirishda
• Chastota tarkibini tahlil qilishda
• Signalga chuqurroq matematik qarash talab qilinganda
CNNlar kichik kernel ishlatgani uchun amalda fazo convolution tezroq,
lekin Fourier convolution — tushuntirish va tahlil uchun eng kuchli vosita.
🔹Ikki yondashuvning farqi (bitta jumlada)
Fazo convolution → filtr suriladi
Fourier convolution → filtr chastotaga ko‘paytiriladi
Natija esa har doim bir xil.
🤝 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.6-dars: Transposed Convolution (Deconvolution) — Generativ Modellarning Yuragi
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda transposed convolution nima ekanini, oddiy convolutiondan qanday farq qilishini va GAN generatorlari tasvirni qanday kattalashtirishini sodda misollar bilan tushuntiramiz.
🔹 1) Transposed Convolution nima?
Oddiy convolution tasvirni kichraytiradi, transposed convolution esa:
• o‘lchamni kattalashtiradi
• learnable operatsiya (filtrlar orqali rasm chizadi)
• GAN generatorlar, Autoencoder decoderlar, UNet decoderlar uchun asosiy blok
Formulasi:
H_out = (H_in - 1) * S - 2P + KBu convolution matritsasining transpozitsiyasi sifatida kelib chiqadi. 🔹 2) 1D Juda Oddiy Misol — Qadam-baqadam Input:
[2, 3]
Stride = 2 → Upsample → [2, 0, 3]
Kernel = [1, 2, 1]
Har bir element o‘z qiymatini atrofga "yoyadi".
Natija: ➡️ [2, 4, 5, 6, 3]
Bu misol transposed convolutionning eng sodda intuitiv ko‘rinishidir.
🔹 3) 2D Transposed Convolution — GAN Generatorlari Qanday Tasvir Chizadi?
2×2 feature map:
a b c dStride = 2 bo‘lsa, har element orasiga 0 qo‘shiladi:
a 0 b 0 0 0 c 0 dShundan so‘ng convolution bajariladi. GANlarda odatiy jarayon:
4×4 → 8×8 → 16×16 → 32×32 → 64×64Har bosqich — transposed convolution. Bu mexanizm tufayli kichik latent vektordan butun tasvir hosil bo‘ladi. 🔹 4) Upsampling bilan Solishtirish Nearest/Bilinear Upsampling: • faqat kattalashtiradi • parametr yo‘q — o‘rganmaydi Transposed Convolution: • learnable • tasvirni kengaytiribgina qolmay, filtr orqali chizadi Shuning uchun generativ modellar transposed conv ishlatadi. 🔹 5) Checkerboard Artefaktlar — Nega Yuzaga Keladi? Stride = 2 bo‘lganda ayrim piksel joylari ko‘proq kernel ta’siri oladi. Shuning uchun tasvirda shaxmat naqshi paydo bo‘ladi. Zamonaviy yechim:
Nearest Upsample → Oddiy ConvolutionBu artefaktni yo‘q qiladi. 🔹 6) Nega "Deconvolution" noto‘g‘ri atama? Haqiqiy teskari operatsiya:
x = W⁻¹ yTransposed convolution esa:
x = Wᵀ yDemak, bu teskarisi emas — transpose. 🤝 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.5-dars: Ko‘p Qatlamli Filterlar va Convolutionning Hisoblash Murakkabligi
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda:
1. Filterlar tasvirdan xususiyatlarni qatlamlar bo‘yicha qanday o‘rganadi
2. Convolutionning hisoblash narxi — FLOPS va xotira talabi qayerdan keladi
🔹 1) Low-level features — Dastlabki qatlamlar nima qiladi?
CNNning birinchi qatlamlari eng sodda lokal signallarni ajratadi:
• gorizontal qirralar
• vertikal qirralar
• diagonal chiziqlar
• sodda tekstura farqlari
3×3 Sobel filtri (vertikal qirra):
[-1 0 1]
[-2 0 2]
[-1 0 1]
Hisoblash jarayoni: har bir W(i,j) × X(i,j) qiymatlari ko‘paytiriladi va jamlanadi.
🔹 2) Mid-level features — O‘rta qatlamlar nimani o‘rganadi?
Bu qatlamlar bir nechta qirralarni birlashtirib murakkabroq shakllarni hosil qiladi:
• burchaklar
• yoy shakllar
• egri konturlar
• takroriy teksturalar
Masalan, birinchi qatlamda “—” va “│” topilgan bo‘lsa, keyingi qatlam ularni birlashtirib “L” shaklni ajrata oladi.
Bu jarayon kompozitsion o‘rganish deyiladi.
🔹 3) High-level features — Chuqur qatlamlar
Chuqur qatlamlar semantik obyekt qismlarini o‘rganadi:
• ko‘z, burun, lab
• mashina g‘ildiragi yoki farasi
• hayvon konturi
• obyektning to‘liq shakli
Receptive field (RF - ko’rish hududi) chuqurlashgan sari kengayadi va model katta hududni “ko‘ra” boshlaydi.
🔹 4) Convolutionning hisoblash murakkabligi — FLOPS
Convolution juda katta matematik hisoblash talab qiladi.
FLOPS formulasi oddiy ko‘rinishda:
FLOPS = H × W × (K × K × Cin × Cout)
H — balandlik, W — kenglik
K — kernel o‘lchami (masalan, 3×3 → K=3)
Cin — kirish kanallari
Cout — chiqish kanallari
Misol:
Input: 224×224×64
Kernel: 3×3
Chiqish kanali: 128
224 × 224 × (9 × 64 × 128) ≈ 3.7 milliard operatsiya → 3.7 GFLOPS
Bu bitta convolution qatlamining narxi.
🔹 5) Xotira (Memory) Talabi
CNNdagi eng katta xotira sarfi — feature maplar.
Hisoblash:
Memory = H × W × C × 4 bayt (float32 = 4 bayt)
Misol:
112×112×128 feature map
112 × 112 × 128 = 1,605,632 qiymat
1.6M × 4 bayt ≈ 6.4 MB
Chuqur CNN o‘nlab bunday feature maplarni saqlaydi → 100+ MB xotira sarfi
🔹 6) Qisqa xulosa
• CNN qirra → shakl → obyekt bo‘lagi → obyekt tarzida o‘rganadi.
• FLOPS — convolutionning hisoblash narxini o‘lchaydi.
• Xotira sarfi feature maplar orqali keladi.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki kodda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML📌 4.4-dars: Pooling va Invariance — CNNlarda Barqarorlik
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda CNNning eng muhim tushunchalaridan biri — Pooling nima qilishi, Max/Average poolinglar o‘rtasidagi farq, va eng asosiysi — Translation Invariance (siljishga barqarorlik) qanday hosil bo‘lishini sodda misollar bilan ko‘rib chiqamiz.
Nima uchun rasm 1–2 piksel siljisa ham CNN obyektni tanib oladi?
🔹 Pooling nima va nima uchun kerak?
Pooling — bu feature mapdan eng muhim signallarni ajratib olish va spatial o‘lchamni qisqartirish jarayoni.
Max Pooling: eng katta qiymatni oladi
Average Pooling: o‘rtacha qiymatni oladi
Foydasi:
✔ CNNni keraksiz ma’lumotlarga barqaror qiladi
✔ Spatial o‘lchamni kamaytiradi
✔ Overfittingni kamaytiradi
✔ Xususiyatlarni (feature) umumlashtiradi
Pooling CNNning “ko‘rish” jarayonini yumshatadi va barqarorlashtiradi.
🔹 Equivariance va Invariance — farqi nima?
Equivariance (siljish → natija ham siljiydi)
Convolution haqiqatda: edge o‘ngga siljisa, feature map ham o‘ngga siljiydi.
Invariance (siljish → natija o‘zgarmaydi)
Pooling esa natijani joylashuvga unchalik bog‘lamaydi.
Aynan pooling convolutionning equivariance xususiyatini invariancega aylantiradi.
Shu sababli CNN obyektni qayerda turganiga qaramay tanib oladi.
🔹 Max Poolingning zaif tomoni
Agar tasodifiy bitta piksel juda katta bo‘lib qolsa (noise):
[ 0.9 1.0 ] [ 0.8 100 ] ← keraksiz ma’lumot (noise)Max Pooling → 100 Bu butun feature mapni buzadi. Demak: ❌ Max Pooling keraksiz ma’lumotlarga sezgir ❌ Modelga hujum qilinganda zaif (hacking) ❌ Katta piksel “g‘olib” bo‘lib ketadi 🔹 Average Pooling — barqarorroq alternativ Bitta katta piksel o‘rtacha qiymatni ko‘taradi, lekin butunlay buzmaydi. ✔ Keraksiz ma’lumotlar ta’siri yumshatiladi ✔ Xususiyatlar silliqlanadi Lekin Max Poolingga qaraganda “kuchli signallarni” kamroq ushlaydi. 🔹 Global Average Pooling (GAP) — zamonaviy standart GAP butun feature mapni bitta songa aylantiradi:
global_avg = barcha qiymatlarning o‘rtachasiBuning afzalliklari: ✔ Keraksiz ma’lumotlar juda kuchli pasayadi ✔ Spatial o‘lcham to‘liq siqiladi ✔ FC qatlamlar o‘rniga GAP → kam parametr ✔ Overfitting sezilarli kamayadi ✔ ResNet, EfficientNet, MobileNet — barchasi GAPdan foydalanadi GAP klassifikatsiya modellarida de-fakto standartga aylangan. 🔹 Qachon GAP ishlatilmaydi? Agar spatial joylashuv muhim bo‘lsa: ❌ Object Detection ❌ Segmentation ❌ Heatmap / Keypoint ❌ Dense Prediction Bu holatlarda spatial ma’lumot yo‘qolsa — model ishlamaydi. 🤝 YouTube dars: 🎥 Havola 🖥️ Colab: 📂 Havola 📘 Kursdagi barcha darslar: Havola 🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki kodda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏 @EldorML
📌 4.4-dars: Pooling va Invariance — CNNlarda Barqarorlik
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda CNNning eng muhim tushunchalaridan biri — Pooling nima qilishi, Max/Average poolinglar o‘rtasidagi farq, va eng asosiysi — Translation Invariance (siljishga barqarorlik) qanday hosil bo‘lishini sodda misollar bilan ko‘rib chiqamiz.
Nima uchun rasm 1–2 piksel siljisa ham CNN obyektni tanib oladi?
🔹 Pooling nima va nima uchun kerak?
Pooling — bu feature mapdan eng muhim signallarni ajratib olish va spatial o‘lchamni qisqartirish jarayoni.
Max Pooling: eng katta qiymatni oladi
Average Pooling: o‘rtacha qiymatni oladi
Foydasi:
✔ CNNni keraksiz ma’lumotlarga barqaror qiladi
✔ Spatial o‘lchamni kamaytiradi
✔ Overfittingni kamaytiradi
✔ Xususiyatlarni (feature) umumlashtiradi
Pooling CNNning “ko‘rish” jarayonini yumshatadi va barqarorlashtiradi.
🔹 Equivariance va Invariance — farqi nima?
Equivariance (siljish → natija ham siljiydi)
Convolution haqiqatda: edge o‘ngga siljisa, feature map ham o‘ngga siljiydi.
Invariance (siljish → natija o‘zgarmaydi)
Pooling esa natijani joylashuvga unchalik bog‘lamaydi.
Aynan pooling convolutionning equivariance xususiyatini invariancega aylantiradi.
Shu sababli CNN obyektni qayerda turganiga qaramay tanib oladi.
🔹 Max Poolingning zaif tomoni
Agar tasodifiy bitta piksel juda katta bo‘lib qolsa (noise):
[ 0.9 1.0 ] [ 0.8 100 ] ← keraksiz ma’lumot (noise)Max Pooling → 100 Bu butun feature mapni buzadi. Demak: ❌ Max Pooling keraksiz ma’lumotlarga sezgir ❌ Modelga hujum qilinganda zaif (hacking) ❌ Katta piksel “g‘olib” bo‘lib ketadi 🔹 Average Pooling — barqarorroq alternativ Bitta katta piksel o‘rtacha qiymatni ko‘taradi, lekin butunlay buzmaydi. ✔ Keraksiz ma’lumotlar ta’siri yumshatiladi ✔ Xususiyatlar silliqlanadi Lekin Max Poolingga qaraganda “kuchli signallarni” kamroq ushlaydi. 🔹 Global Average Pooling (GAP) — zamonaviy standart GAP butun feature mapni bitta songa aylantiradi:
global_avg = barcha qiymatlarning o‘rtachasiBuning afzalliklari: ✔ Keraksiz ma’lumotlar juda kuchli pasayadi ✔ Spatial o‘lcham to‘liq siqiladi ✔ FC qatlamlar o‘rniga GAP → kam parametr ✔ Overfitting sezilarli kamayadi ✔ ResNet, EfficientNet, MobileNet — barchasi GAPdan foydalanadi GAP klassifikatsiya modellarida de-fakto standartga aylangan. 🔹 Qachon GAP ishlatilmaydi? Agar spatial joylashuv muhim bo‘lsa: ❌ Object Detection ❌ Segmentation ❌ Heatmap / Keypoint ❌ Dense Prediction Bu holatlarda spatial ma’lumot yo‘qolsa — model ishlamaydi. 🤝 YouTube dars: 🎥 Havola 🖥️ Colab: 📂 Havola 📘 Kursdagi barcha darslar: Havola 🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki kodda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏 @EldorML
📌 4.3-dars: Receptive Field — Stride, Padding va Dilated Convolution
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda CNNning tasvirni qanday "ko‘rishi" — ya’ni receptive field qanday kengayishi, stride nimani o‘zgartirishi, padding nima uchun kerakligi va dilated convolution qanday qilib RFni o‘lchamni kamaytirmasdan kattalashtirishini sodda misollar bilan ko‘ramiz.
Receptive field (RF) — modelning ko‘rish oynasi. Pastki qatlam kichik chiziqlarni ko‘radi, ichki chuqur qatlam esa butun obyektni.
🔹 1) Receptive Field nima?
RF — har bir neyron rasmning qaysi hududiga qarab javob berishini bildiradi.
Misollar:
* RF = 3×3 → kichik lokal chiziq
* RF = 15×15 → shaklning bir bo‘lagi
* RF ≥ obyekt o‘lchami → butun obyektni ko‘ra oladi
RF chuqurlashgan sari kengayadi — CNN shu yo‘l bilan oddiy chiziqlardan tortib to murakkab obyektlargacha tushuna oladi.
🔹 2) Stride nima?
Stride — filtr tasvir bo‘ylab necha piksel "sakrab" yurishini bildiradi.
s = 1 → tasvir sekin aylanadi, detallar yo‘qolmaydi
s = 2 → tasvir tez qisqaradi, RF tez kattalashadi
Stride → spatial o‘lchamni kamaytiradi, lekin RFni kuchaytiradi.
🔹 3) Padding nima va nega kerak?
Padding — tasvir chetiga 0 qo‘shish.
Nega kerak?
✔ Chegaradagi piksel ma’lumoti yo‘qolmasligi
✔ Spatial o‘lcham bir xil bo‘lib qolishi
✔ CNN geometriyasi buzilmasligi
Masalan: kernel=3 → padding=1 qilib qo‘yilsa, kirish va chiqish bir xil o‘lchamda qoladi.
🔹 4) Dilation nima?
Dilation filtr elementlari orasiga bo‘sh joy qo‘shadi.
Misol:
kernel = 3
dilation = 2
effektiv kernel = (3−1)*2 + 1 = 5
Bu shuni anglatadi: 3×3 filtr 5×5 maydonni "ko‘radi".
Dilationning asosiy foydasi:
✔ RF juda tez o‘sadi
✔ Spatial o‘lcham o‘zgarmaydi
✔ Segmentatsiya (segmentation) va obyektni topishda (object detection) yaxshi ishlaydi
🔹 5) Dilated Convolution geometriyasi
Dilation kernel nuqtalarini masofali joylashtiradi:
(0,0), (0,d), (0,2d)
(d,0), (d,d), (d,2d)
(2d,0), (2d,d), (2d,2d)
Bu CNNga uzoq piksel bog‘lanishlarini ko‘ra olish imkonini beradi.
🔹 6) RF yordamida arxitektura qanday loyihalanadi?
Agar 128×128 tasvirdagi 80×80 obyektni aniqlamoqchi bo‘lsak:
yakuniy RF ≥ 80 bo‘lishi shart.
Shu sababli:
* Dastlabki qatlamlar: kernel=3 → RF=3, 5
* RFni tez o‘stirish: stride=2
* O‘lchamni kamaytirmay RFni tez kattalashtirish: dilation=2, dilation=4
* Yakunda RF ≈ 83 → model butun obyektni ko‘ra oladi
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki kodda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 4.2-dars: Filters va Features — Qirralar, Burchaklar va Xususiyatlar qatlami
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda CNNning eng muhim qismi — filtrlar yordamida tasvirdan qanday qilib qirra, burchak va murakkab shakllar ajralishini sodda, tushunarli misollar bilan ko‘ramiz.
Filtrlar tasvirning kichik bo‘lagiga qaraydi, undagi farqlarni solishtiradi va natijada modelga “mana bu yerda o‘zgarish bor” deb signal beradi.
🔹 1) Filter nima?
Filter — bu kichik sonlar matritsasi bo‘lib, tasvir bo‘ylab yuradi. Har pozitsiyada:
1️⃣ Elementlar bo‘yicha ko‘paytirish
2️⃣ Hammasini qo‘shish
3️⃣ Natijani yangi tasvirga (feature map) yozish
Misol vertikal qirra ajratuvchi filter:
[ 1 0 -1 ]
[ 1 0 -1 ]
[ 1 0 -1 ]
Bu filtr chap–o‘ng yorqinlik farqlarini solishtirib, vertikal o‘zgarishlarni topadi.
Farq katta bo‘lsa — qirra aniq ko‘rinadi.
Farq yo‘q bo‘lsa — qiymat 0 ga yaqin chiqadi.
🔹 2) Qirralar qanday aniqlanadi?
Misol sifatida tasvirdagi kichik bo‘lakni olaylik:
[ 10 10 10 ]
[ 10 50 50 ]
[ 10 50 50 ]
Agar bu bo‘lakka yuqoridagi filter qo‘yilsa:
* 10×1 + 10×0 + 10×(-1)
* 10×1 + 50×0 + 50×(-1)
* 10×1 + 50×0 + 50×(-1)
Hisoblash natijasi: -80
Bu shuni anglatadi:
✔ chap taraf qorong‘i
✔ o‘ng taraf yorqin
✔ demak, bu yerda qirra bor
Bu filterning eng muhim vazifasi — ikki hudud orasidagi “keskin farq”ni aniqlash.
🔹 3) Burchaklar qanday topiladi?
Burchak — bu ikki qirrani kesishgan joyi.
CNN avval:
1️⃣ Gorizontal qirralarni
2️⃣ Vertikal qirralarni
aniqlaydi.
So‘ngra ularning kesishgan nuqtasini topib:
✔ burchak sifatida belgilaydi.
Bu inson ko‘ziga o‘xshash: avval chiziqlarni ko‘ramiz, keyin shaklni tanib olamiz.
🔹 4) Feature Hierarchy — CNN qanday qilib murakkab obyektni ko‘radi?
CNN informatsiyani qatlamma-qatlam chuqurlashtiradi:
1️⃣ Past daraja:
chiziqlar, qirralar, keskin o‘zgarishlar
2️⃣ O‘rta daraja:
konturlar, dumaloq shakllar, uchburchaksimon tuzilmalar
3️⃣ Yuqori daraja:
ko‘z, burun, quloq, avtomobil bo‘laklari, yuz shakli
Bosqichli jarayon:
Chiziqlar → Konturlar → Qismlar → Obyekt
Mana shu mexanizm tufayli CNN tasvirni “ko‘ra oladi”.
🔹 5) Haqiqiy rasmda filtrlar qanday ishlaydi?
Filtr rasm bo‘ylab yurib, quyidagilarni ajratadi:
✔ deraza va eshik chiziqlari (vertikal)
✔ yer yoki stol cheti (gorizontal)
✔ burchaklar (intersection)
✔ yuzning konturlari
Shuningdek, CNNning birinchi qatlamida aynan shunday feature maplar hosil bo‘ladi — bu modelning "ko‘zlari" hisoblanadi.
🤝 YouTube dars: 🎥 Havola
🖥️ Colab: 📂 Havola
📘 Kursdagi barcha darslar: Havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki kodda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML
📌 4.1-dars: Convolution — 1D, 2D, 3D, Kernel va Formulalar
🎯 Deep Learning Mathematics — @EldorML
Bugungi darsda biz Convolution (konvolyutsiya) nima ekanini, kernel qanday harakatlanishini va nima uchun CNNlarning yuragi aynan shu mexanizmga asoslanganini sodda misollar bilan o‘rganamiz.
🔹 1) Convolution nima?
Convolution — bu kirish ma’lumotdan (input) xususiyat (feature)ajratish jarayoni. Kernel (filtr) input bo‘ylab yuradi va har pozitsiyada quyidagilarni bajaradi:
1️⃣ Ko‘paytirish — elementlar bo‘yicha
2️⃣ Yig‘ish — umumiy moslik qiymati
3️⃣ Natijani feature mapga yozish
Bu jarayon tasvirlarda:
* chegara (edge),
* burchak,
* tekstura,
* shaklarni aniqlashga yordam beradi.
🔹 2) 1D Convolution — Audio va vaqtga bog’liq ma’lumotlar
1D konvolyutsiya vaqt bo‘yicha harakat qiladi.
Misol:
Input:
[2, 3, 1, 0]
Kernel: [1, -1]
Hisoblash:
* 2×1 + 3×(-1) = -1
* 3×1 + 1×(-1) = 2
* 1×1 + 0×(-1) = 1
Natija: [-1, 2, 1]
Bu jarayon audio signalni filtrlash va bog’liqlikni topishda ishlatiladi.
🔹 3) 2D Convolution — Tasvirlar uchun CNN asosi
2D konvolyutsiya tasvirning kenglik–balandligi bo‘yicha kernelni yuritadi.
Misol kernel (edge detector):
1 0 -1 1 0 -1 1 0 -1Bu filtr tasvirdagi “vertikal chegara”ni topadi. Formula:
Natija(i, j) = (input * kernel) ning i,j-pozitsiyadagi yig‘indisiYa’ni kernel tasvirning kichik bo‘lagiga qo‘yiladi → har bir element ko‘paytiriladi → hamma ko’paytma natijasi yig‘iladi. 🔹 4) 3D Convolution — Video va 3D ma’lumotlar Agar ma’lumot: * video (ko‘p kadr), * CT/MRI (3D hajm), * voxel informatsiya bo‘lsa — unda 3D convolution ishlatiladi. Kernel endi chuqurlik × balandlik × kenglik (depth × height × width) bo‘yicha yuradi. Misol shakl:
(kD, kH, kW) = (2, 3, 3)Bu modelga 3D strukturani ko‘rish va har bir bo‘lakdagi shakllarni topishga yordam beradi. 🔹 5) Nima uchun formulalar aynan shunday? ✔ Kernel × Input = naqsh mosligi Ikki matritsa qanchalik o‘xshash — shuni o‘lchaydi. ✔ Yig‘indi = intensivlik Moslik qanchalik kuchli, natija shunchalik katta. ✔ Kernel har pozitsiyada bajariladi Butun tasvir bo‘ylab naqsh qidiriladi. ✔ Stride = qadam uzunligi Kichik qadam → ko‘proq detal, katta qadam → tezroq hisob. ✔ Padding = chegarani saqlash Aks holda tasvir kichrayib boradi. ✔ Depth = kanallar (RGB, multispectral) Ko‘p o‘lchamli ma’lumotdan xususiyat olish uchun. 🤝 YouTube dars: 🎥 Havola 🖥️ Colab misol: 📂 Havola 📘 Kursdagi barcha darslar: Havola 🚨 Videolar tayyorgarliksiz yozilgan, nutqda yoki kodda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏 @EldorML
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
