KL اختلافِ دو توزیعِ همدسته را بهشکل جهتدار میسنجد؛ متقارن نیست و فاصلهٔ متریک نامیده نمیشود. Jensen–Shannon با یک توزیعِ میانی ساخته میشود و ریشهٔ دومِ واگراییِ آن، فاصلهٔ JS است. این صفحه صفرِ احتمال، ترتیبِ دستهها و واحدِ لگاریتم را با محاسبهٔ قابل اجرا جدا میکند.
برچسبِ دسته مقدم بر موقعیتِ ردیف است
ورودی، زوجهای برچسب و جرم است. کد ابتدا نامِ دستهها را همتراز میکند؛ دو توزیع باید همان مجموعهٔ دستهها را داشته باشند. جابهجاییِ ردیف، معنای دسته را عوض نمیکند. تطبیقِ موقعیتِ اول با اول بدونِ توجه به برچسب، میتواند اختلافی بسازد که وجود ندارد.
در مثالِ کنترل، P جرمهای۱/۴و۳/۴دارد و Q همان جرمها را با ترتیبِ برعکسِ ردیفها میدهد. KL درست صفر است؛ نسخهٔ عمداً غلطِ موقعیتمحور عددِ مثبت میسازد. این خطا پیش از بحثِ مدل یا کیفیتِ پیشبینی رخ داده است.
تعریفِ KL و قراردادِ صفر
KL(P||Q) جمعِ p×log₂(p/q) روی دستههاست. سهمِ p=۰طبقِ حد صفر میشود. اگر p مثبت ولی q صفر باشد، KL نامتناهی است. افزودنِ پنهانیِ epsilon به q همان توزیع را حفظ نمیکند؛ قراردادِ تازهای با نتیجهٔ تازه میسازد.
برای P=[۱،۰] وQ=[۰،۱]، KL نامتناهی است. خروجیِ JSON رشتهٔ صریحِ Infinity دارد؛ عددِ نامعتبرِ JSON یا مقدارِ بزرگِ دلخواه جای آن نمیگذاریم. سریالسازی با allow_nan=False واقعاً کنترل میشود تا نامتناهی بهصورت عددِ غیرمجاز نشت نکند.
توزیعِ میانی و فرقِ واگرایی با فاصله
M=(P+Q)/۲است. واگراییِ JS میانگینِ KL(P||M) وKL(Q||M) است؛ فاصلهٔ JS ریشهٔ دومِ همین میانگین است. در مثالِ دو حمایتِ جدا با پایه۲، واگرایی و فاصله هر دو یکاند؛ این برابریِ خاص نباید تفاوتِ تعریف را بپوشاند.
برای P=[۱/۲،۱/۲] وQ=[۳/۴،۱/۴]، KL در جهت اول حدود۰٫۲۰۷۵۱۸۷۵و در جهتِ برعکس۰٫۱۸۸۷۲۱۸۸است. واگراییِ JS حدود۰٫۰۴۸۷۹۴۹۴و فاصلهٔ آن۰٫۲۲۰۸۹۵۷۷میشود. اینجا دو خروجیِ JS واقعاً متفاوتاند؛ نامِ ستون را همراهِ عدد بنویسید.
از دو مسیرِ مستقل حساب کنیم
مسیرِ اصلی نسبتِ احتمالها را مستقیم به لگاریتم میدهد. oracleِ KL از آنتروپیِ متقاطع منهای آنتروپی استفاده میکند. oracleِ JS هم آنتروپیِ M منهای میانگینِ آنتروپیِ P وQ را میسنجد. این هویتها برای حالتِ متناهی با تلورانس۱e−۱۲برابر شدهاند.
جرم و نسبتها کسر دقیقاند، اما log₂ ممیزشناور است؛ نتیجهٔ لگاریتمی را کسرِ دقیق نمینامیم. تمام چهار ترکیبِ ترتیبِ ردیفهای دو توزیع، هویتِ توزیعِ یکسان و حمایتِ جدا کنترل شدهاند. واحد بیت است؛ پایهٔ طبیعی عدد را در مقیاسِ دیگری میدهد.
نرمالسازی و حدودِ تفسیر
این فایل جمعِ جرمِ دقیقاً یک میخواهد و نرمالسازیِ پنهان ندارد. مستنداتِ SciPy برای entropy وjensenshannon میتوانند ورودی را نرمال کنند؛ قراردادِ آنها با این اعتبارسنجِ کوچک یکسان معرفی نمیشود. کتابخانه اجرا نشده است.
نه ورودیِ نامعتبر، شامل جرمِ منفی، غیرمتناهی، خالی، جمعِ صفر، مجموعِ غیرواحد، مجموعهٔ دستهٔ متفاوت، برچسبِ تکراری و دو نقضِ کرانِ مخرج رد میشوند. دامنهٔ محلی۱تا۴دسته و مخرجِ کسرِ سادهشدهٔ هر جرم حداکثر۱٬۰۰۰٬۰۰۰است. جرمِ مثبتِ۱/۱۰^۴۰۰از این قرارداد خارج و پیش از لگاریتم رد میشود؛ تبدیلش به float صفر میدهد. مرزِ مجازِ۱/۱٬۰۰۰٬۰۰۰با دو توزیعِ یکسان واقعاً اجرا شده و KL وJS صفر میدهد. تابع زیان هزینهٔ پاسخِ مدل و Softmax تبدیلِ امتیاز را توضیح میدهند؛ اینجا مقایسهٔ دو توزیعِ کامل است.
این عددها کالیبراسیون، معنیداریِ جمعیتی یا لزومِ آموزشِ دوباره را ثابت نمیکنند. برای پایش تغییرِ ورودی شاهدِ بیشتری لازم است. ادامه در آموزش هوش مصنوعی؛ هیچ آستانه یا نتیجهٔ محصولِ اپرا از این جدول گزارش نمیشود.
فایل تمرین و منبع
کد مستقل تمرین و تمام کنترلها؛ Python · ورودی و تمام نتایج اجرای واقعی؛ JSON
- مستندات اصلی SciPy۱٫۱۸،entropy؛ تعریف KL،پایه و نرمالسازی و هویت آنتروپی متقاطع خوانده شد
- مستندات اصلی SciPy۱٫۱۸؛ تعریفِ فاصله بهعنوان ریشهٔ واگراییِ JS و نرمالسازی خوانده شد؛ کتابخانه اجرا نشده است
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.