CTC (Connectionist Temporal Classification) — input va output ketma-ketliklari orasidagi aniq vaqt bo‘yicha alignment noma’lum bo‘lganda sequence modelni o‘qitish uchun ishlatiladigan loss va decoding usuli. U speech recognition, OCR va handwriting recognition’da audio frame yoki image feature ketma-ketligini matn tokenlariga moslaydi. CTC har output belgisi qaysi framega tegishli ekanini annotation’da talab qilmaydi.
Alignment muammosi
Audio minglab frame’dan, transcript esa o‘nlab belgidan iborat bo‘lishi mumkin. Bir belgi bir nechta ketma-ket frame’da kuchli chiqadi. CTC output vocabulary’ga maxsus blank token qo‘shadi. Model har vaqt qadamida belgilar va blank uchun ehtimol beradi.
CTC collapse qoidasi avval ketma-ket takrorlarni birlashtiradi, keyin blanklarni olib tashlaydi. Masalan, --k-ii-t--o-b- yo‘li kitobga aylanishi mumkin. Ikki bir xil ketma-ket belgi chiqishi uchun ular orasida blank yoki boshqa token kerak; aks holda collapse bitta belgiga tushiradi.
Loss hisoblash
Bitta transcriptga olib keladigan ko‘plab frame-level alignment mavjud. CTC loss ularning ehtimollarini yig‘adi va to‘g‘ri transcript ehtimolini maksimal qilishga o‘rgatadi. Barcha yo‘lni sanash eksponentsial bo‘lardi; forward-backward dynamic programming yig‘indini samarali hisoblaydi.
Input ketma-ketligi targetdan yetarlicha uzun bo‘lishi kerak. Ayniqsa ketma-ket takroriy tokenlar blank joy talab qiladi. Feature extractor vaqt o‘lchamini haddan tashqari downsample qilsa targetni joylashtirish imkonsiz bo‘ladi va loss cheksiz yoki yaroqsiz chiqishi mumkin. Training pipeline input length va label lengthni tekshiradi.
Model tuzilishi
Encoder CNN, bidirectional recurrent network yoki transformer bo‘lishi mumkin. OCR’da rasm balandligi normalize qilinib, kenglik bo‘yicha feature sequence olinadi. Speech’da spectrogram frame’lari encoderga kiradi. Final linear qatlam har vaqt qadamida vocabulary va blank logits beradi.
CTC conditional independence taxminiga ko‘ra outputlar encoder feature’lari berilganda vaqt qadamlarida mustaqil hisoblanadi. Encoder keng kontekstni ko‘rsa bu amalda yumshaydi, lekin explicit autoregressive dependency yo‘q. Shu sabab tilga mos bo‘lmagan token ketma-ketligi chiqishi mumkin.
Decoding
Greedy decoding har frame’da eng ehtimolli tokenni tanlab, collapse qiladi. U tez, ammo umumiy eng ehtimolli transcriptni har doim topmaydi. Beam search bir nechta prefixni saqlab, yo‘llar ehtimolini birlashtiradi. Beam width oshsa sifat va hisoblash xarajati ortadi.
Language model va lexicon beam score’ga qo‘shilishi mumkin. Acoustic yoki visual model score, language score va word insertion bonus og‘irliklari validation set’da tanlanadi. Kuchli lug‘at ism, kod yoki yangi terminni noto‘g‘ri “tuzatishi” mumkin; open vocabulary va domain vocabulary muvozanati kerak.
Token tanlovi
Character vocabulary noma’lum so‘zni yozishi mumkin, lekin sequence uzun. Word vocabulary qisqa, ammo out-of-vocabulary muammosi bor. Subword tokenlar oraliq yechim beradi. Unicode script, case, punctuation va space tokeni training hamda evaluation qoidalariga mos belgilanadi.
O‘zbek matni uchun apostrof variantlari oldindan canonical shaklga keltirilishi mumkin. Agar training label va decoder boshqa normalizatsiya ishlatsa, vizual to‘g‘ri natija ham xato baholanadi. Blank token ordinary space emas; ikkalasi vocabulary’da alohida tushuncha.
Cheklovlar
CTC output tartibi input bo‘ylab monotonic bo‘lishini taxmin qiladi. Speech va bitta satr OCR uchun mos, ammo ikki ustunli sahifa reading orderini o‘zi hal qilmaydi. Avval layout va text line segmentation kerak. Input-output tartibi qayta joylashadigan machine translation vazifasiga CTC odatda mos emas.
Uzoq sequence memory va vaqt talab qiladi. Mixed precision, bucketing va length-based batching samaradorlikni oshiradi. Blank dominance training boshida modelning hamma joyda blank berishiga olib kelishi mumkin; learning rate, initialization va data sifati nazorat qilinadi.
Bog‘liq tushunchalar
Connectionist Temporal Classification, Sequence model, Beam search, Speech recognition, Optical Character Recognition, Alignment, Recurrent neural network