CTC (Connectionist Temporal Classification) (Bağlantıcı Zamansal Sınıflandırma)

Giriş ve çıkış dizilerini önceden hizalamadan eğitmeyi sağlayan konuşma tanıma kayıp fonksiyonu.

CTC (Connectionist Temporal Classification — Bağlantıcı Zamansal Sınıflandırma), girdi dizisini çıktı dizisiyle zaman hizalaması yapmadan doğrudan eğitmeyi sağlayan bir kayıp fonksiyonu ve çıkarım algoritmasıdır. Graves ve arkadaşları tarafından 2006'da önerilen bu yaklaşım, özellikle otomatik konuşma tanıma (ASR) ve el yazısı tanımada devrim yaratmıştır. Geleneksel dizi modelleri, giriş çerçeveleri ile çıktı sembolleri arasında önceden tanımlı hizalama etiketlerine ihtiyaç duyar. Bunu sağlamak emek yoğundur ve uzman işaretleme gerektirir. CTC bu kısıtı ortadan kaldırır: model, hangi girdi çerçevesinin hangi çıktı sembolüne karşılık geldiğini öğrenmek yerine, tüm olası hizalamalar üzerinden toplamı hesaplayarak optimize edilir. Bunun için çıktı alfabesine özel bir 'boş karakter' (blank) eklenir; bu karakter tekrarlı sembolleri ve dolgu çerçevelerini temsil eder. Eğitim sırasında ileri-geri algoritması (forward-backward algorithm) kullanılarak bütün geçerli hizalamaların olasılıkları verimli biçimde hesaplanır ve hedef dizinin toplam olasılığı maksimize edilir. Çıkarım aşamasında açgözlü kod çözme (greedy decoding) ya da kiriş arama (beam search) kullanılarak en olası çıktı dizisi elde edilir; tekrarlı karakterler ve blank semboller kaldırılarak nihai metin üretilir. CTC, derin öğrenmenin konuşma tanımada yaygınlaşmasında kritik rol oynamıştır. wav2vec 2.0, Conformer-CTC ve bazı Whisper varyantları gibi modern modeller CTC kaybını büyük ölçekli ön eğitimle birleştirmektedir. El yazısı ve optik karakter tanıma (OCR) sistemleri de CTC'yi satır düzeyinde metin hizalaması için kullanmaktadır. Attention tabanlı kodlayıcı-çözücü mimarilerin yaygınlaşmasıyla birlikte CTC çoğunlukla hibrit sistemlerde yardımcı kayıp (auxiliary CTC loss) olarak kullanılmakta, hem eğitim hızlanmakta hem de monotonik hizalama zorlanmaktadır.

CTC'nin Temel Fikri

Klasik dizi etiketleme yöntemleri, her girdi zaman adımını karşılık gelen çıktı sembolüyle eşleştiren hizalama etiketlerine gereksinim duyar. Konuşmada bu etiketler genellikle uzman fonetikçiler tarafından çerçeve düzeyinde işaretlenmek zorundadır. CTC bu sorunu, çıktı alfabesine özel bir 'boş' (blank) sembolü ekleyerek ve tüm olası hizalamaların toplamını doğrudan hedefleyerek çözer. Model, hangi çerçevenin hangi harfi temsil ettiğini bilmeden sadece hangi harflerin geleceğini öğrenir.

İleri-Geri Algoritması ile Eğitim

Eğitim sırasında dinamik programlama tabanlı ileri-geri algoritması kullanılır. İleri geçişte her olası kısmi hizalamanın olasılığı adım adım hesaplanır; geri geçişte bu olasılıklar birleştirilerek hedef dizinin toplam olasılığı elde edilir. Kayıp bu toplam olasılığın negatif logaritmasıdır ve gradyan yinelemeli türev (backpropagation through time) ile hesaplanır. Bu süreç üstel sayıda hizalamayı polinom zamanda işlemeyi mümkün kılar.

Çıkarım ve Kod Çözme

Model eğitildikten sonra çıktı dizisini tahmin etmek için iki ana strateji kullanılır. Açgözlü kod çözme (greedy decoding), her zaman adımında en yüksek olasılıklı sembolü seçer; ardından tekrarlı semboller ve blank'ler kaldırılarak nihai metin elde edilir. Bu yöntem hızlıdır ancak optimal değildir. Kiriş arama (beam search), birden fazla olası dizi adayını paralel biçimde izler ve dil modeli puanlarıyla birleştirilerek daha doğru sonuçlar verir.

Modern Sistemlerdeki Yeri

Saf CTC, attention tabanlı kodlayıcı-çözücü (encoder-decoder) mimarilerin yükselişiyle birincil kayıp işlevi olma rolünü kısmen yitirmiştir. Buna karşın modern sistemlerde yardımcı kayıp (auxiliary CTC loss) olarak önemini korumaktadır: ana dikkat kaybına λ·CTC oranında eklenerek eğitim stabilitesi artırılır ve monotonik hizalama baskılanır. ESPnet, Conformer-CTC ve wav2vec 2.0 fine-tuning'i bu hibrit yaklaşımın yaygın örnekleridir. OCR ve el yazısı tanımada ise CTC baskın yöntem olmayı sürdürmektedir.

Sınırlamalar

CTC'nin temel kısıtı, çıktı bağımsızlığı varsayımıdır: model bir çıktı sembolünü üretirken önceki sembolleri dikkate almaz; bu durum dil modeli entegrasyonunu dışarıda bırakmaktadır. Ayrıca CTC monotonik hizalama varsayar (giriş sırası çıktı sırasını takip eder) ve sözdizimsel düzeltme gibi yeniden sıralama gerektiren görevlere uygun değildir. Bu nedenle makine çevirisi veya karmaşık dil görevlerinde attention mimarileri tercih edilir.

Sık Sorulan Sorular

  • check_circle CTC ile attention mekanizması arasındaki temel fark nedir? CTC monotonik hizalama varsayarken attention mekanizması herhangi bir girdi konumuna odaklanabilir. CTC çıktı bağımsızlığını varsayar (markov koşulsuzluk) fakat attention önceki çıktıları dikkate alabilir. Bu yüzden konuşma tanımada CTC daha hızlı eğitim sağlar; attention ise daha esnek ama daha yavaştır. Çoğu modern sistem ikisini birleştirir.
  • check_circle Blank sembolü olmadan CTC çalışabilir mi? Hayır. Blank sembolü iki kritik işlev görür: birincisi, tekrarlı karakterler arasına girerek tek karakter mi yoksa tekrar mı olduğunu ayırt eder (örneğin 'll' harfini 'l'den ayırt etmek); ikincisi, modelin girdi çerçevelerini boş tutmasına izin vererek zamansal esneklik sağlar. Blank olmadan tüm çerçeve hizalama kombinasyonları geçersiz hale gelir.
  • check_circle CTC hangi görevlerde kullanılabilir? CTC giriş ve çıktının monoton zaman bağımlılığı gösterdiği her dizi etiketleme görevine uygulanabilir: konuşma tanıma (ASR), el yazısı tanıma, optik karakter tanıma (OCR), jestlerin etiketlenmesi ve bazı video anlama görevleri bu kapsamdadır. Giriş-çıktı sıralamasının bozulduğu (yeniden sıralama gerektiren) görevlere uygun değildir.
  • check_circle Kiriş arama (beam search) açgözlü çözmeden ne kadar daha iyi sonuç verir? Uygulama ve kiriş genişliğine (beam width) bağlıdır. Kiriş genişliği artıkça doğruluk genellikle iyileşir ancak hesaplama maliyeti doğrusal artar. Dil modeli puanlarıyla birleştirildiğinde kiriş araması konuşma tanımada hata oranını %20-40 oranında düşürebilir; ancak gerçek zamanlı sistemlerde hız-doğruluk ödünleşimi söz konusudur.
  • check_circle CTC Türkçe konuşma tanımada nasıl kullanılıyor? Türkçe konuşma tanımada CTC tabanlı modeller (özellikle wav2vec 2.0 ve Whisper fine-tune'ları) başarıyla uygulanmaktadır. Türkçe'nin zengin eklemeli yapısı karakter düzeyinde CTC'yi kelime düzeyinden daha avantajlı kılar; bu sayede sözcük dışı (OOV) sorunları azalır. Açık kaynak Türkçe ASR modelleri büyük ölçüde CTC veya hibrit CTC+Attention mimarilerine dayanmaktadır.