یادگیری ماشینی (ML) تاثیر عمیقی بر طیف متنوعی از کاربردها گذاشته است. این امر عمدتا به دلیل قدرت محاسباتی بهتر و مقادیر زیاد داده های آموزشی امکان پذیر شده است و داده حتی از خود مدل نیز اهمیت بیشتری دارد.
جمع آوری و ساخت مجموعه داده(دیتاست) معمولا فرایندی طاقت فرسا و بسیار زمان بر است و در بعضی مواقع این فرایند را کم ارزش تلقی میکنند؛ این به این دلیل است که ایجاد و بهبود مجموعه های داده یک وظیفه انسانی و زمان بر است، در هوش مصنوعی کار هایی که نیاز به نیروی انسانی دارند زیاد هیجان انگیز محسوب نمیشوند.
در هر صورت، قبل از آموزش یک مدل، به یک مجموعه داده نیاز داریم. مجموعه داده های زیادی در دسترس عموم وجود دارد که می توان از آنها در یک پروژه استفاده کرد.
برای مثال، اگر مدلی میخواهید که به طبقهبندی ویدیوهای YouTube بر اساس ژانرها کمک کند، میتوانید از مجموعه داده YouTube-8M Segments که به صورت عمومی در دسترس است استفاده کنید.
اگر مجموعه داده ای که میخواهید با آن مسئله ای را حل کنید در دسترس عموم نباشد چه ؟ این به معنی این است که باید آستین ها را بالا بزنید و خودتان دست به کار شوید.
فرآیند ایجاد یک مجموعه داده شامل سه مرحله مهم است:
فرآیند جمع آوری داده ها شامل یافتن مجموعه داده هایی است که می توانند برای آموزش مدل های یادگیری ماشین استفاده شوند. چند راه برای انجام این کار وجود دارد و رویکرد شما تا حد زیادی به مشکلی که میخواهید حل کنید و نوع دادهای که فکر میکنید برای آن مناسبتر است بستگی دارد. اما به طور کلی دو روش وجود دارد :
تکنیک تولید داده زمانی اعمال می شود که هیچ مجموعه داده ای وجود نداشته باشد که بتوان از آن برای آموزش استفاده کرد. شامل:
1. جمع سپاری
جمع سپاری یک مدل کسب و کار است که شامل ارتباط با گروه های بزرگی از مردم از طریق اینترنت برای انجام وظایف است. این وظایف از کارهای ساده مانند برچسب گذاری داده ها تا کارهای پیچیده شامل نوشتن مشارکتی را شامل می شود. یک مثال خوب از جمع سپاری، توسط نقشه نشان برای بخش هشدار سرعت گیر است که برای اطلاعات بیشتر توضیحات این پست را در اینجا بخوانید.
2. تولید داده های مصنوعی
دادههای مصنوعی، دادههایی هستند که از طریق رایانه ایجاد میشوند تا اندازه دادههای آموزشی ما را افزایش دهند یا تغییراتی را در دادههایی ایجاد کنند که میخواهیم مدل ما در آینده به آن رسیدگی کند. مدلهای مولد، مانند شبکه مولد تخاصمی(GAN) نمونه خوبی از یک برنامه کامپیوتری است که دادههای مصنوعی تولید میکند.
ما به حجم زیادی از داده نیاز داریم تا اطلاعات کافی برای آموزش صحیح مدل های یادگیری ماشین داشته باشیم. بنابراین، تولید دادههای مصنوعی معمولاً روشی ارزانتر و انعطافپذیرتر برای گسترش مجموعه دادههایمان به ما ارائه میدهد. شبکههای مولد تخاصمی یک تکنیک پیشرفته است که میتوانیم از آن برای تولید دادههای مصنوعی استفاده کنیم.
این شامل آموزش دو شبکه رقابتی است: یک مولد و یک تفکیک کننده. نقش مولد این است که یاد بگیرد یک فضای پنهان را به یک توزیع داده (از یک مجموعه داده) نگاشت کند. نقش تفکیک کننده این است که داده های واقعی را از داده های مصنوعی تولید شده توسط مولد تفکیک کند.
هدف این است که نرخ خطای شبکه تفکیک کننده را افزایش دهیم تا شبکههای مولد آنقدر در تولید نمونهها خوب شوند، به طوری که تمایزکننده را فریب دهد و تصور کند که نمونهها از توزیع دادههای واقعی (مجموعه داده) هستند.
با استفاده از GAN ها میتوان ویدیوها، تصاویر و کلا هر نوع داده ی مصنوعی تولید کرد که برای استفاده در برنامه های مختلف واقع گرایانه به نظر میرسند. GAN دادههای موجود را میگیرد و دادههای جدیدی ایجاد میکند که شبیه مجموعه داده اصلی شما هستند؛ و حجم داده های شما را افزایش میدهند، به سادگی آب خوردن :)
افزایش داده ها روش دیگری برای جمع آوری داده است. این فرآیند شامل تقویت مجموعه داده های موجود با داده های خارجی تازه به دست آمده است. برخی از مراحل اساسی در فرآیند افزایش داده ها ممکن است شامل برش، چرخش، تنظیم روشنایی و کنتراست تصاویر ورودی موجود باشد.
این تکنیک اندازه و کیفیت مجموعه دادههای آموزشی را افزایش میدهد و شما را قادر میسازد تا دادههای بیشتری را جمعآوری کنید، بدون اینکه واقعاً به جمعآوری فیزیکی دادههای بیشتر بروید. مزیت دیگر افزایش داده ها این است که باعث می شود مدل ها به داده های نادیده جدید تعمیم بهتری پیدا کنند.
اگر دادههای کافی دارید، اما کیفیت مجموعه داده آنچنان عالی نیست (مثلاً دادهها نویز دارند)، یا مشکلی در قالببندی کلی در مجموعه دادهتان وجود دارد (مثلاً، برخی فواصل دادهها بر حسب دقیقه هستند در حالی که برخی به ساعت ) به دومین فرآیند مهم می رویم که شامل پاکسازی داده ها می شود.
شما می توانید عملیات داده را به صورت دستی انجام دهید، اما کار فشرده است و زمان زیادی می برد. از طرف دیگر، میتوانید از سیستمها و فریم ورک های از قبل ساختهشده استفاده کنید تا به شما در رسیدن به همان هدف آسانتر و سریعتر کمک کند.
میتوانید نمونه هایی از این فریم ورک ها را در مقاله اصلی مشاهده کنید : لینک
نکته مهمی که باید به آن توجه کنید این است که نباید زیاد داده را دستکاری کنید. در حالت ایدهآل، تمیز کردن یک مجموعه داده نباید منجر به مجموعه داده ای شود که دیگر نماینده جمعیتی نیست که میخواهید روی آن مطالعه انجام دهید.
برچسب گذاری داده ها بخش مهمی از پیش پردازش داده است که شامل دادن یک برچسب بر اساس ویژگی های آن نمونه است. دادههای ورودی و خروجی برای اهداف طبقه بندی برچسب گذاری میشوند و مبنای یادگیری برای پردازش داده های آینده فراهم میکنند. به عنوان مثال، تصویر یک سگ را می توان به برچسب "سگ" وصل کرد.
اکنون که پس از مرحله پاکسازی داده، داده های تمیزی بدست آورده اید آیا زمان برچسب گذاری آن داده ها رسیده است ؟ من که میگویم شاید
پاسخ به این سوال تنها به این بستگی دارد که آیا شما از یادگیری نظارت شده یا بدون نظارت استفاده می کنید. یادگیری بدون نظارت نیازی به برچسب گذاری داده های شما ندارد، در حالی که یادگیری تحت نظارت نیاز به برچسب گذاری داده ها دارد.
آیا این پایان فرآیند ایجاد یک مجموعه داده است؟ احتمالا، شایدم نه!
بستگی به فرایند آموزش مدل داره، که به داده های ما مربوط است. ممکنه دوباره مجبور بشید از اول فرایند های بالا رh انجام بدید تا به داده های بهتری برای مدل یادگیری ماشینی خود برسید، اگر هم که مشکلی با داده هاتون این مقاله رو همینجا به پایان میرسونیم!
لینک مقاله اصلی : لینک