Doğal dil işlemenin (CNN / RNN / TF) üç ana özellik çıkarıcısının kapsamlı bir anlayışını size sunar.

Kaynak: AI Technology Review

Bu makale 10000+ kelime , 20 dakikalık okuma önerilir.

Bu makalenin yazarı Zhang Junlin, üç ana doğal dil işleme özelliği çıkarıcısının (CNN / RNN / TF) özelliklerini karşılaştırmak için canlı bir dil kullandı.

Eskiyi terk edip yeniyi karşılama anında herkes geçen yılın sonuçlarını gözden geçirmekle (ya da sobanın önünde gözyaşlarıyla saksıları saymakla) ve 2019 için planlar yapmakla meşgul. Elbette birçok arkadaşın icra ve iş verimliliği yüksek. Sadece 2018'in başında yapılan planı kopyalayın ve 2019 planı 3 saniyede tamamlanabilir. Tebrikler.

Ekonomik açıdan, 2018 herkes için üzücü bir yıl olabilir, ancak doğal dil işleme alanı için 2018 kuşkusuz çok ödüllendirici bir yıl ve eğer birçok teknolojik ilerlemeden sadece birini seçebilirseniz Öyleyse, o zaman Bert modeli olmalıdır. Kelime Gömme'den Bert modeline - doğal dil işlemede eğitim öncesi teknolojinin gelişiminin tarihi olan Bert hakkındaki önceki makalede, aşağıdaki iki kişisel yargıyı övünerek beyan ettim: biri Bert'in iki aşamalı modelidir (ön eğitim + İnce ayar) NLP araştırma ve endüstriyel uygulamalar alanında popüler bir yöntem olmaya mahkumdur;

https://zhuanlan.zhihu.com/p/49271699

İkincisi, NLP alanındaki özellik çıkarıcılar açısından bakıldığında, Transformer kademeli olarak en yaygın özellik çıkarıcı olarak RNN'nin yerini alacak. Özellik çıkarıcının yargısıyla ilgili olarak, yukarıdaki makalenin uzunluğu sınırlıdır, ancak cazip bir açıklama yapmadan yalnızca bir sonuç verir. Makalemi okuyan herkes bilir ki ben gelişigüzel sonuç çıkaran bir kişi değilim, ama neden yaptım? Bu sonuç çıkarılacak mı? Bu makale yukarıdakilerin bir söylenti olarak kabul edilebilir ve daha önce verilen sonuçları desteklemek için daha ayrıntılı kanıtlar verecektir.

Mevcut NLP'deki üç ana özellik çıkarıcısının gelecekteki eğilimleri hakkında bir makro yargıya varırsam, benim düşüncem şu: RNN temelde tarihsel misyonunu tamamladı ve gelecekte tarihi aşamadan kademeli olarak çekilecektir; CNN uygun şekilde dönüştürülürse Gelecekte NLP alanında hala bir yer edinme umudu var.Dönüşümdeki başarı derecesi beklentileri aşarsa, hayatta kalmaya ve büyümeye devam etmek için ayrı bir parti olabilecek bir savaş ağası olacaktır. Elbette bu umudun harika olmadığını düşünüyorum. Song Xiaobao ile basketbol oynayabilirsiniz. Ağlama olasılığı oldukça benzer; ve Xinhuan Transformer açık bir şekilde yakında NLP'deki en yaygın özellik çıkarıcı olacak.

Gelecekte yeni bir özellik çıkarıcı olup olmayacağına gelince, Tranformer tek atışla indirilecek ve ardından yeni özellik çıkarma dağ kralıyla değiştirilecek? Bu tür bir endişe aslında oldukça gerekli. Sonuçta Li Shangyin bizi bin yıl önce uyardı: "Jun'en doğuya doğru akan su gibidir, iyiliğini ve kederini kaybetmen gerekir. Çiçekleri şişenin önüne koyma. Serin esinti sadece salonun batı ucunda." Elbette, bu şiir şu anda RNN için daha uygun görünüyor.Gelecekte, Transformer gözden düşecek mi? Bu sorunun cevabı temelde olumlu olabilir, bu anın 3 yıl sonra mı yoksa 1 yıl sonra mı gelmesinden başka bir şey değildir.

Tabii ki, umarım bu makaleyi okuyan sen veya ben olursam, ileride bir gün sıradan görünümlü bir bayanı sokaktan çekip kozmetik cerrahi için Kore'ye göndereceğim, yanlışlıkla montaj hattı kozmetik endüstrisinin güzellik şablonundan saparak. Transformer'ı soğuk saraya kırmak için Tianxiang ülkesinin çarpıcı güzelliğini ortaya çıkarmak en iyisidir. Ancak mevcut durumda, dürbünle bile, görüş alanımızda bu niteliğe sahip bir adayın belirdiğini görmedik gibi görünüyor.

Biliyorum, eğer titiz bir Ar-Ge personeli iseniz, mevcut durum o kadar net olmadığında biraz keyfi görünen net sonuçlar vermemelisiniz, bu nedenle bu açıklama tartışmalara neden olabilir. Ama bu gerçekten benim şu anki gerçek düşüncem, Neye dayanan yukarıdaki yargıya gelince? Bu kararın bir temeli var mı? Temel yeterli mi? Bu makaleyi okuduktan sonra kendi sonucuna varabileceğine inanıyorum.

Bundan bahsetmişken, genellikle daha az acı çeken ve batmayı seven bazı öğrenciler şu soruyu soracaklar: NLP'nin tipik özellik çıkarıcılarının bu üçü olduğunu neden söylüyorsunuz? Yinelemeli NN gibi diğer iyi bilinen özellik çıkarıcıları nereye koyuyorsunuz? Evet, NLP'deki önemli gelişmeleri tanıtan pek çok makale Yinelemeli NN'yi NLP'de büyük bir gelişme olarak görüyor. Buna ek olarak, Bellek Ağı gibi diğerleri de var. Ayrıca bakanlık düzeyindeki bu onurlu muamelenin tadını çıkarın. Ancak bu iki teknoloji konusunda çok iyimser olmadım ve uzun yıllardır bu iki teknoloji konusunda iyimser olmadım, mevcut durum bu görüşü güçlendirdi. Ve size ücretsiz tavsiye ederim, bu iki teknolojiyle zaman kaybetmeye gerek yok, nedense, bu makalenin konusu ile hiçbir ilgisi olmadığı için, daha sonra detaylandırma fırsatım olacak.

Yukarıdaki sonuç, aşağıda resmen ispat aşamasına giriyoruz.

Savaş alanı keşfi: NLP görevlerinin özellikleri ve türleri

NLP görevlerinin özellikleri resimlerden çok farklıdır. Yukarıdaki şekil bir örnek göstermektedir. NLP'nin girişi genellikle bir cümle veya bir makaledir, bu nedenle birkaç özelliği vardır:

  • Her şeyden önce, girdi, anlaşılması kolay, tek boyutlu bir doğrusal dizidir;
  • İkinci olarak, girdi değişken uzunluktadır, bazıları uzun ve bazıları kısadır ve bu nokta aslında model işlemeye biraz sorun katacaktır;
  • Üçüncüsü, kelimelerin veya cümleciklerin göreceli konumu çok önemlidir ve iki kelimenin konumlarının değiş tokuşu tamamen farklı anlamlara yol açabilir.

Sana dediğimi duyarsan: Bana borçlu olduğun on milyonu geri ödemene gerek yok ve sana borçlu olduğum on milyonu da geri ödememe gerek yok Bunu duyduktan sonra neler hissediyorsun? İkisi arasındaki farkı anlamak için; ayrıca cümledeki uzun mesafe özellikleri de anlambilimin anlaşılması için çok önemlidir.Örneğin, kırmızı simgeli kelimelere bakın.Özellik çıkarıcının uzun mesafe özelliklerini yakalayıp yakalayamayacağı da NLP görevlerini çözmek için çok kullanışlıdır. Önemli.

Lütfen yukarıdaki özellikleri hatırlayın: Bir özellik çıkarıcının problem etki alanının özelliklerine uyum sağlayıp sağlamadığı, bazen başarısını veya başarısızlığını belirler ve birçok model geliştirmesinin yönü, onu etki alanı probleminin özelliklerine daha uygun hale getirmektir. Bu nedenle, RNN, CNN ve Transformer gibi özellik çıkarıcıları tanıtmadan önce bu içerikleri açıklıyorum.

NLP, düzinelerce alt alanı içeren çok geniş bir alandır Teorik olarak, dil işleme ile ilgili olduğu sürece bu aralığa dahil edilebilir. Ancak çok sayıda NLP görevini soyutlarsak, çoğu NLP görevinin birkaç görev kategorisinde özetlenebileceğini görürüz. Görünüşte çok farklı olan iki görev, görevi çözmenin model noktası açısından tamamen aynı olabilir.

Genel olarak konuşursak, çoğu NLP problemi yukarıdaki şekilde gösterilen dört tip görevde sınıflandırılabilir:

  • İlk tür, sıra etiketlemedir , Bu, Çince kelime bölütleme, konuşma parçası etiketleme, adlandırılmış varlık tanıma, anlamsal rol etiketleme vb. Gibi en tipik NLP görevidir. Tümü bu kategorideki problemler içinde sınıflandırılabilir. Karakteristik cümledeki her kelimenin bağlama göre modelin verilmesini gerektirmesidir. Bir sınıflandırma kategorisi.
  • İkinci kategori sınıflandırma görevleridir , Ortak metin sınıflandırmamız, duygu hesaplamamız vb. Gibi bu kategoriye ayrılabilir. Karakteristik özelliği, makale ne kadar uzun olursa olsun, genel olarak bir sınıflandırma kategorisi verilebilmesidir.
  • Üçüncü görev türü cümle ilişkisi yargısıdır Entailment, QA, anlamsal yeniden yazma ve doğal dil çıkarımı gibi görevler bu modun tümüdür.Karakteristik iki cümle verildiğinde model iki cümlenin belirli bir anlamsal ilişkiye sahip olup olmadığına karar vermesidir.
  • Dördüncü kategori, üretken görevlerdir Makine çevirisi, metin özetleme, şiir yazma ve cümle kurma, resim okuma ve konuşma vb. Bu kategoriye girer. Karakteristik özelliği, metin içeriğini girdikten sonra, başka bir metin paragrafının bağımsız olarak oluşturulması gerektiğidir.

Bu farklı görevleri çözmek için, model perspektifinden en önemli olan nedir? Özellik çıkarıcının yeteneğidir. Özellikle derin öğrenmenin popülaritesinden sonra bu nokta daha da öne çıkıyor. Çünkü derin öğrenmenin en büyük avantajı uçtan uca. Elbette bu, istemciden buluta gelmek anlamına gelmiyor. Bu, geçmişte geliştiricilerin tasarımdan hangi özellikleri çıkaracaklarını düşünmek zorunda kaldığı anlamına geliyor, ancak baştan sona çağdan sonra bunlara hiç ihtiyacınız yok. Tüp, orijinal girdiyi iyi bir öznitelik çıkarıcıya atın, yararlı özellikleri kendi kendine çıkaracaktır.

Kıdemli bir hata oluşturucu ve algoritma mühendisi olarak, şimdi yapmanız gereken şey: iyi bir özellik çıkarıcı seçin, iyi bir özellik çıkarıcı seçin, iyi bir özellik çıkarıcı seçin ve çok sayıda eğitim verisi verin, Kayıp işlevini ayarlayın ve ona ne yapmasını istediğinizi söyleyin ... O zaman sonucu beklemek zorunda olmadığınızı düşünüyorsunuz, değil mi? O zaman tüm evrende gördüğüm en iyimser insansın ... Aslında ayarlama için çok zaman harcıyorsun ... Bu süreçten, eğer güçlü bir özellik çıkarıcımız varsa, genç algoritma mühendisinin bir ayar adamı olmasının kaçınılmaz olduğu görülebilir.AutoML (otomatik o) çağında, bir ayarlama olmak isteyebilirsiniz. Şövalyeye katılamıyorum, Li Si, arzumun ve sarı köpeğin geri kazanılması durumunda ikisinin de kurnaz tavşanı kovalamak için Cai Dongmen'e gittiğini söyledi, onu nasıl alabilirim! Lütfen öğrenin. Öyleyse lütfen gecenin ortasında süper parametrelerinizi ikide ayarladığınız günlerinizin kıymetini bilin, çünkü sizin için iyi ve kötü haberler var.İyi haber şu ki, sizin için çok zor günler olmayabilir! Kötü haber şu: Sizin için bu kadar zor günler olmayabilir! ! ! Peki nasıl bir algoritma ustası olabilirsiniz? Daha güçlü bir özellik çıkarıcı tasarlarsınız.

Üç özellik çıkarıcı aşağıdaki kategorilere ayrılmıştır.

Savaş alanındaki emektar RNN: Lian Po yaşlı ve hala yemek yiyebilir

Sanırım herkes RNN modeline aşinadır, bu yüzden onu ayrıntılı olarak tanıtmayacağım. Model yapısı için yukarıdaki şekle bakın. Çekirdek, her bir girişin gizli bir katman düğümüne karşılık gelmesi ve gizli katman düğümleri arasında doğrusal bir sıra oluşturulması ve bilginin önden arkaya gizli katmanda olmasıdır. Yavaş yavaş geriye doğru geçin. Doğrudan konuşmak istediğim konuya gidelim.

RNN, NLP problemlerini çözmek için neden ana akım özellik çıkarıcı olabilir?

RNN'nin NLP dünyasına girişinden bu yana hızla göz alıcı bir yıldız modeli haline geldiğini ve çeşitli NLP görevlerinde yaygın olarak kullanıldığını biliyoruz. Bununla birlikte, orijinal RNN'nin de sorunları vardır.Önden arkaya sürekli olarak girdi bilgisi toplamak için doğrusal bir sıra yapısı benimser Ancak, bu doğrusal sıra yapısı, geri yayılma sırasında optimizasyonda zorluklar yaşar, çünkü geri yayılma yolu çok uzun olduğundan, kolaylıkla ciddi sorunlara yol açabilir. Gradyan kaybolur veya gradyan patlar. Bu sorunu çözmek için, LSTM ve GRU modelleri daha sonra tanıtıldı. Gradyan kaybolması sorununu hafifletmek için doğrudan geriye doğru ilerlemek için ara durum bilgisi eklenerek iyi sonuçlar elde edildi.Böylece LSTM ve GRU yakında RNN'nin standart modeli haline geldi.

Aslında, görüntü alanında, HighwayNet / Resnet vb. Tarafından model devrimine yol açan orijinal atlama bağlantısı fikri, LSTM'nin gizli katman aktarım mekanizmasından ödünç alınmıştır. Sürekli optimizasyondan sonra, NLP daha sonra görüntü alanından ödünç aldı ve dikkat mekanizmasını tanıttı (bu iki işlemden, karşılıklı teknik referans ve farklı alanların tanıtımını görebilirsiniz), overlay ağı katmanları derinleştirir ve Encoder-Decoder çerçevesi tanıtıldı. Bu teknolojik gelişmeler, RNN'nin yeteneklerini ve uygulama etkilerini büyük ölçüde genişletmiştir. Aşağıdaki şekilde gösterilen model, NLP görevlerini çözmek için RNN kullanan çok tipik bir genel çerçeve teknolojisi hediye paketidir.Yeni teknoloji ortaya çıkmadan önce, bu teknoloji hediye paketini NLP'nin çeşitli alanlarında görebilirsiniz.

Yukarıdaki içerik kısaca RNN'nin NLP alanındaki genel teknolojik evrimini tanıtır. Öyleyse neden RNN popüler hale geldi ve NLP'de bu kadar hızlı hakim oldu? Ana neden, RNN'nin yapısının doğal olarak NLP problemini çözmek için uyarlanmış olmasıdır.NLP'nin girdisi genellikle belirsiz uzunlukta doğrusal bir dizi cümlesi ve RNN'nin yapısının kendisi, belirsiz uzunlukta girişi kabul edebilen ve bilgiyi önden arkaya doğrusal olarak iletebilen bir ağ yapısıdır. , Ve LSTM'de üç kapının tanıtılması da uzun mesafeli özellikleri yakalamak için çok etkilidir. Bu nedenle, RNN, NLP'nin doğrusal dizi uygulama senaryosu için özellikle uygundur ve bu, RNN'nin NLP dünyasında bu kadar popüler olmasının temel nedenidir.

Yeni çağda RNN'nin karşılaştığı iki ciddi sorun

RNN, NLP endüstrisinde uzun yıllardır popüler olmuştur (2014-2018?). 2018'den önce, State of Art'ın çeşitli alt alanlardaki sonuçlarının çoğu RNN tarafından elde edilmiştir. Ancak geçtiğimiz yıl, 3-5 yıldır birbirinin sözde lideri olan RNN lideri Qunlun'un statüsünün sarsıldığını görünce, İnternet ünlü modeli bir istisna değil gibi görünüyor.

Öyleyse neden bu? İki ana neden var.

İlk neden, bazı gelecek vadeden yeni modellerin yükselişinde yatıyor. Örneğin, özel olarak modifiye edilmiş CNN modeli ve son zamanlarda popüler olan Transformer, bu yükselen yıldızlar, özellikle Transformer'in uygulama etkisi, RNN'ye kıyasla bariz avantajlara sahiptir. Esas neden budur, eğer yaşlı insanlar yeni gelenler yapamazlarsa, kendilerini yeniden icat etme ve devrim yapma yetenekleri yoksa, bilinçli veya istemsiz olarak tarih sahnesinden doğal olarak çekilirler, bu doğal bir kanun. Zayıf RNN yeteneklerinin spesifik kanıtlarına gelince, bu makalenin ilerleyen bölümlerinde bundan bahsedeceğim ve burada tartışmayacağım. Tabii ki, teknik personel arasındaki RNN kralcılarının boyutu hala oldukça büyük olmalı.O kadar popüler olan trafik yıldızlarından kolayca vazgeçmeyecekler, bu nedenle RNN'nin ömrünü uzatmaya çalışmak için bazı iyileştirme yöntemleri de düşünüyorlar veya düşünüyorlar. Bu yöntemlerin ne olduğuna ve etkili olup olmadığına gelince, bunları daha sonra tartışmaya devam edeceğiz.

Gelecekte RNN'nin devam eden popülaritesini ciddi şekilde engelleyen bir diğer konu ise: RNN'nin sekans bağımlılık yapısı, büyük ölçüde paralel hesaplamaya oldukça dostça davranmaz. Layman'ın terimleriyle, RNN'lerin verimli paralel hesaplama yeteneklerine sahip olması zordur.Bu ilk bakışta büyük bir sorun gibi görünmeyebilir, ancak aslında çok ciddi. Yalnızca RNN'yi değiştirerek bir makale göndermekten memnunsanız, o zaman bu gerçekten büyük bir sorun değildir, ancak endüstri teknolojiyi seçerse, çok daha hızlı bir model mevcutsa, bu kadar yavaş seçme olasılığı düşüktür. Modelin. Varoluş değerini destekleyecek pratik bir uygulaması olmayan bir model, beklentileri sorusu, beyincikte düşünmenin de cevabı alabileceği tahmin ediliyor.

Soru şu: RNN'nin paralel hesaplama gücü neden zayıf? Buna ne sebep oldu?

RNN'nin neden RNN olduğunu biliyoruz, onu diğer modellerden ayıran en tipik işaret: T anında gizli katman durumunun hesaplanması iki girişe bağlıdır, biri T zamanında Xt cümle giriş kelimesi, bu bir özellik değil , Tüm modeller bu orijinal girdiyi almalıdır; anahtar başka bir girdidir, T zamanında gizli katman durumu St ayrıca T-1 zamanında gizli katman durumu S (t-1) çıktısına bağlıdır, bu da RNN'nin özünü en iyi yansıtır. Karakteristik nokta, RNN'nin geçmiş bilgisinin daha sonra bu bilgi iletim kanalı yoluyla iletilmesidir Şematik için yukarıdaki şekle bakın. Öyleyse neden RNN'nin paralel hesaplama gücü iyi değil? Sorun burada yatıyor. T zamanındaki hesaplama, T-1 zamanındaki gizli katmanın hesaplama sonucuna ve T-1 zamanındaki hesaplama, T-2 zamanındaki gizli katmanın hesaplama sonucuna bağlı olduğundan ... Bu, sözde sıra bağımlılığını oluşturur. Yani, ikinci zaman adımı sonucu hesaplanmadan önce yalnızca ilk zaman adımı hesaplanabilir.Bu, RNN'nin bu bakış açısına göre paralel olarak hesaplama yapamamasına neden olur ve zaman adımını yalnızca kelime başına bir kelime dürüstçe takip edebilir. Kelime geriye gidiyor.

CNN ve Transformer'da bu tür bir sıra bağımlılığı sorunu yoktur, bu nedenle paralel hesaplama gücü her ikisi için de sorun değildir ve her zaman adımındaki işlemler paralel olarak birlikte hesaplanabilir.

Öyleyse, paralel hesaplama yeteneklerini geliştirmek için RNN değiştirilebilir mi? Eğer öyleyse, etkisi nedir? Bu konuyu aşağıda tartışalım.

RNN, paralel hesaplama yeteneklerine sahip olacak şekilde nasıl dönüştürülür?

Yukarıda bahsedildiği gibi, RNN'nin paralel hesaplama gerçekleştirememesinin temel noktası, T zamanında T zamanındaki hesaplama sonucunun, gizli katmanlar arasındaki tam olarak bağlı ağda yansıtılan bağımlılığında yatmaktadır. İşin özü burada olduğundan, sorunu çözmek istiyorsanız, bu bağlantıdan başlamalısınız. RNN'nin paralel hesaplama gücünü artırmak için bu bağlantıda ne yapılabilir? Bunun hakkında düşünebilirsin.

Aslında size çok fazla seçenek kalmadı, geliştirmek için iki büyük fikriniz olabilir: Biri, herhangi bir sürekli zaman adımı (T-1 ila T zamanı) arasındaki gizli bağlantıyı hala korumaktır; diğeri, sürekli zaman adımları arasındaki gizli bağlantıyı kısmen kesmektir (T-1 ila T zamanı) .

Önce ilk yönteme bakalım ve şimdi sorunumuz şuna dönüştü: Hala herhangi bir sürekli zaman adımı (T-1'den T'ye kadar) arasındaki gizli katman bağlantısını korumalıyız, ancak bu öncül altında, yine de paralel hesaplama yapabilmeliyiz Bununla nasıl başa çıkılır? Çünkü ardışık iki zaman adımının gizli katman bağlantısı korunduğu sürece, bu, T zamanında gizli katman sonucunun hesaplanması gerektiği ve T-1 zamanındaki gizli katman sonucunun ilk olarak hesaplanması gerektiği anlamına gelir, bu da sıra bağımlılığı tuzağına düşmez. ? Doğru, ama neden farklı zaman adımlarındaki girişler arasında paralel olması gerekiyor? Hiç kimse RNN'nin paralel hesaplamasının farklı zaman adımlarında gerçekleşmesi gerektiğini söylemiyor, bir düşünün, gizli katman da birçok nöron içeriyor mu? Öyleyse gizli nöronlar arasında paralel olarak yapılabilir mi? Bunun ne anlama geldiğini anlamadıysanız, lütfen aşağıdaki resme bakın.

Yukarıdaki şekil sadece her bir zaman adımının gizli katman düğümlerini gösterir.Her zaman adımının gizli katmanı 3 nöron içerir. Bu, RNN'nin gizli katman düğümlerine yukarıdan aşağıya bakan bir üstten görünümdür. Ek olarak, iki ardışık zaman adımının gizli katmanındaki nöronlar arasında hala bağlantılar vardır.Yukarıdaki şekil basitlik amacıyla gösterilmemiştir. Şimdi anlamalısınız. 3 gizli katman nöronu olduğunu varsayarsak, 3 paralel hesaplama oluşturabiliriz (kırmızı ok üç yola ayrılmıştır) ve her yolda hala sekans bağımlılığı sorunu vardır, yani her yol Hala seri.

Büyük fikir net olmalı, değil mi? Bununla birlikte, RNN'nin yapısını anlayan öğrenciler, hala bir problemin kaldığını göreceklerdir: Gizli katman nöronları arasındaki bağlantılar tamamen bağlıdır, yani T zamanında gizli bir katman nöronu, T-1 zamanında tüm gizli katman nöronlarına bağlanır. Eğer durum böyleyse, nöronlar arasında paralel hesaplamalar yapmak imkansızdır, nedenini düşünebilirsiniz, bu basit.Bunu çözme yeteneğiniz olduğunu varsayıyorum. Peki ne yapmalı? Çok basit, T ve T-1 zamanındaki gizli katman nöronları arasındaki bağlantı ilişkisinin, önceki tam bağlantıdan karşılık gelen pozisyondaki nörona (yukarıdaki resimde kırmızı okla ayrılmış aynı sıradaki nöron) değiştirilmesi gerekir. Arasında) bağlıdır, ancak diğer nöronlarla bağlantılı değildir. Bu şekilde bu problem çözülebilir ve farklı yollardaki gizli nöronlar arasında paralel hesaplamalar yapılabilir.

RNN'nin paralel hesaplama gücünü dönüştürmenin ilk yöntemi kabaca yukarıda açıklandığı gibidir. Bu yöntemin temsilcisi kağıt: Yüksek Paralelleştirilebilir Tekrarlama için Basit Yinelenen Birimlerde önerilen SRU yöntemi.En önemli iyileştirmesi, gizli katmanlar arasındaki nöron bağımlılığını Hadamard ürününe tam olarak bağlı olmaktan değiştirmektir, böylece T zamanında Gizli katman birimi başlangıçta T-1 zamanında tüm gizli katman birimlerine güveniyordu, ancak yalnızca T-1 zamanında karşılık gelen birime bağlı olacak şekilde değiştirildi, bu nedenle gizli katman birimleri arasında paralel hesaplamalar gerçekleştirilebilir, ancak toplanan bilgiler hala zaman serilerindedir. Devam etmek için. Dolayısıyla paralellik, farklı zaman adımları arasında değil, gizli birimler arasında gerçekleşir.

Bu aslında zekice bir yöntemdir, ancak sorunu paralellik derecesinin üst sınırının sınırlı olmasıdır.Paralellik derecesi gizli katmandaki nöronların sayısına bağlıdır ve genellikle bu değer çok büyük değildir ve paralelliği artırmak artık mümkün değildir. Bu çok mümkün. Ek olarak, her paralel devrenin sıralı hesaplamaya ihtiyacı vardır, bu da genel hızı da yavaşlatacaktır. SRU'nun test hızı şudur: metin sınıflandırmasının hızı orijinal CNN'ninkine eşdeğerdir (Kim 2014) Makale, CNN'in paralel bir eğitim yöntemini benimseyip benimsemediğini söylememektedir. Diğerleri sadece karmaşık görevler, okuduğunu anlama ve MT görevleri üzerinde etki değerlendirmeleri yaptılar ve hızı CNN ile karşılaştırmadı. Bunun bir nedeni var, çünkü karmaşık görevler genellikle derin ağlar gerektirir ve diğerleri tahmin yürütmez.

İyileştirme için ikinci tipik fikir şudur: Farklı zaman adımlarında girişler arasında paralel hesaplamalar yapabilmek için, gizli katmanlar arasındaki bağlantıyı kesmenin yalnızca bir yolu vardır, ancak hepsi değil, çünkü birleştirilmiş özellikleri yakalamak temelde imkansızdır, bu nedenle tek yol Seçilen strateji, her 2 zaman adımında bir kesinti gibi kısmi bir kesintidir, ancak biraz daha uzak olan özellikler nasıl yakalanır? Yalnızca katman derinliğini derinleştirebilir ve katman derinliği aracılığıyla uzun mesafeli özellikler arasında bağlantı kurabilir. Temsili bir model, yukarıdaki şekilde gösterilen Dilimlenmiş RNN'dir. Bu modeli ilk gördüğümde, yardım edemedim ama bir halter gibi güldüm. Kendimi tutamadım ama öne çıktım ve ona merhaba dedim: Merhaba, CNN modeli. Sert bir adam olarak bir gün onu giymenizi beklemiyordum. RNN gibi giyinmiş pembe elbise önümde çıktı haha. CNN modelini bilen öğrenciler yukarıdaki cümlenimi gördüklerinde gülümseyecekler: Bu CNN'in basitleştirilmiş bir versiyonu değil mi? CNN'i bilmeyen öğrenciler, CNN bölümünü daha sonra okuduktan sonra geriye dönüp bakıp bunun anlamı olup olmadığına bakmalarını önerir.

Bu dönüşümden sonra RNN'nin hız iyileştirmesine ne dersiniz? Makale bir hız karşılaştırma deneyi vermektedir Özet olarak, SRNN hızı GRU modelinden 5 ila 15 kat daha hızlıdır.Etki iyidir, ancak karşılaştırma modeli DC-CNN model hızı ile karşılaştırıldığında, yine de ortalama olarak CNN modelinden yaklaşık 3 kat daha yavaştır. Bu normaldir, ancak biraz fazla bunaltıcıdır. Bu normaldir çünkü başlangıçta RNN'yi CNN benzeri bir yapıya dönüştürüyordu ve parçada RNN dizi modeli hala kullanılıyor, bu nedenle kaçınılmaz olarak yavaşlayacak ve CNN'den daha yavaş olması normaldir. . Söyle "Açıklanamaz" Anlamı: Doğası gereği CNN olduğu ve hızı CNN'den daha yavaş olduğu için, bu değişikliğin önemi nedir? Neden doğrudan CNN kullanmıyorsunuz? değil mi? Daha az acı çektiği ve daha az yediği için barı taşımayı seven eski sınıf arkadaşı tekrar söyleyecektir: Belki etkisi özellikle iyidir. Peki, bu yapının etki mekanizmasına bakılırsa, pek olası değil. Makalenin deneysel kısmının bu noktayı ispatladığını söylediniz, deneysel kısımdaki karşılaştırmalı deneyin yeterli olmadığını düşünüyorum.Karşılaştırmak için DC-CNN dışındaki diğer CNN modellerini desteklemek gerekiyor. Tabii ki, bu tamamen kişisel bir görüş, ciddiye alma, çünkü konuşurken sık sık başımı sallıyorum Bu zamanda, insanlar bana genellikle şaşkınlıkla geri bildirimde bulunacaklar: Konuşurken neden su sesini duyuyorum?

Yukarıda, RNN'lerin paralel hesaplama yeteneklerini geliştirmek için iki ana fikir listelenmiştir: Şahsen, RNN'lerin paralel hesaplama yetenekleri konusunda kötümserim, çünkü esas olarak RNN'lerin temel özellikleri çok az seçeneğimiz olduğunu belirler. Gizli katman bağlantısını kesmeyi veya kesmemeyi seçme sorunundan başka bir şey değildir. Kesmeyi seçerseniz, yukarıdaki sorunlarla karşılaşacaksınız, artık bir RNN modeli olmayabileceğini göreceksiniz.Bir RNN gibi görünmesi için, RNN yapısı hala kesintiye uğramış segmentte benimseniyor, bu da şüphesiz hızı yavaşlatacak. Yani bu bir ikilemdir.Başka bir modele geçmek yerine, kesintiye uğratmamayı seçersek, sadece gizli nöronlar arasında paralellik yapabiliriz gibi görünüyor.Bunun dezavantajı, paralelliğin üst sınırının çok yüksek olmasıdır. Düşük; Öte yandan, içinde hala var olan sıra bağımlılığı tahmini hala bir problemdir. Karamsarlığın nedeni budur, çünkü büyük bir umut yoktur.

General CNN: Battlefield PlayerUnknown's Battlegrounds'ı Canlandırmak

Bir yıldan daha uzun bir süre önce, CNN, RNN dışında doğal dil işlemede en yaygın derin öğrenme modeliydi. Burada, RNN'den daha ayrıntılı olacak olan CNN özellik çıkarıcısının tanıtımı, esas olarak herkesin buna aşinalığının RNN olmayabilir. Çok yüksek.

NLP'de erken nostaljik CNN modeli

CNN'i NLP'ye ilk getiren, Kim'in 2014'teki çalışmasıydı. Kağıt ve ağ yapısı için yukarıdaki şekle bakın. Genel olarak, giriş kelimesi veya kelimesi Kelime Gömme'de ifade edilir, böylece orijinal tek boyutlu metin bilgisi girişi iki boyutlu bir giriş yapısına dönüştürülür. X girişinin n karakter içerdiğini ve her karakterin Kelime Gömmesinin Uzunluk d ise, girdi iki boyutlu bir d * n vektörüdür.

Evrişimli katman, esasen bir özellik çıkarma katmanıdır ve hiperparametre F, evrişimli katmanın kaç evrişim çekirdeği (Filtre) içerdiğini belirtmek için ayarlanabilir. Bir Filtre için, giriş matrisinin ilk kelimesinden başlayıp geriye doğru hareket eden d * k boyutunda hareketli bir pencere olması düşünülebilir, burada k, Filtre tarafından belirtilen pencere boyutudur ve d, Kelime Gömme uzunluğudur. Belirli bir andaki bir pencere için, sinir ağının doğrusal olmayan dönüşümü yoluyla, bu penceredeki giriş değeri belirli bir öz değere dönüştürülür.Pencere geriye doğru hareket etmeye devam ettikçe, bu Filtreye karşılık gelen özdeğer sürekli olarak üretilerek filtre oluşturulur. Özellik vektörü. Bu, evrişim çekirdeği ile öznitelikleri çıkarma işlemidir. Evrişimli katmandaki her Filtre, farklı bir özellik dizisi oluşturmak için bu şekilde çalışır. Havuzlama katmanı, nihai özellikleri oluşturmak için Filtre unsurlarında boyut azaltma işlemleri gerçekleştirir. Genel olarak, tamamen bağlı sinir ağı, son sınıflandırma işlemini oluşturmak için Havuzlama katmanından sonra bağlanır.

Bu, ilk olarak NLP alanında uygulanan CNN modelinin çalışma mekanizmasıdır.NLP'de cümle sınıflandırma görevini çözmek için kullanılmış ve çok kısa görünmüştür ve bundan sonra bu temelde geliştirilmiş modeller arka arkaya ortaya çıkmıştır. Bu nostaljik CNN modelleri aynı zamanda bazı görevlerde o zamanki nostaljik RNN modellerine eşdeğer olabilir, bu nedenle NLP'nin çeşitli alanlarında çılgınca büyüyebilirler, ancak daha fazla NLP alanında, RNN modeli tarafından depresyonun erken aşamasına kadar bastırılırlar. Utanç verici durum. Öyleyse, görüntü alanında yenilmez olan CNN, NLP sitesine koştuğunda, görüntü alanında yaşlı Jiangdong'u görmek için neden RNN gibi yılan tarafından bastırılıyor? Bu, CNN'in bu versiyonunun hala birçok sorunu olduğunu gösteriyor.Aslında en temel püf noktası, eski devrimin yeni sorunlarla karşılaşmış olmasıdır.Başlıca nedeni, yeni ortamın yeni ortamın özelliklerinde hedefe yönelik değişiklikler yapmaması, dolayısıyla yetersizlik sorunu ile karşı karşıya kalmasıdır. .

CNN, RNN'nin çeşitli NLP görev ortamlarında hayatta kalabilir mi? Cevap açıklanmak üzere.

CNN'in Evrimi: Doğal Seleksiyonun Kolezyumu

Önce CNN'in nostaljik versiyonunun sorunlarına bir göz atalım ve sonra NLP uzmanlarımızın CNN'i nasıl dönüştürdüğünü görelim, şimdiye kadar CNN'nin iyi görünen modern bir versiyonu gibi görünüyor.

Her şeyden önce net olmalıyız: CNN tarafından hangi özellikler yakalanır? CNN evrişim katmanının yukarıda bahsedilen nostaljik versiyonundan, anahtarın evrişim çekirdeğinin kapladığı kayan pencerede olduğunu muhtemelen görebilirsiniz.CNN'nin yakalayabileceği özellikler temelde bu kayan pencerede yansıtılmaktadır. K boyutundaki kayan pencere cümlenin sözcüklerini ve dalgaları nazikçe geçer, bu yüzden neyi yakalar? Aslında, yakaladığı şey sözcüğün k-gram parça bilgisidir. Bu k-gram parçaları CNN'dir. Yakalanan özellikler için k boyutu, özelliklerin ne kadar uzakta yakalanabileceğini belirler.

Bunu söyledikten sonra, Kimin CNN sürümünün ilk sorusuna bakalım: Yalnızca bir evrişimli katmana sahiptir. Yüzeyde yetersiz derinlik sorunu gibi görünüyor, değil mi? Size geri soracağım: Neden CNN'i derinleştirmek istiyorsunuz? Aslında derinlik kazanmak bir amaç değil bir araçtır. Tek bir evrişimli katmanla ilgili sorun, uzun mesafeli özellikler için tek katmanlı bir CNN'nin onu yakalayamamasıdır.Kayan pencere k en fazla 2 ise ve 5 mesafe ile uzun mesafe özelliği varsa, o zaman kaç hacim açık olursa olsun Ürün çekirdeği girişi 5 mesafeyle kapatamaz, bu nedenle uzun mesafeli özellikleri yakalayamaz.

Peki, uzun mesafeli özellikleri nasıl yakalayabiliriz? İki tipik iyileştirme yöntemi vardır: Birincisi, hala tek bir evrişimli katman kullandığımızı ve kayan pencere boyutunun k 3 olarak kabul edildiğini varsaymaktır, bu da yalnızca üç giriş kelimesi alındığı anlamına gelir, ancak 5 mesafeli özellikleri yakalamak istiyoruz. Ne yapmalıyız? Açıktır ki, evrişim çekirdek penceresi hala sürekli bir alanı kaplarsa, bu kesinlikle görevi tamamlayamayacaktır. Hatırlatma: Hiç Jump oynadın mı, değil mi? Benzer bir strateji benimsenebilir mi? Evet, zıplayıp saklanabilirsin, değil mi? Bu, Dilate evrişimin temel fikridir ve gerçekten de bir çözümdür.

İkinci yöntem, derinliği yapmaktır. Kayar pencere boyutunun k 3 olduğu varsayılarak, kayan pencere boyutunun da 3 olduğu, ancak ikinci pencere katmanının birinci pencere katmanının çıktı özelliklerini kapsadığı varsayılarak, kayan pencere boyutunun k 3 olduğu varsayılarak birinci katmanı, bu nedenle Aslında giriş mesafesini 5'e kadar kapsayabilir. Evrişim katmanını üst üste yığmaya devam ederseniz, girdiyi kapatmak için evrişim çekirdeğinin uzunluğunu artırmaya devam edebilirsiniz.

Yukarıdakiler, CNN'nin uzun mesafe özelliği yakalama yeteneklerine iki tipik çözümdür. Genişletilmiş CNN biraz karmaşıktır ve evrişimli katmanları üst üste bindirirken hiperparametrelerin nasıl ayarlanacağına dair bazı bilgiler vardır. Sürekli atlamalar bazı özellik kombinasyonlarını gözden kaçırabileceğinden, dikkatlice ayarlanması gerekir Parametre eşleştirme, tüm olası kombinasyonların kapsanmasını sağlar.

Nispeten konuşursak, CNN'yi derinleştirmek ana akım kalkınma yönüdür. Yukarıdaki nedenin anlaşılması kolaydır Aslında, CNN'in gelişinden bu yana insanlar CNN'in derinliğini elde etmek için çeşitli yöntemler denediler, ancak gerçek çoğu zaman acımasızdır.CNN'nin NLP'sindeki problem derin olmamasıdır. 3 katmanlı evrişimli katman yapılamaz ve daha derin ağ, görev etkisine yardımcı olmaz (lütfen karşı örnek olarak CharCNN kullanmayın. Daha sonraki çalışmalar, kelimeler kullanan 2 katmanlı CNN'nin CharCNN'den daha etkili olduğunu gösterdi). Şu anda, bu soruna derin ağ parametresi optimizasyonunun yetersiz araçlarından kaynaklandığı görülüyor, katman derinliği işe yaramaz. Daha sonra Resnet gibi görüntü alanında yeni teknolojilerin ortaya çıkmasından sonra, insanların CNN ağının derinliğini yavaşça inşa etmek için Skip Connection ve çeşitli Norm ve diğer parametre optimizasyon teknolojilerini tanıtmayı düşünmesi doğaldır.

Yukarıdakiler, CNN'in Kim versiyonunun ilk problemi, uzun mesafeli özellikleri yakalayamama problemi ve daha sonra araştırmacılar tarafından önerilen ana çözümdür. CNN'in Kim versiyonuna dönüp baktığımızda, başka bir sorun daha var, yani Max Pooling katmanı, bu aslında CNN'in giriş cümlesindeki kelimelerin konum bilgilerini koruyup koruyamayacağıyla ilgili. Öncelikle bir soru sormak istiyorum: RNN doğrusal bir dizi yapısı olduğu için, konum bilgisini doğal olarak kodlar; o zaman CNN, orijinal girdinin göreceli konum bilgisini tutabilir mi? Daha önce konum bilgilerinin NLP sorunları için çok yararlı olduğunu söylemiştik.

Aslında, CNN evrişim çekirdeği özellikler arasındaki göreceli konumu koruyabilir. Nedeni çok basittir.Kayan pencere soldan sağa kayar ve yakalanan özellikler de bu sıraya göre düzenlenmiştir, bu nedenle göreli konum bilgilerini yapıya zaten kaydetmiştir. . Ancak Havuzlama katmanı, evrişimli katmana hemen bağlanırsa, Max Pooling'in işlem mantığı: Evrişim çekirdeğinden elde edilen özellik vektöründen yalnızca en güçlü özellik seçilir ve tutulur, dolayısıyla Havuzlama katmanına gelince, konum bilgisi Atın, bu aslında NLP'deki bir bilgi kaybıdır. Bu nedenle, NLP alanında, CNN'nin mevcut gelişme eğilimlerinden biri, Havuzlama katmanını terk etmek ve ağ derinliğini kaplamak için tamamen evrişimli katmana güvenmektir.Bunun arkasında bir neden var (tabii ki görüntü alanı da bu eğilimdir).

Yukarıdaki şekil, NLP alanında kullanılabilen modern bir CNN'nin ana yapısını göstermektedir. Bu genellikle derinliği üst üste bindirmek için bir 1-D evrişimli katmandır ve optimizasyona yardımcı olmak için Atlama Bağlantısı kullanılır. Dilate CNN de eklenebilir. Örneğin, ConvS2S'nin ana gövdesi yukarıdaki şekilde gösterilen yapıdır.Kodlayıcı 15 evrişimli katman içerir, evrişim çekirdek boyutu = 3 ve kapsama girdi uzunluğu 25'tir. Elbette ConvS2S için, evrişim çekirdeğine GLU kapılı doğrusal olmayan fonksiyonun eklenmesi de önemli bir yardımdır. Alan sınırlamaları nedeniyle burada genişletmeyeceğim. GLU, NLP'deki CNN modelinin önemli bir bileşeni gibi görünüyor ve ustalaşmaya değer. Diğer bir örnek TCN'dir (Paper: An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling), birkaç teknolojiyi entegre eder: Tek bir evrişimli katmanın giriş kapsama uzunluğunu genişletmek için Genişletilmiş CNN kullanarak, tam evrişimli katman istifleme derinliğini kullanarak Bağlantıyı atla destekli optimizasyon ve ağ yapısını T zaman adımından sonra verilere görünmez hale getirmek için Casual CNN'i tanıttı.

Bununla birlikte, TCN'nin deneylerinde iki bariz sorun vardır: Bir problem, görevlerin dil modelleri dışında tipik NLP görevleri değil, sentetik veri görevleri olmasıdır, bu nedenle makalenin sonuçlarının doğrudan NLP alanı için uygun olduğunu söylemek zordur; başka bir nokta, efektleri karşılaştırmak için kullanılan karşılaştırma yönteminin mevcut efektleri kullanmamasıdır. Karşılaştırmak için çok iyi bir model, kıyaslama düşük. Bu nedenle, TCN'nin model etkisi yeterince ikna edici değildir. Aslında, getirmesi gereken unsurlar temelde tanıtıldı ve deney yeterince inandırıcı değil, GLU eksikliğine çarptığını düşünüyorum.

Ek olarak, kısaca CNN'in konum kodlama problemi ve paralel hesaplama yeteneklerinden bahsedin. Yukarıda belirtildiği gibi, CNN'nin evrişimli katmanı gerçekte göreceli konum bilgilerini tutar. Modeli tasarlarken ellerinizi kullanmadığınız ve havuz katmanını orta katmana yerleştirmediğiniz sürece, sorun büyük değildir ve giriş kısmında konum özel olarak ayarlanmamıştır. Kodlama iyidir. Ancak, ConvS2S gibi giriş kısmındaki her kelimeye gömülü bir konum ekleyebilir ve bir kelime girişi oluşturmak için kelimenin yerleştirme konumunu ve kelime vektörü yerleştirmeyi üst üste koyabilirsiniz.Bu da mümkündür ve aynı zamanda normal bir uygulamadır.

CNN'in paralel hesaplama kabiliyetine gelince, çok güçlü ve aslında anlaşılması çok kolay. Tek katmanlı bir evrişim katmanı düşünüyoruz.Birincisi, belirli bir evrişim çekirdeği için, her bir kayan pencerenin konumu arasında bir bağımlılık yoktur, bu nedenle paralel olarak hesaplanabilir; ayrıca, farklı evrişim çekirdekleri arasında karşılıklı bir etki yoktur, bu nedenle Paralel olarak da hesaplanabilir. CNN'in paralelliği çok özgür ve çok yüksek, bu da CNN'in çok iyi bir avantajı.

Yukarıdaki içerik, CNN'in nostaljik versiyonunun NLP Shura Alanında kendi kendine evrim yoluyla adım adım nasıl hayatta kaldığını açıklıyor. CNN CNN 40

CNN RNN Transforme

Transformer

Transformer 17 Attention is all you need NLP Transformer Transformer Jay Alammar Transformer The Illustrated Transformer

https://zhuanlan.zhihu.com/p/54356280

Calvo

Dissecting BERT Part 1: The Encoderhttps://medium.com/dissecting-bert/dissecting-bert-part-1-d3c3d495cdb3

Bert Bert Encoder Transformer Transformer NLP The Annotated Transformer.

Transformer biliyoruz, Attention is all you need Transformer Encoder-Decoder Encoder Encoder Decoder attention

Transformer Encoder encoder The Illustrated TransformerJay Alammar Block Encoder Transformer Block Transformer Block Transformer

Transformer Self Attention Transformer Self attention Block Multi-head self attentionSkip connectionLayerNormFF Neden öyle diyorsun?

NLP Transformer

Transformer CNN Padding

NLP RNN CNN Transformer

Muli-head self attention Self attention embedding embedding Transformer RNN CNN Positon Transformer Bert Position embedding embedding position embedding embedding ConvS2S

NLP Self attention RNN CNN Transformer Transformer NLP

Transformer Transformer base ile Transformer Big . Transformer Block Transformer base 12 Block Transformer Big 24 Block Transformer Big Transformer base

BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERThttps://ai.yanxishe.com/page/blogDetail/9925 AI Lab https://zhuanlan.zhihu.com/p/54743941 - Bitiş -

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

[Özel] "Tunni Happy" 10 milyon RMB Pre-A tur yatırımı aldı, express + market modelini oynamanın yeni yolları nelerdir?
önceki
Popüler GitHub eğitimi: 100 günde makine öğrenimi (Çince sürüm güncellemesi)
Sonraki
Aynı "Big Mac" asma köprü, Humen Second Bridge ve Yangsigang Yangtze River Bridge çok farklı.
34 yaşındaki Ronaldo bir gecede 6 rekor kırdı! İlk toptan 125. topa kadar 12 yılını kullandı
Boktan kürek memurunun büyük katili! Bu evcil hayvan sürüş robotu ile kediler artık kanunsuz olamaz
20 yıldır evrende dolaşan Cassini bize veda etmek istiyor!
Arsa tersine döndü! Barcelona süperstarı bir Şampiyonlar Ligi zaferi elde etti, ancak sonunda UEFA tarafından kendi başına sayıldı
Sisten sonra kuvvetli rüzgar geliyor! Shandong, fırtına için mavi uyarı verdi, rüzgar 7 hala soğuyor
Çapayı çekin, yelken açın ve dünyaya bir Çin "Sağlık Vadisi" adamak için yelken açın
"Grafenin Babası", deniz suyu tuzdan arındırma teknolojisinde çığır açarak küresel tatlı su kaynaklarının kıtlığını büyük ölçüde hafifletir
Huiju.com, başarıyla düzenlenen 2017 CIIF Küresel Bilgi İş Zirvesi Forumu ile el ele verdi
Son on yılda 21 yapay zeka alt alanında en çok alıntı yapılan 2100 akademisyenin listesi (ayrıntılı liste ile)
Şampiyonlar Ligi-Lukaku, Manchester United'ı 3-0 geri çekerken Pogba'nın sakatlığını attı, yeni pas atışı Chelsea 6-0 göbeği süpürdü
Messi'ye bir Titan çarptı ve stadyumu kana buladı! Maç 3 dakika kesintiye uğradı ve Barcelona koçu kıpır kıpırdı
To Top