۱. مقدمه
در وبلاگ ChatGPT چیست؟ به طور مختصر مراحل مربوط به آموزش ChatGPT را مورد بحث قرار داده بودم. آموزش ChatGPT شامل 3 مرحله اساسی است که در زیر به آنها اشاره شده است:
الف) تنظیم دقیق مدل ترانسفورمر از پیش آموزشدیده (GPT) که در آن ما برچسبزنان انسانی داشتیم که سریع و پاسخ را ارائه میدادند. این مرحله را تنظیم دقیق نظارت شده مینامند که در آن ما هر دو سؤال و پاسخ را برای آموزش در دسترس داریم، مشابه مسئله دستهبندی که در آن هر دو - ویژگیها و برچسب را داریم.
ب) در مرحله 2 آموزش ChatGPT، مدل "پاداش" را آموزش میدهیم. در اینجا، دادهها را از مدل تنظیمشده نظارت شده جمعآوری میکنیم و سپس برچسبزنان انسانی را داریم که پاسخها را رتبهبندی میکنند - رتبهبندی (یا بهعنوان «پاداش» نامیده میشود) متناسب با کیفیت پاسخ بود. ما از دادهها برای آموزش مدل "پاداش" استفاده میکنیم.
بنابراین، ورودی مدل پاداشها هم فوری و هم پاسخ توسط مدل خواهد بود (یک یا چند مدل ممکن است در اینجا دخیل باشند) و خروجی یک اسکالر خواهد بود که معیاری برای کیفیت پاسخ است.
ج) در مرحله 3 آموزش GPT، هم از مدل تنظیم شده نظارت شده مرحله 1 و هم از مدل پاداش استفاده می شود.
در اینجا ابتدا یک اعلان نادیده را به مدل تنظیم شده نظارت شده (آموزش داده شده در مرحله 1) ارسال میکنیم و سپس پاسخ را دریافت میکنیم. سپس کیفیت پاسخ را با استفاده از مدل پاداش که در مرحله 2 آموزش داده شد، ارزیابی میکنیم. رتبهای که به عنوان خروجی از مدل پاداش برمیگردد برای تنظیم دقیقتر مدل نظارت دقیق استفاده میشود.
اکنون اجازه دهید مرحله 2 آموزش ChatGPT را همانطور که در بالا با جزئیات توضیح داده شد، ابهامزدایی کنیم. بنابراین، ابتدا اجازه دهید سعی کنیم و درک کنیم که چرا ChatGPT ممکن است برای یک درخواست پاسخهای متفاوتی ایجاد کند.
1. مقدمه:
این ادامه سری وبلاگهای من در گرافها است. در مقاله: گرافهای ناهمگن و گرافهای رابطهای شبکههای عصبی کانولوشن[1] (RGCN)، در مورد گرافهای ناهمگن صحبت کردم و مشخص شد که یک گراف ناهمگن توسط مجموعهای از گرههای “V” تعریف میشود - گرهها میتوانند انواع مختلفی داشته باشند - مجموعهای از لبهها که گرههای مختلف را به هم متصل میکنند و هر یال ممکن است نوع رابطه متفاوتی داشته باشد همانطور که در شکل 1 و شکل 2 نشان داده شده است.
شکل 1: گراف دانش زیست پزشکی
شکل 2: گرافهای رویداد
این مقاله بر روی گرافهای دانش - به ویژه وظایف تکمیل گراف دانش با استفاده ازتعبیهها تمرکز خواهد کرد. ما در بخشهای 4 تا 11 این مقاله چند روش بسیار جالب تکمیل گراف دانش را مورد بحث قرار خواهیم داد و هدف از معرفی مفهوم گرافهای ناهمگن و جزئیات در قسمت 11، آمادهسازی برای بحث در مورد گرافهای دانش، مانند تمام گرافهای دانش بود. در واقع گرافهای ناهمگن هستند.
گرافهای دانش، دانش یک دامنه معین را به شکل گراف ذخیره میکنند. ایده در اینجا این است که ما باید موجودیتها، رابطه بین موجودیتها را به دست آوریم. بنابراین، گرههایی را خواهیم داشت که موجودیتها هستند، موجودیتها با انواع مختلف برچسبگذاری میشوند، و انواع روابط مختلفی را بین موجودیتها خواهیم داشت که در شکل زیر نشان داده شده است:
شکل 3: گراف دانش - شامل انواع مختلف موجودیتها و انواع روابط مختلف بین موجودیتها
بنابراین، گراف دانش نمونهای از یک گراف ناهمگن است که در قسمت 11 سری وبلاگهای جاری من مورد بحث قرار گرفت، اما به طور کلی، میتوان گراف دانش را بهعنوان جمعآوری دانش واقعی از یک دامنه معین در نظر گرفت.
یکی از ویژگیهای رایج گرافهای دانش این است که آنها عظیم هستند و میلیونها یال/گره دارند. از آنجایی که این گرافهای دانش عظیم هستند، به طور نامطلوبی نیز ناقص هستند، یعنی روابط زیادی وجود ندارد. بنابراین، یکی از اساسیترین وظایف در ادبیات گراف دانش این است که - با توجه به یک گراف دانش عظیم، باید مشخص کرد که کدام حلقههای گمشده در گراف دانش هستند. این قلب این مقاله را تشکیل میدهد و جزئیات پیرامون روشها/الگوریتمهای تکمیل گراف دانش و تعبیه گراف دانش در بخشهای 6 تا 11 این مقاله مورد بحث قرار گرفته است.
بخشهای 2 و 3 به ترتیب در مورد برخی از نمونههای رایج گرافهای دانش و گرافهای دانش در دسترس عموم صحبت میکنند و بخشهای 4 و 5 موضوع تکمیل گراف دانش را معرفی میکنند و زمینه بیشتری را نسبت به آنچه در بالا توضیح داده شد، به آن اضافه میکنند.
2. نمونههایی از گرافهای دانش:
چند نمونه از گرافهای دانش ممکن است شامل موارد زیر باشد:
مثال 1: به عنوان مثال، ما میتوانیم یک شبکه کتابشناختی را در نظر بگیریم که در آن میتوان انواع گرههای مختلفی مانند: مقاله، عنوان، نویسنده، کنفرانس، سالها را داشته باشد و سپس انواع مختلفی از روابط داشته باشیم، مانند اینکه انتشار در چه سالی، عنوان نشریه، نویسنده نشریه و استناد به آن در چه سالی انجام شده است.
شکل 4: نمونهای از گراف دانش – شبکه کتابشناختی
شمای گراف دانش کتابشناختی به شرح بالا خواهد بود - مقاله به کنفرانس پیوند میخورد، مقالات به یکدیگر استناد میکنند، مقالات دارای عنوان، دارای سال انتشار و دارای نویسنده هستند.
مثال 2: نمونه دیگری از گراف دانش در حوزه زیست پزشکی خواهد بود که میتوانیم انواع گرههای مختلفی را از نظر دارو، بیماری، عوارض جانبی، پروتئینها و مسیرهای بیماری داشته باشیم.
همانطور که در شکل زیر نشان داده شده است چندین نوع رابطه میتواند وجود داشته باشد مانند دارای تابع، علل، مرتبط، درمان،...
· مرجع – برای تعامل غیرطبیعی پروتئین و پروتئین منجر به بیماری –
https://www.sciencedirect.com/science/article/abs/pii/S0959440X0500117X
شکل 5: گراف دانش تداخلات غیرطبیعی دارو-بیماری، تداخل پروتئین-پروتئین که مسیرهای مختلف را نشان میدهد.
بنابراین، ما دانش زیستشناسی و نحوه عملکرد زندگی در قالب موجودات مختلف زیستی و روابط آنها را در قالب یک گراف دانش رمزگذاری شده داریم.
مثال 3: گرافهای دانش در دسترس عموم:
سپس، گرافهای دانش را داریم که گرافهای دانش در دسترس عموم هستند که دانش انواع موجودیتهای مختلف را ذخیره میکنند، برخی از نمونههای این گرافهای دانش در دسترس عموم عبارتند از:
الف) گراف دانش گوگل:
نتایج جستجوی Google اطلاعاتی را نشان میدهد که از گراف دانش ما - پایگاه داده میلیاردها حقایق در مورد افراد، مکانها و چیزها به دست میآید.
گراف دانش به ما امکان می دهد به سؤالات واقعی مانند "قد برج ایفل چقدر است؟" یا «بازیهای المپیک تابستانی ۲۰۱۶ کجا برگزار شد» یا «مونالیزا کجاست؟» پاسخ دهیم.
حقایق موجود در گراف دانش از منابع مختلفی میآیند که اطلاعات واقعی را جمعآوری میکنند.
شکل 6: دادههای پانل دانش درباره توماس جفرسون در جستجوی گوگل نمایش داده شده است [منبع: ویکی پدیا]
ب) آمازون از گراف دانش محصول خود برای درک ویژگیهای محصولات مختلف به منظور جستجو و توصیه بهتر محصولات خود استفاده میکند.
گراف محصول آمازون از انواع تکنیکهای یادگیری ماشینی برای دریافت اطلاعات مربوط به محصول از صفحات جزئیات آمازون و اینترنت به طور کلی استفاده میکند.
شکل 7: گراف محصول آمازون
ج) گراف دانش فیس بوک:
جستجوی گراف فیس بوک با استفاده از یک الگوریتم جستجو مشابه موتورهای جستجوی سنتی مانند گوگل انجام میشود.
با این حال، ویژگی جستجو به عنوان یک موتور جستجوی معنایی متمایز میشود که بر اساس معنای مورد نظر جستجو میکند.
موتور جستجو بهجای برگرداندن نتایج بر اساس کلمات کلیدی منطبق، برای مطابقت با عبارات، و همچنین اشیاء در سایت [منبع: https://en.wikipedia.org/wiki/Facebook_Graph_Search] طراحی شده است.
د) IBM Watson از گراف در پس زمینه برای پاسخ به سؤالات و استدلال استفاده میکند.
ه) پروژه هانوفر / Li:
پروژه هوش مصنوعی مایکروسافت هانوفر به پزشکان کمک میکند تا از بین بیش از 800 دارو و واکسن، درمان سرطان را انتخاب کنند. هدف آن حفظ تمام مقالات مربوطه برای پیشبینی اینکه کدام (ترکیب) داروها برای هر بیمار مؤثرتر است.
شکل 8: گرافهای دانش در انکولوژی
و) لینکدین از گراف دانش به عنوان گراف دانش اقتصادی استفاده میکند
به طور خلاصه، گرافهای دانش به طور گسترده در صنعت برای گرفتن دانش پس زمینه از یک دامنه معین، برای گرفتن رابطه بین گرهها در یک دامنه خاص استفاده میشود.
مثال 4: ارائه اطلاعات
یکی از راههایی که میتوانید از گرافهای دانش استفاده کنید، ارائه اطلاعات به سادگی است. به عنوان مثال، اگر “Bing” را تایپ کنیم
شکل 9: گرافهای دانش برای ارائه اطلاعات
جدیدترین فیلمهای کارگردان تایتانیک چیست؟
این در واقع یک پرس و جو گراف دانش است:
· به عنوان مثال، شما تایتانیک را پیدا میکنید.
· سپس متوجه میشوید که چه کسی آن را کارگردانی کرده است
· شما آن شخص را پیدا میکنید و سپس فیلمهای دیگری را که آن شخص کارگردانی کرده است پیدا میکنید.
بنابراین، شما نمیتوانید اطلاعات را بدون رمزگذاری دادهها به صورت گرافیکی ظاهر کنید و پاسخ به نوع پرس و جو با استفاده از گراف عملا غیرممکن خواهد بود.
مثال 5: گرافهای دانش برای پاسخگویی به پرسش با مدلهای زبان بزرگ (LLMS)
من در مورد گرافهای دانش برای RAG صحبت کردهام. ممکن است یادآوری شود که در یک سیستم متداول Retrieval-Augmented Generation (RAG) ما سند(ها) را به یک سری از تکهها تقسیم میکنیم و بردارهای تعبیه شده را برای تکهها به دست میآوریم و سپس بر اساس جستجوی شباهت بین درخواست و دادههای موجود و سپس بر اساس شباهت ایجاد شده، دستور و زمینه را به LLM ارسال کنید تا پاسخ را دریافت کنید.
گرافها نتایج بسیار بهتری را برای جستجوهای چند هاپ ارائه میدهند. به عنوان مثال، پاسخ به سوال کاربر ممکن است در اسناد مختلف قرار گیرد، بنابراین به جای جستجوی پاسخی برای چیزی ساده مانند: "سیاست مراقبتهای بهداشتی شرکت چیست؟" که در آن پاسخ معمولاً در یک بخش از سند قرار میگیرد، اما اگر بخواهیم اطلاعات را در اسناد مختلف ترکیب کنیم، شباهت برداری معمولاً برای یک پرس و جو پیچیده خیلی دور نمیشود.
ثانیا، چیزی که گرافها را بسیار زیبا و همچنین کارآمد میکند این است که هم گرهها و هم روابط میتوانند ویژگیها/ویژگیهایی داشته باشند که قابل جستجو هستند، برای مثال: ممکن است یک شخص با یک پروژه مرتبط باشد، و ما میتوانیم تاریخهایی را داشته باشیم که شخص روی پروژه به عنوان ویژگی (خواص) لبه مربوطه آن کار میکند. ما همچنین میتوانیم احساس - تجربه شخصی که روی پروژه کار میکرد داشته باشیم و اگر این اطلاعات در دسترس باشد، میتوانیم همه افراد و روابط پروژه را جستجو کنیم.
در مقاله گرافهای دانش برای RAG: به جزئیات ساخت RAG بر روی یک گراف دانش از ابتدا رفتهام، همانطور که در شکل زیر نشان داده شده است:
شکل 10: ساختن یک سیستم RAG بر روی یک گراف دانش ساخته شده از ابتدا.
3. گرافهای دانش در دسترس عموم و گرافهای دانش ناقص:
گرافهای زیادی در دسترس عموم وجود دارد مانند:
· FreeBase
· Wikidata
· Dbpedia
· YAGO
· NELL
· و غیره
یکی از ویژگیهای رایج گرافهای دانش این است که آنها عظیم هستند و میلیونها یال/گره دارند. از آنجایی که این گرافهای دانش عظیم هستند، به طور نامطلوبی نیز ناقص هستند، یعنی روابط زیادی وجود ندارد. بنابراین، یکی از اساسیترین وظایف در ادبیات گراف دانش این است که - با توجه به یک گراف دانش عظیم، باید مشخص کرد که کدام حلقههای گمشده در گراف دانش هستند.
به عنوان مثال - Freebase یک گراف دانش است که توسط گوگل به دست آمده است و گوگل از آن به عنوان پایه گراف دانش گوگل استفاده میکند. این شامل دانش موجودات و روابط دنیای واقعی است. این شامل: 50 میلیون موجودیت، ~ 38 هزار نوع رابطه، ~ 3 میلیارد واقعیت/سه گانه است.
کاردینالیته روابط مختلف 38000 است که بسیار زیاد است. بنابراین، از نظر شبکه عصبی کانولوشنال گراف (GCN)، ما باید 38000 ماتریس تبدیل مختلف را یاد بگیریم که یکی برای هر لایه GCN است که مقابله با آن سخت میشود.
نکته جالب این است که: 93.8 درصد از افراد در Freebase محل تولد ندارند، 78 درصد فاقد ملیت هستند و سؤالاتی که به ذهن میرسد این است:
· آیا میتوانیم به طور خودکار محل تولد یک فرد را استنباط کنیم؟
· آیا میتوانیم به طور خودکار ملیت یک فرد را استنباط کنیم؟
اینجاست که "تکمیل گراف دانش" وارد میشود. روشهای مختلفی برای انجام "تکمیل گراف دانش" وجود دارد. به طور خاص، از طریق بخشهای 4 تا 11 در زیر، روشهای زیر را مورد بحث قرار خواهیم داد:
· TransE
· TransR
· DistMult
· ComplEx
بخشهای 4 تا 9 جزئیات اساسی این روشها را معرفی کرده و به آنها میپردازند و بهویژه بر روی انواع روابطی که این روشها میتوانند دریافت و پیشبینی کنند، تمرکز خواهند کرد.
قبل از پرداختن به روشهای فوق، اجازه دهید کمی بیشتر در مورد "وظیفه تکمیل گراف دانش" بدانیم.
4. وظایف تکمیل گراف دانش چیست:
در یک کار تکمیل گراف دانش، گراف دانش عظیمی به ما داده میشود، و سپس این سوال پیش میآید که آیا میتوانیم اطلاعات گمشده را نسبت دهیم/پیشبینی[2] کنیم - زیرا گراف دانش ناقص است.
شکل 11: یک گراف دانش ناقص – روابط نویسنده-ژانر (گراف یک دنباله گم شده دارد)
روش کار وظایف تکمیل گراف دانش به این صورت است که به ما یک گره راس داده میشود، نوع رابطه را داریم و میخواهیم دنباله گم شده را پیشبینی کنیم. بنابراین، باید توجه داشت که این مسئله کمی با مسئله پیشبینی پیوند کلاسیک متفاوت است - جایی که ما به سادگی باید پیوندهای گمشده را در کل گراف بدون اطلاعات از نوع سر/رابطه/به همین ترتیب پیشبینی کنیم.
به عنوان مثال: با توجه به شکل زیر، میگوییم که راس داریم – که گره J.K. Rowling است، ما نوع رابطه را داریم - این ژانر است، و باید که نویسنده کدام ژانر J.K.Rowling به پیشبینی کنیم.
در حالت فوق گره J.K.Rowling به ژانر علمی تخیلی تعلق دارد - بنابراین در مثال بالا، گره راس به ما داده میشود، نوع رابطه به ما داده میشود و باید دنباله را پیشبینی کنیم.
شکل 12: یک گراف دانش ناقص - روابط نویسنده-ژانر - گره JK Rowling دارای دم نیست.
5. چگونه وظایف گراف دانش را انجام دهیم؟
راهی که میخواهیم وظایف تکمیل گراف دانش را انجام دهیم، تعبیه گره است. هر موجودی در گراف دانش یک تعبیه خواهد داشت که ما آن را از طریق تعبیه کم عمق محاسبه میکنیم.
شکل 13: آموزش تعبیههای سه گانه (راس، رابطه، دم) با استفاده از تعبیههای کم عمق
یعنی: ما میخواهیم بردار تعبیه را برای هر نوع موجودی در گراف دانش یاد بگیریم تا بتوانیم پیشبینی را انجام دهیم. نکته این است که ما از شبکههای عصبی گراف استفاده نخواهیم کرد، بلکه از تعبیههای کم عمق همانطور که در بخش 3 از قسمت 5 این سری گراف بحث شد، استفاده خواهیم کرد.
بازنمایی گراف دانش:
بازنمایی گراف دانش به گونهای است که گراف دانش از طریق مجموعهای از سهگانه نمایش داده میشود - راس، دنباله رابطه همانطور که در بخش بالا نشان داده شده است. راس منبعی است که با دم ارتباط دارد. دم نقطه پایانی رابطه است.
به عنوان مثال، رئیسجمهور میتواند راس باشد، و رابطه ملیت خواهد بود، و دنباله آن استانها خواهد بود. همانطور که در بالا ذکر شد، روشی که میخواهیم پیشبینی را انجام دهیم این است که - موجودیتها و روابط را به عنوان بردارهای تعبیه شده در فضای تعبیه مدلسازی میکنیم و از رویکرد تعبیههای کم عمق برای به دست آوردن این بردارها از این بردارهای موجودیتها استفاده میکنیم.
شکل 14: سه گانه راس-رابطه-دم
ایده این است که با توجه به یک سه گانه واقعی (راس/رابطه/دم) (h,r,t)، هدف ریاضی این است که تعبیه (راس، رابطه) باید نزدیک به تعبیه دم باشد. این ممکن است در این نقطه از مقاله کمی انتزاعی به نظر برسد، اما اجازه دهید بفهمیم که چگونه میتوانیم - (راس، رابطه) را تعبیه کنیم و چگونه "نزدیک" را تعریف کنیم - یعنی تعبیه (راس، رابطه) باید به تعبیه دم نزدیک باشد.
همه روشهایی که ما در مورد آنها صحبت میکنیم، در نحوه ایجاد نزدیکی/تعبیه متفاوت است. اجازه دهید روشها را مورد بحث قرار دهیم - همانطور که در بخش 3 ذکر شد، چهار روش را مورد بحث قرار خواهیم داد.
6. الگوریتمهای تکمیل گراف دانش: TransE
۶.۱ TransE: شهود و تفسیر[3]
طبیعی یا سادهترین ایده شامل الگوریتم تکمیل گراف دانش TransE است. TransE شهود "ترجمه[4]" را دارد.
ایده این است که برای یک سه گانه (راس، رابطه، دم)، ما باید یاد بگیریم: تعبیه راس، تعبیه دم و همچنین تعبیه رابطه “r”. سپس، هدف باید این باشد که تعبیه محاسبه شده باید به گونه ای باشد که:
یعنی:
معادله - رابطه TransE
به عنوان مثال، اگر ما یک راس بگوییم - باراک اوباما و ملیت آمریکایی، مایلیم که به گونهای تعبیه شود که اگر با راس (باراک اوباما) همانطور که در شکل زیر نشان داده شده است شروع کنیم و با رابطه “r” حرکت کنیم سپس به نقطهای که v تعبیه شده است پایان میدهیم.
شکل 15: تفسیر ریاضی TransE
این نه تنها باید برای باراک اوباما + ملیت بلکه برای هر فرد و کشور محل تولد آنها صادق باشد. به عنوان مثال - Keir Starmer - ملیت - انگلستان. بنابراین، برای راس متناظر با یک شخص و سپس با استفاده از همان ترجمه با رابطه «ملیت»، نتیجه باید کشور مربوط به ملیت باشد.
6.2 TransE: عملکرد امتیازدهی:
عملکرد امتیاز دهی که نزدیکی راس و دم را اندازهگیری میکند به صورت head + r - tail خواهد بود.
معادله - تابع امتیازدهی برای TransE
میتوان از فاصله اقلیدسی برای موارد فوق استفاده کرد. این روش Trans-E است که در آن میتوان ترجمه را در فضای تعبیهشده یاد گرفت تا بتوان از راس به ترجمهای رسید که مربوط به دم رابطه است. الگوریتم یادگیری برای TransE در محدوده این وبلاگ نیست.
7. الگوهای اتصال در گراف دانش
رویکرد فوق مربوط به Trans-E یک ایده بسیار طبیعی/شهودی است زیرا اکنون ما نه تنها به تعبیهها به عنوان نقاطی در فضا فکر میکنیم، بلکه بردار رابطه “r” را نیز یاد میگیریم که به ما اجازه میدهد بین نقاط مختلف حرکت/ترجمه[5] کنیم/به ما امکان میدهد در جهتهای داده شده حرکت کنیم.
اجازه دهید اکنون نوع روابطی را ببینیم که رویکرد TransE قادر به یادگیری است. منظور ما از روابط در اینجا، رابطه با انواع مختلف خواص است - همانطور که در مثال های زیر نشان داده شده است، خواص ممکن است متقارن یا متقابل (معکوس) باشند:
اجازه دهید چهار الگوی رابطه را مورد بحث قرار دهیم و سعی کنیم به این سوال پاسخ دهیم که آیا TransE میتواند این روابط را مدل کند:
الف) رابطه متقارن[6] و ضد متقارن[7]:
روابط متقارن روابط متقابلی هستند و به بهترین نحو میتوان آنها را از طریق مثال توضیح داد. بیایید بگوییم که یک نفر "الف" داریم که هم خانه شخص دیگری "ب" است - پس بدیهی است که "ب" هم خانه شخص "الف" است. این نمونهای از رابطه متقارن است.
شکل 16: رابطه متقارن - مثال
روابط ضد متقارن شامل "هیپرنام[8]" است - به عنوان مثال. "قرمز" رنگی است که رابطهای بین قرمز و رنگ ایجاد میکند - در اینجا رنگ ابرنام قرمز است. به طور مشابه، میوه ابرنامی از سیب است و نمونههای بیشتری از این نوع وجود دارد.
روابط هیپرنام ضد متقارن هستند:
· همه سیبها میوه هستند اما همه میوهها سیب نیستند
· قرمز یک رنگ است و نه برعکس.
شکل 17: رابطه ضد متقارن- مثال
ب) رابطه معکوس
باز هم، یک رابطه معکوس[9] را میتوان از طریق مثال توضیح داد: - به عنوان مثال، اگر “X” مشاور “X” است، “Y” مشاور “X” است.
در اینجا هر یک از رابطه ها معکوس رابطه دیگر است، یعنی اگر “X” با یک رابطه به “Y” مربوط شود، “Y” به “X” مربوط میشود.
ج) ترکیب (رابطه انتقالی)
و سپس رابطه انتقالی را داریم - به عنوان مثال، اگر x با y دوست باشد و y با z دوست باشد، x و z نیز دوست هستند.
د) روابط 1 به N:
ما میتوانیم چندین رابطه داشته باشیم:
مثالها:
· یک معلم ممکن است چند دانشآموز یا
· یک مربی ممکن است به چندین کارآموز کمک کند
بعد، میخواهیم ببینیم آیا TransE همه این روابط را ثبت میکند یا خیر.
8. روابط مدل شده توسط TansE
بیایید به الگوهای رابطهای که TransE میتواند ضبط کند نگاه کنیم. بیایید روابط را به ترتیب سادگی نگاه کنیم
رابطه ضد متقارن:
طبق تعریف رابطه مورچه متقارن – اگر “h” با “t” مرتبط باشد، “t” را نمیتوان با همان رابطه به “h” مرتبط کرد.
این از طریق معادله زیر نشان داده شده است:
معادله - ریاضی رابطه ضد تقارن
نمونههایی از رابطه ضد متقارن
· هیپرنیم (کلمهای با معنای گستردهتر)
همانطور که در شکل زیر نشان داده شده است، TransE در واقع میتواند روابط ضد متقارن را ثبت کند:
شکل 18: TransE میتواند رابطه ضد متقارن را مدل کند
همانطور که در شکل بالا مشاهده میشود، اگر در راس “h”، تبدیل رابطه “r” را اعمال کنیم، دم “t” به دست میآید. اعمال همان تبدیل رابطه “r” در دم “t” به “h” باز نمیگردد - که در واقع در رابطه ضد متقارن چنین است. این بدان معنی است که TransE به طور طبیعی رابطه ضد متقارن را ثبت میکند.
رابطه معکوس:
نمونههایی از رابطه معکوس در بخش ۷ و ب (مشاور-مشاور، A->B) بحث شده است. بنابراین،
با تعریف رابطه معکوس: اگر h و t با r2 مرتبط باشند، R1 دیگری وجود دارد که t و h را به هم مرتبط میکند.
معادله - ریاضی رابطه معکوس
بنابراین، با قرار گرفتن در راس “h”، یک رابطه تبدیل “r” را اعمال میکنیم و به سمت دم “t” حرکت میکنیم، با قرار گرفتن در دم t، میتوانیم یک رابطه تبدیلی -r را برای بازگشت دوباره به راس باید در جهت منفی حرکت کرد اعمال کنیم.
شکل 19: رابطه معکوس را میتوان با TransE مدل کرد – r1 دیگری وجود دارد که منفی r2 است.
رابطه ترکیب:
رابطه ترکیبی[10] را می توان از طریق معادله زیر نشان داد:
معادله - رابطه ریاضی ترکیب
در اینجا میگوییم که اگر (x, y) مرتبط و (y,z) مرتبط باشند پس x و z نیز مرتبط هستند.
مثال: شوهر مادرم هم پدر من است
در TransE، به سادگی میتوان این کار را با موارد زیر انجام داد:
r3 = r1 + r2
شکل 20: رابطه ترکیب مدلسازی TransE
یعنی – همانطور که در شکل بالا نشان داده شده است، اگر از x از طریق r1 به y و سپس از طریق r2 از y به z برویم، آنگاه میتوانیم از x از طریق r3 به z برویم.
r3 = r1 + r2
بنابراین، روابط ترکیبی را میتوان با TransE مدل کرد
روابط متقارن:
روابط متقارن از طریق معادله زیر نشان داده شده است:
معادله - ریاضی رابطه متقارن
جالب است که TransE نمیتواند روابط متقارن را به عنوان مثال ثبت کند. خانواده، هم خانه که متقابل هستند.
شکل 21: TransE نمیتواند روابط متقارن را همانطور که توضیح داده شد ثبت کند
یعنی اگر از “h” از طریق تبدیل “r” به “t” برویم، برای اینکه رابطه متقارن وجود داشته باشد، باید با اعمال همان تبدیل “r” به “h” برگردیم. اما این تنها زمانی امکانپذیر است که “r” 0 باشد، به این معنی که “h” و “t” روی هم تعبیه شده باشند. اما این امکانپذیر نیست زیرا “h” و “t” هر دو موجودیتهای متفاوت/متمایز[11] هستند. این بدان معناست که TransE نمیتواند روابط متقارن را مدل کند.
روابط 1 به N
باز هم بخش دیگری که TransE نمیتواند انجام دهد روابط 1 به N است. نمونههایی از روابط 1 به N قبلاً مورد بحث قرار گرفتهاند - یک معلم ممکن است مشاور بسیاری از دانشآموزان باشد - سپس، اگر راس در “h” داشته باشیم که با استفاده از رابطه تبدیل “r” به "t1" میرود و سپس دوباره همان رابطه تبدیل “r” به t2 میرود
شکل 22: ناتوانی TransE در مدلسازی روابط 1 به N
همانطور که در شکل مشاهده میشود، این تنها در صورتی امکانپذیر است که t1 و t2 غیرقابل تشخیص باشند / تفاوتی با یکدیگر نداشته باشند اما در واقعیت t1 و t2 موجودیتهای کاملاً متفاوتی هستند. بنابراین، TransE قادر به مدلسازی روابط 1 به N نیست.
اجازه دهید اکنون روش دیگری از مدلسازی را ببینیم که مسئله TransE قادر به مدلسازی روابط متقارن و 1 به N را برطرف میکند.
9. روش Trans-R مدلسازی روابط
در این بخش به روش متفاوتی به نام Trans-R نگاه میکنیم که به ما امکان میدهد برخی از مسائل را که در TransE در رابطه با متقارن و 1-to-N با آن مواجه شدیم برطرف کنیم.
همانطور که در مورد Trans-E دیدیم، ترجمه هر رابطهای را در همان فضای تعبیه مدل میکند. حال سوال این است که آیا میتوانیم برای هر رابطه فضای جدیدی طراحی کنیم و ترجمه را در فضایی خاص نسبت انجام دهیم؟ روش متناظر با این ایده به این صورت نامیده میشود: Trans-R که موجودیتها را به عنوان بردار (یعنی موجودیتها به عنوان نقاط) مدل میکند و رابطه را به عنوان یک بردار در فضای خاص رابطه همراه با ماتریس تبدیل یا طرح ریزی خاص روابط مدل میکند. بیایید ببینیم این چگونه کار میکند.
۹.۱ کار Trans-R و مدلسازی روابط متقارن:
همانطور که در بالا گفته شد، Trans-R موجودیتها را به عنوان نقاط مدل میکند. برای هر رابطه، ما بردار ترجمه را یاد میگیریم و ماتریس طرحریزی MR را برای هر رابطه یاد میگیریم.
بنابراین، در مورد Trans-R،
اگر (h,t) داشته باشیم و آنها با یک رابطه r مرتبط باشند، ابتدا ماتریس MR را به نقاط (h و t) اعمال میکنیم و این نقاط را به یک نقطه جدید تبدیل میکنیم.
و سپس در فضای تبدیل شده جدید، رابطه Trans-R را اعمال خواهیم کرد
شکل 23: تبدیل تعبیه اصلی به فضای خاص رابطه
بنابراین، تعبیه اصلی را میگیریم، و آن را با اعمال یک ماتریس طرحریزی “MR” تبدیل میکنیم - یعنی آن را مقیاس میکنیم (کشش/فشرده[12] میکنیم)، آن را میچرخانیم و سپس بردار “r” را روی h و t تبدیل شده اعمال میکنیم.
این به ما امکان میدهد تا یک رابطه متقارن مانند "هم خانه[13]" را مدل کنیم، ما میvتوانیم ماتریس تبدیل خاص MR را یاد بگیریم که نقاط h و t را گرفته و آن را به h ⊥ و t⊥ ترسیم میکند همانطور که در شکل زیر نشان داده شده است:
شکل 24: h و t به h نگاشت شدهاند
این بدان معنی است که دو نفر که هم خانه هستند به همان نقاط h ⊥ و t⊥ نگاشت میشوند تا r = 0 و یک رابطه متقارن بدست آوریم. این امکان مدلسازی رابطه متقارن را فراهم میکند که TransE نمیتواند آن را مدل کند. بنابراین، با این نوع تبدیل میتوانیم رابطه متقارن را مدل کنیم که TransE نمیتواند همانطور که همه ما در فضای اقلیدسی بودیم. بعد، اجازه دهید رابطه ضد متقارن را در TransR در نظر بگیریم.
۹.۲ رابطه ضد متقارن در Trans-R
معادله - ریاضی رابطه ضد متقارن
TransR به راحتی میتواند رابطه ضد متقارن را مدل کند. با توجه به دو نقطه h، t در فضای تعبیه و اعمال ماتریس تبدیل MR، میتوانیم نقاط h و t را به فضای دیگری تبدیل کنیم به طوری که h و t با هم برخورد نکنند و سپس همان TransE، میتوانیم از h و t به دست آوریم. از طریق رابطه “r” همانطور که در شکل زیر نشان داده شده است اما نمیتوان از “t” به “h” رسید.
بنابراین، Trans-R میتواند روابط متقارن و ضد متقارن را مدل کند.
شکل 25: تبدیل h و t به فضای خاص نسبت به مدل رابطه ضد متقارن - h و t با هم برخورد نمیکنند
۹.۳ روابط 1 به N در TransR
باز هم، Trans-R میتواند انواع رابطه 1-به-N را مدل کند، زیرا ما در ماتریس طرحریزی “r” انعطافپذیری کافی داریم که میتواند یاد بگیرد که چگونه t1 و t2 را در یک موقعیت نگاشت کند.
همانطور که در شکل زیر نشان داده شده است:
شکل 26: مدلسازی روابط 1 به N با استفاده از TransR – t1 و t2 که در یک نقطه نگاشت شدهاند به طوری که h از t1 و t2 مساوی فاصله داشته باشد.
بنابراین، در فضای خاص رابطه، اگر از سر بر اساس رابطه برویم، به t1, t2 میرسیم که در همان موقعیت هستند. در فضای تعبیه اولیه t1 و t2 دو تعبیه متفاوت بودند اما در فضای خاص رابطه، تعبیه که با استفاده از ماتریس تبدیل MR به دست میآید، میتوانیم t1 و t2 را در یک نقطه قرار دهیم و بنابراین 1 به N را میگیریم. رابطه N بنابراین، همانطور که میبینیم از طریق TRAnsR و تبدیل تعبیه به یک فضای خاص روابط، برخی از کوتاه آمدنهای TransE را برطرف کردهایم.
روابط معکوس با استفاده از Trans-R
ما همچنین میتوانیم روابط معکوس مشابه آنچه در TransE انجام دهیم. در مورد رابطه معکوس، ماتریس تبدیل هر دو رابطه باید مانند شکل زیر باشد و سپس یک بردار ترجمه معکوس بردار ترجمه دیگر است.
معادله - ریاضی رابطه معکوس
شکل 27: تبدیل h و t به یک فضای خاص رابطه به گونهای که r1 = -r2
9.4 رابطه ترکیب:
مشکل Trans-R که با Trans-E نبود این است که Trans-R نمیتواند رابطه ترکیب را مدل کند. یعنی، اگر x و y با r1 مرتبط باشند و y و z با r2 مرتبط باشند، آنگاه x و z مطابق با معادله زیر نشان داده شده/نشان داده شده است:
معادله - رابطه ریاضی ترکیب
این مسئله در TransE نبود زیرا همه چیز در یک فضا قرار داشت اما در TransR ما نمیتوانیم رابطه ترکیبی را انجام دهیم. دلیل این امر این است که هر رابطه فضای متفاوتی دارد و ما میدانیم که چگونه از فضای اصلی به فضای خاص رابطه مدلسازی کنیم اما نمیدانیم چگونه بین فضاهای خاص رابطه متفاوت مدلسازی کنیم. فضاهای خاص رابطه به طور طبیعی ترکیبی نیستند. این بدان معنی است که TransR نمیتواند روابط ترکیب را مدل کند.
10. روش 3: DistMult
حال، اجازه دهید به سومین روش مدلسازی تعبیهها که به آن مدلسازی دو خطی گفته میشود نگاهی بیاندازیم. تا کنون، ما در مورد تابع امتیاز دهی (بخش 6.2) به عنوان فاصله در فضای تعبیه بحث میکردیم.
در TransE و TransR ذکر کرده بودیم که سر به علاوه بردار رابطه باید نزدیک به دم باشد. حالا تابع امتیاز دهی را طوری تغییر میدهیم که fr(h,t) یک فاصله نباشد. به عنوان مثال، DistMult بردارهایی را در فضای تعبیه مشابه TransE تعبیه میکند اما از یک تابع امتیازدهی متفاوت استفاده میکند. تابع امتیازدهی در مورد DisMult توسط:
شکل 28: عملکرد امتیازدهی در صورت DisMult
معادله فوق نشان میدهد که تابع امتیازدهی حاصل ضرب عاقلانه h، r و t است.
شکل 29: تابع امتیازدهی در Distmult - ضرب عاقلانه h، r و t
همانطور که در شکل بالا نشان داده شده است، اگر بردارهای h، r و t را داشته باشیم، یک ضرب عاقلانه بر روی موجودیتها انجام میدهیم و آن را جمع میکنیم که امتیاز است. ایده اصلی پشت ریاضی این است که اگر رابطه راس، رابطه، دم درست باشد، نمره باید بالا باشد در غیر این صورت نمره پایین خواهد بود. اجازه دهید تفسیر پشت ریاضی را درک کنیم.
تفسیر تابع امتیازدهی و نحوه عملکرد DistMult:
عملکرد امتیازدهی در DistMult همانطور که در بالا نشان داده شد میتواند به عنوان یک ابرصفحه در فضای تعبیه شده در نظر گرفته شود. یعنی میتوان تابع امتیاز دهی را به صورت شباهت کسینوس بین h ضربدر r و t تفسیر کرد که در شکل زیر نشان داده شده است:
شکل 30: قیاس بین تابع امتیازدهی در DistMult و شباهت کسینوس
حاصلضرب نقطه میتواند مثبت یا منفی باشد که نشان میدهد نقطه در سمت چپ یا راست ابرصفحه قرار دارد. h.r یک ابرصفحه را تعریف میکند که متعامد با آن است و دم مربوط به h.r در همان سمت h.r قرار میگیرد و دم غیر مرتبط h.r در سمت دیگر h.r / هیپرپلان میافتد.
DistMult برای روابط 1 به N:
DistMult همچنین میتواند روابط 1 به N را با موفقیت مدل کند. اگر راس “h” باشد (مثلاً مشاور/معلم) و t1 و t2 دنبالهها (مثلاً نصیحتها/دانشآموزان) باشند، میتوان این را از طریق شکل زیر درک کرد، سپس t1 و t2 در همان سمت ابرصفحه و در همان سمت فاصله از یکدیگر بیفتند.
شکل 31: مدلسازی رابطه 1 به N با DistMult
DistMult برای روابط متقارن:
معادله: تفسیر ریاضی رابطه متقارن در گراف
روابط متقارن را میتوان به راحتی از طریق DistMult مدل کرد زیرا ضرب به صورت جابه جایی است که در معادله زیر نشان داده شده است:
معادله: DistMult میتواند روابط متقارن را مدل کند - زیرا ضرب جابجایی است
محدودیت DistMult: روابط ضد متقارن، روابط معکوس و روابط ترکیبی
روابط ضد متقارن:
محدودیت در مدلسازی برای DistMult یک رابطه ضد متقارن است - مانند یک ابرنام/ بخشی از DistMult نمیتواند رابطه ضد متقارن را به دلیل جابجایی جمع و ضرب مدل کند. ماهیت جابجایی جمع و ضرب به این معنی است که شما تقارن دریافت میکنید و نه ضد تقارن.
توجه / معادله - DistMult به دلیل ماهیت جابجایی در ضرب همانطور که در یادداشت بالا توضیح داده شد نمیتواند ضد تقارن را مدل کند.
روابط معکوس:
باز هم، DistMult نمیتواند روابط معکوس را مدل کند:
معادله - ریاضی رابطه معکوس
همانطور که در بخش 8 ذکر شد، یک رابطه معکوس را میتوان از طریق مثال توضیح داد: - به عنوان مثال، اگر “X” مشاور “X” است، “Y” مشاور “X” است.
دلیل اینکه DistMult نمیتواند رابطه معکوس را مدل کند این است که تنها راه برای مدل کردن رابطه معکوس این است که r2 و r1 برابر هستند. با این حال، از نظر معنایی این امکان پذیر نیست، زیرا اگر r2 و r1 برابر باشند، در آن صورت، تعبیه رابطه مشاوره دهنده، تعبیه رابطه مشاوره گیرنده باید برابر باشد.
رابطه ترکیب:
DistMult نمیتواند رابطه ترکیب را مدل کند. مسئله این است که DistMult برای هر رابطه هایپرپلان تعریف میکند و هر رابطه یک جفت رابطه است و اتحاد ابرصفحههای القا شده توسط چندین جهش رابطه (مثلا r1, r2, …) را نمیتوان با استفاده از یک ابر صفحه منفرد بیان کرد.
معادله - رابطه ریاضی ترکیب
11. روش 4: ComplEx
توجه به تفسیر اعداد مختلط
آخرین روشی که اکنون در مورد آن صحبت خواهیم کرد ComplEx است. دلیل بحث در مورد ComplEx این است که تاکید کنیم که لازم نیست نقاط را در فضای ساده اقلیدسی تعبیه کنیم، w همچنین میتواند نقاط را در فضای پیچیده تعبیه کند. Complex موجودیتها را در فضای برداری پیچیده تعبیه میکند که در آن هر نقطه دارای یک بخش خیالی و یک بخش واقعی است.
یک مفهوم از جبر مختلط که هنگام بحث در مورد ComplEx مهم است در نظر داشته باشید، در مورد مزدوج مختلط است - که در آن میگوییم “u” یک عدد مختلط با قسمت واقعی “a” و قسمت خیالی “b” است به طوری که:
معادله - عدد مختلط”u”
سپس یک مزدوج پیچیده است:
معادله - مزدوج مختلط”u”
شکل 32: مفهوم مزدوج پیچیده
مفهوم مزدوج پیچیده همانطور که بیشتر بحث میکنیم مهم خواهد بود.
تابع امتیازدهی در ComplEx: تابع امتیازدهی در ComplEx همانند DistMult است، اما ما او را بخشی خیالی از تعبیه پیچیده در نظر نمیگیریم، بلکه فقط قسمت واقعی را همانطور که در معادله زیر نشان داده شده است در نظر میگیریم:
معادله - تابع امتیازدهی ComplEx
شکل 33: محاسبه تابع امتیازدهی شامل ضرب عنصری بخش واقعی موجودیتها است (مانند DistMult)
روابط در ComplEx:
به دلیل امکان مدلسازی روابط ضد متقارن با استفاده از مزدوجهای پیچیده، این مدل به اندازه کافی گویا است تا عملکرد امتیازدهی بالا یا ارزش را یاد بگیرد.
به دلیل امکان استفاده از مزدوجات پیچیده
روابط متقارن: فناوری اطلاعات میتواند روابط متقارن را از طریق ComplEx با تنظیم قسمت فرضی برابر با 0 مدلسازی کند.
روابط معکوس: روابط معکوس را میتوان با تنظیم r2 به عنوان مزدوج مختلط r1 مدل کرد.
محدودیتها: روابط 1 به N و روابط ترکیب
ComplEx نمیتواند روابط ترکیب را به خوبی روابط 1 به N مدل کند، زیرا عملکرد امتیازدهی مشابهی با DistMult دارد.
12. خلاصه روشها:
ما چهار روش مورد استفاده برای مدلسازی راس، دم، تعبیه رابطه را مورد بحث قرار دادهایم:
· TransE
· TransR
· DistMult و
· ComplEx
حال اجازه دهید بحثهای بخش 4 تا 11 را خلاصه کنیم. در ادامه به نتایج بحثهای مربوط به روابطی که هر یک از روشها میتوانند مدلسازی شوند، میپردازیم.
جدول - خلاصهای از روشها و روابطی که آنها میتوانند مدل کنند
نکته جالب این است که هر یک از روشها - همانطور که در جدول نشان داده شده است - ایده متفاوتی دارد. TransE و TransR راس، رابطه و دم را در فضای اقلیدسی قرار میدهند. TransE از ایده ترجمه برای هر رابطه استفاده میکند در حالی که TransR تعبیهها را به فضای دیگری تبدیل میکند.
جدول بالا انواع مختلف رابطه را نشان میدهد که روشها میتوانند مدلسازی کنند. همانطور که ملاحظه شد و بحث شد، TransE تنها روشی است که میتواند انواع روابط ترکیب را مدل کند. DistMult تابع امتیاز دهی متفاوتی را اتخاذ میکند - مشابه شباهت کسینوس و ComplEx تعبیه را در فضای پیچیده فرموله میکند.
تعبیه گراف دانش در عمل:
میتوان نتیجه گرفت که گرافهای دانش مختلف دارای الگوهای رابطهای و ویژگیهای متفاوتی هستند. بنابراین، هیچ روشی وجود ندارد که برای همه گرافهای دانش کار کند. روش مورد استفاده به نوع رابطهای که به مدلسازی علاقه دارید و نوع روابطی که میخواهید پیشبینی کنید بستگی دارد.
همانطور که در جدول مشاهده شد، اگر کسی به مدلسازی روابط ترکیبی علاقهمند است، روش انتخابی TransE است، در حالی که اگر مجبور به مدلسازی روابط 1 به N باشد، TransE نمیتواند استفاده شود. به طور کلی، TransR و ComplEx قادر به مدلسازی متنوعترین مجموعه از انواع مختلف روابط هستند.
تکمیل گراف دانش یکی از رایجترین و مهمترین پرسشها هنگام برخورد با گرافهای دانش در عمل است. هر یک از روشهای مورد بحث در این وبلاگ – TransE، TransR، DistMult، ComplEx از فضای تعبیه متفاوتی برای مدلسازی انواع مختلف روابط استفاده میکنند.
[1] Heterogeneous Graphs and Relational Graph Convolutional Neural Networks
[2] Impute/Predict
[3] Intuition and Interpretation
[4] Translation
[5] Move/Translate
[6] Symmetric
[7] Antisymmetric
[8] Hypernyms
[9] Inverse Relation
[10] Composite Relation
[11] Different/Distinct
[12] Stretch/Compress
[13] Housemate
۱.انتخاب ویژگی در مقابل کاهش ابعاد:
مجموعه دادهها اغلب ابعاد بالایی دارند و حاوی تعداد زیادی از ویژگیها هستند، اگرچه ارتباط هر ویژگی برای تجزیه و تحلیل این دادهها همیشه مشخص نیست.
فقط نباید همه چیز را در مدل یادگیری ماشین خود پرتاب کرد و به فرایند آموزش خود متکی است تا مشخص شود که کدام ویژگیها در واقع مفید هستند - من قبلاً در پستهای خود بحث کردهام. بنابراین، انجام انتخاب ویژگی و یا کاهش ابعاد برای کاهش تعداد ویژگیهای موجود در یک مجموعه داده ضروری است. در حالی که هر دو "انتخاب ویژگی" و "کاهش ابعاد" برای کاهش تعداد ویژگیها در یک مجموعه داده استفاده میشود ، تفاوت مهمی وجود دارد.
· انتخاب ویژگی به سادگی انتخاب و حذف ویژگیهای داده شده بدون تغییر آنها است
· در حالی که کاهش ابعادی ویژگیها را به بعد پایینتر تبدیل میکند
انتخاب ویژگی ویژگیهایی را نشان میدهد که به بهترین وجه نشان دهنده رابطه بین همه در فضای ویژگی و همچنین هدفی است که مدل سعی در پیشبینی آن خواهد داشت. روشهای انتخاب ویژگی ویژگیهایی را که بر نتیجه تأثیر نمیگذارد حذف میکند. این باعث کاهش اندازه فضای ویژگی میشود، از این رو نیاز به منابع برای پردازش دادهها و پیچیدگیهای مدل را نیز کاهش میدهد.
۲. روشهای انتخاب ویژگی:
روشهای انتخاب ویژگیها میتوانند در دستهبندی قرار بگیرند: انتخاب ویژگیهای بدون نظارت و نظارت. در انتخاب ویژگی بدون نظارت، رابطه متغیر هدف در نظر گرفته نمیشود. در اینجا، همبستگی بین ویژگیها مشخص میشود. یعنی: اگر شما 2 ویژگی را دارید و آنها بسیار همبسته هستند ، بدیهی است که شما به هر دو ویژگی احتیاج ندارید.
برای انتخاب ویژگیهای نظارت شده، میخواهد به رابطه هدف نگاه کند - بنابراین رابطه بین هر یک از ویژگیها و هدف (یا) برچسب در انتخاب ویژگی استفاده میشود. روشهایی که تحت انتخاب ویژگیهای تحت نظارت قرار میگیرند شامل روشهای فیلتر، روشهای بستهبندی و روشهای تعبیه شده است.
روشهای فیلتر:
همانطور که گفته شد، روشهای فیلتر به ویژگیهای تجربی نگاه میکنند و بهترین زیر مجموعهای را که میتوانید به مدل یادگیری ماشین خود ارائه دهید، انتخاب میکند. روشهای فیلتر محبوب شامل همبستگی پیرسون است - این همبستگی بین ویژگیها و بین ویژگیها و برچسب هدف است. بنابراین، در روشهای فیلتر ما میخواهیم با تمام ویژگیها شروع کنیم و میخواهیم بهترین زیر مجموعهای را که به مدل یادگیری ماشین میدهیم انتخاب کنیم و این عملکرد مدل را با این زیر مجموعه ویژگیها به ما میدهد.
ما یک ماتریس همبستگی دریافت خواهیم کرد که به ما میگوید که چگونه ویژگیها با یکدیگر و متغیر هدف مرتبط هستند. این همبستگی در محدوده -1 و 1+ قرار می گیرد که 1+ یک همبستگی بسیار مثبت است و -1 همبستگی بسیار منفی است. برخی از همبستگیهایی که اغلب مورد استفاده قرار میگیرند عبارتند از:
· همبستگی پیرسون
· همبستگی Kendall Tau
· همبستگی رتبه Spearman
شکل: محاسبه خطا در PCA
3. انتخاب ویژگی تک متغیره در Sklearn:
کلاسهای موجود در ماژول Sklearn.feature_selection میتواند برای انتخاب ویژگی / کاهش ابعاد در مجموعههای نمونه، یا برای بهبود نمرات دقت برآوردگرها یا تقویت عملکرد آنها در مجموعه دادههای بسیار بالا استفاده شود. Sklearn روال زیر را برای انتخاب ویژگی دارد:
· SelectKbest
· Selectpercentil
· GeenricUnivariateSection
· SelectKbest همه ویژگیهای امتیاز دهی K را حذف میکند
· SelectPercentile همه به جز بالاترین درصد امتیاز دهی از ویژگیهای مشخص شده توسط کاربر را حذف میکند
۴. روشهای بستهبندی
روشهای بستهبندی محبوب برای انتخاب زیر مجموعهای که در بالا گفته میشود شامل میشود.
· Forward Selection
· Backward Selection
· Recursive Feature Elimination
روشهای فوق چگونه کار میکنند؟
Forward Selection:
انتخاب رو به جلو یک روش تکراری "حریص" است. این امر به این دلیل است که ما یک بار یک ویژگی را انتخاب میکنیم ، آن را به مدل یادگیری ماشین منتقل میکنیم و عملکرد را ارزیابی میکنیم. ما روند افزایش ویژگیها را در هر تکرار تکرار میکنیم تا زمانی که بهبود عملکرد مدل مشاهده نشود. در این مرحله، ما میدانیم که بهترین زیر مجموعه از تمام ویژگیها را ایجاد کردهایم. بنابراین ، به آن گفته می شود: حذف رو به جلو.
Backward Selection:
حذف عقب - این فقط برعکس انتخاب رو به جلو است. همانطور که ممکن است آن را حدس بزند، در حذف عقب ما با "همه ویژگیها" شروع میکنیم و عملکرد مدل را هنگام حذف هر ویژگی در یک زمان ارزیابی میکنیم. ما تمایل داریم هنگام حذف یک ویژگی به طور همزمان عملکرد بهتری داشته باشیم و تا زمانی که پیشرفت دیگری نداشته باشد ادامه دهیم.
حذف ویژگی بازگشتی:
در حذف ویژگی بازگشتی، از یک مدل برای ارزیابی اهمیت ویژگی استفاده میکنیم. دستهبند جنگل تصادفی یکی از انواع مدلهایی است که میتوانیم اهمیت ویژگی را ارزیابی کنیم. ابتدا تعداد ویژگیهای مورد نظر را انتخاب میکنیم و مدل را متناسب میکنیم. مدل ویژگیها را بر اساس اهمیت رتبهبندی میکند و سپس کماهمیتترین ویژگیها را کنار میگذاریم. تکرار می کنیم تا تعداد ویژگیهای مورد نظر باقی بماند. انتخاب ویژگی بازگشتی اغلب در بین همه بهترین عملکرد را دارد.
5. روشهای تعبیه برای انتخاب ویژگی
روشهای تعبیه شده دوباره یک روش نظارت شده برای انتخاب ویژگی هستند. این روش امتیاز را اختصاص میدهد و ویژگیهایی را که بر اساس اهمیت ویژگی امتیاز کمتری دارند، کنار میگذارد. با نگاهی به SKLearn، کلاس اهمیت ویژگی در مدلهای مبتنی بر درخت (به عنوان مثال Random Forest Classifier) ساخته شده است. اهمیت ویژگی به عنوان یک ویژگی در feature_importances_ موجود است. سپس میتوانیم از SelectFromModel برای انتخاب ویژگیها از مدل آموزشدیده بر اساس اهمیت ویژگی اختصاص داده شده استفاده کنیم.
استخراج اهمیت ویژگی:
هنگامی که Sklearn وارد شد، دادهها پاک میشوند، و مدل نمونهسازی میشود و همچنین برای روی دادههای آموزشی، model.feature_importances_ چیزی است که شما نیاز دارید.
روشهای استخراج از رگرسیون خطی و لجستیک کمی متفاوت است.
شکل: معیار اهمیت ویژگی
6. کاهش ابعاد
همانطور که گفته شد، / در پستهای من قبلاً توضیح داده شد، مجموعه دادهها اغلب ابعاد بالایی دارند و دارای تعداد زیادی ویژگی هستند، اگرچه همه ویژگیها اغلب به مسئله مربوط نمیشوند. بنابراین ممکن است حذف ویژگی یا کاهش ابعاد مجموعه داده ضروری شود. من برخی از تکنیکها/روشهای حذف ویژگیها را مورد بحث قرار دادهام، مانند: روشهای فیلتر (مانند همبستگی پیرسون)، حذف ویژگی تک متغیره، روشهای Wrapper و روشهای تعبیه. اکنون به کاهش ابعاد نگاه میکنیم.
برخلاف روشهای فوق برای حذف ویژگی (که فقط ویژگیهای کماهمیت را «از بین میبرند») بدون ایجاد تغییر در ویژگیها؛ کاهش ابعاد "تبدیل" ویژگیها به بعد پایینتر.
انگیزه کاهش ابعاد:
انگیزه کاهش ابعاد دوگانه است:
1) اولاً، همانطور که مسئله را به فضایی با ابعاد کمتر تبدیل میکنید، کل دادههای ذخیره شده در حافظه رایانه را کاهش میدهید و همچنین الگوریتم یادگیری را افزایش میدهید، زیرا فضای ویژگی را کاهش میدهید و در نتیجه تعداد کمتری پارامترها (وزن) در مدل شما را حل میکنید.
2) انگیزه دوم: تجسم دادهها - تجسم دادهها در بیش از سه بعد آسان نیست - میتوانیم دادهها را به 3 بعد یا کمتر کاهش دهیم تا آن را ترسیم کنیم، ویژگیهای جدید را پیدا میکنیم: z1، z2 (و شاید z3) که میتواند به طور مؤثر همه ویژگیهای دیگر را "خلاصه" کند.
شهود کاهش ابعاد:
اجازه دهید بگوییم که ما یک مجموعه داده با چندین ویژگی جمعآوری کردیم - در زیر فقط دو مورد از ویژگیها را ترسیم میکنیم. از شکل ۱ مشخص است که به جای داشتن 2 ویژگی، در واقع میتوانیم فقط یک ویژگی در امتداد بعد z1 داشته باشیم.
به طور مشابه، میتوانیم دادهها را از سه بعدی به دو بعدی کاهش دهیم (شکل 2 را در زیر ببینید) - ** باید تأکید شود که در یک مثال معمولی ممکن است یک مسئله 1000 بعدی داشته باشیم که آن را به ابعاد کمتر (مثلا) به 100 کاهش میدهیم. ابعاد، با این حال ما نمیتوانیم چنین مسائلی را تجسم کنیم، بنابراین شهود با استفاده از چنین مثالهایی به بهترین شکل احساس میشود** - در اینجا (در شکل 2) میتوانیم دادهها را از 3 بعد به یک صفحه 2 بعدی همانطور که برجسته شده است (در امتداد جهتهای z1 و z2) نمایش دهیم. بنابراین، ما مسئله را از سیستم مختصات x1، x2، x3 به سیستم مختصات z1، z2 تبدیل کردهایم.
بنابراین، با مثالهای ساده بالا، کاهش ابعاد به کاهش منابع رایانه کمک میکند و مهمتر به بهینهسازی خطوط لوله داده کمک میکند.
شکل: احساس شهودی کاهش ابعاد
7. تجسم دادهها:
کاهش منابع کامپیوتری، سرعت بخشیدن به فرآیند آموزش و بهینهسازی خطوط لوله داده یکی از انگیزهها برای انجام کاهش ابعاد است. انگیزه دیگر برای انجام کاهش ابعاد، تجسم داده است.
با در نظر گرفتن کاربرد کاهش ابعاد در مورد استفاده شامل تجسم دادهها؛ تجسم دادههای بیش از سه بعدی آسان نیست. میتوانیم ابعاد دادههای خود را به 3 یا کمتر کاهش دهیم تا بتوانیم آنها را رسم کنیم.
ما باید ویژگیهای جدیدی را پیدا کنیم: z1، z2 (و شاید z3) که میتوانند به طور موثر همه ویژگیهای دیگر را خلاصه کنند. این به طور مستقیم قابل تفسیر نیست که ویژگیهای تبدیلشده جدید نشاندهنده چیست - این به مهندس یادگیری ماشین واگذار میشود که با توجه به فیزیک مسئله استنباط کند.
[یک مورد استفاده متداول که من در زمینه مکانیک شکست مواجه شدهرام که در آن من یک جزء مدلسازی شده در نرم افزار اجزای محدود در 3 بعد دارم، اما راهحلهای تحلیلی مکانیک شکست برای صفحات 2 بعدی موجود است. کاهش ابعاد با استفاده از یک الگوریتم به عنوان PCA (به زیر مراجعه کنید) میتواند در چنین موردی برای تجزیه و تحلیل انتشار ترک با محوریت منطقه مورد نظر مناسب باشد]
در نظر گرفتن مثال رایج دیگری در خارج از حوزه مکانیک سازه برای کمک به تجسم دادهها:
صدها ویژگی مرتبط با سیستم اقتصادی یک کشور ممکن است همه در یک ویژگی ترکیب شوند که شما آن را «فعالیت اقتصادی» مینامید.
با استفاده از کاهش ابعاد، میتوان موارد فوق را به دو ویژگی زیر خلاصه کرد و همانطور که ذکر شد تفسیر فیزیکی ویژگیها به مهندس محول میشود. شکلهای 3،4،5 را در زیر ببینید
کاهش ابعاد: تجزیه و تحلیل مؤلفه اصلی
محبوبترین الگوریتم کاهش ابعاد، آنالیز مؤلفه اصلی (PCA) است.
همانطور که در قسمت 4 این سری از پستها توضیح داده شد، با توجه به دو ویژگی x1 و x2 میخواهیم یک خط واحد پیدا کنیم که به طور موثر هر دو ویژگی را به طور همزمان توصیف کند. سپس ویژگیهای قدیمی خود را بر روی این خط جدید ترسیم میکنیم تا یک ویژگی واحد جدید به دست آوریم. همین کار را میتوان با سه ویژگی انجام داد، جایی که آنها را به یک هواپیما نگاشت میکنیم.
هدف PCA کاهش میانگین تمام فواصل هر ویژگی تا خط طرح است. این خطای طرحریزی است و در شکل 6 نشان داده شده است
برای یک مورد عمومی به صورت زیر عمل میکنیم:
از بعد n به بعد k تقلیل دهید: بنابراین، k بردار u1)، u2)،... u(k) را پیدا کنید که دادهها را بر روی آنها پخش کنید تا خطای طرحریزی را به حداقل برسانید.
شکل: نمونهای از کاهش ابعاد برای کمک به تجسم دادهها
8. تفسیر ریاضی تجزیه و تحلیل مؤلفه اصلی و الگوریتم تجزیه و تحلیل مؤلفه اصلی
بخشهای بالا بیشتر در مورد تفسیر فیزیکی روش تجزیه و تحلیل مؤلفه اصلی (PCA) برای کاهش ابعاد پوشش میدهند. اجازه دهید کمی به جبر خطی بپردازیم و برخی از پیشینه ریاضی PCA را درک کنیم!
تجزیه و تحلیل مؤلفه اصلی (PCA) یک ابزار استاندارد در تجزیه و تحلیل دادههای مدرن است که در زمینههای مختلف از علوم اعصاب گرفته تا گرافیک کامپیوتری و مهندسی به طور کلی استفاده میشود - زیرا یکی از سادهترین (از این رو، جالبترین!) روشها برای استخراج اطلاعات مرتبط از مجموعههای داده "گیج کننده" است.
با کمترین تلاش (3/4 خط کد پایتون/متلب) PCA نقشه راه را برای چگونگی کاهش یک مجموعه داده پیچیده به ابعاد پایینتر ارائه میکند تا ساختارهای پنهان و سادهشدهای که اغلب زیربنای آن هستند را آشکار کند.
هدف تجزیه و تحلیل مؤلفههای اصلی، شناسایی معنادارترین مبنای برای بیان مجدد مجموعه داده است. امید این است که این پایه جدید نویز را فیلتر کرده و ساختار پنهان را آشکار کند - بنابراین منجر به کاهش ابعاد میشود.
چارچوب PCA: تغییر اساس
بنابراین، سؤالی که PCA دقیقاً میپرسد این است: آیا مبنای دیگری وجود دارد که ترکیبی خطی از مبنای اصلی است که دادههای ما را به بهترین شکل بازگو کند؟ بنابراین، PCA قصد دارد دادههای اصلی X را به عنوان یک ترکیب خطی از پایه P دوباره بیان کند.
PX = Y
بهترین انتخاب P در PCA چیست؟
در معادله بالا، P کشش است و چرخشی که به بردارها در امتداد ستونهای X میدهد (با توجه به اینکه همه ویژگیها را در امتداد ستونهای X سازماندهی کردهایم و تعداد ردیفهای X تعداد نمونههای آموزشی را تشکیل میدهد. - در مثال تجسم دادهها، تعداد ردیفهای مربوط به تعداد کشورهای در نظر گرفته شده در مثال) به طوری که آنها با یک مبنای جدید یا جهتهای اصلی تراز شوند.
ما می خواهیم که مبنای جدید به گونهای باشد که در جایی که ما گسترش/واریانس دادهها (با توجه به میانگین) را تا حد امکان داشته باشیم. این به ما امکان میدهد آن ابعادی را که داده ها تقریباً مسطح هستند حذف کنیم. این امر ابعاد دادهها را کاهش میدهد در حالی که واریانس (یا گسترش) بین دادهها را تا حد ممکن نزدیک به دادههای اصلی نگه میدارد.
1. پیشپردازش دادهها:
همه مدلهای یادگیری ماشینی برای بهبود آموزش نیاز به پیشپردازش داده دارند. نحوه بازنمایی دادهها میتواند تأثیر زیادی بر نحوه یادگیری مدل یادگیری ماشین از آن داشته باشد. برای مثال، وقتی دادههای عددی بهطور مناسب مقیاسگذاری شوند، مدلها تمایل دارند سریعتر و قابل اعتمادتر همگرا شوند. تکنیکهای انتخاب و تبدیل دادهها کلید افزایش کیفیت پیشبینی مدلها هستند.
هنر مهندسی ویژگی سعی میکند توانایی مدل را برای یادگیری بهبود بخشد و در صورت نیاز منابع محاسباتی را کاهش دهد. این کار را با تبدیل[1] و فرافکنی[2] (مثلاً کاهش ابعاد)، حذف[3] (روشهای انتخاب ویژگی) یا ترکیب ویژگیهای[4] دادههای خام برای ایجاد نسخه جدیدی از مجموعه داده انجام میدهد.
مهم: مهندسی ویژگی باید در آموزش و خدمت ثابت باشد
در طول آموزش، شما کل مجموعه داده را در دسترس خود دارید. بنابراین، میتوان از خصوصیات سراسری ویژگیهای فردی در تبدیل مهندسی ویژگی استفاده کرد.
· برای مثال، میتوانید انحراف استاندارد ویژگیها را محاسبه کنید و از آن برای انجام نرمالسازی استفاده کنید. باید تاکید کرد که وقتی مدل را ارائه میدهید، باید همان مهندسی ویژگی را انجام دهید تا همان نوع دادههایی را به مدل بدهید که مدل روی آن آموزش داده شده است. بنابراین، اگر دادهها را نرمال کردهاید و از انحراف استاندارد استفاده کردهاید، این ثابتهای سراسری باید ذخیره شوند و در حین ارائه نیز از آنها استفاده شود. انجام ندادن آن یک منبع بسیار رایج مسئله در سیستمهای تولید است و اشکال زدایی چنین خطاهایی ممکن است دشوار باشد.
· یا، اگر هنگام آموزش یک Hot Vector برای یک ویژگی دستهبندی ایجاد کردهاید، باید هنگام ارائه مدل، یک Hot Vector نیز ایجاد کنید.
این مجموعه/سند شامل موضوعات زیر مرتبط با مهندسی ویژگی خواهد بود:
· بخش 2 به عملیات پیش پردازشی که برای مهندسی ویژگی استفاده می شود، روشن میکند
· بخش 3 در مورد پاکسازی دادهها خواهد بود و در مورد برخی از روشهای آماری که ممکن است برای تشخیص نقاط پرت در مجموعه داده استفاده شود صحبت خواهد کرد.
· بخش 4 در مورد مقیاسگذاری ویژگیها صحبت خواهد کرد
2. عملیات پیشپردازش
اجازه دهید در مورد برخی از عملیات پیشپردازش که برای مهندسی ویژگی استفاده میشود صحبت کنیم
· پاکسازی دادهها: این شامل حذف یا تصحیح دادههای اشتباه است
· تنظیم ویژگی: اغلب نیاز به انجام تبدیل روی دادهها مانند مقیاسبندی، نرمالسازی دادهها است زیرا مدلهای یادگیری ماشین و شبکههای عصبی به طیف وسیعی از ویژگیهای عددی حساس هستند.
· استخراج ویژگی: کاهش ابعاد در مقابل روشهای انتخاب ویژگی: نباید همه چیز را به مدل یادگیری ماشینی خود بیاندازید و برای تعیین اینکه کدام ویژگی واقعاً مفید هستند، به فرآیند آموزشی خود تکیه کنید. بنابراین، انجام انتخاب ویژگی و | ضروری است یا کاهش ابعاد برای کاهش تعداد ویژگیهای یک مجموعه داده. در حالی که هر دو «انتخاب ویژگی» و «کاهش ابعاد» برای کاهش تعداد ویژگیهای یک مجموعه داده استفاده میشوند، یک تفاوت مهم وجود دارد:
· انتخاب ویژگی به سادگی انتخاب و حذف ویژگیهای داده شده بدون تغییر آنهاست
· در حالی که کاهش ابعادی ویژگیها را به بعد پایینتر تبدیل میکند
انتخاب ویژگی ویژگیهایی را مشخص میکند که به بهترین شکل نشان دهنده رابطه بین همه در فضای ویژگی و همچنین هدفی است که مدل سعی میکند پیشبینی کند. روشهای انتخاب ویژگی ویژگیهایی را که بر نتیجه تأثیری ندارند حذف میکنند. این امر اندازه فضای ویژگی را کاهش میدهد، بنابراین منابع مورد نیاز برای پردازش دادهها و پیچیدگی مدل را نیز کاهش میدهد. من در مورد انتخاب ویژگی و کاهش ابعاد در اینجا بحث کردهام.
· Bucketizing و Binning: گاهی اوقات ممکن است مفید باشد که محدودههای مختلف داده را در یک Hot Encoding مانند شکل زیر قرار دهید. برای مثال، اگر با مجموعه دادههای خانههایی که در طول سالها ساخته شدهاند سر و کار دارید، میتوانید سالهای مختلف را مطابق شکل زیر در نظر بگیرید:
3. پاکسازی دادهها
همانطور که گفته شد، پاکسازی دادهها شامل حذف یا تصحیح دادههای اشتباه است. نقاط پرت معمولاً به عنوان نمونههایی تعریف میشوند که معمولاً از جریان اصلی دادهها دور هستند. نقاط پرت در مجموعه داده ممکن است ناشی از خطای اندازهگیری یا ورودی، خرابی دادهها و غیره باشد. روشهای آماری ممکن است برای شناسایی نقاط پرت در مجموعه داده استفاده شود. برخی از این روشها در زیر مورد بحث قرار میگیرند. با این حال، نکتهای که باید مورد توجه قرار گیرد این است که هر یک از روشهای مورد بحث باید با دقت مورد استفاده قرار گیرد. در پایان، به دانش حوزه موضوعی شما و بررسی نامزدهای پرت برمیگردد. همیشه ممکن است یک مقدار غیرمعمول بخشی از تغییرات طبیعی فرآیند باشد تا یک نقطه مسئلهساز.
۳.۱ روش درصد:
در روش صدک، شما یک آستانه خاص در صدک تعیین میکنید. به عنوان مثال، هر چیزی بالاتر از صدک 98٪ و صدک کمتر از 2٪ ممکن است به عنوان یک نقطه پرت در نظر گرفته شود و سپس شما این نمونهها را از مجموعه داده برش دهید یا آن را محدود کنید. روش درصد دلخواه است و شما باید بر اساس دانش دامنه به صورت دستی آستانه را تعیین کنید.
3.2 استفاده از Z-score برای تشخیص نقاط پرت
Z-score غیرعادی بودن یک مشاهده را زمانی که دادههای شما از توزیع نرمال پیروی میکنند کمیت میکند. Z-scores تعداد انحرافات استاندارد بالاتر و کمتر از میانگین هر مقدار است. Z-score 2 نشان میدهد که یک مشاهده 2 انحراف استاندارد بالاتر از میانگین است در حالی که Z-score 2 نشان میدهد که 2 انحراف استاندارد کمتر از میانگین است.
از نظر ریاضی،
Z-score توسط:
درصد در مقابل Z-score:
باید تاکید کرد که در حالی که صدک از میانه به عنوان یک میانگین استفاده میکند (صدک 50)، Z-score از میانگین به عنوان میانگین استفاده میکند. بنابراین، Z-score 0 مقداری برابر با میانگین را نشان میدهد. هر چه امتیاز Z از میانگین دورتر باشد، غیرعادیتر است.
۳.۳ حذف نقاط پرت با استفاده از محدوده بین چارکی (IQR)
بر خلاف میانگین و انحراف معیار، محدوده بین چارکی و میانه معیارهای قوی هستند. اگر مجموعه داده به طور معمول توزیع شده باشد، میتوانید از انحراف استاندارد برای تعیین درصد مشاهداتی که در فواصل مشخصی از میانگین قرار میگیرند استفاده کنید. با این حال، اگر دادهها به طور معمول توزیع/توزیع ناهنجار نباشند، کار نمیکند و IQR یک جایگزین عالی است.
محدوده بین چارکی چیست؟
محدوده بین چارکی[5] (IQR) گسترش نیمه میانی دادهها را اندازهگیری میکند. این محدوده برای 50 درصد وسط نمونه شما است. IQR برای ارزیابی تغییرپذیری جایی که بیشتر مقادیر قرار دارند استفاده میشود. برای یافتن نقاط پرت، از یک ضریب (معمولاً 1.5) استفاده میشود تا از صدک 25 کم شود - که حد پایین Q1 را به 1.5 IQR میدهد و به صدک 75 اضافه میکند (یعنی حد بالایی Q3 + 1.5 IQR) استفاده میشود. هر نمونهای که فراتر از حد پایین و بالایی باشد به عنوان "پرت" دستهبندی میشود.
شکل زیر ریاضیات را بهتر نشان میدهد:
4. مقیاسگذاری ویژگیها
۵.۱ چرا مقیاسگذاری ویژگیها؟
مجموعه دادههای دنیای واقعی اغلب حاوی ویژگیهایی هستند که در درجه بزرگی و واحدهایشان متفاوت است. بنابراین، برای اینکه مدل یادگیری ماشین همه ویژگیها را در یک مقیاس تفسیر کند، باید «مقیاسگذاری ویژگی» را انجام دهیم.
مقیاسبندی ویژگی به الگوریتمهایی برای به حداقل رساندن تابع هزینه مانند نزول گرادیان کمک میکند تا سریعتر همگرا شوند و در بسیاری از موارد همانطور که در بخش بحث شد اجباری شوند. برای درک مقیاس گذاری ویژگی، اجازه دهید رابطه بین مقادیر ویژگی و پارامترها را از طریق یک مثال بررسی کنیم.
اهمیت مقیاسگذاری ویژگی:
برای درک اهمیت مقیاسگذاری ویژگی در بصریترین مفهوم، به تجزیه و تحلیل مؤلفه اصلی[6] (PCA) فکر کنید.
PCA سعی میکند اجزای اصلی را با انتخاب یک “u” (جهتی که در آن نقاط داده را نمایش میدهید) مکانیابی کند تا حداکثر واریانس را بدست آورید. شما حداکثر واریانس را میخواهید زیرا میخواهید حداکثر اطلاعات را از مجموعه دادههای خود حفظ کنید.
فرض کنید مجموعه دادههای شما از ویژگی «قد» و «وزن» تشکیل شده است، سپس، به دلیل تفاوت ذاتی در مقیاسها در قد و وزن، PCA ممکن است جهت حداکثر واریانس مربوط به محور «وزن» را تعیین کند - در صورت عدم وجود ویژگی مقیاسگذاری انجام شده است - که به وضوح نادرست است زیرا تغییر ارتفاع 1 متر بسیار قابل توجه است. از این رو مقیاسبندی ویژگی در اینجا اجباری میشود.
و همچنین در الگوریتمهایی مانند K Nearest Neighbors که در آن با فواصل اقلیدسی سروکار دارید.
۵.۲ درک مقیاسگذاری ویژگی از طریق یک مثال
اجازه دهید مثال “Hello World” را از یادگیری ماشین در نظر بگیریم که در آن شما قیمت خانه را پیشبینی میکنید – و ویژگیهای مرتبط:
· اندازه در فوت مربع - ویژگی x1
· تعداد اتاق خواب - ویژگی x2
در اینجا اندازه بر حسب فوت مربع ممکن است از 300 تا 2000 فوت مربع و تعداد اتاق خوابها از 0 تا 5 متغیر باشد. بنابراین، ویژگی x1 محدوده نسبتاً زیادی از مقادیر را به خود میگیرد و ویژگی x2 دامنه مقادیر نسبتاً کمتری را به خود اختصاص میدهد.
بیایید بگوییم مدل مرتبط با پیشبینی قیمت با معادله زیر ارائه میشود و اجازه دهید بگوییم که در حال پیشبینی قیمت برای یک خانه 5 خوابه به مساحت 2000 فوت مربع هستیم.
یکی از پارامترهای مدل میتواند این باشد:
این منجر به ارزیابی قیمت موارد زیر میشود:
بیایید بگوییم که قیمت 500 هزار تقریباً قیمت مناسب است، بنابراین، مدل پارامترها را به درستی ارزیابی کرده است.
در اینجا، ممکن است توجه شود که وقتی مقدار ویژگی نسبتاً بزرگ است (x1 -> 2000 فوت مربع)، مقدار پارامتر مربوطه کوچک است (w1 ۱/۰ است) و زمانی که مقدار ویژگی نسبتاً کوچک است (x2 5 اتاق خواب است)، مقدار پارامتر مربوطه نسبتاً بزرگ است (w2 50 است).
اجازه دهید موارد فوق را به صورت بصری بررسی کنیم. اجازه دهید نمودار پراکندگی ویژگیها را بدست آوریم: اندازه بر حسب فوت مربع در محور افقی در مقابل تعداد اتاق خوابها در محور عمودی است - برای برخی از نمونههای آموزشی که در زیر نشان داده شده است:
حال، اجازه دهید ببینیم که تابع هزینه چگونه ممکن است در نمودار کانتور به نظر برسد. ممکن است یادآوری شود که با تعریف "کانتور" - همه نقاط روی یک کانتور خاص ارزش یکسانی از تابع هزینه را نشان میدهند.
همانطور که ممکن است از شکل بالا متوجه شوید، خطوط بیضیهایی را تشکیل میدهند که در امتداد یک طرف کوتاهتر هستند (ضلع مربوط به w1 و در امتداد دیگر طولانیتر - محور مربوط به w2).
در چنین حالتی، الگوریتم کمینهسازی، مانند نزول گرادیان، ممکن است زمان زیادی طول بکشد تا همگرا شود، زیرا ممکن است قبل از اینکه بتواند حداقلهای سراسری را که در شکل زیر تقلید شده است، پیدا کند:
چگونه مسئله فوق را حل کنیم؟
در چنین حالتی، ممکن است مقیاسگذاری ویژگیها بهعنوان x1 فوت مربع و x2 تعداد اتاقخوابها بهگونهای مفید باشد که ویژگیهای مقیاسشده/تبدیل شده بین 0 و 1 قرار گیرند. شکل زیر:
همانطور که ممکن است متوجه شوید، نمودار مقیاسگذاری شده با نمودار مقیاس نشده/تبدیل نشده متفاوت است. این به این دلیل است که ویژگیهای مقیاس شده x1 و x2 اکنون محدوده مقادیر سازگاری را با یکدیگر دریافت میکنند و اکنون اگر الگوریتم کمینهسازی را مانند نزول گرادیان روی ویژگیهای مقیاس شده اجرا کنید، نمودارهای کانتور تابع هزینه به صورت زیر به نظر میرسد:
همانطور که ممکن است متوجه شوید، نمودارهای کانتور دیگر بلند و لاغر نیستند و شیب نزول مسیری مستقیم به حداقل سراسری پیدا میکند که در شکل زیر نشان داده شده است.
بنابراین، برای نتیجهگیری، میتوان بیان کرد: اگر ویژگیهای مختلفی دارید که دامنه مقادیر متفاوتی را به خود اختصاص میدهند، میتواند باعث شود الگوریتمهایی مانند شیب نزول به آرامی همگرا شوند، اما ویژگیها را مجدداً مقیاس کنید تا مقادیر قابل مقایسه آنها ممکن است الگوریتم کمینهسازی را به طور قابل توجهی سرعت بخشد.
۵.۳ راههای ممکن برای مقیاسگذاری ویژگیها
اجازه دهید اکنون راههای ممکن برای مقیاسگذاری ویژگیها را ببینیم، این موارد عبارتند از:
· تقسیم بر حداکثر: در اینجا هر ویژگی را میگیریم و هر نمونه از ویژگی را بر مقدار حداکثر تقسیم میکنیم تا هر مقدار بین 0 و 1 قرار گیرد (0 <= x1 <= 1)
بنابراین، با در نظر گرفتن همان مجموعه داده، در اصل،
مقیاسگذاری بر اساس تقسیم بر حداکثر:
بنابراین،
· میانگین نرمالسازی: در نرمالسازی میانگین، با ویژگیهای اصلی شروع میشود و آنها را مجدداً مقیاس میدهد تا در مرکز 0 قرار گیرند. به طور معمول، ویژگیها بین -1 و +1 قرار دارند. ویژگیهای مقیاسگذاری مجدد بر اساس میانگین نرمالسازی عبارتند از:
یعنی: برای ویژگی x1، میانگین x1 را برای تمام مثالهای آموزشی محاسبه میکنیم و سپس حداکثر و حداقل مقدار مربوط به ویژگی x1 را از تمام مثالهای آموزشی میگیریم.
· نرمالسازی Z-score: یکی دیگر از روشهای رایج مقیاسگذاری ویژگی، نرمالسازی Z-score است. برای انجام نرمالسازی Z-score، باید انحراف استاندارد هر ویژگی را محاسبه کنیم. نرمالسازی Z-score برای ویژگی x1 توسط:
کجا،
µ1 میانگین تمام مثالهای آموزشی مربوط به ویژگی x1 است و انحراف معیار است
5.4 کتابخانههای Scikit-Learn برای مقیاسگذاری ویژگیها
3 نوع مختلف اسکالر در کتابخانه Scikit-learn برای مقیاسگذاری ویژگیها وجود دارد. این موارد عبارتند از:
· Min-Max Scalar
· Standard Scalar
· Robust Scalar
اسکالر حداقل حداکثر:
با استفاده از اسکالر Min-Max، همه ویژگیها به محدوده تبدیل میشوند: [۱، ۰]، یعنی حداقل و حداکثر مقدار ویژگی بین 0 و 1 خواهد بود.
مقیاسگذاری استاندارد:
Standardscaler ویژگیها را با حذف میانگین و مقیاسگذاری آن به واریانس واحد استاندارد میکند. نمره استاندارد یک نمونه به صورت زیر محاسبه میشود:
که در آن μ و σ به ترتیب میانگین و انحراف معیار هستند
میانگین و انحراف استاندارد ذخیره میشوند تا بعداً در طول خدمت مدل استفاده شوند. اسکالر استاندارد اغلب در بسیاری از الگوریتمهای یادگیری ماشین استفاده میشود. با این حال، الگوریتم ممکن است به خوبی کار نکند اگر ویژگی فردی کم و بیش استاندارد توزیع نرمال نباشد.
اسکالر قوی:
این اسکالر میانه را حذف میکند و دادهها را با توجه به محدوده چندک - محدوده بین چارکی (IQR) که بین چندک اول و سوم قرار دارد، مقیاس میکند.
باید تاکید کرد که استانداردسازی مجموعه داده اغلب انجام میشود - یعنی با استفاده از اسکالر استاندارد همانطور که در بالا توضیح داده شد، با این حال، نقاط پرت میتوانند میانگین / واریانس را به صورت منفی تحت تاثیر قرار دهند و در چنین شرایطی، میانه و محدوده بین چارکی به شما نتایج بهتر نشان میدهد.
اسکالر ترجیحی کدام است؟ Min-Max scalar | Standard Scalar | Robust Scalar؟
Min-Max Scalar هر مقدار در ستون را به نسبت در محدوده [0,1] تغییر میدهد.
اسکالر استاندارد هر مقدار در ستون را در محدوده میانگین و انحراف استاندارد تغییر میدهد. این روش زمانی استفاده میشود که توزیع گاوسی باشد
اگر مقادیر پرت در مجموعه داده وجود داشته باشد، Robust Scalar گزینه ترجیحی است. به جای آن، اگر فردی با موارد پرت در یک اسکالر استاندارد تجزیه و تحلیل داده اکتشافی یا اسکالر Min Max برخورد کرده باشد، بسته به اینکه دادهها به طور معمول توزیع شدهاند یا نه، ممکن است به آن متوسل شوند.
6. روش انتخاب ویژگی: مقدمه
پس از صحبت در مورد: پاکسازی دادهها، تکنیکهای آماری مختلف برای پاکسازی دادهها و به دنبال آن مقیاسگذاری ویژگیها و اهمیت مقیاسگذاری ویژگیها در الگوریتمهایی مانند تجزیه و تحلیل مؤلفههای اصلی، K-نزدیکترین همسایهها و همچنین در طول به حداقل رساندن تابع هزینه و برخی از نوت بوکهای من که این موارد را نشان میدهند. تکنیکهای پاکسازی دادهها و مقیاسگذاری ویژگیها، وقت آن است که در مورد برخی از روشهای انتخاب ویژگی بحث کنیم.
در این مقاله، من با جزئیات کافی در مورد روشهای انتخاب ویژگی بحث کردهام - از این رو این پست بر روی اشاره به برخی تمرکز خواهد داشت. نکات برجسته و دفترچههایی که کاربرد این روشها را نشان میدهد.
۷. نکات برجسته روشهای انتخاب ویژگی
روشهای انتخاب ویژگی ممکن است به روشهای نظارت شده و بدون نظارت دستهبندی شوند. در حالی که روشهای نظارت شده همبستگی بین ویژگیها و متغیر هدف را در نظر میگیرند، روشهای بدون نظارت همبستگی بین ویژگیها و متغیر هدف را در نظر نمیگیرند.
روشهایی که تحت انتخاب ویژگی نظارت شده قرار میگیرند عبارتند از:
· روشهای فیلتر کردن
· روشهای لفاف و
· روشهای تعبیه شده
روشهای فیلتر کردن:
در متدهای فیلتر، با تمام ویژگیها شروع میکنیم و بهترین زیرمجموعهای را که قرار است به مدل یادگیری ماشین بدهیم، انتخاب میکنیم. در این روشها، یک ماتریس همبستگی دریافت میکنیم که به ما میگوید چگونه ویژگیها با یکدیگر و متغیر هدف همبستگی دارند. برخی از همبستگیهایی که معمولا استفاده میشوند، همبستگی پیرسون، همبستگی رتبه تاو کندال و همبستگی اسپیرمن هستند.
روشهای لفافدار:
روشهای محبوب برای انتخاب ویژگی عبارتند از حذف به جلو[7]، حذف به عقب[8] و حذف ویژگی بازگشتی[9]
انتخاب رو به جلو[10] یک روش حریصانه است که در آن ما هر بار یک ویژگی را انتخاب میکنیم، آن را به مدل یادگیری ماشین منتقل میکنیم و اهمیت را ارزیابی میکنیم. ما روند افزایش ویژگیها را در هر تکرار تکرار میکنیم تا زمانی که هیچ بهبودی مشاهده نشود. در این مرحله، ما بهترین زیرمجموعه از همه ویژگیها را ایجاد میکنیم.
انتخاب به عقب[11] فقط معکوس انتخاب رو به جلو است. در انتخاب معکوس، ما با "همه ویژگیها" شروع میکنیم و عملکرد مدل را با حذف یک ویژگی در یک زمان ارزیابی میکنیم.
حذف ویژگی بازگشتی: در حذف ویژگی بازگشتی، از یک مدل برای ارزیابی اهمیت ویژگی استفاده میکنیم. دستهبند جنگل تصادفی یکی از انواع مدلهایی است که میتوانیم اهمیت ویژگی را ارزیابی کنیم. ابتدا تعداد ویژگیهای مورد نظر را انتخاب میکنیم و مدل را متناسب میکنیم. مدل ویژگیها را بر اساس اهمیت رتبهبندی میکند و سپس کماهمیتترین ویژگیها را کنار میگذاریم. تکرار میکنیم تا تعداد ویژگیهای مورد نظر باقی بماند. انتخاب ویژگی بازگشتی اغلب در بین همه بهترین عملکرد را دارد.
8. مراجع
Boxplots:
https://towardsdatascience.com/creating-boxplots-with-the-seaborn-python-library-f0c20f09bd57
https://datavizpyr.com/boxplots-with-points-using-seaborn-in-python/
You-Tube
https://www.youtube.com/watch?v=A3gClkblXK8&list=PLeo1K3hjS3ut5olrDIeVXk9N3Q7mKhDxO&index=5
به منظور پرداختن overfitting مدل یادگیری ماشین ، ممکن است به گزینههای زیر فکر کند:
الف) دریافت دادههای آموزشی بیشتر،
ب) کاهش تعداد ویژگیها،
ج) منظمسازی
کاهش تعداد ویژگیها در صورت عدم وجود دادههای آموزش کافی ممکن است گزینه خوبی باشد اما در عین حال منجر به از دست دادن اطلاعاتی خواهد شد که میتواند برای مدل مهم باشد. البته وسیلهای برای اندازهگیری اهمیت ویژگی وجود دارد که در یک وبلاگ در مورد آن بحث کردهام که هدف این پست نیست.
هنگامی که ما یک ویژگی را از بین میبریم[1]، از نظر عددی معادل آن است که پارامتر / وزن مربوطه برابر با "صفر" باشد. این میتواند خیلی سختگیرانه باشد زیرا ما فقط اطلاعات کمی را از این ویژگی دور میکنیم. اگر به جای حذف کامل یک ویژگی، ما به دنبال کاهش ارزش / پارامتر مربوط به وزن / پارامتر هستیم. این همان کاری است که منظمسازی انجام میدهد.
منظمسازی به شما امکان میدهد همه ویژگیها را حفظ کنید، اما مانع از تأثیرگذاری بیش از حد زیاد ویژگیها میشود که گاهی اوقات باعث بیش از حد برازش میشود.
بحث بالا در مورد معرفی یک "جریمه" روی پارامترها برای مسائل رگرسیون معتبر است. در رگرسیون کمند و رگرسیون ریج، ما با قرار دادن «محدودیتهایی» روی پارامترها با وارد کردن یک عامل جریمه در طول کمینهسازی تابع هزینه میانگین مربعات خطا، منظمسازی را انجام میدهیم. ناحیه محدودیت یک الماس در کمند و یک دایره در رگرسیون ریج است (تصویر زیر را ببینید)
موارد فوق برای مدلهای رگرسیونی است
در صورت تصمیم گیری، منظمسازی درختان از طریق هرس درختان (کاهش عمق درخت) است، زیرا عمق درختان بیشتر مستعد تر شدن مدل و یادگیری بیش از حد دادههای آموزشی و عملکرد ضعیف در دادههای نادیده میشود.
در مورد شبکههای عصبی، منظمسازی با استفاده از حذفهایی که نورونها را غیرفعال میکند، خوب است
2. منظمسازی: تابع هزینه برای مسسائل رگرسیون
اجازه دهید اکنون به جنبه تابع هزینه برویم و ببینیم که چگونه عبارت منظم سازی به تابع هزینه وارد می شود.
با در نظر گرفتن تابع هزینه میانگین مربعات خطا و یادآوری مجذوب بودن تابع هزینه بین مقدار واقعی و متغیر پیشبینی شده و سعی میکنیم این تفاوت را به حداقل برسانیم.
اکنون با فرض، ما عبارت منظمسازی را در اینجا اضافه میکنیم - به طور شهودی میتوانیم احساس کنیم که عبارت منظمسازی شامل وزن/پارامتر خواهد بود و میخواهیم مقدار وزن را پایین بیاوریم (به حداقل برسانیم) تا تأثیر بیشبرازش را کاهش دهیم. بنابراین، λ*w^2 را به عنوان دومین عبارت کمینهسازی معرفی می کنیم.
λ در اینجا یک فراپارامتر درست مانند نرخ یادگیری است که باید آن را انتخاب کنیم. این λ را می توان به عنوان یک جریمه برای وزنه هایی در نظر گرفت که سعی در کاهش اثر آنها برای کاهش واریانس دارند.
در مورد انتخاب λ در پست بعدی صحبت خواهم کرد. در این مرحله می توان تصور کرد که اگر λ 0 باشد، واضح است که هیچ نظمی وجود ندارد و از این رو ما بیش از حد برازش می کنیم. در حدی دیگر اگر λ بسیار بزرگ باشد مثلاً 10^7، پس از کمینهسازی، w ناچیز به دست میآوریم، بنابراین در نهایت فقط عبارت بایاس باقی مانده و بنابراین مدل بسیار کم تناسب خواهیم داشت.
بنابراین باید بین دو حد λ یک مبادله وجود داشته باشد. به طور خلاصه، 2 عبارت در مسئله کمینه سازی دخیل هستند:
الف) جمله اول که اختلاف مجذور بین متغیر واقعی و پیش بینی شده را به حداقل میرساند و بنابراین داده های آموزشی را یاد می گیرد.
ب) عبارت دوم که پارامترها (وزن ها) را کوچک می کند تا اثر آنها را به جای حذف کامل ویژگی کاهش دهد. این اصطلاح منظم سازی است
3. مقدار هایپرپارامتر λ برای منظم سازی
اولین چیزی که باید در مورد چیزی که به آن مسئله سوگیری بالا و واریانس بالا گفته میشود درک کرد و این را میتوان از آموزش و خطای اعتبار متقاطع توضیح داد.
در صورت عدم تناسب دادهها - مسئله بایاس بالا
J train >>0 and
J cross validation >>0
در صورت اضافه برازش داده ها - مسئله واریانس بالا
J train <<0 and
J cross validation >>0
در اینجا J train و J cross به ترتیب خطاهای آموزش و اعتبارسنجی متقاطع هستند
همانطور که در پست های بالا اشاره کردم، λ برای یک underfit بسیار بزرگ است و برای overfitting به 0 نزدیک می شود.
بنابراین ما به مقدار متوسط لامبدا نیاز داریم. روش انتخاب لامبدا شبیه ارزیابی (مثلاً) درجه چند جمله ای در حین تطبیق با مسئله رگرسیون است.
ما مقادیر مختلف λ را امتحان می کنیم.
لامبدا = 0،
لامبدا = 0.01،
لامبدا = 0.02،
لامبدا = 0.04 (دوبرابر کردن آن)
لامبدا = 0.08 (دوباره)
لامبدا = 0.16
لامبدا = 10
و هر بار تابع هزینه را به حداقل برسانید و w و b را بدست آورید و خطای اعتبارسنجی متقاطع را محاسبه کنید. و در نهایت از c مقادیر پارامترها با حداقل خطای اعتبار متقاطع استفاده می کنیم و عملکرد را با این پارامترها در مجموعه تست ارزیابی می کنیم.
نمودار بین λ و خطای آموزشی J قطار و خطای اعتبارسنجی متقاطع J cross باید تقریباً مانند شکل زیر باشد اگر کارها در جهت درست پیش میروند.
مقدار مناسب λ مقداری است که خطای اعتبارسنجی متقاطع برای آن حداقل است و این را می توان از شکل زیر مشاهده کرد:
4. منظم سازی با استفاده از ترک تحصیل و توقف زودهنگام
قطره ها:
در مورد شبکه های عصبی، منظم سازی معمولاً با استفاده از Dropouts انجام می شود. در Dropouts، در حین آموزش، اساساً به طور تصادفی تعدادی زیرمجموعه از نورونها را در شبکه عصبی انتخاب میکنیم و با احتمال کمی این نورونها را هرس میکنیم. ما به طور تصادفی این نورون ها را در تکرارهای مختلف در طول تمرین روشن و خاموش می کنیم.
این اساساً شبکه عصبی را مجبور میکند تا مجموعهای از مدلهای مختلف را بیاموزد. می توان آن را به این دلیل تفسیر کرد زیرا در هر تکرار شبکه در داخل در معرض مدل های متفاوتی نسبت به مدلی که در تکرارهای قبلی داشت قرار می گیرد زیرا مجموعه متفاوتی از نورون ها روشن و خاموش می شوند. این یک تکنیک بسیار قدرتمند است و به تعمیم بهتر کمک می کند.
شکل: هرس نورون ها در طول یک تکرار آموزش شبکه عصبی
توقف زودهنگام:
تکنیک منظم سازی بعدی اغلب برای شبکه های عصبی در "توقف زودهنگام" انجام می شود. در اینجا دانشمند داده معمولاً عملکرد شبکه را روی داده های آموزشی و آزمایشی ترسیم می کند. همانطور که شبکه آموزش داده می شود، فرد متوجه کاهش تلفات آموزش و مجموعه تست می شود، اما به مرحله ای می رسد که خطای آموزش همچنان کاهش می یابد اما خطای مجموعه تست شروع به افزایش می کند. اساساً در این نقطه است که مدل شروع به بیش از حد مناسب شدن می کند. و در این نقطه است که میخواهید فرآیند آموزش را متوقف کنید، زیرا در غیر این صورت مدل دادههای آموزشی را بسیار دقیق یاد میگیرد اما روی دادههای دیده نشده به خوبی عمل نمیکند (بیش از حد برازش).
شکل: توقف زودهنگام آموزش شبکه عصبی