در این روش، الگوریتم تمامی دادههای آموزشی را در حافظه نگه میدارد و تا زمانی که یک نمونه جدید برای پیشبینی ارائه شود، هیچ محاسبات پیچیدهای انجام نمیدهد. هنگامی که یک نمونه جدید وارد سیستم میشود، الگوریتم Lazy learning تمامی دادههای آموزشی را با این نمونه جدید مقایسه کرده و بر اساس نزدیکترین نمونههای آموزشی، پیشبینی خود را انجام میدهد. این کار به این معنی است که مدل یادگیری Lazy learning در واقع در زمان پیشبینی ساخته میشود.
کاربردهای Lazy Learning چیست؟
همانگونه که اشاره کردیم، Lazy learning به عنوان یک روش انعطافپذیر و ساده در یادگیری ماشین، کاربردهای متنوعی در مسائل مختلف دارد. اولین مورد، طبقهبندی دادهها است. الگوریتمهای Lazy learning مانند k-NN به طور گستردهای برای طبقهبندی دادههای جدید بر اساس نزدیکترین همسایگانشان استفاده میشوند. این روش در حوزههایی مانند تشخیص پزشکی، تشخیص تقلب و تحلیل احساسات کاربرد دارد. با استفاده از الگوریتمهایی مانند LWLR، میتوان مقادیر پیوسته یک ویژگی را بر اساس دادههای آموزشی پیشبینی کرد. این کاربرد در پیشبینی قیمت خانه، پیشبینی میزان فروش محصولات و تحلیل سریهای زمانی کاربرد دارد. همچنین، در سیستمهای توصیهگر، الگوریتمهای Lazy learning برای یافتن کاربران یا آیتمهای مشابه و ارائه توصیههای شخصیسازی شده استفاده میشوند. این روش در حوزههایی مانند تجارت الکترونیک، سیستمهای توصیهگر موسیقی و فیلم کاربرد دارد. در برخی از مسائل پردازش زبان طبیعی، مانند تشخیص نام موجودیت و طبقهبندی متن، از الگوریتمهای یادگیری Lazy learning برای طبقهبندی یا برچسبگذاری کلمات یا عبارات استفاده میشود. در سیستمهای تشخیص هویت مبتنی بر بیومتریک، مانند تشخیص چهره یا اثر انگشت، الگوریتمهای یادگیری Lazy learning برای مقایسه ویژگیهای بیومتریک افراد جدید با پایگاه دادهای از ویژگیهای شناخته شده استفاده میشوند.
مزیت اصلی یادگیری Lazy learning در انعطافپذیری آن است. این روش به راحتی میتواند برای دادههای جدید و متفاوت تطبیق داده شود و نیازی به آموزش مجدد یک مدل پیچیده ندارد. همچنین، یادگیری تنبل برای دادههایی که به طور مداوم در حال تغییر هستند مناسب است. با این حال، باید توجه داشت که یادگیری Lazy learning محدودیتهایی دارد. این روش در فرآیند پردازش دادههای بزرگ ممکن است به دلیل پیچیدگی محاسباتی زمانبر باشد. همچنین، برای دادههایی که دارای ابعاد بالایی هستند، ممکن است به الگوریتمهای کاهش ابعاد نیاز باشد.
مزایای Lazy learning
یادگیری Lazy learning روشی است که در آن، مدل تا زمان مواجهه با دادههای جدید، هیچ تعمیمی انجام نمیدهد و تمامی محاسبات را به زمان پیشبینی موکول میکند. این ویژگیها مزایای متعددی به همراه دارد. اولین مورد سادگی پیادهسازی است. الگوریتمهای یادگیری Lazy learning معمولا ساختار سادهای دارند و پیادهسازی آنها نسبت به برخی از روشهای یادگیری کوشا آسانتر است. این روش برای دادههایی که به طور مداوم در حال تغییر هستند بسیار مناسب است. چرا که مدل میتواند به راحتی با اضافه شدن دادههای جدید بهروزرسانی شود و نیازی به آموزش مجدد از ابتدا نیست. در مواردی که دادههای جدید بسیار شبیه به دادههای آموزشی باشند، یادگیری Lazy learning میتواند دقت بسیار بالایی داشته باشد. زیرا مدل بر اساس نزدیکترین همسایگان به نمونه جدید تصمیمگیری میکند و این امر باعث میشود که مدل به تغییرات کوچک در دادههای جدید حساس باشد.
در یادگیری Lazy learning، نیازی به ساخت یک مدل پیچیده و جامع از دادهها نیست. این امر میتواند باعث کاهش زمان آموزش و همچنین کاهش احتمال اورفیتینگ شود. در برخی از الگوریتمهای یادگیری Lazy learning مانند k-NN، میتوان به راحتی به نتایج پیشبینی شده تفسیر پذیر دست یافت. به عنوان مثال، میتوان با بررسی نزدیکترین همسایگان به یک نمونه جدید، دلایل تصمیمگیری مدل را بررسی کرد. در نهایت Lazy learning برای دادههای با ابعاد بالا مناسب است، زیرا این روش به مدل پیچیدهای نیاز ندارد و میتواند با استفاده از معیارهای سادهای مانند فاصله اقلیدسی، شباهت بین نمونهها را محاسبه کند.
معایب یادگیری Lazy learning
یادگیری Lazy learning با وجود مزایای متعدد، دارای محدودیتهایی نیز هست که در برخی از کاربردها میتواند عملکرد آن را تحت تاثیر قرار دهد. برخی از مهمترین معایب به شرح زیر هستند:
- سرعت پایین در زمان پیشبینی: یکی از بزرگترین مشکلات یادگیری Lazy learning، کندی سرعت پیشبینی است. در این روش، برای هر نمونه جدید، باید کل مجموعه داده آموزشی را با آن مقایسه کرد تا نزدیکترین همسایگان پیدا شوند. این امر باعث میشود که زمان پیشبینی به خصوص برای مجموعه دادههای بزرگ بسیار طولانی شود.
- حساسیت به ابعاد داده: با افزایش تعداد ویژگیها (ابعاد) دادهها، محاسبه فاصله بین نمونهها پیچیدهتر شده و ممکن است به الگوریتمهای کاهش ابعاد نیاز داشته باشد. این مسئله به پدیده "نفرین بعد" معروف است.
- عدم تعمیمپذیری خوب در دادههای جدید: اگر دادههای جدید بسیار متفاوت از دادههای آموزشی باشند، ممکن است مدل یادگیری Lazy learning عملکرد ضعیفی داشته باشد. زیرا این مدل بر اساس دادههای آموزشی محلی تصمیمگیری میکند و نمیتواند به خوبی الگوهای کلی دادهها را بیاموزد.
- نیاز به حافظه زیاد: از آنجایی که تمامی دادههای آموزشی در حافظه نگه داشته میشوند، یادگیری Lazy learning برای مجموعه دادههای بسیار بزرگ ممکن است به حافظه زیادی نیاز داشته باشد.
- حساسیت به نویز: اگر دادههای آموزشی حاوی نویز زیادی باشند، الگوریتمهای یادگیری Lazy learning ممکن است به این نویز حساس بوده و پیشبینیهای نادرستی انجام دهند.
- عدم توانایی در یادگیری مفاهیم پیچیده: یادگیری Lazy learning در یادگیری مفاهیم پیچیده و غیرخطی که نیاز به مدلهای پیچیدهتری دارند، ممکن است عملکرد خوبی نداشته باشد.
الگوریتمهای رایج یادگیری Lazy learning
الگوریتمهای یادگیری Lazy learning از طریق به تاخیر انداختن فرایند تعمیم تا زمان دریافت پرسش، رویکردی ساده و انعطافپذیر در یادگیری ماشین ارائه میدهند. از جمله مهمترین و پرکاربردترین الگوریتمهای این دسته میتوان به موارد زیر اشاره کرد:
k-Nearest Neighbors: الگوریتم k-NN یکی از شناختهشدهترین و سادهترین روشهای یادگیری Lazy learning است. در k-NN، برای هر نمونه جدید، k نزدیکترین همسایه از مجموعه دادههای آموزشی پیدا میشود و بر اساس برچسب کلاس این همسایهها، کلاس نمونه جدید پیشبینی میشود. انتخاب مقدار مناسب برای k از اهمیت بالایی برخوردار است، زیرا مقدار کوچک k باعث حساسیت به نویز شده و مقدار بزرگ k میتواند باعث از دست رفتن جزئیات شود. این الگوریتم بر اساس اصل "اشیا مشابه، ویژگیهای مشابهی دارند" عمل میکند. به عبارت دیگر، k-NN فرض میکند که نمونههای دادهای که به لحاظ فاصله در فضای ویژگی به هم نزدیکتر هستند، به یک کلاس تعلق دارند.
به عنوان مثال، اگر اکثریت k همسایه به کلاس A تعلق داشته باشند، نمونه جدید نیز به کلاس A طبقهبندی میشود. در حالت رگرسیون، مقدار ویژگی هدف نمونه جدید به صورت میانگین مقادیر ویژگی هدف k همسایه محاسبه میشود.
Locally Weighted Linear Regression: الگوریتم LWLR برای مسائل رگرسیون استفاده میشود و به جای ساخت یک مدل سراسری، برای هر نمونه جدید یک مدل خطی محلی ایجاد میکند. وزنهای این مدل خطی بر اساس فاصله نمونههای آموزشی از نمونه جدید تعیین میشوند. LWLR انعطافپذیری بالایی دارد و میتواند به خوبی با دادههای غیرخطی سازگار شود. این روش برخلاف رگرسیون خطی معمولی که یک مدل خطی واحد برای کل مجموعه داده میسازد، برای هر نقطه داده جدید یک مدل خطی محلی ایجاد میکند. به عبارت دیگر، LWLR به جای یافتن یک خط (یا سطح در ابعاد بالاتر) که به بهترین شکل به همه نقاط دادهای متصل شود، برای هر نقطه جدید یک خط محلی مییابد که به بهترین شکل به آن نقطه و همسایگان نزدیکش متصل شود. در LWLR، وزن هر نقطه داده آموزشی بر اساس فاصله آن از نقطه جدید تعیین میشود. نقاط نزدیکتر وزن بیشتری و نقاط دورتر وزن کمتری دریافت میکنند. به این ترتیب، مدل خطی محلی بیشتر تحت تأثیر نقاط دادهای قرار میگیرد که به نقطه جدید نزدیکتر هستند. با تغییر نقطه جدید، مدل خطی محلی نیز تغییر میکند و این انعطافپذیری باعث میشود LWLR بتواند روابط پیچیدهتری را نسبت به رگرسیون خطی معمولی مدل کند.
Radius Neighbors: این الگوریتم مشابه k-NN است با این تفاوت که به جای تعداد همسایهها، یک شعاع مشخص میشود و تمامی همسایگانی که در این شعاع قرار دارند، در نظر گرفته میشوند. این روش میتواند در مواردی که تراکم دادهها در نقاط مختلف متفاوت است، عملکرد بهتری داشته باشد. الگوریتم همسایگان شعاعی (Radius Neighbors) یکی دیگر از الگوریتمهای پر کاربرد در این زمینه است که شباهت زیادی به الگوریتم k-NN دارد. اما تفاوت اصلی این دو الگوریتم در نحوه انتخاب همسایگان است. در k-NN، تعداد همسایگان (k) از قبل تعیین میشود و سپس k نزدیکترین همسایه به نمونه جدید برای پیشبینی استفاده میشوند. اما در الگوریتم همسایگان شعاعی، به جای تعیین تعداد همسایگان، یک شعاع مشخص میشود و تمامی همسایگانی که در این شعاع قرار دارند، در نظر گرفته میشوند. در این الگوریتم، ابتدا یک شعاع مشخص میشود. سپس برای هر نمونه جدید، تمامی نمونههای آموزشی که فاصله آنها از نمونه جدید کمتر از این شعاع باشد، به عنوان همسایگان در نظر گرفته میشوند. سپس بر اساس برچسب کلاس این همسایگان (در مسائل طبقهبندی) یا میانگین مقدار ویژگی هدف آنها (در مسائل رگرسیون)، کلاس یا مقدار پیشبینی شده برای نمونه جدید تعیین میشود.
Kernel-based methods: این دسته از الگوریتمها از توابع هسته برای تعریف شباهت بین نمونهها استفاده میکنند. توابع هسته میتوانند روابط پیچیدهتری بین دادهها را مدل کنند و در نتیجه به مدلهای قویتری منجر شوند. روشهای مبتنی بر هسته یکی از ابزارهای قدرتمند در یادگیری ماشین هستند که برای حل مسائل مختلفی مانند طبقهبندی، رگرسیون و کاهش ابعاد استفاده میشوند. ایده اصلی این روشها، تبدیل دادهها از فضای اصلی به یک فضای با ابعاد بالاتر است که در آن دادهها به صورت خطیتر قابل تفکیک باشند. این تبدیل با استفاده از توابعی به نام هسته انجام میشود. توابع هسته، شباهت بین دو نقطه داده را محاسبه میکنند و این شباهت به عنوان یک ویژگی جدید به فضای ویژگی اضافه میشود. با استفاده از این ویژگیهای جدید، میتوان مدلهای خطی سادهای را برای حل مسائل پیچیدهتر استفاده کرد. یکی از مزایای مهم روشهای مبتنی بر هسته، توانایی آنها در مدلسازی روابط غیرخطی بین دادهها است. در واقع، با انتخاب یک هسته مناسب، میتوان هر تابعی را به صورت ترکیب خطی از توابع پایه در فضای جدید نمایش داد. از معروفترین الگوریتمهای مبتنی بر هسته باید به ماشین بردار پشتیبان (SVM) اشاره کرد که یکی از محبوبترین الگوریتمهای یادگیری ماشین است که با استفاده از هستهها میتواند مسائل طبقهبندی و رگرسیون را با دقت بسیار بالا حل کند. همچنین، تجزیه مولفههای اصلی مبتنی بر هسته (Kernel PCA) یک روش کاهش ابعاد است که با استفاده از هستهها، دادهها را به یک فضای با ابعاد پایینتر نگاشت میکند. از مزایای روشهای مبتنی بر هسته یا کرنل باید به انعطافپذیری بالا (توانایی مدلسازی روابط غیرخطی پیچیده بین دادهها)، دقت بالا (در بسیاری از مسائل، روشهای مبتنی بر هسته دقت بالایی دارند)، تئوری قوی (این روشها بر اساس تئوریهای ریاضی قوی بنا شدهاند) و غیره اشاره کرد. با این حال، معایبی نیز دارند که از آن جمله باید به انتخاب هسته (انتخاب هسته مناسب برای یک مسئله خاص میتواند چالشبرانگیز باشد)، پیچیدگی محاسباتی (برای مجموعه دادههای بزرگ، محاسبه ماتریس هسته میتواند زمانبر باشد)، بیش برازش (اگر هسته بیش از حد انعطافپذیر باشد، ممکن است مدل به دادههای آموزشی بیش از حد برازش کند) و غیره اشاره کرد.
به طور کلی، انتخاب الگوریتم مناسب یادگیری Lazy Learning به عوامل مختلفی از جمله نوع مسئله، اندازه مجموعه داده، تعداد ویژگیها و توزیع دادهها بستگی دارد. در برخی موارد، ترکیبی از این الگوریتمها نیز میتواند به نتایج بهتری منجر شود.
یادگیری تنبل (Lazy Learning) در مقابل یادگیری مشتاق (Eager Learning)
در حوزه یادگیری ماشین، دو رویکرد کلی برای ساخت مدلهای پیشبینی وجود دارد: یادگیری تنبل و یادگیری مشتاق. هر یک از این رویکردها مزایا و معایب خاص خود را دارند و انتخاب بین آنها به مسئله مورد نظر، حجم دادهها و منابع محاسباتی بستگی دارد.
یادگیری تنبل رویکردی است که در آن مدل تا زمانی که یک نمونه جدید برای پیشبینی ارائه نشود، ساخته نمیشود. به عبارت دیگر، این الگوریتمها هیچ مرحله آموزشی مشخصی ندارند و تنها در زمان پیشبینی، با استفاده از دادههای آموزشی، مدل را ایجاد میکنند. از جمله مزایای یادگیری تنبل میتوان به سادگی پیادهسازی و انعطافپذیری بالا اشاره کرد. اما از معایب آن میتوان به کندی سرعت پیشبینی برای مجموعه دادههای بزرگ و عدم توانایی در یادگیری مفاهیم پیچیده اشاره کرد. الگوریتمهای k-NN و همسایگان شعاعی از جمله نمونههای بارز یادگیری تنبل هستند.
یادگیری مشتاق بر خلاف یادگیری تنبل، در مرحله آموزش یک مدل جامع از دادههای آموزشی ایجاد میکند. این مدل در مراحل بعدی برای پیشبینی نمونههای جدید استفاده میشود. از مزایای یادگیری مشتاق میتوان به سرعت بالای پیشبینی و توانایی در یادگیری مفاهیم پیچیده اشاره کرد. اما از معایب آن میتوان به نیاز به زمان و منابع محاسباتی بیشتر در مرحله آموزش و احتمال اُورفیتینگ اشاره کرد. الگوریتمهای درخت تصمیم، جنگل تصادفی و شبکههای عصبی از جمله نمونههای بارز یادگیری مشتاق هستند.
به طور کلی، یادگیری تنبل و یادگیری مشتاق هر دو رویکردهای قدرتمندی در یادگیری ماشین هستند. انتخاب بین این دو رویکرد به عوامل مختلفی مانند اندازه مجموعه داده، پیچیدگی مسئله، زمان پاسخدهی مورد نیاز و منابع محاسباتی بستگی دارد. در مواردی که سرعت پیشبینی اهمیت زیادی دارد و مجموعه دادهها بزرگ هستند، یادگیری مشتاق گزینه مناسبتری است. در مقابل، در مواردی که دادهها به طور مداوم در حال تغییر هستند و نیاز به انعطافپذیری بالایی است، یادگیری تنبل میتواند گزینه بهتری باشد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟