شبکه های عصبی پرسپترون چند لایه
شبکه های عصبی پرسپترون، به ویژه پرسپترون چند لایه، در زمره کاربردی ترین شبکه های عصبی می باشند. این شبمه ها قادرند با انتخاب مناسب تعداد لایه ها و سلول های عصبی، که اغلب هم زیاد نیستند، یک نگاشت غیر خطی را با دقت دلخواه انجام دهند. این شبکه ها، یک لایه ورودی چند لایه پنهان به روش سعی و خطا مشخص می گردد. شبکه های عصبی نوعی مدل سازی ستده انگارانه از سیستم های عصبی واقعی هستند که کاربرد فراوانی در حل مسائل مختلف در علوم دارند. حوزه کاربرد این شبکه ها آن جنان گسترده است که از کاربرد های طبقه بندی گرفته تا کاربردهایی نظیر درون یابی، تخمین و آشکارسازی را شامل می شوند. شاید مهمترین مزیت این شبکه ها توانایی وافر آن ها در کنار سهولت استفاده از آن ها باشد.
به طور کلی شبکه های عصبی مصنوعی از لحاظ یاد گیری بر دو دسته اند: شبکه های وزن ثابت و شبکه های با وزن متغییر. خود شبکه های یاد گیر نیز به دودسته با سرپرست و بدون سرپرست تقسیم می شوند. در شبکه های با سرپرست، در فاز آموزش از نمونه هایی استفاده می گردد که خروجی ایده آل متناظر با آن ها از پیش دانسته است. به عبارت دیگر در این گونه شبکه ها، نمونه های داده ورودی برچسب دارند. در شبکه های بی سرپرست، بر اساس یک معیار(مثلا فاصله) و بر اساس موعی رقابت، خروجی مورد نظر در کلاس جداگانه قرار می گیرد.
با توجه به این که شبکه عصبی، مدل ساده شده اعصاب بدن است، درست به مانند آن ها قابلیت یادگیری دارند. به عبارت دیگر شبکه با استفاده از اطلاعاتی که از ورودی و توسط سرپرست خود دریافت می کند قادر به فراگیری روند موجود در الگو ها است. لذا به طور مشابه با انسان، روند یاد گیری در شبکه عصبی نیز از مدل های انسانی الهام گرفته است. بدین صورت که مثال های بسیاری را به دفعات بایستی به شبکه ارائه نمود تا بتواند با تغییر وزن های شبکه، خروجی مورد نظر را دنبال کند.
ارائه نمونه داده های ورودی به شبکه عصبی به دو روش امکان پذیر است:
– روش ارائه یک جا: در این روش، تمام نمونه ها به شبکه ارائه می گردند و در آخر، خطای شبکه نسبت به کل نمونه ها محاسبه گشته و وزن ها بر اساس آن خطا تغییر می کنند. در مرحله بعد مجددا تمام داده ها یک بار دیگر به شبکه ارائه شده و روند فوق نظیر به نظیر انجام می پذیرد تا نهایتا خطا به حد اقل قبولی برسد. مسلما این روش پیچیده و زمان بر بوده و نیاز به حافظه زیادی دارد. همچنین امکان به تله افتادن الگوریتم در مینیمم های محلی وجود دارد.
– روش ارائه الگو: در این روش در هر بار نمونه ها به صورت تک تک به شبکه داده شده و خطای متناظر با همان داده بلافاصله محاسبه شده و بر اساس آن، وزن های شبکه به روز رسانی می شوند. سپس نمونه بعدی به شبکه ارائه شده و روند بالا مشابها انجان می پذیرد. چون در این روش در هر گام اصلاح وزن ها بر اساس هر نمونه انجام می پذیرد، الگوریتم هم گرایی خوبی داشته و با توجه به ماهیت تصادفی موجود در ارائه تکی داده ها، احتمال خطر تله مینیمم های محلی بسیار کم خواهد بود.
به منظور آموزش شبکه و اصلاح وزن ها تا رسیدن به یک خطای معنا دار، روش های بسیار زیادی وجود دارد. یکی از مشهورترین این روش ها الگوریتم پس انتشار خطاست که در ادامه توضیح داده می شود.
الگوریتم پس انتشار خطا
این الگوریتم در سال 1986 روملهارت و مک گلیلاند پیشنهاد گردید، در شبکه های عصبی پیش رو مورد استفاده قرار می گیرد. پیش سو بودن به این معنا است که نورون های مصنوعی در لایه های متوالی قرار گرفته اند و خروجی خود را به جلو می فرستند. واژه پس انتشار نیز به معنای این است که خطا به سمت عقب در شبکه تغذیه می شوند تا وزن ها را اصلاح کنند و پس از آن مجددا ورودی مسیر پیش سوی خود را تا خروجی تکرار کنند. روش پس انتشار خطا از روش های با ناظر است به این مفهوم که نمونه های ورودی برچسب خورده اند و خروجی مورد انتظار هر یک از آن ها از پیش دانسته است. لذا خروجی شبکه با این خروجی های ایده آل مقایسه شده و خطای شبکه محاسبه می گردد. در این الگوریتم ابتدا فرض بر این است که وزن های شبکه به طور تصادفی انتخاب شده اند. در هر گام خروجی شبکه محاسبه شده و بر حسب میزان اختلاف آن با خروجی مطلوب، وزن ها تصحیح می گردند تا در نهایت این خطا مینیمم شود. در الگوریتم پس انتشار خطا، تابع تحریک هر عصب به صورت جمع وزن دار ورودی های مربوط به آن عصب در نظر گرفته می شود.
حال بایستی به بررسی ارتباط خطا با ورودی ها، وزن ها و خروجی ها بپردازیم. برای این کار روش های متفاوتی وجود دارد که برخی از مهمترین آن ها عبارتند از:
1- روش گرادیان شیب
2- روش نیوتن
3- روش اندازه حرکت
4- روش آنتروپی متقابل
5- روش Marquarlt-levenberg
الگوریتم پیشنهادی
در چند دهه اخیر متد های متفاوتی برای حذف نویز از تصاویر دیجیتال ارائه شده اند. مروری بر نتایج تحقیقات انجام شده نشان می دهد الگوریتم های مبتنی بر فاز تشخیص و فاز ترمیم از کارایی بالاتری نسبت به سایر الگوریتم ها برخوردارند. الگوریتم های تک مرحله ای بدون توجه به نویزی بودن یا نبودن یک پیکسل عمیات فیلترینگ را انجام می دهند و این امر موجب می شود جزئیات تصویر در طی عملیات فیلتر کردن تخریب شده و در نتیجه تصویر خروجی از کیفیت لازم برخوردار نباشد. در مقابل الگوریتم های مبتنی بر فاز تشخیص و ترمیم ابتدا از یک آشکار گر نویز استفاده کرده و در مرحله بعد تنها پیکسلهای نویزی وارد فیلتر می شوند و لذا پیکسل های سالم از هر گونه تغییر محفوظ نگه داشته می شوند. الگوریتم های متنوعی با معیار های مختلف جهت تشخیص نویزی بودن یک پیکسل ارائه شده اند. که در اکثریت آن ها مرز تصمیم گیری پیکسل سالم یا نویزی توسط آستانه های تعیین شده توسط کاربر مشخص می شود.
الگوریتم پیشنهادی از یک شبکه عصبی پیشرو برای فاز تشخیص پیکسل های نویزی استفاده می کند. هدف از این کار طبقه بندی پیکسل ها بر مبنای نویزی یا سالم بودن توسط شبکه عصبی است. این سیستم از دو جزء آشکارگر نویز ضربه و عملیات فیلتر گذاری تشکیل شده است. زمانی که آشکار گر، پیکسلی را نویزی برچسب گذاری کند، آن پیکسل توسط بخش بعدی فیلتر گذاری می شود و مقدار شدت روشنایی تصویر در آن پیکسل توسط همسایگی آن تخمین زده می شود.
ساختار هر شبکه مصنوعی با تعداد سلول ورودی، تعداد لایه های پنهان و تعداد سلول ها در هر لایه پنهان و تعداد سلول خروجی مشخص می شود. شبکه عصبی ارائه شده دارای 7 سلول ورودی، یک لایه پنهان با ده سلول و یک سلول خروجی است. در ادامه جزئیات شبکه پیشنهادی شرح داده خواهد شد.
با توجه به این که هر چه میزان قدر مطلق تفاضل پیکسل مرکزی و میانه پنجره فیلتر کم تر باشد احتمال نویزی بودن پیکسل مرکزی کمتر است، این ویژگی می تواند به عنوان یک ویژگی متمایز کننده پسکسل نویزی از پیکسل سالم به کار رود. ورودی دوم شبکه عصبی حاصل مینیمم گیری روی کانولوشن پنجره فیلتر در چهار فیلتر لاپلاسین می باشد. هر کدام از فیلتر ها نسبت به یکی از لبه های افقی، عمودی، لبه با شیب مثبت و لبه با شیب منفی حساس است. کمینه مقادیر حاصل از کانولوشن این 4 فیلتر را می توان به عنوان معیاری برای تشخیص نویز در نظر گرفت. از مقدار ROAD به عنوان دورودی سوم شبکه عصبی استفاده می شود. مقدار ROAD برای پیکسل های نویزی مقدار بالا و برای پیکسل های سالم مقدار پائین دارد. مقدار چهارم تا هفتم شبکه عصبی، 4 مقدار محاسبه شده توسط فیلتر SD-ROM است. و هر یک از این چهار مقدار اطلاعاتی را در رابطه با وجود نویز در پیکسل مرکزی بیان می کند.
برای آموزش هر ماشین یادگیر، نیاز به یک مجموعه از داده های آموزشی است. مجموعه داده های آموزشی جفت های ورودی – خروجی هستند که شبکه سعی در یاد گیری آن ها دارد. برای یادگیری شبکه عصبی پیشنهادی نیاز به تصویری نویزی به عنوان ورودی و تصویر باینری نویز به عنوان خروجی داریم.
رویکرد معمولی که در مقالات مختلف برای حل این مشکل ارائه شده است، تولید یک تصویر تصادفی است و هدف این کار آن است که آموزش شبکه به تصویر خاصی وابسته نباشد. برای آموزش شبکه عصبی پیشنهادی از تصویر 128*128 از بلوک های 4*4 که تمام پیکسل های هر بلوک شدت روشنایی ثابتی دارند که به صورت تصادفی انتخاب می شوند استفاده می شود.
با توجه به اینکه گلوگاه سرعت اجرای الگوریتم ارائه شده، محاسبه خروجی شبکه عصبی برای تعیین نوع پیکسل ورودی است، از یک فاز تشخیص اولیه استفاده شده است تا تنها پیکسل هایی که احتمال نویزی بودن آن ها وجود دارد برای تصمیم گیری نهایی به شبکه عصبی داده شوند.
برای آموزش شبکه پیشنهادی از الگوریتم شناخته شده ی انتشار خطای عقب گرد و حد اکثر تعداد 100 و همچنین خطای مطلوب صفر استفاده می شود. پس از آموزش شبکه، مقدار خروجی برای پیکسل های نویزی نزدیک به یک و برای پیکسل های سالم نزدیک به صفر است.
در صورتی که آشکار گر مبتنی بر شبکه عصبی، یک پیکسل را نویزی تشخیص دهد، مقدار پیکسل نویزی باید فیلتر شود و تخمینی بر مبنای مقادیر پیکسل های همسایه بدست آید. برای فیلتر کردن پیکسل های نویزی از فیلتر میانه استاندارد بر روی عناصر سالم پنجره بهره گرفته شده است. همچنین در صورتیکه تمامی پیکسل ها در همسایگی پیکسل مرکزی نویزی باشند مقدار خروجی صفر قرار داده می شود و الگوریتم برای بار دیگر به صورت بازگشتی بر روی تصویر بدست آمده اجرا می شود. برای افزایش سرعت اجرای الگوریتم از یک پیش قضاوت اولیه استفاده شده است. با توجه که تنها نویز فلفل نمکی مورد بررسی است، تمام پیکسل هایی که مقداری به جز 0 یا 255 دارند به عنوان سالم در نظر گرفته می شود. و برای طبقه بندی دقیق تر پیکسل ها از شبکه عصبی پیشنهادی استفاده می شود. پس از طبقه بندی نهایی، در صورت نویزی بودن یک پیکسل، از فیلتر میانه استاندارد برای تخمین پیکسل نویزی از پیکسل های همسایه استفاده شده است.
معیار های ارزیابی
برای ارزیابی توانایی متد های مختلف در حذف نویز از تصاویر سطح خاکستری معمولا از دو معیار استاندارد نسبت پیک سیگنال به نویز (PSNR) و میانگین مربعات خطا (MSE) استفاده می شود.
نتایج شبیه سازی
جدول 1 مقدار PSNR حاصل از اجرای الگوریتم پیشنهادی بر روی تصاویر موجود در شکل به ازای چگالی های مختلف نویز فلفل نمکی را نشان می دهد.
مقادیر PSNR حاصل از اجرای متد پیشنهادی بر روی تصاویر مختلف با درصد نویز متفاوت:
جدول 1- مقادیر PSNR حاصل از متد پیشنهادی بر روی تصاویر مختلف با درصد نویز متفاوت
Peppers |
House |
Barbara |
Boat |
Cameraman |
%noisy |
26.05 |
45.01 |
36.66 |
42.01 |
38.26 |
5 |
25.94 |
41.35 |
33.53 |
38.45 |
35.26 |
10 |
25.77 |
39.12 |
31.77 |
36.43 |
32.94 |
15 |
25.68 |
37.02 |
30.09 |
34.60 |
31.50 |
20 |
25.27 |
34.38 |
28.67 |
32.13 |
28.70 |
30 |
24.77 |
31.98 |
26.33 |
29.84 |
26.63 |
40 |
23.96 |
29.90 |
24.79 |
27.86 |
24.62 |
50 |
22.80 |
26.90 |
23.16 |
25.60 |
22.83 |
60 |
همچنین مقدار MSE بین تصویر اصلی و خروجی حاصل از الگوریتم پیشنهادی برای تصاویر مختلف در جدول 2 لیست شده است:
جدول 2- مقدار MSE بین تصویر اصلی و خروجی الگوریتم پیشنهادی
Peppers |
House |
Barbara |
Boat |
Cameraman |
%noisy |
161.10 |
2.04 |
14.02 |
4.08 |
9.69 |
5 |
165.36 |
4.76 |
28.81 |
9.27 |
19.32 |
10 |
171.82 |
7.97 |
43.22 |
14.78 |
32.97 |
15 |
175.49 |
12.94 |
63.67 |
22.49 |
45.93 |
20 |
193.14 |
23.67 |
101.47 |
39.79 |
78.56 |
30 |
216.50 |
41.13 |
151.38 |
67.42 |
141.04 |
40 |
261.06 |
66.49 |
215.35 |
106.35 |
224.29 |
50 |
340.81 |
132.57 |
314.02 |
178.87 |
338.37 |
60 |
هر چه میزان شباهت تصویر اصلی و بازیابی شده بیشتر باشد، مقدار MSE بین دوتصویر کمتر و لذا طبق رابطه میزان PSNR بین آن ها بیشتر خواهد بود.
جدول 3 نتایج مقایسه الگوریتم پیشنهادی و سایر متد های شناخته شده و موفق برای حذف نویز فلفل نمکی با چگالی 25% را برای جند تصویر نشان می دهد:
جدول 3- نتایج مقایسه الگوریتم پیشنهادی با سایر متدها
Barbara |
House |
Peppers |
Cameraman |
Boat |
Method |
42.62 |
28.12 |
22.89 |
22.24 |
22.19 |
MF |
52.12 |
29.86 |
25.92 |
55.35 |
24.32 |
Sdrom |
26.08 |
31.15 |
27.67 |
27.91 |
28.05 |
TONF |
27.55 |
34.49 |
28.00 |
28.11 |
28.22 |
Yuksel |
29.73 |
36.03 |
28.59 |
30.21 |
32.15 |
Proposed |
نتایج
نتایج عددی و بصری به دست آمده از اجرای روش پیشنهادی حاکی از آن است که روش ارائه شده در حذف نویز و حفظ جزئیات لبه های تصویر موفق بوده است. همچنین با تکرار اجرای الگوریتم بر روی تصاویر با چگالی نویز بالا، نتایج قابل قبولی بدست آمد.
پیشنهاد ها
البته به منظور بهبود عملکرد شبکه عصبی در دسته بندی پیکسل ها در درصد های مختلف نویز، اگر از معیار هایی با متمایز کنندگی بالاتر و مقاوم نسبت به چگالی نویز آغشته کننده و یا استفاده از شبکه های عصبی چند لایه متناظر با چگالی های نویز مختلف استفاده کرد. همچنین در فاز دوم الگوریتم، می توان برای فیلتر کردن پیکسل های آلوده از الگوریتم های دیگری مانند میانه وزن دار یا وزن دار مرکزی استفاده کرد.
حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 1
حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 2
حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 3