بخشی از مقاله

روش های استخراج ویژگی و روش های خطی و غیر خطی دسته بندی

1) چکیده:

در این تمرین روش های استخراج ویژگی و روش های خطی و غیر خطی دسته بندی را مورد مطالعه قرار می‌دهیم. در ابتدا روش های مختلف استخراج ویژگی که از آن جمله PCA، LDA، روش قاب بندی و چند روش دیگر هستند را و سپس برای ویژگی های استخراج شده از روش های دسته بندی خطی بیزین و SVM خطی و سپس روش های غیر‌خطی RBF ، MLP و همچنین SVM غیر‌خطی برای دسته بندی استفاده شده‌ است. بسته به روش شناسایی بکار گرفته شده، معمولا

ویژگی هاي متفاوتی از دنباله نقاط استخراج می شود. در اکثر روش هاي موجود استخراج ویژگی، ویژگی ها از روي مختصات نقاط نمونه برداري شده ورودي استخراج می شوند. از مجموعه ی ویژگی های استخراج شده معمولاً تعدادی مفید تر و موثرترند. ما برای تشخیص و انتخاب ویژگی های تاثیرگذارتر از یک الگوریتم ژنتیک استفاده کرده ایم. اما پس از استخراج و انتخاب ویژگی ها نوبت به دسته بندی می رسد. در ابتدا از چند دسته بند خطی استفاده کرده ایم. به راحتی می‌توان نشان داد که ناحیه‌های تصمیم‌گیری یک ماشین خطی محدودند و این محدودیت انعطاف‌پذیری و دقت دسته‌بند را کاهش می‌دهد. مسایل

بسیاری وجود دارد که توابع جداساز خطی برای داشتن حداقل خطا در آنها کافی نیستند. علاوه بر این مرزهای تصمیم‌گیری که کلاسها را از یکدیگر تفکیک می‌کنند ممکن است همیشه خطی نباشند و پیچیدگی مرزها گاهی اوقات نیاز به استفاده از سطح‌های کاملاً غیر خطی را دارند. بنابراین در ادامه ی کار از چند دسته بند غیرخطی نیز استفاده نمودیم. در استفاده از شبکه‌های عصبی چندلایه، شکل غیر خطی بودن از مجموعه‌ی آموزش فرا گرفته می‌شود. در روشهای RBF و SVM غیرخطی مشکل اصلی انتخاب توابع هسته غیر خطی مناسب است.

2) مقدمه

 

اولین الگوریتم دسته‌بندی در سال 1936 توسط Fisher ارایه شد و معیارهای آن برای بهینه بودن، کم کردن خطای دسته‌بندی کننده‌های الگو‌های آموزشی بود. بسیاری از استراتژی‌های موجود نیز از همین روش پیروی می‌کنند. در ساده‌ترین شکل ممکن، دسته بند‌های خطی می‌توانند دو دسته‌ی متفاوت را تفکیک کنند. با توجه به این موضوع مساله‌ای را جدایی‌پذیر خطی می‌نامند که با یک ابرصفحه بتوان محدوده‌ی تصمیم را به دو گروه تقسیم‌بندی کرد. در عمل می‌توان دسته بند‌های خطی‌ای را طراحی کرد که بیش از دو گروه را از هم تفکیک کنند. این عمل را با تنظیم محدوده‌های تصمیم متعدد و آزمون‌های چندگانه بر اساس شرایط موجود می‌توان انجام داد. ما در این مساله یک دسته بندی با 26 کلاس را داریم.

 

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

یک محقق روسی به نام Vladimir Vapnik در سال 1965 گام مهمی در طراحی دسته‌بندها برداشت [1] و نظریه‌ی آماری یادگیری را بصورت مستحکم‌تری بنا نهاد و ماشین بردار پشتیبان را ارایه کرد. ماشین‌های بردار پشتیبان در دو حالت جدایی‌پذیر و جدایی‌ناپذیر برای دسته‌بندی الگوهای یک مساله‌ی چندکلاسه از چند مرز جداکننده‌ی خطی یا ابرصفحه استفاده می‌کنند و در واقع حاصلضرب داخلی بردار ورودی با هر یک از بردارهای پشتیبان در فضای d بعدی ورودی محاسبه می‌شود. Vapnik نشان داد که می‌توان بردار ورودی را با یک تبدیل غیرخطی به یک فضای با بعد زیاد انتقال داد و در آن فضا حاصلضرب داخلی را بدست آورد که با این شرایط هسته‌ی مفیدی را خواهیم داشت.

روش RBF یک دسته‌بندی و تقریب‌ساز تابعی الگوست و شامل دو لایه می‌باشد که نرون‌های خروجی ترکیبی خطی از توابع پایه‌ای را به وجود می‌آورند که توسط نرون‌های لایه‌ی پنهان محاسبه شده‌اند. زمانی که ورودی در ناحیه‌ی تعیین شده‌ی کوچک از فضای ورودی قرار گیرد، توابع اساسی(غیر خطی) در لایه‌ی پنهان، پاسخ غیر صفری به محرک ورودی می‌دهند. همچنین این مدل به عنوان یک شبکه‌ی دریافت‌کننده‌ی ناحیه‌ای شناخته شده است. ما در روش RBF از معمول‌ترین تابع هسته‌ی غیر خطی یعنی سیگموئید استفاده کرده‌ایم.

 

به طور کلی شبکه‌های پرسپترون چند‌لایه شامل چندین پرسپترون ساده هستند که به طور ساختار سلسله‌مراتبی، یک شکل پیش‌خورد با یک و یا چند لایه‌ی میانی (لایه‌های پنهان) بین لایه‌های ورودی و خروجی را شکل می‌دهد. تعداد لایه‌ی پنهان و تعداد نرون‌های هر لایه ثابت نیستند. هر لایه ممکن است از نرون‌های مختلفی تشکیل شده باشد که این موضوع به کار آنها بستگی دارد. الگوریتم‌های آموزشی متفاوتی در روش چند لایه استفاده می‌شوند.

3) روشهای به کار رفته در این گزارش

در این قسمت روشهای استخراج ویژگی، روشهای انتخاب ویژگی ها جهت بهینه کردن آنها و کم کردن ابعاد مساله با کاهش تعداد آنها و روشهای دسته‌بندی (خطی و غیرخطی) به کار رفته بررسی شده‌اند.

 

3-1) روشهای استخراج ویژگی

در این قسمت انواع روشهای استخراج ویژگی ها ذکر شده است. ذکر این نکته لازم است که برخی الگوریتم های استخراج برای انتخاب ویژگی های موثر نیز استفاده می شوند ازجمله ی آنها PCA و LDA هستند. اما در این گزارش ما برای بهینه کردن ویژگی ها و کم کردن تعداد آنها و یا به عبارت دیگر برای کاهش ابعاد (Curse of Dimensionality) از الگوریتم ژنتیک استفاده نموده ایم.

 

3-1-1) روش PCA خطی

روشهای استخراج ویژگی یک زیرفضای مناسب m بعدی در فضای اصلی ویژگی ها از d بعد را تعیین می کنند(m<=d). تبدیل خطی مثل PCA، آنالیز فاکتور، LDA و تعقیب تصویر بطور گسترده در شناسایی الگو برای استخراج ویژگی ها و کاهش ابعاد استفاده شده اند. بهترین استخراج کننده ی ویژگی شناخته شدهPCA یا توسعه یافته ی Karhunen-loeve است که m بردار مشخصه بزرگتر را از ماتریس کوواریانس d×d از n الگوی d بعدی محاسبه می کند. تبدیل خطی به شکل

Y=XH تعریف شده است که X ماتریس الگوی n×d داده شده و Y از ماتریس الگوی n×m مشتق شده است . H ماتریس d×m از تبدیل خطی است که ستون های آن بردارهای مشخصه هستند. قبل از اینکه PCA از ویژگی های پرمعنی تر استفاده کند (بردار ویژگی های با بزرگترین مقدار ویژه)، بطور کاملاً موثر داده ها را با یک زیرفضای خطی با استفاده از معیار خطای میانگین مربعات تخمین می زند. سایر روش ها مانندتعقیب تصویر و ICA برای توزیع های غیرگاوسی تا وقتی که به مشخصه ی مرتبه ی دوم داده ها مربوط نباشد مناسب ترند. ICA با موفقیت برای جداسازی منابع دیده نشده استفاده شده است. استخراج ترکیب خطی ویژگی ها منابع نابسته را تعریف می کند. این جداسازی در صورتی امکان پذیر است که حداکثر یکی از منابع دارای توزیع گاوسی باشد.

از آجا که PCA یک روش بدون بررسی استخراج ویژگی هاست (Unsupervised)، تحلیل جداسازی از یک اطلاعات گروهی در رابطه با هر الگو برای استخراج (خطی) ویژگی های با قابلیت جداسازی زیاد استفاده می کند. در LDA جداسازی بین کلاسی با جابجایی کل ماتریس کوواریانس در PCA با یک معیار جداسازی عمومی مانند معیار Fisher تائید می شود که در یافتن بردارهای مشخصه نتیجه می شود.( حاصل معکوس ماتریس پراکندگی و ماتریس پراکندگی بین کلاسی ). معیار دیگر همراه با بررسی (Supervised) برای چگالی های شرایط کلاس غیرگاوسی بر پایه ی فاصله Patrick-Fisher با استفاده از برآورد چگالی Parzen است.

 

3-1-2) روش Kernel PCA (PCA با هسته یا PCA غیرخطی)

چندین روش برای تعریف روش های استخراج ویژگی غیرخطی وجود دارد. یکی از این روش ها که مستقیماً به PCA مربوط است، Kernel PCA نام دارد. ایده ی اصلی KPCA نگاشتن داده های ورودی بر روی برخی از فضاهای ویژگی F جدید بطور معمولی با استفاده از تابع غیرخطی و سپس اعمال یک PCA خطی در فضای نگاشت شده است. به هر حال فضایF معمولاً ابعاد بسیار زیادی دارد. برای دوری از محاسبات نگاشت ساده ی ، KPCA تنها هسته های Mercel که می توانند به یک نقطه تجزیه شوند را بکار می گیرد.


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


فرض می کنیم که X یک ماتریس الگوی n×d نرمال شده با میانگین صفر است و یک ماتریس الگو در فضای F باشد. PCA خطی در فضای F بردارهای مشخصه ی ماتریس همبستگی را حل می کند که همچنین ماتریس هسته نیز نامیده می شود. در KPCA در ابتدا m بردار ویژگی از بدست می آیند تا یک ماتریس انتقال E را تعریف کنند (E یک ماتریس n×m است که m تعداد ویژگی های دلخواه است و m<=d است). الگوهای جدید x با نگاشت می شوند که اکنون با وابستگی به

مجموعه آموزش بازنمایی می شوند و نه با مقادیر ویژگی ویژگی های اندازه گیری شده. باید توجه داشت که برای یک بازنمایی کامل تا m بردار مشخصه در E (بسته به تابع هسته) توسط KPCA ممکن است نیاز باشد در حالی که در PCA خطی یک مجموعه از d بردار مشخصه فضای اصلی ویژگی ها را ارائه می کند. انتخاب تابع هسته برای یک کاربرد مشخص هنوز یک مساله باز است.

3-1-3) روش مقیاس گذاری چندبعدی(MDS)

مقیاس گذاری چند بعدی (MDS)یک روش غیرخطی دیگر برای استخراج ویژگی هاست. هدف این روش بازنمایی یک مجموعه ی چندبعدی در دو یا سه بعد است مثل آنچه ماتریس فاصله در فضای اصلی ویژگی های d بعدی به طور کاملاً ثابت در فضای تصویرشده باقی مانده است. توابع تاکید فراوانی برای اندازه گیری کارایی این نگاشت استفاده شده اند. یک مشکل MDS این است که یک تابع نگاشت ساده و روشن را ارئه نمی کند بنابراین ممکن نیست که یک الگوی جدید را در یک نگاشت برای یک مجموعه ی آموزش مشخص بدون تکرار جایگذاری کند. چندین روش برای عنوان کردن این نقص که از درون یابی خطی تا آموزش شبکه عصبی محدود است مورد بررسی قرار گرفته است. همچنین امکان دارد که الگوریتم MDS مجدداً تعریف شود بنابراین مستقیماً یک نگاشت را تهیه می کند که ممکن است برای الگوهای آزمون جدید استفاده شود.

 

3-1-4) روش شبکه عصبی روبه جلو (Feed-Forward Neural Network)

یک شبکه ی عصبی روبه جلو یک روال جامع را برای استخراج ویژگی هاو دسته بندی پیشنهاد می کند. خروجی هر لایه ی مخفی ممکن است به عنوان یک مجموعه ی جدید و اغلب غیرخطی از ویژگی ها تعریف  شود که در لایه ی مخفی برای دسته بندی ارائه می شوند. در این شرایط شبکه های استفاده شده توسط Fukushima و Lecun که اصطلاحاً آن را لایه های وزنی مشترک نامیده اند، در حقیقت فیلترهایی برای استخراج ویژگی ها در تصاویر دوبعدی هستند. در طول آموزش فیلترها با داده ها برای بیشینه کردن کارایی دسته بندی وفق داده شده اند.

 

شبکه های عصبی می توانند بطور مستقیم برای استخراج ویژگی ها در یک شکل بدون بررسی (Unsupervised) استفاده شوند. شکل (a-1) معماری یک شبکه که قادر به پیدا کردن زیرفضای PCA است را نشان می دهد. به جای سیگموئیدها نرون ها توابع انتقال خطی دارند. این شبکه d ورودی و d خروجی دارد که d تعداد مشخص شده ی ویژگی هاست. ورودی ها همچنین برای رسیدن به هدف نیز با مجبور کردن لایه ی خروجی به ساخت مجدد فضای ورودی تنها با

استفاده از لایه ی مخفی بکار گرفته شده اند. سه گره در لایه ی مخفی اولین سه جزء اصلی را ضبط می کنند. اگر دو لایه ی غیرخطی با واحدهای مخفی سیگموئیدی نیز وجود داشته باشند ( شکل (b-4))، آنگاه یک زیرفضای غیرخطی در لایه ی میانی یافت خواهد شد (که همچنین لایه ی گلوگاه هم نامیده می شود). غیرخطی بودن توسط اندازه ی این لایه های اضافی محدود می شود. شبکه های PCA غیر خطی یا اصطلاحاً خودشرکت پذیرها ی ابزار قوی را برای آموزش و تشریح زیرفضای غیرخطی پیشنهاد می کند. محققی به نام Oja نشان داد که چگونه شبکه های خودشرکت پذیر می توانند برای ICA استفاده شوند.

شکل 1:شبکه های خودشرکت پذیر برای پیدا کردن یک زیرفضای سه بعدی. (a) خطی و (b) غیرخطی (تمام اتصالات نشان داده نشده اند).

3-1-5) روش نگاشت خودسازمانده (Self-Organizing Map)

روش نگاشت خودسازمانده ی(SOM) یا نگاشت Kohonen نیز می تواند به عنوان یک روش غیرخطی استخراج ویژگی ها استفاده شود. در SOM نرون ها در یک شبکه ی توری مانند m بعدی مرتب شده اند که m معمولاً 1، 2 و یا 3 می باشد.هر نرون به تمام d واحد ورودی متصل است. وزن ها بر روی اتصالات برای هر نرون از یک بردار وزن d بعدی گرفته شده اند. در طول مرحله ی آموزش الگوها با یک ترتیب تصادفی به شبکه ارائه می شوند. در هر ارائه، برنده که بردار وزنی نزدیک تری به بردار ورودی دارد به عنوان اولین مورد شناخته می شود. سپس تمام نرون ها در همسایگی برنده (که در شبکه تعریف شده اند) به روزرسانی می شوند که بردارهای وزن آنها به سمت ورودی حرکت می کند. در نتیجه پس از اتمام آموزش بردارهای وزنی نرون های همسایه در شبکه احتمالاً الگوهایی از ورودی که نزدیک تر به فضای اصلی ویژگی ها هستند را بازنمایی می کنند. بنابراین یک نگاشت محافظ وضعیت تشکیل می شود. زمانی که شبکه در فضای اصلی مطرح شد، اتصالات شبکه  با توجه به چگالی داده های آموزشی می توانند بیشتر یا کمتر تحت فشار قرار  گیرند. بنابراین SOM یک نقشه m بعدی با یک اتصال فضایی را پیشنهاد می کند که می تواند به عنوان یک استخراج کننده ی ویژگی تفسیر شود. SOM با LVQ متفاوت است چون در LVQ هیچ همسایه ای تعریف نمی شود.

 

3-1-6) استفاده از الگوریتم ژنتیک برای کاهش ابعاد مساله

همان‌طور که گفته خواهد شد از هر کاراکتر دست‌نویس 16 ویژگی استخراج شده است. در این سیستم با استفاده از الگوریتم ژنتیک از بین 16 ویژگی استخراج شده از تصویر کاراکتر، ویژگی‌های مناسب برای دسته‌بندی حروف انتخاب می‌شوند. برای این 16 ویژگی کروموزمی باینری به طول 16 تعریف شده است. یک بودن هر ژن به معنی استفاده و صفر بودن آن به معنی عدم استفاده از آن ویژگی در دسته‌بندی حروف است(شکل(2)). برای تشکیل جمعیت اولیه الگوریتم ژنتیک، کروموزوم‌های باینری به‌طور تصادفی تولید می‌شوند. سپس برای هر کروموزوم مقدار برازندگی آن با استفاده از تابع برازش[1] محاسبه می‌شود که در ادامه نحوه محاسبه آن آورده خواهد شد. تابع برازش به فاصله صفر و یک نگاشت می‌شود. برای انتخاب والدین مناسب از روش چرخ رولت استفاده می‌شود.


شکل2: نمايش يک کروموزوم و نحوه‌ی انتخاب ويژگي‌ها

آمیزش[2] با تولید یک عدد صحیح تصادفی بین 1 و 16 انجام می‌شود. جهش[3] نیز با تولید یک عدد تصادفی بین 1و 16 و تغییر مقدار ژن از یک به صفر یا بالعکس انجام می‌شود. تولید نسل جدید با انتخاب 50 درصد از نسل قبلی به صورت تصادفی با روش چرخ رولت و 50 درصد با آمیزش بین والدین تصادفی از

جمعیت قبل انجام می‌شود. سپس روی 15 درصد از این جمعیت به‌طور تصادفی جهش اعمال می‌شود. با اعمال الگوریتم ژنتیک در چند نسل و انتخاب کروموزوم با کمترین مقدار تابع برازش ویژگی‌های مناسب به‌دست می‌آیند.

همانطور که گفته شد روند اجرای الگوریتم ژنتیک خصوصاً برای این منظور خاص بسیار زمانبر می‌باشد. تصور کنید که بعد از تولید هر کروموزوم باید تابع برازش آن محاسبه شود. محاسبه تابع برازش به این صورت است که دسته‌بند بیزین جدید با ویژگی‌های پیشنهادی باید ساخته شود، سپس آموزش ببیند و در نهایت خطای آن محاسبه شود و این خطا به‌عنوان تابع برازش این کروموزوم انتخاب شود. این پروسه باید برای تمام کروموزوم‌های موجود در هر نسل تکرار شود که مسلما بسیار زمانبر است. اما پس از تولید چند نسل تعداد ویژگی‌ها کاهش پیدا کرده و ابعاد مساله کم شده، سرعت و خطای دسته‌بندی در مرحله تست

به‌ترتیب افزایش و کاهش چشم‌گیر دارد. در واقع هرچه برای آموزش زمان و هزینه گذاشته شود در مرحله تست و کاربرد سیستم جبران خواهد شد. الگوریتم ژنتیک تضمین می‌کند که تاثیرگذارترین ویژگی‌ها را انتخاب کند و بهینه‌ترین حالت ممکن را به کاربر بدهد با در نظر گرفتن این مشکل که بسیار زمانبر و کند است. بعد از اجرای الگوریتم ژنتیک و 45 نسل کروموزوم با کمترین برازندگی(کمترین خطا)، ویژگی‌های مناسب را نشان می‌دهد. تعداد ویژگی‌ها از 16 ویژگی به 10 ویژگی کاهش یافته است. جمعیت اولیه حدود 20 کروموزوم است.

 

3-2) روشهای دسته‌بندی

در این گزارش از روش های خطی و غیرخطی استفاده شده است و در این قسمت روش‌های دسته بندی که مورد استفاده قرار گرفته اند تشریح شده اند.

3-2-1) روش های دسته‌بندی خطی

در شکل (3) می‌توان نمای کلی از یک دسته‌بند خطی را دید. دسته‌بند‌های خطی می‌توانند بیش از دو گروه را نیز از هم تفکیک کنند.
شکل 3: نمای کلی یک دسته‌بند خطی
در شکل (4) تفکیک‌پذیری ذکر شده‌ی فوق برای 4 کلاس انجام شده است.

شکل 4: مرزهای تصمیم‌گیری برای یک مساله با 4 کلاس متفاوت. ناحیه‌های با رنگ متفاوت در مرکز، ناحیه‌های مبهم هستند

3-2-1-1) دسته‌بند بیزین

در بیزین فرض می‌کنیم پارامترهای روش، تصادفی هستند. یعنی خود پارامترها دارای توزیع می‌باشند و ما می‌خواهیم توزیع آنها را بدست آوریم. مسلماً براساس تعداد داده‌ها μ و∑ متفاوت خواهند بود.

توابع جداساز مرزهای تصمیم‌گیری ما هستند. مرزهایی که تعیین می‌کنند ورودی x جزء کدام دسته قرار دارد. پروسه‌ی تصمیم‌گیری را می‌توانید در شکل(5) ببینید.

شکل5: پروسه‌ی تصمیم‌گیری بیزی.

x = (x1, x2, …, xd)t (t stands for the transpose vector form)
m = (m1, m2, …, md)t mean vector
S = d*d covariance matrix
|S| and S-1 are determinant and inverse respectively
3-2-2) روش‌های دسته بندی غیرخطی

کلاً روش‌های جداسازی غیرخطی بر دو نوع هستند. روش‌های جداساز غیرخطی بر پایه‌ی هسته که در آنها از توابع هسته‌ی غیرخطی استفاده می‌شود و روشهای جداساز غیرخطی که بر پایه‌ی Projection هستند[2].

یکی از روش‌های غیرخطی بر پایه‌ی Projection، شبکه‌ی عصبیMLP است که در ادامه معرفی می‌شود.

3-2-2-1) دسته‌بند پرسپترون چند لایه

الگوریتم‌های آموزشی متفاوتی در روش پرسپترون چند لایه استفاده می‌شوند. پرسپترون چند‌لایه را می‌توان برای پیاده‌سازی مسایل مختلف با دو یا سه لایه به کار برد. شکل الگوریتم استفاده شده به صورت زیر است.

شکل 6: پرسپترون چندلایه‌ی استفاده شده

روش تعلیم شبکه های عصبی پرسپترون چند لایه:

منظور از تعلیم یک شبکه عصبی آنست که وزن‌ها (یا قدرت ارتباط بین نرون‌ها) و بعضاً تعداد نرون‌ها را بگونه‌ای تعیین کنیم تا شبکه به گروه خاصی از داده‌ها پاسخ‌های مطلوبی بدهد. بعبارت ریاضی‌، فرض کنیم که تعداد P بردار ورودی Xi متعلق به Rn و P بردار پاسخ مطلوب ydi متناظر متعلق به Rm بعنوان الگو برای تعلیم به شبکه عصبی در اختیار داشته باشیم :

X=[ x1 x2 …. Xp ]

y=[ yd1 yd2 …. ydp ]

می‌خواهیم بردارپارامترهای شبکه عصبی شامل وزن‌ها و مقادیر آستانه‌ای آن W را بگونه‌ای تعیین کنیم که :

f (xi , w) = ydi i=1,2, … , p

که در آن تابع f(x , w) نشان دهنده نگاشت بین ورودی و خروجی شبکه عصبی می‌باشد‌.

روش انتشار معکوس خطا (Back Propagation)

این روش یک روش بهینه‌سازی تندترین شیب (Steepest Descent) است‌. در این روش فرض بر آن است که یک مجموعه از زوج الگوهای ورودی و خروجی در اختیار است‌. شبکه د‌ر ابتدا بر اساس بردار ورودی، بردار خروجی خود را تولید می‌کند و آنرا با بردار خروجی مطلوب یا هدف مقایسه می‌نماید‌. اگر اختلافی وجود نداشت، احتیاجی به تعلیم نیست‌. در غیر اینصورت وزن‌ها بگونه‌ای تغییر داده می‌شود که اختلاف کاهش یابد‌.

4) شبیه‌سازی و ارائه‌ی نتایج تجربی:

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

4-1)مجموعه داده

فیلدها یا ویژگیهای استخراج شده

از هر کاراکتر با 20 قلم متفاوت داده جمع‏آوری شده و به صورت تصادفی هر کاراکتر تغییر شکل داده شده است. بدین گونه 20000 رکورد متفاوت جمع‏آوری شده است. هر داده توسط 16 ویژگی اولیه استخراج شده، نشان داده شده است


Attribute Information:

1. lettr capital letter (26 values: A-Z)
2. x-box horizontal position of box (integer)
3. y-box vertical position of box (integer)
4. width width of box (integer)
5. high height of box (integer)
6. onpix total # on pixels (integer)
7. x-bar mean x of on pixels in box (integer)
8. y-bar mean y of on pixels in box (integer)
9. x2bar mean x variance (integer)
10. y2bar mean y variance (integer)
11. xybar mean x y correlation (integer)
12. x2ybr mean of x * x * y (integer)
13. xy2br mean of x * y * y (integer)
14. x-ege mean edge count left to right (integer)
15. xegvy correlation of x-ege with y (integer)
16. y-ege mean edge count bottom to top (integer)
17. yegvx correlation of y-ege with x (integer)
لازم به ذکر است که بدلیل حجم زیاد پایگاه داده این مساله فقط قسمت محدودی از این رکوردها در جدول(1) آورده شده است.
جدول1: نمونه‏ای از رکوردهای مجموعه داده‏ها

T
2
8
3
5
1
8
13
0
6
6
10
8
0
8
0
8
I
5
12
3
7
2
10
5
5
4
13
3
9
2
8
4
10
D
4
11
6
8
6
10
6
2
6
10
3
7
3
7
3
9
N
7
11
6
6
3
5
9
4
6
4
4
10
6
10
2
8
G
2
1
3
1
1
8
6
6
6
6
5
9
1
7
5
10
S
4
11
5
8
3
8
8
6
9
5
6
6
0
8
9
7
B
4
2
5
4
4
8
7
6
6
7
6
6
2
8
7
10
A
1
1
3
2
1
8
2
2
2
8
2
8
1
6
2
7
J
2
2
4
4
2
10
6
2
6
12
4
8
1
6
1
7
M
11
15
13
9
7
13
2
6
2
12
1
9
8
1
1
8
X
3
9
5
7
4
8
7
3
8
5
6
8
2
8
6
7
O
6
13
4
7
4
6
7
6
3
10
7
9
5
9
5
8
G
4
9
6
7
6
7
8
6
2
6
5
11
4
8
7
8
M
6
9
8
6
9
7
8
6
5
7
5
8
8
9
8
6
پراكندگي كلاسها در زیر آورده شده است.

تعداد دادههاي موجود براي هر دسته در اين مجموعه به صورت زير است:

Number of Instances: 20000
Missing Attribute Values: None
Number of Attributes: 17 (Letter category and 16 numeric features)

Class Distribution:
789 A 766 B 736 C 805 D 768 E 775 F 773 G
734 H 755 I 747 J 739 K 761 L 792 M 783 N
753 O 803 P 783 Q 758 R 748 S 796 T 813 U
764 V 752 W 787 X 786 Y 734 Z
اين مجموعه داده را مي توان از سايت معتبر UCI [3] دريافت كرد.

4-2) شبیه‌سازی روشهای استخراج ویژگی و ارائه نتایج تجربی

در این قسمت نتایج مربوط به شبیه‌‌سازی روش‌های استخراج ویژگی را ذکر کرده ام. در هر روش پس از پیاده‌سازی و اجرا بر روی ویژگی‌ها تعدادی از ویژگی‌ها به عنوان ویژگی های منتخب برگزیده شده ‌اند تا با استفاده از آنها عملیات دسته‌بندی صورت گیرد. در روش‌های PCA ، LDA و KPCA تعدادی ویژگی انتخاب می‌شود که تعداد آنها تقریباً با یکدیگر برابر است اما نمی‌توان گفت که بهترین‌ها را برگزیده‌اند چون ویژگی‌های انتخاب شده توسط الگوریتم ژنتیک نرخ تشخیص دسته‌بندی بالاتری را دارند. در روش خوشه‌بندی ما جای رکورد‌ها را با ستون‌ها تعویض کرده‌ایم تا به جای خوشه‌بندی داده‌ها، ویژگی‌ها را خوشه‌بندی کنیم. با اجرای این کار و انجام چند تکرار و مقایسه‌ی ویژگی‌های منتخب می‌بینیم که بهترین حالت برای انتخاب ویژگی‌های نماینده‌ی هر خوشه مشابه به همان روش الگوریتم ژنتیک است. نتایج این انتخاب‌ها در جدول (2) آورده شده است.

جدول 2: نتایج انتخاب ویژگی‌های مفید همراه با تعداد آنها برای هر روش
Feature Extraction Method
PCA
LDA
KPCA
GA
K-Means
Number of Features
11
10
12
9
4
Reduction Rate of Feature
32%
37.5%
25%
44%
75%

همانطور که در جدول فوق مشاهده می‌شود بیشترین کاهش تعداد ویژگی را در روش خوشه بندی داشتیم. علت این است که ما 16 ویژگی موجود را در 4 خوشه قرار داده‌ایم و نماینده‌ی هر خوشه را به عنوان یک ویژگی در نظر گرفته‌ایم و این کاهش زیاد همیشه نمی‌تواند موجب ایجاد نرخ مناسبی برای دسته‌بندی شود. در روش ژنتیک کاهش تعداد ویژگی‌ها ایده‌آل است و البته همانطور که در ادامه خواهید دید نتیجه نیز ایده‌آل خواهد بود.

4-3) شبیه‌سازی روشهای دسته‌بندی و ارائه نتایج تجربی

در این قسمت نتایج حاصل از دو روش دسته‌بندی بیزین و پرسپترون چندلایه برای هر یک از حالات ویژگی‌های استخراج شده استفاده کرده‌ام و نتایج حاصل از دسته‌بندی را بدست آورده‌ام این نتایج در جدول زیر آورده شده است.


جدول 3: نتایج دسته‌بندی برای مجموعه ویژگی‌های استخراج شده
Classification Method
Feature Extraction Method
Bayesian
MLP
Recognition rate
PCA
85.63%
90.25%
LDA
82.5%
88%
KPCA
89.15%
93.63%
K-Means
93.75%
95.50%
GA
97.58%
98.8%
Recognition rate
Mean of All
89.72%
93.24%
Error rate
Mean of All
10.28%
7.76%

همانطور که در جدول (3) هم مشاهده می شود بهترین نرخ تشخیص مربوط به الگوریتم ژنتیک است و کمترین نرخ در ویژگی‌های استخراج شده توسط LDA مشاهده می‌شود. البته نرخ تشخیص اکثر انتخاب‌های روش K-Means نرخ تشخیص بسیار بدی داشتند، نرخی در حدود 20%. علت این است که نماینده‌های انتخاب شده جزو ویژگی‌های غیرمفید هستند و در نهایت من بهترین نرخ کسب شده توسط این روش را ذکر کرده‌ام.

4-4) مقایسه کمی نتایج تجربی روشهای به کار گرفته شده.

در مقایسه روش‌های استفاده شده همانطور که در جدول (4) نیز مشاهده خواهید کرد روش استخراج ویژگی با الگوریتم ژنتیک بهترین روش در بین همه‌ی روش‌ها می‌باشد. چون تعداد ویژگی‌ها را به میزان معقولی کاهش داده است و همچنین ویژگی‌هایی را در لیست نهایی انتخاب‌شده قرار داده است که مسلماً بهترین‌ها هستند. همچنین در بین روش‌های دسته‌بندی نیز روش پرسپترون چندلایه از روش بیزین جواب بهتری را کسب کرده است.

جدول 4: مقایسه‌ی نتایج کلیه روش‌های بکار گرفته شده.
Feature Extraction Method
Number of Features
Bayesian Error Rate
MLP Error Rate
PCA
11
14.37%
9.75%
LDA
10
17.50%
12.00%
KPCA
12
10.85%
6.37%
K-Means
4
6.25%
4.50%
GA
9
2.42%
1.20%

5) نتیجه‌گیری و بحث:

5-1) مقایسه کیفی نتایج این گزارش و روشهای گزارش قبل

در گزارش‌های قبل از روش‌های دسته‌بندی بیزین و پسپترون چندلایه استفاده کرده بودیم. تا کنون ما برای دسته‌بندی از همان ویژگی‌های استخراج شده‌ی پیش‌فرض استفاده می‌کردیم اما در این گزارش ویژگی‌هایی را برگزیدیم که خوشبختانه در برخی موارد نرخ تشخیص بالاتر رفت و این نشان بر این است که در مجموعه‌ی ویژگی‌های داده شده ویژگی‌هایی نیز وجود دارند که مفید نیستند و بلکه موجب کاهش نرخ تشخیص و دسته‌بندی می‌شوند. حال با مقایسه کردن دو جدول زیر مشاهده می‌کنیم که در هر دو روش در برخی حالات با کاهش تعداد ویژگی‌ها نرخ تشخیص را بالا برده‌ایم. جدول (5) نتایج حاصل از همین دو روش دسته‌بندی هستند که ما قبلاً و با ویژگی‌های قبلی یعنی همان 16 ویژگی بدست آورده ایم را نشان می‌دهد.

جدول 5: نتایج روش‌های بکار گرفته شده با استفاده از 16 ویژگی اولیه.
Classification
Method
Bayesian
MLP
Recognition
Rate
84.6%
93.62%
Error Rate
15.4%
3.38%
جدول (6) نیز موارد بهبودیافته را با انتخاب بهینه‌ی ویژگی‌ها نشان می‌دهد. در این جدول مواردی که نرخ تشخیص آنها نسبت به قبل بهبود یافته است با رنگ تیره مشخص شده اند.

جدول 6: نتایج با استفاده از ویژگی‌های بهینه شده.
Classification Feature Method
Extraction Method
Bayesian
MLP
PCA
85.63%
90.25%
LDA
82.5%
88%
KPCA
89.15%
93.63%
K-Means
93.75%
95.50%
GA
97.58%
98.8%

5-2) مقایسه کیفی با نتایج تجربی سایر مقالات (معتبر).

در مرجع [4] با استفاده از روش MLP در تشخیص کاراکتر ها استفاده شده است. در این ژورنال از الگوریتم تعدیل میزان ازبین رفتن دینامیک برای آموزش شبکه عصبی استفاده می شود. این روش بر روی 3 مجموعه داده از جمله مجموعه داده UCI ارزیابی شده است. لازم به ذکر است که در این ژورنال الگوریتم دسته‌بندی پرسپترون چندلایه با همان 16 ویژگی اولیه انجام شده است و البته نتایج ما با آنها قابل مقایسه است. این نتایج در ادامه در جدول (7) آورده شده است.
جدول 7: نتایج دسته‌بندی همراه با نرخ خطا
Classification Method
MLP
Dataset
Letter
Recognition rate
76.41%
Error rate
23.59%
در مرجع [5] با استفاده از روش Bayesian در تشخیص کاراکتر ها استفاده شده است. در این ژورنال از الگوریتم تعدیل میزان ازبین رفتن دینامیک برای آموزش شبکه عصبی استفاده می شود. این روش بر روی مجموعه داده UCI ارزیابی شده است. نتایج این مقاله در ادامه در جدول (8) آورده شده است.
جدول 8: نتایج دسته‌بندی همراه با نرخ خطا
Classification Method
Bayesian
Dataset
UCI
Recognition rate
69.8%
Error rate
30.2%

در مرجع [6] نیز روش MLP برای دسته‌بندی داده‌ها با استفاده از دو مجموعه ویژگی مختلف بکار گرفته شده است. در این مقاله روش‌های استخراج ویژگی برای دو حالت مختلف ذکر نشده است. این نتایج در ادامه آورده شده است. نتایج کسب شده در این روش غیرخطی از نتایج ما کمترند. جدول (9) این موضوع را نشان می‌دهد.
جدول 9: نتایج دسته‌بندی برای دو مجموعه‌ی متفاوت از ویژگی‌ها.
Feature set
Classification Method
MLP
A
Recognition rate
79%
B
81%

6) مراجع

[1] Support Vector Networks, Machine Learning, Vol 20. C. Cortes, V. Vapnik. 2995. pp. 273-297.

[2] Statistical Pattern Recognition, Second Edition. Andrew R. Webb, QinetiQ Ltd., Malvern, UK.

[3] UCI Dataset Website: http://www.fizyka.umk.pl/~duch/software.html

[4] Improving RBF-DDA Performance on Optical Character Recognition through Weights Adjustment, Adriano L. I. Oliveira Member, IEEE, and Silvio R. L. Meira, 2006 International Joint Conference on Neural Networks. Sheraton Vancouver Wall Centre Hotel, Vancouver, BC, Canada, July 16-21, 2006. - 0-7803-9490-9/06/$20.00/©2006 IEEE.

[5] A Weighted Combination of Classifiers Employing Shared and Distinct Representations, J. Kittler, S.A. Hojjatoleslami, Computer Vision and Pattern Recognition, 1998. Proceedings. 1998 IEEE Computer Society Conference. ©1998 IEEE.

[6] A New Multiple Classifiers Combination Algorithm, Jianpei Zhang, Lili Cheng, and Jun Ma, College of Computer Science and Technology, Harbin Engineering University, China, Proceedings of the First International Multi-Symposiums on Computer and Computational Sciences (IMSCCS'06), 0-7695-2581-4/06 $20.00 © 2006 IEEE.

با تشکر از حسن توجه شما- سید مجید غفوری

4/11/1386

[1] Fitness function

[2] Crossover

[3] Mutation

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