Şu anda Encode-Decode yapısını benimseyen model çok popüler, çünkü birçok alanda diğer geleneksel model yöntemlerinden daha iyi sonuçlar elde etti. Bu yapıya sahip bir model, genellikle girdi dizisini sabit uzunlukta bir vektör gösterimine kodlar Kısa uzunluklu bir girdi dizisi için, model karşılık gelen makul bir vektör gösterimini öğrenebilir. Ancak bu modelle ilgili sorunlar şunlardır: Giriş dizisi çok uzun olduğunda, modelin makul bir vektör gösterimini öğrenmesi zordur. .
Bu blog yazısında, LSTM / RNN modeline eklenen dikkat mekanizmasının geleneksel kodlayıcı-kod çözücü yapısının sorunlarının üstesinden nasıl geldiğini keşfedeceğiz.
Bu blog gönderisini okuyarak şunları öğreneceksiniz:
Öğrenmeye başlayalım.
Uzun giriş dizilerinin neden olduğu sorunlar
Geleneksel kodlayıcı-kod çözücüyü kullanan RNN modeli, ilk olarak giriş dizisini öğrenmek için bazı LSTM birimlerini kullanır ve bunu sabit uzunlukta bir vektör gösterimine kodlar; daha sonra bazı LSTM birimleri, bu vektör gösterimini okumak ve bir çıktı dizisine dönüştürmek için kullanılır.
Bu yapıya sahip model, birçok zor dizi tahmin probleminde (metin çevirisi gibi) en iyi sonuçları elde etmiştir, bu nedenle hızla mevcut ana akım yöntem haline gelmiştir.
Örneğin:
Bu yapı birçok alanda da güzel sonuçlar elde etti. Ancak bir sorunu var: Giriş dizisi, uzunluğuna bakılmaksızın sabit uzunlukta bir vektör gösterimine kodlanacaktır ve kod çözme, sabit uzunlukta vektör gösterimi ile sınırlıdır .
Bu sorun, özellikle modelin performansını sınırlar Giriş sırası nispeten uzun olduğunda, modelin performansı çok zayıf olacaktır. (Metin çevirisi görevinde, çevrilecek orijinal metnin uzunluğu çok uzun olduğunda çeviri kalitesi düşüktür).
"Potansiyel bir sorun, kodlayıcı-kod çözücü yapısını benimseyen sinir ağı modelinin, giriş dizisindeki gerekli bilgileri sabit uzunlukta bir vektör olarak temsil etmesi gerektiğidir ve giriş dizisi çok uzun olduğunda gerekli tüm bilgileri saklamak zordur (çünkü Çok fazla), özellikle giriş sırasının uzunluğu eğitim veri setindekinden daha uzun olduğunda. "
- Dzmitry Bahdanau, et al., Hizalama ve çevirmeyi ortaklaşa öğrenerek nöral makine çevirisi, 2015
Dikkat mekanizmasını kullanın
Dikkat mekanizmasının temel fikri şudur: Kodlama ve kod çözme sırasında dahili bir sabit uzunluklu vektöre dayanan geleneksel kodlayıcı-kod çözücü yapısını kırmak .
Dikkat mekanizmasının gerçekleştirilmesi Giriş dizisi üzerinde LSTM kodlayıcının ara çıktı sonuçlarını tutup ardından bu girdileri seçmeli olarak öğrenmek ve model çıktığında çıktı dizisini onunla ilişkilendirmek için bir model eğiterek .
Başka bir perspektiften, çıktı sırasındaki her bir öğenin üretme olasılığı, girdi sırasında hangi öğelerin seçildiğine bağlıdır.
"Metin çevirisi görevinde, dikkat mekanizmasını kullanan model, bir kelime oluşturduğu her seferinde giriş sırasındaki en alakalı kelime kümesini bulacaktır. Daha sonra model, mevcut bağlam vektörlerini ve önceden oluşturulmuş olanların tümünü kullanacaktır. Sonraki hedef kelimeyi tahmin etmek için kelime.
Giriş dizisini bir vektör dizisine dönüştürür ve uyarlamalı olarak hedef çeviri metninin kodunu çözmek için ondan bir alt küme seçer. Metin çevirisi için bir sinir ağı modelinin, girdi metninin uzunluğuna bakılmaksızın, girdi metnindeki tüm bilgileri sabit uzunlukta bir vektöre "sıkıştırması" gerektiği gibi geliyor. "
- Dzmitry Bahdanau, et al., Hizalama ve çevirmeyi ortaklaşa öğrenerek nöral makine çevirisi, 2015
Model dikkat mekanizmasını kullandıktan sonra hesaplama miktarını artıracak olsa da performans seviyesi iyileştirilebilir. Ek olarak, dikkat mekanizması, girdi dizisindeki bilgilerin, model çıktı işlemi sırasında üretilen son diziyi nasıl etkilediğinin anlaşılmasını kolaylaştırmak için kullanılır. Bu, modelin dahili işleyişini daha iyi anlamamıza ve bazı belirli girdi-çıktılarda hata ayıklamamıza yardımcı olur.
"Makalede önerilen yöntem, üretilen sıradaki her kelime ile giriş sırasındaki bazı kelimeler arasındaki hizalama ilişkisini sezgisel olarak gözlemleyebilir. Bu, ek açıklamalar ağırlık parametrelerini görselleştirerek elde edilebilir ... Her bir şekildeki matrisin her satırı temsil edilir. Ek açıklamayla ilişkili ağırlık. Buradan, hedef kelimeyi oluştururken, kaynak cümledeki konum bilgilerinin daha önemli kabul edileceğini görebiliriz. "
- Dzmitry Bahdanau, et al., Hizalama ve çevirmeyi ortaklaşa öğrenerek nöral makine çevirisi, 2015
Büyük görüntülerin neden olduğu sorunlar
Bilgisayarla görme alanında yaygın olarak kullanılan evrişimli sinir ağı modeli de benzer problemlere sahiptir: Özellikle büyük görüntü girdisi için modelin öğrenilmesi zordur.
Bu nedenle, sezgisel bir yöntem, model tahminlerde bulunmadan önce büyük resimlerin bazı yaklaşık temsillerini gerçekleştirmektir.
"İnsan algısının önemli bir özelliği, tüm harici girdileri anında işlememesidir. Aksine, insanlar gerekli bilgileri elde etmek için seçilen kısma odaklanacak ve ardından oluşturmak için farklı zaman dilimlerine ait yerel bilgileri birleştireceklerdir. Göz küresinin hareketine rehberlik etmek ve kararlar vermek için sahnenin dahili bir temsili. "
- Tekrarlayan Görsel Dikkat Modelleri, 2014
Bir dereceye kadar, bu sezgisel yöntemin dikkati dikkate aldığı düşünülebilir, ancak bu blog yazısında, bu yöntemin dikkat mekanizmasına dayandığı düşünülmemektedir.
Dikkat mekanizmasına dayalı ilgili makaleler aşağıdaki gibidir:
Dikkat modeline dayalı uygulama örnekleri
Bu bölüm, birkaç özel uygulama örneğini listeleyecek ve dikkat mekanizmasının dizi tahmini için LSTM / RNN modelinde nasıl kullanıldığını tanıtacaktır.
1. Metin çeviri görevlerinde Dikkatin Uygulanması
Metin çevirisi örneğinden daha önce bahsedilmişti.
Giriş dizisi olarak Fransızca bir cümle verildiğinde, İngilizceye çevrilen cümlenin çıkarılması gerekir. Dikkat mekanizması çıktı dizisindeki her kelimeyi çıkarmak için kullanıldığında, girdi sıralamasında daha önemli olduğu düşünülen bazı kelimelere odaklanacaktır.
Orijinal kodlayıcı-kod çözücü modelini, girdi içeriğini aramak için bir modele sahip olacak şekilde geliştirdik, bu da hedef kelimeyi oluştururken bunu yapacak bir kodlayıcı olacağı anlamına geliyor. Bu, önceki modelin tüm girdi dizisini sabit uzunlukta bir vektöre zorla kodlamaya dayalı olduğu sınırlamasını ortadan kaldırır ve ayrıca modelin sonraki hedef sözcüğü oluştururken girdideki ilgili bilgilere odaklanmasına izin verir.
- Dzmitry Bahdanau, et al., Hizalama ve çevirmeyi ortaklaşa öğrenerek nöral makine çevirisi, 2015
Metin çeviri görevlerinde Dikkatin görselleştirilmesi (giriş Fransızca metin dizisi, çıktı İngilizce metin dizisidir) (Dzmitry Bahdanau, ve diğerleri tarafından sağlanan resim, hizalamayı ve çevirmeyi birlikte öğrenerek sinirsel makine çevirisi, 2015)
2. Resim Açıklamada Dikkat Uygulaması
Önceki sezgisel yöntemden farklı olarak, dizi oluşturmaya dayalı dikkat mekanizması, evrişimli sinir ağlarının ilgili diziyi oluşturmak için resmin bazı yerel bilgilerine odaklanmasına yardımcı olmak için bilgisayarla görme ile ilgili görevlere uygulanabilir. Resim metin olarak anlatılmıştır.
Giriş olarak bir resim verildiğinde, karşılık gelen İngilizce metin açıklamasını çıkarın. Dikkat mekanizması, çıktı dizisindeki her kelimeyi çıkarırken resimdeki farklı yerel bilgilere odaklanmak için kullanılır.
3 standart veri setinde en iyi sonuçları elde eden dikkati temel alan bir yöntem öneriyoruz ... Aynı zamanda, dikkat mekanizmasının model oluşturma sürecini ve model tarafından öğrenilen hizalamayı daha iyi anlamamıza yardımcı olabileceğini gösteriyor. İlişki, insanın sezgisel bilişine çok yakındır (aşağıda gösterildiği gibi).
- Göster, Katıl ve Söyle: Görsel Dikkatle Nöral Resim Yazısı Üretimi, 2016
Resim açıklama görevinde Dikkatin görselleştirilmesi (girdi bir resimdir, çıktı bir açıklama metnidir) (Attend and Tell'ten resim: Görsel Dikkatle Nöral Görüntü Altyazısı Oluşturma, 2016)
3. Anlamsal Çıkarımda Dikkatin Uygulanması (Girişim)
İngilizce'de girdi olarak tanımlanan bir önerme ve hipotez verildiğinde, hipotez ile öncülün çelişkili, ilgili veya geçerli olup olmadığına ilişkin çıktı.
Örneğin:
Öncül : Düğünde fotoğraf çekmek
Hipotez : Biri evli
Bu örnekteki varsayım doğrudur.
Dikkat mekanizması, metinler arasındaki kelimeden kelimeye ilişkiyi tanımlamak için hipotezleri ve önermeleri ilişkilendirmek için kullanılır.
Her bir giriş metninin bağımsız olarak bir anlamsal vektör olarak kodlandığı modelden farklı olan LSTM'ye dayalı bir sinir ağı modeli öneriyoruz.Model, öncül ve hipotez tarafından açıklanan metin dizisini aynı anda okur ve hipotezin doğru olup olmadığına karar verir. . Hipotezdeki sözcükler / tümcecikler ile öncül metin arasındaki uyumu bulmak için modele bir dikkat mekanizması ekledik. ... Dikkat mekanizmasının eklenmesi, mevcut veri setinden elde edilen en iyi sonuç olan deneysel sonuçlarda modeli 2,6 puan iyileştirebilir ...
- Sinirsel Dikkatle Karışıklık Üzerine Muhakeme, 2016
Dikkatin semantik çıkarım görevlerinde görselleştirilmesi (girdi öncül metindir, çıktı varsayımsal metindir) (Sinirsel Dikkatle Düşünme hakkında Akıl Yürütme, 2016)
4. Konuşma Tanımada Dikkatin Uygulanması
Giriş olarak bir İngilizce konuşma bölümü verildiğinde, karşılık gelen ses birimi dizisini çıktı olarak verin.
Dikkat mekanizması, çıktı dizisindeki her bir ses birimini giriş konuşma dizisindeki bazı özel çerçevelerle ilişkilendirmek için kullanılır.
Kodlama için giriş dizisindeki bir sonraki konumu seçmek için metin içeriğini ve konum bilgisini birleştirebilen, dikkat mekanizmasına dayalı uçtan uca eğitilebilir bir konuşma tanıma modeli. Bu modelin bir avantajı, eğitim verilerinden çok daha uzun olan konuşma girdilerini tanıyabilmesidir.
- Konuşma Tanıma için Dikkat Temelli Modeller, 2015.
Dikkatin konuşma tanıma görevlerinde görselleştirilmesi (girdi ses çerçevesi, çıktı sesbiriminin konumudur) (Konuşma Tanıma için Dikkat Temelli Modellerden resim, 2015)
5. Metin Özetinde Dikkatin Uygulanması
Giriş dizisi olarak İngilizce bir makale verildiğinde, karşılık gelen bir özet dizisi çıktılayın.
Çıktı özetindeki her kelimeyi girdideki bazı belirli kelimelerle ilişkilendirmek için dikkat mekanizması kullanılır.
Sinir ağı çeviri modellerinin son gelişmelerine dayanarak, özet görevler oluşturmak için dikkat temelli bir sinir ağı modeli önerilmiştir. Bu olasılık modeli, doğru bir özet oluşturmak için üretici bir yöntemle birleştirilir.
- Soyut Cümle Özetleme için Sinirsel Dikkat Modeli, 2015
Dikkatin metin özetleme görevinde görselleştirilmesi (girdi bir makaledir, çıktı bir metin özetidir) (Soyut Cümle Özetleme için Sinirsel Dikkat Modelinden resim, 2015)
daha fazla okuma
Dikkat mekanizmasını LSTM / RNN modeline nasıl ekleyeceğiniz hakkında daha fazla bilgi edinmek istiyorsanız, aşağıdaki kağıtları okuyabilirsiniz:
Şu anda Keras, dikkat modelinin kodunu resmi olarak ayrı olarak yayınlamadı. İşte bazı üçüncü taraf uygulamaları:
sonuç olarak
Bu blog gönderisiyle, sıra tahmini sorunlarını çözmek için dikkat mekanizmasının LSTM / RNN modeline nasıl uygulandığını öğrenmelisiniz.
Spesifik olarak, geleneksel kodlayıcı-kod çözücü yapısını kullanan LSTM / RNN modelinin bir sorunu vardır: girişin uzunluğuna bakılmaksızın, modelin uzun giriş dizileri için öğrenme etkisini çok zayıf hale getiren sabit uzunlukta vektör temsiline kodlanır (kod çözme Etkisi çok zayıf). Dikkat mekanizması yukarıdaki problemlerin üstesinden gelir Prensip, model çıktı olduğunda girdideki ilgili bilgiye seçici olarak odaklanmaktır. Dikkat mekanizmasını kullanma yöntemi, metin çevirisi ve konuşma tanıma dahil olmak üzere çeşitli dizi tahmin görevlerinde yaygın olarak kullanılmaktadır.
Yeniden basıldı: