NLP'den zaman serisi analizine kadar sıralı veriler için Tekrarlayan Sinir Ağlarının (RNN'ler) gücünü keşfedin. Temel kavramları ve uygulamaları bugün öğrenin!
Tekrarlayan Sinir Ağı (RNN), özel bir sinir ağı sınıfıdır. için özel olarak tasarlanmış sinir ağı (NN) Girdilerin sırasının bütünün anlamını belirlediği sıralı verileri işler. Geleneksel ileri beslemenin aksine Her bir girdiyi bağımsız olarak ele alan ağlar, RNN'ler dahili bir hafıza durumuna sahiptir ve bu sayede Bir dizideki önceki adımlardan gelen bilgiler. Bu benzersiz mimari, onları aşağıdakiler için temel kılar zamansal öğrenme içeren derin öğrenme (DL) uygulamaları veya sıralı modeller, örneğin doğal dil işleme (NLP), konuşma sentezi ve zaman serisi analizi. Tarafından Yeni veriler işlendikçe gelişen bir "gizli durum" sürdüren RNN'ler, bağlamı kavrayabilir ve bu sayede Bir cümledeki bir sonraki kelimeyi veya bir hisse senedi fiyatının gelecekteki değerini tahmin edin.
Bir RNN'nin tanımlayıcı özelliği döngü mekanizmasıdır. Standart bir sinir ağında veriler tek yönde akar: girdiden çıktıya. Bir RNN'de, bir nöronun çıktısı bir sonraki zaman adımı için girdi olarak kendisine geri beslenir. Bu süreç genellikle ağın zaman içinde "açılması" olarak görselleştirilir, burada ağ kendi iç durumu -o ana kadar gördükleri hakkında bilgi içeren- sıralamadaki bir sonraki adıma geçer.
Eğitim süreci sırasında RNN'ler aşağıdaki algoritmayı kullanır Zaman İçinde Geriye Yayılım (BPTT). Bu standartların bir uzantısıdır tarafından gradyanları hesaplayan geriye yayılım ağın dizinin zaman adımları boyunca açılması. BPTT, ağın daha önceki girdilerin nasıl olduğunu öğrenmesini sağlar sonraki çıktıları etkileyerek etkin bir şekilde ayarlar. hatayı en aza indirmek için model ağırlıkları. Detaylı Bu sürecin açıklamaları aşağıdaki gibi eğitim kaynaklarında bulunabilir Stanford'un CS224n NLP kursu.
RNN'ler özellikle verileri doğru yorumlamak için bağlamın gerekli olduğu senaryolarda etkilidir.
Güçlü olmasına rağmen, standart RNN'ler şu sorunlardan muzdariptir kaybolan gradyan problemi, burada ağ uzun diziler boyunca bilgiyi korumak için mücadele eder. Gradyanlar birçok zaman adımı boyunca geriye doğru yayıldıkça sonsuz küçük hale gelir ve ağın erken girdileri "unutmasına" neden olur.
Bunu ele almak için araştırmacılar gelişmiş varyantlar geliştirdi:
RNN'leri aşağıdakilerden ayırt etmek de önemlidir Evrişimsel Sinir Ağları (CNN'ler). RNN'ler zamansal (zaman tabanlı) dizilerde üstünlük sağlarken, CNN'ler görüntüler gibi uzamsal (ızgara tabanlı) veriler için tasarlanmıştır. Mesela, Ultralytics YOLO11 CNN tabanlı bir gerçek zamanlı nesne tespiti için mimari, Oysa bir RNN, YOLO 'nun işlediği video karelerine altyazı eklemek için daha uygun olacaktır.
Gibi modern çerçeveler PyTorch basitleştirmek için tekrarlayan katmanlar uygulamak. Ultralytics gibi modeller ise YOLO11 ağırlıklı olarak CNN tabanlıdır, kullanıcılar Özel çözümler için yaklaşan Ultralytics Platformu, çok modlu çözümlerle uğraşırken RNN'lerle karşılaşabilir veri.
İşte PyTorch'ta temel bir RNN katmanının tanımlanmasına ilişkin kısa bir örnek:
import torch
import torch.nn as nn
# Define an RNN layer: Input size 10, Hidden state size 20, 2 stacked layers
rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=2)
# Create a dummy input sequence: (sequence_length=5, batch_size=1, input_features=10)
input_seq = torch.randn(5, 1, 10)
# Forward pass: Returns the output for each step and the final hidden state
output, hidden = rnn(input_seq)
print(f"Output shape: {output.shape}") # torch.Size([5, 1, 20])
Daha gelişmiş sekans modellemesi için, birçok modern uygulama İşlemeyi paralelleştiren transformatör mimarileri bir dikkat mekanizması kullanarak. Ancak, RNN'ler evrimini anlamak için hayati bir kavram olmaya devam etmektedir. Yapay Zeka (AI) ve belirli düşük gecikmeli akış görevleri için hala verimli.
