Artificial Intelligence - هوش مصنوعی  
انجمن را در گوگل محبوب کنيد :

بازگشت   Artificial Intelligence - هوش مصنوعی > متفرقه > نرم افزار MATLAB


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
 
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۱۲-۱۱-۱۳۹۰, ۰۵:۳۷ بعد از ظهر   #2 (لینک دائم)
Active users
 
آواتار mahdiii
 
تاريخ عضويت: اسفند ۱۳۸۸
محل سكونت: مشهد
پست ها: 355
تشكرها: 27
167 تشكر در 131 پست
My Mood: Khoshhal
پيش فرض

نقل قول:
نوشته اصلي بوسيله AlirezaJJ نمايش پست
سلام
برای یک تمرین احتیاج دارم که بردار ویژه های یک ماتریس با ابعاد 17000 در 17000 را بدست بیارم. اما متلب قادر به محاسبه برای ماتریسی با این ابعاد نیست و خطا در حافظه میده. یک روش تو ویکی پدیا پیدا کردم که کامل توضیح داده نشده. کسی می تونه تو این زمینه کمکم کنه؟!؟!
در ضمن این ماتریس اسپارسه ...
پیشاپیش ممنون و سپاسگذارم ...
من خودم برای شناسایی چهره به این مورد برخوردم. اونجا مثلا k تا تصویر داریم که ابعادش مثلا [n,m] هست که به صورت ستونی تبدیلش می کنیم میشه [n*m,1]. بعد این بردارهای ستونی که تعدادش k تا هستند کنار هم می گذاریم میشه [n*m,k] . بعد لازم میشه که ماتریس کواریانسش رو به دست بیاریم حالا اینجا اگه A' *A بکنیم با 'A*A با هم فرق می کنه.
بعدش هم در نهایت می خواهیم از این ماتریس کواریانس بردار ویژه و مقادیر ویژه شو به دست بیاریم. ماتریس کواریانس ما در اصل دارای ابعاد n*m,n*m خواهد بود که دارای اندازه بزرگی خواهد بود یعنی به تعداد پیکسلها . بنابراین کاری که میشه کرد اینه که بجای محاسبه 'A*A که ابعادش میشد n*m,n*m می تونیم A' *A را محاسبه کنیم که ابعادش میشه k*k که به دلیل اینکه مقدار k خیلی کمتر از تعداد پیکسلهاست مشکلمان حل میشه و به راحتی می تونیم مقادیر و بردارهای ویژه رو محاسبه کنیم برای این ماتریس k*k .
k مثلا 50 هستش .
حال باید برداهای ویژه به دست آمده( با ابعاد k*1 به تعداد k) رو یه جوری به بردارهای ویژه اولیه با ابعاد n*m,1 به تعداد k تبدیل کنیم. برای این کار هم به راحتی A را در بردارهای ویژه به دست آمده ضرب می کنیم. A گفتیم دارای ابعاد n*m,k بود و بردارهای ویژه هم k*k . با ضربشون بردارهای ویژه اصلی به دست میاد برای همون ماتریس کواریانس با ابعاد زیاد. یعنی بردارهای ویژه اصلی با ابعادn*m,k .
لازمه بگم که اگه شما از ماتریس کواریانس با ابعاد زیاد بردار ویژه شو به دست می اوردین ابعادش میشد n*m,n*m که بردارهای ویژه ما n*m,1 خواهد بود به تعداد n*m
اما با محاسبه بالا دیدیم که بردار ویژه نهایی شد n*m,k که به علت اینکه فرض کردیم k تصویر داریم که k عدد کوچکی نسبت به n*m است مشکلی نخواهیم داشت و همین تعداد بردار ویژه برای ما کفایت می کند. یک جور کاهش بعد داده ایم. باز اگه مشکلی بود بگید اگه بتونم توضیح میدم.
راستی برای هر ماتریسی تعداد نامتناهی می توانیم بردار ویژه در نظر بگیریم که ما دوست داریم بردار ویژه ای را برگزینیم که دارای شرط نرم یک باشد. اگه بردار ویژه هایی که تو زبان متلب محاسبه می کنید نرمشو محاسبه کنید می بینید همه یک هستند. بنابراین در اینجا پس از محاسبه بردارهای ویژه اصلی و نهایی که گفتم ابعادش n*m,k خواهد بود لازمه کاری کنیم که نرمشون یک بشه. برای این کار هم تمام مولفه های مربوط به یک بردار ویژه را تقسیم بر رادیکال مجموع مربعات تک تک مولفه های آن می کنیم. با این کار نرم آن به یک تبدیل میشه. این صحبتی که کردید در مورد اسپارس و خلوت نمی دونم چطوری میشه ازش استفاده کرد. به هر حال این تعداد بعد خیلی زیادن و باید از این راهی که گفتم برید.موفق باشید
mahdiii آفلاين است   پاسخ با نقل قول
از mahdiii تشكر كرده است:
AlirezaJJ (۱۲-۱۲-۱۳۹۰)
 



كاربران در حال ديدن تاپيک: 1 (0 عضو و 1 مهمان)
 

قوانين ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال




زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۴:۳۹ قبل از ظهر ميباشد.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

Teach and Learn at Hexib | Sponsored by www.Syavash.com and Product In Review

استفاده از مطالب انجمن در سایر سایت ها، تنها با ذکر انجمن هوش مصنوعي به عنوان منبع و لینک مستقیم به خود مطلب مجاز است

Inactive Reminders By Icora Web Design