गहरे नेटवर्क की LSTM परत को कैसे प्रशिक्षित करें


13

मैं टेक्स्ट को वर्गीकृत करने के लिए एक lstm और फीड-फॉरवर्ड नेटवर्क का उपयोग कर रहा हूं।

मैं पाठ को एक-गर्म वैक्टर में परिवर्तित करता हूं और प्रत्येक को lstm में फ़ीड करता हूं ताकि मैं इसे एकल प्रतिनिधित्व के रूप में सारांशित कर सकूं। फिर मैं इसे दूसरे नेटवर्क को खिलाता हूं।

लेकिन मैं lstm को कैसे प्रशिक्षित करूं? मैं सिर्फ पाठ को वर्गीकृत करना चाहता हूं - क्या मुझे इसे बिना प्रशिक्षण के खिलाना चाहिए? मैं सिर्फ एक आइटम के रूप में मार्ग का प्रतिनिधित्व करना चाहता हूं जिसे मैं क्लासिफायरियर की इनपुट परत में फीड कर सकता हूं।

मैं इस के साथ किसी भी सलाह की बहुत सराहना करेंगे!

अपडेट करें:

इसलिए मेरे पास एक lstm और एक क्लासिफायरियर है। मैं lstm के सभी आउटपुट लेता हूं और उन्हें पूल करता हूं, फिर मैं उस औसत को क्लासिफायर में खिलाता हूं।

मेरा मुद्दा यह है कि मैं नहीं जानता कि lstm या क्लासिफायर ट्रेन कैसे करें। मुझे पता है कि इनपुट lstm के लिए क्या होना चाहिए और उस इनपुट के लिए क्लासिफायर का आउटपुट क्या होना चाहिए। चूंकि वे दो अलग-अलग नेटवर्क हैं जो केवल क्रमिक रूप से सक्रिय हो रहे हैं, मुझे यह जानने की जरूरत है और पता नहीं है कि एलएसटीएम के लिए आदर्श-आउटपुट क्या होना चाहिए, जो कि क्लासिफायरियर के लिए भी इनपुट होगा। क्या इसे करने का कोई तरीका है?

जवाबों:


10

LSTM के साथ शुरू करने के लिए सबसे अच्छी जगह ए। कर्पथी http://karpathy.github.io/2015/05/21/rnn-effectiveness/ का ब्लॉग पोस्ट है । यदि आप Torch7 का उपयोग कर रहे हैं (जो मैं दृढ़ता से सुझाव दूंगा) स्रोत कोड github https://github.com/karpathy/char-rnn पर उपलब्ध है ।

मैं आपके मॉडल को थोड़ा बदलने की कोशिश करूंगा। मैं कई-से-एक दृष्टिकोण का उपयोग करूंगा ताकि आप लुकअप टेबल के माध्यम से शब्दों को इनपुट करें और प्रत्येक अनुक्रम के अंत में एक विशेष शब्द जोड़ें, ताकि जब आप "अनुक्रम के अंत" इनपुट पर हस्ताक्षर करेंगे तो आप वर्गीकरण पढ़ेंगे आउटपुट और अपने प्रशिक्षण मानदंड के आधार पर त्रुटि की गणना करें। इस तरह आप एक पर्यवेक्षित संदर्भ में सीधे प्रशिक्षण लेंगे।

दूसरी ओर, एक सरल दृष्टिकोण पैराग्राफ 2vec ( https://radimrehurek.com/gensim/models/doc2vec.html ) का उपयोग करना होगा ताकि आप अपने इनपुट पाठ के लिए सुविधाओं को निकाल सकें और फिर अपनी सुविधाओं के शीर्ष पर एक क्लासिफायर चला सकें । पैराग्राफ वेक्टर सुविधा निष्कर्षण बहुत सरल है और अजगर में यह होगा:

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

जवाब देने के लिए धन्यवाद। मैं उन पर विचार करूंगा। क्या आपको मेरे प्रश्न में विशिष्ट मुद्दे के बारे में कोई सलाह है - मैंने इसे अपडेट कर दिया है।
वर्डस्मिथ

मुझे नहीं लगता कि आपकी वर्णित प्रक्रिया किसी भी परिणाम का उत्पादन करेगी। आप LSTM के खिलाफ क्या प्रशिक्षण लेंगे? मुझे यकीन नहीं है कि मैं समझ सकता हूं कि इस मामले में एक एलएसटीएम का उपयोग पूरे वाक्य के लिए अनपेक्षित सुविधा सीखने के लिए क्यों किया जाएगा। क्या आपके पास अपने दृष्टिकोण पर कोई प्रासंगिक साहित्य है जो मैं आपकी मदद कर सकता हूं? यह आपकी रुचि के साथ-साथ arxiv.org/abs/1306.3584 हो सकता है ।
यानि असील

मैं पाठ और उनके वर्गों के पिछले मार्ग के डेटा सेट के आधार पर lstm को प्रशिक्षित करूंगा। मैं अप्रशिक्षित सीखने का उपयोग करने का इरादा नहीं कर रहा हूँ। मैं इसे मैन्युअल रूप से प्रशिक्षित करना चाहता हूं, लेकिन यह नहीं जानता कि कैसे। यहां मशीन-लर्निंग लाइब्रेरी के बिना lstm और क्लासिफायरियर का मेरा कार्यान्वयन है, जिसे मैं काम करता हूं: pastebin.com/63Cqrnef lstm में डीस्टेक्टिनेट का एक कार्य है जो lstm को सक्रिय करता है और फिर क्लासिफिकेशन ऑर्डर को मैंने अपने क्यूसिटॉन में उल्लेख किया है। यहां कुछ ऐसा है जिसे मैं लागू करने की कोशिश कर रहा हूं: deeplearning.net/tutorial/lstm.html
wordSmith

लेकिन जब मैंने उन दोनों को एक नेटवर्क के रूप में सक्रिय करने की कोशिश की, तो मैं आउटपुट परतों में से प्रत्येक से अपरिभाषित हो गया। उस पर अधिक यहाँ है: आंकड़े
शब्द

1
आपका बहुत बहुत धन्यवाद! आपने आवश्यकता से अधिक सहायता प्रदान की। ऊपर और परे जाने के लिए धन्यवाद।
वर्डस्मिथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.