Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   شبکه های عصبی (Neural Networks) (http://artificial.ir/intelligence/forum10.html)
-   -   نرمال سازی (http://artificial.ir/intelligence/thread10988.html)

ostad20 ۰۵-۱۳-۱۳۹۱ ۱۱:۵۶ بعد از ظهر

نرمال سازی
 
سلام
میخواستم بدون چطور داده ها را نرمال میکنند
آیا هر بردار ورودی باید به صورت جداگانه نرمال شود؟
مثلا یک بردار ورودی به اندازه 3 در 1 داریم و ازین بردار ها به تعداد 10 عدد موجود است
حال این سوال برای من مطرح است که وقتی تمام داده ها به صورت دسته ای به شبکه اعمال می شود یا این بردارها به صورت مجزا نرمال میشوند یا خیر؟
یعنی باید داده های هر بردار به صورت مجزا از دیگری نرمال شود مثلا 3 سطر هر بردار نرمال شود و بردار بعدی نیز به همین صورت نرمال شود یا اینکه مثلا سطر اول 10 بردار با هم و سطر دوم 10 بردار با هم نرمال شوند؟
خواهشا کمکم کنید

mahdiii ۰۵-۱۴-۱۳۹۱ ۰۲:۴۲ قبل از ظهر

تا اونجاییکه من میدونم هر یک از داده ها باید به صورت مجزا نرمال شوند. یعنی اگر داده شما سه ویژگی یا همون مولفه دارد باید به صورت زیر نرمال شود. راستی در تمام مسائل لازم نیست داده ها نرمال شوند و بستگی به ماهیت داده ها و مسئله داره.
V./norm(V)
V برداری است با m مولفه. با این کار تمام مولفه های بردار V بر عدد ثابتی norm(V) تقسیم میشوند. پس از این کار اندازه یا طول بردار شما برابر با یک خواهد بود یعنی 1 = sqrt(sum(V.^2))

mahdiii ۰۵-۱۴-۱۳۹۱ ۰۳:۱۷ قبل از ظهر

بعضیا هم در مواردی تک تک مولفه های یک داده رو بر مجموع مولفه های همون داده تقسیم می کنن و این کارو برای تک تک داده ها می کنن بجای تقسیم بر نرمش. همچنین بعضی وقتا بر تفاضل بیشینه و کمینه هم تقسیم می کنن.

ostad20 ۰۵-۱۶-۱۳۹۱ ۰۲:۱۷ بعد از ظهر

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

سوال دیگه که برام پیش آماده این است
چطور میتونم مولفه های یک داده را به بازه منفی یک تا مثبت یک تبدیل کرد؟

شرمنده که 2 سوال دیگه ازتون پرسیدم
با تشکر

mahdiii ۰۵-۱۶-۱۳۹۱ ۱۰:۱۱ بعد از ظهر

آره. فقط ببین اشتباه نکن مثلا فرض کن داده های ما دارای سه مولفه هستند x,y,z. مثلا یه داده هستش 1,3,2 . اگه بخوای اندازه این بردارو بکنی 1 که همون میشه یه بردار در فضا با طول یک می تونی نرم اونو به دست بیاری که میشه تک تک مولفه ها به توان دو و سپس مجموع و در نهایت جذر اون یعنی sqrt(14)
که اگه تک تک اعداد 1و3و2 رو بر این عدد تقسیم کنی، این بردار جدیدت دارای طول یکه. برای تستش فقط کافیه همون نرم این عددای جدیدو حساب کنی می بینی میشه یک. اما این چیزیکه شما گفتید می خوایید کل داده ها رو به صورتی نرمال کنین که دارای میانگین صفر و واریانس 1 بشه. بنابراین باید برای هر مولفه و برای تمام داده ها این کار انجام بشه یعنی مثلا x همه داده ها با هم میانگینشون حساب بشن و از x تک تک داده ها کم شن و برای واریانس هم همین طور که بعد تقسیم میشن. این کار باید برای y و z هم بشه. با این کار داده هات در هر بعد دارای میانگین صفر و واریانس یک خواهند بود. یعنی مرکز ثقل داده ات تو نقطه 0و0و0 قرار می گیره و میزان پراکندگی داده هاتم در هر بعد یکه.
برای سوال دومم فقط کافیه داده موردنظرتو بیشینشو و کمینشو پیدا کنی یعنی داده هات تو بازه a,b باشه و
فرمول زیرو اعمال کنی. a کمترین و b بیشترینه و x داده هاته که می خوای اونا رو تبدیل کنی. با این کار داده هات به صورت خطی بین -1 و 1 قرار می گیرن.
(2/(b-a))*(x-a)-1

mahdiii ۰۵-۱۶-۱۳۹۱ ۱۰:۱۶ بعد از ظهر

بعد از این همه فرمول نوشتن یاد نگرفتم اینجا باید چجوری نوشت که فرمولا چپه نشن هرکاری کردم درست نشد. یکی بیاد بهم یاد بده. فقط کافیه فرمولو کپی کنی و تو نوتپد پیست اونوقت درست میشه :-))

ostad20 ۰۵-۱۷-۱۳۹۱ ۱۱:۴۴ بعد از ظهر

سلام
بابت پاسخ گویی به سولات خیلی ممنون
دو سوال دیگه برام مطرح شده است
سوال اول
با توجه به پاسخ سولی که شما دادید من اینطور متوجه شدم جوابتان را
برای نرمال کردن با میانگین 1 و واریانس صفر مثلا فرض می کنیم که 4 بردار داریم که هر بردار دارای سه مولفه x, y,z است.برای محاسبه میانگین ابتدابه سراغ مولفه اول یعنی x در هر 4 بردار رفته و میانگین این 4 مولفه را حساب کرده و مولفه y این این کار را انجام میدهیم و به همین صورت برای مولفه z سپس برای محاسبه واریانس به سراغ 4 مولفه اول یعنی x رفته و واریانس آن را بدست می آوریم
منظور شما را درست متوجه شدم؟

سوال دوم
فرض کنیم بخواهیم داده هایی را به همین صورت نرمال کنیم، از طرفی فقط یک بردار 3 مولفه ای جهت ورود داریم، در این صورت چگونه این بردار به روش فوق نرمال می شود؟

mahdiii ۰۵-۱۸-۱۳۹۱ ۰۱:۱۸ قبل از ظهر

آره درست بود. برای سوال دوم اگه مثل قبل عمل کنیم. میانگین در هر بعد خود همون عدد میشه که با کم کردن به دست میاریم 0و0و0 که درسته چون یه نقطه داریم نرمالش میشه مبدا مختصات

ostad20 ۰۵-۱۸-۱۳۹۱ ۱۲:۰۶ بعد از ظهر

سلام
مرسی بابت پاسخ گویی
اگر در سوال دوم این کار را ورودی برای بردار انجام بدهیم آنگاه تمام ورودی های شبکه داری مولفه های صفر خواهد بود و برداری را که به شبکه بدهیم داری همین مقادیر صفر می باشد. و به این ترتیب نمی توان شبکه عصبی را آموزش داد چون تمام مولفه های هر بردار ورودی دارای مقدار صفر خواهد بود
من در شبکه عصبی قصد دارم ورودی هایی را به شبکه عصبی بدهم، ابتدا قصد دارم آن را نرمال کنم، این ورودی ها به صورت دسته ای وارد شبکه می شوند، مثلا 10 تا بردار که دارای سه مولفه هستد، بعد از آموزش شبکه قصد دارم نتیجه عدد بدست آمده را در یک کد دیگر قرار دهم و به تولید داده هایی اقدام نمایم که داده های تولید شده در این کد جدید به عنوان ورودی به شبکه عصبی دیگر مورد استفاده قرار میگیرد ولی این بار مقادیر ورودی به شبکه به صورت تک بردار خواهد بود نه به صورت دسته ای یعنی هر بار ورودی به شبکه یک بردار سه مولف ای می باشد، برای این ورودی جدید نیز باید داده ها نرمال شوند اما نمیدانم به چه صورت آن را باید نرمال کنم؟
یعنی نمیدانم در هر دو شبکه ای که قصد دارم آن را مورد استفاده قرار دهم چطور داده ها را نرمال کنم و در هر دو شبکه آن را مورد استفاده قرار دهم.
بنابراین از شما تقاضا دارم با توجه به توضیحات فوق بهترین کار را که برای نرمال سازی می توان انجام داد و در هر دو شبکه به طور یکسان اعمال کرد به من پیشنهاد دهید
با تشکر
شرمنده بابت سوالات بسیاری که از شما پرسیدم

ostad20 ۰۵-۱۸-۱۳۹۱ ۰۷:۳۱ بعد از ظهر

سلام
یک سوال در مورد شبکه عصبی برام پیش آمده
اگر داده های ورودی را همانند روش اولی که گفتید نرمال کنیم (بر اساس اندازه بردار) با توجه به اینکه داده های حاصل از این نرمال سازی در بازه صفر تا مثبت یک قرار می گیرند اگر بخواهیم آن را به شبکه عصبی بدهیم آنگاه اگر از تابع tansig برای لایه پنهان استفاده کنیم آیا برای شبکه عصبی مشکلی پیش نمی آید؟ یا اینکه باید طور دیگری نرمال سازی را انجام داد؟
با تشکر


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۶:۴۷ بعد از ظهر ميباشد.

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