Numenta Anomaly Benchmark पर Amazon का RCF एल्गोरिथम चल रहा है

मार्केटिंग एसोसिएट जोआन कुआ और सॉफ्टवेयर आर्किटेक्ट लुइज़ स्किंकमैन द्वारा लिखित

अंतिम गिरावट, हम AWS द्वारा प्रकाशित एक ब्लॉग पर आए, अमेज़न की क्लाउड कंप्यूटिंग सहायक कंपनी, जो कि विसंगति का पता लगाने के लिए Amazon Kinesis Analytics की घोषणा कर रही है, जो स्ट्रीमिंग डेटा में विसंगतियों की पहचान करने के लिए रैंडम कट फॉरेस्ट (RCF) एल्गोरिथ्म का उपयोग करती है।

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

एनएबी के ओपन सोर्स रिपॉजिटरी में वास्तविक दुनिया के स्रोतों की 50 से अधिक लेबल वाली डेटा स्ट्रीम हैं। विसंगति का पता लगाने के लिए आरसीएफ एल्गोरिथ्म का उपयोग करने के बारे में एडब्ल्यूएस के पेपर को पढ़ते हुए, हम यह देखकर सुखद आश्चर्यचकित थे कि लेखकों ने एनएबी के नमूना डेटासेट में से एक का उपयोग करते हुए एल्गोरिथ्म का प्रदर्शन किया, जिसमें न्यूयॉर्क शहर में छह महीने की टैक्सी सवार मात्रा शामिल थी।

जिज्ञासा से बाहर, हमने अपने इंजीनियरों में से एक लुइज़ सिहिंकमैन से पूछा कि आरसीएफ को एनएबी पर चलाना, यह देखने के लिए कि नया एल्गोरिथ्म अन्य एनोमली डिटेक्शन एल्गोरिदम की तुलना में कैसे स्कोर करेगा, जिसका हमने एनएबी का उपयोग करके मूल्यांकन किया है, जिसमें हमारे स्वयं के एचटीटीपी एल्गोरिदम शामिल हैं।

... और परिणाम में हैं

NAB पर परीक्षण किए गए 10 विसंगतियों का पता लगाने में अमेज़न का RCF # 5 में से # 5 पर आया। इनमें से अधिकांश विसंगति का पता लगाने वाले एल्गोरिदम हैं जो हमें खुले स्रोत में उपलब्ध हैं, जबकि कुछ 2016 एनएबी प्रतियोगिता में प्रवेश प्रस्तुत कर रहे थे।

इस बारे में बेहतर समझ पाने के लिए कि लुइज़ ने NAB पर RCF का मूल्यांकन कैसे किया, मैं उसके साथ बैठ गया और उससे प्रक्रिया के बारे में कुछ सवाल पूछे।

क्या आप आरसीएफ को एनएबी में एकीकृत करने के बारे में अधिक जानकारी दे सकते हैं?

NAB पर कस्टम एल्गोरिदम का परीक्षण करने के 3 अलग-अलग तरीके हैं:
1. NAB API का उपयोग करके एक कस्टम डिटेक्टर बनाएं
2. दहलीज अनुकूलन चरण से पहले NAB एनोमली स्कोर दें
3. एनएबी एनोमल डिटेक्ट्स दें

क्योंकि एल्गोरिथ्म पहले से ही AWS Kinesis Data Analytics में कार्यान्वित किया गया था, इसलिए मैंने विकल्प 2 को चुना जहाँ मैं सीधे AWS Kinesis पर NAB डेटा स्ट्रीम करूँगा और अंतर्निहित RANDOM_CUT_FOREST फ़ंक्शन का उपयोग करके विसंगतियों की गणना करूँगा।

इन परिणामों को प्राप्त करने के लिए एल्गोरिथ्म के लिए आपको कितना ट्विकिंग करना पड़ा?

मैंने विसंगति का पता लगाने के लिए AWS Kinesis Data Analytics डिफ़ॉल्ट टेम्पलेट का उपयोग किया है; विसंगति स्कोर को सामान्य करने के लिए एकमात्र ट्वीक था।

क्या आपने अलग-अलग परिणाम प्राप्त करने के लिए एल्गोरिदम के मापदंडों को बदलने की कोशिश की है?

मैंने "shingleSize" और "numberOfTrees" मापदंडों के लिए अलग-अलग मानों का उपयोग करने की कोशिश की है और मैंने जो सर्वश्रेष्ठ स्कोर प्राप्त किए हैं, वे परिणाम प्रकाशित करते हैं, जो वास्तव में RANDOM_CUT_FOREST फ़ंक्शन के लिए डिफ़ॉल्ट मान थे। परिणाम दोहराने में आसान होते हैं और पैरामीटर बदलना आसान होता है, इसलिए यह बहुत अच्छा होगा यदि ओपन सोर्स समुदाय में कोई भी अलग-अलग मापदंडों की कोशिश कर सकता है और मुझे बता सकता है कि क्या स्कोर में सुधार हुआ है।

कोई और कैसे इन परिणामों को दोहरा सकता है?

मैंने रेखांकित किया है कि आप सात चरणों में ऐसा कैसे कर सकते हैं। आप इन निर्देशों को हमारे NAB रैंडम कट फॉरेस्ट रिपॉजिटरी में भी पा सकते हैं।

1. क्लोन NAB भंडार
यह आदेश रिपॉजिटरी को क्लोन करेगा:

git clone https://github.com/numenta/NAB.git

2. अपने AWS क्रेडेंशियल को कॉन्फ़िगर करें
 AWS कमांड लाइन इंटरफेस (CLI) टूल का उपयोग करें, और इस कमांड को दर्ज करें:

aws कॉन्फ़िगर

3. NAB परिणाम फ़ोल्डर संरचना बनाएँ
यह कमांड कॉन्‍फ़िगरेशन / थ्रेशोल्‍ड्स.जॉन्‍स फाइल में जरूरी डायरेक्‍ट्री और एंट्री बनाएगी:

अजगर स्क्रिप्ट / create_new_detector.py --detector randomCutForest

4. AWS Kinesis Analytics एप्लिकेशन बनाएं
यह कमांड इनपुट स्ट्रीम और आउटपुट विसंगति स्कोर NAB से आउटपुट स्ट्रीम के लिए उपयुक्त NAB डेटा प्राप्त करने के लिए तैयार एक नए AWS Kinesis Analytics एप्लिकेशन को बनाएगा और कॉन्फ़िगर करेगा:

अजगर नाब / डिटेक्टर / random_cut_forest / random_cut_forest.py --create

5. सभी फाइलों को स्ट्रीम करें
सभी NAB डेटा फ़ाइलों को स्ट्रीम करने के लिए निम्नलिखित कमांड का उपयोग करें:

अजगर nab / डिटेक्टर / random_cut_forest / random_cut_forest.py --stream

6. सफाई करें
मूल्यांकन के अंत में, यह अनुशंसा की जाती है कि आप विसंगतियों की गणना के लिए उपयोग किए जाने वाले सभी संसाधनों को हटा दें। इस स्क्रिप्ट द्वारा बनाए गए सभी AWS संसाधनों को हटाने के लिए निम्नलिखित कमांड का उपयोग करें:

अजगर नाब / डिटेक्टर / random_cut_forest / random_cut_forest.py --delete

7. एनएबी स्कोर की गणना
एक बार जब आप सभी NAB डेटा के लिए विसंगति स्कोर की गणना कर लेते हैं, तो आप NAB स्कोर की गणना करने के लिए NAB के मानक कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, अपने एल्गोरिथ्म की सीमाओं के लिए विसंगति स्कोर सीमा का अनुकूलन करने, स्कोरिंग एल्गोरिथ्म चलाने, और अपने अंतिम एनएबी स्कोर प्राप्त करने के लिए कच्चे स्कोर को सामान्य करने के लिए एनएबी की मूल निर्देशिका से निम्न कमांड का उपयोग करें।

अजगर रेंकडोम -d randomCutForest --optimize --score --normalize

यदि आपका कोई प्रश्न या टिप्पणी है या आप अपना परिणाम साझा करना चाहते हैं, तो नीचे एक टिप्पणी छोड़ने या HTM फोरम के NAB अनुभाग पर एक धागा शुरू करने में संकोच न करें।

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

मूल रूप से 29 जून, 2018 को numenta.com पर प्रकाशित हुआ।