وقتی هوش مصنوعی برای یادگیری مهارت جدید حافظهاش را پاک میکند

تصور کنید یک هوش مصنوعی را ماهها آموزش دادهاید تا بتواند زبان انگلیسی را بهخوبی ترجمه کند. حالا تصمیم میگیرید مهارت جدیدی به آن یاد بدهید؛ مثلاً تشخیص تصاویر پزشکی.
مدل را دوباره آموزش میدهید و عملکردش در تشخیص تصاویر جدید فوقالعاده میشود.
اما وقتی به سراغ ترجمه انگلیسی برمیگردید، اتفاق عجیبی رخ داده است:
مدل بخش بزرگی از چیزی را که قبلاً یاد گرفته بود، فراموش کرده است.
نه به این دلیل که حافظهاش پر شده است؛ نه به این دلیل که فایلهای آموزشی پاک شدهاند.
بلکه خود فرآیند یادگیری مهارت جدید باعث شده بخشی از دانش قبلی مدل از بین برود.
این پدیده یکی از مشکلات قدیمی و مهم هوش مصنوعی است و دانشمندان آن را Catastrophic Forgetting یا «فراموشی فاجعهبار» مینامند.
هوش مصنوعی واقعاً چطور یاد میگیرد؟
برای فهمیدن مشکل، ابتدا باید بدانیم یک شبکه عصبی چگونه آموزش میبیند.
یک مدل هوش مصنوعی معمولاً از تعداد بسیار زیادی پارامتر یا وزن تشکیل شده است.
در زمان آموزش، مدل دادهها را دریافت میکند، خروجی خود را تولید میکند و سپس میزان خطای آن محاسبه میشود.
الگوریتم آموزش تلاش میکند این خطا را کاهش دهد.
به زبان ساده:
مدل اشتباه میکند → خطا محاسبه میشود → وزنها تغییر میکنند → مدل دوباره امتحان میکند.
این فرآیند میلیونها یا حتی میلیاردها بار تکرار میشود.
مشکل زمانی شروع میشود که بخواهیم همین مدل را بعداً برای یک مهارت جدید آموزش دهیم.
یک مثال ساده؛ دانشآموزی که همهچیز را قاطی میکند
فرض کنید دانشآموزی ابتدا چند ماه فقط زبان انگلیسی یاد گرفته است.
بعد از مدتی، زبان انگلیسی را بهخوبی میداند.
حالا او را مجبور میکنید چند ماه فقط زبان فرانسوی بخواند و تقریباً هیچ تمرینی از انگلیسی نداشته باشد.
ممکن است بعد از مدتی فرانسوی او بسیار خوب شود، اما بخشی از مهارت انگلیسیاش ضعیف شود.
شبکههای عصبی نیز میتوانند رفتاری مشابه داشته باشند.
وقتی مدل برای یک وظیفه جدید آموزش میبیند، وزنهای آن برای کاهش خطای وظیفه جدید تغییر میکنند.
اما بعضی از همین وزنها قبلاً برای مهارتهای قدیمی اهمیت داشتند.
در نتیجه، یادگیری جدید میتواند دانش قدیمی را مختل کند.
Catastrophic Forgetting دقیقاً چیست؟
Catastrophic Forgetting به حالتی گفته میشود که یک مدل یادگیری ماشین پس از آموزش روی یک وظیفه جدید، مقدار قابلتوجهی از عملکرد خود را در وظایف قبلی از دست میدهد.
این موضوع مخصوصاً در یادگیری پیوسته یا Continual Learning اهمیت دارد.
در یادگیری سنتی، فرض میکنیم تمام دادههای آموزشی را در اختیار داریم.
مدل میتواند بارها به دادههای قبلی و جدید دسترسی داشته باشد و از آنها برای آموزش استفاده کند.
اما در Continual Learning شرایط متفاوت است.
مدل ممکن است دادهها را به ترتیب دریافت کند:
وظیفه ۱ → وظیفه ۲ → وظیفه ۳ → وظیفه ۴
و قرار است بعد از یادگیری هر وظیفه، مهارتهای قبلی همچنان حفظ شوند.
اینجاست که مشکل فراموشی فاجعهبار خودش را نشان میدهد.
چرا شبکه عصبی فراموش میکند؟
پاسخ را باید در نحوه تغییر وزنهای شبکه جستوجو کرد.
فرض کنید یک شبکه عصبی با هزاران پارامتر داریم.
هر پارامتر ممکن است در یادگیری ویژگیهای مختلفی نقش داشته باشد.
وقتی مدل روی وظیفه جدید آموزش میبیند، الگوریتم بهینهسازی وزنها را تغییر میدهد تا عملکرد مدل روی دادههای جدید بهتر شود.
اما این تغییرات ممکن است با چیزی که مدل قبلاً یاد گرفته بود، تضاد داشته باشند.
در نتیجه ممکن است یک وزن برای وظیفه جدید مناسبتر شود، اما همان تغییر باعث کاهش عملکرد در وظیفه قبلی شود.
هرچه وظیفه جدید متفاوتتر باشد، احتمال این تداخل میتواند بیشتر شود.
مشکل از کجا جدیتر میشود؟
فرض کنید یک مدل ابتدا تصاویر گربه و سگ را یاد گرفته است.
حالا آن را برای تشخیص خودرو و موتورسیکلت آموزش میدهیم.
اگر فقط دادههای مربوط به خودرو و موتورسیکلت را در مرحله دوم آموزش به مدل بدهیم، اطلاعات مربوط به گربه و سگ دیگر مستقیماً در فرآیند یادگیری حضور ندارند.
مدل تمام تلاش خود را برای بهتر شدن روی وظیفه جدید انجام میدهد.
بعد از مدتی ممکن است عملکرد آن روی خودروها عالی باشد، اما وقتی دوباره تصویر یک گربه را به آن نشان میدهیم، مدل دیگر مثل گذشته عمل نکند.
این یعنی مدل در حال یادگیری بدون حفظ کامل گذشته بوده است.
چرا این مشکل برای هوش مصنوعی واقعی مهم است؟
در دنیای واقعی، اطلاعات دائماً تغییر میکنند.
یک سیستم هوش مصنوعی ممکن است امروز برای تشخیص یک نوع تهدید آموزش ببیند و فردا با نوع جدیدی از تهدید مواجه شود.
یک ربات ممکن است ابتدا یک محیط را یاد بگیرد و بعد وارد محیط جدیدی شود.
یک دستیار هوشمند نیز باید بتواند اطلاعات و مهارتهای جدید را به مرور یاد بگیرد، بدون اینکه تواناییهای قبلی خود را از دست بدهد.
اگر هر بار که مدل چیز جدیدی یاد میگیرد، بخشی از دانش قبلی را از دست بدهد، ساختن یک سیستم واقعاً یادگیرنده و دائمی بسیار دشوار خواهد بود.
راهحل اول؛ مرور دوباره گذشته
یکی از سادهترین ایدهها این است که هنگام آموزش وظیفه جدید، بخشی از دادههای قدیمی را نیز دوباره به مدل نشان دهیم.
مثلاً مدل ابتدا با دادههای وظیفه A آموزش دیده است.
سپس وارد وظیفه B میشود.
به جای اینکه فقط B را آموزش دهیم، ترکیبی از A و B را به مدل میدهیم.
به این ترتیب، مدل هنگام یادگیری مهارت جدید، فرصت مرور مهارت قدیمی را نیز دارد.
این روش ساده و مؤثر است، اما یک مشکل مهم دارد:
باید دادههای قدیمی را ذخیره کنیم.
در برخی کاربردها این کار ممکن است از نظر حافظه، حریم خصوصی یا هزینه امکانپذیر نباشد.
راهحل دوم؛ حافظهای برای نمونههای قدیمی
یک روش دیگر استفاده از چیزی شبیه Memory Replay است.
مدل تعداد محدودی از نمونههای مهم گذشته را در یک حافظه نگه میدارد.
هنگام آموزش وظیفه جدید، علاوه بر دادههای جدید، تعدادی از این نمونههای قدیمی نیز وارد فرآیند آموزش میشوند.
در نتیجه مدل دائماً بخشی از دانش قبلی را مرور میکند.
این روش شباهت جالبی به یادگیری انسان دارد.
ما نیز برای حفظ یک مهارت، معمولاً باید آن را هر چند وقت یکبار تمرین کنیم.
راهحل سوم؛ بعضی وزنها را دستنخورده نگه داریم
روش دیگری وجود دارد که ایده متفاوتی دارد.
اگر بدانیم بعضی پارامترهای شبکه برای وظایف قبلی اهمیت زیادی دارند، میتوانیم هنگام آموزش وظیفه جدید اجازه ندهیم این پارامترها بیش از حد تغییر کنند.
یعنی مدل آزادی بیشتری برای تغییر بخشهایی دارد که اهمیت کمتری برای دانش قبلی دارند.
در این روش، هدف این است:
یادگیری جدید انجام شود، اما با کمترین آسیب ممکن به دانش قبلی.
یکی از روشهای شناختهشده در این خانواده، Elastic Weight Consolidation یا EWC است.
در EWC پارامترهایی که برای وظایف قبلی اهمیت بیشتری دارند، در برابر تغییرات بزرگتر محافظت میشوند.
راهحل چهارم؛ مدل را به چند بخش تقسیم کنیم
گاهی دانشمندان ترجیح میدهند همه چیز را در یک مجموعه وزن مشترک قرار ندهند.
برای هر وظیفه جدید ممکن است بخشی از مدل به آن اختصاص داده شود یا ساختار مدل بهگونهای گسترش پیدا کند که دانش جدید با دانش قدیمی کمتر تداخل داشته باشد.
مزیت این روش کاهش تداخل است.
اما مشکل جدیدی ایجاد میشود:
مدل میتواند به مرور زمان بسیار بزرگ شود.
اگر برای هر مهارت جدید بخش تازهای به مدل اضافه کنیم، مصرف حافظه و محاسبات افزایش پیدا میکند.
آیا مدلهای بزرگ امروزی هم فراموش میکنند؟
بله، اما داستان پیچیدهتر شده است.
مدلهای زبانی بزرگ و مدلهای چندوجهی مدرن میتوانند دانش بسیار زیادی را در خود جای دهند و روشهای آموزشی جدید میتوانند میزان تداخل را کاهش دهند.
اما مسئله یادگیری مداوم همچنان یکی از موضوعات مهم پژوهشی است.
بهخصوص زمانی که بخواهیم یک مدل را بهصورت مداوم بهروزرسانی کنیم.
مثلاً:
نسخه امروز → اطلاعات جدید → آموزش مجدد → اطلاعات جدیدتر → آموزش دوباره
در این حالت باید مطمئن شویم که مدل هنگام یادگیری اطلاعات جدید، تواناییهای قبلی را از دست نمیدهد.
یک مشکل دیگر؛ دانش جدید ممکن است با دانش قدیمی تناقض داشته باشد
فراموشی فقط زمانی اتفاق نمیافتد که دادهها کاملاً متفاوت باشند.
گاهی اطلاعات جدید با اطلاعات قبلی ارتباط مستقیم دارند.
برای مثال، فرض کنید مدل با مجموعهای از دادهها آموزش دیده و در آن یک رابطه آماری خاص را یاد گرفته است.
حالا دادههای جدید نشان میدهند که آن رابطه دیگر دقیق نیست.
مدل باید خودش را بهروزرسانی کند.
اینجا مسئله پیچیده میشود:
چه چیزی باید حفظ شود و چه چیزی باید تغییر کند؟
اگر مدل هیچچیز را تغییر ندهد، نمیتواند با دنیای جدید سازگار شود.
اگر همهچیز را تغییر دهد، ممکن است دانش مفید قبلی را از دست بدهد.
این دقیقاً همان تعادلی است که Continual Learning تلاش میکند ایجاد کند.
هوش مصنوعی برای یادگیری واقعی به چه چیزی نیاز دارد؟
اگر قرار باشد یک سیستم هوش مصنوعی واقعاً در طول زمان یاد بگیرد، صرفاً داشتن یک مدل بزرگ کافی نیست.
سیستم باید بتواند:
- اطلاعات جدید را دریافت کند
- دانش قبلی را حفظ کند
- دانش قدیمی و جدید را مقایسه کند
- اطلاعات منسوخ را اصلاح کند
- از تداخل بین مهارتها جلوگیری کند
- و در صورت نیاز، چیزهایی را عمداً فراموش کند
این مورد آخر بسیار مهم است.
فراموش کردن همیشه بد نیست.
اگر مدل مجبور باشد تمام اطلاعات قدیمی را برای همیشه حفظ کند، ممکن است نتواند با تغییر شرایط سازگار شود.
بنابراین مسئله اصلی این نیست که:
«چطور کاری کنیم هوش مصنوعی هرگز چیزی را فراموش نکند؟»
بلکه سؤال بهتر این است:
«چطور کاری کنیم هوش مصنوعی چیز درست را فراموش کند و چیز مهم را نگه دارد؟»
تفاوت جالب مغز انسان و شبکه عصبی
مغز انسان نیز هنگام یادگیری مهارتهای جدید با تغییرات گستردهای مواجه میشود، اما به نظر میرسد سازوکارهای مختلفی در مغز به حفظ اطلاعات قدیمی کمک میکنند.
تمرین، مرور، خواب، ارتباط میان مفاهیم و ساختارهای مختلف حافظه همگی در یادگیری انسان نقش دارند.
شبکههای عصبی مصنوعی چنین سازوکار پیچیدهای ندارند.
به همین دلیل، پژوهشگران از روشهایی مانند Replay، Regularization، معماریهای چندبخشی و روشهای حافظهمحور استفاده میکنند تا بخشی از این تواناییها را در سیستمهای مصنوعی ایجاد کنند.
آینده؛ هوش مصنوعی که واقعاً یاد میگیرد
بسیاری از سیستمهای فعلی را میتوان بیشتر به یک دانشآموز بسیار قدرتمند تشبیه کرد که در یک دوره آموزشی مشخص، حجم عظیمی از اطلاعات را یاد میگیرد.
اما هوش مصنوعی آینده احتمالاً باید بیشتر شبیه یک یادگیرنده دائمی باشد.
سیستمی که امروز چیزی را یاد میگیرد، فردا اطلاعات جدیدی دریافت میکند و هفته بعد بدون نیاز به آموزش کامل از صفر، دانش خود را بهروزرسانی میکند.
برای رسیدن به چنین آیندهای، حل مشکل Catastrophic Forgetting اهمیت زیادی دارد.
زیرا هوش مصنوعیای که هر بار برای یادگیری یک مهارت جدید مجبور باشد بخشی از مهارتهای قبلی خود را قربانی کند، هنوز یک یادگیرنده واقعی نیست.
جمعبندی؛ شاید فراموش کردن بخشی از یادگیری باشد
هوش مصنوعی امروز میتواند در چندین حوزه عملکردی فوقالعاده داشته باشد، اما یادگیری مداوم هنوز یکی از چالشهای مهم آن است.
Catastrophic Forgetting نشان میدهد که یاد دادن یک مهارت جدید به شبکه عصبی همیشه ساده نیست؛ گاهی مدل برای بهتر شدن در یک وظیفه، بخشی از چیزی را که قبلاً یاد گرفته قربانی میکند.
پژوهشگران با روشهایی مانند Replay، حفظ نمونههای قدیمی، Regularization و معماریهای ویژه تلاش میکنند این مشکل را کاهش دهند.
اما شاید جالبترین نکته این باشد که هدف نهایی اصلاً ساخت هوش مصنوعیای نیست که هیچوقت چیزی را فراموش نکند.
هدف ساخت سیستمی است که بتواند تشخیص دهد:
چه چیزی را باید یاد بگیرد، چه چیزی را باید حفظ کند و چه چیزی دیگر ارزش نگهداشتن ندارد.
شاید روزی هوش مصنوعی واقعاً بتواند مانند انسان یاد بگیرد؛ نه با حفظ کردن همهچیز، بلکه با یادگیری، اصلاح و فراموشی هوشمندانه.
سوالات متداول
Catastrophic Forgetting چیست؟
Catastrophic Forgetting یا فراموشی فاجعهبار پدیدهای در یادگیری ماشین است که در آن مدل پس از آموزش روی وظیفه جدید، بخشی از توانایی خود در وظایف قبلی را از دست میدهد.
چرا شبکههای عصبی فراموش میکنند؟
زیرا آموزش وظیفه جدید باعث تغییر وزنهای شبکه میشود و برخی از این وزنها ممکن است در یادگیری وظایف قبلی نیز نقش داشته باشند.
آیا میتوان از فراموشی هوش مصنوعی جلوگیری کرد؟
میتوان آن را کاهش داد. روشهایی مانند Replay، نگهداری نمونههای قدیمی، Regularization و معماریهای ویژه برای کاهش تداخل بین دانش جدید و قدیمی استفاده میشوند.
Continual Learning چیست؟
Continual Learning یا یادگیری پیوسته روشی است که در آن مدل بهمرور زمان وظایف یا اطلاعات جدید را یاد میگیرد و در عین حال باید دانش قبلی خود را حفظ کند.
آیا فراموشی همیشه برای هوش مصنوعی بد است؟
خیر. برخی اطلاعات ممکن است قدیمی یا بیاهمیت شوند. چالش اصلی این است که مدل بتواند اطلاعات مهم را حفظ و اطلاعات منسوخ را اصلاح یا کنار بگذارد.




