Uzun ve kısa vadeli bellek ağı LSTM'yi ve geçitli tekrarlayan ağ GRU'yu anlamak için resme bakın
Makinenin kalbinden transfer yapmaya yetkili
Herkese merhaba, resimli LSTM ve GRU kılavuzuna hoş geldiniz. Bu makalede Michael, LSTM ve GRU'nun arkasındaki ilkelerle başlayacak ve ardından LSTM ve GRU'nun mükemmel performansa sahip olmasını sağlayan iç mekanizmaları açıklayacak. Bu iki ağın arkasında neler olduğunu anlamak istiyorsanız, bu makale tam size göre.
Dilerseniz bu makalenin video versiyonunu da izleyebilirsiniz.
Problem odaklı kısa süreli hafıza
Tekrarlayan Sinir Ağları (RNN'ler) büyük ölçüde kısa süreli bellekten etkilenir.Sıra yeterince uzunsa, bilgileri erken zaman adımlarından sonraki zaman adımlarına aktarmaları zor olacaktır. Bu nedenle, tahmin yapmak için bir metin paragrafını işlemeye çalışırsanız, RNN en başından önemli bilgileri gözden kaçırabilir.
Geri yayılma sürecinde, döngüsel sinir ağında gradyanın kaybolması gibi sorunlar da vardır. Genel olarak konuşursak, gradyan sinir ağının ağırlıklarını güncellemek için kullanılır Degradenin kaybolmasının problemi, gradyanın kademeli olarak küçülmesi ve zamanla sıfıra yaklaşmasıdır. Gradyan değeri çok küçük hale gelirse, öğrenme için yeterli bilgi sağlayamaz.
Gradyan güncelleme kuralı
Dolayısıyla, RNN'de, genellikle erken katman, gradyanın ortadan kalkması nedeniyle öğrenmeyi durduracaktır. Bu nedenle, RNN daha uzun dizide gördüklerini unutacak ve bu nedenle yalnızca kısa süreli belleğe sahip olacaktır.
Çözüm-LSTM ve GRU
LSTM ve GRU'nun oluşturulması kısa süreli bellek çözümleri olarak kullanılabilir.Bilgi akışını düzenleyebilen "kapı" adı verilen dahili bir mekanizmaya sahiptirler.
Bu kapılar, verilerin bir dizide saklanıp saklanmayacağını belirleyebilir, böylece ilgili bilgileri tahmin için daha uzun bir dizi zincirine iletebilir. Yinelenen sinir ağlarına dayanan en son sonuçların neredeyse tamamı bu iki ağ üzerinden elde edilir. LSTM ve GRU, konuşma tanıma, konuşma sentezi ve metin oluşturmada kullanılabilir. Bunları videolar için altyazı oluşturmak için bile kullanabilirsiniz.
Şimdi, LSTM ve GRU'nun uzun dizileri işlemede neden iyi olduğunu anlamalısınız. Bu soruyu cevaplamak için sezgisel açıklamalar ve resimler kullanacağım ve matematiği kullanmaktan kaçınmaya çalışacağım.
Sezgisel açıklama
Tamam, bir düşünce deneyiyle başlayalım. Çevrimiçi yorumları okuyarak Life marka tahıl satın alıp almayacağınıza karar verdiğinizi varsayalım. Çünkü önce incelemelere bakarız ve sonra başkalarının bunun iyi mi yoksa kötü mü olduğuna karar veririz.
İncelemeleri okuduğunuzda, beyniniz bilinçaltında önemli anahtar kelimeleri hatırlar. "Harika" ve "mükemmel dengelenmiş kahvaltı" gibi kelimelere odaklanacaksınız. "Bu", "ver", "hepsi", "gerekir" vb. Umurunda değil. Bir arkadaşınız size ertesi gün yorumun ne dediğini sorarsa, kelimesi kelimesine hatırlayamayabilirsiniz. Ama yine de "kesinlikle tekrar satın alacağım" gibi bazı önemli noktaları hatırlayabilirsiniz, diğer kelimeler hafızadan kaybolacaktır.
Bu, LSTM veya GRU'nun rolüdür. Tahmin için yalnızca ilgili bilgileri tutmayı öğrenebilir. Bu durumda hatırladığınız yorumlar, iyi kararlar vermenize olanak sağlayacaktır.
Tekrarlayan sinir ağını inceleyin
LSTM veya GRU'nun bunu nasıl yaptığını anlamak için tekrarlayan sinir ağını gözden geçirelim. RNN şu şekilde çalışır: ilk kelime makine tarafından okunabilir bir vektöre dönüştürülür. Daha sonra, RNN vektör dizisini tek tek işler.
Tek tek işlem sırası
İşleme sırasında, önceki gizli durumu sıranın bir sonraki adımına geçirir. Gizli durum, sinir ağının hafızası olarak kullanılır ve daha önce ağ tarafından gözlemlenen veri bilgilerini tutar.
Gizli durumu bir sonraki adıma geçirin
Gizli durumun nasıl hesaplanacağını görmek için RNN'nin bir hücresini gözlemleyin. İlk olarak, girdi ve önceki Tibet durumu bir vektörde birleştirilir. Bu vektör artık mevcut girişe ve önceki giriş bilgilerine sahiptir. Vektör tanh tarafından etkinleştirilir ve çıktı yeni gizli durum veya sinir ağının hafızasıdır.
RNN birimi
Hiperbolik tanjant (tanh) aktivasyon fonksiyonu
Tanh aktivasyon fonksiyonu sinir ağında geçirilen değeri ayarlamak için kullanılır ve giriş değerini -1 ile 1 arasında sıkıştırır.
Tanh, girişi -1 ile 1 arasına sıkıştırır
Bir vektör bir sinir ağından geçtiğinde, çeşitli matematiksel işlemler nedeniyle birçok dönüşüme uğrayacaktır. Bir değerin sürekli olarak 3 ile çarpıldığı varsayıldığında, sonuç astronomik sayılara dönüşecek ve diğer değerlerin önemsiz bir şekilde değişmesine neden olacaktır.
Tanh olmadan vektör dönüşümü
Tanh işlevi, değerin -1 ile 1 arasında kalmasını sağlayarak sinir ağının çıktısını kontrol eder. Aşağıdaki şekil, tanh fonksiyonu yardımıyla değerin farklı zaman adımlarında nasıl stabil olduğunu göstermektedir.
Tanh fonksiyonu altında vektör değişimi
Bu RNN. Çok az dahili operasyona sahiptir, ancak uygun ortamlarda (kısa diziler gibi) iyi performansa sahiptir. RNN, geliştirilmiş LSTM ve GRU sürümünden çok daha az bilgi işlem kaynağı kullanır.
LSTM
LSTM, tekrarlayan sinir ağına benzer bir kontrol akışına sahiptir.İleriye yayılma sırasında bilgi ileten verileri işler.İkisi arasındaki fark, birimdeki işleme sürecindedir.
LSTM birimi ve dahili işlemler
Bu dahili işlemler, LSTM'nin bilgileri kaydetmesine veya atmasına izin vermek için kullanılır. Bu işlemleri şimdi görmek biraz zor olabilir, bu yüzden onlara adım adım bakalım.
Ana kavram
LSTM'nin temel kavramı, hücre durumu ve hücredeki çeşitli kapılardır. Birim durumu, bir aktarım otoyolu gibidir ve ilgili bilgiler sıra zincirinde iletilir. Bunu ağın "hafızası" olarak düşünebilirsiniz. Teoride, birim durumu, dizi işleme boyunca ilgili bilgileri taşıyabilir. Bu nedenle, önceki zaman adımının bilgisi bile sonraki zaman adımının işlenmesine yardımcı olabilir, böylece birim durumu, kısa süreli belleğin etkisini etkili bir şekilde azaltır. Birim durumu farklı zaman adımlarında aktarılırken, birim durumundaki bilgileri geçitleme mekanizması aracılığıyla ekleyebilir veya silebiliriz. Bu kapılar, birim durumuna girebilecek bilgileri belirlemek için kullanılan farklı sinir ağlarıdır. Eğitim sürecinde kapı, hangi bilgilerin kaydedilmesi veya unutulması gerektiğini öğrenebilir.
sigmoid işlevi
Geçiş mekanizması esas olarak sigmoid aktivasyon fonksiyonundan oluşur.Sigmoid aktivasyon fonksiyonu, tanh aktivasyon fonksiyonuna benzerdir. -1 ile 1 yerine 0 ile 1 arasındaki değeri kontrol eder. Bu, verilerin güncellenmesine veya atılmasına yardımcı olur, çünkü 0 ile çarpılan herhangi bir sayı 0'dır, bu da değerin kaybolmasına veya "unutulmasına" neden olur. 1 ile çarpılan herhangi bir sayı kendisidir, bu nedenle bu değer değişmez veya "kaydetmez". Ağ, hangi verilerin önemli olmadığını, unutulabileceğini veya hangi verilerin kaydedilmesi gerektiğini bilebilir.
Sigmoid, 0 ile 1 arasındaki değeri kontrol edecek
Çeşitli kapıların rolüne daha yakından bakalım.LSTM birimindeki bilgi akışını düzenlemek için üç farklı kapıya sahibiz, yani unutma kapısı, giriş kapısı ve çıkış kapısı.
Unutulmuş Kapı
Birincisi, hangi bilgilerin atılması veya kaydedilmesi gerektiğini belirleyen unutma geçididir. Unutma geçidinde, önceki gizli durumdan bilgiler ve mevcut girişten gelen bilgiler sigmoid işlevine aktarılır ve değer 0 ile 1 arasına sıkıştırılır. 0'a ne kadar yakınsa atmak, 1'e o kadar yakın tutmak demektir.
Unutulan kapı operasyonu
Giriş kapısı
Hücre durumunu güncellemek için, LSTM bir giriş geçidi gerektirir. İlk olarak, önceki gizli durumu ve akım girişini, değeri 0'a 1'e dönüştürerek hangi değerlerin güncelleneceğini belirleyen bir sigmoid işlevine aktarıyoruz. 0 önemli değil, 1 önemli anlamına gelir. Sinir ağını düzenlemeye yardımcı olmak için değeri -1 ile 1 arasında bir değere değiştirmek için gizli durumu ve mevcut girişi tanh işlevine de iletebilirsiniz. Daha sonra tanh çıktısını sigmoid çıktısıyla çarpın ve sigmoid çıktısı tanh çıktısının önemli bilgilerini korumaya karar verecektir.
Giriş kapısı işlemi
Birim durumu
Artık birim durumu hesaplamak için yeterli bilgi olmalıdır. İlk olarak hücre durumu unutma vektörü nokta nokta ile çarpılır, 0'a yakın bir değer ile çarpılırsa hücre durumunda düşük bir değer elde etmek mümkündür. Daha sonra, önceki adımın çıktısı giriş kapısından okunur ve nokta nokta eklenir ve birim durumu, sinir ağının ilgili olduğunu düşündüğü yeni değere güncellenir ve yeni birim durumu elde edilir.
Hesaplama birimi durumu
Çıkış kapısı
Son olarak, bir sonraki gizli durumu belirleyen çıkış kapısı vardır. Unutmayın, gizli durum önceden girilmiş bilgileri içerir. Gizli durum da tahmin için kullanılır. İlk olarak, önceki gizli durumu ve akım girişini bir sigmoid işleve aktarıyoruz. Daha sonra yeni değiştirilmiş birim durumunu tanh fonksiyonuna geçiririz. Gizli durumun hangi bilgileri içermesi gerektiğini belirlemek için tanh çıktısını sigmoid çıktısıyla çarpıyoruz. Yeni birim durumu ve yeni gizli durum daha sonra bir sonraki adıma aktarılır.
Çıkış kapısı işlemi
Anlaşılması gereken şey, unutma kapısının önceki adımlarla neyin ilgili olduğunu belirlemesidir. Giriş kapısı, geçerli adımdan hangi ilgili bilgilerin eklendiğini belirler. Çıkış kapısı, bir sonraki gizli durumun ne olması gerektiğini belirler.
Kod demosu
Modeli kod aracılığıyla daha iyi anlamaya ihtiyaç duyanlar için işte bir Python sözde kod örneği:
Python sözde kodu
GRU
LSTM'nin nasıl çalıştığını zaten biliyoruz, kısaca GRU'ya bakalım. GRU, LSTM'ye çok benzeyen yeni nesil tekrarlayan bir sinir ağıdır. GRU birim durumundan kurtulur ve bilgileri iletmek için doğrudan gizli durumu kullanır.Sadece iki geçit mekanizmasına sahiptir, sıfırlama geçidi ve güncelleme geçidi.
GRU ünitesi ve kapısı
Güncelleme geçidinin işlevi, LSTM'nin unutma geçidi ve giriş geçidine benzer. Ayrıca hangi eski bilgilerin atılacağına ve hangi yeni bilgilerin ekleneceğine de karar verir. Sıfırlama kapısı, ne kadar geçmiş bilginin unutulacağına karar vermek için kullanılan bir kapıdır.
GRU'nun birkaç tensör işlemi vardır, bu nedenle LSTM ile karşılaştırıldığında eğitim hızı daha hızlıdır. Hangisinin daha iyi olduğu hala belli değil Araştırmacılar ve mühendisler genellikle mevcut durumlarına göre birini seçerler.
sonuç olarak
Özetle, RNN tahmin için sıra verilerini işlemek için çok faydalıdır, ancak kısa süreli bellek sorunları vardır. LSTM ve GRU yaratmanın amacı, kısa süreli belleği azaltmak için "geçit" mekanizmasını kullanmaktır. LSTM ve GRU, konuşma tanıma, konuşma sentezi ve doğal dil anlama gibi en gelişmiş derin öğrenme uygulamalarında yaygın olarak kullanılmaktadır.