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

پاسخ و راهنمایی اول:
برای پاسخ به این سوال، بیشتر اطلاعات درباره دقیقاً چه نوع شبکه عصبی را به کار می برید و برای چه مسئله ای از آن استفاده می کنید، لازم است. با این حال، بله، نرمال سازی داده ها می تواند بسیار مهم باشد. نرمال سازی داده ها به معنای تبدیل داده های ورودی به یک مقیاس یکسان است، که باعث افزایش سرعت آموزش و بهبود عملکرد شبکه می شود. در واقع، وقتی که مقادیر داده های ورودی به شبکه بسیار بزرگ یا بسیار کوچک هستند، می تواند باعث کاهش سرعت آموزش و بروز مشکلاتی در شبکه شود.
بنابراین، پیشنهاد می شود که قبل از اعمال داده ها به شبکه، آن ها را نرمال کنید. نوع نرمال سازی داده ها وابسته به نوع شبکه عصبی و مسئله ای است که می خواهید حل کنید. برای مثال، اگر از شبکه های با هسته خطی مانند شبکه عصبی پرسپترون چند لایه (MLP) یا شبکه های پیچشی (CNN) استفاده می کنید، معمولاً استفاده از نرمال سازی Min-Max یا Z-score می تواند مفید باشد. در هر صورت، برای رفع مشکلات دقت کم، می توانید عوامل دیگری را نیز بررسی کنید، مانند تعداد نورون ها در لایه های مختلف شبکه، نوع فانکشن فعال سازی، تعداد داده های آموزش، تعداد اپوک ها و سایر پارامترهای شبکه عصبی.
همچنین بررسی داده های ورودی و کیفیت آن ها نیز می تواند به بهبود دقت شبکه کمک کند. به طور کلی، برای رفع مشکلات دقت کم در شبکه عصبی، لازم است تمامی عوامل مربوط به آموزش شبکه را به دقت بررسی کنید و نکات بهبود آن ها را اعمال کنید.

پاسخ و راهنمایی دوم:
نرمال سازی داده ها می تواند برای داده های ورودی و خروجی مفید باشد، ولی در بسیاری از موارد، نرمال سازی داده های ورودی مهمتر است. دلیل آن این است که داده های ورودی معمولاً در محدوده های مختلفی قرار دارند و این باعث می شود که شبکه عصبی در نتیجه گیری خود تمایل به توجه به بعضی از ویژگی ها داشته باشد و بعضی دیگر را نادیده بگیرد.
با نرمال سازی داده های ورودی، می توانید تفاوت های موجود در محدوده های داده ها را برطرف کنید و همه داده ها رابه مقیاس یکسان تبدیل کنید. در نتیجه، شبکه عصبی می تواند بهتر درک کند که هر ویژگی چه تأثیری بر روی خروجی دارد و به طور کلی، می تواند بهبود عملکرد شبکه را به دنبال داشته باشد.
اما در برخی موارد، ممکن است نرمال سازی داده های خروجی هم مفید باشد، به خصوص اگر مقادیر خروجی بسیار بزرگ یا بسیار کوچک باشند و یا مقادیر خروجی در محدوده های مختلفی باشد. در چنین مواردی، نرمال سازی داده های خروجی می تواند بهبود عملکرد شبکه را به دنبال داشود.
به طور کلی، در هر مورد، بسته به نوع مسئله و نوع شبکه عصبی، ممکن است نرمال سازی داده های ورودی و یا خروجی مفید باشد. برای تعیین نوع نرمال سازی مناسب، می توانید از روش های مختلفی مانند Min-Max، Z-score، Log-transform و غیره استفاده کنید و با تجربه بیشتر، به روش مناسب برای مسئله خود برسید.
همچنین بسته به نوع مسئله، ممکن است نیاز به اعمال تغییراتی برای داده های خروجی داشته باشید، مانند تبدیل ویژگی های احتمالی به بردارهای باینری، تغییر دامنه مقادیر خروجی و غیره. در هر صورت، برای اعمال نرمال سازی داده ها، باید به دقت به نوع مسئله و شبکه عصبی خود توجه کرده و براساس آن تصمیم بگیرید که داده های ورودی، خروجی یا هر دو نوع داده را نرمال کنید.