یادگیری ماشین اتوماتیک
یادگیری ماشین اتوماتیک فرایند اتوماسیون اعمال یادگیری ماشین بر مشکلات دنیای واقعی است. AutoML خط لوله کامل فرایندهای یادگیری ماشین- از مجموعه داده‌های خام گرفته تا ایجاد مدل قابل استفاده -را در بر می‌گیرد. پیش از این AutoML به عنوان راه حلی مبتنی بر هوش مصنوعی برای چالش‌های روزافزون استفاده از یادگیری ماشین ارائه شده‌است. به دلیل اتوماتیک بودن AutoML افراد غیر متخصص نیز می‌توانند از مدل‌ها و تکنیک‌های یادگیری ماشین، بدون نیاز به یادگیری تخصصی در این زمینه، استفاده کنند.
خودکارسازی فرایند استفاده از الگوریتم های یادگیری ماشین علاوه بر مزایای ذکر شده، مزایای دیگری مانند تولید راه حل‌های ساده‌تر، ایجاد سریع تر این راه حل‌ها و ایجاد مدل‌هایی که اغلب از مدل‌هایی که به صورت دستی طراحی شده‌اند، بهترند، ارائه می‌دهد.
در یادگیری ماشین معمولی، مجموعه ای از داده‌های ورودی برای یادگیری در اختیار داریم. این دادهٔ خام ممکن است در شکل و فرمتی مناسب برای اعمال همه ی الگوریتم‌ها، نباشد. برای اینکه داده‌ها برای یادگیری ماشین قابل استفاده باشند، ممکن است یک متخصص نیاز به اعمال پیش پردازش داده‌ها، مهندسی ویژگی‌ها، استخراج ویژگی‌ها و روشی برای انتخاب ویژگی‌ها داشته باشد.
بعد از این مرحله باید انتخاب الگوریتم و بهینه‌سازی پارامترها، برای حداکثر کردن کارایی پیش‌بینی مدل، انجام شود. همهٔ این مراحل چالش‌هایی دارند و AutoML به‌طور قابل ملاحظه ای این مراحل را برای افراد غیرمتخصص، ساده می‌کند.
یادگیری ماشین اتوماتیک می‌تواند گام‌های مختلفی از فرایند یادگیری ماشین را هدف قرار دهد. که این اهداف شامل موارد زیر است: به طور کلی می‌توان فرایند یادگیری ماشین اتوماتیک را به چند بخش اصلی تقسیم کرد:
مطالعات عمیق و فراوان در حوزهٔ یادگیری ماشین به وجود آورندهٔ نیاز دائمی به در دسترس بودن داده‌های مختلف شده‌است. به همین دلیل تعداد زیادی دیتاست قابل دسترسی برای همگان به وجود آمده‌اند. در مراحل اولیه توسعه یادگیری ماشین، دیتاست اعداد دست‌نویس MNIST توسعه داده شد و پس از آن دیتاست‌های بزرگ CIFAR-10 و CIFAR-100 و ImageNet نیز توسعه داده شدند. دیتاست‌های مختلفی با جستجوی عبارت مورد نظر در Kaggle و Google Dataset Search و Elsevier Data نیز قابل دسترسی استولی معمولاً به دست آوردن دیتاست برای موارد خاص مانند اطلاعات خصوصی افراد، توسط روش‌های ذکر شده، ساده نیست. برای حل این مشکل دو راه حل پیشنهاد می‌شود:
با جستجو در وب، که یک منبع پایان ناپذیر داده‌ها است می‌توان بعضی داده‌ها را به دست آورد اما ممکن است با مشکلاتی از جمله نادرست بودن یا نداشتن برچسب داده‌ها روبه رو شویم که برای حل این مشکل‌ها، روش‌هایی برای برچسب زدن به صورت خودکار به داده‌ها، ایجاد شده‌اند.
شبیه‌سازی داده‌ها یکی از پر استفاده‌ترین روش‌ها برای تولید داده‌ها است: یعنی استفاده از شبیه‌سازهایی که به اندازهٔ ممکن به دنیای واقعی شبیه است. OpenAI Gym یک ابزار معروف برای ایجاد محیط‌های شبیه‌سازی متفاوت است
روش دیگر برای تولید داده‌ها استفاده از یا GAN است.
داده‌های جمع‌آوری شده ناگزیر دارای نویز اند و این نویز می‌تواند تأثیر منفی در آموزش مدل داشته باشد در نتیجه در صورت نیاز باید فرایند پاک سازی داده ها انجام شود.
به‌طور معمول پاک سازی داده‌ها به دانش افراد متخصص احتیاج دارد اما دسترسی به افراد متخصص محدود و هزینه بر است. به همین دلیل روش‌ها و سیستم‌های مانند BoostClean برای اتوماتیک کردن این فرایند استفاده می‌شود. البته این سیستم‌ها فقط بر روی دیتاست‌های ثابتی می‌توانند کار کنند اما در دنیای واقعی که روزانه داده‌های بسیاری تولید می‌شود، این روش‌ها پاسخ گو نیستند.
افزونگی داده ها می‌تواند داده‌های جدیدی بر اساس داده‌های موجود تولید کند و تا حدودی از ابزارهای «جمع آوری داده ها» به حساب می‌آید. این روش همچنین به عنوان رگیولایزر برای جلوگیری از over fit شدن مدل بر روی داده‌های آموزشی مورد استفاده است. برای مثالی از پیاده‌سازی بخش افزونگی داده‌ها برای داده‌های تصویری می‌توان با بزرگ یا کوچک کردن تصویر یا بریدن بخش‌هایی از آن تصاویر جدید ایجاد کرد
از اولین سیستم‌هایی که برای اتوماتیک سازی این بخش استفاده می‌شده‌است، AutoAugmentاست.
امروزه فرایند پیش پردازش داده‌ها به‌طور کامل و جامع توسط هیچ‌کدام از ابزارهای AutoML پیاده‌سازی نشده‌است و هنوز به مقدار قابل توجهی تلاش فرد برای پیاده‌سازی نیاز دارد.
هدف مهندسی داده‌ها ماکسیمم کردن ویژگی‌های استخراج شده از داده‌های خام برای استفاده توسط الگوریتم‌ها و مدل است؛ و شامل بخش‌هایی می‌شود:
در یک زیر مجموعه از ویژگی‌ها را از روی مجموعه اصلی ویژگی‌ها با کاهش ویژگی‌های نامربوط یا تکراری انتخاب می‌شود و با این کار تلاش می شودکه مدل را ساده‌تر شود تا از بیش برازش جلوگیری کرده و کارایی مدل را بهتر شود. از جمله روش‌ها برای جستجوی ویژگی‌ها استفاده از روش‌های جستجوی اول سطح و اول بهترین و همین‌طور الگوریتم‌های شبیه‌سازی و الگوریتم‌های ژنتیک است.
در تولید ویژگی‌ها ویژگی‌های جدیدی را از فضای ویژگی‌های پایه یا داده‌های خام ایجاد می‌شود تا قابلیت تعمیم و مقاومت مدل را بهبود دهد. برای مثال از روش‌هایی مانند متمم کردن ویژگی‌های بولین یا مینمم یا ماکسیمم کردن داده‌های عددی استفاده می‌شود.
فرایند روشی برای کاهش بعد است که با بعضی از توابع تناظرانجام می‌شود و اطلاعات و ویژگی‌های غیر تکراری را بر اساس معیارهای مشخصی استخراج می‌کند. کرنل استخراج ویژگی‌ها تابع تناظری است که می‌تواند باروشی مانند پیاده‌سازی شود. به تازگی از شبکه های عصبی پیشخور هم برای این کار استفاده می‌شود.
ایجاد مدل به دوبخش فضای جستجو و روش‌های بهینه‌سازی تفسیم می‌شود. فضای جستجو ساختار مدل را تعریف می‌کند.
به‌طور کلی می‌توان مدل‌ها را به دو دسته تقسیم کرد:
در این ادامه بیشتر بر NAS تمرکز می کنیم و مراحل AutoML را حول آن توضیح می دهیم.
جستجوی معماری عصبی روشی برای اتوماسیون طراحی شبکه‌های عصبی مصنوعی (ANN) است و روشی است که به‌طور گسترده در زمینه یادگیری ماشین مورد استفاده قرار می‌گیرد. از "NAS" برای طراحی شبکه‌هایی استفاده شده‌است که از معماری‌هایی با طراحی دستی بهترعمل می‌کنند.
متدهای NAS را می‌توان با توجه به فضای جستجو، استراتژی جستجو و استراتژی تخمین عملکرد طبقه‌بندی کرد.
هدف NAS جستجوی معماری شبکه عصبی مقاوم و با کارایی مناسب است که به وسیلهٔ انتخاب و ترکیب اعمال مختلف پایه که توسط فضای جستجو از قبل تعریف شده‌است، انجام می‌شود.
معماری شبکه عصبی را می توان به صورت یک گراف بدون دور جهت دارنمایش داد که از راس ها و یال هایی که این رئوس را به هم وصل می کند تشکیل می شود که هر راس یک تنسور را نشان می دهد و هر یال یک عملیات را از مجموعه اعمال کاندید نشان می دهد. این مجموعه شامل عملیات اساسی کانولوشن، pooling و تابع فعال ساز و پریدن از روی رابطه و الحاق و جمع است. نحوه انتخاب و ترکیب این روش ها با فضای جستجوی طراحی شبکه تغییر می کند. این فضای جستجو الگوی ساختاری که الگوریتم های بهینه سازی معماری می توانند در آن جستجو کنند را مشخص می کند.
روش‌های بهینه‌سازی را می توان به دو دسته بهینه سازی پارامترهای فرایند یادگیری (مانند نرخ یادگیری و سایز batch) و گروه پارامترهای طراحی معماری مدل (مانند تعداد همسایه‌ها در KNN و تعداد لایه‌ها در شبکه عصبی عمیق) تقسیم کرد.
بعد از تعریف فضای جستجو باید شبکه با بهترین عملکرد را انتخاب کنیم که به آن بهینه سازی معماری گفته می شود. جستجوی اتوماتیک معماری از روش های مختلفی انجام می شود. یک روش استفاده از الگوریتم ژنتیک است .برای مثال می توان معماری شبکه را با رشته ای باینری مشخص کرد که در آن 1 نشان دهنده این است که دو راس به هم متصل اند و صفر نشان دهنده ی نبود هیچ اتصالی بین آن دو راس است(در این روش تعداد راس ها از قبل تعیین می شود) . در این نمونه استفاده از الگوریتم ژنتیک ،  cross over شامل ترکیب بخش های مختلف شبکه های تولید شده است و هدف آن حفظ شبکه هایی با کارایی خوب و حذف شبکه های ضعیف می باشد.
بعد از پیدا کردن امیدبخش ترین معماری شبکه عصبی، باید هایپرپارامترهای مناسبی انتخاب کنیم تا شبکه به طور دقیق تنظیم شود.  از جمله روش های بهینه سازی هایپرپارامترها می توان به موارد زیر اشاره کرد:
وقتی یک مدل شبکه عصبی تولید شد باید کارایی آن ارزیابی شود .اولین روشی که به ذهن می رسد، آموزش دادن شبکه تا زمان همگرا شدن آن و سپس ارزیابی آن است اما این راه منابع محاسباتی و زمان زیادی نیاز دارد. به همین دلیل روش هایی برای سریعتر کردن ارزیابی مدل توصیه می شود که به چند مورد اشاره می شود:
هر یک از ابزارهای AutoML بخشی از الگوریتم‌های یادگیری ماشین برای ساختن مدل‌ها را پشتیبانی می‌کنند. از جمله رگرسیون لوجستیک، الگوریتم‌های درختی، مدل‌های شبکه عصبی و SVM. برای بهینه‌سازی پارامترها از معروف‌ترین روش‌ها جستجوی حریصانه، جستجوی بیزی و جستجوی رندم هستند.
ابزارهایی که برای AutoML ایجاد شده‌اند شامل موارد زیر است که در دانشگاه‌ها یا سازمان‌های ذکر شده توسعه داده شده‌اند:
این سه ابزار از پکیج یادگیری ماشین scikit-learn ساخته شده‌اند پلتفرم‌های یاد شده بر روی جنبه‌های متفاوتی از فضای AutoML تأکید دارند؛ و در زمان کنونی، روش‌های متفاوتی برای انتخاب مدل و بهینه سازی هایپرپارامترها دارند؛ و روشی وجود ندارد که به‌طور مشخص از دیگر ابزارها بهتر باشد.