Yinelemeli Sinir Ağları

PyTorch ile Orta Düzey Deep Learning

Michal Oleszak

Machine Learning Engineer

Yinelemeli nöron

  • İleri beslemeli ağlar
  • RNN’ler: geri işaret eden bağlantılar vardır
  • Yinelemeli nöron:
    • Girdi x
    • Çıktı y
    • Gizli durum h
  • PyTorch’ta: nn.RNN()

Düz bir RNN nöronu şeması: Ağırlıklar ve aktivasyon uygulayan nöron, girdi x alır; çıktılar y ve h üretir; h kendisine geri beslenir.

PyTorch ile Orta Düzey Deep Learning

Yinelemeli nöronu zamanda açma

Yinelemeli nöron şeması. Zaman adımı 0’da h0 ve x0 girdilerini alır, y0 ve h1 çıktıları üretir.

PyTorch ile Orta Düzey Deep Learning

Yinelemeli nöronu zamanda açma

Yinelemeli nöron şeması. Zaman adımı 1’de h1 ve x1 girdilerini alır, y1 çıktısını üretir.

PyTorch ile Orta Düzey Deep Learning

Yinelemeli nöronu zamanda açma

Yinelemeli nöron şeması. Zaman adımı 2’de h2 ve x2 girdilerini alır, y2 ve h3 çıktıları üretir.

PyTorch ile Orta Düzey Deep Learning

Derin RNN’ler

Bir katman oluşturan iki yinelemeli nöron şeması. Her zaman adımında, çıktılar y başka bir nörona iletilir.

PyTorch ile Orta Düzey Deep Learning

Diziden diziye mimari

  • Girdi olarak dizi, çıktı dizisinin tamamını kullanın
  • Örnek: Gerçek zamanlı konuşma tanıma

Mimari şeması: her zaman adımında yeni bir girdi var; her zaman adımında üretilen tüm y çıktıları yeşil işaretli ve kullanılıyor,

PyTorch ile Orta Düzey Deep Learning

Diziden vektöre mimari

  • Girdi olarak dizi, yalnızca son çıktıyı kullanın
  • Örnek: Metin konu sınıflandırma

Mimari şeması: her zaman adımında yeni bir girdi var; yalnızca son zaman adımındaki son y çıktısı yeşil işaretli ve kullanılıyor,

PyTorch ile Orta Düzey Deep Learning

Vektörden diziye mimari

  • Tek girdi verin, çıktı dizisinin tamamını kullanın
  • Örnek: Metin üretimi

Mimari şeması: yalnızca ilk zaman adımında bir girdi var; her zaman adımında üretilen tüm y çıktıları yeşil işaretli ve kullanılıyor,

PyTorch ile Orta Düzey Deep Learning

Kodlayıcı–çözücü mimarisi

  • Tüm girdi dizisini verin, ardından çıktı dizisini kullanmaya başlayın
  • Örnek: Makine çevirisi

Mimari şeması: ilk bölümde (kodlayıcı) her zaman adımında girdiler alınır ancak çıktılar yok sayılır; ikinci bölümde (çözücü) artık girdi alınmaz, her zaman adımındaki tüm çıktılar kullanılır.

PyTorch ile Orta Düzey Deep Learning

PyTorch’ta RNN

class Net(nn.Module):
    def __init__(self):
        super().__init__()

self.rnn = nn.RNN( input_size=1, hidden_size=32, num_layers=2, batch_first=True, )
self.fc = nn.Linear(32, 1)
def forward(self, x): h0 = torch.zeros(2, x.size(0), 32)
out, _ = self.rnn(x, h0)
out = self.fc(out[:, -1, :]) return out
  • __init__ yöntemiyle model sınıfını tanımlayın
  • Yinelemeli katmanı tanımlayın, self.rnn
  • Doğrusal katmanı tanımlayın, fc
  • forward() içinde ilk gizli durumu sıfırla başlatın
  • Girdi ve ilk gizli durumu RNN katmanından geçirin
  • Son RNN çıktısını seçip doğrusal katmandan geçirin
PyTorch ile Orta Düzey Deep Learning

Haydi pratik yapalım!

PyTorch ile Orta Düzey Deep Learning

Preparing Video For Download...