Şimdi basit bir tahmin görevi yapmak için geleneksel bir dil modeli kullandığımızı varsayalım, böyle bir cümle var:
CoreReading, pek çok yararlı bilgi içeren mükemmel bir herkese açık hesaptır.Çoğunlukla ___ 'da bilgi arar ve bilgi alırım.2-gram gibi alanın içeriğini tahmin etmek için n-gram modelini kullanırsak, model "sonra" dan sonra oluşma olasılığı en yüksek olan kelimeyi verecektir. Bize göre, "temel okuma" yüksek olasılıklı bir seçenek olsa da, birçok veriyi eğittikten sonra, "temel okuma" nın "içinde" geride görünme olasılığı son derece düşük olacaktır, çünkü biz genellikle " "Evde" gibi yaygın kelimeler. Elbette, önceki makalede temel okuma teknolojisi adını görene kadar modelin kapsamını genişletmeye devam edebiliriz, ancak bu fikir pratikte uygulanabilir değildir.N ne kadar büyükse, Markov zinciri o kadar uzun ve seyrek veriler. Cidden, hesaplamak zordur ve daha da önemlisi, bu N'yi sabit bir değere ayarlamamız gerekir, böylece keyfi uzunluktaki cümleleri işleyemeyiz.
Yinelenen bir yapıya sahip bir ağ, yinelenen bir sinir ağı olarak adlandırılabilir. RNN, bu sorunu çok etkili bir şekilde çözebilir. Basit bir teoriden, herhangi bir uzunluktaki dizileri işleyebilir ve önceden N'yi düzeltmeye gerek yoktur. Yaşayın, daha fazla esneklik.
Evrişimli sinir ağları, zaman serisi problemleriyle de başa çıkabilir, özellikle de belirli özelliklerinden ziyade belirli özelliklerin görünüp görünmediğine baktığımızda, CNN'in belirli avantajları vardır. Ancak duygu sınıflandırması probleminde olduğu gibi doğal dil verileriyle uğraşırken, metni pozitif ve negatif olarak böleriz.CNN, "beğenmek" ve "güzellik" gibi belirli kelimelerin görünümünü işleyebilir. , Böyle bir cümle ise:
Bu filmi sevmediğimden değil, bu filmin güzel olduğu söylenemez ama ...Bu değerlendirmenin olumsuz bir değerlendirme olduğunu çabucak anlayabiliriz. Dolayısıyla, yalnızca özellikler çıkarılırsa ve kelimeler arasındaki ilişki göz ardı edilirse, CNN metnin "beğenildiğini" bulabilir ve bunu olumlu olarak sınıflandırabilir, "beğenmeme" olarak görebilir ve onu negatif olarak sınıflandırabilir ve sonra "hayır Bunu tekrar pozitif olarak sınıflandırmak kesinlikle mantıksız. Şu anda, bu cümlenin anlamını anlamak için bir dil modeli kullanmamız gerekiyor.
Tekrarlayan sinir ağlarını anlamaÖğrenme materyallerinde genellikle RNN simgesini görüyoruz:
Bu resim yeni başlayanlar için uygun değildir ve daha fazla yanlış anlamaya neden olmak çok kolaydır, ancak zaman serilerinin bağımlılığını ondan görebiliyor olsak da, yayılan ok st-1'den st'ye eklenmiştir ve bilgi olduğunu belirtmek için Ön nörondan doğrudan arka nörona akar, ancak bu resmin bize söyleyemeyeceği daha fazla sorun vardır, örneğin:
Yukarıdaki şekil yaygın olarak kullanılan bir diyagram olmasına rağmen, aslında, döngü yapısını daha iyi anlamanın yolu öyle değildir.
Herkesin döngü yapısını daha iyi anlamasına yardımcı olmak için birkaç eskiz çizdim. Aşağıdaki şekilde gösterildiği gibi, giriş, çıkış ve gizli katmanlarda yalnızca bir nöronun bulunduğu basit bir ileri beslemeli sinir ağı hayal edin. Buradaki çemberin soyut bir anlamı yoktur, çember bir nörondur:
Zaman serisinin ilk veri noktasını girdiğimizde, o anda gizli katmanın değerini bir bellek biriminde saklarız. Bu bellek birimi bir varlık değil, şeylere erişmek için kullanılan bir yapıdır:
Sakladığımız bellek biriminin işlevi X1'in özelliklerine erişir.Zaman serisinin ikinci veri noktasına girdiğimizde, ağ yapısının değişmeden kaldığını not etmeliyiz, ancak hafızadaki bilgileri de gizli alana giriyoruz. Katmanda, ikinci veri noktasının gizli katmanının çıktı için ilk veri noktasının verilerini ve özelliklerini alması ve aynı zamanda gizli katmanın bilgilerini bu anda belleğe döndürmesi ve tekrar kaydetmesi ile eşdeğerdir:
Üçüncü veri noktası girildiğinde, bellek biriminin çalışması önceki adımda elde edilen bilgidir ve elde edilen bilgiler bir sonraki zaman adımının girişi için saklanır:
Bu şekilde ilerlersek, herkesin görmeyi sevdiği resme benzer bir yapı elde ederiz.Önceki bilgilerin şimdiki zaman üzerindeki etkisini ifade etmek için, bellek birimini girerken bellek birimini parametrelendirmek için bir ağırlık matrisi W kullanırız, sonra bir Tek yazışma şöyle olur:
Burada, her daireyi bir nöron olarak anlıyoruz, ancak bir daireyi bir nöron katmanı olarak anlarsak, yani onu bir yapıya soyutlarsak, girdi, gizli katman ve çıktının hepsi çok boyutludur ve Zamana göre genişletin, alacaksınız:
Bu temelde, yukarıdaki sorunları açıklıyoruz:
Döngüsel sinir ağının eğitim sürecinde, sadece uzayda geri yayılmaya değil, aynı zamanda zaman adımında tersine çevrilmeye de ihtiyaç duymaktadır.Bunun getirdiği uzun vadeli bağımlılık problemi, optimize etmeyi zorlaştırmaktadır.Bir sonraki bölümde uzunluğu ve kısa zamanı tanıtacağız. Daha iyi bir RNN performansı elde etmek için bellek birimi (LSTM).