Kağıt yeniliği hakkında hiçbir fikriniz yok mu? Bu çok yönlü Dikkat'i denemeye ne dersiniz?

Tam metni 3106 Kelimeler, tahmini öğrenme süresi 7 dakika

"Dikkat, Dikkat veya Dikkat, en önemli üç konferans makalesini okudum, şimdi CVPR, ICCV'yi göndermek çok kolay, sadece dikkatinizi rastgele bir şekilde ekleyin, harika bir yenilik olsa bile?" Bu, laboratuvardaki herkes için bir zamandır. Kağıdı okuduktan sonra çok düzgün bir yuva.

Ağ yapınızı diğerlerinden farklı "görünmesini" denemek için sürekli olarak evrişimli katmanlar, havuz katmanları ve tamamen bağlantılı katmanlar ekliyor olabilirsiniz veya görüntü bölümleme alanından noktaları nasıl "ödünç alacağınızı" merak ediyor olabilirsiniz. Görüntü tanıma alanında işler kullanılmaya başlandı.

Pek çok bilimsel araştırma acemi için, nihayet 50'den fazla makaleyi kemirdikten sonra, zihinlerinde bir tutam ilham, yazdıktan sonra titreyen yenilikçi bir noktayı fark etti. Sonra beklenmedik yeniliklerden daha acımasız bir gerçeği keşfettim - küçük bir kağıttaki tek bir yenilik yeterli değil.

Diğer yenilikler ancak mümkün olduğu kadar "birlikte çalışmaya" dayanabilir.

Sinir ağının kendisi biraz metafiziktir ve mucizevi bir ilaç yapmak için hangi çeşninin eklendiğini bilemezsiniz. Ve bu "Dikkat" ham maddesi, sinir ağının birçok profesyonel simyacısı tarafından doğrulanmıştır, gerçekten çok yönlüdür ve kullanımı kolaydır.

Öyleyse, makalenin yenilikçi noktaları için hala kafanızı kaşıyorken, sinir ağı yapısındaki vahşi asistanı deneyebilirsiniz - Dikkat mekanizması.

"Kullanımı kolay" Keras, "Vahşi" Dikkatle Buluştuğunda

TensorFlow 2.0'ın piyasaya sürülmesiyle, Keras tarafından uygulanan derin ağ, geliştiricilerin dikkatini çekmeye başladı. TensorFlow 2.0'da Keras, derin ağları uygulamak için aşağıdaki üç güçlü üst düzey sinir ağı API'sini kullanabilir.

· Sıra API'si - bu en basit API'dir, ilk önce modeli harekete geçirin = Sıralı () ve model.add (Yoğun (...)) gibi sürekli katmanlar ekleyin.

· Fonksiyonel API-Gelişmiş API, özel desenler, rastgele girdi / çıktı oluşturun. Burada tanımlanan modül dikkatli olmalı, herhangi bir küçük değişiklik kullanıcı tarafını etkileyecektir. Modeli tanımlamak için model = Model (inputs =, outputs =) kullanın.

· Alt sınıflandırma API-yüksek seviyeli API, model bir Python sınıfı olarak tanımlanabilir. Burada modelin ileri geçişi genel sınıfta tanımlanır ve Keras otomatik olarak geriye doğru geçişi hesaplar.

Resim kaynağı: Keras resmi belge ana sayfası

Keras, hızlı deneyleri desteklemek için tasarlanmış üst düzey bir sinir ağı API'sidir.Tensorflow, Pytorch ve Caffe gibi derin öğrenme çerçeveleri ile karşılaştırıldığında, daha çok bir sinir ağı arayüzü gibidir. Sağladığı temel esneklik ve esneklik, diğer derin öğrenme çerçevelerinden daha düşük olsa da, modülleri yüksek oranda kapsüllüdür, çok kullanıcı dostudur ve kullanımı en kolay olanıdır. Fikirleri hızlı bir şekilde sonuçlara aktarmanın en iyi yoludur. seçildi.

Dolayısıyla, hızlı bir şekilde bir sinir ağı oluşturmanız ve ağ modüllerinizin bu kadar "düzgün" eklenip eklenmediğini test etmeniz gerektiğinde, kullanımı çok kolay bir API olan Keras'ı kullanmayı deneyebilirsiniz.

Yukarıda bahsedilen Dikkat dikkat mekanizması, aslında insan beyni nöronlarının çalışma prensibine atıfta bulunarak geliştirilen sinir ağına benzemektedir.Dikkat dikkat modeli, gereksiz bilgileri otomatik olarak göz ardı ederken, gelişim sürecinde insanın gerekli bilgiye odaklanmasından da zekice ödünç alınmıştır. Bilginin görsel dikkat çekme mekanizması ilkesi.

Daha sonra, bu makale "dizi-dizi modeli" nin tanıtımı ile başlayacak ve ardından Dikkat mekanizmasının sıra-dizi modeli için neden çok önemli olduğunu göstermek için "dikkat mekanizmasının özünü" tanıtacak ve son olarak örnekleri kullanacaktır. Keras, Dikkat Katmanı'nı hızla uygular.

"Sıra dizisi" modeli

"Sıralamadan Sıraya Model", makine öğrenimi alanındaki en zor problemleri çözmek için tasarlanmış güçlü bir derin öğrenme modelleri dalıdır. Örneğin:

· Makine çevirisi

· Sohbet robotu

· Metin özeti

Her sorunun kendine özgü zorlukları vardır. Örneğin, makine çevirisi farklı kelime sırası topolojileriyle (yani özne-fiil nesne sırası) ilgilenmelidir. Bu nedenle, bu "sıra-sekans" modeli, karmaşık sinir dilbilimsel programlama ile ilgili problemleri çözmek için gerekli bir silahtır.

"Sıralı sıra" modeli, İngilizce-Fransızca makine çevirisi görevlerine nasıl uygulanır?

"Dizi-dizi" modelinin iki bileşeni vardır, bir kodlayıcı ve bir kod çözücü. Kodlayıcı, kaynak cümleyi özlü bir vektöre (bağlam vektörü olarak adlandırılır) dönüştürür, burada kod çözücü bağlam vektörüne girer ve bilgisayar çevirisini gerçekleştirmek için kodu çözülmüş gösterimi kullanır.

Dizi modeline göre sıralama

Bu yöntemle ilgili herhangi bir sorun var mı?

Bu yöntemin ciddi darboğazları vardır. Bağlam vektörünün, belirli bir kaynak cümlesindeki tüm bilgileri birkaç yüz öğe içeren bir vektöre kodlaması gerekir. Şimdi, ilgili bağlama entegre olmak için vektörün aşağıdaki bilgileri tutması gerekir:

Özne, nesne ve yüklem fiilleriyle ilgili bilgiler

· Bu karakterler arasındaki etkileşim

Bu sürecin görevi, özellikle uzun cümleler için oldukça zordur. Bu nedenle, darboğazı çözmek için Dikkat mekanizmasının asıl amacı olan daha iyi bir çözüme ihtiyaç vardır.

Dikkat dikkat mekanizmasının özü

Ya kod çözücü sadece bağlam vektörüne değil, tüm geçmiş durumlara erişebiliyorsa? Dikkat mekanizmasının yaptığı tam olarak budur. Her bir kod çözme adımında, kod çözücü, kodlayıcının özel durumunu istediği zaman kontrol edebilir. Burada Bahdanau Dikkat mekanizmasını tartışacağız. Aşağıdaki şekil, dikkat mekanizmasının iç işleyişini açıklamaktadır.

Dikkat mekanizması altında diziden diziye model

Şekilden bağlam vektörünün tüm kodlayıcıların geçmiş durumlarının ağırlıklı toplamı olduğunu görmek zor değildir. Aslında, Dikkat mekanizması matematiksel formüller ve kod uygulaması açısından ağırlıklı bir özettir ve ağırlıklı toplamda ağırlıkların makul konfigürasyonunu incelemek, tam olarak Dikkatin çözmek istediği problemdir.

Keras dikkat mekanizmasını tanıtın

Bazı mevcut dikkat mekanizmalarının çalışması oldukça zahmetli olabilir. Keras dikkat mekanizması, dikkat mekanizmasını daha ince bir seviyede uygulayan daha modüler bir yaklaşım kullanır (yani, belirli bir kod çözücünün RNN / LSTM / GRU'nun her bir kod çözücü adımı).

Dikkat dikkat katmanını kullanın

Dikkat Katmanı'nı herhangi bir katman olarak kullanabilirsiniz, örneğin bir dikkat katmanı tanımlayın:

attn_layer = AttentionLayer (name = 'care_layer') ()

İşte dikkat katmanının NMT'de (nmt.py) nasıl kullanılacağını göstermek için basit bir Sinir Makinesi Çevirisi (NMT) örneği. İşte bazı ayrıntılar.

NMT'ye ulaşmak için dikkat mekanizmasını kullanın

Burada, NMT'ye ulaşmak için dikkat mekanizmasını kullanma adımlarını kısaca tanıtın.

İlk önce kodlayıcı ve kod çözücü girişlerini tanımlayın ((kaynak / hedef karakterler) Hepsinin belirli özellikleri vardır (parti boyutu, zaman adımı, kelime boyutu).

encoder_inputs = Girdi (batch_shape = (batch_size, en_timesteps, en_vsize), name = 'encoder_inputs') decoder_inputs = Girdi (batch_shape = (batch_size, fr_timesteps-1, fr_vsize), name = 'decoder_inputs')

Kodlayıcıyı tanımlayın (return_sequences = True not edin).

encoder_gru = GRU (hidden_size, return_sequences = True, return_state = True, name = 'encoder_gru') encoder_out, encoder_state = encoder_gru (kodlayıcı_inputs)

Kod çözücüyü tanımlayın (return_sequences = True olduğuna dikkat edin).

decoder_gru = GRU (hidden_size, return_sequences = True, return_state = True, name = 'decoder_gru') decoder_out, decoder_state = decoder_gru (decoder_inputs, initial_state = kodlayıcı_state)

Dikkat katmanını tanımlayın. Dikkat katmanının girdileri kodlayıcı çıkışı (kodlayıcı çıktı dizisi) ve kod çözücü çıkışıdır (kod çözücü çıktı dizisi).

attn_layer = AttentionLayer (name = 'care_layer') attn_out, attn_states = attn_layer ()

Attn_out ve decoder_out'u bağlayın ve Softmax katmanının girdisi olarak kullanın.

decoder_concat_input = Birleştir (axis = -1, name = 'concat_layer') ()

TimeDistributed Softmax katmanını tanımlayın ve decoder_concat_input girin.

yoğun = Yoğun (fr_vsize, activation = 'softmax', name = 'softmax_layer') dense_time = TimeDistributed (yoğun, ad = 'time_distributed_layer') decoder_pred = yoğun_süresi (decoder_concat_input)

Tam modeli tanımlayın.

full_model = Model (inputs =, outputs = decoder_pred) full_model.compile (optimize edici = 'adam', kayıp = 'categorical_crossentropy')

Dikkat mekanizmasının görselleştirilmesini destekler

Aslında bu sadece dikkat mekanizmasının farkına varmakla kalmaz, aynı zamanda dikkat mekanizmasını görselleştirmek için bir yol sağlar. Çünkü her kod çözme adımı için bu katman iki değer döndürür:

· Dikkat bağlam vektörü (kod çözücünün Softmax katmanına ek bir girdi olarak kullanılır)

· Dikkat ağırlığı (Dikkat mekanizmasının Softmax çıkışı)

Bu nedenle, dikkat ağırlığını görselleştirerek, eğitim / akıl yürütme sırasında dikkatin ne yaptığını tam olarak anlayabiliriz. Bu süreç aşağıda ayrıntılı olarak tartışılmaktadır.

NMT'den dikkat ağırlığı çıkarımı elde edin

NMT çıkarımının aşağıdaki adımları tamamlaması gerekir:

· Enkoder çıktısını alın

· Kod çözücünün tek bir adımını gerçekleştirmek için bir kod çözücü tanımlayın (çünkü bir sonraki girişe hazırlanmak için bu adımın tahminini sağlamamız gerekir)

· Kod çözücünün başlangıç durumu olarak kodlayıcı çıkışını kullanın

· Geçersiz bir kelime / çıktı elde edene kadar kod çözme yapın < EOS > / Sabit dağıtım

Dikkat ağırlıkları almak için bu modelin nasıl kullanılacağına bir göz atalım.

aralıktaki i için (20): dec_out, dikkat, dec_state = decoder_model.predict () dec_ind = np.argmax (dec_out, axis = -1) ... care_weights.append ((dec_ind, dikkat))

Ardından, dikkat ısı haritasını diğer parametrelerle almak için bu dikkat ağırlıkları listesini plot_attention_weights'a (nmt.py) iletmeniz gerekir. Çizimden sonraki çıktı aşağıdaki gibi görünebilir.

Bu makale, Dikkat Katmanı'nı uygulamak için Keras'ı kullanır. Sıralı modeller veya diğer bazı modeller için dikkat mekanizması çok önemlidir çünkü gerçekten çok yönlüdür.

Dikkat mekanizmasının uygulanması için mevcut yöntemler ya çok eskidir ya da henüz modülerliğe ulaşmamıştır. Ve Keras, dikkat mekanizmasının gerçekleştirilmesi için iyi bir çözüm sağlayabilir.

Bu makaleyi okuduktan sonra, Keras'ı kullanarak dikkat mekanizmasını daha önce de söylediğim kadar basit bir şekilde gerçekleştirmeyi deneyebilirsiniz.Belki karşılaştığınız kağıt yenilik darboğazı hemen çözülecektir (İyi Şanslar).

Yorum Beğen Takip Et

Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

Tam platform yapay zeka dikey öz medya "temel okuma tekniği" ni takip etmeye hoş geldiniz

Nixin Huya, "Peace Elite" de yumrukla tavuk yemenin galasını yaptı! Kardeş Huya yardım istemiyor.
önceki
RNG yaz oyunları dört garantiden ve bir yeni taktikten vazgeçiyor! Uzi oyunu ilk kez beş öldürmeyi bıraktı ve tüm ağdan övgü aldı
Sonraki
LPL Yaz Oyunları: LGD 2: 1 V5 ilk ev galibiyetini kazandı! İmparator Kang'ın Üç Askeri Eğitimi V5
Tobo Ekibinin Huyadaki ilk çıkışı popülaritesini artırdı! Sao Nan ve Frog, profesyonel oyunculara istismar edilmeleri için meydan okumak için bir takıma liderlik ediyor
Geçmişte "yarım yorgan" kalmıştı ve bugün tekrar güzel bir gün yaratacağız - Hunan Eyaleti, Rucheng İlçesi, Shazhou Köyündeki bir ziyaretten haber alacağız.
Huya Çocuk Bayramı, 29 bin tavuktan "sıkıntı" yı başlattı! Birinden tavuk yemesini istemezseniz, durumunuz garanti edilmez!
Matplotlib + Seaborn: Tek bir makalede Python görselleştirme kitaplığının iki kralına hakim olun
Huyashen Super Live, "aktörler" tarafından kesildi! Süper Tanrı nefesini yutar ve sonunda ruhen karşılık verir
Xiaozhi, Da Sima'nın popülaritesindeki düşüşün anahtarına dikkat çekiyor! Da Sima'nın başarısı veya başarısızlığı aynı grup tarafından düzenlendi
Net, Letme'nin Zafer Kralı Bölümüne koç olarak gideceğini açıkladı Hayranlar Mlxg'in de devredileceğini düşünüyor
Morde Kaiser'in yeni versiyonu, dört garantiyi ve bir taktiği kırmanın anahtarı oldu. Demir adamın büyük hareketi, dört garantiyi tamamen yok ediyor
3 harika görselleştirme tekniğini ayrıntılı olarak açıklamak için FIFA oyuncu veri kümesini örnek olarak alın
Xiaoxiao, yılın en sert çapası oldu! Boşandıktan sonra, eski karısı Qixi'yi baba yapmak için bir gülümseme aradı
Savurgan oğlunu istikrarlı amcaya kovalamak: Bilim ve Teknoloji Üniversitesi Öz-disiplin Başkanının çok gizli günlüğü
To Top