در وبلاگ خود با عنوان "قدرت یادگیری ضعیف"، من در مورد الگوریتمهای مختلف یادگیری ماشین بر اساس مفهوم "تقویت[1]" یعنی ترکیب چندین "یادگیر ضعیف[2]" برای تشکیل یک الگوریتم یادگیری قوی صحبت کردهام.
https://concepts-define.blogsky.com/1403/08/27/post-38/قدرت-یادگیری-ضعیف
برخی از این الگوریتمهایی که من در مورد جزئیات کاملاً مورد بحث قرار گرفتم عبارتند از:
· الگوریتم جنگلی تصادفی که به طور تصادفی از مجموعه دادهها نمونه میگیرد و از هر یک از نمونهها (هر نمونه به طور معمول از اندازه یک اندازه N) برای آموزش هر درخت تصمیم استفاده میکند. علاوه بر این ، جنگلهای تصادفی، ما به طور تصادفی ویژگیهای هر درخت را انتخاب و نمونه میکنیم.
· در تقویت تطبیقی[3]، تقسیم مدل کلی به درختان تصمیم N (دقیقاً مدلهای ضعیف - اجازه دهید در نظر بگیریم که یادگیر ضعیف یک درخت تصمیم است) - هر درخت تصمیمگیری یک تصمیمگیری است (شکل زیر را ببینید) با یک تقسیم واحد – N به تعداد ویژگیها در اینجا اشاره دارد. بنابراین ، ما یک تصمیم تصمیمگیری برای هر ویژگی ایجاد میکنیم و اولین تصمیمگیری با کمترین معیار تصادفی (شاخص آنتروپی/ جینی[4]) خواهد بود.
· تقویت گرادیان[5] و XGBoost - که در آن ، در تقویت گرادیان مدل، وزن را از طریق گرادیان میآموزد. از گرادیان برای به حداقل رساندن عملکرد از دست دادن استفاده میشود و وزنها را "یادمیگیرد" - در اینجا مدل میآموزد که وزنهای بالاتری را به نمونههای دستهبندی شده اختصاص دهد. در حالی که،XGBOOST ، هدف این است که فرآیند را از طریق محاسبات توزیع شده کارآمد کنیم.
از آنجا که همه رویکردها از درختان تصمیمگیری استفاده میکنند، من احساس کردم که در مورد مفاهیم مربوط به آنتروپی و افزایش اطلاعات مربوط به درختان تصمیمگیری بحث کنم. اینها در بخشهای بعدی مورد بحث قرار گرفته است.
۲. ساختن یک مدل درخت تصمیمگیری: بینشی از آنتروپی و افزایش اطلاعات
معیار ناخالصی در یک مدل درخت تصمیمگیری:
در حالی که با درختان تصمیمگیری برخورد میکنیم ، باید به روشی برای معیار خلوص همه نمونهها نگاه کنیم. به عنوان مثال ، اگر با یک مسئله دستهبندی در دستهبندی مجموعهای از تصاویر نمونه به صورت Crack یا Uncrack (یا، همه آنها Uncrack) دستهبندی میکنیم، بسیار خالص است اما اگر 50 ٪ نمونهها را دستهبندی کنیم به عنوان Crack و 50 ٪ باقی مانده به عنوان Uncrack، خالص نیست. چگونه میتوانیم اندازهگیری خلوص را در اینجا تعیین کنیم؟
آنتروپی
ما قصد داریم "ناخالصی[6]" را با تابعی به نام "آنتروپی" معیار کنیم. بگذارید "P1" کسری از Crack به نمونههای Uncrack را نشان دهد. سپس، اگر P1 = 3/6 آنگاه، آنتروپی - که معیار "ناخالصی" تعریف شده، 1 است. یعنی معکوس، معیار خلوص 0 است. این به این دلیل است که هنگام استفاده از آن ویژگی، تصادفی زیادی به عنوان تقسیم وجود دارد.
از طرف دیگر، اگر تمام نمونهها به عنوان معیار Crack (یا ، Uncrack) دستهبندی شوند، 0 و اندازهگیری خلوص 1 خواهد بود.
باید توجه کرد که وقتی P1= 0.5 و در 0 در زمان P1 قرار دارد، منحنی آنتروپی بالاترین است. این عملکرد آنتروپی مطابق شکل زیر تعریف میشود.
چرا بحث فوق مهم است: انتخاب تقسیم؟
بحث فوق مهم است زیرا، هنگام ساختن یک درخت تصمیم، از این طریق تصمیم خواهیم گرفت که چه ویژگیای را در یک گره تقسیم کنیم. ما باید یک ویژگی را انتخاب کنیم که منجر به حداقل آنتروپی یا در غیر این صورت حداکثر افزایش اطلاعات شود.
بنابراین، با فرض در نظر گرفتن مسئله دستهبندی فوق در دستهبندی نمونه به عنوان Crack یا بUncrack، ما یک ویژگی را انتخاب میکنیم که شعاع ریشه را کمتر از x mm یا بیشتر از x mm میگویند. و P1 را برای هر یک از این شاخهها به ترتیب P1 = 4/5 و P1 = 1/5 محاسبه کند و در نتیجه آنتروپی: H (4/5) = 0.72 و H (1/5) = 0.72
ما ابتدا میانگین وزنی هر یک از زیر شاخهها، میانگین وزنی تعداد نمونههای کل نمونههای موجود در هر یک از زیر شاخهها را محاسبه میکنیم.
اکنون، ما از آنتروپی مستقیماً برای انتخاب تقسیم استفاده نمیکنیم. ما کاهش آنتروپی را انتخاب میکنیم که H (0.5) منهای میانگین وزنی در بالا است. این به عنوان "افزایش اطلاعات[7]" خوانده میشود که در واقع کاهش آنتروپی را معیار میکند.
و یکی از دلایل گرفتن افزایش اطلاعات (کاهش آنتروپی) برای انتخاب بهترین تقسیم این است که میتوان اطمینان حاصل کرد که اندازه درخت را به طور غیر ضروری افزایش نمیدهد، بنابراین در صورت عدم کاهش آنتروپی، خطر Overfitting را داریم.
3. مراحل ساخت مدل درخت تصمیمگیری
با بحث در مورد موارد فوق، اجازه دهید اکنون فرایند گام به گام در ساخت مدل درخت تصمیم را ذکر کنیم. این مراحل هنگام ساختن یک مدل درخت تصمیم از ابتدا باید انجام شود:
۱) با تمام نمونههای گره ریشه شروع کنید
۲) افزایش اطلاعات را برای همه ویژگیها محاسبه کنید و ویژگیای را انتخاب کنید که حداکثر افزایش اطلاعات را به شما میدهد
۳) مجموعه دادهها را به شاخههای چپ و راست تقسیم کنید.
۴) روند کار را از طریق تمام ویژگیها ادامه دهید تا یکی از معیارها برسد:
الف) شما تمام نمونههای یک کلاس را پس از تقسیم دریافت میکنید
ب) شما به حداکثر عمق درخت رسیدهاید
ج) با رشد بیشتر درخت، اطلاعات بیشتری کسب نمیکنید
د) عدد در صورت باقیمانده نمونههای زیر تقسیم یک آستانه خاص است
نکات زیر را باید ذکر کرد:
o رشد یک درخت به عمق بالاتر مشابه برازش با چند جملهای با درجه بالاتر است که منجر به یادگیری دادههای آموزش به خوبی میشود اما عملکرد خوبی را بر روی دادههای غایب، یعنی Overfitting انجام نمیدهد
o حداکثر عمق درخت به طور معمول به عنوان مقدار پیش فرض از هر کتابخانهای که استفاده میکنید گرفته میشود
o هنگامی که یک درخت تصمیم از ابتدا ایجاد میشود، معمولاً از یک الگوریتم بازگشتی استفاده میکند