क्या 1D सिग्नल को वर्गीकृत करने के लिए CNN का उपयोग करना एक अच्छा विचार है?


20

मैं स्लीप स्टेज के वर्गीकरण पर काम कर रहा हूं। मैंने इस विषय के बारे में कुछ शोध लेख पढ़े उनमें से कई में एसवीएम या पहनावा पद्धति का उपयोग किया गया। क्या एक आयामी ईईजी सिग्नल को वर्गीकृत करने के लिए दृढ़ तंत्रिका नेटवर्क का उपयोग करना एक अच्छा विचार है?
मैं इस तरह के काम के लिए नया हूं। मुझे क्षमा करें अगर मैं कुछ भी गलत पूछूं?


1 डी सिग्नल को फ्रेम में सिग्नल को तोड़ने और प्रत्येक फ्रेम के एफएफटी को ले कर 2 डी सिग्नल में तब्दील किया जा सकता है। ऑडियो के लिए यह काफी असामान्य है।
MSalters

जवाबों:


23

मुझे लगता है कि 1 डी सिग्नल से आपका मतलब टाइम-सीरीज़ डेटा से है, जहाँ आप मानों के बीच लौकिक निर्भरता मानते हैं। ऐसे मामलों में कंफ्यूजनल न्यूरल नेटवर्क (CNN) संभावित दृष्टिकोणों में से एक है। इस तरह के डेटा के लिए सबसे लोकप्रिय तंत्रिका नेटवर्क आवर्तक तंत्रिका नेटवर्क (आरएनएन) का उपयोग करना है, लेकिन आप वैकल्पिक रूप से ब्रैडबरी अल (2016) द्वारा चर्चा के अनुसार सीएनएन, या हाइब्रिड दृष्टिकोण (अर्ध-आवर्तक तंत्रिका नेटवर्क, क्यूआरएनएन) का उपयोग कर सकते हैं। नीचे उनके चित्र पर चित्रित किया गया है। अन्य दृष्टिकोण भी, जैसे वासवानी एट अल (2017) द्वारा वर्णित ट्रांसफार्मर नेटवर्क में, अकेले ध्यान का उपयोग करना , जहां समय की जानकारी फूरियर श्रृंखला सुविधाओं के माध्यम से पारित की जाती है

यहाँ छवि विवरण दर्ज करें

आरएनएन के साथ , आप एक सेल का उपयोग करेंगे जो इनपुट के रूप में पिछले छिपे हुए राज्य और वर्तमान इनपुट मूल्य के रूप में लेता है, आउटपुट और एक अन्य छिपे हुए राज्य को वापस करने के लिए, इसलिए जानकारी छिपे हुए राज्यों से बहती है । सीएनएन के साथ, आप कुछ चौड़ाई की स्लाइडिंग विंडो का उपयोग करेंगे , जो डेटा में कुछ (सीखे हुए) पैटर्न को देखेगा, और ऐसी खिड़कियों को एक-दूसरे के ऊपर ढेर कर देगा, ताकि उच्च-स्तरीय विंडो निचले स्तर के पैटर्न की तलाश करेंगी पैटर्न। ऐसी स्लाइडिंग विंडो का उपयोग डेटा के भीतर दोहराई जाने वाली पैटर्न (जैसे मौसमी पैटर्न) जैसी चीजों को खोजने के लिए सहायक हो सकता है। QRNN लेयर्स दोनों एप्रोच को मिलाती हैं। वास्तव में, CNN और QRNN आर्किटेक्चर के फायदों में से एक यह है कि वे तेज होते हैं फिर RNN


12

1D सिग्नल को वर्गीकृत करने के लिए आप निश्चित रूप से CNN का उपयोग कर सकते हैं। चूंकि आप स्लीप स्टेज वर्गीकरण में रुचि रखते हैं इसलिए इस पेपर को देखें । इसका एक डीप न्यूरल नेटवर्क है जिसे डीपसेलेनेट कहा जाता है, और स्लीप चरणों में ईईजी संकेतों को वर्गीकृत करने के लिए 1D कंफ्यूशनल और एलएसटीएम परतों के संयोजन का उपयोग करता है।

यहाँ वास्तुकला है:

DeepSleepNet

नेटवर्क के दो भाग हैं:

  • प्रतिनिधि सीखने की परतें: इसमें दो समानांतर नेटवर्क होते हैं। दो नेटवर्क के बीच मुख्य अंतर कर्नेल आकार और अधिकतम-पूलिंग विंडो आकार है। बाईं ओर कर्नेल आकार = (जहां सिग्नल का नमूना दर है) का उपयोग करता है, जबकि दाएं कर्नेल आकार = का उपयोग करता है । इसके पीछे अंतर्ज्ञान यह है कि एक नेटवर्क "ठीक" (या उच्च आवृत्ति) सुविधाओं को सीखने की कोशिश करता है, और दूसरा "मोटे" (या कम आवृत्ति) सुविधाओं को सीखने की कोशिश करता है।एफरों/2एफरोंएफरों×4
  • अनुक्रमिक सीखने की परतें: अवशिष्ट परतों से एम्बेडिंग (या सीखी गई विशेषताएं) को एम्बेड किया जाता है और एम्बेडिंग के बीच लौकिक निर्भरता सीखने के लिए LSTM परतों में खिलाया जाता है।

अंत में स्लीप स्टेज के अनुरूप एक-से-पांच कक्षाओं में समय श्रृंखला को वर्गीकृत करने के लिए 5-तरफा सॉफ्टमैक्स लेयर है।


4

मैं लंबे अनुक्रमों को संसाधित करने के लिए एक स्टैक्ड हाइब्रिड दृष्टिकोण (CNN + RNN) के उपयोग पर जोर देना चाहता हूं :

  • जैसा कि आप जानते हैं, 1 डी सीएनएन टाइमस्टेप के आदेश के प्रति संवेदनशील नहीं हैं (स्थानीय स्तर से आगे नहीं); बेशक, एक दूसरे के ऊपर बहुत सारे कनवल्शन और पूलिंग लेयर्स को स्टैक करके, अंतिम लेयर्स मूल इनपुट के लंबे उप-अनुक्रमों का निरीक्षण करने में सक्षम हैं। हालाँकि, यह दीर्घकालिक निर्भरता के मॉडल के लिए एक प्रभावी दृष्टिकोण नहीं हो सकता है। हालांकि, RNN की तुलना में CNN बहुत तेज़ हैं।

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

इसलिए, सीएनएन और आरएनएन को इस तरह से संयोजित करने का एक प्रभावी तरीका हो सकता है: पहले हम इनपुट की गतिशीलता को कम करने के लिए कनवल्शन और पूलिंग लेयर्स का उपयोग करते हैं। यह हमें उच्च-स्तरीय विशेषताओं के साथ मूल इनपुट के बजाय संकुचित प्रतिनिधित्व प्रदान करेगा। फिर हम आगे की प्रक्रिया के लिए RNN को इस छोटे 1D अनुक्रम को खिला सकते हैं। इसलिए हम एक ही समय में सीएनएन की गति के साथ-साथ आरएनएन की प्रतिनिधित्व क्षमता का लाभ उठा रहे हैं। हालांकि, किसी भी अन्य विधि की तरह, आपको अपने विशिष्ट उपयोग के मामले और डेटासेट पर यह पता लगाने के लिए प्रयोग करना चाहिए कि यह प्रभावी है या नहीं।

यहाँ इस विधि का एक मोटा चित्रण है:

--------------------------
-                        -
-   long 1D sequence     -
-                        -
--------------------------
            |
            |
            v
==========================
=                        =
=  Conv + Pooling layers =
=                        =
==========================
            |
            |
            v
---------------------------
-                         -
- Shorter representations -
-     (higher-level       -
-      CNN features)      -
-                         -
---------------------------
            |
            |
            v
===========================
=                         = 
=  (stack of) RNN layers  =
=                         =
===========================
            |
            |
            v
===============================
=                             =
= classifier, regressor, etc. =
=                             =
===============================

4

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

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.