ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2013/08/30
    مشهد
    8
    0

    چگونگی تعیین مقدار پارامتر epoch

    سلام دوستان
    من می خواستم بدونم مقدار پارامتر epoch در train شبکه عصبی بر چه اساسی تعیین میشه؟
    اگر دیگران توانستند
    ناامید نباش
    تو هم می توانی، اگر توانستی
    مغرور نباش
    دیگران نیز می توانند...
  2. #2
    2011/07/28
    کرمانشاه
    453
    10

    پاسخ : چگونگی تعیین مقدار پارامتر epoch

    در هر بار فرایند Training در یک شبکه عصبی همه داده های آموزشی به شبکه اعمال و وزنهای شبکه اصلاح شده و شرط خاتمه اموزش که معمولا میزان خطا برای داده های تست است بررسی میشود. که این میشود یک epoch حال فرض کنید که هیچگاه شبکه به دقت دلخواه ما نرسد برای خاتمه آموزش باید تعداد پارامتر epoch هم محدود باشد. تا آموزش شبکه در حلقه بینهایت نیفتد.
    تعیین این پارامتر یک رابطه دقیق و منظم ندراه ولی یکسری نکات تجربی باید در نظر گرفته بشه
    1- هرچقدر هم تعداد epoch ها زیاد باشد وقتی شبکه به همگرایی مورد نظر ما برسد فرایند آموزش متوقف میشود. در toolbox های اماده بدین گونه است و اگر خود شما کدنویسی کنید هم باید این نکته را رعایت کنید.
    2- اگر تغییرات خطا در هر epoch رو بصورت یک منحنی در نظر بگیریم اگر نرخ تغییرات کاهشی با سرعت مناسب ما باشد میتوانیم تعداد epoch ها را زیادتر کنیم. ولی اگر منحنی تغییرات خطا تقریبا مسطح باشد افزایش تعداد epoch ها ممکنه باعث overfitting بشه.
    3- به عنوان یک قانون کلی هرچه تعداد داده ها را بیشتر کنیم تعداد epoch ها را میتوانیم کمتر کنیم.
    4- و نیز هرچه ابعاد شبکه بزرگتر باشد ( در دو شبکه با تعداد داده های آموزشی یکسان) تعداد epoch ها بهتر است بیشتر باشد.
    مهم نیست چه مدرکى دارید
    مهم این است که چه درکى دارید . . .
  3. #3
    2013/08/30
    مشهد
    8
    0

    پاسخ : چگونگی تعیین مقدار پارامتر epoch

    خیلی ممنون از راهنماییتون.خیلی مفید بود. :nerd:
    فقط من مورد دوم رو خیلی خوب متوجه نشدم.اگه شبکه بعد از آموزش کافی متوقف میشه پس چرا مقدار زیادepochباعث آورفیتینگ میشه؟؟ شبکه من پرسپترون3لایه است.ماتریس ورودیش9در80هست. مقدارepochرو3500دادم.توی یکی از اجراهابعداز343باراجرامتوقف شد.نمودار خطاش در تکرار111به کمترین مقدارخطارسیده.تا این تکرار به صورت نزولی رفته وبه بعدش به صورت تقریبا زیگزاگ صعودی با شیب کم رفته.
    مقدارشوبایدکم کنم؟؟
    اگر دیگران توانستند
    ناامید نباش
    تو هم می توانی، اگر توانستی
    مغرور نباش
    دیگران نیز می توانند...
  4. #4
    2011/07/28
    کرمانشاه
    453
    10

    پاسخ : چگونگی تعیین مقدار پارامتر epoch

    در مورد بند دوم باید بگم که زمانی که این حالت اتفاق میفته وزنهای شبکه بیشتر داده های آموزشی رو یاد میگیرند و در حالی که خروجی مناسبی برای داده های آموزشی و تست مورد استفاده دارند در مورد داده های دیگر که ممکن است بعدا به شبکه اعمال شوند خروجی مناسبی ارائه ندهند و در این حالت میگوییم که over fitiingرخ داده است. به همین خاطر بعد از اینکه خطا در طی فرایند آموزش تغییر نکرد. بهتر است اموزش متوقف شود.
    یعنی میفرمایید پارامترهای ورودی شبکه 9 و خروجی 1 عدد است. و تعداد داده های آموزشی 80 ؟
    این تعداد داده آموزشی برای شبکه 9 ورودی و یک خروجی فکر میکنم کم باشه و اگر نوع داده های شما طوریه که نمیتونید تعداد داده ها رو افزایش بدید. بهتره تعداد Epoch ها رو افزایش ندید چون همون طور که عرض کردم در چنین حالاتی یعنی شبکه با ابعاد بزرگ و تعداد داده های آموزشی کم احتمال اورفیتیگ زیاده.
    یک مثال برای درک بهتر موضوع میزنم
    فرض کنید شبکه ما میخواد تابع y=x^2 رو تقریب بزنه پس ما یک پارامتر ورودی داریم و یک پارامتر خروجی فرض کنید داده های اموزشی ما به قرار زیر باشند
    (2 , 4)
    (3 , 9)
    (2- , 4)
    (3- , 9)
    حال اگر یک شبکه mlp را برای این داده ها در نظر بگیریم اگر epoch های اموزش را خیلی زیاد کنیم تقریب تابع بصورت یکسری خطوط راست که نقاط مورد نظر را به هم وصل میکند خواهد شد. و با وجود اینکه برای این داده ها خطای بسیار کمی میدهد برای داده های دیگر خطاهای بیشتری را خواهد داد نسبت به حالت با epoch کمتر
    مثلا برای نقطه (0,0) در حالتی که فرایند اموزش خیلی تکرار شود خطا خیلی زیاد میشود ولی با تکرار کمتر داده های اموزشی در این نقطه خطای کمتری را خواهیم داشت.
    در ضمن شما وقتی در 343 اموزش شبکه متوقف شده epoch رو هر مقداری بزرگتر از اون بزارید هیچ تاثیری نداره
    مهم نیست چه مدرکى دارید
    مهم این است که چه درکى دارید . . .
  5. #5
    2011/03/12
    121
    1

    پاسخ : چگونگي تعيين مقدار پارامتر epoch

    نقل قول نوشته اصلی توسط e0l0h0a0m
    خيلي ممنون از راهنماييتون.خيلي مفيد بود. :nerd:
    فقط من مورد دوم رو خيلي خوب متوجه نشدم.اگه شبکه بعد از آموزش کافي متوقف ميشه پس چرا مقدار زيادepochباعث آورفيتينگ ميشه؟؟ شبکه من پرسپترون3لايه است.ماتريس وروديش9در80هست. مقدارepochرو3500دادم.توي يکي از اجراهابعداز343باراجرامتوقف شد.نمودار خطاش در تکرار111به کمترين مقدارخطارسيده.تا اين تکرار به صورت نزولي رفته وبه بعدش به صورت تقريبا زيگزاگ صعودي با شيب کم رفته.
    مقدارشوبايدکم کنم؟؟
    همونطور که ميدونيد فرآيند مينيمم سازي خطا يک تابع هدف هست که بايد بهينه سازي بشه ، تو اين بهينه سازي شما وقتي به مينمم Global رسيديد ديگه نيازي به ادامه ي آموزش وجود نداره که اين رو وقتي ميفهميم که مقدار خطا روند صعودي به خودش ميگيره

    در الگوريتم هايي آموزش اصلاح شده اي مثل VLR هم اصل تعيين پارامتري مثل نرخ آموزش (آلفا) بر اساس شيب خطا صورت ميگيره و در صورت افزايش خطا ، آموزش با شيب و نرخ کند صورت خواهد گرفت يا حتي متوقف ميشود. بنابراين اصل در مينمم کردن خطاست و در صورت تحقق اين شرط (بسته به ميزان دقت مورد نياز خود شما) ، ادامه ي فرآيند آموزش بيهوده و حتي مضرر (در صورت افزايش خطا و افتادن در فازهاي نوساني يا مينمم هاي محلي) خواهد بود.
  6. #6
    2013/08/30
    مشهد
    8
    0

    پاسخ : چگونگی تعیین مقدار پارامتر epoch

    خیییییییییلی ممنون. :smile:
    پس آورفیتینگ یعنی آموزش ما اونقدر زیاده که شبکه به عبارتی داده هارو حفظ می کنه.برا همین واسه داده های جدید خطا زیاده.
    پس یعنی آورفیتینگ در شبکه هایی که مقدارepochزیاد انتخاب شده و هیچگاه به دقت مورد نظر مانرسنداتفاق میفته.امادر شبکه هایی که در تکراری کمتر از مقدارepoch متوقف می شوند مقدار زیادepochایجاد مشکل نمی کنه؟؟
    :-/
    اگر دیگران توانستند
    ناامید نباش
    تو هم می توانی، اگر توانستی
    مغرور نباش
    دیگران نیز می توانند...
  7. #7
    2011/07/28
    کرمانشاه
    453
    10

    پاسخ : چگونگی تعیین مقدار پارامتر epoch

    بله یک راه حل کلی اینه که شما روی تعداد مراحل تکرار تمرکزی نداشته باشید
    و منحنی خطای شبکه رو بررسی کنید و هنگامی که خطا به حالت مناسب رسید اموزش متوقف بشه
    تعداد حداکثر epoch اصلا توی شبکه مهم نیست اما اینکه شبکه بعد از چند epoch به دقت مورد نظر ما
    میرسه یک پارامتر قابل تامله.
    و تنها سودی که ایجاد محدودیت مناسب در حداکثر epoch داره توقف اموزش و عدم افتادن در لوپ بینهایته
    مهم نیست چه مدرکى دارید
    مهم این است که چه درکى دارید . . .
نمایش نتایج: از 1 به 7 از 7

موضوعات مشابه

  1. تعیین پارامتر های شبکه ICA( کشور های استعماری) در ترکیب این شبکه با MLP
    توسط AI-bme در انجمن هوش مصنوعی و شبکه های عصبی
    پاسخ: 0
    آخرين نوشته: 2015/10/23, 13:14
  2. تعیین پارامتر های الگوریتم ICA
    توسط AI-bme در انجمن پردازش سيگنال و هوش محاسباتي
    پاسخ: 0
    آخرين نوشته: 2015/10/15, 01:52
  3. تعیین مقدار سلف
    توسط مهدی آقای نجفی در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 4
    آخرين نوشته: 2014/02/21, 21:31
  4. تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر
    توسط shaiigan در انجمن میکروکنترلرهای AVR
    پاسخ: 9
    آخرين نوشته: 2013/11/10, 14:23
  5. تعیین مقدار مقاومت ntc
    توسط s-amir در انجمن مفاهیم پایه برق و الکترونیک
    پاسخ: 0
    آخرين نوشته: 2010/09/28, 16:52

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

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