این مقاله نیازمند ویکیسازی است. لطفاً با توجه به راهنمای ویرایش و شیوهنامه، محتوای آن را بهبود بخشید. |
این مقاله نیازمند تمیزکاری است. لطفاً تا جای امکان آنرا از نظر املا، انشا، چیدمان و درستی بهتر کنید، سپس این برچسب را بردارید. محتویات این مقاله ممکن است غیر قابل اعتماد و نادرست یا جانبدارانه باشد یا قوانین حقوق پدیدآورندگان را نقض کرده باشد. |
یادگیری ماشین خودکاره (به انگلیسی: Automated machine learning، بهطور مخفف AutoML) فرایند خودکارسازی اعمال یادگیری ماشین بر مشکلات دنیای واقعی است. اُتوامال خط لوله کامل فرایندهای یادگیری ماشین- از مجموعه دادههای خام گرفته تا ایجاد مدل قابل استفاده -را در بر میگیرد. پیش از این اُتوامال به عنوان راه حلی مبتنی بر هوش مصنوعی برای چالشهای روزافزون استفاده از یادگیری ماشین ارائه شدهاست.[۱][۲] به دلیل خودکار بودن اُتوامال افراد غیر متخصص نیز میتوانند از مدلها و تکنیکهای یادگیری ماشین، بدون نیاز به یادگیری تخصصی در این زمینه، استفاده کنند.
خودکارسازی فرایند استفاده از الگوریتمهای یادگیری ماشین علاوه بر مزایای ذکر شده، مزایای دیگری مانند تولید راه حلهای سادهتر، ایجاد سریع تر این راه حلها و ایجاد مدلهایی که اغلب از مدلهایی که به صورت دستی طراحی شدهاند، بهترند، ارائه میدهد.
در یادگیری ماشین معمولی، مجموعه ای از دادههای ورودی برای یادگیری در اختیار داریم. این دادهٔ خام ممکن است در شکل و فرمتی مناسب برای اعمال همهٔ الگوریتمها، نباشد. برای اینکه دادهها برای یادگیری ماشین قابل استفاده باشند، ممکن است یک متخصص نیاز به اعمال پیش پردازش دادهها، مهندسی ویژگیها، استخراج ویژگیها و روشی برای انتخاب ویژگیها داشته باشد.
بعد از این مرحله باید انتخاب الگوریتم و بهینهسازی پارامترها، برای حداکثر کردن کارایی پیشبینی مدل، انجام شود. همهٔ این مراحل چالشهایی دارند و اُتوامال بهطور قابل ملاحظه ای این مراحل را برای افراد غیرمتخصص، ساده میکند.
یادگیری ماشین خودکار میتواند گامهای مختلفی از فرایند یادگیری ماشین را هدف قرار دهد.[۲] که این اهداف شامل موارد زیر است:
بهطور کلی میتوان فرایند یادگیری ماشین خودکار را به چند بخش اصلی تقسیم کرد:
مطالعات عمیق و فراوان در حوزهٔ یادگیری ماشین به وجود آورندهٔ نیاز دائمی به در دسترس بودن دادههای مختلف شدهاست. به همین دلیل تعداد زیادی دیتاست قابل دسترسی برای همگان به وجود آمدهاند. در مراحل اولیه توسعه یادگیری ماشین، دیتاست اعداد دستنویس MNIST[۳] توسعه داده شد و پس از آن دیتاستهای بزرگ CIFAR-10 و CIFAR-100 و ImageNet[۴] نیز توسعه داده شدند. دیتاستهای مختلفی با جستجوی عبارت مورد نظر در Kaggle و Google Dataset Search و Elsevier Data بایگانیشده در ۳ ژوئن ۲۰۲۰ توسط Wayback Machine نیز قابل دسترسی است[۵]ولی معمولاً به دست آوردن دیتاست برای موارد خاص مانند اطلاعات خصوصی افراد، توسط روشهای ذکر شده، ساده نیست. برای حل این مشکل دو راه حل پیشنهاد میشود:
با جستجو در وب، که یک منبع پایان ناپذیر دادهها است میتوان بعضی دادهها را به دست آورد اما ممکن است با مشکلاتی از جمله نادرست بودن یا نداشتن برچسب دادهها روبه رو شویم که برای حل این مشکلها، روشهایی برای برچسب زدن به صورت خودکار به دادهها، ایجاد شدهاند.[۵]
شبیهسازی دادهها یکی از پر استفادهترین روشها برای تولید دادهها است: یعنی استفاده از شبیهسازهایی که به اندازهٔ ممکن به دنیای واقعی شبیه است. OpenAI Gym[۶] یک ابزار معروف برای ایجاد محیطهای شبیهسازی متفاوت است
روش دیگر برای تولید دادهها استفاده از Generative Adversarial Networks یا GAN است.[۵]
دادههای جمعآوری شده ناگزیر دارای نویز اند و این نویز میتواند تأثیر منفی در آموزش مدل داشته باشد در نتیجه در صورت نیاز باید فرایند پاکسازی دادهها (به انگلیسی: data cleaning) انجام شود.
بهطور معمول پاکسازی دادهها به دانش افراد متخصص احتیاج دارد اما دسترسی به افراد متخصص محدود و هزینه بر است. به همین دلیل روشها و سیستمهای مانند BoostClean[۷] برای خودکار کردن این فرایند استفاده میشود. البته این سیستمها فقط بر روی دیتاستهای ثابتی میتوانند کار کنند اما در دنیای واقعی که روزانه دادههای بسیاری تولید میشود، این روشها پاسخ گو نیستند.[۵]
افزونگی دادهها (به انگلیسی: Data Augmentation) میتواند دادههای جدیدی بر اساس دادههای موجود تولید کند و تا حدودی از ابزارهای «جمعآوری دادهها» به حساب میآید. این روش همچنین به عنوان رگیولایزر برای جلوگیری از over fit شدن مدل بر روی دادههای آموزشی مورد استفاده است. برای مثالی از پیادهسازی بخش افزونگی دادهها برای دادههای تصویری میتوان با بزرگ یا کوچک کردن تصویر یا بریدن بخشهایی از آن تصاویر جدید ایجاد کرد[۵]
از اولین سیستمهایی که برای خودکارسازی این بخش استفاده میشدهاست، AutoAugment[۸]است.
امروزه فرایند پیش پردازش دادهها بهطور کامل و جامع توسط هیچکدام از ابزارهای اُتوامال پیادهسازی نشدهاست و هنوز به مقدار قابل توجهی تلاش فرد برای پیادهسازی نیاز دارد.[۹]
هدف مهندسی دادهها (به انگلیسی: Feature Engineering)ماکسیمم کردن ویژگیهای استخراج شده از دادههای خام برای استفاده توسط الگوریتمها و مدل است؛ و شامل بخشهایی میشود:
در انتخاب ویژگیها (به انگلیسی: Feature Selection) یک زیر مجموعه از ویژگیها را از روی مجموعه اصلی ویژگیها با کاهش ویژگیهای نامربوط یا تکراری انتخاب میشود و با این کار تلاش می شودکه مدل را سادهتر شود تا از بیش برازش (به انگلیسی: overfitting)جلوگیری کرده و کارایی مدل را بهتر شود. از جمله روشها برای جستجوی ویژگیها استفاده از روشهای جستجوی اول سطح و اول بهترین و همینطور الگوریتمهای شبیهسازی خنکسازی فلزات(به انگلیسی: Simulated annealing) و الگوریتمهای ژنتیک است.[۵]
در تولید ویژگیها (به انگلیسی: Feature Construction)ویژگیهای جدیدی را از فضای ویژگیهای پایه یا دادههای خام ایجاد میشود تا قابلیت تعمیم و مقاومت(به انگلیسی: robustness) مدل را بهبود دهد. برای مثال از روشهایی مانند متمم کردن ویژگیهای بولین یا مینمم یا ماکسیمم کردن دادههای عددی استفاده میشود.[۵]
فرایند استخراج ویژگیها (به انگلیسی: Feature Extraction) روشی برای کاهش بعد است که با بعضی از توابع تناظر(به انگلیسی: mapping function)انجام میشود و اطلاعات و ویژگیهای غیر تکراری را بر اساس معیارهای مشخصی استخراج میکند. کرنل استخراج ویژگیها تابع تناظری است که میتواند باروشی مانند PCA پیادهسازی شود. به تازگی از شبکههای عصبی پیشخور (به انگلیسی: feed-forward)هم برای این کار استفاده میشود.[۵]
ایجاد مدل به دوبخش فضای جستجو و روشهای بهینهسازی تفسیم میشود. فضای جستجو ساختار مدل را تعریف میکند.
بهطور کلی میتوان مدلها را به دو دسته تقسیم کرد:
در این ادامه بیشتر بر NAS تمرکز میکنیم و مراحل اُتوامال را حول آن توضیح میدهیم.
جستجوی معماری عصبی (به انگلیسی: Neural architecture search، بهطور مخفف "NAS")[۱۰][۱۱] روشی برای اتوماسیون طراحی شبکههای عصبی مصنوعی (ANN) است و روشی است که بهطور گسترده در زمینه یادگیری ماشین مورد استفاده قرار میگیرد. از NAS برای طراحی شبکههایی استفاده شدهاست که از معماریهایی با طراحی دستی بهترعمل میکنند.[۱۲][۱۳]
متدهای NAS را میتوان با توجه به فضای جستجو، استراتژی جستجو و استراتژی تخمین عملکرد طبقهبندی کرد.[۱۰]
هدف NAS جستجوی معماری شبکه عصبی مقاوم(به انگلیسی: robust) و با کارایی مناسب است که به وسیلهٔ انتخاب و ترکیب اعمال مختلف پایه که توسط فضای جستجو از قبل تعریف شدهاست، انجام میشود.
معماری شبکه عصبی را میتوان به صورت یک گراف بدون دور جهت دار(به انگلیسی: direct acyclic graph)نمایش داد که از راسها و یالهایی که این رئوس را به هم وصل میکند تشکیل میشود که هر راس یک تنسور را نشان میدهد و هر یال یک عملیات را از مجموعه اعمال کاندید نشان میدهد. این مجموعه شامل عملیات اساسی کانولوشن، pooling و تابع فعال ساز(به انگلیسی: activation function) و پریدن از روی رابطه و الحاق و جمع است. نحوه انتخاب و ترکیب این روشها با فضای جستجوی طراحی شبکه تغییر میکند. این فضای جستجو الگوی ساختاری که الگوریتمهای بهینهسازی معماری میتوانند در آن جستجو کنند را مشخص میکند.[۵]
روشهای بهینهسازی را میتوان به دو دسته بهینهسازی پارامترهای فرایند یادگیری (مانند نرخ یادگیری و سایز batch) و گروه پارامترهای طراحی معماری مدل (مانند تعداد همسایهها در KNN و تعداد لایهها در شبکه عصبی عمیق) تقسیم کرد.[۵]
بعد از تعریف فضای جستجو باید شبکه با بهترین عملکرد را انتخاب کنیم که به آن بهینهسازی معماری گفته میشود. جستجوی خودکار معماری از روشهای مختلفی انجام میشود. یک روش استفاده از الگوریتم ژنتیک است. برای مثال میتوان معماری شبکه را با رشتهای باینری مشخص کرد که در آن ۱ نشان دهنده این است که دو راس به هم متصل اند و صفر نشان دهندهٔ نبود هیچ اتصالی بین آن دو راس است (در این روش تعداد راسها از قبل تعیین میشود). در این نمونه استفاده از الگوریتم ژنتیک، همگذری (به انگلیسی: crossover) شامل ترکیب بخشهای مختلف شبکههای تولید شدهاست و هدف آن حفظ شبکههایی با کارایی خوب و حذف شبکههای ضعیف میباشد.[۵]
بعد از پیدا کردن امیدبخشترین معماری شبکه عصبی، باید ابرپارامترهای (به انگلیسی: hyperparameter) مناسبی انتخاب کنیم تا شبکه بهطور دقیق تنظیم شود. از جمله روشهای بهینهسازی ابرپارامترها میتوان به موارد زیر اشاره کرد:
وقتی یک مدل شبکه عصبی تولید شد باید کارایی آن ارزیابی شود. اولین روشی که به ذهن میرسد، آموزش دادن شبکه تا زمان همگرا شدن آن و سپس ارزیابی آن است اما این راه منابع محاسباتی و زمان زیادی نیاز دارد. به همین دلیل روشهایی برای سریعتر کردن ارزیابی مدل توصیه میشود که به چند مورد اشاره میشود:
هر یک از ابزارهای اُتوامال بخشی از الگوریتمهای یادگیری ماشین برای ساختن مدلها را پشتیبانی میکنند. از جمله رگرسیون لجستیک، الگوریتمهای درختی، مدلهای شبکه عصبی و SVM. برای بهینهسازی پارامترها از معروفترین روشها جستجوی حریصانه، جستجوی بیزی و جستجوی رندم هستند.
ابزارهایی که برای اُتوامال ایجاد شدهاند شامل موارد زیر است که در دانشگاهها یا سازمانهای ذکر شده توسعه داده شدهاند:
این سه ابزار از پکیج یادگیری ماشین scikit-learn ساخته شدهاند
پلتفرمهای یاد شده بر روی جنبههای متفاوتی از فضای اُتوامال تأکید دارند؛ و در زمان کنونی، روشهای متفاوتی برای انتخاب مدل (به انگلیسی: model selection) و بهینهسازی ابرپارامترها دارند؛ و روشی وجود ندارد که بهطور مشخص از دیگر ابزارها بهتر باشد.[۹]
{{cite journal}}
: Check date values in: |date=
(help)
{{cite journal}}
: Check date values in: |date=
(help)
{{cite journal}}
: Check date values in: |date=
(help)