طبقه بندی سری زمانی (شکل 1) یک شکوفه نسبی دیر هنگام در زمینه یادگیری ماشین است. با این حال ، در سالهای اخیر افزایش واقعی داده ها ، الگوریتم ها و کد منبع باز وجود داشته است که می تواند برای مقابله با مشکلات به روش های جدید و بهتر استفاده شود.
این پست وبلاگ با هدف ارائه یک نمای کلی از این زمینه انجام شده است. هدف من این است که حتی بدون سابقه در یادگیری ماشین ، باید برای خواننده علاقه مند دنبال شود. امیدوارم که این امر به شما خوانندگان یک مرور کلی و راه های بیشتر برای اکتشافات دهد.

عکس. 1 . مثال طبقه بندی سری زمانی. نمونه هایی از مجموعه داده معیار معیار استوانه مصنوعی (CBF) به طور گسترده استفاده می شود [1]. هر سری زمانی متعلق به یکی از سه کلاس است: سیلندرها ، زنگ ها و قیف ها. اقتباس از [2] با اجازه پاتریک شفر.
نمونه هایی از سریال های زمانی و طبقه بندی
یک سری زمانی فقط یک توالی (یک بعدی) یا چندین توالی (چند بعدی) به صورت موقت از مقادیر عددی است. آنها همه جا هستند زیرا هر چیزی که با گذشت زمان یا در یک دنباله اندازه گیری می کنید ، یک سری زمانی است. مثلا:
- درجه حرارت در استکهلم هر روز در طول سال 2020 (یک سری زمانی یک بعدی).
- سوابق فروش
- ویدئو (یک سری زمانی چند بعدی که در آن هر تصویر با یک نقطه زمانی مطابقت دارد. توجه داشته باشید که در اینجا داده ها در ابعاد پیکسل نیز سفارش داده می شود).
- ضبط های صوتی.
- اطلاعات اینترنتی و سایر داده های سنسور.
- ECG/EEG و سایر سیگنال های پزشکی.
- داده های حمل و نقل (به عنوان مثال هنگام مطالعه احتقان جاده).
- منحنی رشد کودک (در اینجا نقاط زمانی به همان اندازه فاصله ندارند ، بنابراین این امر تقاضاهای ویژه ای را بر روی الگوریتم ها ایجاد می کند).
انواع دیگر داده ها همچنین می توانند به عنوان/به سری زمانی ، مانند متن نوشتاری ، که در اصل یک سری زمانی است ، اما در جایی که موجودات عددی نیستند ، مشاهده شوند. زیبایی این امر این است که این امکان را برای تجزیه و تحلیل سری های زمانی با استفاده از مدل های زبان و تجزیه و تحلیل زبان با استفاده از مدل های سری زمانی فراهم می کند.
مشکلات طبقه بندی سری زمانی در همه جا وجود دارد ، بنابراین دشوار است بدانید که از کجا شروع کنید ، اما موارد زیر برخی از نمونه های تصادفی از ساخت طبقه بندی از داده های سری زمانی است:
- طبقه بندی از آنها ضبط صدا است
- طبقه بندی ECG را به صورت عادی طبقه بندی کنید یا نوع ناهنجاری را ارائه دهید.
- نظارت: از یک فیلم ، مسیر یک فرد را ضبط کنید ، سپس آنچه را که انجام می دهد طبقه بندی کنید.
- اینترنت از این موارد: طبقه بندی کنید که آیا دستگاه آشپزخانه نقص دارد یا خیر.
- تشخیص گفتار
- طبقه بندی تصویربرداری مغز یا داده های بیان ژنتیکی
شما می توانید خودتان تصور کنید که برنامه های الگوریتم های خوب اساساً بدون محدودیت هستند.
طبقه بندی سری زمانی با یادگیری ماشین چیست؟
در اصل ، طبقه بندی سری زمانی نوعی مشکل یادگیری ماشین نظارت شده است. مشکلات تحت نظارت روش زیر را دارند: شما مجموعه ای از سری های زمانی را دریافت می کنید که هر کدام دارای برچسب کلاس هستند. شما به طور معمول سری زمانی را به سه گروه ، داده های آموزش ، داده های اعتبار سنجی و داده های آزمون تقسیم می کنید. شما تعدادی از الگوریتم ها/مدل ها را در سری زمانی در داده های آموزش آموزش می دهید ، مشاهده می کنید که کدام الگوریتم بهترین ها را در داده های اعتبار سنجی انجام می دهد و آن را انتخاب می کند. سرانجام ، شما از داده های آزمون برای تعیین عملکرد الگوریتم انتخاب شده استفاده می کنید.
تفاوت در بسیاری از مشکلات طبقه بندی در یادگیری ماشین در این است که داده ها در طول زمان سفارش داده می شوند و به همین دلیل الگوریتم خوبی نیاز به سوء استفاده از این خاصیت داده ها دارد.
نباید طبقه بندی سری زمانی را با پیش بینی اشتباه کرد. هدف متفاوت است و از این رو الگوریتم ها نیز هستند. پیش بینی با هدف پیش بینی ارزشهای آینده بعدی ، و به همین ترتیب اغلب به پایان یک سری زمانی متکی بیشتر است. نیازی به مقایسه سری های زمانی مختلف با یکدیگر نیست. بلکه باید در داده هایی که پیش بینی کننده آینده (فوری) هستند ، الگوهای مکرر پیدا کند. از طرف دیگر ، طبقه بندی باید در داده هایی که بین کلاسهای مختلف متفاوت است ، برای تعیین کلاس سری زمانی در دست پیدا کند.
بنابراین برخی از الگوریتم های مورد استفاده برای طبقه بندی سری زمانی چیست؟
پیچ و تاب زمان پویا ، یک الگوریتم معیار
حداقل برای یک دهه ، تکنیکی به نام Dynamic Time Warping (DTW) همراه با همسایه 1 ساله (1-NN) یک معیار برای سایر الگوریتم های طبقه بندی سری زمانی برای ضرب و شتم است [3]. 1-Nearest همسایه (شکل 2) یک تکنیک ساده است که در آن شما یک مجموعه آموزشی از سری زمانی دارید [4]. سپس با یافتن سری زمانی در داده های آموزشی که بیشتر شبیه به هم هستند ، یک سری زمانی ورودی جدید را طبقه بندی می کنید و سری زمانی جدید را به همان کلاس با آن اختصاص می دهید. همچنین می توانید همسایگان K-Nearest داشته باشید ، جایی که K مشابه K مشابه را پیدا می کنید و رایج ترین کلاس را در بین آن ها انتخاب می کنید.
شکل 2. 1-Nearest همسایه. بر اساس مجموعه داده های دو کلاس (آبی و زرد) ، یک DataPoint جدید (دایره) طبقه بندی می شود. با یافتن نزدیکترین DataPoint ، DataPoint جدید را می توان به عنوان متعلق به کلاس زرد طبقه بندی کرد.
DTW [5] برای محاسبه فاصله بین دو سری زمانی استفاده می شود (شکل 3). بدون فاصله 1-NN نمی تواند تعیین کند که کدام سری زمانی نزدیکترین است. ساده ترین راه این است که فقط فاصله بین هر نقطه در سری زمانی را بگیرید. با این حال ، لزوماً مشخص نیست که کدام نقاط را باید در سری دو زمانی مقایسه کرد. به عنوان مثال ، اگر دو سری زمانی یکسان فقط کمی جابجا شوند ، این امر به مسافت بزرگی منجر می شود. DTW این مسئله را با جفت کردن نقاط زمانی مختلف با ترسیم خطوط بین آنها به گونه ای حل می کند که هر نقطه زمانی در یک سری باید به یک نقطه زمانی در سری دیگر وصل شود و دو خط هرگز نباید از آن عبور کنند (شکل 3). فاصله مجموع تفاوت بین نقاط زمانی زوج است. DTW خطوط خاکستری را به روشی انتخاب می کند که این فاصله را به حداقل می رساند.
شکل 3. DTW. نقاط در دو سری زمانی به روشی متصل می شوند تا فاصله بین دو سری زمانی (طول ترکیبی از تمام خطوط خاکستری) به حداقل برسد. همانطور که از خطوط خاکستری که در آن کج شده است ، مشاهده می شود ، نیمه دوم سری زمانی آبی به سمت راست قسمت دوم سری زمان قرمز منتقل می شود. DTW قادر به اتصال نقاط مربوط به دو سری برای محاسبه حداقل فاصله است. اقتباس از [6] با اجازه برایان ایوانا.
فواید یک مدل یادگیری ماشین
DTW+1-NN یک مدل یادگیری ماشین را ایجاد نمی کند که باید از چه سریال های زمانی برای یک کلاس متفاوت به نظر برسد. منظور من این است که هیچ مدلی وجود ندارد که نمایانگر داخلی جهان باشد ، هیچ دانشی در هر مدل مدل ذخیره نشده است. در عوض ، به سادگی به نتیجه گیری می رسد که به دنبال یک روش گام به گام است که در آن سری های جدید را با سری در داده های آموزش مقایسه می کند. فایده این است که هیچ آموزش مدل لازم نیست. اما اشکالات مختلفی وجود دارد.
اولا ، طبقه بندی زمان زیادی را می طلبد. برای هر سری زمانی جدید ، باید فاصله را تا تمام سری زمانی در داده های آموزش محاسبه کنید. DTW به خودی خود یک مشکل بهینه سازی است ، به این معنی که محاسبه فاصله نسبتاً کند است و برای یک مجموعه داده بزرگ متشکل از میلیون ها سری زمان داده باید بارها و بارها تکرار شود. از این رو ، این مقیاس فراتر از مشکلات نسبتاً کوچک نیست.
ثانیا ، یک مدل یادگیری ماشین راهی برای گرفتن دانش ما در مورد داده ها به روشی پارسا است. برای یک قیاس در زندگی واقعی ، داشتن یک مدل شبیه به داشتن یک متخصص است. این متخصص فقط می تواند به سریال های جدید شما نگاه کند و بگوید کدام کلاس متعلق به آن است. آموزش یک متخصص انسانی مدت زیادی طول می کشد ، اما پس از انجام این کار ، طبقه بندی سریع است. از طرف دیگر ، DTW+1-NN مانند کار با غیر متخصص است که دستور العمل نحوه عبور داده ها و تعیین کلاس را داده است.
داشتن یک بار دانش خود را در یک مدل یادگیری ماشین ضبط کرده است به این معنی است که می توانید از این دانش در بسیاری از موقعیت ها که مشابه هستند اما یکسان نیستند ، تکنیکی به نام یادگیری انتقال استفاده کنید. به عنوان مثال ، مدلی را در نظر بگیرید که به بسیاری از آهنگ های پرنده نگاه کرده است تا بتواند بین بلبل ها و قناری ها جدا شود. برای انجام این کار ، مجبور شد بسیاری از ویژگی های آهنگ های پرنده را به طور کلی بیاموزد. اگر اکنون می خواستیم بین یک رابین و یک گنجشک جدا شویم ، می توانیم از مدل قبلی خود استفاده کنیم و فقط از آن استفاده کنیم تا تفاوت این دو گونه را بشنویم. این امر بسیار ساده تر از آموزش یک مدل جدید خواهد بود ، زیرا مدل قدیمی قبلاً گوش خوبی برای آهنگ های پرنده دارد ، به طور کلی به داده های آموزش کمتری نیاز خواهد بود.
ممکن است فکر کنید که یادگیری انتقال فقط در موارد بدیهی مانند موارد فوق مفید خواهد بود. دوباره فکر کنیدطبقه بندی تصویر به دلیل در دسترس بودن مجموعه داده های معیار عظیم میلیون ها تصویر همراه با مسابقات که باعث توسعه الگوریتم ها برای ضرب و شتم سوابق قبلی در آن مجموعه داده ها شده است ، موفقیت چشمگیری بوده است [7 ، 8 ، 9]. محققان مدتی است که با استفاده از تکنیک هایی مانند زمینه های زاویه ای گرامی ، سری های زمانی یک بعدی را به تصاویر دو بعدی تبدیل کرده اند و قادر به طبقه بندی این تصاویر سری زمانی با موفقیت هستند [10]. به این فکر کنید که چقدر وحشی است! این شبکه در حال مطالعه عکس های اتومبیل و هواپیما است و به نوعی چیز مفیدی را برای طبقه بندی آهنگ های پرنده یاد گرفته است. وقتی برای اولین بار شنیدم که یادگیری می تواند آن را منتقل کند ، من فقط منفجر شدم. دلیل این کار این است که بین تصاویر سری زمانی و تصاویر واقعی که برای اولین بار در شبکه آموزش داده شده است ، در برخی از سطوح شباهت وجود دارد.
مثال فوق از جنبه دیگری نیز جالب است. ما یک مدل تصویر 2 بعدی داریم که در مقایسه با یک مدل سری زمانی 1-D ساخته شده بهینه است. با این حال ، از آنجا که مدل تصویر داده های آموزشی بسیار بیشتری داشته است ، عملکرد بهتری دارد. این دسته کوچک موسیقی جاز مدل است که عملکرد را تعیین می کند ، نه مدل در انزوا.
تحولات اخیر / رویکردهای دیگر
در دسترس بودن داده ها
برای سریال های زمانی ، یک مخزن مجموعه داده هایی به نام UCR/UEA [1 ، 11] (از دانشگاه دانشگاه کالیفرنیا ، ریورساید و دانشگاه شرق آنگلیا) وجود دارد. این مجموعه طیف گسترده ای از سری زمانی را نشان می دهد و تمام الگوریتم ها در برابر آن معیار هستند. به این ترتیب در تعیین عملکرد نسبی الگوریتم های مختلف بسیار مفید است. در مقایسه با مخازن معیار مربوطه برای تصاویر ، متن و غیره ، از داشتن بسیار کوچکتر ، فقط با سفارش 100 مجموعه داده و با بزرگترین حاوی کمتر از 10000 نمونه رنج می برد. به عنوان مثال ، برای متن ، می توانید کل ویکی پدیا را خیلی سریع بارگیری کنید. این فقدان مقایسه ای داده ها مانع توسعه این زمینه می شود. با این حال ، این مخزن در حال رشد و اضافه شدن هر چند سال است (اخیراً در سال 2018) ، که به نفع تحقیقات است.
شاید به دلیل کمبود داده های نسبی ، ضرب و شتم الگوریتم های جدید DTW+1-NN دشوار بوده است ، زیرا مدل های پیچیده تر برای آموزش تمام پارامترها به داده های بیشتری نیاز دارند. در زیر برخی از رویکردهایی را که بهتر از DTW+1-NN عمل کرده اند ، شرح می دهم.
شیاطین
یک تکنیک استفاده از shapelets است [12]. یک شاپلت یک سری زمانی کوتاه است که انتخاب شده است زیرا بسیار نشانگر یک کلاس است (شکل 4). به عنوان مثال ، این می تواند یک الگوی الکتریکی خاص باشد که فقط توسط اجاق های مایکروویو ساطع می شود و به همین ترتیب می توان هنگام طبقه بندی لوازم خانگی استفاده کرد. Shapelets با DTW متفاوت است زیرا آنها فقط روی بخش هایی از سری زمانی تمرکز می کنند. هنگامی که شما یک سری زمانی را از طریق یک الگوریتم شاپلت می گذرانید ، خروجی حداقل فاصله بین شاپلت و تمام دنبالهای سری زمانی است (این تبدیل به یک تغییر شکل نامیده می شود). سپس این داده ها می توانند برای آموزش الگوریتم طبقه بندی ، به عنوان مثال استفاده شوند. 1-NN یا یک مدل یادگیری ماشین. در [13] یک گروه (به توضیح زیر مراجعه کنید) از طبقه بندی کننده ها بر اساس داده های تبدیل شده به شکل ، دومین بهترین در مجموعه داده UCR/UEA از همه الگوریتم های آزمایش شده بود.
شکل 4. Shapelets قطعات کوچکی از سری زمانی است که با یک کلاس همراه است. فاصله بین سری زمانی (آبی) و شاپلت (قرمز) کوتاهترین فاصله بین شاپلت و هر بخشی از سری زمانی است (در اینجا توسط نقاط نشان داده شده است). گرفته شده از [14] با اجازه الکساندرا آمیدون.
مشکل اصلی هنگام استفاده از shapelets این است که می توان دانست که از چه شپکت هایی استفاده می شود. یک احتمال این است که به صورت دستی مجموعه ای از شکل ها را تهیه کنید ، اما این می تواند بسیار دشوار و وقت گیر باشد. یک راه حل بهتر ، در صورت امکان ، انتخاب خودکار Shapelets است. راه انجام این کار بهترین زمینه ، یک زمینه فعال تحقیق برای مشکلی است که به دلیل تعداد زیادی از شکل های احتمالی ممکن است کاملاً مشکل باشد (به [15] ، بخش VI و [13] برای یک مرور کلی خوب مراجعه کنید).
مشکل دیگر پیچیدگی زمان بسیار بد است (چگونه مقیاس زمان اجرای با داده ها): o (n 2 l 4) ، که در آن n تعداد نمونه های آموزش و l طول shapelet است [13]. این بدان معنی است که دو برابر شدن داده های آموزش منجر به کندی 4 برابر می شود و دو برابر شدن طول لرزش منجر به کندی 16 برابر می شود.
مجموعه های مدل
رویکرد دیگر ایجاد مجموعه های مدل است."مجموعه ای از مجموعه های مبتنی بر تحول" (COTE) [16] از سال 2015 و ساختار Hive Development آن از سال 2016 [17] مجموعه هایی هستند (مجموعه ها ، در زیر را ببینید) که شامل بسیاری از مدل های مختلف است. Cote موفق به افزایش دقت با 8 ٪ در مجموعه داده های UCR/UEA در مقابل DTW+1-NN [13] شد ، که بهترین الگوریتم های آزمایش شده بود. پس از آن ، Hive-Cote به طور قابل توجهی بهتر از Cote است و بهترین الگوریتم تا به امروز است که یک شبکه عصبی نیست.
یک گروه مجموعه ای از مدل ها است که هر کدام دارای طبقه بندی خاص خود هستند ، که از آن رایج ترین آنها را انتخاب می کنید. اگر مدل ها از دقت کافی برخوردار باشند و خطاهایی که هر مدل ایجاد می کند متفاوت است ، این خوب کار می کند. به عنوان مثال ، داشتن سه مدل غیر مرتبط با دقت 90 ٪ ، برای یک سری زمانی معین ، یک احتمال یک مدل 0. 1*0. 9*0. 9 = 0. 081 وجود دارد ، یک پاسخ اشتباه ، 0. 1*0. 1*0. 9 = 0. 009 شانس دو مدل ارائه می دهدپاسخ اشتباه و احتمال سه مدل پاسخ اشتباه 0. 1*0. 1*0. 1 = 0. 001. با رای گیری اکثریت ، این گروه فقط در دو مورد دوم پاسخ اشتباه می دهد ، که نمایانگر 0. 009 + 0. 001 = 0. 01 = 1 ٪ است. بنابراین ما دقت این گروه را به 99 ٪ در مقابل 90 ٪ مدل واحد افزایش داده ایم.
یک عامل مهم برای یک گروه ، درجه ای است که الگوریتم ها با هم مرتبط نیستند (در مکان های مختلف خطایی ایجاد می کنند). اگر همه الگوریتم ها کاملاً با هم ارتباط داشته باشند ، نتایج یکسان را تولید می کنند و بنابراین این مجموعه با الگوریتم های فردی دقت می کند. نویسندگان COTE خاطرنشان كردند كه چندین مورد از 35 الگوریتم استفاده شده تغییرات جزئی در همان تیم (به عنوان مثال 50 ٪ در زمینه همبستگی خودکار و طیف كار می كنند). Hive-Cote سعی کرد با ایجاد یک سلسله مراتب به این موضوع بپردازد که به موجب آن همه الگوریتم ها برای اولین بار بر اساس نوع (مبتنی بر DTW ، مبتنی بر فرهنگ لغت و غیره) گروه بندی شدند. هر گروه اصلی ابتدا طبقه بندی مشترک تولید می کرد و سپس به طبقه بندی گروه وارد شد. به این ترتیب آنها توانستند از این گروه که توسط یک گروه از الگوریتم های همبسته تحت سلطه قرار گرفته است ، با نتیجه عملکرد بهبود یافته خودداری کنند.
بزرگترین مشکل Cote و Hive-Cote این است که چندین مدل به تبدیل شاپلت تکیه می کنند و از این رو از پیچیدگی زمان بسیار بد رنج می برند ، به این معنی که آنها برای اجرای یک مجموعه داده بزرگ سنین می گیرند [13]. به همین دلیل ، جامعه به دنبال گزینه های سریعتر است. یک گروه دیگر ، رئیس TS ، اگرچه از دقت بالاتری نسبت به سمپت خمیده برخوردار نیست ، اما چنین انتخابی است [18].
با وجود بسیاری از مدل ها ، درک این که چرا مدل ها نحوه انجام آنها را طبقه بندی می کنند نیز بسیار دشوار است. تفسیر فوق العاده مهم است. به عنوان مثال ، این کافی نیست که یک پزشک بگوید که شما به کلاس افرادی تعلق دارید که در صورت بروز ویروس کرونا ، احتمال بقا کمی وجود دارد و بنابراین ما به شما معالجه نمی کنیم.
رویکردهای مبتنی بر فرهنگ لغت
سومین مجموعه محبوب تکنیک ها به نام فرهنگ لغت نامیده می شود [13]. در اصل ، فرهنگ لغت لیستی از کلمات است که در آن شما یک کلمه را برای بازیابی چیزی جستجو می کنید ، به عنوان مثال. توضیحی در مورد کلمه یا تعداد وقایع کلمه در یک متن. به عنوان مثال می توان با مقایسه وقایع کلمات مختلف ، متنی را به عنوان متعلق به یک نوع زمینه (به عنوان مثال ورزش در مقابل قانون) طبقه بندی کرد.
اما چگونه این امر در مورد طبقه بندی سری زمانی اعمال می شود؟خوب ، روش های مختلفی برای ساخت فرهنگ لغت برای سریال های زمانی وجود دارد. می توان از روش shapelet در بالا [12 ، 15] استفاده کرد تا تعداد بار در یک سری زمانی را که در آن یک مسابقه بین شاپلت و سری زمانی وجود دارد ، شمارش کند. در چنین فرهنگ لغت ، شاپلت جای کلمه را می گیرد و آنچه را که بازیابی می کنید ، تعداد مسابقات شاپل برای سری زمانی است. الگوریتمی به نام Rocket [19] در حال حاضر جزو الگوریتم های سری زمانی برتر است و کاری مشابه انجام می دهد. این تعداد زیادی هسته تصادفی (بسیار شبیه به Shapelets) است و آنها برای هر هسته درصد درصد را محاسبه می کنند. طبقه بندی ساده (رگرسیون لجستیک یا ریج) در فرهنگ لغت آموزش داده می شود.
دیگری الگوریتم کیسه های الگوی (BOP) است [20]. این در واقع در برابر DTW+1-NN [13] تحت تأثیر قرار می گیرد ، اما من آن را در اینجا گنجانده ام زیرا این رویکرد را به خوبی نشان می دهد. این الگوریتم مانند الگوریتم Bag-of-Words که برای داده های متن استفاده می شود ، تعداد دفعاتی را که یک کلمه رخ می دهد شمارش می کند ، فقط این بار کلمات از اعداد با استفاده از تکنیکی به نام تقریب نمادین (SAX) ایجاد می شوند [21]. کمی ساده ، ابتدا سری زمانی را به تعدادی از بخش های زمانی بزرگتر تقسیم کرده و عادی سازی می کنید. بعد فواصل مقدار سیگنال (y) را تعریف می کنید و نامه ای را به هر یک اختصاص می دهید (مثلاً الف: 0. 3). سرانجام هر بخش را به قطعات کوچک برش می دهید ، میانگین را برای هر قطعه محاسبه کرده و آن را به یکی از حروف ترجمه می کنید (A ، B ، C در این مورد). به این ترتیب هر بخش از یک رشته نامه تشکیل شده است ، به عنوان مثالABBCسپس می توانید تعداد وقایع هر رشته را در یک فرهنگ لغت خلاصه کنید ، که می تواند برای طبقه بندی استفاده شود.
سایر رویکردهای فرهنگ لغت موفق تر بوده اند ، به ویژه الگوریتمی به نام رئیس [2]. این کار به طور مشابه با BOP کار می کند ، اما به جای ترجمه سیگنال اصلی نرمال شده به کلمات ، با تبدیل سیگنال به فضای فرکانس ، فیلتر کردن آن و ترجمه آن به کلمات با استفاده از دو الگوریتم به نام SFA و MCB ، آن را تبدیل کرده و آن را به کلمات تبدیل می کند. این اثر کاهش نویز را دارد. علاوه بر این ، یک مجموعه از مدل های مختلف ایجاد می کند که با توجه به میزان فیلتر کم گذر و طول کلمه متفاوت است. در مقایسه بین بسیاری از الگوریتم های مختلف در مجموعه داده های UCR/UEA ، الگوریتم BOSS جزو بهترین ها بود و در مجموعه داده های بزرگ بسیار سریعتر از COTE است (پیچیدگی: O (N 2 L 2)) [13].
یکی از دلایل اصلی که چرا رویکردهای مبتنی بر فرهنگ لغت به خوبی کار می کنند این است که ترجمه به کلمات آنها را در برابر نویز قوی می کند.
طبقه بندی بر اساس فاصله
معمولی ترین الگوریتم مبتنی بر بازه، جنگل سری زمانی [22] است، که نوعی جنگل تصادفی است. جنگل مجموعه ای از درختان تصمیم گیری است. هر درخت تصمیم یک مدل یادگیری ماشینی است که یک نقطه داده را می گیرد و کلاسی را بر اساس مقدار متغیرهای آن، همانطور که در شکل 5 نشان داده شده است، اختصاص می دهد.، در نهایت شما با مجموعه ای از طبقه بندی کننده های مختلف درخت (به عنوان مثال جنگل) مواجه می شوید که هر کدام احتمالاً طبقه بندی متفاوتی را تولید می کنند (زیرا بر روی داده های کمی متفاوت آموزش داده شده است). سپس روال معمول گروه را دنبال می کنید و رایج ترین پیش بینی را به عنوان پیش بینی نهایی خود انتخاب می کنید.
شکل 5. مثال درخت تصمیم. درخت تصمیم یک نقطه داده می گیرد، در این مورد یک بازی، که می تواند در ابعاد مختلف مشخص شود (در اینجا 3: الف. نوع بازی، ب. چند نفره از طریق Wifi، ج. برای 2 بازیکن کار می کند). با عبور از درخت، در نهایت به تصمیم خرید می رسیم (همانطور که با خط چین نشان داده شده است، یک بازی رایانه ای که اجازه بازی از طریق Wifi را نمی دهد، خریداری نخواهد شد). در یک مجموعه جنگل تصادفی، هدف تولید درختانی با ساختار متفاوت است که خطاهای آنها همبستگی ندارند.
ویژگی خاص جنگل سری زمانی این است که سری زمانی خود را به n بازه مجزا تقسیم می کنید و برای هر بازه 3 مقدار میانگین، انحراف استاندارد و شیب را محاسبه می کنید [21]. بنابراین شما با 3 n متغیری که به مدل وارد می کنید، ختم می شوید. یکی از ترفندها این است که بفهمید چگونه سری های زمانی خود را به بازه ها تقسیم می کنید. عملکرد جنگل های سری زمانی به خوبی BOSS یا COTE نیست [13].
یادگیری عمیق
مدل های یادگیری عمیق انواع شبکه های عصبی متشکل از چندین لایه نورون است (برای یک مقدمه ساده به [23] مراجعه کنید). آنها به طور معمول حاوی پارامترهای بسیار بیشتری نسبت به سایر مدل های یادگیری ماشین هستند. غالباً آنها از "بدن" لایه هایی تشکیل می شوند که داده ها از آن تغذیه می شوند. در حالی که لایه های اولیه شکل های اساسی را نشان می دهند (به عنوان مثال یک خط افقی در مدل های تصویر) ، لایه های بعدی بازنمایی های معنادار را رمزگذاری می کنند. بنابراین ، لایه خروجی بدن ("گردن"؟) باید حاوی آنچه در داده ها معنی دار و برجسته است. به عنوان مثال ، در طبقه بندی تصویر ، بدن می تواند وجود چرخ ماشین و گردن را تمام اطلاعات مورد نیاز برای تبعیض بین ساختمانهای مختلف ، مدل ها و نسخه ها را ضبط کند. در بالای آن "سر" است که طبقه بندی کننده ای به نوعی است که بر اساس خروجی گردن ، طبقه بندی را ایجاد می کند. با کار کردن بر روی گردن به جای مستقیم روی تصویر ، طبقه بندی داده ها به عنوان مثال آسان تر است. اتومبیل در مقابل هواپیما. در دهه گذشته ، مدل های یادگیری عمیق به انتخاب آشکار برای طبقه بندی هر دو تصویر و زبان تبدیل شده اند. برای سری زمانی که اخیراً محبوبیت زیادی کسب کرده است ، اما هنوز هم عملکرد در مجموعه داده های UCR/UEA با وجود خیلی سریعتر ، به اندازه چرب [3 ، 19 ، 24] خوب است.
راه های آموزش مدلهای یادگیری عمیق
شاید دو روش مختلف برای آموزش یک مدل یادگیری عمیق برای طبقه بندی سری زمانی (همانطور که برای بسیاری از انواع یادگیری عمیق وجود دارد) وجود داشته باشد: بدون نظارت (مولد) و تحت نظارت (تبعیض آمیز) [2 3]. تحت نظارت همان چیزی است که ما در بالا درباره آن صحبت کردیم. این جایی است که شما مدل را برای تولید طبقه بندی صحیح آموزش می دهید. یکی از مشکلات این رویکرد این است که کلاس ها فقط اطلاعات کمی دارند (برای یک مشکل دو طبقه فقط 1 بیت اطلاعات) ، در حالی که سری زمانی حاوی چیزهای بیشتری است و مدل پارامترهای زیادی برای تنظیم دارد. در عوض ، با یادگیری مولد ، یک مدل را آموزش می دهد تا یک سری زمانی کامل را تولید کند. یک رویکرد رمزگذار خودکار است ، جایی که فرد با بدن معکوس سر را جایگزین می کند. از آنجا که گردن حاوی تقطیر اطلاعات سری زمانی است ، با عبور از آن از طریق بدن وارونه باید بتواند سری زمانی اصلی را بازسازی کند. از آنجا که سری زمانی حاوی اطلاعات بیشتری نسبت به کلاس است ، این شبکه برای گرفتن تمام اطلاعات موجود در گردن که برای بازسازی سری زمانی به اندازه کافی خوب مورد نیاز است ، آموزش داده می شود. سپس با انجام آموزش های اساسی ، می توان بدن معکوس را برداشته و آن را با سر جایگزین کرد که می توانید سپس می توانید در کار طبقه بندی مورد نظر آموزش دهید. Timenet نمونه ای از این رویکرد است [25].
انواع مدل
انواع مختلفی از مدل های یادگیری عمیق وجود دارد. از آنجا که این زمینه به سرعت در این زمینه حرکت می کند ، من در مورد معماری های خاص به جزئیات نمی پردازم. آنها به طور کلی یک بعدی هستند و اغلب علّی هستند (به این معنی که یک ارزش فقط به ارزشهای تاریخی بستگی دارد ، نه آینده). مدل های قبلی اغلب از نوعی به نام شبکه های مکرر بودند ، اما اخیراً موفق ترین معماری ها به اصطلاح شبکه های حلقوی بوده اند. برخی از معماری هایی که حداقل و همچنین COTE را انجام می دهند عبارتند از: RESNET [3] ، شبکه های کاملاً حلقوی [3] (که می تواند سری زمانی با طول مختلف را تحمل کند) ، شبکه های عصبی چند مقیاس [3] و Inception [26].
کمبود مشکل
فقدان داده ممکن است دلیل اصلی آموزش از خراش مدل های یادگیری عمیق متناسب با داده های سری زمانی باشد که قبلاً نتوانسته است الگوریتم های سنتی تر را در مجموعه داده های UCR/UEA ضرب و شتم کند. این با اختلاف بزرگ بین سری زمان و اندازه داده های تصویر [6] و همچنین بهبود دقت طبقه بندی با مدل یادگیری عمیق RESNET هنگام اضافه شدن داده های مصنوعی به کوچکترین مجموعه داده های UCR/UEA پیشنهاد شده است [27]. ما این بخش را با برخی از رویکردها برای مقابله با مشکل داده به پایان می رسانیم.
Rocket [19] یک مدل (نه یک شبکه عصبی معمولی بلکه با شباهت های زیادی) است که از رویکرد رادیکال تنظیم تصادفی وزن بدن مدل بدون آموزش استفاده کرده است. این مجموعه مجموعه بزرگی از وزنهای مختلف با بزرگی های مختلف را به این امید که بتوانند الگوهای متنوعی را در داده ها ضبط کنند ، انتخاب می کند. این مدل عملکرد بسیار مشابهی با سمپت کندو دارد.
رویکرد دیگر یادگیری انتقال است. TIMENET [25] به طور خاص ایجاد شده است تا به عنوان یک سری یادگیری عمیق و در دسترس عمومی و در دسترس عموم برای استفاده مشترک قرار گیرد. همچنین یادگیری انتقال از مدل های تصویری که در بالا ذکر شد وجود دارد.
سرانجام ، یک رویکرد سوم افزایش میزان داده ها با تولید داده های مصنوعی است. یک مرور کلی در دو مقاله توسط Iwana و Uchida ارائه شده است [6 ، 28]. این تکنیک به عنوان افزودن داده ها نامیده می شود و یک پست وبلاگ خود را به دست می آورد ، اما یکی از رویکردها این بوده است که دو سری زمانی را از داده های متعلق به همان کلاس و مخلوط کردن آنها استفاده کنید. راز سس چگونه می توان مخلوط کردن را به درستی انجام داد. همانطور که هنگام محاسبه فاصله بین سری زمانی ، باید دریابید که کدام جفت نقاط داده در دو سری مطابقت دارد. بنابراین یک رویکرد استفاده از DTW برای جفت کردن نقاط زمانی دو سری مختلف و سپس به طور متوسط از نقاط داده زوجی است. در حال حاضر افزایش داده ها یک عمل مشخص در طبقه بندی سری زمانی نیست در حالی که در طبقه بندی تصویر قرار دارد [6 ، 28] ، اما این زمینه ای است که در آینده بسیار مهم تر می شود. این احتمالاً عملکرد اکثر الگوریتم ها را تقویت می کند ، اما به خصوص مدلهای پیچیده تری مانند مدل های یادگیری عمیق.
کلمات اخر
در بالا سعی کرده ام یک طرح کلی به طبقه بندی عظیم طبقه بندی سری زمانی ارائه دهم. برای خوانندگان ، خواه شما یادگیری ماشین را انجام می دهید یا نمی دانید ، امیدوارم که در صورت شروع یک پروژه طبقه بندی سری زمانی ، موارد فوق می تواند شما را راهنمایی کند و انتظارات را تعیین کند. یک پیشنهاد این است که یک مجموعه داده از UCR/UEA [1] شبیه به شما باشد تا ایده ای از آنچه می توان به دست آورد ، بدست آورید. اگر می دانید چگونه یک الگوریتم را کدگذاری کنید و می خواهید یک الگوریتم را امتحان کنید ، پیشنهاد می کنم یک مجموعه داده را از UCR/UEA بارگیری کنید و یک الگوریتم اساسی مانند DTW+1-NN ([29] برای اجرای پایتون) یا یکی از موارد را امتحان کنید. الگوریتم هایی که در یک مجموعه داده UCR/UEA مناسب عملکرد خوبی دارند. بسیاری از الگوریتم های موجود در آنجا وجود دارد ، و بسیاری از مقالات مورد بررسی در بالا با کد منبع از مقالات با کد [30] ارائه می شود. توجه داشته باشید که این کد توسط محققان نوشته شده است و نه توسعه دهندگان حرفه ای ، به این معنی که این کد ممکن است نیاز به ترفند داشته باشد.
کار بر روی یک پروژه یادگیری ماشین از جهات مختلفی برای کار بر روی یک پروژه توسعه کد مشابه است. عالی است که به تنهایی کارها را امتحان کنید. با این وجود ، درست مانند اکثر کار توسعه کد دیر یا زود به توسعه دهندگان نیاز دارد ، همین کار در مورد پروژه های یادگیری ماشین نیز انجام می شود.
آنالیز فاندامنتال...
ما را در سایت آنالیز فاندامنتال دنبال می کنید
برچسب :
نویسنده : اسماعیل داورفر
بازدید : <-PostHit->
تاريخ : سه
شنبه
1 فروردين
1402 ساعت: 20:12