ما در زمانهای مهیج زندگی می کنیم که یادگیری ماشینی تأثیر عمیقی بر طیف گسترده ای از برنامه ها از درک متن ، تشخیص تصویر و گفتار، گرفته تا مراقبت های بهداشتی و ژنومیک دارد. ژنومیک شامل تجزیه و تحلیل داده‌ها و اطلاعات ژنتیکی به‌ویژه ژنوم جانداران است. در میان بسیاری از چالش های یادگیری ماشین، گردآوری داده ها (Data Collection) به یکی از تنگناهای مهم تبدیل شده است. مشخص است که بیشتر وقت برای یادگیری ماشین صرف تهیه داده می شود که شامل جمع آوری ، تمیز کردن ، تجزیه و تحلیل ، تجسم سازی (Visualization) و مهندسی ویژگی ها (Feature Engineering) است. در حالی که همه این مراحل زمان بر هستند ، اخیراً گردآوری داده ها به دلایل زیر به یک چالش تبدیل شده است.

اول، از آنجا که یادگیری ماشینی در برنامه های جدید استفاده می شود ، معمولاً چنین است که داده های آموزش کافی وجود ندارد. برنامه های سنتی مانند ترجمه ماشینی یا کشف اشیاء از انبوهی از داده های آموزشی برخوردار هستند که برای چندین دهه جمع شده اند. از طرف دیگر ، برنامه های جدیدتر داده های آموزشی کمی دارند و یا ندارند.

به عنوان نمونه، کارخانه های هوشمند (Smart Factory) در جایی که کنترل کیفیت محصول با یادگیری ماشین انجام می شود، این عملیات، یعنی کنترل کیفیت محصول ها، بطور فزاینده ای خودکار می شود. ولی هر زمان که یک محصول جدید یا نقص جدید برای کشف وجود داشته باشد، داده های آموزشی (Training Data) کمی یا هیچ داده آموزشی برای شروع وجود دارد. رویکرد همیشگی و بومی برچسب زدن دستی (به کالاها) ممکن است که عملی نباشد، زیرا گران و هزینه بر است و نیاز به تخصص دامنه (درباره درستی یا نادرستی کالا) دارد. این مشکل در مورد هر برنامه جدیدی که از یادگیری ماشین بهره می برد، صدق می کند

در یادگیری ماشین سنتی، مهندسی ویژگی یکی از، چالش برانگیزترین مراحل است که در آن کاربر نیاز به درک برنامه و ارائه ویژگی های مورد استفاده برای مدل های آموزش دارد. از طرف دیگر، یادگیری عمیق می تواند ویژگی هایی را تولید کند، که این امر موجب صرفه جویی در مهندسی ویژگی ها می شود، که این بخش مهمی از تهیه داده ها است. اما، در عوض، یادگیری عمیق ممکن است نیاز به مقادیر بیشتری از داده های آموزش داشته باشد تا بتواند عملکرد خوبی داشته باشد.

دوم ، هنگامی است که مجموعه داده ها در دسترس باشند، ۱) می توان از روش های مختلف برچسب زدن داده، برای برچسب زدن نمونه های فردی استفاده کرد. سرانجام، به جای برچسب زدن به مجموعه داده های جدید، ۲) شاید بهتر باشد داده های موجود را بهبود بخشید یا ۳) در مدل های آموزش دیده (Trained Model)، آنها را آموزش دهید. این سه روش لزوماً جدا از یکدیگر نیستند و می توانند در کنار هم مورد استفاده قرار گیرند. به عنوان مثال، می توان در ضمن بهبود مجموعه های موجود، مجموعه داده های بیشتری را جستجو و برچسب گذاری کرد.

به طور سنتی، برچسب زدن (Labeling) به داده ها تمرکز طبیعی تحقیق برای کارهای یادگیری ماشین بوده است. ولی برای مثال، یادگیری نیمه نظارت (Semi-Supervised Learning) یک مسئله کلاسیک است که در آن آموزش مدل بر روی مقدار کمی از داده های دارای برچسب و مقدار بیشتری از داده های بدون برچسب انجام می شود.

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

شکل زیر نمونه دیاگرام تجربی برای تصمیم گیری درباره گرد آوری داده ها را نشان می دهد. در آغاز باید از خود بپرسیم که آیا داده های بَسَنده (کافی) داریم یا نه؟ اگر پاسخ نه است پس باید پرسید که آیا مجموعه داده های بیرونی (External Dataset) داریم یا نه؟ در پایان اگر مجموعه داده های بیرونی هم نداشته باشیم، پس خودمان باید داده هایی را بسیازیم (Data Generation).

اگر داده های بَسَنده (کافی) داشته باشیم، پس این پرسش ها پیش می آید که آیا نیاز به بهبود داده ها یا افزودن برچسب ها (Improve existing data/model or add labels) هست یا نه؟ اگر نیاز به افزودن برچسب باشد، پس روش هایی مانند خود یادگیری (Self Learning) یا جمع سپاری یا برون سپاری (Crowdsourcing) را به کار ببریم.

جمع بندی

گردآوری داده ها تنگنای اصلی در یادگیری ماشین و یک موضوع تحقیقاتی فعال در جوامع مختلف است. عمدتا دو دلیل وجود دارد که جمع آوری داده ها اخیراً به یک موضوع مهم تبدیل شده است. اول، با توجه به گسترده تر شدن یادگیری ماشین ، ما شاهد برنامه های جدیدی هستیم که لزوماً دارای اطلاعات دارای برچسب کافی نیستند

دوم، برخلاف یادگیری ماشین سنتی، تکنیک های یادگیری عمیق (Deep Learning) به طور خودکار ویژگی هایی را تولید می کنند، که باعث صرفه جویی در هزینه های مهندسی ویژگی می شود ، اما در عوض ممکن است به مقادیر بیشتری از داده های دارای برچسب نیاز داشته باشد. جالب اینجاست که تحقیقات اخیر در زمینه گرد آوری داده ها نشان دادهه است که گرد آوری داده ها نه تنها از راه یادگیری ماشین، پردازش زبان طبیعی و بینایی رایانه تاثیر پذیر است بلکه از دید مدیریت داده ها نیز  اهمیت دارد.

گرد آوری داده ها به شما امکان می دهد سابقه ای از رویدادهای گذشته را ضبط کنید تا بتوانید از آنها برای آنالیز داده ها و از این رو برای یافتن الگوهای تکرار شونده (Recurring Patterns) استفاده کنید. از این الگوها، می توانید مدل های پیش بینی گویانه (Predictive Models) با استفاده از الگوریتم های یادگیری ماشین بسازید که به دنبال پیش بینی تغییرات آینده هستند.

مفهوم Data Acquisition در یادگیری ماشین

در زمینه یادگیری ماشین، هدف از بدست آوردن (یا اکتساب) داده ها (Data Acquisition)، پیدا کردن مجموعه داده هایی (Dataset) است که می توانیم آنها را برای یادگیری (Train) مدل به کار بگیریم. مجموعه داده ها، به شیوه های گوناگونی مانند API ها (برای نمونه به فرم JSON)، داده های روی اینترنت از راه وب اسکرپینگ و پایگاه داده های رابطه ای و غیر رابطه ای هستند. فهرست زیر منابع گوناگون بدست آوردن داده ها را نشان می دهد.

  • سامانه های OLTP یا سامانه های پایگاه داده
  • سامانه های OLAP و انبار داده ها DW
  • فایل های Log
  • سندها، فایل های متنی ساده، تصویرها و ویدیوها
  • داده های وب مانند برگه های وب
  • حسگرها و رویدادهای وب

در پردازش، تحلیل، دانش داده ها، یادگیری ماشین و ژرف، پیش از آنکه دادها ها را برای ساخت مدل به کار ببریم، باید بر روی داده های در دسترس یا بدست آمده یک پیش پردازش (PreProcessing) انجام دهیم تا داده های معیوب، نویزدار و غیر کامل را از مجموعه داده پاک کنیم زیرا با داشتن داده های خراب، مدل و پیش بینی و برآیند (نتیجه) دلخواه و درستی را نخواهیم گرفت. در زمینه بدست آوردن داده ها یا Data Acquisition، سه رویکرد زیر است:

  • کشف داده ها یا Data Discovery
  • افزودن یا تقویت داده ها یا Data Augmentation
  • ساخت یا تولید داده ها یا Data Generation

کشف داده ها هنگامی ضروری است که فردی بخواهد داده های جدیدی را به اشتراک بگذارد یا جستجو کند و از آنجا که داده های بسیاری بر روی وب، از این رو نقش کشف داده ها بسیار برجسته و پر اهمیت می شود. تقویت داده تکمیل کننده و مکمل کشف داده ها است، به گونه ای با افزودن داده های بیرونی (External Data) بیشتر، تقویت داده ها را انجام می دهد. در صورت عدم وجود مجموعه داده های خارجی موجود ، می توان از تولید داده استفاده کرد.

در یک تعریف، بدست آوردن یا اکتساب داده ها در برگیرنده فرایندهایی است که داده هایی را برای استفاده به سازمان (پروژه) وارد می کند که این داده ها بدست منبع بیرون از سازمان ساخته (تولید – Generate) شده است. قبل از بروز کلان داده ها (Big Data)، شرکت ها از دید  توجه به داده ها، یک دید درون سازمانی داشتند. پیش از کلان داده ها برای نمونه محیط های داده محور همانند انبار داده ها (Data Warehouse) تنها با داده های ساخته شده در شرکت سر و کار دارند.

معماری کلان داده ها

اما با پیشرفت علم داده و تجزیه و تحلیل پیش بینی، بسیاری از سازمان ها به این واقعیت پی برده اند که داده های سازمانی باید با داده های بیرونی تلفیق شود تا یک تغییر و تحول در تجارت دیجیتال را رقم بزند. گاهی واژه Data Acquisition به جای اشاره به داده های بیرون از سازمان، به داده های درون سازمان اشاره دارد که این استدلالی نادرست است، زیرا داده های درون سازمان پیش از این بدست آمده اند.

کشف داده را می توان در دو گام دید، نخست داده های ساخته (تولید) شده باید برای به اشتراک گذاری ایندکس (Indexing) شده و سپس منتشر شوند. بسیاری از سیستم های مشارکتی (Collaborative Systems) طراحی شده اند تا این فرآیند آسان شود. کشف داده ها خودش در برگیرنده دو رویکرد اشتراک داده (Data Sharing) و جستجوی داده (Data Searching) است.