نمایش نتایج 1 تا 9 از 9

نام تاپیک: CMAC یا مدل ریاضی مخچه انسان، چیست؟

  1. #1
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175

    CMAC یا مدل ریاضی مخچه انسان، چیست؟

    CMAC مخفف Cerebellar Model Articulation Controller یا کنترلگر مدل ریاضی مخچه است.
    مدل CMAC یا مدل ریاضی مخچه در سال 1971 توسط J.S.Albus ارائه شد. CMAC شبکه عصبی است که ساختار و اعمال قسمتی از مغز انسان بنام مخچه را شبیه‌سازی می‌نماید. وظیفه مخچه کنترل و هماهنگی اجزای بدن نظیر چشمها، بازوها، پاها و انگشتان می‌باشد و Albus برای اولین بار از مدل CMAC برای کنترل بازوهای ربات استفاده نمود [Albus 1975]. مدل CMAC مبتنی بر سلولهای حافظه انجمنی و بر اساس جدول جستجو است.

    مبانی و جایگاه

    مخچه متصل به مغز میانی و در زیر قشر بینایی قرار گرفته است و وظیفه آن حفظ تعادل بدن، کنترل سرعت و دقت حرکات اندامها، چشمها و دیگر اعضای بدن می‏باشد. مخچه از بسیاری لحاظ شبیه یک پرسپترون است. ساختمان یک پرسپترون در شکل زیر نشان داده شده است.

    از آنجاییکه ساختار پرسپترون در ابتدا از مدل مغز الهام گرفته شده است بنابراین نامگذاریهای قسمتهای مختلف آن شامل عبارات فیزیولوژیکی- عصبی است. از بردارهـای ورودی S به عنوان سلولهای حسگر(Sensor Cells) یاد می‏شود. هنگامی که یک بردار ورودی S بر روی سلولهای حسگر قرار می‏گیرد، یک بردار سلول های انجمنی A فعال می‏شود. با ضرب کردن این بردار سلول انجمنی در ماتریس وزن W، بردار پاسخ یا خروجی P بدست می‏آید.


    ....
    عکس های ضمیمه عکس های ضمیمه   
    آخرین ویرایش به وسیله whitehat : شنبه 17 فروردین 1387 در 11:17 صبح
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  2. #2
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    از نظر معادلات ریاضی، یک پرسپترون را می‏توان نتیجه دو نگاشت زیر دانست:
    f:S->A
    g:A->P

    به طوری که معمولاً تابعf یک تابع مشخص با پارامترهای ثابت است در حالیکه تابع g به مقادیر وزنهایی بستگی دارد که در طول فرآیند ذخیره یا آموزش تغییر می‏یابند.
    هنگامیکه بردار ورودی S=(S1,S2,...Sn) به سلولهای حسگر اعمال می‏شود، این بردار به یک بردار سلول انجمنی A نگاشته می‏شود. اگر *A مجموعه عناصر فعال یا غیر صفر بردار A تعریف شود. *A در شکل زیر نمایش داده شده است.


    برای تولید بردار خروجیP سلول پاسخ ([Response Cell) مقادیر وزنهای متصل به سلولهای انجمنی فعال را با یکدیگر جمع می‏کند. تنها عناصر غیر صفرکه *A را بوجود آورده‎اند در این جمع تاثیر می‏گذارند. بنابراین بردار *A یک آدرس است و بردار P محتویات آن آدرس است. اگر بعد از اعمال بردار ورودی S ، محتویات P بایستی تغییر نمایند، تنها وزنهای متصل به سلولهای انجمنی در *A بایستی تنظیم شوند.
    از آنجاییکه یک پرسپترون بقدر کافی سلول انجمنی ندارد تا برای هر الگوی ورودی ممکن، یک سلول و یا یک گروه سلول انجمنی نگهداری شود، لذا توسط الگوهای ورودی مختلفی ممکن است سلولهای انجمنی ثابتی فعال شود. این مساله منجر به همپوشانی بین الگوهای ورودی مختلف می‏شود که در بعضـی شـرایط مشـکل ایجـاد می‏کند. برای توضیح بیشتر، شکل زیر را در نظر بگیرید.

    به طور مثال دو الگوی ورودی S1,S2 که دو مجموعه سلولهای انجمنی همپوشان A*1,A*2 را فعال می‏نمایند، مفروض می‎باشند. اگر مطلوب، یکسان بودن و یا نزدیک به هم بودن خروجی سلول پاسخ این دو بردار ورودی باشد در اینصورت همپوشانی مفید است.
    برای مثال، اگر پاسخ مناسب برای S1 ذخیره و به عبارت دیگر، یادگرفته شده باشد، با اعمال ورودی S2 تقریباً پاسخی نزدیک به همان پاسخ مناسب بدست می‏آید بدون آنکه نیازی به ذخیره یا تنظیم وزن برای باشد و تفاوت کمی بین دو پاسخ وجود دارد (اختلاف تنها در تفاضل بین W11 و W13 است). این ویژگی همان تعمیم است و مانند تسری دادن یک تجربه یاد گرفته شده به تجربه های دیگر است.
    اما اگر مطلوب آن باشد که بردار ورودی S2 یک پاسخ کاملاً متفاوت با پاسخ S1 تولید نماید، در اینصورت همپوشانی A*1∩A*2 مشکل ایجاد خواهد کرد. تنظیم تمامی وزنهای متصل به سلولهای A*2 برای تولید پاسخ مناسب به S2، بیشتر وزنهایی که در تولید خروجی S1 مشارکت دارند را دستخوش تغییر نامناسب می‏نماید. به این پدیده تداخل یادگیری (Learning Interference) گفته می‏شود و مانند حـالتی است که ارگانیسم بیولوژیکی تجربه‎ای را آموخته اما با یک تحریک تقریباً مشابه تحریکهای قبلی، باید جوابی متفاوت بدهد. البته توسط تکرار الگوریتم یادگیری یا ذخیره برای بردارهای ورودی متفاوت می‎توان تا حدودی بر تداخل یادگیری غلبه نمود زیرا تکرار موجب می‎شود مقادیر وزنهای مؤثر در سلولهای انجمنی همپوشان یا A*1∩A*2 کمتر شود و مقادیر وزنهای غیرهمپوشان موثرتر شوند.
    بطور خلاصه می‏توان نتیجه گرفت که، توانایی پرسپترون در عمل تعمیم به علت همپوشانی یا اشترک A*1,A*2 می‏باشد. اگر اشتراک تهی باشد، پاسخ به دو الگوی ورودی، مستقل از یکدیگر است و عمل تعمیم رخ نمی‎دهد. اگر اشتراک A*1,A*2 تهی نباشد آنگاه پاسخ برای هر دو ورودی تقریباً به طور یکسان و به صورت مجموع وزنهای متصل به سلولهای انجمنی همپوشان یا A*1∩A*2 می‎باشد. مفاهیم مخچه بر اساس مطالب فیزیولوژی- عصبی می‏باشد که برای آشنایی بیشتر به مرجع زیر مراجعه شود.
    Albus James Scara, 1971. "A theory of cerebellar functions", Mathematical Biosciences, Vol. 10 pp. 25-61.
    Albus J.S., 1972. "Theoretical and experimental aspects of a cerebellar model", PhD. Dissertation, University of Maryland.
    Albus J.S., 1975. "A new approach to manipulator control: The cerebellar model articulation controller (CMAC)", Trans. of the ASME: Journal of Dynamic Systems, Measurement, and Control, pp. 220-227, Sept..
    Albus J.S., 1975. "Data Storage in the Cerebellar Model Articulation Controller (CMAC)", Journal of Dynamic Systems, Measurement and Control, pp. 228-233, Sept..
    Albus J.S., 1981. "Brains, Behavior, and Robotics", BYTE Publications, Inc., Peterborough, pp. 352.
    بزودی در مورد این مدل بیشتر خواهم نوشت
    عکس های ضمیمه عکس های ضمیمه   
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مهر 1384
    محل زندگی
    اصفهان
    پست
    136
    به طور مثال دو الگوی ورودی S1,S2 که دو مجموعه سلولهای انجمنی همپوشان A*1,A*2 را فعال می‏نمایند، مفروض می‎باشند. اگر مطلوب، یکسان بودن و یا نزدیک به هم بودن خروجی سلول پاسخ این دو بردار ورودی باشد در اینصورت همپوشانی مفید است.
    به نظر من چیزی شبیه به الگوریتم تشخیص الگو در داده کاوی باشه از دوست عزیزمان می خوام که این مطلب را ادامه بده و اگر امکانش هست و نسخه ای از پایان نامه را دارید آن را در سایت قرار بدید.

  4. #4
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    به نظر من چیزی شبیه به الگوریتم تشخیص الگو در داده کاوی باشه
    این مدل معمولا برای تصمیم گیری استفاده میشه، مقاله هایی برای تشخیص الگو هم وجود داره که می توانید به آنها مراجعه کنید.شاید با خواندن این قسمت بیشتر با آن آشنا شوید

    مدل CMAC
    شکل ضمیمه بلوک دیاگرام مدل CMAC را نشان می‌دهد که به ازای ورودی یا ورودیهای مشخص، خروجی(ها‌ی) مناسب تولید می‌کند. متغیر یا متغیرهای ورودی به نواحی گسسته تقسیم یا کوانتیزه (Quantized) می‌شود، هر ناحیه گسسته آدرس سلولی از حافظه را مشخص می‌کند. با بازیابی اطلاعات ذخیره شده در سلولهای حافظه انجمنی انتخاب شده، می‌توان خروجی‌ را بدست آورد. خروجی به صورت مجموع اطلاعات ذخیره شده در سلولهای حافظه متناظر با ورودیها است. CMACبا تغییر محتویات سلولهای حافظه متناظر با ورودیها، خروجی صحیح را یاد می‌گیرد. برای هر ورودی ضریبی از مقدار تفاوت خروجی CMAC و خروجی مورد انتظار بعنوان ضریب یادگیری، به محتویات سلولهای حافظه انتخاب شده افزوده می‌شود.
    به طور کلی، مدل ریاضی CMAC از سه رابطه نگاشت زیر استفاده می‌نماید:
    نگاشت بردار ورودیهای کوانتیزه شده (S) به سلولهای انجمنی A
    S->A
    نگاشت سلولهای انجمنی به آدرس فیزیکی حافظهP
    A->P
    نگاشت آدرس فیزیکی حافظه به خروجی مدل مخچه Y
    P->Y


    معماری CMAC
    شکل ضمیمه مثالی از معماری CMAC با دو متغیر ورودی و می‌باشد. هر متغیر ورودی به چندین ناحیه گسسته از فضای ورودی بنام بلوک تقسیم می‌شود، در مثال ذکرشده پنج بلوک موجود است. اگر هر بلوک به اندازه فاصله کوچکی بنام عنصر (Element) شیفت یابد بلوکهای جدیدی در لایه‌ها یا سطرهای مختلف بوجود می‌آیند. مثلاً برای بلوکهای A0,B0,C0,D0 مربوط به متغیر ورودی بلوکهای E0,F0,G0,H0,I0 در لایه بعدی و برای بلوکهای A1,B1,C1,D1 بلوکهای E1,F1,G1,H1,I1 برای متغیر ایجاد می‌شود به همین ترتیب بلوکهای جدیدی مانند J0,K0,L0,M0,N0 در لایه‌ها یا سطرهای دیگر نیز پدید می‎آیند. مساحتی که توسط نواحی تقسیم شده متغیرهای ورودی بدست می‌آید بنام فوق‌مکعب نامیده می‌شود، به طور مثال فوق‌مکعبهای‌C1,B0 و D1,B0. هر فوق‌مکعب (Hyper Cube) یک سلول حافظه برای ذخیره و بازیابی اطلاعات یا وزنها می‌باشد.
    در مدل CMAC فقط بلوکهای موجود در لایه‌های متناظر تشکیل فوق‌مکعب می‌دهند، به طور مثال امکان وجود فوق‌مکعب F1,A0 نمی‌باشد زیرا A0 از لایه اول متغیر ورودی S1 ولی F1 از لایه دوم S2 می‌باشد. برای وضوح بیشتر پارامترهای موجود در شبکه CMAC را می‌توان به صورت زیر تعریف نمود:
    Nv: تعداد متغیرهای ورودیS1 ,S2)
    Nb: تعداد بلوک‍ها در یک لایه (پنج عدد)،
    Ne: تعداد لایه‌ها یا تعداد سطرها، تعداد عنصرهای کامل که در یک بلوک جای می‌گیرند (سه عدد)
    S:بردار ورودی، به طور مثال {4و7}= S1 ,S2 }
    A:سلولهای انجمنی و یا فوق‌مکعبها، به طور مثال {H1,G0 و یا L1,K0،
    P: آدرس فوق‌مکعب از مجموعه A، و
    Y:خروجی متناظر با S ، یا مجموع اطلاعات ذخیره شده در فوق‌مکعبهایی که S را می‌پوشانند.

    عکس های ضمیمه عکس های ضمیمه   
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  5. #5
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    نگاشت خروجی
    خروجی متناظر با ورودیها به صورت اطلاعات یا وزنهایی در Ne سلول حافظه انجمنی و یا Ne فوق‌‌مکعب از مجموعه A ذخیره شده‌اند. برای بدست آوردن خروجی(ها) از رابطه زیر استفاده می‌شود:
    که در آن S یک حالت ورودی مشخص، M حجم حافظه و برابر تعداد فوق‌مکعبها می‌باشد، و W بردار وزنها و یا بعبارت دیگراطلاعات ذخیره شده در حافظه‌ها می‌باشد و اگر محل حافظه j توسط یکی از فوق‌مکعبهای حالت ورودی S پوشانده شود ( aj( S برابر یک، در غیر این صورت برابر صفر می‌باشد.

    الگوریتم یادگیری
    در مدل CMAC از روش یادگیری با مربی (Supervised Learning) برای تنظیم وزنهای ذخیره شده در سلولهای حافظه استفاده می‌شود. یادگیری به صورت تکراری (Iterative) و مبتنی بر کمینه نمودن خطای سراسری می‌باشد از این نظر شبیه الگوریتم پس انتشار استاندارد می‎باشد. الگوریتم یادگیری دو مرحله دارد: 1- مرحله پیشخور: یعنی اعمال ورودی و بدست آوردن خروجی و 2- مرحله پسخور یا تغییر و تنظیم وزنها با توجه به خروجی بدست آمده و خروجی مورد نظر.
    فرمول2
    که در آن α نرخ یادگیری است بطوریکه . مقادیر( α<1 و α>0 )نزدیک به یک در بعضی شرایط می‌تواند باعث ناپایداری شود.( ŷ( S مقدار خروجی یا پاسخ مورد انتظار ، Neتعداد عنصرها ، و مقدار داخل پرانتز نیز معادل خطا برای نمونه آموزشی می‌باشد. خطا در ( a( S ضرب می‌شود تا فقط وزن محلهای حافظه که توسط فوق‌مکعبهای ورودی پوشانده می‌شود، تنظیم شوند.
    در مورد الگوریتم یادگیری به نکات زیر می‌توان اشاره نمود:
    1- قابلیت یادگیری یا شناسایی: شبکه با توجه به داده‌های ورودی، توانایی تنظیم وزنهای حافظه را دارد و شرایط جدید را یاد می‌گیرد و تجربه می‌کند بطوریکه با اعمال ورودیهای جدید خروجی مناسب تولید می‌نماید. با استفاده از قضیه Kolmogorov می‌توان اثبات نمود که مدل CMAC را می‌توان بعنوان یک کلاس عمومی برای تقریب‌زدن هر تابع و مدلی – از جمله پیش‌بینی وضعیت آینده سری زمانی - استفاده کرد [Cotter and Guillerm 1992].
    2- قابلیت تعمیم‌پذیری: اگر به شبکه ورودیهایی اعمال شود که تا به حال شبکه برای آن ورودیها آموزش نیافته باشد و یا به عبارت دیگر الگوریتم یادگیری برای آن ورودی خاص بکار نرفته باشد، شبکه بتواند به طور مناسب خروجی را برای ورودیهای مورد نظر تولید نماید. مدل CMAC با تقسیم نمودن فضای ورودیها به بلوکها و استفاده از تعداد لایه‌های مناسب (عنصرها) قابلیت تعمیم‌پذیری قابل قبولی دارد [Kolcz and Allinson 1999], [Gonzalez-Serrano et al 1998]. جهت تعمیم‌پذیری مناسب به نکات زیر باید توجه نمود: 1- کافی و اندازه بودن داده‌های ورودی [Wasserman 1993]، 2- استفاده از معماری مناسب شبکه (تعداد کافی بلوکها و لایه‌ها) و 3- پیچیده بودن مدلی که قصد تقریب زدن آن را داریم.

    در ادامه نمونه کدی از پیاده سازی CMAC پایه آورده شده ، که بعدا در مورد پیاده سازی و کد ضمیمه توضیح خواهم داد. (پیاده سازی توسط مهندس خادمی صورت گرفته)




    عکس های ضمیمه عکس های ضمیمه   
    فایل های ضمیمه فایل های ضمیمه
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مهر 1384
    محل زندگی
    اصفهان
    پست
    136
    جناب whitehat همچنان منتظر ادامه موضوع هستم.
    در ضمن لطف کنید و بگید چه کاری را با این الگوریتم میشه انجام داد که با شبکه عصبی نشه یا مشکل باشه. بعبارتی مزیت این الگوریتم چیست؟

  7. #7
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175

    مهمترین مزایا و معایب مدل مخچه

    در ضمن لطف کنید و بگید چه کاری را با این الگوریتم میشه انجام داد که با شبکه عصبی نشه یا مشکل باشه. بعبارتی مزیت این الگوریتم چیست؟
    مهمترین مزایای CMAC
    1. به علت استفاده از جدول جستجو پیاده سازی ساده ای دارد
    2. سرعت یادگیری بالایی دارد و دارای همگرایی سریع است
    3. دارای همگرایی ضمانت شده است
    4. مدل CMAC برای همگرا شدن به سمت پاسخ مورد انتظار نیاز به تکرار زیاد ندارد. زیرا دارای الگوریتم آموزش و یادگیری سریعی است. بنابراین برای پیاده سازی کاربردهای بلادرنگ و Online مناسب است.دلیل افزایش سرعت الگوریتم یادگیری CMAC در این است که در هنگام یادگیری مانند شبکه های عصبی MLP وزن تمام محلهای حافظه تغییر نمی کند بلکه فقط وزن محلهای حافظه فعال شده (فوق مکعب ها) متناسب با ورودی ها تغییر می یابد.
    5. مشکل خطای کمینه نسبی ندارد و همیشه بهترین جواب و جواب مطلوب را بدست می آورد.
    6. تعداد پارامترهای آن اندک است (فقط تعداد بلوکها، تعداد لایه ها و نرخ یادگیری).
    7. با استفاده از تعداد مناسب بلوکها و لایه ها، دارای دقت شناسایی بالایی است.
    مهمترین معایب مدل CMAC
    1. بردار ورودی توسط تعدادی سلول انجمنی به خروجی نگاشت شده است و یک مسیر مستقیم مابین ورودی ها و خروجی وجود ندارد. در نتیجه مانند شبکه های عصبی مانند MLP با اعمال ورودی های مقیاس شده که شبکه عصبی آنها را ندیده است، خروجی مقیاس شده بدست نمی آید مگر اینکه مدل CMAC برای زوج ورودی - خروجی مقیاس شده آموزش یافته باشد.
    2. CMAC نیاز به تعداد زوج ورودی خروجی زیادی برای آموزش شبکه دارد به خصوص زمانی که تعداد بلوک و لایه ها زیاد باشد.
    3. اگر تعداد متغیر های ورودی زیاد شود حجم حافظه به صورت نمایی افزایش می یابد و پیاده‌سازی نرم افزاری و سخت افزاری آن بسیار مشکل و در بعضی مواقع امکان پذیر نمی شود.
    برای کاهش حجم حافظه از توابع درهم ساز برای نگاشت فضای سلولهای انجمنی به فضای حافظه کوچکتری به نام استفاده می شود. اگر چه با استفاده از توابع درهم ساز ممکن است چندین محل از حافظه در به یک محل از حافظه نگاشت شود و در اصطلاح برخورد رخ دهد و باعث کاهش دقت در خروجی شود. روش دیگر کاهش حجم حافظه استفاده از ساختار CMAC سلسله مراتبی است.
    4- در بعضی از مسائل این مدل باعث ناپایداری سیستم می شود.
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  8. #8
    نقل قول نوشته شده توسط whitehat مشاهده تاپیک
    مهمترین معایب مدل CMAC
    به نظر من

    5- در تست ضعیف تر از شیکه های عصبی معمول (MLP , RBF) عمل میکند.

    برای توضیح بیشتر یک نمونه کد ضمیمه میکنم که با نرم افزار متلب نوشته شده و قابلیت تعریف شبکه CMAC با پارامترهای دلخواه (لایه و بلوک) رو داره.من حتی بیشتر پیش رفتم و شبکه CMAC رو با الگوریتم RLS آموزش دادم تا احتیاجی به نرخ آموزش نباشه.شبکه CMAC-RLS حداکثر با 3 یا 4 بار آموزش به وزنهای مطلوب همگرا میشه ولی متاسفانه در تست اصلا خوب عمل نمیکنه(مانند CMAC استاندارد).سیستمی که در اینجا مورد شناسایی قرار گرفته تابع آشوبناک Mackey-Glass هست.هر جور که دوست دارید از کدها میتونید استفاده کنید.

    نتیجه گیری من اشتباهه؟
    فایل های ضمیمه فایل های ضمیمه

  9. #9

    نقل قول: CMAC یا مدل ریاضی مخچه انسان، چیست؟

    با سلام
    آیا با نرم افزار متلب میتوان الگوریتم های مانند desیا 1_shaرا پیاده سازی کرد ،اگر این کار با سی شارپ باشد چه مزیتی دارد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •