Dizi modelinin ve sıra modellemenin dikkat mekanizmasının okunması (deeplearning.ai)

Yazar: Pulkit Sharma, 2019 Nian 1 Yue 21 Ri

Çeviri: Chen Zhiyan

Redaksiyon: Ding Nanya

Bu makale hakkında 11000 Word, önerilen okuma 10+ dakika.

Bu makale dizi modelini ayrıntılı olarak tanıtmakta ve farklı gerçek senaryolarda uygulanmasını analiz etmektedir.

Giriş

Bir dizide daha sonra ne olacağını tahmin etmek çok etkileyici bir konu, bu da veri biliminden bu kadar etkilenmemin nedenlerinden biri! İlginç olan şu ki, insan zihni bunda gerçekten çok iyi, ama makine değil. Bir kitapta esrarengiz bir olay örgüsü varsa, insan beyni sonucu tahmin etmeye başlayacaktır, ancak makineye benzer şeyler yapmayı nasıl öğretir?

Derin öğrenme sayesinde, bugün birkaç yıl öncesine göre çok daha fazlasını yapabiliriz. Müzik sözleri, cümle çevirisi, yorumları anlama veya sohbet robotları oluşturma gibi sıralama verilerini işleme yeteneği - hepsi sayesinde Dizi modelleme .

Bu makalede öğrenmemiz gereken şey bu. Bu, deeplearning.ai profesyonel serisinin bir parçası olduğu için okuyucuların bazı kavramları anlayabileceğini umuyorum. Önceki makaleleri okumadıysanız veya hızlı bir incelemeye ihtiyacınız varsa, aşağıdaki bağlantıyı ziyaret edebilirsiniz:

  • Derin öğrenme ve sinir ağlarına giriş kılavuzu (deeplearning.ai ders 1)
  • https://www.analyticsvidhya.com/blog/2018/10/introduction-neuric-networks-deep-learning/
  • Geliştirilmiş sinir ağı-hiperparametre ayarı, düzenleme ve diğerleri (deeplearning.ai ders 2)
  • https://www.analyticsvidhya.com/blog/2018/11/neuric-networks-hyperparameter-tuning-regularization-deeplearning/
  • Evrişimli sinir ağlarını sıfırdan öğrenmek için kapsamlı bir öğretici (deeplearning.ai ders 4)
  • https://www.analyticsvidhya.com/blog/2018/11/neuric-networks-hyperparameter-tuning-regularization-deeplearning/

Bu derste, dizi modelinin duygu sınıflandırması, görüntü alt başlıkları gibi farklı gerçek sahnelere nasıl uygulanacağını göreceğiz.

Kurs Kataloğu
  • kurs yapısı
  • Kurs içeriği: sıra modeli

Sıralı model kurs içeriği aşağıdaki gibidir:

1. Modül 1: Tekrarlayan Sinir Ağları (RNN'ler)

2. Modül 2: Doğal Dil İşleme (NLP) ve Kelime Gömme

2.1 Kelime yerleştirmeye giriş

2.2 Kelime yerleştirmeyi öğrenin: Word2vec ve GloVe

2.3 Kelime yerleştirme uygulaması

3. Modül 3: Sıra Modeli ve Dikkat Mekanizması

kurs yapısı

Şimdiye kadar, bu kurs dizisinde oldukça fazla içerik ele aldık. Aşağıda, öğrenilen kavramların kısa bir özeti verilmiştir:

  • Derin öğrenme ve sinir ağı temelleri.
  • Sığ ve derin sinir ağlarının çalışma prensibi.
  • Hiperparametre ayarlama, düzenleme ve optimizasyon yoluyla derin sinir ağlarının performansı nasıl artırılır.
  • Sıfırdan evrişimli bir sinir ağı nasıl uygulanır.

Şimdi odağı sıralı modellemeye çeviriyoruz. Bu kurs üç modüle ayrılmıştır (resmi kurs adı: Andrew Ng tarafından öğretilen derin öğrenme profesyonel kursunun 5. Dersi):

  • içinde Modül 1 Öğreneceğiz Tekrarlayan sinir ağı ve çalışma prensibi Ayrıca bu modülde GRU ve LSTM tanıtılacaktır.
  • içinde Modül 2 Öğrenmeye odaklanın Doğal dil işleme ve kelime gömme . Kelime yerleştirmeyi öğrenmek için Word2vec ve Glove çerçevesini nasıl uygulayacağımızı öğreneceğiz
  • Sonunda, 3. Modül Tanıtacak Dikkat modeli kavramı . Büyük ve karmaşık cümleleri bir dilden diğerine nasıl çevireceğimizi öğreneceğiz.

Hazır mısın? O halde Modül 1'den Ders 5'teki sıra modelini öğrenmeye başlayalım!

Platform sistemindeki kelime sayısının sınırlandırılması nedeniyle, lütfen Modül 1'in içeriğine bakın: Dizi Modellemenin Tekrarlayan Sinir Ağlarını (RNN'ler) Okuma (deeplearning.ai) Modül 3'ün içeriği için lütfen bakınız: Bir okuma dizisi modellemesinde doğal dil işleme ve kelime gömme (deeplearning.ai) 3. Modül 3: Sıra Modeli ve Dikkat Mekanizması

Bu kursun son modülüne hoş geldiniz! Bu ünitede başaracağımız iki ana hedef şunlardır:

  • Dikkat mekanizmasını anlamak
  • Modelin girdi sırasına nerede odaklandığını anlayın

3.1 Temel model

Bu bölümün içeriğini sektörle alakalı tutmaya çalışıyorum İşte makine çevirisi ve konuşma tanıma gibi uygulamalar için çok faydalı olacak bazı modeller. Bu örneğe bir göz atın - görevimiz, Fransızca bir cümlenin girilmesi ve İngilizceye çevrilmesi gereken bir dizi-sıra modeli oluşturmaktır. Sorular aşağıdaki gibidir:

Burada x < 1 > , X < 2 > Girdi, y < 1 > , Y < 2 > Çıktıdır. Bir model oluşturmak için bir kodlayıcı oluşturuyoruz ve onu giriş dizilerini kabul etmek için kullanıyoruz. Kodlayıcı mimarisi RNN, LSTM veya GRU olabilir. Kodlayıcıdan sonra, kodlanmış çıktıyı girdi olarak içeren bir kod çözücü ağı oluşturulur ve çeviriler oluşturmak için eğitilir.

Bu ağ aynı zamanda yaygın olarak resim altyazıları için kullanılır. Girdi olarak, görüntünün özelliklerini elde ederiz (evrişimli bir sinir ağı kullanılarak oluşturulmuş).

3.2 En olası cümleyi seçin

Makine çeviri sisteminin kod çözücü modeli, dil modeline çok benzer. Ancak ikisi arasında önemli bir fark vardır: dil modelinde, tamamen sıfır vektörle başlar, makine çevirisinde ise bir kodlayıcı ağı vardır:

Makine çeviri modelinin kodlayıcı kısmı, belirli bir girdinin çıktı olasılığının hesaplanması gereken koşullu bir dil modelidir:

Aşağıdaki giriş cümlesi için:

Aşağıdakiler gibi birden çok çeviri olabilir:

Yukarıdaki cümleden en iyi çeviriyi bulmak için aşağıdaki formülü kullanıyoruz.

İyi haber şu ki, en olası çeviriyi seçmemize yardımcı olabilecek bir algoritma var.

3.3 Hedefli arama

Bu, en iyi çeviriyi oluşturmak için yaygın olarak kullanılan algoritmalardan biridir. Algoritma aşağıdaki 3 adımda anlaşılabilir:

Aşama 1: Çevrilen ilk kelimeyi seçin ve olasılığını hesaplayın:

Işın genişliğini (B) burada belirtecek şekilde ayarlayabilirsiniz: B = 3, sadece bir kelimeyi değil, aynı zamanda ilk üç kelimeyi de seçebiliriz, bunların hepsi ilk kelimenin çevirisi olabilir. Ardından bu üç kelimeyi bilgisayarın belleğinde saklayın.

Adım 2: 1. adımda seçilen her kelime için, ikinci kelimenin olasılığını hesaplamak için algoritmayı kullanın:

Kiriş genişliği (B) 3 ise ve kelime dağarcığında 10.000 kelime varsa, toplam olası kombinasyon sayısı 3 * 10000 = 30000'dür. Bu 30.000 kombinasyon tahmin edilerek ilk 3 kombinasyon seçildi.

Aşama 3: Bu işlemi cümlenin sonuna kadar tekrarlayın.

Her seferinde bir kelime ekleyerek, hedeflenen arama, herhangi bir cümlenin en olası çevirisini belirler. Verimliliği artırmak için yönlendirilmiş aramada bazı iyileştirmeler yapılabilir.

3.4 Hedeflenen aramanın iyileştirilmesi

Yönlü arama olasılığını en üst düzeye çıkarın:

Bu olasılık, farklı kelimelerin olasılıklarının çarpılmasıyla hesaplanır. Olasılık çok küçük bir sayı olduğundan (0 ile 1 arasında), bu küçük sayıları birden çok kez çarparsak, son çıktı çok küçük olacak ve bu da hesaplamada sorunlara neden olacaktır. Bunun için olasılığı hesaplamak için aşağıdaki formül kullanılabilir:

Ürünü maksimize etmek yerine, ürünün logaritmasını maksimize ediyoruz. Ancak bu nesnel işlevle bile, çeviride daha fazla kelime varsa, ürünün sonucu da olumsuz olacaktır.Bunun için işlev normalleştirilebilir:

Yönlendirilmiş arama kullanılarak seçilen tüm cümleler için normalleştirilmiş logaritmik olasılığı hesaplayın ve ardından en büyük hesaplama sonucuna sahip cümleyi seçin. Paylaşmaya değer bir ayrıntı daha var, kiriş genişliği (B) nasıl belirlenir?

Işın genişliği (B) ne kadar büyükse, sonuç o kadar iyi olur, ancak algoritma hızı o kadar yavaş olur; diğer yandan, daha küçük bir ışın genişliği (B) seçmek algoritmanın daha hızlı çalışmasını sağlar, ancak sonuç doğru değildir. Kiriş genişliği (B) seçiminin katı ve hızlı kuralları yoktur ve uygulamaya göre değiştirilebilir. Farklı değerler deneyebilir ve en iyi sonucu veren değeri seçebilirsiniz.

3.5 Yönlü aramanın hata analizi

Yönlü arama, ışın genişliğine (B) göre ötelemeyi en yüksek olasılıkla çıkaran yaklaşık bir algoritmadır. Ancak, her seferinde doğru çeviri üretilmez. Doğru çeviriyi alamazsanız, nedenini analiz etmelisiniz: Yönlü aramadan mı yoksa RNN modelinden mi kaynaklanan bir sorun? Sorun yönlü aramadan kaynaklanıyorsa, daha iyi sonuçlar elde etmek için ışın genişliğini (B) artırabilirsiniz. Peki, ışın yönlendirmeli aramayı iyileştirmeye mi yoksa RNN modelini iyileştirmeye mi odaklanmalıyız?

Asıl çevirinin:

Jane Eylül'de Afrika'yı ziyaret ediyor (y *)

Algoritmadan elde edilen çeviri:

Jane geçen yıl eylül ayında Afrika'yı ziyaret etti (Y (Hat))

RNN, P (y * | x) ve P (y (hat) | x) hesaplayacaktır.

İlk durum: P (Y * X) > P (Y (Şapka) X)

Bu, y * olasılığı daha yüksek olmasına rağmen, yönlü arama için y (HAT) seçildiği anlamına gelir. Bu nedenle, hedeflenen arama sonuçları yanlıştır, ışın genişliğini (B) artırmayı düşünebiliriz.

İkinci durum: P (y * | x) < = P (y (şapka) | x)

Bu, y * çevirisinin y'den (HAT) daha iyi olduğu anlamına gelir, ancak RNN'nin öngörüsü tam tersidir. Şu anda sorun RNN'de yatmaktadır ve RNN modeli iyileştirilmelidir.

Bu nedenle, her çeviri için sorunun RNN'de mi yoksa yönlendirilmiş aramada mı olduğuna karar verilmelidir. Son olarak, yönlü arama ve RNN modelinin hata oranını analiz ettik ve bu temelde yönlü arama veya RNN modelini güncelledik. Bu şekilde çeviri optimize edilebilir.

3.6 Dikkat Modeli (Dikkat Modeli)

Şimdiye kadar, bir RNN'nin girişi okuduğu ve diğer RNN'nin bir cümle çıkardığı makine çevirisinin kodlayıcı-kod çözücü mimarisini öğrendik. Fakat çok uzun bir cümle girdiğimizde, modelin cümlenin tamamını hatırlaması zordur.

Dikkat modeli, uzun bir cümleden küçük bir örnek alıp onu tercüme etmektir, ardından tercüme için başka bir örnek almak vb.

Çıktı oluştururken, belirli bir giriş sözcüğüne ne kadar dikkat edilmesi gerektiğini belirlemek için alfa parametresini kullanırız.

< 1,2 > = İlk kelimeyi oluşturmak için ikinci giriş kelimesine ne kadar dikkat edilmelidir?

Bunu anlamak için bir örnek kullanalım:

İlk çıktıyı üretmek için y < 1 > , Her kelimeye ne kadar ağırlık verilmesi gerektiği, bu dikkatin hesaplanma yöntemidir:

Tx girdi sözcükleri ve Ty çıktı sözcükleri varsa, toplam dikkat parametresi Tx * Ty olacaktır.

Dikkat modelinin derin öğrenmedeki en güçlü fikirlerden biri olduğunu fark etmiş olabilirsiniz.

postscript

Dizi modeli gerçekten iyi, değil mi? Pek çok pratik uygulamaları var - sadece belirli bir durumda kullanmak için doğru teknolojiyi bilmemiz gerekiyor. Umarım bu becerileri bu kılavuzda öğrenebilirsiniz.

Kelime gömme, kelimeleri temsil etmenin iyi bir yoludur.Bu kelime gömme işlemlerinin nasıl yapılacağını ve kullanılacağını gördük.Aynı zamanda, kelime yerleştirmenin farklı uygulamalarını öğrendik.Son olarak, sıra modellerinin yapımı olan dikkat modelini de tanıttık. En güçlü fikirlerden biri.

Bu makale hakkında herhangi bir sorunuz veya geri bildiriminiz varsa, lütfen aşağıdaki yorumlar bölümünde paylaşmaktan çekinmeyin. Cevabınızı dört gözle bekliyorum!

Bu makaleyi Analytics Vidhya Android uygulamasında da okuyabilirsiniz.

Orjinal başlık:

Sıra Modellemeyi Öğrenmek İçin Okunması Gereken Öğretici (deeplearning.ai Kurs # 5)

Orijinal bağlantı:

https://www.analyticsvidhya.com/blog/2019/01/sequence-models-deeplearning/

Editör: Huang Jiyan

Çevirmen Profili

Chen Zhiyan, Pekin Jiaotong Üniversitesi'nden iletişim ve kontrol mühendisliği bölümünden mezun oldu ve mühendislik alanında yüksek lisans derecesi aldı. Great Wall Computer Software and System Company'de mühendis ve Datang Microelectronics'te mühendis olarak görev yaptı. Şu anda Beijing Wuyichaoqun Technology Co., Ltd.'nin teknik destekçisidir. Şu anda akıllı çeviri öğretim sistemlerinin işletimi ve bakımı ile uğraşmaktadır ve yapay zeka derin öğrenme ve doğal dil işleme (NLP) konusunda belirli deneyimler edinmiştir. Boş zamanlarımda çeviri oluşturmayı seviyorum. Başlıca çeviri çalışmaları arasında şunlar yer alıyor: IEC-ISO 7816, Irak Petrol Mühendisliği Projesi, Yeni Mali İşler Beyannamesi, vb. Çince-İngilizce çalışması "Yeni Mali Durum Beyannamesi" resmi olarak GLOBAL TIMES'te yayınlandı. Boş zamanımı, sizinle iletişim kurmak, paylaşmak ve birlikte ilerleme kaydetmek umuduyla THU Data Pie platformundaki çeviri gönüllüleri grubuna katılmak için kullanabilirim.

- 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.

Düzenden nasıl çıkılacağı, işte sırlar: Kur yapma konusunda cömert olmalısın ve arkadaş edinme konusunda başı çekmelisin.
önceki
Yeni yılın ikinci gününde neden ailene geri dönmek istiyorsun? "Guye Günü" ndeki şu seçkinlere bakın
Sonraki
Microsoft Researchün beyin fırtınası geleceğe yönelik etkileşimli konsepti artık eski çalışanlar tarafından bir ürüne dönüştürülüyor
Yuexing Yuesheng Shenzhen Yantian Limanı değişti: küçük bir balıkçı köyünden birinci sınıf bir limana
Barselona gerçek imparatoru buldu! 21 yaşındaki yıldız, yetişmek için 8 saniyede 80 metre koştu ve net değeri 15 milyon arttı
İlkbahar acemilerini kavrayın ve bu GitHub Wanxing ML algoritması röportaj kitabını kabul edin!
Veri Bilimcisi Büyüme Kılavuzu: Başlangıçtan Çılgınlığa Yönelik Olmaya (toplam 12 soru)
Ulusal Kısa Kurmaca Yarışması'nın ödül aşamasında, Sichuan'ın yeni oyunu "Genç Chen Yi" sahnelendi.
Bir okuma dizisi modellemesinde doğal dil işleme ve kelime gömme (deeplearning.ai)
[Özel] "Tunni Happy" 10 milyon RMB Pre-A tur yatırımı aldı, express + market modelini oynamanın yeni yolları nelerdir?
Doğal dil işlemenin (CNN / RNN / TF) üç ana özellik çıkarıcısının kapsamlı bir anlayışını size sunar.
Popüler GitHub eğitimi: 100 günde makine öğrenimi (Çince sürüm güncellemesi)
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ı
To Top