مجله هوش مصنوعی

آخرین اخبار و تکنولوژی های هوش مصنوعی را در اینجا بخوانید.

مجله هوش مصنوعی

آخرین اخبار و تکنولوژی های هوش مصنوعی را در اینجا بخوانید.

تفاوت یادگیری بانظارت و بدون نظارت


حوزه یادگیری ماشین با دو نوع یادگیری تحت عنوان یادگیری بانظارت و بدون نظارت بدون نظارتشناخته می‌شود. اصلی‌ترین تفاوت یادگیری بانظارت و بدون نظارت آن است که یادگیری بانظارت با وضعیت واقعیانجام می‌شود؛ به عبارت دیگر، از قبل می‌دانیم که نمونه‌هایمان باید چه مقادیر خروجی داشته باشند.بنابراین، هدف یادگیری بانظارت این است که تابعی را فرا گیرد که به بهترین شکل رابطه میان ورودی و خروجی را در داده‌ها تخمین می‌زند. از سوی دیگر، یادگیری بدون نظارت فاقد خروجی برچسب‌دار است. بر اساس این نوع یادگیری، ساختار طبیعیِ موجود در یک مجموعه نقاط داده‌ای استنتاج می‌شود.

یادگیری بانظارتتفاوت یادگیری بانظارت و بدون نظارت

یادگیری بانظارت معمولاً در زمینه دسته‌بندی به کار گرفته می‌شود. وقتی بخواهیم ورودی را در برچسب‌های گسسته خروجی یا خروجی پیوسته نگاشت دهیم، این نوع یادگیری به کارمان می‌آید. از جمله الگوریتم‌های متداول در یادگیری بانظارت می‌توان به رگرسیون لجستیک ،بیزی ساده ، ماشین‌های بردار پشتیبان(SVM)، شبکه‌های عصبی مصنوعیو غیره اشاره کرد. در رگرسیونو دسته‌بندی، هدف این است که در ابتدا ساختارها یا روابط خاص در داده‌ها را پیدا کنیم. این کار می‌تواند نقش موثری در تولید داده‌های خروجی صحیح داشته باشد. توجه داشته باشید که خروجی صحیح به طور کلی از داده‌های آموزشی به دست می‌آید؛ پس گرچه این پیش‌فرض وجود دارد که مدل‌مان به درستی عمل می‌کند، اما نمی‌توان مدعی شد که برچسب‌ داده‌ها همیشه و در هر شرایطی درست و بی‌نقص هستند. برچسب‌های داده‌ای نویزدار یا نادرست می‌توانند از تاثیرگذاری مدل کاسته و کارآیی را پایین آورند.
پیچیدگی مدلو مصالحه بایاس-واریانساز جمله نکات مهمی هستند که در هنگام بکارگیری روش یادگیری بانظارت مستلزم توجه هستند. پیچیدگی مدل اشاره به سطح پیچیدگیِ تابعی دارد که خواهان یادگیری آن هستید. ماهیت داده‌های آموزشی یک عامل تعیین‌کننده در سطح پیچیدگی مدل برشمرده می‌شود. اگر میزان داده اندکی در اختیار دارید یا اگر داده‌هایتان در سناریوهای احتمالیِ مختلف به طور یکنواخت توزیع نشده است، باید سراغ مدلی بروید که سطح پیچیدگی کمتری دارد. زیرا اگر مدل بسیار پیچیده‌ای در تعداد اندکی از نقاط داده مورد استفاده قرار گیرد، مدل دچار بیش‌برازش خواهد شد. بیش‌برازش به یادگیری تابعی اشاره می‌کند که مطابقت بالایی با داده‌های آموزشی دارد و امکان تعمیم آن به سایر نقاط داده وجود ندارد. به عبارت دیگر، مدل سعی می‌کند داده‌های آموزشی خود را بدون خطا بازتولید کند در حالی که ساختار یا روندی حقیقی در داده‌ها را یاد نگرفته است. فرض کنید می‌خواهید یک منحنی را بین دو نقطه برازش کنید. از دید نظری، می‌توانید از تابعی با درجه دلخواه استفاده کنید؛ اما از دید عمَلی، ترجیح می‌دهید که تابع خطی را بر‌گزینید.

رابطه بایاس-واریانس

رابطه بایاس-واریانس به تعمیم مدل اشاره می‌کند. در همه مدل‌ها، تعادلی میان بایاس (عبارت خطای ثابت) و واریانس (مقدار خطایی که می‌تواند در مجموعه‌های آموزشی مختلف متغیر باشد) برقرار است. بنابراین، بایاس زیاد و واریانس کم می‌تواند مدلی باشد که ۲۰ درصد مواقع دچار اشتباه می‌شود. اما مدل بایاس کم و واریانس زیاد می‌تواند بسته به داده‌های استفاده شده برای آموزش مدل، ۵ اِلی ۵۰ درصد مواقع اشتباه کند. به این مسئله توجه داشته باشید که بایاس و واریانس در جهت مخالف یکدیگر حرکت می‌کنند؛ افزایش بایاس معمولاً واریانس کمتر را در پی دارد، و بالعکس.

مسئله و ماهیت داده‌ها در هنگام ساخت مدل باید این فرصت را در اختیارمان بگذارد تا در خصوص طیف بایاس-واریانس تصمیم آگاهانه‌ای اتخاذ کنیم. به طور کلی، اگر سطح بایاس زیاد باشد، عملکرد مدل با تضمین کمتری همراه خواهد بود. عملکرد مدل در انجام برخی از امور اهمیت فراوانی دارد. افزون بر این، برای اینکه مدل‌هایی بسازیم که به خوبی قابلیت تعمیم داشته باشند، واریانس مدل باید با اندازه و پیچیدگی داده‌های آموزشی همخوانی داشته باشد. معمولاً یادگیری دیتاست‌های ساده و کوچک با مدل‌هایی انجام می‌شود که واریانس کمتری دارند. در حالیکه دیتاست‌ های بزرگ و پیچیده مستلزم مدل‌هایی با واریانس بالاتر هستند تا ساختار داده‌ها را به طور کامل یاد گیرند.

یادگیری بدون نظارتتفاوت یادگیری بانظارت و بدون نظارت

از جمله متداول‌ترین کارهایی که می‌توان با یادگیری بدون نظارت انجام داد، می‌توان به خوشه‌بندی ، یادگیری ارائه و تخمین چگالی اشاره کرد. در همه این موارد، به دنبال یادگیری ساختار ذاتی داده‌ها بدون استفاده از برچسب‌ داده¬های هستیم. برخی از الگوریتم‌های رایج عبارتند از خوشه بندی k-means، تحلیل مولفه اصلی ، خود رمزگذار. چون هیچ برچسبی ارائه نشده، هیچ روش مشخصی برای مقایسه عملکرد مدل در اکثر روش‌های یادگیری بدون نظارت موجود نیست. روش‌های یادگیری بدون نظارت در تحلیل‌های اکتشافی و کاهش بُعد نیز مورد استفاده قرار می‌گیرند. روش‌های یادگیری بدون نظارت در تجزیه و تحلیل‌های اکتشافی خیلی مفید هستند زیرا قادرند ساختار را به طور خودکار در داده شناسایی کنند. برای نمونه، اگر تحلیلگری بخواهد مصرف‌کنندگان را تفکیک کند، روش‌های یادگیری بدون نظارت می‌تواند شروع بسیار خوبی برای تحلیل باشد. در مواردی که بررسی روندهای موجود در داده‌ها برای انسان امکان‌ناپذیر است، روش‌های یادگیری بدون نظارت می‌توانند بینش مناسبی فراهم کرده و برای آزمودن تک‌تکِ فرضیه‌ها به کار برده شوند. کاهش بُعد به روش‌هایی اطلاق می‌شود که داده‌ها را با استفاده از ویژگی‌ها یا ستون‌های کمتری به نمایش می‌گذارند. روش‌های یادگیری بدون نظارت در اجرای این روش «کاهش بعد» کاربرد دارد. در یادگیری ارائه، یادگیری روابط میان ویژگی‌های فردی در دستور کار قرار می‌گیرد. لذا این فرصت برایمان ایجاد می‌شود تا داده‌های خود را با استفاده از ویژگی‌های پنهان ارائه کنیم. این ساختارهای پنهان معمولا با تعداد ویژگی های کمتری نسبت به ویژگی های اولیه نمایش داده می‌شوند، همین مسئله به ما اجازه می‌دهد که پردازش بیشتری با حساسیت کمتری بر روی داده ها داشته باشیم، همچنین از این طریق ویژگی های اضافی حذف می‌گردند.

تفاوت یادگیری بانظارت و بدون نظارت

تفاوت یادگیری بانظارت و بدون نظارت: دسته‌بندی الگوریتم‌های یادگیری ماشین

منبع: hooshio.com

با یادگیری بدون نظارت برای سفر به پاریس برنامه‌ریزی کنید


تاکنون به این موضوع فکر کرده‌اید که یادگیری بدون نظارت برای سفر می‌‌تواند به شما در برنامه‌ریزی سفر به پاریس کمک کند؟ با ما همراه باشید تا بگوییم چگونه این کار شدنی است. ابتدا ما فهرستی از چشم‌اندازها و مکان‌های دیدنی پاریس تهیه کرده‌ایم تا علاقمندان از آن استفاده کنند. پس از اینکه فهرست‌بندی مکان‌ها و جاذبه‌های گردشگری به پایان رسید، یک نقشه گوگل هم ساخته شد. مشاهده تمامی جاذبه‌های گردشگری پاریس به برنامه‌ریزی خاصی احتیاج دارد؛ اما سوال اینجاست که چطور می‌توان تصمیم گرفت از کدام جاذبه‌ها در وهله اول دیدن کرد و از چه ترتیبی باید پیروی کرد؟ ما این کار را به منزلۀ یک مسئله خوشه‌بندی تلقی می‌کنیم. روش یادگیری بدون نظارت می‌تواند نقش مهمی در حل این مسئله ایفا کند.

 

الگوریتم هایی نظیر K-Means یا DBScan هم در این مسئله می‌توانند به کار آیند. اما در ابتدا باید داده‌ها را آماده کرد تا چنین الگوریتم‌هایی مطابق خواسته‌ها عمل کند.

 

یادگیری بدون نظارت

موقعیت جغرافیایی و آماده‌سازی داده‌ها

پیش از هرچیز موقعیت‌های جغرافیایی را در پین نقشه گوگل با فرمت دوبعدی بررسی کردیم. تبدیل پین‌ها به طول جغرافیایی و عرض جغرافیایی می‌تواند اقدام بسیار خوبی باشد. ما به دنبال راهی سریع‌تر برای استخراج این اطلاعات از نقشه گوگل بودیم. StackOverflow کمک می‌کند تا به همه خواسته‌هایمان برسیم. شما باید به این لینک مراجعه کرده و فایل *.kmz را دانلود کنید. سپس باید این فایل را به فایل *.zip تغییر دهید. در وهله بعد، نوبت به استخراج فایل و باز کردن doc.kml با نرم‌افزار ویرایش متن دلخواه‌تان می‌رسد (ما از SublimeText استفاده می‌کنیم).

حال، می‌توانید از فرمان CTRL+F برای جستجوی فیلدها استفاده کنید یا از BeautifulSoup استفاده کنید (همان طور که در ذیل مشاهده می‌کنید). به محض استخراج مختصات از فایل XML، مختصات را در دیتافریم ذخیره کردم. در مجموع ۲۶ مکان دیدنی وجود دارد (که با عنوان در فایل XML ذخیره شده است).

یادگیری بدون نظارت

این دیتافریم حاوی اطلاعاتی از فایل XML می‌باشد (فقط ۷ ردیف نخست نشان داده شده است).

ما از دیتافریمی که مختصات و نام مکان‌های دیدنی در آن ذخیره شده بود، برای ایجاد نقشه پراکندگی استفاده کردیم.

 

یادگیری بدون نظارت

نقشه پراکندگی پین‌های نقشه گوگل

خوشه‌بندی K-MEANS

زمانی که ابهام در پیامد مورد پیش‌بینی‌مان وجود داشته باشد، روش‌های یادگیری بدون نظارت عموماً برای داده‌هایی که فاقد برچسب‌های AND هستند، بسیار مفید واقع می‌شوند. این الگوریتم‌ها معمولاً به دو شکل قابل دسترس هستند:

۱) الگوریتم‌های خوشه‌بندی

۲) الگوریتم‌های کاهش بُعد

در این بخش، می‌خواهیم عمده تمرکزمان را روی الگوریتم خوشه‌بندی K-Means بگذاریم. در این الگوریتم، تعداد خوشه‌ها به عنوان ورودی از پیش تعیین شده است و الگوریتم به ایجاد خوشه‌ها در دیتاست بدون برچسب می‌پردازد. K-Means مجموعه‌ای از نقاط مرکزی خوشه K و برچسبی از چیدمان ورودی X ایجاد می‌کند. به این ترتیب، کلیه نقاط واقع در X به خوشه منحصربفردی اختصاص داده می‌شوند. این الگوریتم نقاط مرکزی خوشه‌ها را به عنوان میانگین کلیه نقاط متعلق به خوشه محاسبه می‌کند.

یادگیری بدون نظارت

این کار با پایتون به شکل زیر انجام می‌شود:
همان‌طور که از نمودار پراکندگی زیر پیداست، ما ۱۰ خوشه ساختم؛ یعنی یک خوشه برای هر روز از سفر. چون مراکز دیدنی در مرکز پاریس فاصله نزدیکی با هم دارند، تفکیک یک خوشه از خوشه دیگر کار دشواری است. پیش‌بینی‌ها مرتب شده و در دیتافریم ذخیره شدند. k-means برای ایجاد ۱۰ خوشه مورد استفاده قرار گرفت. نقاط سیاه مرکز خوشه‌ها را نشان می‌دهند. من از ۱۰ خوشه‌ای که با k-means ایجاد شده بود، برای ساخت دیتافریمی استفاده کردم که روزهای هفته را به هر خوشه تخصیص می‌دهد. به این ترتیب، یک نمونه برنامه زمانی به دست می‌آید.

 

یادگیری بدون نظارت

نتایج k-means (روزهای سفر در هفته – فقط سه روز اول نشان داده شده است.)

اکنون، در این مرحله، دیتافریم مرتب شده و پین‌های نقشه گوگل مجدداً ساماندهی می‌شوند (هر لایه نشان‌دهندۀ یک روز است). خودشه! برنامه سفر تهیه شد.

یادگیری بدون نظارت

اما یک مورد همچنان اذیت‌کننده است. k-means بر اساس فاصله اقلیدسی میان نقاط به خوشه‌سازی می‌پرداخت. اما می‌دانیم که زمین تخت نیست؛ مابه دنبال بررسی این مسئله بودیم که آیا این تقریب بر خوشه‌های ایجاد شده تاثیر می‌گذارد یا خیر. باید به این نکته هم توجه داشت که چند نقطه دیدنی با فاصله از مرکز پاریس واقع شده است.

 

یادگیری بدون نظارت

 

با HDBSCAN آشنا شوید!

پس به یک روش خوشه‌بندی احتیاج داریم که فواصل جغرافیایی (طول کوتاه‌ترین منحنی میان دو نقطه در امتداد سطح زمین) را بطور کارآمد مدیریت کند.

یادگیری بدون نظارت

تابع تراکم جمعیت HDBSCAN که بر پایه الگوریتم DBScan   قرار دارد، می‌تواند نقش سودمندی در این فرایند داشته باشد. هر دو الگوریتمِ HDBSCAN و DBSCAN از جمله روش‌های خوشه‌بندی مکانی به شمار می‌روند و بر پایه تراکم قرار دارند. این الگوریتم‌ها بر اساس اندازه‌گیری فاصله و تعداد حداقلی نقاط، به گروه‌بندی آن دسته از نقاطی می‌پردازند که در فاصله نزدیکی به همدیگر واقع شده‌اند. این الگوریتم‌ها داده پرت‌ها را نیز در مناطقی با تراکم پایین تعیین می‌کنند. خوشبختانه، HDBSCAN از طول جغرافیایی و عرض جغرافیایی هم پشتیبانی می‌کند. بنابراین، زمینه برای محاسبه میان موقعیت‌های جغرافیایی فراهم می‌آید.
HDBSCAN در نسخه عادی پایتون منظور نشده است، پس مجبورید آن را به صورت pip یا conda نصب کنید. پس از این کار کد زیر را به جرا درآوردیم. سرانجام، دیتافریم و نمودار پراکندگی زیر به دست آمد. همان طور که ملاحظه می‌کنید، نقاط مجزا در خوشه ۱- جای دارند؛ پس این نقاط «نویز» به حساب می‌آیند.

 

یادگیری بدون نظارت

HDBSCAN نه خوشه و سه نقطه داده به عنوان «نویز» ایجاد کرد.

 

یادگیری بدون نظارت

نتایج HDBSCAN (روزهای سفر در هفته – فقط سه روز اول نشان داده شده است.)

 

 

اصلاً تعجب‌برانگیز نیست که چندین نقطه به عنوان نویز وجود داشته باشد. چون حداقل تعداد نقاط در خوشه HDBSCAN برابر است با ۲، نقاط مجزا از قبیل کاخ ورسای به عنوان نویز طبقه‌بندی شده‌اند. مکان‌هایی نظیر کلیسای Sainte-Chapelle de Vincennes و موزه Musée Rodin با سرنوشت مشابهی روبرو شدند. اما نکته جالب به تعداد خوشه‌هایی مربوط می‌شود که HDBSCAN شناسایی کرد (یعنی ۹ عدد). روش خوشه‌بندیِ مورد استفاده در این پست آموزشی می‌تواند ارتقاء یابد. برای نمونه، می‌توان ویژگی وزن را در نقاط داده به کار برد. وزن‌ها می‌توانند مقدار زمان مورد نیاز برای بازدید از یک مکان دیدنی را نشان دهند. به این ترتیب، تعداد کل نقاط داده در خوشه تحت تاثیر قرار می‌گیرد.

منبع: hooshio.com