40 گام به سوی آینده‌ای هوشمند - مجموعه وبینارهای رایگان در حوزه هوش مصنوعی
Filter by دسته‌ها
chatGTP
آموزش هوش مصنوعی و انواع آن
آموزش‌های پایه‌ای هوش مصنوعی
اصول هوش مصنوعی
پایتون و ابزارهای یادگیری عمیق
کتابخانه‌ های یادگیری عمیق
یادگیری با نظارت
یادگیری بدون نظارت
یادگیری تقویتی
یادگیری عمیق
یادگیری نیمه نظارتی
آموزش‌های پیشرفته هوش مصنوعی
بینایی ماشین
پردازش زبان طبیعی
پردازش گفتار
چالش‌های عملیاتی
داده کاوی و بیگ دیتا
رایانش ابری و HPC
سیستم‌‌های امبدد
علوم شناختی
دیتاست
اخبار
تیتر یک
رسانه‌ها
آموزش پردازش زبان طبیعی
آموزش علوم داده
اینفوگرافیک
پادکست
ویدیو
رویدادها
کاربردهای هوش مصنوعی
کسب‌و‌کار
تحلیل بازارهای هوش مصنوعی
کارآفرینی
هوش مصنوعی در ایران
هوش مصنوعی در جهان
 آشنایی با روش تقطیر دانش جهت بهبود عملکرد مدل‌های یادگیری عمیق

آشنایی با روش تقطیر دانش جهت بهبود عملکرد مدل‌های یادگیری عمیق

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

تقطیر دانش

مشکل کجاست؟ آیا می­توانیم شبکه‌­ی کوچکی آموزش دهیم که روی توان محاسباتی محدود گوشی همراه قابل اجرا باشد؟ این روش یک مشکل دارد: مدل­های کوچک قادر نیستند ویژگی­های خیلی پیچیده­­ای را استخراج کنند که برای برخی پیش­‌بینی­ها لازم هستند؛ مگر این­که یک الگوریتم فوق‌­العاده کارآ بسازید که به حافظه‌ی خیلی کمی نیاز دارد. مجموعه­ای از مدل­های کوچک هم می­توانند نتایج قابل قبولی ارائه دهند؛ اما انجام پیش­بینی با استفاده از چندین مدل کار سنگینی بوده و از نظر محاسباتی آنقدر پرهزینه است که بسیاری از کاربران توان استفاده از آن را نخواهند داشت. به همین دلیل در این نوشتار به دو تکنیک دیگر خواهیم پرداخت:

  • تقطیر دانش
  • متراکم­‌سازی مدل Model compression

(در این نوشتار به تقطیر دانش می‌پردازیم و بحث متراکم‌سازی مدل را به وقت و مطلب دیگری موکول خواهیم کرد.)

تقطیر دانش

تقطیر دانش روشی ساده برای بهبود عملکرد مدل­‌های یادگیری عمیق روی دستگاه‌­های موبایل است. در این فرآیند یک شبکه­‌ی بزرگ و پیچیده یا یک مدل گروهی آموزش می‌­دهیم که می­تواند ویژگی­‌های مهم داده­‌ها را استخراج کرده و پیش‌­بینی­‌های خوبی انجام دهد. سپس به کمک این مدل سنگین Cumbersome model، شبکه­‌ای کوچک را آموزش می­‌دهیم. این شبکه­‌ی کوچک قادر خواهد بود نتایجی در حد قابل مقایسه (با مدل سنگین) ارائه دهد و در برخی موارد هم می­‌تواند همان نتایج شبکه­‌ی سنگین را تولید کند.

GoogLeNet

برای مثال GoogLeNet شبکه­‌ای بسیار سنگین، یعنی عمیق و پیچیده است. عمقش به آن توان استخراج ویژگی­‌های پیچیده را می­‌دهد و پیچیدگیش به حفظ دقت کمک می­کند. این مدل آنقدر سنگین است که برای پیاده‌­سازی به حجم زیادی حافظه، یک GPU قدرتمند و محاسبات پیچیده نیاز خواهد داشت. به همین دلیل باید بتوانیم دانش این مدل را به یک مدل بسیار کوچک­تر منتقل کنیم که قابلیت استفاده در یک دستگاه موبایل را دارد.

[irp posts=”۱۸۸۳۱″]

نکاتی در مورد مدل­های سنگین

مدل­‌های سنگین یاد می‌گیرند تا بین تعداد زیادی از دسته ها  تمایز قائل شوند. هدف اصلی در آموزش , به حداکثر رساندن متوسط احتمال لگاریتمی Average log probability پاسخ درست است و بدین منظور, مدل به هر دسته یک احتمال اختصاص می‌دهد (احتمال برخی طبقات از بعضی دیگر کوچک­تر است). مقادیر نسبی احتمالات مربوط به پاسخ‌­های اشتباه اطلاعات زیادی در مورد نحوه‌­ی تعمیم­پذیری این مدل پیچیده در اختیار ما می­گذارند. مثلاً تصویر یک ماشین به احتمال کمی به عنوان کامیون شناخته خواهد شد، اما احتمال وقوع همین اشتباه از احتمال تشخیص یک گربه (به جای ماشین) خیلی بیشتر است.

توجه داشته باشید که انتخاب تابع هدف Objective function باید به نحوی باشد که به خوبی به داده‌­های جدید تعمیم داده شود. پس زمان انتخاب تابع هدف مناسب باید به خاطر داشته باشیم قرار نیست این تابع روی داده­‌های آموزشی عملکردی بهینه داشته باشد.

از آن­جایی که این عملیات برای دستگا‌‌ه‌­های موبایل بسیار سنگین است، باید دانش این مدل­های سنگین را به یک مدل کوچک­تر انتقال دهیم که به آسانی روی دستگاه­های موبایل به کار برده شود. بدین منظور می­توانیم مدل سنگین را شبکه‌ی معلم Teacher network و مدل کوچک را شبکه‌ی دانش در نظر بگیریم.

معلم و دانش‌­آموز

می‌­توانید شبکه­‌ی بزرگ و پیچیده را به شبکه­‌ای بسیار کوچک‌­تر تقطیر کنید؛ این شبکه­‌ی کوچک‌­تر تابع اصلی را که توسط شبکه­‌ی عمیق آموخته شده، به خوبی برآورد می‌­کند.

مدل تقطیرشده (دانش‌آموز)

یک نکته این‌جا وجود دارد و آن این است که مدل تقطیرشده (دانش‌آموز) به نحوی آموزش دیده که به جای آموزش مستقیم روی داده‌های خام، خروجی شبکه‌ی بزرگ‌تر (معلم) را تقلید کند؛ شاید به این خاطر که شبکه‌ی عمیق‌تر انتزاعات سلسله مراتبی ویژگی‌ها را می‌آموزد.

این انتقال دانش چطور انجام می‌شود؟

انتقال دانش

با استفاده از احتمالات تولید شده برای هر کلاس که با عنوان “اهداف نرم” توسط مدل سنگین و به منظور آموزش مدل کوچک تولید می‌شوند می‌توان توانایی تعمیم­پذیری مدل سنگین را به یک مدل کوچک‌تر انتقال داد. در مرحله‌ی انتقال می‌توانیم همان مجموعه‌ی آموزشی یا یک “مجموعه‌ انتقال Transfer set” را برای آموزش مدل سنگین به کار ببریم. وقتی مدل سنگین مجموعه‌ای از مدل‌های ساده‌تر باشد می‌توانیم از میانگین حسابی Arithmetic mean یا هندسی توزیع‌های پیش‌بین هر یک از آن مدل‌ها به عنوان اهداف نرم استفاده کنیم. زمانی که آنتروپی اهداف نرم بالا باشد، برای آموزش هر مورد اطلاعات بسیار بیشتر و واریانس خیلی کمتری بین آن­ها ارائه می‌دهند (در مقایسه با اهداف سخت). بنابراین مدل کوچک می‌تواند روی داده‌های بسیار کمتری از آنچه مدل سنگین نیاز دارد، آموزش ببیند و در عین حال به نرخ یادگیری Learning rate بالاتری دست یابد.

تقطیر دانش1

بیشتر اطلاعاتی که در مورد تابع آموخته شده وجود دارد در نسبت‌هایی از احتمالات بسیار کوچک در اهداف نرم باقی می‌ماند. این اطلاعات ارزشمند هستند و ساختار شباهت Similarity structure موجود در داده‌ها را نشان می‌دهند (که برای مثال می‌گوید کدام ۲ شبیه ۳ و کدام شبیه ۷ به نظر می‌رسد یا کدام نژادهای سگ به هم شباهت دارند)، اما تأثیر بسیار کمرنگی روی تابع هزینه‌ی  آنتروپی متقاطع Cross-entropy cost function طی مرحله‌ی انتقال دارند، زیرا مقادیر احتمالات به صفر خیلی نزدیک هستند.

[irp posts=”۲۲۹۴۱″]

تقطیر

به منظور تقطیر دانش آموخته شده، از تابع logit (ورودی‌های لایه‌ی نهایی بیشینه‌هموار) استفاده می‌کنیم. با به حداقل رساندن مجذور تفاوت‌ها بین logit-هایی که مدل سنگین و logit-هایی که مدل کوچک تولید کرده‌اند، می‌توانیم از logit-ها برای یادگیری مدل کوچک استفاده کنیم.

تقطیر
بیشینه‌هموار با پارامتر دما

برای دماهای بالا (T -> inf) همه‌ی اقدامات, احتمال تقریبا‍ً یکسانی دارند و در دماهای پایین‌تر (T -> 0)، پاداش‌هایی که بیشتر موردانتظار هستند بر احتمال تأثیر می‌گذارند. در مقادیر پایینِ پارامتر دما، احتمال اقدام با بالاترین پاداش موردانتظار نزدیک ۱ است.

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

تابع هدف

اولین تابع هدف، آنتروپی متقاطع با اهداف نرم است. این آنتروپی متقاطع با استفاده از دمای بالای لایه‌ی بیشینه‌هموارِ مدل تقطیرشده یا دانش‌آموز (همانطور که برای تولید اهداف نرم در مدل سنگین نیز مورد استفاده قرار گرفت) محاسبه می‌شود.

دومین تابع هدف از آنتروپی متقاطع با برچسب‌های صحیح به وجود می‌آید و با استفاده از دقیقاً همان توابع logit در لایه‌ی بیشینه‌هموار مدل تقطیرشده (اما در دمای ۱) محاسبه می‌گردد.

تابع هدف

مجموعه‌های آموزشی متخصص‌ها

آموزش گروهی مدل‌ها راه بسیار آسانی برای بهره‌گیری از محاسبات موازی Parallel computation است. اما به محاسبات بیش‌از حد این گروه (مدل‌ها) در زمان آزمایش انتقاداتی وارد می‌کنند. با تکنیک تقطیر می‌توان به سادگی این مشکل را نیز حل کرد.

تکنیک تقطیر

مدل‌های متخصص

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

کاهش بیش‌برازش در مدل‌های متخصص

به منظور کاهش بیش‌برازش و همچنین به اشتراک‌گذاری روند یادگیری تشخیص‌گرهای ویژگی‌های سطح‌ پایین‌تر، برای هر مدل متخصص وزن‌های مدل عمومی تعریف می‌شود. سپس با آموزش مدل متخصص، این وزن‌ها تا حدی اصلاح می‌شوند. در آموزش مدل متخصص نیمی از نمونه‌ها از زیرمجموعه‌ی خاص خودش گرفته شده و نیم دیگر به صورت تصادفی از بقیه‌ی مجموعه‌ی آموزشی نمونه‌گیری می‌شوند. بعد از آموزش می‌توانیم آموزش سوگیرانه Biased training را با افزایش تابع logit رده‌ی dustbin (به وسیله‌ی لگاریتم سهمی که رده‌ی متخصص با آن بیش‌نمونه‌گیری می‌شود) اصلاح کنیم.

کاهش بیش‌برازش در مدل‌های متخصص

تخصیص رده به مدل‌های متخصص

یک الگوریتم خوشه‌بندی روی ماتریکس همبستگی Covariance matrix پیش‌بینی‌های مدل عمومی اجرا می‌کنیم تا مجموعه‌ای از رده‌ها یا Sm (که اغلب با هم پیش‌بینی می‌گردند) به عنوان اهداف یکی از مدل‌های متخصص استفاده شوند. بدین ترتیب روش خوشه‌بندی K-means را روی ستون‌های ماتریکس کوواریانس اجرا می‌کنیم تا خوشه‌ها یا رده‌های موردنیاز را به دست بیاوریم.

تخصیص رده
یک مقدار را به ماتریکس کوواریانس سفارش داده شده اختصاص دهید. ضرایب همبستگی بالا در یک خوشه این مقدار را بهبود می‌بخشند. ضرایب همبستگی بالا بین خوشه‌ها این مقدار را کاهش می‌دهند.

خوشه‌بندی کوواریانس/همبستگی روشی برای خوشه‌بندی مجموعه‌ای از اشیاء در تعداد بهینه‌ای از خوشه‌ها (بدون از پیش تعیین کردن تعداد دقیق آن‌ها) ارائه می‌دهد.

[irp posts=”۷۵۵۲″]

اجرای استنتاج

  • برای هر مورد آزمایشی، n رده­ که (براساس مدل عمومی) بیشترین احتمال را دارند، پیدا می­کنیم. این مجموعه از رده­ها را k می­نامیم.
  • سپس همه­‌ی مدل‌های متخصصی (m) را که زیرمجموعه‌یشان از رده‌های درهم‌ریخته (Sm) با k، تعاملی غیرتهی دارد مشخص کرده و آن را Ak می‌نامیم (توجه داشته باشید که این مجموعه می‌تواند تهی باشد). سپس توزیع کامل احتمال q را برای همه­‌ی این رده‌ها پیدا می‌کنیم. بدین ترتیب فرمول پایین به حداقل می‌رسد:

فرمول‌

فرمول‌2

در این فرمول‌ها، KL واگرایی KL،  و  توزیع احتمال یک مدل متخصص (m) یا عمومی (g) را نشان می­‌دهد. توزیع  مربوط به همه‌ی رده‌های متخصص m به اضافه‌ی یک رده‌ی dustbin است. بنابراین زمانی که واگرایی KL از توزیع کامل q را محاسبه می‌کنیم، همه‌ی احتمالاتی که توزیع کامل q به همه‌ رده‌های dustbin m اختصاص داده را با هم جمع می‌کنیم.

اهداف نرم در نقش تنظیم‌کننده regularizers

اهداف یا برچسب‌های نرم که از یک مدل پیش‌بینی می‌شوند در مقایسه با برچسب‌های سخت دوقسمتی اطلاعات بیشتری در برمی‌گیرند؛ زیرا معیارهای شباهت بین رده‌ها را رمزگذاری می‌کنند.

برچسب‌های اشتباهی که توسط مدل ارائه شده‌اند شباهت‌های برچسب‌های مشترک را توصیف می‌کنند؛ این شباهت‌ها باید در مراحل بعدی یادگیری آشکار باشند، حتی اگر اثر آنها حذف شده باشد. برای مثال تصور کنید یک شبکه‌ی عصبی عمیق را روی دیتاستی از انواع نژادهای سگ آموزش می‌دهید؛ در چند مرحله‌ی ابتدایی یادگیری، مدل قادر به تشخیص و تمیز صحیح بین نژادهای مختلف نیست. همین تأثیر (شاید نه در این مقیاس) در مراحل بعدی آموزش هم می‌تواند اتفاق بیفتد. مشکل بیش برازش زمانی رخ می‌دهد که بیشتر تأثیرات این برچسب‌های مشترک شروع به ناپدید شدن می‌کنند. با وادار کردن مدل به نگه داشتن این تأثیرات تا مراحل بعدی آموزش، میزان بیش‌تطبیقی را کاهش می‌دهیم.

میانگین امتیاز / ۵. تعداد ارا :

مطالب پیشنهادی مرتبط

اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
[wpforms id="48325"]