अनुक्रम घटना भविष्यवाणी के भीतर LSTM का सबसे अच्छा उपयोग


9

निम्नलिखित 1 आयामी अनुक्रम मान लें:

A, B, C, Z, B, B, #, C, C, C, V, $, W, A, % ...

A, B, C, ..यहाँ पत्र 'साधारण' घटनाओं का प्रतिनिधित्व करते हैं।

#, $, %, ...यहाँ प्रतीक 'विशेष' घटनाओं का प्रतिनिधित्व करते हैं

सभी घटनाओं के बीच अस्थायी अंतर गैर-समान है (सेकंड से कुछ भी, दिनों तक), हालांकि अतीत में एक घटना के रूप में आगे की घटनाओं को प्रभावित करने की संभावना कम है। आदर्श रूप से मैं इन समयों को ध्यान में रखकर देरी कर सकता हूं।

10000 सामान्य घटना प्रकारों के क्रम पर हैं, और 100 विशेष घटना प्रकारों के क्रम पर हैं। एक विशेष घटना से पहले की सामान्य घटनाओं की मात्रा भिन्न होती है लेकिन 100-300 से अधिक होने की संभावना नहीं है।

मूल रूप से मैं साधारण घटना क्रम में पैटर्न की तलाश में दिलचस्पी रखता हूं जो विशेष घटनाओं के लिए भविष्य कहनेवाला है।

अब आप इसे विभिन्न तरीकों से देख सकते हैं: फीचर वैक्टर + मानक वर्गीकरण, एसोसिएशन रूल लर्निंग, एचएमएम, आदि बनाना।

इस मामले में Im उत्सुक है कि एक LSTM आधारित नेटवर्क कैसे सबसे अच्छा फिट होगा। सीधे तौर पर कुछ ऐसा करना होगा जैसे कि करपर्ति के चार-रैन और अगले घटना के इतिहास की भविष्यवाणी करना। फिर एक नए सीक्वेंस के लिए

C, Z, Q, V, V, ... , V, W

आप इसे मॉडल के माध्यम से चला सकते हैं और देख सकते हैं कि आगे आने के लिए सबसे विशेष घटना क्या है। लेकिन यह सही फिट महसूस नहीं करता है।

चूंकि यह एक लौकिक वर्गीकरण समस्या है, इसलिए ऐसा लगता है कि एलेक्स ग्रेव्स द्वारा वर्णित के रूप में कनेक्शनवादी टेम्पोरल वर्गीकरण का उपयोग करना उचित है ।

हालांकि, इस समय बहुत अधिक निवेश करने से पहले मैं कुछ आसान और त्वरित खोज रहा हूं ताकि यह महसूस किया जा सके कि यहां एलएसटीएम कितना अच्छा होगा। Tensorflow कुछ बिंदु पर CTC उदाहरण देखेगा , लेकिन अभी तक नहीं।

तो मेरे (उप) प्रश्न हैं:

  1. ऊपर दी गई समस्या को देखते हुए और मैं LSTM के साथ प्रयोग करना चाहूंगा, क्या यह चार-आरएन प्रकार के दृष्टिकोण की कोशिश करने के लायक है, क्या मुझे बुलेट को काटने और सीटीसी के साथ पकड़ना चाहिए, या शुरू करने के लिए एक बेहतर जगह है।
  2. आप अंतर-इवेंट टाइमिंग जानकारी को कैसे स्पष्ट रूप से शामिल करेंगे। नो-ऑप इवेंट्स के साथ एक निश्चित घड़ी का उपयोग करना स्पष्ट रूप से काम करता है लेकिन बदसूरत लगता है।
  3. मान लें कि मैं एक LSTM को प्रशिक्षित करने में कामयाब रहा, तो यह देखने के लिए मॉडल का निरीक्षण करने का एक तरीका है कि इसे किस प्रकार के 'रूपांकनों' ने उठाया है? (यानी, काफिले में फिल्टर के अनुरूप)

कोई भी नमूना कोड (अजगर पसंदीदा) हमेशा मददगार।

संपादित करें: बस जोड़ने के लिए कि अनुक्रम में कुछ शोर है। कुछ घटनाओं को सुरक्षित रूप से अनदेखा किया जा सकता है, लेकिन वास्तव में जिन्हें सामने कहना संभव नहीं है। तो आदर्श रूप से मॉडल (और इससे प्राप्त मोटिफ्स) इसके खिलाफ मजबूत है।


यह किस प्रकार का डेटा सेट है?
पीर

@felbo: मैं नहीं कर सकते स्पष्ट रूप से कहते हैं कि दुर्भाग्य लेकिन हार्डवेयर से अपने डेटा, नहीं वित्तीय / बिक्री / विज्ञापन / ..
dgorissen

ठीक है। वास्तव में, एक-हॉट एन्कोडिंग (मेरे उत्तर में) समस्याग्रस्त हो सकती है यदि आपके पास ~ 10k इवेंट प्रकार हैं। आप शायद word2vec की तर्ज पर कुछ कर सकते हैं ताकि आपके पास केवल ~ 300 इनपुट आयाम हों। इसी तरह, 10k विकल्पों में से अगले घटना प्रकार की भविष्यवाणी करना समस्याग्रस्त है। इसके बजाय, यह समस्या को फिर से समझने के लिए 100 विशेष प्रकार और फिर सभी 10 वीं सामान्य घटनाओं के लिए एक 'सामान्य घटना' वर्ग का अनुमान लगाएगा।
पीर

बस स्पष्ट होने के लिए: मुझे लगता है कि आपके पास इस तरह की समस्या के लिए टन डेटा है।
पीर

@felbo: ​​वास्तव में। बस एक सूचकांक का उपयोग करने के बारे में सोच रहा था, एक वेक्टर को शब्द 2vec जैसे एम्बेड करना सीख रहा था, या घटनाओं को आयामीता को कम करने के लिए कक्षाओं में समूहित करता था। भविष्यवाणी पक्ष पर भी इसी तरह सहमति व्यक्त की गई।
डेगोरिसन

जवाबों:


4

आपका डेटा टोकन के केवल अनुक्रम प्रतीत हो रहा है। एक LSTM ऑटेंकोडर बनाने की कोशिश करें और एनकोडर को आपके अनुक्रम के पहले भाग के कुछ निश्चित निरूपण और डिकोडर को शेष की भविष्यवाणी करने दें।

ये अभ्यावेदन आपके रूपांकन होंगे।

संदर्भ:

बहदानु, डी।, चो, के।, और बेंगियो, वाई। (2014)। संरेखित और अनुवाद करने के लिए संयुक्त रूप से सीखने से तंत्रिका मशीन अनुवाद। arXiv प्रीप्रिंट arXiv: 1409.0473।

श्रीवास्तव, एन।, मानसीमोव, ई।, और सलाखुद्दीनोव, आर। (2015)। LSTM का उपयोग करते हुए वीडियो अभ्यावेदन का अप्रस्तुत शिक्षण। arXiv प्रीप्रिंट arXiv: 1502.04681।


1

सबसे महत्वपूर्ण हिस्सा यह है कि आप वर्गीकरण समस्या को "वाक्यांश" कैसे देते हैं, जिसका अर्थ है कि आप इनपुट का प्रतिनिधित्व कैसे करते हैं और आप क्या आउटपुट करना चाहते हैं। यह देखते हुए कि आपके पास इतने अलग-अलग ईवेंट प्रकार हैं, जिन्हें आपको इनमें से एक को सीखना होगा। यह सीधे उदाहरण के लिए Keras में किया जा सकता है। आप इस उदाहरण को देख सकते हैंसीधे डेटा से एम्बेडिंग कैसे सीखें। एक अन्य दृष्टिकोण यह होगा कि पहले से ही एक अप्रचलित दृष्टिकोण जैसे शब्द 2vec का उपयोग करके एक एम्बेडिंग सीखें। हालाँकि, आपको अपनी ओर से अधिक काम करने की आवश्यकता है क्योंकि आपको एक प्रासंगिक कार्य और प्रशिक्षण की आवश्यकता होती है जो एम्बेडिंग उत्पन्न करता है। यह देखते हुए कि आपके पास पर्याप्त डेटा है, यह आसान है (हालांकि थोड़ा कम प्रभावी है) सीधे एम्बेड करना सीखना। आउटपुट के लिए मैं सभी विभिन्न प्रकार की घटनाओं की भविष्यवाणी नहीं करूंगा, लेकिन समस्या को संभव रखने के लिए केवल विशेष कार्यक्रम और "पृष्ठभूमि वर्ग"। यदि आप वास्तव में हर एक वर्ग की भविष्यवाणी करने में सक्षम होना चाहते हैं, तो आपको कुछ ट्रिक्स का उपयोग करने की आवश्यकता है (यह देखें कि word2vec यह कैसे करता है)।

घटनाओं के बीच के समय के बारे में। आप इसे अतिरिक्त आयाम के रूप में अपने LSTM में जोड़ सकते हैं (उदाहरण के लिए इसे Keras में कैसे करें) के लिए देखें। यह करना आसान होगा और LSTM को अस्थायी अंतर को ध्यान में रखने की अनुमति देगा।

मुझे नेटवर्क के लौकिक स्वरूप को "अनियंत्रित" करके रूपांकनों की कल्पना करने का कोई तरीका नहीं पता है। आप जेनरेटर नेटवर्क का उपयोग करके कुछ रूपांकनों को उत्पन्न करने में सक्षम हो सकते हैं, लेकिन इसकी व्याख्या करना मुश्किल होगा। रूपांकनों का पता लगाने का एक तरीका यह हो सकता है कि उदाहरण के तौर पर 20-100 लंबाई के गैर-विशेष आयोजनों के शीर्ष 100000 सबसे सामान्य अनुक्रमों को प्रशिक्षित मॉडल में इनपुट करें और अंतिम सॉफ्टमैक्स परत से संभाव्यता आउटपुट निकालें। इस तरह आप कुछ विशेष घटनाओं से जुड़े दृश्यों को खोज सकते हैं। हालाँकि, यह कहना मुश्किल है कि क्या यह आकृति दृष्टिकोण आपके डेटा को देखे बिना संभव / उपयोगी है।


केवल स्पष्ट करने के लिए। मूल पक्ष में, आप कच्चे डेटा को देखते हैं और किसी विशेष न्यूनतम लंबाई के सबसे आम क्रमों को निकालते हैं (या उन्हें उत्पन्न करने के लिए बार-बार आइटम सेट खनन का उपयोग करते हैं) और फिर देखते हैं कि विशेष घटना पूर्वानुमान अधिकतम कहां हैं? उस मामले में यह एक मानक वर्गीकरण समस्या नहीं के रूप में दृष्टिकोण करना आसान लगता है?
डेगोरिसन

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

1
कृपया मेरा अद्यतन उत्तर देखें। हां, मेरा मतलब है कि कच्चे आंकड़ों के आधार पर "विशेष घटना की भविष्यवाणी कहां है"। मुझे समझ में नहीं आ रहा है कि आप इसे मानक वर्गीकरण समस्या के रूप में देखने के बारे में क्या कहते हैं :)
पीर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.