overfitting و underfitting از بزرگترین مشکلاتی است که در آموزش مدل وجود دارد. در این پست به بررسی overfitting و underfitting پرداخته و راه حلی که برای این دو مشکل وجود دارد را مطرح می‌کنیم. با کمپنا همراه باشید.

فرض کنیم که فردی که انگلیسی زبان نیست بخواهد زبان انگلیسی را یاد بگیرد. او هیچ دانش قبلی در مورد انگلیسی ندارد اما فقط می‌داند که ویلیام شکسپیر بزرگ‌ترین نویسنده انگلیسی زبان است. یک راه این است که او خود را در یک کتابخانه حبس کند و تمامی آثار شکسپیر را مطالعه کند. بعد از یک سال مطالعه، فرد به نیویورک می‌رود و با اولین نفری که میبیند، سلام و احوالپرسی می‌کند. اولین جمله‌ای که می‌گوید اینگونه است: «!Good dawning to thee, friend». فرد مقابل، با نگاهی تحقیر آمیز، زیرلب خواهد گفت که این مرد دیوانه است.  در این حالت این فرد، یکی از بزرگ‌ترین خطاهای پایه‌ای در آموزش مدل را مرتکب شده‌ایم، overfitting در داده‌های آموزش.

در آموزش‌های data science، یک مدل overfit، مدلی تعریف می‌شود که واریانس زیاد و بایاس کمی روی داده‌های آموزش دارد، که منجر به تعمیم‌پذیری پایینِ مدل به داده‌های جدید می‌شود. بیایید این تعریف را روی مثالی که در ابتدا مطرح کردیم، بررسی کنیم. مدلی که می‌خواهیم بسازیم، برقراری ارتباط از طریق زبان انگلیسی است. داده‌های آموزشی، تمامی آثار شکسپیر هستند و داده تست، نیویورک است. اگر معیار ارزیابی، پذیرش عموم مردم باشد، در این صورت مدل ما در تعمیم به داده‌های تست، با شکست مواجه می‌شود. تا اینجا همه چیز واضح است، اما واریانس یا بایاس چه هستند؟

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

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

مشاهده شد که مدلی که overfit می‌شود، واریانس زیاد و بایاس کمی دارد. اما اگر واریانس کم و بایاس زیاد باشد چه؟ در این حالت گفته می‌شود که مدل، underfit است. underfitt یعنی اینکه مدل به جای اینکه داده‌ها را از نزدیک دنبال کند، از یادگیری آموزه‌هایی که در داده‌های آموزشی وجود دارد، چشم‌پوشی کرده و نمی‌تواند روابط موجود میان داده‌ها را کشف کند.

حال می‌خواهیم چنین مدلی را با کمک مثال قبل، توصیف کنیم. این‌بار فرد مورد نظر، داده‌های آموزشی را به یک سریال تغییر می‌دهد و به عنوان فرض اولیه، تنها جملاتی که با کلمات رایج the، be، to، of و a شروع می‌شوند، مهم قلمداد شده و از بقیه جملات چشم‌پوشی می‌شود. بعد از یک پروسه طولانیِ آموزش، فرد دوباره به نیویورک سفر می‌کند. اما این بار هم شکست می‌خورد. زیرا در این حالت، فرد  تعداد کمی از جملات را می‌تواند درک کند و به خاطر بایاس، در درک ساختار زبان ناتوان است. در فرض اولیه که برای داده‌ها در نظر گرفته شد، زیاده روی شده و مدل underfit شد.

حال چه باید کرد؟ وقتی داده‌ها به دقت دنبال می‌شوند، مدل overfit می‌شود و هنگامی که به داده‌ها  کمتر توجه می‌شود، مدل underfit می‌شود. باید راهی برای پیدا کردن بالانس وجود داشته باشد. خوشبختانه یک راه‌حل مناسب برای حل این مشکل وجود دارد و آن validation است. در مثالی که مطرح شد، فقط دو مجموعه داده وجود دارد، تست و آموزش. در این حالت، قبل از انجام تست، نمی‌توان دریافت که مدل، کمپنا آموزش دیده و کارایی آن کمپنا است. اما اگر یک pre-test وجود داشته باشد، می‌توان مدل را ارزیابی کرده و قبل از تست واقعی آن را اصلاح کرد. به این pre-test فاز validation گفته می‌شود و یک بخش مهم در توسعه مدل است.

overfitting و underfitting

لطفا به این پست رای دهید…

۱
برچسب

deep learning, deep learning tensorflow, machine learning, model training, neural network, overfitting, underfitting, validation, یادگیری عمیق, یادگیری ماشین,