مقدمه
شبکه های عصبی چند لایه پیش خور۱ به طور وسیعی د ر زمینه های متنوعی از قبیل طبقه بندی الگوها، پردازش تصاویر، تقریب توابع و … مورد استفاده قرار گرفته است.
الگوریتم یادگیری پس انتشار خطا۲، یکی از رایج ترین الگوریتم ها جهت آموزش شبکه های عصبی چند لایه پیش خور می باشد. این الگوریتم، تقریبی از الگوریتم بیشترین تنزل۳ می باشد و در چارچوب یادگیری عملکردی ۴ قرار می گیرد.
عمومیت یافتن الگوریتمBP ، بخاطر سادگی و کاربردهای موفقیت آمیزش در حل مسائل فنی- مهندسی می باشد.

علیرغم، موفقیت های کلی الگوریتم BP در یادگیری شبکه های عصبی چند لایه پیش خور هنوز، چندین مشکل اصلی وجود دارد:
– الگوریتم پس انتشار خطا، ممکن است به نقاط مینیمم محلی در فضای پارامتر، همگرا شود. بنابراین زمانی که الگوریتم BP همگرا می شود، نمی توان مطمئن شد که به یک جواب بهینه رسیده باشیم.

– سرعت همگرایی الگوریتم BP، خیلی آهسته است.
از این گذشته، همگرایی الگوریتم BP، به انتخاب مقادیر اولیه وزنهای شبکه، بردارهای بایاس و پارامترها موجود در الگوریتم، مانند نرخ یادگیری، وابسته است.
در این گزارش، با هدف بهبود الگوریتم BP، تکنیک های مختلفی ارائه شده است. نتایج شبیه سازیهای انجام شده نیز نشان می دهد، الگوریتم های پیشنهادی نسبت به الگوریتم استاندارد BP، از سرعت همگرایی بالاتری برخوردار هستند.
خلاصه ای از الگوریتم BP
از قانون یادگیری پس انتشار خطا (BP)، برای آموزش شبکه های عصبی چند لایه پیش خور که عموماً شبکه های چند لایه پرسپترون ۵ (MLP) هم نامیده می شود، استفاده می شود، استفاده می کنند. به عبارتی توپولوژی شبکه های MLP، با قانون یادگیری پس انتشار خطا تکمیل می شود. این قانون تقریبی از الگوریتم بیشترین نزول (S.D) است و در چارچوب یادگیری عملکردی قرار می گیرد.

بطور خلاصه، فرایند پس انتشار خطا از دو مسیر اصلی تشکیل می شود. مسیر رفت۶ و مسیر برگشت ۷ .
در مسیر رفت، یک الگوی آموزشی به شبکه اعمال می شود و تأثیرات آن از طریق لایه های میانی به لایه خروجی انتشار می یابد تا اینکه
_________________________________
۱٫ Multi-Layer Feedforward Neural Networks
2. Back-Propagation Algorithm
3. Steepest Descent (S.D)
4. Performance Learning
5. Multi Layer Perceptron
6. Forward Path
7. Backward Path
نهایتاً خروجی واقعی شبکه MLP، به دست می آید. در این مسیر، پارامترهای شبکه (ماتریس های وزن و بردارهای بایاس)، ثابت و بدون تغییر در نظر گرفته می شوند.

در مسیر برگشت، برعکس مسیر رفت، پارامترهای شبکه MLP تغییر و تنظیم می گردند. این تنظیمات بر اساس قانون یادگیری اصلاح خطا۱ انجام می گیرد. سیگنال خطا، رد لایه خروجی شبکه تشکیل می گردد. بردار خطا برابر با اختلاف بین پاسخ مطلوب و پاسخ واقعی شبکه می باشد. مقدار خطا، پس از محاسبه، در مسیر برگشت از لایه خروجی و از طریق لایه های شبکه به سمت پاسخ مطلوب حرکت کند.
در شبکه های MLP، هر نرون دارای یک تابع تحریک غیر خطی است که از ویژگی مشتق پذیری برخوردار است. در این حالت، ارتباط بین پارامترهای شبکه و سیگنال خطا، کاملاً پیچیده و و غیر خطی می باشد، بنابراین مشتقات جزئی نسبت به پارامترهای شبکه به راحتی قابل محاسبه نیستند. جهت محاسبه مشتقات از قانون زنجیره ای۲ معمول در جبر استفاده می شود.

فرمول بندی الگوریتم BP
الگوریتم یادگیری BP، بر اساس الگوریتم تقریبی SD است. تنظیم پارامترهای شبکه، مطابق با سیگنالهای خطا که بر اساس ارائه هر الگو به شبکه محاسبه می شود، صورت می گیرد.
الگوریتم بیشترین تنزل با معادلات زیر توصیف می شود:
(۱)
(۲)
به طوری WLji و bLj، پارامترهای نرون j ام در لایه iام است. α، نرخ یادگیری۲ و F، میانگین مربعات خطا می باشد.
(۳)
(۴)
(۵)
به طوریکه SLj(k)، حساسیت رفتار شبکه در لایه L ام است.

_________________________________
۱٫ Error-Correctting Learning Rule
2. Chain Rule
3. Learning Rate
معایب الگوریتم استاندارد پس انتشار خطا۱ (SBP)
الگوریتم BP، با فراهم آوردن روشی از نظر محاسباتی کارا، رنسانسی در شبکه های عصبی ایجاد نموده زیرا شبکه های MLP، با قانون یادگیری BP، بیشترین کاربرد را در حل مسائل فنی- مهندسی دارند.
با وجود، موفقیت های کلی این الگوریتم در یادگیری شبکه های عصبی چند لایه پیش خود، هنوز مشکلات اساسی نیز وجود دارد:
– اولاً سرعت همگرایی الگوریتم BP آهسته است.

همانطور که می دانیم، تغییرات ایجاد شده در پارامترهای شبکه (ماتریس های وزن و بردارهای بایاس)، پس از هر مرحله تکرار الگوریتم BP، به اندازه ، است، به طوریکه F، شاخص اجرایی، x پارامترهای شبکه و α، طول قدم یادگیری است.
از این، هر قدر طول قدم یادگیری، α، کوچکتر انتخاب گردد، تغییرات ایجاد شده در پارامترهای شبکه، پس از هر مرحله تکرار الگوریتم BP، کوچکتر خواهد بود، که این خود منجر به هموار گشتن مسیر حرت پارامترها به سمت مقادیر بهینه در فضای پارامترها می گردد. این مسئله موجب کندتر گشتن الگوریتم BP می گردد. بر عکس با افزایش طول قدم α، اگرچه نرخ یادگیری و سرعت یادگیری الگوریتم BP افزایش می یابد، لیکن تغییرات فاحشی در پارامترهای شکه از هر تکراربه تکرار بعد ایجاد می گردد، که گاهی اوقات موجب ناپایداری و نوسانی شدن شبکه می شود که به اصطلاح می گویند پارامترهای شبکه واگرا شده اند:
در شکل زیر، منحنی یادگیری شبکه برای جدا سازیالگوها در مسأله XOR، به ازای مقادیر مختلف نرخ یادگیری، نشان داده شده است. به ازای مقادیر کوچک، α، شبکه کند اما هموار، یاد نمی گیرد الگوهای XOR را از هم جدا نماید، ددر صورتی که به ازای ۹/۰= α شبکه واگرا می شود.

شکل (۱). منحنی یادگیری شبکه برای نرخ های یادگیری مختلف در مسأله XOR
– ثانیاً احتمالاً به دام افتادن شبکه در نقاط مینیمم محلی وجود دارد.
در شبکه های MLP، میانگین مجوز خطا، در حالت کلی خیلی پیچیده است و از تعداد زیادی نقطه اکسترمم در فضای پارامترهای شبکه برخوردار می باشد. بنابراین الگوریتم پس انتشار خطا با شروع از روی یک سری شرایط اولیه پارامترهای شبکه، به نقطه مینیمم سراسری و با شروع از یک مجموعه شرایط اولیه دیگر به تقاط مینیمم محلی در فضای پارامترها همگرا می گردد، بنابراین زمانی که الگوریتم BP همگرا می شود، نمی توان مطمئن شد که به یک جواب بهینه رسیده باشیم.

– ثالثاً: همگرايي الگوريتم BP، به يقين مقادير اوليه پارامترهاي شبكه عصبي MLP وابسته است، بطوري كه يك انتخاب خوب مي تواند كمك بزرگي در همگرايي سريعتر الگوريتم BP فراهم آورد. برعكس انتخاب اوليه نادرست پارامترهاي شبكه MLP، منجر به گير افتادن شبكه در نقاط مينيمم محلي در فضاي برداري پارامترهاي شبكه مي گردد كه اين خود منجر به اين مي شود كه شبكه خيلي زودتر از معمول به موضعي بيفتد كه منحني يادگيري شبكه براي تعداد بزرگي از دفعات تكرار، تغيير نكند.

به عنوان مثال، فرض مي كنيم مقدار اوليه پارامترهاي شبكه خيلي بزرگ باشند، در حالي كه مي دانيم توابع تبديل نرونها مخصوصاً در لايه هاي مياني از نوع زيگموئيد هستند. در اين حالت براي نرون i ام، اندازه ورودي تابع تبديل (ni) خيلي بزرگ مي باشد و خروجي نرون (ai) به مقدار ۱± ميل مي كند. لذا مشتق بردار خروجي شبكه، a ، خيلي كوچك مي باشد. فرض كنيم كه بايد مقدار واقعي ai، ۱ باشد يعني ti = 1، ليكن به خاطر انتخاب بر مقادير اوليه، ai = -1 گردد. در اين حالت خطاي حداكثر را داريم در حالي كه چون ai ≈ ۰ مي باشد تغييرات ناچيزي در پارامترهاي متناظر با نرون i ام داريم. اين چيزي است كه بيانگر رسيدن زودتر از معمول نرونها به حد اشباع خود مي باشند، جايي كه پاسخ واقعي با پاسخ شبكه كاملاً فرق دارد و زمان زيادي طول خواهد كشيد كه نرون از اين حالت خارج شود. از اين رو با پيشرفت پروسه يادگيري، پارامترهاي منتسب به نرورنهايي كه به مرز اشباع نرسيده اند، سريعتر تنظيم مي شوند، چرا كه سيگنال خطار گراديانهاي محلي از مقدار از اندازه بزرگتري برخوردار مي باشند. اين عمل منجر به كاهش در مجموع مربعات خطاي لحظه اي مي گردد و اگر در اين مرحله، نرونهاي به حد اشباع رسيده تغييري در وضعيت تحريكشان رخ ندهد، شبكه براي مدتي طولاني از يك شكل هموار منحني خطا برخوردار خواهدبود.
بهبود الگوريتم استاندارد پس انتشار خطا (SBP)

– الگوريتم BP از نوع دسته اي۱ (BBP)
الگوريتم استاندارد BP، بر اساس فرم الگو به الگو است، بدين ترتيب كه پارامترهاي شبكه پس از ارائه هريك از الگوهاي يادگيري كه عموماً بطور تصادفي انتخاب مي شوند، تنظيم مي گردند، اما در الگوريتم BBP، تنظيم پارامترهاي شبكه پس از اعمال تمامي ورودي ها صورت مي پذيرد. پردازش دسته اي موجب مي شود كه گراديانهاي محلي به گراديان محلي واقعي نزديكتر باشند و نهايتاً الگوريتم BP به الگوريتم بيشترين نزول نزديكتر گردد كه اين خود موجب مي شود همگرايي الگوريتم BP افزايش يابد.
در شكل زير مسئله XOR با متد الگوريتم BP به فرم دسته اي پياده شده است. به راحتي مي توان ديد كه الگوريتم BBP از سرعت همگرايي بالاتري به الگوريتم SBP برخوردار است.

شكل (۲). رفتار شبكه با الگوريتم BBP در مسأله XOR ( ـــ )
رفتار شبكه با الگوريتم SBP (0ـــ)

– روش ممنتم ۱ براي الگوريتم BP (MBP)
همانطور كه مشاهده شد، اگر نرخ يادگيري α، كوچك انتخاب شود، متد BP كه در واقع همان تقريب الگوريتم SD است، بسيار كند مي گردد. و اگر α، بزرگتر انتخاب شود، شبكه نوساني خواهد بود.
يك راه ساده و مؤثر كه عموماً جهت افزايش و بهبود نرخ يادگيري، استفاده مي شود- جايي كه خطر ناپايداري و نوساني شدن شبكه جلوگيري مي گردد- افزودن يك جمله ممنتم در الگوريتم تقريبي SD مي باشد، يعني به هر پارامتر از شبكه MLP، يك مقدار اينرسي يا اندازه حركت اضافه مي شود تا اينكه پارامتر مورد نظر در مسيري تمايل به تغيير داشته باشد كه كاهش تابع انرژي احساس شود.
الگوريتم يادگيري MBP با معادلات زير قابل توصيف است:
(۶)
(۷)
جايي كه (۱و۰) ، ترم ممنتم را نشان مي دهد و عموماً با نرخ ياديگيري به صورت زير رابطه دارد:
(۸)
معادلات فوق، ترم هاي اصلاحي پارامترهاي شبكه را از فيلتر پايين گذر عبور مي دهند واين يعني تغييرات با فركانس بالا(نوسانات شديد) فيلترمي شوند. شكل (۳)، مسأله XOR را كه به وسيله الگوريتم MBP، پياده شده است، نشان مي دهد. شبيه سازي نشان مي دهد كه الگوريتم MBP نسبت به الگوريتم استاندارد BP، از سرعت همگرايي بالاتري برخوردار است.

شكل(۳): رفتار شبكه با الگوريتم MBP درمسأله XOR (ــــ)
رفتار شبكه با الگوريتم SBP(.ــــ)
_______________________________
۱٫ Momentum
– نرخ يادگيري متغير۱ (VLR)
درالگوريتم BP استاندارد، نرخ يادگيري درطول فرآيند يادگيري ثابت نگه داشته مي شود. عملكرد الگوريتم به انتخاب مناسب نرخ يادگيري خيلي حساس مي باشد. اگر نرخ يادگيري خيلي بزرگ انتخاب شود ممكن است الگوريتم نوسان كرده وناپايدار شود. اگر نرخ يادگيري خيلي كوچك باشد زمان زيادي طول خواهد كشيد تا الگوريتم همگرا شود. انتخاب نرخ يادگيري اپتيمم قبل از يادگيري، عملي نبوده ودرحقيقت نرخ يادگيري اپتيمم به هنگام پروسه آموزش، همچنان كه الگوريتم برروي سطح خطا حركت مي كنددائماً تغيير مي كند.
اگر اجازه دهيم نرخ يادگيري بهنگام پروسه آموزش تغيير كند عملكرد الگوريتم BP استاندارد را مي توان بهبود بخشيد. نرخ يادگيري تطبيقي سعي مي كند كه نرخ يادگيري را تا آنجايي كه ممكن است و سيستم ناپايدار نشده است، افزايش دهد.
نرخ يادگيري تطبيقي نياز به تغييراتي در الگوريتم BP استاندارد دارد.
مراحل الگوريتم VLR، به طور خلاصه در زير بيان شده است:
VLR Algorithm
Initialize Nearal Neywork Weights and Biases.
Set Training Parameters.
for i = 1: N
; break, end if SSE <
Feed forward Path;
Backward Path;
Compute New Weights and Biases;

Compute new-SSE
if new-SSE > SSE * max – perf-inc
α = α * Lr-dec; % Learning Rate
δ = ۰ ; % Momentum Factor
else
if new-SSE < SSE
α = α * Lr-inc;
end

Compute New Weights and Biases
end
end

_______________________________
۱٫ Variable Learning Rate
معمولاً مقادير ۱٫۰۴، ۰٫۷ و ۱٫۰۵ به ترتيب براي ضرائب ۱ inc- perf- max، ۲ dec- Lr و ۳ inc- Lr در نظر گرفته مي شود.
در اين روش نرخ يادگيري به اندازه اي افزايش مي يابد كه موجب افزايش زياد در خطاهاي آموزش نگردد. بنابرين، يك نرخ يادگيري نزديك به بهينه بدست مي آيد.
الگوريتم VLR بر روي مسأله XOR پياده شده است. شبيه سازي نسان مي دهد، كه سرعت يادگيري اين الگوريتم را از الگوريتم SBP، بيشتر است.
نتايج شبيه سازي در شكل (۴) نشان داده شده است.

شكل (۴). – رفتار شبكه با الگوريتم VLR براي مسأله XOR ( ـــ )
رفتار شبكه با الگوريتم SBP (0 ـــ)
– تغييرات نرخ يادگيري (α) در كل فرآيند يادگيري براي مسأله XOR
در اين، خلاصه اي از نتايج مقالات مورد بررسي، جهت بهبود الگوريتم يادگيري پس انتشار خطا، ذكر مي گردد:
۱- الگوريتم BP، با وجود آنكه كاربردهاي فراواني دارد، متأسفانه نرخ همگرايي آن بسيار پائين است. اگر از نرخ يادگيري كوچك استفاده شود، اين مسأله مي تواند سبب نرخ پائين همگرايي. به منظور جلوگيري از اين پديده نامطلوب، يك راه حل، استفاده از نرخ يادگيري مي باشد. اين راه حل بويژه در مواقعي كه در نقطه اي از سطح قرار داريم كه شيب تندي دارد، نامطلوب بوده و مي تواند باعث واگرايي شبكه شود.
_________________________________
۱٫ Maximum Performance Increase
2. Learning Rate decrease
3. Learning Rate increase
موقعيكه شكل سطح خطا از سطح خطاي درجه دوم خيلي فاصله داشته باشد، در اينصورت سطح خطا، شامل مناطق با شيب تند زيادي خواهد بود. در اين صورت الگوريتم BP با نرخ يادگيري ثابت داراي راندمان پائيني مي باشد، دليل اين مسأله اين است كه به منظور جلوگيري از نوسان در مناطقي كه سطح خطا داراي شيب زيادي است بايستي نرخ يادگيري كوچك انتخا شود، در ننيجه بردار وزن، موقعي كه در مناطق مسطح قرار داريم به دليل كوچك بودن گراديان، خيلي كند حركت خواهد كرد.

بنابراين نياز به يك الگوريتم يادگيري كارآمد مي باشد تا بتواند بطور پويا نرخ يادگيري را تغيير دهد.
– الگوريتم پس انتشار خطاي تطبيقي۱ (ABP)
در الگوريتم پس انتشار خطاي تطبيقي، نرخ يادگيري، بطور، اتوماتيك و بر اساس خطاي آموزش تنظيم مي گردد. ]۱[
ايده اصلي از الگوريتم پس انتشار خطاي تطبيقي آن است كه:
– اگر علامتهاي گراديان ، در طول دو تكرار متوالي مخالف هم باشد، دلالت بر اين امر دارد كه خطاي جديد نسبت به خطاي قبلي، افزايش يافته است و تكرار جاري با ارزش نيست.
لذا نرخ يادگيري را بايستي كاهش داد.
– اگر علامتهاي امتدادگراديان در طول دو تكرار متوالي، يكسان باشند، دليل بر اين امر است كه نرخ تنزل آهسته است و نرخ يادگيري را بايستي افزايش داد.
ايده فوق را مي توان با معادلات زير، توصيف كرد:
(۸)
به طوري كه را به صورت زير، تعريف مي شود:
(۹)
مشخص است كه زماني كه λ>0 ، نرخ يادگيري افزايش مي يابد.
الگوريتم BP تطبيقي با معادلات زير بيان مي شود:
(۱۰)
شكل (۵)، رفتار شبكه را با قانون يادگيري فوق، جهت جداسازي الگئهاي XOR، نشان مي دهد.
_________________________________
۱٫ Adaptive Back-Propagation Algorithm

شكل (۵). منحني يادگيري الگوريتم BP تطبيقي براي XOR
– الگوريتم پس انتشار خطا با نرخ يادگيري و ضريب ممنتم تطبيقي۱ (BPALM)
در اين الگوريتم نرخ يادگيري و ضريب ممنتم در هر سيكل به طور تطبيقي تنظيم مي شوند تا به همگرايي الگوريتم BP استاندارد بهبود بخشيده شود]۲[.
در ابتدا، فاكتور نسبي er (k)، به صورت زير تعريف مي شود:
(۱۱)
اصلاح و تنظيمات نرخ يادگيري و ضريب ممنتم به صورت زير انجام مي گيرد:
Case 1: for er (k) < 0
α (k+1) = α (k) [1+ue –er(k)] ; uε (۰,۱) (۱۲a)
δ (k+1) = δ (k) [1+ve –er(k)] ; vε (۰,۱) (۱۲b)

Case 2: for er (k) ≥ ۰
α (k+1) = α (k) [1-ue –er(k)] ; uε (۰,۱) (۱۳a)
δ (k+1) = δ (k) [1-ve –er(k)] ; vε (۰,۱) (۱۳b)

_________________________________
۱٫ Back- Propagation with Adaptive Learning rate and Momentum term
شكل زير، عملكرد شبكه را با قانون يادگيري BPALM، جهت جداسازي الگوهاي XOR، نشان مي دهد.

شكل(۶). – منحني يادگيري الگوريتم BPALM در مسأله XOR
– تغييرات نرخ يادگيري
– تغييرات ضريب ممنتم
– تغييرات علامت۱
بر اساس اين الگوريتم، اگر علامت مشتق شاخص اجرايي نسبت به پارامترهاي شبكه دردوتكرار متوالي تغيير نكند، نرخ يادگيري افزايش مي يابد و در غير اينصورت، نرخ يادگيري كاهش مي يابد. [۶]
و اين يعني:
(۱۴ a) αji(k) = αji(k-1).u if
(14 b) αji(k) = αji(k-1).u if
آبگاه، اصلاح وزن بر اساس معادله زير، انجام مي گيرد:
(۱۵)
معموماً مقادير ۱٫۱-۱٫۳ براي u و ۰٫۷-۰٫۹ براي d، به كار برده مي شود.
_________________________________
۱٫ Sign Changes
بر اساس اين الگوريتم، اگر علامت مشتق شاخص اجرايي، نسبت به پارامترهاي شبكه در دوتكرارمتوالي تغيير نكند و نرخ يادگيري از مقدار حداكثري، كمتر باشد، آنگاه افزودن يك مقدار ثابت به نرخ يادگيري، نرخ يادگيري افزتيش مي يابد. اگر علامت مشتق شاخص اجرايي نسبت به پارامترهاي شبكه دردوتكرارمتوالي تغيير كند، نرخ يادگيري با ضرب شدن در مقدار كوچكتر، كاهش مي يلبد و در غير اينصورت تغييري در نرخ يادگيري نخواهيم داشت. [۶]
عبارت فوق را مي توان با روابط زير توصيف كرد:
(۱۶ a) αji(k) = αji(k-1)+u if
(16 b) αji(k) = αji(k-1).d if
(16 c) αji(k) = αji(k-1) if
شكل زير، منحني يادگيري الگوريتم فوق را براي جداسازي الگوهاي XOR، نشان مي دهد.

شكل (۷). منحني يادگيري الگوريتم Delta Bar Delta Rule در مسأله XOR
– الگوريتم يادگيري Super SAB
اين الگوريتم، مانند الگوريتم قبل مي باشد با اين تفاوت كه اگر علامت تغييرات مشتق شاخص اجرايي نسبت به پارامترهاي شبكه دردوتكرار متوالي تغيير نكند و نرخ يادگيري از مقدار حداكثري كمتر باشد، نرخ يادگيري با ضرب شدن در يك پارامتر ثابتي، افزايش مي يابد [۶].
(۱۷ a) αji(k) = αji(k-1)+u if
(17 b) αji(k) = αji(k-1).d if
(17 c) αji(k) = αji(k-1) if
مقادير پيشنهادي بر u، ۱٫۰۵ و d، ۰٫۵ مي باشد. α max، عددي بين ۱,۰ است.
از الگوريتم مطرح شده، براي جداسازي الگوها در مسأله XOR، استفاده شده است. در شكل (۸)، منحني يادگيري اين الگوريتم را نشان مي دهد.

شكل (۸). منحني يادگيري الگوريتم Super SAB براي مسأله XOR