داستان شناسایی احساسات توی حرف زدن به زبان اردو؛ وقتی هوش مصنوعی جدی‌تر میشه!

Fall Back

بذار یک کم در مورد یه موضوع خفن که کمتر بهش فکر کردیم با هم گپ بزنیم: شناسایی احساسات توی حرف زدن یا همون «Speech Emotion Recognition» (SER) که بهش میگن تکنولوژی هوش مصنوعی احساسی! یعنی یه مدل هوشمند که می‌فهمه طرف مقابل توی صداش چه حسی داره، مثلاً خوشحال، ناراحت یا عصبانیه. خب این کار، خودش کلی چالش داره، مخصوصاً برای زبان‌هایی که منابع زیادی براشون وجود نداره. مثلاً زبان اردو! منابع کم یعنی دیتای آموزش و داده‌های از قبل آماده خیلی محدوده و این کارو برای هوش مصنوعی سخت‌تر می‌کنه.

حالا چی جالب‌تره؟ کل این داستان تا حالا برای زبان اردو خیلی کم بررسی شده و معمولاً همه سراغ انگلیسی یا زبان‌های معروف دیگه میرن. ولی توی این تحقیق جالب، اومدن بین سه دیتاست مختلف (یعنی مجموعه داده‌های صدای افراد با احساسات مختلف به زبان اردو) مدل رو تست کردن تا ببینیم واقعاً کار این سیستم‌ها چطوریه و چقدر به درد می‌خوره.

توی این تحقیق از یه چیز باحال به اسم Cross-Corpus Evaluation استفاده شده. یعنی چیه؟ یعنی مدل رو با دیتاستی که باهاش آموزش ندیده تست می‌کنن، مثلاً اگر مدل با دیتاست A یاد گرفته، حالا توی دیتاست B تستش می‌کنن. این کار باعث میشه بفهمیم واقعاً مدل عمومیت داره یا فقط روی همون داده‌ها خوبه. چون معمولاً اگر فقط روی دیتای خودش تست بشه (self-corpus validation)، مدل بهتر از واقعیت نشون میده و انگار خودشو گول میزنه!

برای اینکه بتونن صداها رو طوری تحلیل کنن که مدل بفهمه چه خبر شده، از دو دستۀ معروف فیچرهای صدایی استفاده کردن به نام eGeMAPS و ComParE. اینا چه جور چیزین؟ خلاصه‌ش اینکه یه عالم ویژگی مختلف از صدا رو به شکل عدد درمیارن؛ مثلاً تُن صدا، سرعت، میزان لرزش و… که مدل بتونه بفهمه هر احساس چه ویژگی‌هایی داره. این فیچرها حسابی توی دنیا متداولن و با الهام از دانش آدمای این حوزه درست شدن (بهشون میگن Domain-Knowledge Features یعنی ویژگی‌هایی که با نگاه کارشناسی و تجربه به دست اومدن نه فقط با داده‌های برنامه‌نویسی!).

وقتی که این فیچرها آماده شد، میریزنشون توی دوتا مدل پرکاربرد: Logistic Regression (که یه مدل قدیمی و خیلی ساده برای دسته‌بندی داده‌هاست) و Multilayer Perceptron (MLP) که درواقع نوعی شبکه عصبی ساده‌ست و می‌تونه ارتباط‌های پیچیده رو هم یاد بگیره. بعد با این مدل‌ها سعی می‌کنن تشخیص بدن هر نمونه صدا مربوط به کدوم احساسه.

برای اینکه بتونن انصافاً نتیجه بگیرن، از یه معیار به نام Unweighted Average Recall (UAR) استفاده می‌کنن. این یعنی چی؟ یعنی به اندازه کلاس‌های مختلف (مثلاً خوشحال، ناراحت، غمگین) اهمیت برابر داده میشه؛ حتی اگر توی دیتاست بعضیاشون کم یا زیاد باشن. اینجوری مدل واقعاً بسنجیم چقدر تو همه احساسات خوب دقت داره، نه فقط توی کلاس‌هایی که تعدادشون زیاده.

حالا نتیجه‌های جالب: فهمیدن که وقتی مدل رو فقط روی داده‌های خودش تست کنین، نتیجه‌ها خیلی بهتر به نظر میاد و ممکنه تا ۱۳ درصد تفاوت (یعنی اعداد خیلی گمراه‌کننده!) نسبت به تست روی داده‌های جدید نشون بده. این یعنی واقعاً اگر می‌خوایم بدونیم یه مدل چقدر قوی و قابل اطمینان هست، باید توی سناریوی cross-corpus یا همون تست با مجموعه‌های متفاوت ارزیابیش کنیم، نه فقط با همون دیتایی که باهاش آموزش دیده.

خلاصه اینکه این تحقیق نشون داد اگر واقعاً دنبال پیشرفت تحقیق روی هوش مصنوعی احساسی برای زبان‌هایی مثل اردو هستیم، باید ارزیابی cross-corpus رو جدی بگیریم وگرنه داریم به خودمون امید الکی می‌دیم! این موضوع می‌تونه به تحقیقات جوامع کم‌منبع حسابی کمک کنه و هوش مصنوعی مهربون‌تر و همدل‌تری به دنیا معرفی کنه!

منبع: +