Bosh sahifa Wiki RNN

RNN

RNN — ketma-ket ma’lumotlarni oldingi holatni saqlagan holda qayta ishlashga mo‘ljallangan neural network architecture’si. To‘liq nomi Recurrent Neural Network. RNN matn, nutq, vaqt qatori, sensor signal va boshqa sequence’larda elementlar tartibini hisobga oladi.

RNN har vaqt qadamida joriy input va oldingi hidden state’dan yangi hidden state hosil qiladi.

Recurrent holat

Soddalashtirilgan model:

h_t = f(x_t, h_(t-1))

Bu yerda:

  • x_t — joriy input;
  • h_(t-1) — oldingi hidden state;
  • h_t — yangi state.

Bir xil weightlar barcha vaqt qadamlarida qayta ishlatiladi.

Sequence

RNN input ketma-ketligini elementma-element qayta ishlaydi.

Masalan, gap tokenlari:

Men → bugun → ishlayman

Har tokendan keyin state yangilanadi.

Yakuniy yoki barcha state’lar downstream vazifa uchun ishlatilishi mumkin.

Hidden state

Hidden state oldingi sequence haqida ixcham representation saqlaydi.

Nazariy jihatdan u barcha oldingi inputdan ta’sir oladi.

Amalda uzoq masofadagi ma’lumot gradient muammolari sabab yo‘qolishi mumkin.

State o‘lchami model capacity’sini belgilaydi.

Many-to-one

Ko‘p inputdan bitta output:

matn tokenlari
→ sentiment label

Oxirgi hidden state yoki pooled state classifierga uzatiladi.

Document juda uzun bo‘lsa faqat oxirgi state yetarli bo‘lmasligi mumkin.

One-to-many

Bitta inputdan ketma-ket output:

image feature
→ caption tokenlari

Decoder RNN oldingi output va state asosida keyingi tokenni generatsiya qiladi.

Start va end tokenlari sequence chegarasini bildiradi.

Many-to-many

Har input qadamiga output:

Yoki input va output uzunligi turli:

  • translation;
  • summarization.

Encoder-decoder architecture bu vazifalarni bajarishi mumkin.

Unrolling

RNN training graph vaqt bo‘yicha ochiladi:

t1 → t2 → t3 → ... → tn

Har qadam bir xil parameterlardan foydalanadi.

Backpropagation shu unrolled graph bo‘ylab bajariladi.

Bu Backpropagation Through Time deb ataladi.

BPTT

BPTT loss gradientini oldingi vaqt qadamlariga uzatadi.

Uzun sequence memory va compute sarfini oshiradi.

Truncated BPTT faqat ma’lum qadamgacha gradient uzatadi.

Bu trainingni yengillashtiradi, ammo juda uzoq dependency’ni o‘rganishni cheklashi mumkin.

Vanishing gradient

Gradient ko‘p vaqt qadamidan o‘tganda juda kichrayishi mumkin.

Natijada model uzoq oldingi signalni o‘rgana olmaydi.

Sigmoid yoki tanh derivative va recurrent weightlar bunga ta’sir qiladi.

LSTM va GRU shu muammoni kamaytirishga yaratilgan.

Exploding gradient

Gradient aksincha juda kattalashishi mumkin.

Bu trainingni beqaror qiladi va loss NaNga aylanishi ehtimoli bor.

Gradient clipping maksimal norm yoki qiymatni cheklaydi.

Weight initialization ham muhim.

Bidirectional RNN

Bidirectional RNN sequence’ni ikki yo‘nalishda o‘qiydi:

  • chapdan o‘ngga;
  • o‘ngdan chapga.

Har token oldingi va keyingi kontekstdan feature oladi.

Offline tagging uchun foydali.

Real-time streamingda kelajak token hali mavjud emas.

Stacked RNN

Bir nechta recurrent layer ustma-ust qo‘yiladi.

Pastki layer local pattern, yuqori layer abstrakt sequence feature o‘rganishi mumkin.

Chuqurlik capacityni oshiradi, ammo trainingni murakkablashtiradi.

Residual va normalization yordam berishi mumkin.

RNN language model

RNN oldingi tokenlar asosida keyingi token probabilitysini beradi.

Training teacher forcing bilan haqiqiy oldingi tokenni input qiladi.

Inference’da model o‘z generatsiya qilgan tokenini keyingi qadamga uzatadi.

Errorlar ketma-ket yig‘ilishi mumkin.

Encoder-decoder

Encoder input sequence’ni state yoki state’lar to‘plamiga aylantiradi.

Decoder shu representation asosida output sequence yaratadi.

Bitta fixed vector bottleneck uzun gaplarda muammo yaratgan.

Attention decoderga barcha encoder state’lariga murojaat qilish imkonini berdi.

Time series

RNN oldingi observationlar orqali keyingi qiymat yoki classni bashorat qilishi mumkin.

Inputga:

kiradi.

Stationarity va data leakage alohida nazorat qilinadi.

Stateful RNN

State batchlar yoki streaming segmentlar orasida saqlanishi mumkin.

Sequence chegarasida state tozalanmasa bir user yoki sample ma’lumoti boshqasiga o‘tishi mumkin.

Stateful inference session identity bilan boshqariladi.

RNN va Transformer

RNN tokenlarni ketma-ket qayta ishlaydi, parallelizatsiya cheklangan.

Transformer self-attention orqali trainingda tokenlarni parallel qayta ishlashi mumkin.

Transformer uzun dependency va scale’da ko‘p vazifalarda RNNni almashtirdi.

RNN kichik streaming model va signal vazifalarida hanuz foydali.

Mask va variable length

Batchdagi sequence’lar turli uzunlikda bo‘lsa padding qo‘shiladi. RNN padding qadamlarini real data sifatida state’ga qo‘shmasligi uchun length yoki mask ishlatiladi. Ayrim framework packed sequence representation beradi. Noto‘g‘ri mask oxirgi hidden state’ni paddingdan keyingi holatga aylantiradi.

Gradient clipping

Exploding gradientda update juda katta bo‘lib trainingni buzadi. Gradient norm ma’lum threshold’dan oshsa scale qilinadi. Clipping sababni to‘liq bartaraf etmaydi, ammo stabilityni yaxshilaydi.

Teacher forcing farqi

Decoder trainingda haqiqiy oldingi tokenni ko‘radi, inference’da esa o‘z xatosiga tayanadi. Bu exposure bias deb ataladigan farqni yaratishi mumkin. Beam search yoki training strategiyasi ta’sirni kamaytirishga intiladi.

State initialization

Initial hidden state nol, learned parameter yoki boshqa encoder outputidan olinishi mumkin. Tanlov vazifaning sequence boshlanish semantikasiga bog‘liq.

Bog‘liq tushunchalar

Recurrent Neural Network, Hidden state, Sequence model, Backpropagation Through Time, Vanishing gradient, Exploding gradient, LSTM, GRU, Bidirectional RNN, Time series