को समझना मैं आरएनएन/एलएसटीएम पर इस tutorial के माध्यम से जा रहा हूं और मुझे राज्यव्यापी एलएसटीएम को समझने में काफी कठिन समय है। मेरे सवालों का इस प्रकार हैं:राज्यव्यापी एलएसटीएम
1. प्रशिक्षण बैचिंग आकार
RNNs पर Keras डॉक्स में, मुझे पता चला है कि बैच के भीतर i
वें स्थिति में नमूना की छिपी राज्य इनपुट छुपा के रूप में खिलाया जा जाएगा अगले बैच में i
-th स्थिति में नमूना के लिए राज्य। क्या इसका मतलब यह है कि अगर हम छिपे हुए राज्य को नमूना से सैंपल में पास करना चाहते हैं तो हमें आकार 1 के बैचों का उपयोग करना होगा और इसलिए ऑनलाइन ढाल वंश का प्रदर्शन करना होगा? क्या छुपा राज्य को आकार> 1 के बैच के भीतर पास करने का कोई तरीका है और उस बैच पर ढाल वाले वंश को निष्पादित करना है?
2. एक-चार का मिलान समस्याएं
'एक-चार का मिलान करने के लिए एक एक-चार के लिए स्टेटफुल LSTM' ट्यूटोरियल के पैरा में एक कोड batch_size = 1
और stateful = True
का उपयोग करता है के अगले पत्र भविष्यवाणी करने के लिए सीखने के लिए दिए गए थे वर्णमाला के एक अक्षर दिए वर्णमाला। कोड के अंतिम भाग (पूर्ण कोड के अंत तक लाइन 53) में, मॉडल का परीक्षण एक यादृच्छिक अक्षर ('के') से शुरू होता है और भविष्यवाणी 'बी' होता है, फिर 'बी' दिया जाता है, यह भविष्यवाणी करता है 'सी', आदि। ऐसा लगता है कि 'के' को छोड़कर अच्छा काम करता है। हालांकि, मैं कोड के लिए निम्न ट्वीक (अंतिम भाग भी, मैं लाइनों 52 और इसके बाद के संस्करण रखा) की कोशिश की:
# demonstrate a random starting point
letter1 = "M"
seed1 = [char_to_int[letter1]]
x = numpy.reshape(seed, (1, len(seed), 1))
x = x/float(len(alphabet))
prediction = model.predict(x, verbose=0)
index = numpy.argmax(prediction)
print(int_to_char[seed1[0]], "->", int_to_char[index])
letter2 = "E"
seed2 = [char_to_int[letter2]]
seed = seed2
print("New start: ", letter1, letter2)
for i in range(0, 5):
x = numpy.reshape(seed, (1, len(seed), 1))
x = x/float(len(alphabet))
prediction = model.predict(x, verbose=0)
index = numpy.argmax(prediction)
print(int_to_char[seed[0]], "->", int_to_char[index])
seed = [index]
model.reset_states()
and these outputs:
M -> B
New start: M E
E -> C
C -> D
D -> E
E -> F
It looks like the LSTM did not learn the alphabet but just the positions of the letters, and that regardless of the first letter we feed in, the LSTM will always predict B since it's the second letter, then C and so on.
इसलिए, कैसे वर्तमान छिपा राज्य के लिए प्रारंभिक छिपा राज्य के रूप में पिछले छिपा राज्य रखने में हमारी मदद करता है सीखने के साथ कि परीक्षण के दौरान यदि हम पत्र 'के' से शुरू करते हैं, उदाहरण के लिए, पत्र ए से जे को पहले खिलाया नहीं जाएगा और शुरुआती छुपा राज्य प्रशिक्षण के दौरान समान नहीं होगा?
3. वाक्य पीढ़ी
मैं एक पूरी किताब पर मेरे LSTM प्रशिक्षित करने के लिए जानने के लिए कैसे वाक्य उत्पन्न करने के लिए और शायद भी लेखकों शैली सीखना चाहते हैं के लिए एक किताब पर एक LSTM प्रशिक्षण, मैं कैसे स्वाभाविक रूप से मेरी LSTM प्रशिक्षित कर सकते हैं उस पाठ पर (पूरे पाठ को इनपुट करें और एलएसटीएम शब्दों के बीच निर्भरताओं को समझने दें) 'कृत्रिम रूप से' होने के बजाय उस पुस्तक से वाक्यों के बैचों को अपने एलएसटीएम को प्रशिक्षित करने के लिए? मेरा मानना है कि मुझे राज्य के एलएसटीएम का उपयोग करना चाहिए, लेकिन मुझे यकीन नहीं है कि कैसे।
भविष्य के संदर्भ के लिए, इसे तीन अलग-अलग प्रश्नों में विभाजित किया जा सकता था। इसके अतिरिक्त, अंतिम प्रश्न figures.stackexchange.com के लिए अधिक उपयुक्त होगा। अंत में, आपको टैग शीर्षक में टैग नहीं डालना चाहिए। – Seanny123