تقطیر دانش کیست؟ توضیح بده.
تقطیر دانش یکی از روش‌های مرسوم برای انتقال اطلاعات بین مدل‌ها است که در چند سال گذشته بسیار مورد بررسی قرار گرفته‌است. در دنیای یادگیری ماشین، به فرایند انتقال دانش از یک مدل نسبتاً بزرگ به یک مدل کوچک تقطیر دانش گفته می‌شود. مدل‌های بزرگ مثل شبکه‌های عصبی ژرف یا مدل‌های یادگیری ماشین جمعی ظرفیت دانش و یادگیری بیشتری در مقایسه با مدل‌های کوچک‌تر دارند اما از لحاظ محاسباتی بسیار سنگین‌تر هستند. تقطیر دانش، این دانش را از مدل‌های پیچیده به مدل‌های ساده‌تر و کوچک‌تر منتفل می‌کند و تلاش می‌کند که این کار را با کمترین میزان هدررفت دانش انجام دهد.ایدهٔ تقطیر دانش.در واقع نیاز به آن، زمانی حس شد که مدل‌های پیچیده‌ای داریم که توانایی حل مسائل سخت را دارند و می‌خواهیم آن‌ها را در دستگاه‌های تلفن همراه یا جاهای دیگر که کمبود منابع داریم، به کار بگیریم. به‌طور معمول در دنیای یادگیری ماشین، ما از مدل‌های مشابه برای آموزش و استنتاج استفاده می‌کنیم اما نکتهٔ قابل توجه این است که نیازمندی‌های این دو قسمت با هم متفاوت است. در یادگیری معمولاً ما دنبال این هستیم که پارامترهای یادگیری را بدست آوریم. برای این کار می‌توان زمان بسیار زیادی را صرف کرد و مسیرهای مختلف زیادی را امتحان کرد. همچنین می‌توان از تکنیک‌های مختلفی استفاده کرد؛ مثلاً عمق شبکه را بیشتر کنیم یا از داده‌های بیشتری کمک بگیریم یا برای تنظیم مدل از حذف تصادفی استفاده کنیم. اما در استنتاج بسیار واضح است که به این کارها و امتحان کردن‌ها نیاز نداریم. در مرحله استنتاج مهم‌ترین نیازها دقت بالای مدل و زمان مصرفی برای پیش‌بینی کردن است. اگر مدل شما بسیار کند باشد یا منابع محاسباتی زیادی نیاز داشته باشد، دیگر دقت بالای آن اهمیت چندانی پیدا نمی‌کند. در این‌جا است که ایدهٔ اساسی تقطیر دانش شکل می‌گیرد.این روش، فرایندی برای آموزش یک مدل ساده است، به طوری که دانش مدل پیچیده را تا حد امکان به آن انتقال دهیم. معمولاً مدل پیچیده را معلم و مدل ساده را دانش‌آموز می‌نامیم. مدل معلم به‌طور معمول مدلی است که پارامترهای بسیار زیادی دارد یا یک مجموعه از چندین مدل است و نمی‌توان از آن‌ها به راحتی در جاهای مختلف که توانایی محاسباتی بسیار زیادی نداریم، استفاده کرد. مدل دانش‌آموز نیز معمولاً مدلی ساده و بسیار سریع است.نگاهی دقیق‌تر به تقطیر دانش.یک راه برای انتقال دادن تعمیم‌سازی از مدل معلم به مدل دانش‌آموز این است که از توزیع احتمال خروجی مدل معلم که آن را اهداف نرم می‌نامیم، برای آموزش مدل دانش‌آموز استفاده کنیم. در طرف دیگر هم تعدادی داده همراه با برچسب داریم که آن‌ها را اهداف سخت می‌نامیم. از هر دوی آن‌ها در این فرایند تقطیر استفاده می‌شود. اگر مدل معلم مجموعه‌ای از مدل‌های ساده باشد آن‌گاه می‌توان از میانگین حسابی یا هندسی توزیع‌های خروجی به عنوان اهداف نرم استفاده کرد. در واقع در این‌جا به جای آموزش مستقیم مدل دانش آموز روی داده‌های خام، مدل سعی می‌کند تا خروجی شبکهٔ معلم را تقلید کند. اگر آنتروپی اهداف نرم زیاد باشد، اطلاعات بسیار زیادی را با واریانس کمتر در مقایسه با اهداف سخت متناظر، در دل خود دارند. از روی همین می‌توان فهمید که مدل دانش‌آموز در مقایسه با مدلی که به صورت عادی بخواهد آموزش ببیند، می‌تواند با حجم دادهٔ بسیار کمتر آموزش ببیند و حتی دچار مشکل بیش‌برازش نشود. در مواردی حتی دیده شده‌است که دقت مدل دانش‌آموز از معلم به دلیل این که تعمیم‌سازی بهتری و بیش‌برازش کمتری دارد، بیشتر است.در شکل بالا مراحل مختلف مدل‌های مبتنی بر تقطیر دانش را می‌بینید. در قسمت اول جمع‌آوری داده، مورد نیاز است. در بسیاری از کاربردها، شبکه‌های معلم و دانش‌آموز به‌طور مستقیم بر روی دادهٔ خام نمی‌توانند آموزش ببینند؛ بنابراین یک سری تبدیلات بر روی داده‌ها ممکن است نیاز شود. در مرحله بعدی که طراحی مدل معلم است، ساختار مدل بر اساس اهداف و مسئله تعیین می‌گردد. همچنین تعداد معلم‌ها (اگر قرار است چند شبکه معلم داشته باشیم که هر یک روی بخشی از داده کار کنند) و نحوهٔ ارتباط آن‌ها با همدیگر تعیین می‌گردد.مرحلهٔ بعدی تقطیر دانش است که هستهٔ کلی کار است. در این مرحله معلوم می‌شود که تقطیر به چه شکل صورت بگیرد. تعیین می‌کنید که روش انتقال به چه شکل باشد. این که از اهداف سخت یا اهداف نرم یا هر دو استفاده کنیم و تقطیر تنها از انتهای مدل معلم یا لایه‌های میانی صورت گیرد نیز در این قسمت معلوم می‌شوند. در نهایت در مرحلهٔ طراحی مدل دانش‌آموز، ساختار این شبکه و این که چطور اطلاعات را از معلم دریافت کند، مورد بررسی قرار می‌گیرد. نکتهٔ قابل توجه این است که این بخش به صورت مستقیم به داده و هدف متصل است، زیرا مدل دانش‌آموز بر اساس نوع مسئله و داده‌های مورد بررسی طراحی می‌شود.پیاده‌سازی تقطیر دانش.شبکه‌های عصبی معمولاً توزیع احتمال دسته‌ها در لایه آخر را به کمک تابع پیشینه هموار محاسبه می‌کنند. اگر formula_1 ورودی formula_2ام لایه آخر (ورودی پیشینه هموار) باشند، احتمال formula_3 را با مقایسه formula_1 با دیگر ورودی‌های این لایه، حساب می‌کند.formula_5دقت کنید که formula_6 در رابطه بالا دما است که معمولاً برابر ۱ قرار داده می‌شود. بدیهی است که formula_6 این‌جا یک فراپارامتر است. هر چه‌قدر formula_6 بیشتر باشد، توزیع ما هموارتر می‌شود و هرچه قدر کمتر باشد اهمیت formula_1ها بیشتر می‌شود و توزیع ناهموارتر می‌شود. به تعبیر دیگر هر چه قدر که formula_6 بیشتر می‌شود، احتمال دستهٔ محتمل‌تر به سمت یک میل می‌کند ولی هر چه قدر که formula_6 کمتر می‌شود، احتمال رده‌ها به سمت یکنواخت شدن حرکت می‌کنند.در حالت ساده و ابتدایی، تابع هدف را می‌توان آنتروپی متقاطع با اهداف نرم در نظر گرفت. در واقع پس از آموزش دادن مدل معلم در دمای بالا، اهداف نرم به‌دست می‌آیند و مدل دانش‌آموز به کمک آن‌ها در همان دمای بالا آموزش می‌بیند. البته بعد از تمام شدن آموزش، مدل دانش‌آموز از دمای ۱ استفاده می‌کند.اگر برچسب‌های درست برای تمام یا بعضی از داده‌ها در مجموعه انتقال (مجموعه داده‌ای که از آن برای آموزش مدل دانش‌آموز استفاده می‌کنیم) موجود باشد، می‌توان روش را بسیار بهبود بخشید. یک روش این است که از این برچسب‌های درست استفاده کرد تا در اهداف نرم اصلاحاتی اعمال کنیم اما روش کارآمدتر این است که تابع هدف را میانگین وزن‌دار آنتروپی متقاطع با اهداف نرم و آنتروپی متقاطع با اهداف سخت در نظر بگیریم. دقت شود که در آنتروپی متقاطع با اهداف نرم دما در هر دو بالا و یکسان در نظر گرفته می‌شود در حالی که در آنتروپی متقاطع با اهداف سخت، دمای مدل دانش‌آموز همان‌طور که در بالا گفتیم برابر ۱ است. به‌طور تجربی این نتیجه به دست آمده که اگر ضریب جملهٔ دوم به طرز قابل توجهی کم باشد و تأثیر اهداف نرم در تابع هدف ما بیشتر باشد، نتیجه به دست آمده بهتر است.حال سعی می‌کنیم تا توصیف بالا را به صورت ریاضی ببینیم. فرض کنید که formula_12 مجموعه داده‌های آموزشی ما است. حال دوتایی‌های ورودی و برچسب به صورتformula_13 می‌باشند. فرض کنید که formula_6 مدل معلم با پارامترهای formula_15 و formula_16 مدل دانش‌آموز با پارامترهای formula_17 باشد. حال طبق تقطیر دانش هدف کمینه کردن اتلاف نوشته شده در فرمول زیر است:formula_18در فرمول بالا، formula_19 همان آنتروپی متقاطع اهداف سخت است که بر روی برچسب‌های formula_20 پیش‌بینی شده توسط مدل دانش‌آموز و برچسب‌های formula_21 واقعی داده‌هادر دمای ۱ محاسبه می‌گردد. formula_22 همان اتلاف تقطیر است که در واقع آنتروپی متقاطع اهداف نرم می‌باشد که از خروجی‌های لایه پیشینه هموار معلم و دانش‌آموز در دمای formula_23 محاسبه می‌شود؛ بنابراین، formula_24 خروجی لایهٔ پیشینه هموار دانش‌آموز و formula_25 خروجی لایهٔ پیشینه هموار معلم را نشان می‌دهند. formula_26 هم فراپارامتری است که میزان تأثیر هر یک از این اتلاف‌ها را در مدل نهایی کنترل می‌کند.کاربردها.امروزه از تقطیر دانش در بسیاری از حوزه‌ها و مسائل استفاده می‌شود که در زیر به چند مورد آن‌ها اشاره می‌کنیم.بینایی کامپیوتر.در این حوزه تقطیر دانش بسیار کاربرد دارد. بسیاری از مدل‌های امروزی در این حوزه بر پایهٔ یادگیری ژرف می‌باشند و در نتیجه معمولاً با مدل‌های سنگینی سر و کار داریم. پس می‌توان از تقطیر دانش و فشرده سازی مدل کمک گرفت تا در جاهایی که کمبود منابع داریم از مدل‌های سبک‌تر استفاده کنیم. در مسائل زیادی همچون کلاس‌بندی عکس‌ها یا تشخیص چهره و جاهای دیگر از این تکنیک کمک گرفته می‌شود.پردازش زبان‌های طبیعی.مدل‌های مبتنی بر یادگیری ژرف که در این حوزه وجود دارند، معمولاً بسیار بزرگ و پیچیده هستند و میلیون‌ها پارامتر دارند. در نتیجه در این حوزه به خصوص از آن‌جا که تسک‌های مربوطه بیشتر در سیستم‌های سبک باید استفاده شوند، تقطیر دانش بسیار محبوب است. تلاش می‌شود تا به مدل‌های سبک و سریع‌تری که تنها تقاوت دقت ناچیزی با مدل‌های پیچیدهٔ اصلی دارند، برسیم. در واقع این مدل‌ها به حافظهٔ کمتری و منابع پردازشی کمتری نیاز دارند و در عین حال دقت خوبی دارند. در کاربردهایی مثل تولید متن یا پرسش و پاسخ نیز این مورد کاربرد دارد.بازشناسی گفتار.مدل‌های امروزه و مطرح این حوزه نیز بیشتر بر پایهٔ شبکه‌های عصبی و یادگیری ژرف می‌باشند. اما همان‌طور که می‌دانید از آن‌ها معمولاً بر روی سیستم‌های نهفته یا سیستم‌های کم منبع دیگری همچون تلفن همراه استفاده می‌باشد. در نتیجه در مرحلهٔ توسعه و استنتاج مهم است که مدل‌های ما تا حد ممکن سبک و سریع باشند. در نتیجه از تکنیک تقطیر دانش و فشرده سازی مدل در این‌جا نیز استفاده می‌شود.