شیدهوش
فصل ۳ · درس ۲ از ۱۲

۲. آنتروپی و آنتروپی متقاطع

مدل‌های پایه از دل مدل‌های زبانی بیرون آمده‌اند. سنجه‌هایی که از ۱۹۵۱ با آن‌ها مدل زبانی را می‌سنجند هنوز چیزهای زیادی می‌گویند. این درس دو تای اول را از مثال ساده می‌سازد: آنتروپی و آنتروپی متقاطع.

زمان مطالعه: ۱۸ دقیقهمرجع در کتاب: فصل ۳، بخش Understanding Language Modeling Metrics (تا Bits-per-Byte) — صفحهٔ ۲۴۰

کارکرد بخش مدل زبانیِ یک مدل پایه، معمولاً با کارکرد کل مدل در کارهای واقعی همبستگی خوبی دارد. پس فهم سنجه‌های مدل زبانی، حتی اگر هیچ‌وقت مدلی آموزش ندهید، به انتخاب مدل کمک می‌کند. این سنجه‌ها از ۱۹۵۱ — مقالهٔ معروف کلود شانون دربارهٔ «پیش‌بینی و آنتروپی زبان انگلیسی» — تقریباً عوض نشده‌اند.

چهار سنجه داریم که همه خویشاوندند: آنتروپی متقاطع، سرگشتگی (PPLPerplexityسرگشتگی)، بیت به‌ازای هر نویسه (BPCBits Per Characterبیت به‌ازای هر نویسه) و بیت به‌ازای هر بایت (BPBBits Per Byteبیت به‌ازای هر بایت). اگر یکی را بدانید، با کمی اطلاعات اضافه بقیه را هم می‌توانید حساب کنید.

این سنجه‌ها فقط مال متن نیستند: برای هر مدلی که دنباله‌ای از توکن می‌سازد به کار می‌روند، حتی توکن‌های غیرمتنی. یک مدل زبانی توزیع دادهٔ آموزشی‌اش را یاد می‌گیرد: بعد از «من دوست دارم بنوشم…»، «چای» محتمل‌تر از «زغال» است. هرچه دادهٔ شما به دادهٔ آموزشی مدل نزدیک‌تر باشد، مدل روی آن بهتر کار می‌کند.

آنتروپی: هر توکن چقدر خبر می‌آورد

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

فرض کنید می‌خواهیم زبانی بسازیم که جای یک نقطه را در یک مربع بگوید. اگر زبان فقط دو توکن داشته باشد — «بالا» و «پایین» — یک بیت برای نشان دادنش کافی است (۰ یا ۱). آنتروپی این زبان ۱ است. اگر چهار توکن داشته باشد — بالا-چپ، بالا-راست، پایین-چپ، پایین-راست — هر توکن جای دقیق‌تری می‌گوید ولی دو بیت لازم دارد. آنتروپی این زبان ۲ است.

بالاپایینالف) دو توکن ← ۱ بیتحدس زدن آسان‌تر · آنتروپی کمتربالا-چپبالا-راستپایین-چپپایین-راستب) چهار توکن ← ۲ بیتاطلاعات بیشتر · حدس سخت‌تریک زبان برای نشان دادن جای یک نقطه در مربع
دو زبان برای گفتن جای یک نقطه. زبان «ب» اطلاعات بیشتری در هر توکن دارد، ولی حدس زدن توکن بعدی‌اش هم سخت‌تر است.

آنتروپی متقاطع: مدل چقدر سخت حدس می‌زند

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

  1. خود داده چقدر قابل‌پیش‌بینی است — یعنی آنتروپی داده.
  2. توزیعی که مدل یاد گرفته چقدر با توزیع واقعی داده فرق دارد — این فاصله را با معیاری به اسم «واگرایی 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.

خودآزمایی

زبانی چهار توکن هم‌احتمال دارد. آنتروپی‌اش چند بیت است؟
اگر مدل دادهٔ آموزشی را کامل یاد بگیرد، آنتروپی متقاطعش چه می‌شود؟
چرا برای مقایسهٔ مدل‌ها BPB بهتر از «بیت به‌ازای هر توکن» است؟

مرور فلش‌کارت‌های این درس

تعریف

آنتروپی چه چیزی را می‌سنجد؟

برای دیدن پاسخ کلیک کنید یا Space بزنید

کارت ۱ از ۵

آکادمی هوش مصنوعی شیدهوش — بخشی از shidhoosh.com