آنتروپی و کراس آنتروپی مفاهیمی بنیادی در نظریه اطلاعات هستند که نقش حیاتی در یادگیری ماشین و شبکههای عصبی دارند. آنتروپی معیاری برای سنجش میزان عدمقطعیت یا بینظمی در دادهها است، در حالی که کراسآنتروپی برای ارزیابی میزان انحراف پیشبینیهای مدل از توزیع واقعی به کار میرود. این مقاله به بررسی دقیق این دو مفهوم پرداخته، ارتباط آنها با مسائل طبقهبندی را شرح میدهد و با مثالهایی کاربرد آنها را در بهینهسازی مدلها تبیین میکند.
آنتروپی (Entropy)
آنتروپی یک مفهوم از نظریه اطلاعات است که نشاندهنده میزان “بینظمی” یا “عدم قطعیت” در یک توزیع احتمالاتی است. به زبان ساده، آنتروپی بیان میکند که چقدر پیشبینی یا فهم دادهها دشوار است. اگر یک سیستم کاملاً پیشبینیپذیر باشد، آنتروپی آن صفر خواهد بود و اگر سیستم کاملاً تصادفی باشد، آنتروپی آن بیشترین مقدار ممکن را خواهد داشت.
در یک توزیع احتمالاتی برای یک متغیر تصادفی ( X )، آنتروپی ( H(X) ) به شکل زیر تعریف میشود:
$$
H(X) = – \sum_{i} p(x_i) \log(p(x_i))
$$
که در آن:
- p(x_i) احتمال وقوع حالت ( x_i ) است.
- سامیشن به معنای جمع بر روی تمام حالتهای ممکن است.
اگر تعداد حالات ممکن زیاد باشد، آنتروپی بالا میرود زیرا پیشبینی کردن وضعیت سیستم دشوارتر میشود. اگر p(x_i) برای یک حالت معین برابر با 1 باشد و برای سایر حالات صفر باشد، آنتروپی صفر خواهد بود، چرا که وضعیت سیستم بهطور کامل مشخص است.
کراس آنتروپی (Cross-Entropy)
کراس آنتروپی یکی دیگر از مفاهیم مهم در نظریه اطلاعات است که برای اندازهگیری اختلاف بین دو توزیع احتمالاتی مختلف استفاده میشود. معمولاً در یادگیری ماشین، یکی از این توزیعها، توزیع واقعی (که معمولاً برچسبهای واقعی دادهها هستند) و دیگری توزیع پیشبینیشده توسط مدل است.
فرمول کراس آنتروپی برای دو توزیع p و q به شکل زیر است:
$$
H(p, q) = – \sum_{i} p(x_i) \log(q(x_i))
$$
که در آن:
- p(x_i) احتمال واقعی (توزیع واقعی) است.
- q(x_i) احتمال پیشبینیشده توسط مدل است.
کراس آنتروپی در مسائل کلاسیفیکیشن (Classification)
در مسائل کلاسیفیکیشن، هدف این است که شبکه عصبی ورودی را به یکی از چندین کلاس مختلف نسبت دهد. برای انجام این کار، مدل به طور معمول احتمال تعلق ورودی به هر یک از کلاسها را پیشبینی میکند. حالا، برای اینکه مدل بتواند این پیشبینیها را بهطور مؤثر یاد بگیرد، باید خطای پیشبینیهایش اندازهگیری شود.
در اینجا کراس آنتروپی نقش مهمی ایفا میکند. فرض کنید که ما یک مدل کلاسیفیکیشن داریم که برای کلاسیفیکیشن دودویی (یعنی فقط دو کلاس 0 و 1) آموزش دیده است. برای ورودی خاص، مدل احتمال تعلق ورودی به کلاس 1 را پیشبینی میکند و این احتمال را با y^ نمایش میدهیم. احتمال تعلق ورودی به کلاس 0 برابر با y^-1 خواهد بود.
حالا، فرض کنید که برچسب واقعی ورودی ( y ) باشد که میتواند یکی از دو مقدار 0 یا 1 باشد.
کراس آنتروپی در کلاسیفیکیشن دودویی
فرمول کراس آنتروپی برای این وضعیت به شکل زیر است:
$$
H(y, \hat{y}) = – \left( y \log(\hat{y}) + (1 – y) \log(1 – \hat{y}) \right)
$$
در اینجا:
- اگر ( y = 1 )، یعنی ورودی متعلق به کلاس 1 است، آنگاه فقط قسمت اول جمع اثرگذار خواهد بود.
- اگر ( y = 0 )، یعنی ورودی متعلق به کلاس 0 است، آنگاه فقط قسمت دوم جمع اثرگذار خواهد بود.
توضیح مفهوم کراس آنتروپی در کلاسیفیکیشن
اگر پیشبینی مدل دقیق باشد (یعنی y^ به y نزدیک باشد)، مقدار کراس آنتروپی کوچک خواهد بود، زیرا مدل پیشبینی صحیحی انجام داده است.
اگر پیشبینی مدل نادرست باشد (یعنی y^ از y دور باشد)، مقدار کراس آنتروپی بزرگ خواهد شد، زیرا مدل اشتباه پیشبینی کرده است.
مثال عددی از کراس آنتروپی در یادگیری ماشین
فرض کنید که یک مدل شبکه عصبی برای کلاسیفیکیشن دودویی داریم. مدل برای یک ورودی خاص احتمال تعلق ورودی به کلاس 1 را y^=0.9 پیشبینی میکند، و برچسب واقعی این ورودی y = 1 است.
حالا کراس آنتروپی برای این ورودی را محاسبه میکنیم:
$$
H(1, 0.9) = – \left( 1 \log(0.9) + (1 – 1) \log(1 – 0.9) \right)
$$
که فقط قسمت اول تأثیر دارد زیرا ( y = 1 ). حالا، log(0.9) را محاسبه میکنیم:
$$
H(1, 0.9) = – \log(0.9) \approx 0.105
$$
این مقدار نشاندهنده این است که پیشبینی مدل بسیار دقیق بوده است.
در مقابل، اگر مدل احتمال y^=0.1 را پیشبینی کرده باشد، که این پیشبینی اشتباه است چون ( y = 1 )، آنگاه کراس آنتروپی به شکل زیر محاسبه میشود:
$$
H(1, 0.1) = – \left( 1 \log(0.1) + (1 – 1) \log(1 – 0.1) \right)
$$
که فقط قسمت اول تأثیر دارد:
$$
H(1, 0.1) = – \log(0.1) \approx 2.302
$$
این مقدار بالاتر نشاندهنده این است که پیشبینی مدل بسیار نادرست بوده است.
خلاصه و نتیجهگیری
آنتروپی یک ابزار برای اندازهگیری میزان عدم قطعیت یا بینظمی در دادهها است. هرچه آنتروپی بیشتر باشد، پیشبینی دادهها دشوارتر است.
کراس آنتروپی اختلاف بین پیشبینیهای مدل و توزیع واقعی است. در واقع، کراس آنتروپی به ما نشان میدهد که مدل تا چه حد قادر است پیشبینیهای دقیقی انجام دهد.
در مسائل کلاسیفیکیشن، کراس آنتروپی به عنوان تابع هزینه (Loss Function) استفاده میشود تا مدل یاد بگیرد که پیشبینیهای خود را به واقعیت نزدیکتر کند.
نظر شما در مورد این مطلب چیه؟