مهمترین مزایای CMACدر ضمن لطف کنید و بگید چه کاری را با این الگوریتم میشه انجام داد که با شبکه عصبی نشه یا مشکل باشه. بعبارتی مزیت این الگوریتم چیست؟
1. به علت استفاده از جدول جستجو پیاده سازی ساده ای دارد
2. سرعت یادگیری بالایی دارد و دارای همگرایی سریع است
3. دارای همگرایی ضمانت شده است
4. مدل CMAC برای همگرا شدن به سمت پاسخ مورد انتظار نیاز به تکرار زیاد ندارد. زیرا دارای الگوریتم آموزش و یادگیری سریعی است. بنابراین برای پیاده سازی کاربردهای بلادرنگ و Online مناسب است.دلیل افزایش سرعت الگوریتم یادگیری CMAC در این است که در هنگام یادگیری مانند شبکه های عصبی MLP وزن تمام محلهای حافظه تغییر نمی کند بلکه فقط وزن محلهای حافظه فعال شده (فوق مکعب ها) متناسب با ورودی ها تغییر می یابد.
5. مشکل خطای کمینه نسبی ندارد و همیشه بهترین جواب و جواب مطلوب را بدست می آورد.
6. تعداد پارامترهای آن اندک است (فقط تعداد بلوکها، تعداد لایه ها و نرخ یادگیری).
7. با استفاده از تعداد مناسب بلوکها و لایه ها، دارای دقت شناسایی بالایی است.
مهمترین معایب مدل CMAC
1. بردار ورودی توسط تعدادی سلول انجمنی به خروجی نگاشت شده است و یک مسیر مستقیم مابین ورودی ها و خروجی وجود ندارد. در نتیجه مانند شبکه های عصبی مانند MLP با اعمال ورودی های مقیاس شده که شبکه عصبی آنها را ندیده است، خروجی مقیاس شده بدست نمی آید مگر اینکه مدل CMAC برای زوج ورودی - خروجی مقیاس شده آموزش یافته باشد.
2. CMAC نیاز به تعداد زوج ورودی خروجی زیادی برای آموزش شبکه دارد به خصوص زمانی که تعداد بلوک و لایه ها زیاد باشد.
3. اگر تعداد متغیر های ورودی زیاد شود حجم حافظه به صورت نمایی افزایش می یابد و پیادهسازی نرم افزاری و سخت افزاری آن بسیار مشکل و در بعضی مواقع امکان پذیر نمی شود.
برای کاهش حجم حافظه از توابع درهم ساز برای نگاشت فضای سلولهای انجمنی به فضای حافظه کوچکتری به نام استفاده می شود. اگر چه با استفاده از توابع درهم ساز ممکن است چندین محل از حافظه در به یک محل از حافظه نگاشت شود و در اصطلاح برخورد رخ دهد و باعث کاهش دقت در خروجی شود. روش دیگر کاهش حجم حافظه استفاده از ساختار CMAC سلسله مراتبی است.
4- در بعضی از مسائل این مدل باعث ناپایداری سیستم می شود.