LSTM'yi keşfetmek: iç yapının temel kavramları

Annie Ruopu Derleyin ve organize edin

Qubit Üretildi | Genel Hesap QbitAI

Yazar hakkında: Edwin Chen, MIT'de matematik / dilbilim, Microsoft Research'te konuşma tanıma, Clarium'da kantitatif ticaret, Twitter'da reklamcılık ve Google'da makine öğrenimi okuyor.

Bu makalede yazar önce sinir ağlarının temel kavramlarını, RNN ve LSTM'yi tanıttı, ardından üç ağın performansını örneklerle karşılaştırdı ve LSTM'yi daha da açıkladı.

LSTM, sinir ağlarının oldukça basit bir uzantısıdır ve son birkaç yılda birçok şaşırtıcı başarıya imza atmıştır. LSTM'yi ilk öğrendiğimde biraz şaşırmıştım. Aşağıdaki resimden LSTM'nin güzelliğini bulabilir misiniz bilmiyorum.

Tamam, şimdi konuya gelelim. Kısaca sinir ağını ve LSTM'yi tanıtmama izin verin.

Nöral ağlar

Bir filmden bir dizi görselimiz olduğunu ve ardından her bir görüntüyü bir etkinlikle etiketlemek istediğimizi varsayalım. Örneğin, bu bir kavga mı? Karakter konuşuyor mu? Karakter yemek yiyor mu?

Ne yapmalıyım?

Bir yöntem, görüntülerin sıralı özelliklerini göz ardı etmek, her bir görüntüyü ayrı ayrı ele almak ve tek bir görüntü sınıflandırıcı oluşturmaktır. Örneğin, yeterince resim ve etiket verildiğinde:

  • Algoritma ilk olarak şekiller ve kenarlar gibi düşük seviyeli desenleri tespit etmeyi öğrenir.

  • Daha fazla veriyle çalışan algoritma, düşük seviyeli desenleri karmaşık şekillerde birleştirmeyi öğrenir. Örneğin, iki daireli bir elips ve üzerinde bir üçgen insan yüzü olarak kabul edilebilir.

  • Daha fazla veri varsa, algoritma bu gelişmiş kalıpları aktivitenin kendisiyle eşlemeyi öğrenecektir.Örneğin, ağzı, bifteği ve çatalı olan bir sahne yemek yiyor olabilir.

Bu derin bir sinir ağıdır: bir görüntü girişi alın ve bir etkinlik çıktısı döndürün.

Sinir ağının matematiksel prensibi şekilde gösterilmiştir:

Bilgileri hatırlamak için RNN kullanın

Görüntülerin sırasını göz ardı etmek, ön makine öğrenimi olarak kabul edilebilir. Dahası, eğer bu bir plaj sahnesi ise, sonraki karelerde plajla ilgili işaretleri güçlendirmeliyiz: eğer biri suda ise, muhtemelen yüzmek olarak işaretlenebilir ve gözlerin kapalı olduğu sahne güneşte güneşleniyor olabilir.

Benzer şekilde, sahne bir süpermarket ise, elinde pastırma tutan biri yemek pişirmek değil, alışveriş olarak işaretlenmelidir.

Yapmak istediğimiz, modelin dünyanın durumunu izlemesine izin vermek.

  • Her bir görüntüyü gördükten sonra, model bir etiket çıkarır ve dünya hakkındaki bilgilerini günceller. Örneğin, model konum, zaman ve film ilerlemesi gibi bilgileri otomatik olarak keşfetmeyi ve izlemeyi öğrenebilir. Önemli olan, modelin yararlı bilgileri otomatik olarak keşfetmesidir.

  • Belirli bir yeni imaj için, model toplanan bilgiyi daha iyi çalışacak şekilde entegre etmelidir.

  • Bu, tekrarlayan bir sinir ağı RNN'si haline gelir. Basitçe bir resim alıp bir etkinlik etiketi döndürmeye ek olarak, RNN, sınıflandırma görevini daha iyi gerçekleştirmek için bilgiye farklı ağırlıklar atayacak ve böylece dünyanın hafızasını dahili olarak koruyacaktır.

    RNN'nin matematiksel prensibi şekilde gösterilmiştir:

    LSTM aracılığıyla uzun süreli hafıza

    Model dünya anlayışını nasıl güncelliyor? Şimdiye kadar herhangi bir kural kısıtlaması yoktur, bu nedenle modelin kavrayışı çok kafa karıştırıcı olabilir. Bu çerçevede model, karakterin Amerika Birleşik Devletleri'nde olduğuna inanmaktadır.Bir sonraki karede suşi ortaya çıkarsa model, karakterin Japonya'da olduğunu düşünebilir ...

    Bu karışıklığın ardında, bilginin hızlı değişmesi ve kaybolması vardır ve modelin uzun süreli hafızayı sürdürmesi zordur. Bu nedenle, ağın bilgileri nasıl güncelleyeceğini öğrenmesine izin vermeliyiz. Aşağıdaki gibi yöntemler:

  • Unutma mekanizmasını artırın. Örneğin, bir sahne sona erdiğinde model, konum, zaman vb. Gibi sahneyle ilgili bilgileri sıfırlamalıdır. Bir karakter öldüğünde, model de bunu hatırlamalıdır. Bu nedenle, modelin bağımsız bir unut / hafıza mekanizmasını öğrenmesini umuyoruz.Yeni girdi olduğunda, model hangi bilgilerin kaybedilmesi gerektiğini bilmelidir.

  • Koruma mekanizmasını artırın. Model yeni bir resim gördüğünde, kullanmaya ve kaydetmeye değer bilgiler içerip içermediğini öğrenmesi gerekir.

  • Dolayısıyla, yeni bir girdi olduğunda, model önce kullanılmayan uzun süreli bellek bilgisini unutur, ardından yeni girdide hangi bilgilerin kullanılmaya değer olduğunu öğrenir ve ardından bunu uzun süreli bellekte saklar.

  • Uzun süreli hafızayı çalışan hafızaya odaklayın. Son olarak, modelin uzun süreli belleğin hangi bölümlerinin hemen kullanılabileceğini öğrenmesi gerekir. Her zaman tam uzun süreli hafıza kullanmayın, ancak hangi parçaların önemli olduğunu bilin.

  • Bu, uzun bir kısa süreli bellek ağı (LSTM) haline gelir.

    RNN, her adımda oldukça kontrolsüz bir şekilde kendi belleğini yeniden yazacaktır. LSTM, bilgiyi hatırlamak, güncellemek ve odaklanmak için özel bir öğrenme mekanizması uygulayarak hafızayı çok kesin bir şekilde değiştirecektir. Bu, bilgilerin daha uzun bir süre boyunca izlenmesine yardımcı olur.

    LSTM'nin matematiksel prensibi şekilde gösterilmiştir:

    Kabimon

    Pokémon'da Kabymon

    "Pokemon" daki Kabymon ile farklı sinir ağlarını karşılaştırabiliriz.

    Nöral ağlar

    Su püskürtülen Kaby canavarının bir resmini girdiğimizde, sinir ağı Kaby canavarını ve suyunu tanıyacak ve Kaby canavarının% 60 banyo yapma,% 30 içme suyu olasılığı ve% 10 Saldırıya uğrama olasılığı.

    Tekrarlayan Sinir Ağı (RNN)

    Gizli durum (Gizli Durum) "savaş sahnesinin başlangıcı" olduğunda, Pokémon su spreyi saldırı haritasına girin ve RNN, "ağza su püskürtme" sahnesinden Pokémon'un saldırma olasılığının% 85 olduğu sonucuna varabilir. Daha sonra "savaşta, düşman saldırıyor ve düşman su temelli" şeklinde üç koşul altında resim 2'yi giriyoruz ve RNN, "Kabimon saldırıya uğradı" nın en olası durum olduğunu analiz edecek.

    LSTM

    Uzun Süreli Bellek "Kabimon bambu yemeyi sever", "Her savaş turu bir dakika" ve "Düşman ekranın ortasındadır" ve Çalışma Belleği "Her savaş turu birdir" dir. Düşman ekranın ortasındayken, su püskürtülen Kabymon'un resmine girin ve LSTM seçici olarak bazı bilgileri işleyecektir. Kabymon'un acı verici ifadesini seçici olarak ezberledi ve "Ekranın ortasındaki düşman" mesajını unuttu ve Kabymon'un büyük olasılıkla saldırıya uğrayacağı sonucuna vardı.

    Kod yazmayı öğrenin

    Giriş karakter seviyesi dizisi aracılığıyla bir sonraki olası karakteri tahmin edebilen karakter düzeyinde bir LSTM modeli vardır. Size LSTM'nin kullanımını göstermek için bu modeli kullanacağım.

    Bu yöntem olgunlaşmamış gibi görünse de karakter seviyesi modelinin çok pratik olduğunu söylemeliyim ve şahsen bunun kelime seviyesi modelinden daha pratik olduğunu düşünüyorum. Örneğin, aşağıdaki iki örnek:

    1. Cep telefonu programlamasına izin verecek kadar akıllı bir otomatik kod doldurucu olduğunu varsayalım .

    Teorik olarak, LSTM şu anda kullanılan yöntemin dönüş türünü izleyebilir ve hangi değişkenin döndürüleceğini daha iyi önerebilir; ayrıca hata türünü döndürerek programda bir hata olup olmadığını da söyleyebilir.

    2. Makine çevirisi gibi doğal dil işleme programlarını nadiren ele almak genellikle zordur .

    Daha önce hiç görmediğim sıfatları karşılık gelen zarflara nasıl dönüştürebilirim? Bir tweet'in ne anlama geldiğini bilseniz bile, bunun için nasıl etiket oluşturursunuz? Karakter düzeyinde model, ortaya çıkan bu terimlerle başa çıkmanıza yardımcı olabilir, ancak bu aynı zamanda başka bir alanda bir araştırma meselesidir.

    Başlangıçta, Apache Commons Lang kod tabanında üç katmanlı bir LSTM eğitmek için Amazon AWS Elastic Computing Cloud EC2'nin p2.xlarge'ı kullandım ve birkaç saat sonra bu programı oluşturdum:

    Bu kod mükemmel olmasa da tanıdığım birçok veri uzmanının yazdığı koddan daha iyidir. Buradan LSTM'nin birçok ilginç ve doğru kodlama davranışını öğrendiğini görebiliriz:

    Bir sınıf oluşturabilirsiniz: Önce lisansı, ardından program paketini ve içe aktarım paketini, ardından yorumları ve kategori tanımlarını ve son olarak değişkenleri ve yöntemleri koyun. Ayrıca, yöntemlerin nasıl yaratılacağını da bilir: doğru açıklama sırasını takip etmesi, dekoratörün doğru konumda olup olmadığını kontrol etmesi ve uygun ifadeyle türsüz bir gösterici döndürmesi gerekir. Daha da önemlisi, bu davranışlar aynı zamanda büyük miktarda kodu kapsar.

    Alt rutinleri ve yuvalama seviyelerini takip edebilir : İfade döngüsü her zaman kapalıysa, girinti iyi bir seçimdir.

    Testlerin nasıl oluşturulacağını bile biliyor.

    Bu model bu işlevleri nasıl yerine getiriyor? Birkaç gizli duruma bakabiliriz.

    Bu, kodun girinti seviyesini izliyor gibi görünen bir nörondur. Bir nöron, okumak için girdi olarak karakterleri kullandığında, örneğin, bir sonraki karakteri oluşturmaya çalışırken, her karakter, nöronun durumuna göre bir renkle işaretlenir.Kırmızı, negatif bir değeri ve mavi, pozitif bir değeri temsil eder.

    İşte iki etiket arasındaki mesafeyi hesaplayabilen bir nöron:

    TensorFlow kod tabanında üretilen farklı 3 katmanlı LSTM'lerin ilginç bir çıktısı da vardır:

    LSTM'nin iç yapısını inceleyin

    Yukarıda gizli durumların birkaç örneğini öğrendik, bu yüzden biraz daha derin konuşabiliriz. LSTM hücrelerini ve diğer hafıza mekanizmalarını düşünüyorum. Belki aralarında inanılmaz bir ilişki de vardır.

    Miktar

    Bu sorunu keşfetmek için, LSTM'ye önce saymayı öğretmemiz gerekiyor, bu yüzden aşağıdaki diziyi oluşturdum:

    aaaaaXbbbbb

    Bu dizide, bir sınırlayıcı X'in ardından Na ve ardından N karakter b gelir. Burada, 1 < = N < = 10. Bu diziyi tek katmanlı bir LSTM'yi 10 gizli nöronla eğitmek için kullanıyoruz.

    Beklendiği gibi, LSTM eğitim aralığında iyi bir performans sergiliyor ve hatta eğitim aralığının ötesinde bir şey üretebilir.

    aaaaaaaaaaaaaaaXbbbbbbbbbbbbbbb

    aaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbb

    aaaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbbb

    aaaaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbbbb

    aaaaaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbbbb

    A sayısını hesaplamak için gizli bir durum nöronu bulmayı umuyoruz:

    Bu amaçla, özellikle şu anda sadece a sayısını değil, aynı zamanda b sayısını da hesaplayabilen küçük bir web uygulaması oluşturdum.

    Hücre şu anda çok benzer şekilde davranır:

    Bir başka ilginç şey de işleyen belleğin uzun süreli belleğin gelişmiş bir versiyonu gibi görünmesidir Bu genel olarak normal mi?

    Cevap evet, beklediğimizle tamamen aynı. Uzun süreli bellek hiperbolik tanjant etkinleştirme işlevi ile sınırlı olduğundan, çıktı içeriği sınırlıdır. Aşağıda 10 hücre durum düğümüne genel bir bakış bulunmaktadır], 0'a yakın değerleri temsil eden birçok açık renkli hücre görebiliriz.

    Buna karşılık, 10 işleyen bellek nöronu daha odaklanmış görünüyor ve 1, 3, 5 ve 7 sayılarının tümü dizinin ilk yarısında 0 olarak görünüyor.

    Tekrar nöron 2'ye bir göz atalım, burada size bazı yedek bellekleri ve giriş kapılarını göstereceğiz. Nöronun her yarısında kararlıdırlar - tıpkı nöronun her adımda a + = 1 veya b + = 1 hesaplaması gibi.

    Sonunda, tüm nöronların iç yapısını elde ettik:

    Farklı nöronları da saymak istiyorsanız, bu görselleştirme aracına bir göz atabilirsiniz.

    Görselleştirme aracı bağlantısı:

    Miktar

    American Public Broadcasting Association (PBS) tarafından üretilen ve yayınlanan ve bir Rubik küp vampiri gibi tasarlanan Earl adında bir oyuncak bebek içeren çocuklara yönelik eğitici TV programı "Susam Sokağı" nı hâlâ hatırlıyorum. Saymayı seviyor ve bilgisayarlara olan ilgisinin sınırı yok. Bu bölümün başlığına Earl adını vereceğim.

    "Susam Sokağı" nda bilgisayar meraklısı "Earl'ü Saymak"

    Şimdi biraz daha karmaşık bir sayaca bakalım. Bu sefer oluşturduğum serileştirilmiş form:

    aaXaXaaYbbbbb

    Yukarıdaki dizinin özelliği, Na ve X'in rastgele düzenlenmesi, ardından bir sınırlayıcı Y'nin eklenmesi ve son olarak Nb'nin eklenmesidir. LSTM'nin hala a sayısını sayması gerekiyor ve bu sefer X'i de yok sayması gerekiyor.

    Tam LSTM bağlantısı:

    Almayı umuyoruz X ile karşılaştığında giriş kapısı 0 olan bir sayma nöronu .

    Yukarıdaki, nöron 20'nin hücre durumudur. Y sınırlayıcıya ulaşmadan önce artmaya devam eder ve ardından dizinin sonuna kadar azalmaya devam eder - tıpkı num_bs_left_to_print değişkenini hesapladığı gibi, a'nın artışına ve b'nin azalmasına göre değişmeye devam eder.

    Giriş kapısı X'i yok sayar:

    İlginç bir şekilde, yedek bellek ilgisiz sınırlayıcı X'i tamamen etkinleştirir, bu yüzden hala bir giriş geçidine ihtiyacımız var. (Giriş kapısı mimarinin bir parçası değilse, muhtemelen sinir ağı X'i başka şekillerde görmezden gelmeyi öğrenecektir)

    Sonra nöron 10'a bakmaya devam ediyoruz.

    Bu nöron ilginçtir çünkü yalnızca sınırlayıcı Y okunduğunda etkinleştirilebilir, ancak yine de dizide şu anda görülen a'yı kodlamaya çalışır. Bunu şekilden görmek zordur, ancak Y'nin aynı a sayısına sahip bir diziye ait olduğu okunduğunda, tüm hücre durumları hemen hemen aynıdır. Dizide a ne kadar küçükse Y'nin renginin o kadar açık olduğu görülebilir.

    Durumu hatırla

    Sonra, LSTM'nin hücre durumunu nasıl hatırladığını görmek istiyorum. Yine bazı diziler oluşturuyorum:

    AxxxxxxYa

    BxxxxxxYb

    Bu sırada, 1-10 x'ten sonra A veya B, ardından bir sınırlayıcı Y gelebilir ve son olarak ilk harfin küçük harfiyle bitebilir. Bu tür bir sinir ağının, dizinin A mı yoksa B dizisi durumu mu olduğunu hatırlaması gerekir.

    Dizinin A ile başladığını ve B ile başladığını hatırladığında başka bir nöronun tetikleneceğini hatırladığımızda tetikleyecek bir nöron bulmayı umuyoruz. Onu bulduk.

    Örneğin, burada bir nöron A var. Bir A okuduğunda, onu aktive edecek ve son karakteri oluşturması gerekene kadar hatırlayacaktır. Giriş geçidinin ortadaki tüm x karakterlerini yok saydığına dikkat edin.

    İşte başka bir B kopyası:

    İlginç bir şekilde, ağ Y sınırlayıcısını okuyana kadar, A ve B'nin durum bilgisine ihtiyaç duyulmaz, ancak gizli durum tüm ara girişlerde hala tetiklenecektir. Bu biraz "verimsiz" görünüyor, ama belki de bu nöronun aynı zamanda x sayısını hesaplama görevini de üstlendiği içindir.

    Görevi kopyala

    Son olarak, LSTM kopya bilgisinin nasıl yapılacağına bakıyoruz.

    Bu eğitim görevi için iki katmanlı bir LSTM dizisi eğittim:

    BaaXbaa

    abcXabc

    Başka bir deyişle, bu, a, b ve c'den oluşan üç karakterli bir alt dizidir, ardından bir sınırlayıcı X gelir ve son olarak aynı diziden sonra gelir.

    Kopya nöronun ne olduğundan emin değilim, bu yüzden ilk alt sekans bölümünü depolayan nöronları bulmak için sınırlayıcı X'i okurken gizli durumlarını kontrol ettim. Ağın ilk alt diziyi kodlaması gerektiğinden, durumu öğrenilen içeriğe göre farklı formatlarda gösterilmelidir.

    Aşağıdaki tabloyu örnek olarak alın, sınırlayıcı X'i okurken nöron 5'in gizli durumunu gösterir. Nöron, dizinin "c" ile başlayıp başlamadığını açıkça ayırt edebilir.

    Başka bir örnek vermek gerekirse, aşağıdaki şekil, nöron 20'nin X okuduğunda gizli durumunu göstermektedir. B'den başlayarak diziyi seçmiş gibi görünüyor.

    Nöron 20'nin hücre durumunu gözlemlerseniz, neredeyse tüm 3 karakter alt dizisini tek başına yakalayabildiğini göreceksiniz. Bunu tek boyutta yapabilmek inanılmaz.

    Bu, tüm dizideki nöron 20 hücresinin gizli durumudur. Tüm alt dizilerde gizli durumunun kesildiğine dikkat edin.

    Bununla birlikte, yakından bakarsak, sonraki karakter her b olduğunda, nöronun tetikleneceğini göreceğiz. Dolayısıyla, bu nöronun b'den başlayan bir diziyi temsil ettiğini söylemek yerine, sonraki karakterin b'nin bir yordayıcısı olduğunu söylemek daha iyidir.

    Bildiğim kadarıyla, bu model ağ boyunca korunuyor gibi görünüyor - tüm nöronlar, karakteri belirli bir yerde hatırlamak yerine bir sonraki karakteri tahmin ediyor. Örneğin, nöron 5, "sonraki karakter c" nin öngörücüsü gibi görünüyor.

    Bunun LSTM'nin bilgileri kopyalarken öğrendiği varsayılan davranış olup olmadığından emin değilim, yoksa diğer kopyalama mekanizmaları da aynısını yapacaktır.

    Devlet ve kapı

    Farklı LSTM'lerde farklı durumların ve kapıların rolünü gerçekten anlamak için, önceki bölümü başka bir açıdan tekrar gözden geçirelim.

    hücre durumu ve gizli durum

    Başlangıçta hücre durumunu uzun süreli bir bellek olarak tanımladık ve gizli durum bu anıları ayıklamanın ve odaklamanın bir yoludur.

    Dolayısıyla, belleğin akımla hiçbir ilgisi olmadığında, gizli durumun kapatılmasını bekliyoruz - daha önce bahsedilen dizi çoğaltma nöronu bunun gibidir.

    Unutulmuş Kapı

    Forget Gate hücre durumu bilgisini atacaktır (0 tamamen unutmak anlamına gelir, 1 tamamen hatırlamak anlamına gelir), bu nedenle bazı kesin şeyleri hatırlaması gerektiğinde tam olarak etkinleştirilmesini bekliyoruz; artık olmadığında Bu bilgiye ihtiyaç duyulduğunda tekrar kapatılabilir.

    Bu gördüğümüz A bellek nöronudur: Unutma kapısı, tetiklendiğinde x'i geçtiğinde A'nın durumunu hatırlar ve son a'yı oluşturmak üzereyken kapanır.

    Giriş kapısı (geçidi kaydet)

    Giriş Kapısı (ben buna "kaydetme kapısı" diyorum) yeni girişten bilgi kaydedilip kaydedilmeyeceğini belirler. Bu nedenle gereksiz bilgilerle karşılaştığında kapatılması gerekir.

    Seçici sayma nöronlarının yaptığı şey budur: a ve b'nin değerlerini hesaplayın, ancak ilgisiz x'i göz ardı edin.

    Şaşırtıcı bir şekilde, LSTM denklemlerimizdeki hiçbir şey giriş, unutma ve çıkış kapılarının nasıl çalıştığını belirtmez Sinir ağı en iyi olanı kendi kendine öğretecektir.

    Genişlet

    Şimdi LSTM'nin nasıl ortaya çıktığını inceleyelim.

    Öncelikle çözmemiz gereken sorunların birçoğu zaman serileri veya belirli bir sıraya göre düzenlenmiştir ve geçmiş deneyimlerimizi modelimize dahil edebiliriz. Ancak sinir ağlarının gizli katmanlarının önemli bilgileri kodladığını zaten biliyoruz, öyleyse neden bu gizli katmanları bir adımdan diğerine geçen anılar olarak kullanmıyoruz? Bu nedenle, tekrarlayan sinir ağları (RNN) ortaya çıktı .

    İnsanlar bazı bilgilere kolayca inanmazlar - siyaset hakkında bir makale okuduğumuzda, okuduğumuza hemen inanmayız ve bunu kendi yaşam inançlarımız olarak kabul ederiz. Hangi bilgilerin hatırlanmaya değer olduğunu, hangi bilgilerin atılması gerektiğini ve hangi bilgilerin bir sonraki okumada karar verme için bazı temeller sağlayabileceğini seçeceğiz. Başka bir deyişle, bilgiyi nasıl toplayacağımızı, düzelteceğimizi ve uygulayacağımızı öğrenmek istiyoruz. Öyleyse neden sinir ağlarının bunları öğrenmesine izin vermiyoruz? Yani LSTM var .

    Görev tamamlandı, şimdi onu değiştirebiliriz.

    Uzun süreli hafızayı çalışan hafızadan ayırırken LSTM'nin aptalca olduğunu düşünebilirsiniz: Neden bir hafızada birleşmeyesiniz? Ya da belki bağımsız bellek kapısının ve depolama kapısının biraz gereksiz olduğunu görürsünüz. Şimdi birisi GRU (Geçitli Tekrarlayan Birimler) dediğimiz yeni bir LSTM varyantı önerdi. .

    GRU uzmanlığı hakkında daha fazla bilgi edinmek ister misiniz? İşte bir makale:

    https://arxiv.org/abs/1412.3555

    Hafızanıza hangi bilgileri depolayacağınıza ve konsantre olacağınıza karar verirken, yalnızca çalışan belleğe güvenemeyiz, öyleyse neden uzun süreli belleği kullanmayalım? Böylece Peephole LSTM'yi yeniden keşfettik.

    Peephole LSTM Kağıdı (PDF):

    Sinir ağlarının büyük canlanmasını gerçekleştirmek

    Son örneğe bir bakalım, iki katmanlı LSTM'm Trump'ın Twitter'ında eğitildi. Bu veri seti "büyük" olmasına rağmen, yine de birçok kalıp öğrenmektedir.

    Örneğin bu, hashtag'leri, URL'leri ve @'yi kaydeden bir nörondur.

    Ayrıca uygun bir isim algılayıcısı da vardır (not: sadece büyük harflerle karşılaşıldığında etkinleştirilmez):

    Bu bir yardımcı fiil + "olmak" detektörüdür ("olacak", "her zaman öyleydim", "hiç olmadım" ve diğer biçimler dahil):

    Bu bir referans niteliğidir:

    Ayrıca bir MAGA (çok ajanlı genetik algoritma) ve büyük harfli bir nöron vardır:

    İşte LSTM'nin Trump'ın tweetiyle ilgili açıklaması - aslında sadece bir tanesi doğru, tahmin edin:

    Trump veri seti burada:

    https://www.kaggle.com/benhamner/clinton-trump-tweets

    sonuç olarak

    Bu yazının bu noktasında neredeyse bitti. Bitirmeden önce, kazandıklarınızı gözden geçirelim:

    Hatırlamanız gereken şey:

    Bu makalenin uzunluğu daha uzun olmasına ve daha fazla açıklama yapılmasına rağmen, LSTM hala sonsuz bir araştırma alanıdır. Eğer LSTM ile ilgileniyorsanız, o zaman dalın ve çalışın.

    Bitiş

    Önerilen öğrenme etkinlikleri

    15 Haziran'da Qubit bir salon düzenledi ve otonom sürüşle ilgili konuları paylaşmak için Tucson Baş Bilimcisi Dr. Naiyan Wang'ı davet etti. Kayıt için lütfen buraya tıklayın:

    Üç yıllık ilkbahar ve sonbaharın ardından, yeni Haval H6 Coupe'nin bir kez daha gruba nasıl hükmettiğini görelim.
    önceki
    Yapımcı ağlamak üzere! Oyun yapmak için 1,6 milyar harcayın ve Çinli oyuncular tarafından para kazanmak için taksi olarak kullanılın!
    Sonraki
    4 ~ 5 oyun kazanmak onurlandırılabilir mi? Guijingui: Shenhua hayranlarına açıklayın, genç en büyük eksikliğe işaret ediyor
    Kalın kaşların peşinden koşma haberini duyunca Lakers 4'ün tepkisi ne oldu? Los Angeles ticaret fişlerinden görülebilir!
    Geely'nin yeni Emgrand resmi haritası yayınlandı, içeride ve dışarıda mükemmel kalitede genleri miras aldı
    Bir 10 yıl daha popüler olmak için Çin'in en uzun ömürlü MMO çevrimiçi oyunlarından biri! Dört nihai hamle
    Kashuai dışarı çıkıp temenni mi dedi? Evergrandenin toplu krizinin tek bir mesleği var, Guangdong medyası SIPG'yi övdü
    Bu sezonun 5 büyük yedek, 5 pozisyon her biri bir kişiyi seçer, grup playofflara birlikte katılabilir!
    Qionglai: Tianfu güneyden gelen ilk eyalet ve bin yıllık şehrin yeni bir görünümü var!
    Yeni doğan buzağılar endüstri düzenlemelerine meydan okuyor, Roewe RX3 hem içeride hem dışarıda SUV pazarını eziyor
    Wang Sicong, bölgede birinciliği almak için çok para kazandı ve oyuncu bölgedeki ilk mor kıyafetinden su tankını atmaktan sıkıldı.
    Chongqing Devil evinde kazandı! Süper Lig'in 29. turundaki koltuk sayısı: TEDA ikinci, Luneng sondan ikinci
    Rockets patronu tekrar konuştu ve zorlu Savaşçıları güçlendirmeye devam etti. Morey'nin oynayabileceği 3 kart var!
    Öyleyse GAC Trumpchi neden Kuzey Amerika pazarına girmek zorunda?
    To Top