Derin ağ LSTM katmanı nasıl eğitilir


13

Metin sınıflandırmak için bir lstm ve ileri beslemeli ağ kullanıyorum.

Metni tek sıcak vektörlere dönüştürüyorum ve her birini lstm'ye besliyorum, böylece tek bir gösterim olarak özetleyebiliyorum. Sonra diğer ağa besliyorum.

Ama lstm'yi nasıl eğitebilirim? Metni sıralamak istiyorum - eğitim yapmadan mı beslemeliyim? Ben sadece sınıflandırıcı giriş katmanına besleyebilir tek bir öğe olarak geçit temsil etmek istiyorum.

Bu konuda herhangi bir tavsiye çok takdir ediyorum!

Güncelleme:

Bir lstm ve bir sınıflandırıcı var. Ben lstm tüm çıktıları almak ve ortalama-havuz, sonra bu ortalama sınıflandırıcı beslemek.

Benim sorunum nasıl lstm veya sınıflandırıcı yetiştirmek bilmiyorum. Ben lstm için girdi ne olması gerektiğini ve bu girdi için sınıflandırıcı çıktı ne olması gerektiğini biliyorum. Sadece ardışık olarak etkinleştirilen iki ayrı ağ olduğundan, sınıflandırma için de girdi olacak olan lstm için ideal çıkışın ne olması gerektiğini bilmem ve bilmem gerekir. Bunu yapmanın bir yolu var mı?

Yanıtlar:


10

LSTM'lerle başlamak için en iyi yer A. Karpathy'nin http://karpathy.github.io/2015/05/21/rnn-efftivity/ blog yazısıdır . Torch7 kullanıyorsanız (ki kesinlikle öneririm) kaynak kodu github https://github.com/karpathy/char-rnn adresinde mevcuttur .

Ayrıca modelinizi biraz değiştirmeye çalışacağım. Arama tablosundan sözcükler girmeniz ve her dizinin sonuna özel bir sözcük eklemeniz için çoktan bire bir yaklaşım kullanacağım, böylece yalnızca "dizinin sonu" işaretini girdiğinizde sınıflandırmayı okuyacaksınız. egzersiz ölçütünüze göre hata verin ve hesaplayın. Bu şekilde doğrudan denetlenen bir bağlam altında eğitim alırsınız.

Öte yandan, giriş metniniz için özellikleri ayıklamak ve daha sonra özelliklerinizin üzerinde bir sınıflandırıcı çalıştırmak için paragraf2vec ( https://radimrehurek.com/gensim/models/doc2vec.html ) kullanmak daha basit bir yaklaşım olacaktır . Paragraf vektör özellik çıkarma çok basit ve python şöyle olurdu:

class LabeledLineSentence(object):
    def __init__(self, filename):
        self.filename = filename

    def __iter__(self):
        for uid, line in enumerate(open(self.filename)):
            yield LabeledSentence(words=line.split(), labels=['TXT_%s' % uid])

sentences = LabeledLineSentence('your_text.txt')

model = Doc2Vec(alpha=0.025, min_alpha=0.025, size=50, window=5, min_count=5, dm=1, workers=8, sample=1e-5)
model.build_vocab(sentences)

for epoch in range(epochs):
    try:
        model.train(sentences)
    except (KeyboardInterrupt, SystemExit):
        break

Yanıtladığınız için teşekkürler. Bunları ele alacağım. Sorumdaki özel konu hakkında herhangi bir tavsiyeniz var mı - güncelledim.
wordSmith

Açıkladığınız prosedürün herhangi bir sonuç vereceğini düşünmüyorum. LSTM'ye karşı ne eğiteceksiniz? Bu durumda neden bütün bir cümle için denetimsiz özellik öğrenme için bir LSTM kullanacağımı anladığımdan emin değilim. Size yardımcı olabileceğim yaklaşımınızla ilgili literatürünüz var mı? Bu da ilginizi çekebilir arxiv.org/abs/1306.3584 .
Yannis Assael

Lstm'yi geçmiş metin bölümleri ve sınıflarının veri kümesine göre eğiteceğim. Denetimsiz öğrenmeyi kullanmak istemiyorum. Manuel olarak eğitmek istiyorum, ama nasıl yapacağımı bilmiyorum. İşte lstm ve sınıflandırıcı benim makine öğrenme kütüphanesi olmadan benim uygulama olduğunu biliyorum, çalışır: pastebin.com/63Cqrnef lstm benim quateton bahsettiğim gibi lstm ve sonra sınıflandırıcı etkinleştirmek deepActivate bir işlevi vardır. İşte uygulamaya çalıştığım gibi bir şey: deeplearning.net/tutorial/lstm.html
wordSmith

ancak her ikisini de tek bir ağ olarak etkinleştirmeye çalıştığımda, çıktı katmanlarının her birinden tanımsız oldum. Burada daha fazlası var: stats.stackexchange.com/q/159922/81435
wordSmith

1
Çok teşekkür ederim! Gerekenden çok daha fazla yardım sağladınız. Yukarıda ve öteye gittiğin için teşekkürler.
wordSmith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.