۲. آنتروپی و آنتروپی متقاطع
مدلهای پایه از دل مدلهای زبانی بیرون آمدهاند. سنجههایی که از ۱۹۵۱ با آنها مدل زبانی را میسنجند هنوز چیزهای زیادی میگویند. این درس دو تای اول را از مثال ساده میسازد: آنتروپی و آنتروپی متقاطع.
کارکرد بخش مدل زبانیِ یک مدل پایه، معمولاً با کارکرد کل مدل در کارهای واقعی همبستگی خوبی دارد. پس فهم سنجههای مدل زبانی، حتی اگر هیچوقت مدلی آموزش ندهید، به انتخاب مدل کمک میکند. این سنجهها از ۱۹۵۱ — مقالهٔ معروف کلود شانون دربارهٔ «پیشبینی و آنتروپی زبان انگلیسی» — تقریباً عوض نشدهاند.
چهار سنجه داریم که همه خویشاوندند: آنتروپی متقاطع، سرگشتگی (PPLPerplexityسرگشتگی)، بیت بهازای هر نویسه (BPCBits Per Characterبیت بهازای هر نویسه) و بیت بهازای هر بایت (BPBBits Per Byteبیت بهازای هر بایت). اگر یکی را بدانید، با کمی اطلاعات اضافه بقیه را هم میتوانید حساب کنید.
این سنجهها فقط مال متن نیستند: برای هر مدلی که دنبالهای از توکن میسازد به کار میروند، حتی توکنهای غیرمتنی. یک مدل زبانی توزیع دادهٔ آموزشیاش را یاد میگیرد: بعد از «من دوست دارم بنوشم…»، «چای» محتملتر از «زغال» است. هرچه دادهٔ شما به دادهٔ آموزشی مدل نزدیکتر باشد، مدل روی آن بهتر کار میکند.
آنتروپی: هر توکن چقدر خبر میآورد
آنتروپی میسنجد که هر توکن یک زبان، بهطور میانگین چقدر اطلاعات دارد. هرچه آنتروپی بیشتر، هر توکن اطلاعات بیشتری میآورد و برای نشان دادنش بیت بیشتری لازم است.
فرض کنید میخواهیم زبانی بسازیم که جای یک نقطه را در یک مربع بگوید. اگر زبان فقط دو توکن داشته باشد — «بالا» و «پایین» — یک بیت برای نشان دادنش کافی است (۰ یا ۱). آنتروپی این زبان ۱ است. اگر چهار توکن داشته باشد — بالا-چپ، بالا-راست، پایین-چپ، پایین-راست — هر توکن جای دقیقتری میگوید ولی دو بیت لازم دارد. آنتروپی این زبان ۲ است.
آنتروپی متقاطع: مدل چقدر سخت حدس میزند
وقتی یک مدل زبانی را روی دادهای آموزش میدهیم، میخواهیم توزیع آن داده را یاد بگیرد — یعنی بتواند حدس بزند در آن داده بعد از هر چیز چه میآید. آنتروپی متقاطع مدل روی یک داده میسنجد که این حدس زدن برای مدل چقدر سخت است. این عدد به دو چیز بستگی دارد:
- خود داده چقدر قابلپیشبینی است — یعنی آنتروپی داده.
- توزیعی که مدل یاد گرفته چقدر با توزیع واقعی داده فرق دارد — این فاصله را با معیاری به اسم «واگرایی KLKullback–Leibler divergenceواگرایی کولبک-لایبلر» میسنجند.
H(P, Q) = H(P) + D_KL(P || Q)در این فرمول P توزیع واقعی داده است و Q توزیعی که مدل یاد گرفته. به زبان ساده: آنتروپی متقاطع = آنتروپی داده + فاصلهٔ مدل از داده.
اگر مدل داده را کامل یاد بگیرد، واگرایی صفر میشود و آنتروپی متقاطعش دقیقاً برابر آنتروپی خود داده است. پس میشود آنتروپی متقاطع یک مدل را «تقریب مدل از آنتروپی داده» دانست. مدلهای زبانی را دقیقاً با کمینه کردن همین عدد آموزش میدهند.
یک نکتهٔ ریاضی: آنتروپی متقاطع متقارن نیست؛ یعنی H(P, Q) با H(Q, P) فرق دارد. جالب است که خود شانون توکن را حرف میگرفت و آنتروپی را «میانگین تعداد رقم دودویی لازم برای هر حرف» تعریف میکرد.
بیت، BPC و BPB
واحد آنتروپی بیت است. اگر آنتروپی متقاطع مدلی ۶ بیت باشد، یعنی برای نشان دادن هر توکن ۶ بیت لازم دارد. ولی توکنسازی مدلها فرق دارد (فصل ۲)، پس «بیت بهازای هر توکن» بین مدلها قابلمقایسه نیست. برای همین بعضی از بیت بهازای هر نویسه استفاده میکنند: اگر هر توکن بهطور میانگین ۲ نویسه باشد، BPC میشود ۶ ÷ ۲ = ۳.
ولی نویسهها هم در رمزگذاریهای مختلف اندازهٔ متفاوت دارند — یک حرف فارسی در UTF-8 دو بایت است و یک حرف انگلیسی یک بایت. استانداردترین واحد، بیت بهازای هر بایت است. یک نکتهٔ زیبا: BPB میگوید مدل چقدر خوب متن را فشرده میکند. اگر BPB مدلی ۳٫۴۳ باشد، هر بایت ۸ بیتی را با ۳٫۴۳ بیت نشان میدهد — یعنی متن را به کمتر از نصف حجمش فشرده میکند.
حساب دقیق مثال کتاب: اگر BPC برابر ۳ باشد و هر نویسه در ASCII ۷ بیت، یعنی ⅞ بایت، آنوقت BPB میشود 3 / (7/8) = 3.43.
خودآزمایی
مرور فلشکارتهای این درس
آنتروپی چه چیزی را میسنجد؟
برای دیدن پاسخ کلیک کنید یا Space بزنید
کارت ۱ از ۵