مدلهای هوشمند چگونه ساخته میشوند؟
یادگیری ماشین یکی از کاربردهای مهم هوش مصنوعی است که امکان یادگیری خودکار و پیشرفته مبتنی بر تجربه را بدون برنامهنویسی صریح برای یک سیستم فراهم میکند. به بیان دقیقتر، یادگیری ماشین روی توسعه برنامههای کامپیوتری که دسترسی به دادهها دارند و از آنها برای یادگیری خودآموز استفاده میکنند متمرکز است. یک مدل یادگیری ماشین بر مبنای یک برنامه منظم و مشخص به شرح زیر ساخته میشوند:
- پیدا کردن مشکلی در ارتباط با کسبوکار.
- ترجمه مشکل تجاری به مسئلهای قابل حل توسط علم دادهها.
- پیدا کردن مجموعه دادههای موردنیاز.
- تعریف هدف و سنجههای لازم برای تخمین زدن.
ساخت و آموزش مدل بر مبنای مهندسی ویژگیها، انتخاب ویژگیها، انتخاب الگوریتم، بهینهسازی ابرپارامترها (در یادگیری ماشین خودکار ابرپارامترها به سنجه یا سنجههایی گفته میشود که بر روند یادگیری کنترل دارند. بهینهسازی ابرپارامترها که بهنام میزانسازی (Tuning) معروف است، فرآیند انتخاب مجموعهای از پارامترها برای یک الگوریتم هوشمند است.)، پشتهسازی ملزومات، تجمیع، استقرار مدل، ارزیابی و آزمایش مدل، تجاریسازی مدل و در نهایت بهکارگیری مدل برای حل مشکلات واقعی است. یادگیری ماشین خودکار گذرگاه کاملی برای فرآیندهای یادگیری ماشین پیادهسازی میکند که از مجموعه دادههای خام گرفته تا ساخت مدل قابل استفاده را شامل میشوند. با توجه به خودکار بودن AutoML حتا افراد غیر متخصص نیز میتوانند از مدلها و تکنیکهای یادگیری ماشین بدون نیاز به دانش تخصصی استفاده کنند. علاوه بر این، متخصصان میتوانند از یادگیری ماشین خودکار برای تولید راهحلهای سادهتر و ساخت مدلهایی استفاده کنند که عملکرد بهتری به نسبت مدلهایی دارند که به شکل دستی طراحی میشوند.
AutoML به دنبال خودکارسازی چه چیزی است؟
در یادگیری ماشین مرسوم، مجموعهای از دادههای ورودی برای یادگیری در اختیار الگوریتم قرار داده میشود. این دادههای خام ممکن است در قالبی مناسب آماده نشده باشند که برای آموزش یک الگوریتم یا الگوریتمهای مشابه از آنها استفاده کرد. برای اینکه دادهها برای یادگیری ماشین قابل استفاده باشند، یک متخصص باید روی مباحث بیشبرازش دادهها (Overfitting)، مهندسی ویژگیها، استخراج ویژگیها و روشی برای انتخاب ویژگیها متمرکز شود. بعد از این مرحله باید انتخاب الگوریتم و بهینهسازی پارامترها برای حداکثر کردن عملکرد پیشگویانه مدل انجام شود. همه این مراحل چالشهایی دارند و AutoML سعی میکند بهطور قابل ملاحظهای این مراحل را برای افراد غیر متخصص ساده کند. AutoML با هدف سادهسازی و تسریع در انجام این فرآیندها ابداع شده است. با اینحال یادگیری ماشین خودکار چالشهای جدیدی نیز به وجود آورده است. اولین چالش این است که چگونه باید به خروجی یک مدل مبتنی بر رویکرد AutoML اطمینان کرد، آیا این مدل واقعا بهترین مدلی است که باید ساخته میشد؟ به همین دلیل است که بیشتر فناوریها و راهحلهای AutoML قابلیت ویرایش برخی از ابرپارامترها را فراهم کردهاند تا توسعهدهندگان بتوانند مدلهای مختلفی را ایجاد و آنها را با یکدیگر مقایسه کنند. البته راهحل فوق معایبی نیز دارد. در حالی که ویرایش و دستکاری ابرپارامترها قابلیتهای خوبی در اختیار توسعهدهندگان قرار میدهد، اما برتریهای یادگیری ماشین خودکار که سادگی و سرعت است را از میان میبرد. دومین مشکلی که فناوریهای مرتبط با AutoML دارند وابستگی زیاد به دانش فنی است. به عبارت دقیقتر، AutoML به یک دانشمند داده نیاز دارد تا مدل طراحی شده را بررسی کند و مناسبترین مدل برای پیادهسازی را انتخاب کند. اگر چند مدل با عملکرد مناسب در مرحله ارزیابی در دسترس باشند، دانشمند داده باید از فناوریهای مکمل دیگری برای ساخت مدل نهایی که قابلیت تجاریسازی دارد استفاده کند. همین موضوع باعث میشود تا برتریهای ذاتی AutoML که سهولت و سرعت در بحث یادگیری است از میان برود. پژوهشگران برای غلبه بر این مشکلات راهکارهایی را پیشنهاد کردهاند. یکی از راهحلهای ارائه شده برای غلبه بر این مشکل، پیادهسازی AutoML در سطوح مختلف است. به لحاظ فنی تفاوت میان یادگیری ماشین خودکار و یادگیری ماشین سنتی در برخی از پارامترهایی است که قبلا ثابت و غیر قابل تغییر بودند، اما اکنون امکان ویرایش آنها وجود دارد، در سایر جنبهها تفاوتی میان این دو پارادایم وجود ندارد. در حالت اولیه، AutoML میتواند جستوجوی جامعی در ارتباط با ابرپارامترها و مدلهای در دسترس انجام دهد. آیا تصور میکنید این جمله برایتان آشنا است؟ حق دارید، زیرا ما درباره مفهومی صحبت میکنیم که جستوجوی فراگیر نام دارد. بله AutoML همان کاری را انجام میدهد که جستوجوی فراگیر انجام میدهد. با توجه به اینکه طراحی بهترین مدل سفارشی برای یک کاربرد خاص زمانبر و هزینهبر است، یادگیری ماشین خودکار این امکان را به وجود میآورد تا آزمایشهای بیشتری انجام دهیم. این آزمایشها میتوانند ایدههایی در اختیار ما قرار دهند که چه چیزی خوب کار میکند و چه مولفهای عملکرد جالبی ندارد. واقعیت این است که پیادهسازی مدلهای یادگیری ماشین امروزی بیشتر مبتنی بر رویکرد آزمون و خطا هستند و نمیتوان مطمئن بود که تمامی مولفهها کارکرد درستی داشته باشند. باید مدلها توسط آزمونهای مختلف بررسی و نتایج ارزیابی شوند تا خطاها شناسایی و رفع شوند. اگر هزینه پیادهسازی هر یک از آزمونها زیاد باشد باید محاسبات زیادی انجام شود تا مناسبترین گزینه انتخاب شود. همین مسئله انجام آزمونها را زمانبر میکند و هزینه زیادی به شرکتها وارد میکند.
بیشبرازش چیست؟
بیشبرازش (Overfitting) به پدیده نامطلوبی در مباحث آماری و یادگیری ماشین گفته میشود که درجه آزادی مدل بیشتر از درجه آزادی واقعی انتخاب میشود و در نتیجه اگرچه مدل روی داده استفاده شده برای یادگیری بسیار خوب پاسخ میدهد، اما روی دادههای جدید خطای زیادی دارد. برای مقابله با این پدیده و انتخاب درجه آزادی مناسب باید از روشهایی مثل وارسی-اعتبار (Cross-validation) و تنظیم (Regularization) استفاده کرد. بیشبرازش به این دلیل پدید میآید که معیار برازش مدل با معیاری که برای ارزیابی آن به کار میرود یکسان نیست. در مجموع بیشبرازش هنگامی اتفاق میافتد که مدل در هنگام برازش به جای یادگیری دادهها شروع به حفظ کردن آنها میکند.
هدف از بهکارگیری یادگیری ماشین خودکار چیست؟
یادگیری ماشین خودکار میتواند در حوزههای مختلف مرتبط با طراحی الگوریتمهای هوشمند استفاده شود. از جمله این حوزهها باید به آمادهسازی دادهها (Data preparation)، تشخیص نوع ستونها (منطقی، اعداد گسسته، پیوسته یا متنی)، تشخیص دلیل ساخت ستونها (برچسب داده، طبقهبندی، ویژگیهای عددی، ویژگیهای متنی)، تشخیص وظیفه (طبقهبندی دودویی ، رگرسیون، طبقهبندی (classification)، مهندسی ویژگی، انتخاب ویژگیها، استخراج ویژگی، یادگیری متا و یادگیری انتقال، تشخیص و اصلاح مقادیر جا افتاده/اشتباه یا گمشده، انتخاب مدل، بهینهسازی ابرپارامترهای الگوریتم یادگیری، انتخاب گذرگاه انتقال داده بر اساس محدودیتهای زمان، حافظه و محدودیتهای پیچیدگی، انتخاب معیارهای ارزیابی و روشهای اعتبارسنجی، بررسی مشکلات، تشخیص نشت (Leakage detection)، تشخیص تنظیمات نادرست (Misconfiguration detection)، تجزیه و تحلیل نتایج به دست آمده و تصویرسازی اشاره کرد.
یادگیری ماشین خودکار به چه مراحلی تقسیم میشود؟
بهطور کلی فرآیند یادگیری ماشین خودکار را میتوان به سه بخش اصلی آمادهسازی دادهها، مهندسی ویژگیها، ایجاد و تخمین عملکرد مدل تقسیم کرد.
1. آمادهسازی دادهها
بدون وجود دادهها امکان ساخت هیچ مدل یا الگوریتم هوشمندی فراهم نیست. بنابراین پژوهشگران باید به دنبال جمعآوری دادهها و آمادهسازی دادهها باشند. مرحله آمادهسازی دادهها شامل زیرمجموعههایی به شرح زیر است:
جمعآوری دادهها
پژوهشگران برای آمادهسازی مدلها و انجام تحقیقات گسترده به حجم انبوهی از دادهها نیاز دارند تا خوراک موردنیاز مدلهای هوشمند را تامین کنند. به همین دلیل مجموعه دادههای مفیدی به شکل رایگان در اختیار توسعهدهندگان قرار دارد. در مراحل اولیه توسعه یادگیری ماشین، مجموعه دادهها در قالب اعداد دستنویس توسعه داده شدند و پس از آن بزرگ دادههایی مثل CIFAR-10، CIFAR-100 و ImageNet توسعه یافتند. بزرگ دادههای مختلفی مثل Kaggle، Google Dataset Search و Elsevier Data که برای این منظور آماده شدهاند در ۳ ژوئن ۲۰۲۰ توسط Wayback Machine در دسترس توسعهدهندگان قرار گرفتند، با اینحال مجموعه دادههایی که برای کاربردهای خاص به آنها نیاز است و مرتبط با اطلاعات خصوصی هستند با این روشها در دسترس نیستند. برای حل این مشکل دو راهحل پیشنهاد میشود:
جستوجوی داده
با جستوجو در وب که منبعی پایانناپذیر از دادهها است، این امکان وجود دارد تا برخی دادهها را به دست آورد، اما روش فوق با مشکلات زیادی مثل نامعتبر بودن دادهها یا نداشتن برچسب دادهها روبرو است. پژوهشگران برای حل این مشکلات روشهایی مثل برچسبزنی خودکار دادهها را ابداع کردند.
شبیهسازی دادهها
شبیهسازی دادهها یکی از پر کاربردترین روشها برای تولید دادهها است. عملکرد فناوری فوق به این صورت است که پژوهشگران از شبیهسازهایی استفاده میکنند که تا حد ممکن به دنیای واقعی شبیه است. OpenAI Gym یک ابزار معروف برای ایجاد محیطهای شبیهساز مختلف است. روش دوم تولید دادهها با استفاده از شبکههای مولد تخاصمی (Generative Adversarial Networks) است.
پالایش دادهها
دادههای جمعآوری شده با اغتشاش و ناهمگونی زیادی روبرو هستند، بهطوری که نویز میتواند تاثیر منفی در آموزش مدل داشته باشد، بنابراین باید فرایند پاکسازی دادهها (data cleaning) انجام شود. بهطور معمول پاکسازی دادهها به وجود افراد متخصصی نیاز دارد که تعدادشان کم است و برای انجام اینکار دستمزدهای زیادی دریافت میکنند. به همین دلیل روشها و سیستمهایی مانند BoostClean برای خودکارسازی این فرآیند ابداع شدند. البته این سیستمها تنها روی مجموعه دادههای ثابتی میتوانند کار کنند و در نتیجه در دنیای واقعی که روزانه دادههای زیادی در آن تولید میشود پاسخگو نیستند.
افزونگی دادهها
افزونگی دادهها (Data Augmentation) به این موضوع اشاره دارد که میتوان دادههای جدیدی بر اساس دادههای موجود تولید کرد و تا حدودی از ابزارهای جمعآوری دادهها برای این منظور استفاده کرد. از رویکرد فوق برای نظمدهی (Regularization) و مقابله با مشکل
بیش-برازش (Over-Fit) دادههای آموزشی استفاده میشود. بهطور مثال، در مبحث بینایی ماشین این امکان وجود دارد که از مکانیزم افزونگی دادهها در ارتباط با دادههای تصویری و برای بزرگ یا کوچک کردن تصویر یا بریدن بخشهایی از آن با هدف ساخت تصاویر جدید استفاده کرد. از اولین سامانههایی که بر مبنای این تکنیک پیادهسازی شدند باید به AutoAugment اشاره کرد.
فرآیند بیشبرازش دادهها بهطور کامل و دقیق توسط هیچیک از ابزارهای AutoML پیادهسازی نشدهاند و باید کار بیشتری انجام شود تا ابزاری دقیق در اختیار توسعهدهندگان قرار گیرد.
2. مهندسی ویژگیها
هدف مهندسی ویژگیها (Feature Engineering) بیشینه کردن ویژگیهای استخراج شده از دادههای خام برای استفاده توسط الگوریتمها و مدل است. این بخش خود شامل زیرمجموعههای دیگری به شرح زیر است:
- انتخاب ویژگیها: در انتخاب ویژگیها (Feature Selection) یک زیر مجموعه از ویژگیها از روی مجموعه اصلی ویژگیها با حذف ویژگیهای نامربوط یا تکراری انتخاب میشود. اینکار به این دلیل انجام میشود تا فرآیند طراحی مدل سادهتر شود تا نیازی به مرحله بیشبرازش نباشد و عملکرد مدل بهبود پیدا کند. از جمله روشهای موجود در این زمینه باید به جستوجوی اول سطح، اول بهترین، الگوریتمهای تبرید شبیهسازیشده (Simulated annealing) و الگوریتمهای ژنتیک اشاره کرد.
- ساخت ویژگی: در فرآیند ساخت ویژگی (Feature Construction) ویژگیهای جدیدی از دادههای خام ساخته میشوند تا قابلیت تعمیم و مقاومت (robustness) مدل ارتقا پیدا کند. بهطور مثال، از روشهایی مثل متمم ویژگیهای منطقی و کمینه یا بیشینه کردن دادههای عددی استفاده میشود.
- استخراج ویژگیها: استخراج ویژگیها (Feature Extraction) راهکاری برای کاهش بعد است. این فرآیند متکی بر توابع تناظر (mapping function) است تا اطلاعات و ویژگیهای غیر تکراری بر مبنای سنجههای مشخص استخراج شوند. استخراج ویژگیها مبتنی بر تابع تناظری است که میتواند با روشی مانند PCA پیادهسازی شود. البته برخی پژوهشگران بر این باور هستند که میتوان از شبکههای عصبی پیشخور ( feed-forward) برای این منظور استفاده کرد.
3. ساخت و تخمین عملکرد مدل
ساخت مدل به دو بخش فضای جستوجو و روشهای بهینهسازی تقسیم میشود. در فضای جستوجو ساختاری که مدل بر مبنای آن ساخته میشود تعریف میشود. در حالت کلی، مدلها به سه گروه مدلهای معمول یادگیری ماشین (SVM)، الگوریتم کی-نزدیکترین همسایه (k-nearest neighbors) و درخت تصمیمگیری شبکههای عصبی عمیق (DNN) تقسیم میشوند که هر یک تعاریف خاص خود را دارند.
چگونه میتوان یادگیری ماشین خودکار را پیادهسازی کرد؟
امروزه راهحلهای مختلفی برای خودکارسازی فرآیند ساخت مدلهای یادگیری ماشین در دسترس پژوهشگران قرار دارد. روشهای ساده و ابتدایی جستوجوی تصادفی و جستوجوی مشبک کاربردهای گستردهای در این زمینه دارند، زیرا پیادهسازی آنها ساده است. اما این راهحلها بهترین عملکرد را ارائه نمیکنند. در حقیقت کیفیت عملکرد این روشهای جستوجو ثابت است و قرار نیست یادگیری بر مبنای نتایج گذشته انجام شود و به همین دلیل در طول زمان شاهد بهبود سطح عملکرد مدلهایی که مبتنی بر این روش هستند نخواهیم بود. امروزه راهحلهای نوین یادگیری فرایافته (Meta-Learning) نتایج بهتری نسبت به راهحلهای پیشین دارند.
از جمله راهحلهای نوینی که اجازه پیادهسازی یادگیری ماشین خودکار را میدهند باید به الگوریتمهای تکاملی، بهینهسازی مبتنی بر گرادیان و بهینهسازی بیز اشاره کرد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟