بایگانی برچسب برای: dv

مثال (۲) : بهبود کارایی الگوریتم سیستم ایمنی مصنوعی در مسائل بهینه‌سازی

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

در مثال ارائه شده جواد‌زاده و میبدی تلاش در تقویت الگوریتم‌های سیستم ایمنی مصنوعی با استفاده از استراتژی ترکیب دارند. بدین صورت که از یک هیوریستیک جستجوی محلی در آنتی‌بادی های حافظه استفاده می‌شود.

ترکیب الگوریتم سیستم ایمنی مصنوعی و جستجوی محلی

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

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

Code New Algorithm

 

در ادامه روند الگوریتم ، پس از بهبود آنتی بادی های سلول های حافظه ، علاوه بر اضافه نمودن تعداد آنتی بادی ها به صورت تصادفی به جمعیت آنتی بادی ها ، بخشی از آنتی بادی های حافظه برای افزایش سرعت همگرایی به جمعیت آنتی بادی ها افزوده می شود. برای اعمال عملگر ابرجهش از رابطه های (۷) و (۸) و برای تعیین اندازه جمعیت برای n آنتی بادی از رابطه (۹) استفاده شده است.

روابط 7 و8

 

 

 

 

در رابطه (۷) متغیر c’ تعداد آنتی بادی هایی است که تحت تاثیر عملگر ابرجهش قرار گرفته اند. و (N(0,1 عدد تصادفی تابع گوسین با میانگین صفر و انحراف معیار δ=1 می باشد.
در رابطه (۸) پارامتر β، پارامتری برای کنترل ضریب کاهش تابع نمایی و *f مقدار شایستگی است که در بازه [۰,۱] نرمال شده است.

روابط 9

 

 

 

در رابطه (۹) متغیر Nc مجموع اعضاء جمعیت تولید شده برای آنتی بادی ها، ضریب تکثیر، N تعداد آنتی بادی ها و ()round عملگری است که آرگومان ورودی خود را به نزدیکترین عدد گرد می نماید.

نتایج آزمایش ها

در این قسمت شبیه سازی راهکار پیشنهادی برای چهار تابع محک استاندارد یعنی روابط (۱۰) تا (۱۳) به ازاء کیفیت جواب بدست آمده بر اساس روش های مختلف جستجوی محلی توسط جوادزاده و میبدی مورد مطالعه قرار گرفته است.

روابط 10و11و12

 

 

 

 

 

 

روابط 13

 

جهت ارزیابی راهکارهای پیشنهادی (بجز در مورد جستجوی محلی تپه نوردی) توابع مورد آزمایش به صورت سی بُعدی و آنتی بادی ها به صورت اعداد حقیقی استفاده شده و راهکار پیشنهادی با ۱۰۰ بار تکرار برای بدست اوردن پاسخ بهینه مورد آزمون قرار گرفتند.

راهکار پیشنهادی با جستجوی محلی تپه نوردی

راهکار پیشنهادی از جستجوی تپه نوردی به عنوان جستجوی محلی استفاده می نماید و آنتی بادی های حافظه با استفاده از آن بهبود می یابند.جستجوی تپه نوردی مورد استفاده ، جستجوی تپه نوردی کامل است که در این روش مام همسایه ها در شعاع همسایگی معین بررسی و بهترین همسایه ، جایگزین حالت فعلی می گردد.

جواد زاده و میبدی در ادامه برای مطالعه روند همگرایی راهکار پیشنهادی با جستجوی محلی تپه نوردی ، بهترین ، بدترین ، میانگین و انحراف معیار ارزش تمام آنتی بادی های حافظه برای تمام توابع (روابط ۱۰ تا ۱۳) را آزمایش نموده اند. در جدول ۴ نتایج شیه سازی شده را برای راهکار پیشنهادی مشاهده می نمائید.

 

جدول 4

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

بنابراین برای ارزیابی این راهکار پیشنهادی ، توابع مود آزمایش به صورا دو بعدی و آنتی بادی ها به صورت اعداد حقیقی کد گذاری می شوند.

راهکار پیشنهادی با جستجوی محلی ژنتیک

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

جدول ۵ نتایج شبیه سازی راهکار پیشنهادی را نشان می دهد. نتایج نشان می دهند که راهکار پیشنهادی با جستجوی محلی ژنتیک به جواب های بهینه همگرا می شوند و برای مقایسه ، نتایج الگوریتم سیستم ایمنی مصنوعی استاندارد در جدول ۶ مشاهده می شود.

 

جدول 5 و 6

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

 

جدول 7

با توجه به نتایج حاصله در جدول های ۵ و ۶ جوادزاده و میبدی نتیجه گیری کرده اند که کارایی راهکار پیشنهادی نسبت به الگوریتم سیستم ایمنی مصنوعی تائید شده است.

نتیجه گیری

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

 

برای دریافت مقاله به صورت pdf بر روی لینک کلیک کنید: Artificial-Immune-System-AIS

منبع


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

هدف اصلی سیستم ایمنی طبیعی در بدن انسان، تمایز بین بافت خودی و عامل خارجی (غیر خودی یا آنتی ژن) است. سیستم ایمنی بدن، به مواد خارجی یا مواد بیماری زا (معروف به آنتی ژن) عکسل العمل نشان می دهد. در حین این واکنش، سیستم ایمنی برای تشخیص بهتر آنتی ژن دیده شده، تطبیق یافته و حافظه ای برای ثبت آنتی ژن های رایج ایجاد می کند. حافظه ایجاد شده باعث بهبود و سرعت بخشیدن به واکنش سیستم ایمنی تطبیق پذیر در برخوردهای آینده با همان آنتی ژن خواهد شد. شناسایی آنتی ژن ها منجر به تولید سلول های خاصی می شود که آنتی ژن را غیر فعال و یا نابود می کند. سیستم ایمنی بدن، همانند یک سیستم تشخیص الگو کار می کند، برای تشخیص الگوهای غیر خودی از الگوهای خودی.

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

وظیفه تشخیص آنتی ژن ها بر عهده گلبول سفید با نام لنفوسیت است. دو نوع لنفوسیت وجود دارد: T-Cell و B-Cell، که هر دو در مغز استخوان تولید می شوند. B-Cell ها در تماس با آنتی ژن ها، آنتی بادی هایی تولید می کند که در مقابل آنتی ژن ها موثر است. آنتی بادی ها پروتئین های شیمیایی هستند و دارای شکل Y مانند هستند.

آنتی بادی ها دارای گیرنده های خاص برای تشخیص آنتی ژن ها هستند. زمانی که تماس بین آنتی بادی با یک B-Cell و آنتی ژن برقرار می شود، تکثیر کلونی در سطح B-Cell اتفاق می افتد و به کمک T-Cell تقویت می شود. در صورت آنکه یک آنتی بادی به جای تشخیص آنتی ژن، بافت خودی را به عنوان عامل خارجی تشخیص داد خودش را نابود می کند.

در حین تکثیر کلونی، دو نوع از سلول شکل می گیرد: سلول های پلاسما و سلول های حافظه. وظیفه سلول های حافظه تکثیر سلول های پلاسما برای واکنش سریعتر در مواجه تکراری با آنتی ژن ها و تولید آنتی بادی برای آن هاست. سلول پلاسما یک سلول B-Cell است که آنتی بادی تولید می کند.

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

از عملکرد سیستم ایمنی بدن در تشخیص و انهدام عوامل خارجی برای طراحی الگوریتم های متنوعی در بهینه سازی، یادگیری ماشین و شناسایی الگو بهره برداری شده است. سیستم ایمنی مصنوعی یا AIS مخفف Artificial Immune System است که اولین بار به عنوان یک الگوریتم توسط دی کاسترو و زوبن تحت نام الگوریتم کلونی ارائه شد.

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

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

خصوصیات مهم سیستم ایمنی مصنوعی به شرح زیر است:

1- استفاده از نمایش رشته بیتی

2- طول ثابت و یکسان برای هر سلول

3- به کارگیری یک جمعیت یا تعداد اعضا ثابت، البته در سیستم ایمنی مصنوعی می توان با تعریف طول عمر برای سلول های جمعیت، از یک جمعیت با تعداد اعضای متغیر نیز بهره برد.

4- در شبه کد، Selectionsize نشان گر تعداد سلول هایی است که برای انجام عملیات تکثیر، از جمعیت دور جاری در حلقه while انتخاب می شوند. به خاطر وجود همین مرحله در سیستم ایمنی مصنوعی، ماهیتی مشابه انتخاب داروینی وجود دارد.

5- برای تعیین عدد تکثیر سلولی برای یک سلول ایمنی انتخاب شده در تابع Clone از رابطه (Nc=Round(β,N,R استفاده می شود. در این رابطه Nc بیانگر تعداد کپی سلول β مبین نرخ تکثیرClonerate، همچنین N نشان گر تعداد سلول های جمعیت (Populationsize) و R بیانگر برازش مبتنی بر رتبه سلول مورد تکثیر است.

6- استفاده از جهش معکوش سازی بیت در عملگر فراجهش (عملگر جهش در AIS عملگر اصلی است).

7- برخلاف الگوریتم های تکاملی که معمولا احتمال جهش مقداری ثابت است، احتمال فراجهش Phm در سیستم ایمنی مصنوعی مقداری متغیر داشته و اندازه آن بستگی به برازش سلول ایمنی (عضو جمعیت) دارد. برای محاسبه احتمال فراجهش داریم: (Phm=exp(-Pm.f، در این رابطه Pm نرخ جهش بوده و f برازش سلول ایمنی مورد جهش است.

 

Code

 

منبع

 

 

سیستم ایمنی مصنوعی (AIS) قسمت 1
سیستم ایمنی مصنوعی (AIS) قسمت 2
سیستم ایمنی مصنوعی (AIS) قسمت 3
سیستم ایمنی مصنوعی (AIS) قسمت 4
سیستم ایمنی مصنوعی (AIS) قسمت 5
سیستم ایمنی مصنوعی (AIS) قسمت 6

فرآیند فعال شدن سیستم ایمنی بدن انسان

در بدن انسان برای تولید سلول های B و T از الگوریتم انتخاب منفی استفاده می شود. این سلول ها در مغز استخوان و تیموس به صورت تصادفی ساخته می شوند. در این دو محیط فقط سلول های خودی دیده می شود. این سلول ها اگر با یک سلول خودی منطبق شدند از بین می روند و در غیر این صورت وارد بدن می شوند. این سلول ها دارای ویژگی خود تحمل پذیری کامل می باشند. آین ویژگی بدین معنا است که سلول B یا T تنها با آنتی ژن سلول های غیرخودی منطبق می شوند.سلول های B دارای ویژگی خود تحمل پذیری کامل نمی باشند زیرا نمونه همه سلول های بدن در مغز استخوان وجود ندارد ولی سلول های T به دلیل تکامل و بالغ شدن در تیموس دارای این ویژگی می باشند. اگر آنتی بادی یک سلول B با آنتی ژن یک سلول غیرخودی منطبق شود یک سیگنال اولیه ایجاد می شود.بنابراین اگر یک سلول B با یک سلول غیرخودی مواجه شود آن را می بلعد.اگر گیرنده های TCR موجود بر روی یک سلول T با الگوهای یک سلول B بتواند منطبق شود و در صورتی که سلول T قبلا فعال شده باشد آنگاه سلول T سیگنال دوم یا سیگنال کمک را منتشر می کند. این سیگنال دوم نشان می دهد که یک سلول غیرخودی تشخیص داده شده است و سپس الگوریتم انتخاب با تکثیر آغاز می شود.

 

الگوریتم انتخاب با تکثیر

الگوریتم انتخاب با تکثیر

 

در الگوریتم انتخاب با تکثیر ، بدن شروع به ایجاد سلول های B جدید از روی سلول های B که با آنتی ژن سلول بیگانه جفت شده است ، می کند.سلول های تازه ایجاد شده با سلول قبلی کمی تفاوت دارند و بهتر با آنتی ژن مورد نظر جفت می شوند.تعدادی از این سلول ها به سلول های حافظه تبدیل می شوند و مدت زمان بیشتری در بدن زنده می مانند و می توانند مرحله تشخیص را در حمله های بعدی تسریع نمایند.معمولا برای آغاز شدن الگوریتم انتخاب با تکثیر به هر دو سیگنال اول و دوم نیاز است. البته الگوریتم انتخاب با تکثیر در یک حالت می تواند بدون وجود سیگنال دوم شروع شود. این حالت هنگامی رخ می دهد که میزان تطبیق سلول B و سلول غیرخودی از حد آستانه بیشتر باشد. این مورد در صورتی اتفاق می افتد که جفت شدن با یک سلول حافظه صورت پذیرد.

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

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

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

هر رویداد الکتروشیمیایی که در خارج سلول رخ دهد و توسط گیرنده های سلول به داخل آن منتقل شود و باعث ایجاد رفتاری در سلول شود، یک سیگنال سلولی نامیده می شود.ارتباط سیگنالی بین سلول ها می تواند توسط ارتباط هایی با فواصل طولانی حاصل از ترشح هورمون ها یا ارتباط های محلی میان مولکول های سطح سلول های مجاور ، برقرار گردد.

سیگنال سازی سلول ها به دو دسته هورمونی و فیزیکی تقسیم بندی می شود. سیگنال سازی هورمونی امکان ارتباط بین سلول های دور از هم را بوسیله مولکول های کوچک و قابل حمل فراهم می سازد. سیگنال سازی فیزیکی ارتباط بین سلول ها را به صورت فیزیکی و مستقیم فراهم می سازد. این نوع سیگنال سازی بین سلول های T و سلول های عرضه کننده آنتی ژن امکان پذیر است. این روش با کمک سایتوکین ها صورت می پذیرد.

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

معرفی و تعریف سیستم های ایمنی مصنوعی

سیستم ایمنی مصنوعی به سیستم های سازگار گفته می شود که از ایده مکانیزم دفاعی بدن انسان الهام گرفته و راه حلی برای مسائل پیچیده ارائه نموده اند. کاربرد سیستم ایمنی مصنوعی را می توان به صورت ذیل طبقه بندی نمود:

۱٫ تشخیص عیب (Fault Detection)
۲٫ تشخیص ناهنجاری (Anomaly Detection)
۳٫ تشخیص نفوذ (Intrusion Detection)
۴٫ امنیت اطلاعات (Information Security)
۵٫ مسائل بهینه سازی (Optimization Problems)
۶٫ دسته بندی الگوها (Patterns Classification)
۷٫ زمانبندی (Scheduling)
۸٫ خوشه بندی (Clustering)
۹٫ سیستم های یادگیرنده (Learning Systems)

سیستم ایمنی بدن و بالطبع سیستم ایمنی مصنوعی دارای ویژگی های ذیل است:

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

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

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

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

5. قابلیت یادگیری : سیستم ایمنی قادر است عوامل بیماری زای جدیدی را که مشاهده می کند به خاطر بسپارد.

6. همکاری گروهی : در سیستم ایمنی سلول ها به صورت گروهی ، موازی و توزیع شده برای تشخیص و انهدام همکاری دارند.

7. چند لایه ای بودن : هیج موجودیتی در سیستم ایمنی و بدن انسان ، یک مکانیزم کامل امنیتی و دفاعی را فراهم نمی کند. بلکه هر لایه سیستم ایمنی به صورت مستقل عمل کرده و و با بقیه لایه ها در ارتباط است.

8. تنوع و گوناگونی : سیستم ایمنی در برابر انواع مختلفی از نفوذها مقاومت کرده و تسلیم نمی شود.

9. بهینه بودن منابع : در سیستم ایمنی با ایجاد مرگ و تکثیر سلولی ، همواره یک نمونه فضای کوچکی از فضای جستجوی آنتی ژن ها در هر زمان نگهداری می شود.

10. پاسخ انتخابی : در سیستم ایمنی ، پس از شناسایی یک آنتی ژن ، پاسخ های متفاوتی داه می شود و همواره به یک شکل عمل نمی شود.

برای حل یک مسئله با استفاده از سیستم ایمنی مصنوعی باید سه مرحله ذیل انجام پذیرد.
(۱) نحوه نمایش داده های مسئله یا تعریف فضای شکل.
(۲) معیار اندازه گیری میل ترکیبی.
(۳) انتخاب یک الگوریتم ایمنی مصنوعی برای حل مسئله.

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

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

با توجه به دو تعریف فضای شکل و میل ترکیبی مکمل بودن یک آنتی بادی و یک آنتی ژن ، شناسایی یک آنتی ژن توسط آنتی بادی با استفاده از مقدار آستانه میل ترکیبی تعریف می شود. اگر میزان میل ترکیبی یک آنتی بادی با یک آنتی ژن بیشتر از حد آستانه میل ترکیبی باشد آنگاه آنتی ژن در محدوده شناسایی آنتی بادی قرار گرفته است. به بین دیگر اگر فاصله یک آنتی بادی و یک آنتی ژن از حد آستانه شناسایی کمتر باشد ، آنتی بادی ، آنتی ژن را شناسایی می کند.بنابراین هر آنتی بادی می تواند تعدادی آنتی ژن را که تفاوت های اندکی با یکدیگر دارند شناسایی کند و در نتیجه تعداد آنتی بادی ها می تواند کمتر از آنتی ژن ها باشد.

تاریخچه سیستم های ایمنی مصنوعی

پایه های مدل سازی ریاضی بخش هایی از دستگاه ایمنی بدن در سال ۱۹۷۴ میلادی توسط نیلز جِرن انجام پذیرفته است.اولین ایده استفاده از فرآیندهای دستگاه ایمنی بدن در کاربردهای محاسباتی در سال ۱۹۸۶ میلادی توسط جان فارمر، نورمن پاکارد و آلن پِرِلسون مطرح گردید. آنها رفتار پویای سیستم ایمنی را با معادلات دیفرانسیل مدل کرده و نشان دادند که می توان از این مدل برای یادگیری مسائل استفاده نمود.

تا اوایل دهه ۹۰ میلادی بیشتر کاربردهای دستگاه ایمنی بدن در سیستم های محاسباتی ، شامل یکسری شبیه سازی هایی مانند شبیه سازی بیماری ایدز و مدلسازی ارتباطات سلولی بود و در ادامه با کارهای استفانی فارِست، هوگوس بِرسینی، جاناتان تیمیس، مارک نیل، دیپانکار داسگوپتا، لیندرو دی کاسترو بطور گسترده تری پیگیری شد.

در سال ۱۹۹۰ میلادی هوگوس بِرسینی و فراسیسکو وارِلا ایده شبکه های ایمنی که پیشتر توسط نیلز جِرن و آلن پرلسون در زمینه دستگاه ایمنی مطرح شده بود را برای سیستم های محاسباتی مطرح کردند.

فارِست و داسگوپتا تاکنون مطالعات گسترده ای درباره الگوریتم انتخاب منفی انجام داده اند و دی کاسترو مطالعاتی روی انتخاب مبتنی بر تکثیر انجام داده است. اولین کتاب درباره سیستم های ایمنی مصنوعی نیز در سال ۱۹۹۹ میلادی توسط داسگوپتا منتشر گردید.

در سال ۲۰۰۳ میلادی یووی آیلکین به همراه تیمی از اساتید و دانشجویان رشته های علوم کامپیوتر و ایمنی شناسی دانشگاه ناتینگهام انگلستان نظریه خطر را ارائه نموند که تاکنون این تیم گزارشات و مقالات متعددی در زمینه کاربرد نظریه خطر در سیستم های محاسباتی منتشر نموده اند.
سیستم ایمنی مصنوعی (AIS) قسمت 1
سیستم ایمنی مصنوعی (AIS) قسمت 2
سیستم ایمنی مصنوعی (AIS) قسمت 3
سیستم ایمنی مصنوعی (AIS) قسمت 4
سیستم ایمنی مصنوعی (AIS) قسمت 5
سیستم ایمنی مصنوعی (AIS) قسمت 6

بافت‌نگار

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

برای نمونه بافت‌نگار فراوانی، نمودار مستطیلی با پایه‌ای به پهنای یک واحد بر روی هر مقدار مشاهده شده‌است که ارتفاع هر ستون آن برابر با فراوانی داده مورد نظر همخوانی دارد

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

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

بافت‌نگار

Iris Petal Length Histogram.svg

One of the Seven Basic Tools of Quality

معرفی‌کننده نخست : کارل پیرسون

کاربرد : توزیع احتمال. To roughly assess the  of a given variable by depicting the frequencies of observations occurring in certain ranges of values

 

نمونه‌ای از یک بافت‌نگار

نمونه‌ای از یک بافت‌نگار

 در عکاسی

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

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

 منبع


هیستوگرام تصویر

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

در یک تصویر دیجیتال، مقادیر پیکسل‌ها بیانگر ویژگی‌های آن تصویر (مانند میزان روشنایی تصویر و وضوح تصویر) است. هیستوگرام یک تصویر در حقیقت بیان گرافیکی میزان روشنایی تصویر می‌باشد. مقادیر روشنایی (برای مثال ۰-۲۵۵) در طول محور X بیان شده و میزان فراوانی هر مقدار در محور Y بیان می‌گردد.

تصویر ۸ بیتی (۰-۲۵۵) در بالا و هیستوگرام همان تصویر در پایین. محور افقی بین ۰ تا ۲۵۵ و محور قائم نشانگر تعداد پیکسل‌ها است.

 

تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو

تصویری که هیستوگرام زیر از آن گرفته شده‌است

 هیستوگرام تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو.

منبع


 

نمودار هیستوگرام تصویر نموداری است که در آن تعداد پیکسل های هر سطح روشنایی در تصویر ورودی مشخص می شود. فرض کنید تصویر ورودی یک تصویر Grayscale با 256 سطح روشنایی باشد ، بنابراین هریک از پیکسل های تصویر در شدت روشنایی در بازه [0..255] می توانند داشته باشند. برای به دست آوردن هیستوگرام تصویر ، با پیمایش پیکسل های تصویر ، تعداد پیکسل های هر سطح روشنایی را محاسبه می کنیم .

 

یک تصویر Grayscale و محاسبه هیستوگرام آن

هیستوگرام نرمال نیز از تقسیم کردن مقادیر هیستوگرام به تعداد کل پیکسل های تصویر به دست می آید. نرمال سازی هیستوگرام موجب می شود که مقادیر هیستوگرام در بازه [0,1] قرار گیرند. شکل زیر تصویری را به همراه هیستوگرام نرمال آن نشان می دهد :

 

 

دانه های برنج     هیستوگرام نرمال تصویر دانه های برنج

 

تعدیل هیستوگرام ( Histogram Equalization )

به تصویر زیر توجه کنید :

 

تصویر دانه های برنج با کنتراست پایین   هیستوگرام تصویر دانه های برنج با کنتراست پایین

 

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

 

تعدیل سازی هیستوگرام تصویر با کنتراست پایین و تولید تصویر با کنتراست بالا    تصویر دانه های برنج با کنتراست پایین

هیستوگرام تعدیل سازی هیستوگرام تصویر با کنتراست پایین و تولید تصویر با کنتراست بالا  هیستوگرام تصویر دانه های برنج با کنتراست پایین

 

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

1 ) هیستوگرام تصویر را محاسبه می کنیم. فرض کنید مقادیر هیستوگرام در آرایه hist قرار گیرد.

  2 ) با استفاده از فرمول زیر فراوانی هیستوگرام را محاسبه می کنیم :

histCum[ i ] = histCum[ i-1 ] + hist[ i ]

  3 ) از فرمول زیر استفاده کرده و هیستوگرام تعدیل شده را محاسبه می کنیم :

eqHist[i] = Truncate( [(L * histCum[i]) – N]/N  )

که در این فرمول L تعداد سطوح خاسکتری و N تعداد کل پیکسل ها را نشان می دهد

  4 ) در مرحله نهایی مقادیر جدید پیکسل ها را به صورت زیر مقدار دهی می کنیم :

Result[ i , j ]  = eqHist[  input[ i , j ] ]

که Result تصویر خروجی و input تصویر ورودی را نشان می دهد

منبع


 

هیستوگرام به معنی نشان دادن میزان فراوانی مقادیر بر روی نمودار است. در تصویر شما با شدت نور سر و کار دارید که بازه آن برای تصویر خاکستری از 0 تا 255 است یعنی تعداد level ها یا bin ها 256 تا است.

 

یک تصویر grayscale و هیستوگرام آن

 

حال اگر تصویر رنگی باشد 3 کانال مجزای خاکستری خواهد بود.

 

تصویر رنگی و سه کانال هیستوگرام آن

 

برای محاسبه هیستوگرام می بایست تعداد تکرار یا همون فرکانس شدت ها رو در تصویر محاسبه کرد یعنی تعداد هر شدت نور را در تصویر شمارش کرده و در level یا bin مربوط قرار داد.

نکته ای که وجود دارد این است که همیشه قرار نیست 256 تا bin وجود داشته باشد. می توان 10 تا bin تعریف کرد و در هر بازه هر bin فراوانی ها را با هم جمع کرد.

بین ها

در OpenCV برای محاسبه هیستوگرام می توان از تابع calcHist استفاده کرد. تابع calcHist می تواند در چند کانال یا چند بعد هم هیستوگرام را محاسبه می کند و بایستی در هر کانال تعداد bin ها را مشخص کرد.

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

 

تعقیب چهره شخص بدون detection در هر فریم

منبع

 


منابع

  1. https://fa.wikipedia.org
  2. https://fa.wikipedia.org
  3. http://smpro.blogfa.com
  4. http://www.7khatcode.com

الگوریتم ژنتیک

  • نحوه نمایش مسئله:

می‌دانیم اگر دو وزیر در یک ستون قرار گیرند قطعاً به جواب نخواهیم رسید. بنابراین قرار دادن دو وزیر در یک ستون باعث غیرامیدبخش شدن جواب مسئله می‌شود.

برای نمایش مسئله در کروموزوم‌ها از این ویژگی استفاده کرده و به صورت زیر عمل می‌کنیم:

یک آرایه تک بعدی ایجاد می‌کنیم که به تعداد ستون‌های صفحه شطرنج عنصر دارد. هر عنصر از این آرایه نشان می‌دهد که وزیر در کدام سطر از آن ستون قرار دارد. به عنوان مثال اگر مسئله ۸ وزیر را در نظر بگیریم، آرایه تک بعدی باید دارای ۸ عنصر باشد. فرض کنید آرایه دارای مقادیر زیر باشد:

۸ , ۷ , ۶ , ۵ , ۴ , ۳ , ۲ , ۱

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

  • تولید جمعیت اولیه:

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

برای محاسبه میزان بهینگی جواب تعداد جفت وزیرهایی را که به هم گارد می‌دهند، محاسبه می‌کنیم. برای مسئله ۸ وزیر در بدترین حالت هر وزیر با همه وزیرهای دیگر گارد می‌دهد (فرض کنید همه وزیرها در یک سطر قرار گیرند). در این حالت حداکثر تعداد جفت وزیرهایی که به همگدیکر کارد می‌دهند ۲۸ جفت است:

۷ + ۶ + ۵ + ۴ +۳ + ۲ + ۱

در حالت کلی برای مسئله n وزیر حداکثر تعداد جفت وزیرهایی که به همدیگر گارد می‌دهند به صورت زیر محاسبه می‌شود:

۱+ ۲ +.. +(n-۱) = (n * (n-۱)) /۲
  • برای محاسبه میزان بهینگی هر کروموزوم از فرمول زیر استفاده می‌کنیم:
Fitness[i] =1 – (Guard(chromosome[i])) / MaxGuards
  • حداکثر تعداد گاردها:
MaxGuards
  • تعداد جفت وزیرهایی که در کروموزوم ام همدیگر را گارد می‌دهند:
 Guard(chromosome[i])

 

منبع

 


پیاده سازی الگوریتم ۸ وزیر با استفاده از الگوریتم ژنتیک

راهکاری که برای حل یک مسئله با الگوریتم ژنتیک استفاده می شود تکامل می یابد. الگوریتم ژنتیک مثل هر الگوریتم بهینه سازی دیگر با تعریف متغیرهای بهینه سازی آغاز می شود و مانند الگوریتم های بهنیه سازی دیگر نیز خاتمه می یابد یعنی با تست همگرایی.

یک الگوریتم GA دارای پارامترهای زیر است:

  • : Fitnessتابعی برای ارزیابی یک فرضیه  که مقداری عددی به هر فرضیه نسبت میدهد
  • : Fitness_threshold مقدار آستانه که شرط پایان را معین میکند
  • : population تعداد فرضیه هائی که باید در جمعیت در نظر گرفته شوند
  • : crossover rate  در صدی از جمعیت که در هر مرحله توسط الگوریتم crossover  جایگزین میشوند
  • :mutation rate  نرخ mutation

الگوریتم GA  به صورت زیر کار می کند:

  • : Initializeجمعیت را با تعداد population فرضیه بطور تصادفی مقدار دهی اولیه کنید.
  • : Evaluateبرای هر فرضیه h در population مقدار تابع Fitness(h) را محاسبه نمائید.
  • تا زمانیکه[maxh Fitness(h)] < Fitness_threshold یک جمعیت جدید ایجاد  کنید.
  • فرضیه ای که دارای بیشترین مقدار Fitness است را برگردانید.

روش های مختلف crossover:

Single-point crossover

  • یک نقطه تصادفی در طول رشته انتخاب میشود.
  • والدین در این نقطه به دوقسمت میشوند.
  • هر فرزند با انتخاب تکه اول از یکی از والدین و تکه دوم از والد دیگر بوجود میاید.

روشهای دیگر Crossover

در crossover یکنواخت بیتها بصورت یکنواخت از والدین انتخاب می شوند.

اپراتورهای ژنتیکی Mutation :

  • اپراتور mutation برای بوجود آوردن فرزند فقط از یک والد استفاده میکند. اینکار با انجام تغییرات کوچکی در رشته اولیه  بوقوع میپیوندد.
  • با استفاده از یک توزیع یکنواخت یک بیت بصورت تصادفی اتنخاب و مقدار آن تغییر پیدا میکند.
  • معمولا mutation بعد از انجام crossover اعمال میشود.

تابع fitness  معیاری برای رتبه بندی فرضیه هاست که کمک میکند تا فرضیه های برتر برای نسل بعدی جمعیت انتخاب شوند. نحوه انتخاب این تابع بسته به کاربر مورد نظر دارد

در روش معرفی شده در الگوریتم ساده GA احتمال انتخاب یک فرضیه برای استفاده در جمعیت بعدی بستگی به نسبت fitness  آن به fitness  بقیه اعضا دارد. این روش Roulette Wheel selectionنامیده میشود.

روش جستجوی GA با روشهای دیگر مثل شبکه های عصبی تفاوت دارد:

در شبکه عصبی روش Gradient descent بصورت  هموار از فرضیه ای به فرضیه  مشابه دیگری حرکت میکند در حالیکه GA  ممکن است بصورت ناگهانی فرضیه والد را با فرزندی جایگزین نماید که تفاوت اساسی با والد آن داشته باشد.از اینرو احتمال گیر افتادن GA در مینیمم محلی کاهش می یابد. با این وجود GA با مشکل دیگری روبروست که crowding  نامیده میشود crowding پدیده ای  است که در آن  عضوی که سازگاری بسیاربیشتری از بقیه افراد جمعیت دارد بطور مرتب تولید نسل کرده و با تولید اعضای مشابه درصد عمده ای از جمعیت را اشغال میکند. راه حل رفع مشکل Crowdingاستفاده از ranking  برای انتخاب نمونه ها است، با اختصاص رتبه به فرضیه ای که بسیار بهتر از بقیه عمل میکند.

مسئله ۸ وزیر:

بدین ترتیب دیدیم که مسیر میان اجزای الگوریتم ژنتیک به ترتیب زیر است:

  1. تعریف توابع و متغیرها
  2. تولید جمعیت اولیه
  3. دیکد کردن کروموزوم ها
  4. پیدا کردن هزینه برای هر کروموزوم
  5. انتخاب جفت ها
  6. جفت گیری
  7. میوتیشن
  8. بررسی همگرایی
  9. خاتمه یا بازگشت به مرحله دیکد کردن کروموزوم ها

ژن عددی از ۰ تا n-1 است در ۸ وزیر n برابر با ۸ است بنابراین ژن عددی از ۰ تا ۷ می شود و کروموزوم آرایه ای از ژن هاست. که می تواند پاسخ مسئله باشد.

جمعیت هر نسل می تواند  تعداد کروموزوم ها را تعیین کند.

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

برای پیدا کردن هزینه مربوط به هر کروموزوم یک تابع هزینه تعریف می شود. نتیجه تابع هزینه یک cost value است که در نهایت میانگین cost valueهای هر نسل به نتیجه مطلوب نزدیک می شود.

کروموزوم هایی که فیتنس بالاتری (هزینه پایین تر) دارند برای تولید نسل بعدی استفاده می شوند.

در فرایند cross over فرزندان توسط والدین تولید می شوند که ترکیب آنها شامل ترکیب ژن های آنهاست. اگر نسل جدید حاوی کروموزومی باشد که نزدیک یا برابر با نتایج مطلوب باشد آنگاه مسئله حل شده است. در غیر اینصورت فرایند قبلی در نسل جدید هم پیاده سازی می شود مانند فرایندی که برای والدین آنها اتفاق افتاد. تا زمانی که به راه حل مناسب برسیم این روال ادامه دارد.

در شطرنج وزیر می تواند هر طور که مایل بود حرکت کند افقی عمودی یا در قطر. صفحه شطرنج ۸ در ۸ است یعنی ۸ سطر و ۸ ستون دارد . در مسئله ۸ وریز استاندارد به دنبال این هستیم که چگونه ۸ وزیر در خانه های جدول به گونه ای قرار بگیرند که هیچ یک دیگری را تهدید نکنند. در اینجا با الگوریتم ژنتیک این کار را انجام می دهیم.

برای تولید فرزندان از والیدن نیاز به crossover داریم که تصمیم می گیرد از دو والدین کدام ژن باید انتخاب شود.

 

مسئله چند وزیر قسمت 1
مسئله چند وزیر قسمت 2
مسئله چند وزیر قسمت 3
مسئله چند وزیر قسمت 4

1.A GABOR FILTER TEXTURE ANALYSIS APPROACH FOR HISTOPATHOLOGICAL BRAIN TUMOUR SUBTYPE DISCRIMINATION

Abstract Meningioma brain tumour discrimination is challenging as many histological patterns are mixed between the different subtypes. In clinical practice, dominant patterns are investigated for signs of specific meningioma pathology; however the simple observation could result in inter- and intra-observer variation due to the complexity of the histopathological patterns. Also employing a computerised feature extraction approach applied at a single resolution scale might not suffice in accurately delineating the mixture of histopathological patterns. In this work we propose a novel multiresolution feature extraction approach for characterising the textural properties of the different pathological patterns (i.e. mainly cell nuclei shape, orientation and spatial arrangement within the cytoplasm). The patterns’ textural properties are characterised at various scales and orientations for an improved separability between the different extracted features. The Gabor filter energy output of each magnitude response was combined with four other fixed-resolution texture signatures (2 model-based and 2 statistical-based) with and without cell nuclei segmentation. The highest classification accuracy of 95% was reported when combining the Gabor filters’ energy and the meningioma subimage fractal signature as a feature vector without performing any prior cell nuceli segmentation. This indicates that characterising the cell-nuclei self-similarity properties via Gabor filters can assists in achieving an improved meningioma subtype classification, which can assist in overcoming variations in reported diagnosis.
Keywords – texture analysis, Gabor filter, fractal dimension, meningioma histopathology, brain tumours

فایل PDF – در 14 صفحه- نویسنده : Omar Sultan Al-Kadi

A GABOR FILTER TEXTURE ANALYSIS APPROACH FOR HISTOPATHOLOGICAL BRAIN TUMOUR SUBTYPE DISCRIMINATION

پسورد فایل : behsanandish.com


2.A Review Paper on Gabor Filter Algorithm & Its Applications

Abstract— In applications of image analysis and computer vision, Gabor filters have maintained their popularity in feature extraction. The reason behind this is that the resemblance between Gabor filter and receptive field of simple cells in visual cortex. Being successful in applications like face detection, iris recognition, fingerprint matching; where, Gabor feature based processes are amongst the best performers. The Gabor features can be derived by applying signal processing techniques both in time and frequency domain. The models like human preattentive texture perception have been proposed which involves steps like convolution, inhibition and texture boundary detection. Texture features are based on the local power spectrum obtained by a bank of Gabor filters. The concept of sparseness to generate novel contextual multiresolution texture descriptors are described. In this paper we present the detailed study about the Gabor filter and its application.
Index Terms— Gabor filter, Gabor energy, image quality assessment, Gabor features, multiresolution techniques, segmentation, textured images..

فایل PDF – در 5 صفحه- نویسنده : Neelu Arora , Mrs. G. Sarvani

A Review Paper on Gabor Filter Algorithm & Its Applications

پسورد فایل : behsanandish.com


3.Comparison of texture features based on Gabor filters

 

Abstract -The performance of a number of texture feature operators is evaluated. The features are all based on the local spectrum which is obtained by a bank of Gabor filters. The comparison is made using a quantitative method which is based on Fisher’s criterion. It is shown that, in general, the discrimination effectiveness of the features increases with the amount of post-Gabor processing.

فایل PDF – در 6 صفحه- نویسنده : P. Kruizinga, N. Petkov and S.E. Grigorescu

Comparison of texture features based on Gabor filters

پسورد فایل : behsanandish.com


4.Evolutionary Gabor Filter Optimization with Application to Vehicle Detection

 

Abstract—Despite the considerable amount of research work on the application of Gabor filters in pattern classification, their design and selection have been mostly done on a trial and error basis. Existing techniques are either only suitable for a small number of filters or less problem-oriented. A systematic and general evolutionary Gabor filter optimization (EGFO) approach that yields a more optimal, problem-specific, set of filters is proposed in this study. The EGFO approach unifies filter design with filter selection by integrating Genetic Algorithms (GAs) with an incremental clustering approach. Specifically, filter design is performed using GAs, a global optimization approach that encodes the parameters of the Gabor filters in a chromosome and uses genetic operators to optimize them. Filter selection is performed by grouping together filters having similar characteristics (i.e., similar parameters) using incremental clustering in the parameter space. Each group of filters is represented by a single filter whose parameters correspond to the average parameters of the filters in the group. This step eliminates redundant filters, leading to a compact, optimized set of filters. The average filters are evaluated using an application-oriented fitness criterion based on Support Vector Machines (SVMs). To demonstrate the effectiveness of the proposed framework, we have considered the challenging problem of vehicle detection from gray-scale images. Our experimental results illustrate that the set of Gabor filters, specifically optimized for the problem of vehicle detection, yield better performance than using traditional filter banks.

 

فایل PDF – در 8 صفحه- نویسنده : Zehang Sun, George Bebis and Ronald Miller

Evolutionary Gabor Filter Optimization with Application to Vehicle Detection

پسورد فایل : behsanandish.com


5.Expression-Invariant Face Recognition via 3D Face Reconstruction Using Gabor Filter Bank from a 2D Single Image

Abstract— In this paper, a novel method for expression- insensitive face recognition is proposed from only a 2D single image in a gallery including any facial expressions. A 3D Generic Elastic Model (3D GEM) is used to reconstruct a 3D model of each human face in the present database using only a single 2D frontal image with/without facial expressions. Then, the rigid parts of the face are extracted from both the texture and reconstructed depth based on 2D facial land-marks. Afterwards, the Gabor filter bank was applied to the extracted rigid-part of the face to extract the feature vectors from both texture and reconstructed depth images. Finally, by combining 2D and 3D feature vectors, the final feature vectors are generated and classified by the Support Vector Machine (SVM). Favorable outcomes were acquired to handle expression changes on the available image database based on the proposed method compared to several state-of-the-arts in expression-insensitive face recognition.

Keywords—Face recognition; 3D shape recovery; Gesture and Behavior Analysis.

 

فایل PDF – در 6 صفحه- نویسنده : Ali Moeini, Hossein Moeini, Karim Faez

Expression-Invariant Face Recognition via 3D Face Reconstruction Using Gabor Filter Bank from a 2D Single Image

پسورد فایل : behsanandish.com


6.IMAGE RETRIEVAL BASED ON HIERARCHICAL GABOR FILTERS

Content Based Image Retrieval (CBIR) is now a widely investigated issue that aims at allowing users of multimedia information systems to automatically retrieve images coherent with a sample image. A way to achieve this goal is the computation of image features such as the color, texture, shape, and position of objects within images, and the use of those features as query terms. We propose to use Gabor filtration properties in order to find such appropriate features. The article presents multichannel Gabor filtering and a hierarchical image representation. Then a salient (characteristic) point detection algorithm is presented so that texture parameters are computed only in a neighborhood of salient points. We use Gabor texture features as image content descriptors and efficiently emply them to retrieve images.
Keywords: Gabor filters, image retrieval, texture feature extraction, hierarchical representation

فایل PDF – در 10 صفحه- نویسنده : TOMASZ ANDRYSIAK, MICHAŁ CHORA´ S

IMAGE RETRIEVAL BASED ON HIERARCHICAL GABOR FILTERS

پسورد فایل : behsanandish.com


7.Iris Recognition Based On Adaptive Gabor Filter

Abstract. Aiming at the problem of multi-category iris recognition, there proposes a method of iris recognition algorithm based on adaptive Gabor filter. Use DE-PSO to adaptive optimize the Gabor filter parameters. DE-PSO is composed of particle swarm optimization and differential evolution algorithm. Use 16 groups of 2D-Gabor filters with different frequencies and directions to process iris images. According to the direction and frequency of maximum response amplitude, transform iris features into 512-bit binary feature encoding. Calculate the Hamming distance of feature code and compare with the classification threshold, determine iris the type of iris. Experiment on a variety of iris databases with multiple Gabor filter algorithms, the results showed that this algorithm has higher recognition rate, the ROC curve is closer to the coordinate axis and the robustness is better, compare with other Gabor filter algorithm.

Keywords: Iris recognition Gabor filter Particle swarm optimization Differential evolutionFeature encodingHamming distance

 

فایل PDF – در 8 صفحه- نویسنده : Shuai Liu, Yuanning Liu, Xiaodong Zhu, Guang Huo, Jingwei Cui, and Yihao Chen

 

Iris Recognition Based On Adaptive Gabor Filter

پسورد فایل : behsanandish.com


8.USE OF GABOR FILTERS FOR TEXTURE CLASSIFICATION OF AIRBORNE IMAGES AND LIDAR DATA

KEY WORDS: Texture analysis, LIDAR, Algorithm, Urban and Vegetation Detection, Automated Classification
ABSTRACT: In this paper, a texture approach is presented for building and vegetation extraction from LIDAR and aerial images. The texture is very important attribute in many image analysis or computer vision applications. The procedures developed for texture problem can be subdivided into four categories: structural approach, statistical approach, model based approach and filter based approach. In this paper, different definitions of texture are described, but complete emphasis is given on filter based methods. Examples of filtering methods are Fourier transform, Gabor and wavelet transforms. Here, Gabor filter is studied and its implementation for texture analysis is explored. This approach is inspired by a multi-channel filtering theory for processing visual information in the human visual system. This theory holds that visual system decomposes the image into a number of filtered images of a specified frequency, amplitude and orientation.  The main objective of the article is to use Gabor filters for automatic urban object and tree detection. The first step is a definition of Gabor filter parameters: frequency, standard deviation and orientation. By varying these parameters, a filter bank is obtained that covers the frequency domain almost completely. These filters are used to aerial images and LIDAR data. The filtered images that possess  a significant information about analyzed objects are selected, and the rest are discarded.  Then, an energy measure is defined on the filtered images in order to compute different texture features. The Gabor features are used to image segmentation using thresholding.  The tests were performed using set of images containing very different landscapes: urban area and vegetation of varying configurations, sizes and shapes of objects. The performed studies revealed that textural algorithms have the ability to detect buildings and trees. This article is the attempt to use texture methods also to LIDAR data, resampling into regular grid cells. The obtained preliminary results are interesting.

 

فایل PDF – در 12 صفحه- نویسنده : Urszula Marmol


USE OF GABOR FILTERS FOR TEXTURE CLASSIFICATION OF AIRBORNE IMAGES AND LIDAR DATA

پسورد فایل : behsanandish.com

 

یادگیری ماشین – SVM یا ماشین بردار پشتیبان به زبان ساده

یکی از الگوریتم ها و روشهای بسیار رایج در حوزه دسته بندی داده ها، الگوریتم SVM یا ماشین بردار پشتیبان است که در این مقاله سعی شده است به زبان ساده و به دور از پیچیدگیهای فنی توضیح داده شود.

آشنایی با مفهوم دسته بندی

فرض کنید مجموعه داده ای داریم که ۵۰٪ افراد آن مرد و ۵۰٪ افراد آن زن هستند. این مجموعه داده می تواند مشتریان یک فروشگاه آنلاین باشد. با داشتن یک زیرمجموعه از این داده ها که جنسیت افراد در آن مشخص شده است، می خواهیم قوانینی ایجاد کنیم که به کمک آنها جنسیت بقیه افراد مجموعه را بتوانیم با دقت بالایی تعیین کنیم. تشخیص جنسیت بازدیدکنندگان فروشگاه، باعث می شود بتوانیم تبلیغات جداگانه ای را برای زنان و مردان نمایش دهیم و سودآوری فروشگاه را بالا ببریم . این فرآیند را در علم تحلیل داده، دسته بندی می نامیم .

برای توضیح کامل مسأله، فرض کنید دو پارامتری که قرار است جنسیت را از روی آنها تعیین کنیم، قد و طول موی افراد است . نمودار پراکنش قد و طول افراد در زیر نمایش داده شده است که در آن جنسیت افراد با دو نماد مربع (مرد) و دایره (زن) به طور جداگانه نمایش داده شده است .

SVM-1

 

با نگاه به نمودار فوق، حقایق زیر به سادگی قابل مشاهده است :

  1. مردان در این مجموعه، میانگین قد بلندتری دارند.
  2. زنان از میانگین طول موی بیشتری برخوردار هستند.

اگر یک داده جدید با قد ۱۸۰cm و طول موی ۴cm به ما داده شود، بهترین حدس ما برای ماشینی این شخص، دسته مردان خواهد بود .

بردارهای پشتیبان و ماشین بردار پشتیبان

بردارهای پشتیبان به زبان ساده، مجموعه ای از نقاط در فضای n بعدی داده ها هستند که مرز دسته ها را مشخص می کنند و مرزبندی و دسته بندی داده ها براساس آنها انجام می شود و با جابجایی یکی از آنها، خروجی دسته بندی ممکن است تغییر کند . به عنوان مثال در شکل فوق ، بردار (۴۵,۱۵۰) عضوی از بردار پشتیبان و متعلق به یک زن است . در فضای دوبعدی ،‌بردارهای پشتیبان، یک خط، در فضای سه بعدی یک صفحه و در فضای n بعدی یک ابر صفحه را شکل خواهند داد.

SVM یا ماشین بردار پشتیبان ، یک دسته بند یا مرزی است که با معیار قرار دادن بردارهای پشتیبان ، بهترین دسته بندی و تفکیک بین داده ها را برای ما مشخص می کند.

در SVM فقط داده های قرار گرفته در بردارهای پشتیبان مبنای یادگیری ماشین و ساخت مدل قرار می گیرند و این الگوریتم به سایر نقاط داده حساس نیست و هدف آن هم یافتن بهترین مرز در بین داده هاست به گونه ای که بیشترین فاصله ممکن را از تمام دسته ها (بردارهای پشتیبان آنها) داشته باشد .

چگونه یک ماشین بر مبنای بردارهای پشتیبان ایجاد کنیم ؟

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

 

SVM-2

 

سوال اینجاست که بهترین مرزبندی در این مسأله کدام خط است ؟

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

توزیع غیر خطی داده ها و کاربرد ماشین بردار پشتیبان

اگر داده ها به صورت خطی قابل تفکیک باشند، الگوریتم فوق می تواند بهترین ماشین را برای تفکیک داده ها و تعیین دسته یک رکورد داده، ایجاد کند اما اگر داده ها به صورت خطی توزیع شده باشند (مانند شکل زیر )، SVM را چگونه تعیین کنیم ؟

 

SVM-3

 

در این حالت، ما نیاز داریم داده ها را به کمک یک تابع ریاضی (Kernel functions) به یک فضای دیگر ببریم (نگاشت کنیم ) که در آن فضا، داده ها تفکیک پذیر باشند و بتوان SVM آنها را به راحتی تعیین کرد. تعیین درست این تابع نگاشت در عملکرد ماشین بردار پشتیبان موثر است که در ادامه به صورت مختصر به آن اشاره شده است.

با فرض یافتن تابع تبدیل برای مثال فوق،‌ فضای داده ما به این حالت تبدیل خواهد شد :

 

SVM-4

 

در این فضای تبدیل شده، یافتن یک SVM به راحتی امکان پذیر است .

نگاهی دقیق تر به فرآیند ساخت SVM

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

در شکل زیر داده ها در دو دوسته آبی و قرمز نمایش داده شده اند و خطوط نقطه چین ، بردار های پشتیبان متناظر با هر دسته را نمایش می دهند که با دایره های دوخط مشخص شده اند و خط سیاه ممتد نیز همان SVM است . بردار های پشتیبان هم هر کدام یک فرمول مشخصه دارند که خط مرزی هر دسته را توصیف می کند.

SVM-5

SVM‌ در پایتون

برای استفاده از ماشین بردار پشتیبان در پایتون، توصیه بنده استفاده از کتابخانه یادگیری ماشین پایتون به نام scikitlearn است که تمام کرنل ها و توابع نگاشت را به صورت آماده شده دارد. سه تا تابعSVC , NuSVC , LinearSVC وظیفه اصلی دسته بندی را برعهده دارند . (SVC = Support Vector Classifier) . نمونه ای از دسته بندی با این توابع را در زیر می توانید مشاهده کنید :

 

SVM-6

ماشین بردار پشتیبانی در عمل

برای استفاده از SVM در مورد داده های واقعی ، چندین نکته را باید رعایت کنید تا نتایج قابل قبولی را بگیرید

  1. ابتدا داده ها را پالایش کنید (نقاط پرت ،‌ داده های ناموجود و …..)
  2. داده را عددی و نرمال کنید . این مباحث را در مقالات پیش پردازش داده ها دنبال کنید. به طور خلاصه ، داده هایی مانند جنسیت، رشته تحصیلی و … را به عدد تبدیل کنید و سعی کنید مقادیر همه صفات بین یک تا منهای یک [۱,-۱] نرمال شوند تا بزرگ یا کوچک بودن مقادیر یک ویژگی داده ها،‌ ماشین را تحت تاثیر قرار ندهد .
  3. کرنل های مختلف را امتحان و به ازای هر کدام، با توجه به مجموعه داده آموزشی که در اختیار دارید و دسته بندی داده های آنها مشخص است، دقت SVM را اندازه گیری کنید و در صورت نیاز پارامتر های توابع تبدیل را تغییر دهید تا جواب های بهتری بگیرید. این کار را برای کرنل های مختلف هم امتحان کنید . می توانید از کرنل RBF شروع کنید .

نقاط ضعف ماشین بردار پشتیان

  • این نوع الگوریتم ها، محدودیت های ذاتی دارند مثلا هنوز مشخص نشده است که به ازای یک تابع نگاشت ، پارامترها را چگونه باید تعیین کرد.
  • ماشینهای مبتنی بر بردار پشتیبان به محاسبات پیچیده و زمان بر نیاز دارند و به دلیل پیچیدگی محاسباتی، حافظه زیادی نیز مصرف می کنند.
  • داده های گسسته و غیر عددی هم با این روش سازگار نیستند و باید تبدیل شوند.

با این وجود، SVM‌ ها دارای یک شالوده نظری منسجم بوده و جواب های تولید شده توسط آنها ، سراسری و یکتا می باشد. امروزه ماشینهای بردار پشتیبان، به متداول ترین تکنیک های پیش بینی در داده کاوی تبدیل شده اند.

سخن پایانی

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

ساختار اصلی این نوشتار از روی یک مقاله سایت آنالیتیکزویدیا برداشته شده است و برای دو بخش پایانی مقاله هم از کتاب «داده کاوی پیشرفته : مفاهیم و الگوریتم ها» دکتر شهرابی استفاده شده است .

منبع


آشنایی با ماشین بردار پشتیبان (SVM) – مرور کلی

SVM یک مدل یادگیری نظارت شده است.

پس قبل از این که به سراغ آن برویم باید یک مجموعه داده(Dataset) که از قبل برچسب‌گذاری شده(Labeled) را داشته باشیم.

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

من به دنبال راهی هستم که این ایمیل‌ها را هرچه سریع‌تر تشخیص بدهم(پیدا کنم) و پاسخ آن‌ها را زودتر از بقیه ارسال کنم.

رویکرد اولمن می‌توانم برچسب‌هایی با عنوان‌های: اورژانسی، شکایت و راهنمایی در جیمیل(GMail) خود ایجاد کنم.

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

رویکرد دوممن می‌توانم از یک الگوریتم یادگیری ماشین نظارت شده استفاده کنم.

قدم اولبه تعدادی ایمیل نیاز دارم.(هرچه بیشتر بهتر)

قدم دومعنوان ایمیل‌های قدم اول رو می‌خوانم و آن‌ها را در یکی از دو گروه «شکایت است» و یا «شکایت نیست» طبقه‌بندی می‌کنم. اینجوری می‌توانم ایمیل‌ها را برچسب ‌گذاری کنم.

قدم سومروی این مجموعه داده، مدلی را آموزش می‌دهم.

قدم چهارمکیفیت یا صحت پیش‌بینی های مدل آموزش داده‌شده را ارزیابی می‌کنم.(با استفاده از روش Cross Validation)

قدم پنجماز این مدل برای پیش‌بینی این که ایمیل‌های جدیدی که رسیده‌اند، شکایت هستند یا نه، استفاده می‌کنم.

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

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

SVM یک مدل خطی را یاد می‌گیرد

در مثال قبل دیدیم که در قدم سوم یک الگوریتم یادگیری نظارت شده مثل SVM به کمک داده‌هایی که از قبل برچسب‌گذاری شده‌اند آموزشداده شد. اما برای چه چیزی آموزش داده شد؟ برای این که چیزی را یاد بگیرد.

چه چیزی را یاد بگیرد؟

در مورد SVM، یک مدل خطیرا یاد میگیرد.

مدل خطی چیست؟ اگر بخواهیم به زبان ساده بیان کنیم یک خط است.(و در حالت پیچیده‌تر یک ابر صفحه).

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

 

svm

SVM قادر است که خطی را پیدا کند که داده‌ها را جدا می‌کند.

 

خب پس اگر SVM فقط یک خط است، پس چرا ما داریم راجع به مدل خطی صحبت می‌کنیم؟

برای این که ما همینطوری نمی‌توانیم به یک خط چیزی را آموزش بدهیم.

در عوض:

  1. در نظر می‌گیریم که داده‌هایی که می‌خواهیم طبقه‌بندی کنیم، می‌توانند به وسیله یک خط از هم تفکیک شوند.
  2. می‌دانیم که یک خط می‌تواند به کمک معادله y=wx+by=wx+b نمایش داده شود.(این همان مدل ما است)
  3. می‌دانیم با تغییر دادن مقدار w و b بی‌نهایت خط وجود خواهد داشت.
  4. برای تعیین این که کدام مقدار w و b بهترینخط جداکننده داده‌ها را به ما می‌دهد، از یک الگوریتم استفاده می‌کنیم.

SVM یکی از این الگوریتم‌ها هست که می‌تواند این کار را انجام دهد.

الگوریتم یا مدل؟

در شروع این پست من نوشتم که SVM یک مدل یادگیری نظارت شده است، و الآن می‌نویسم که آن یک الگوریتم است. چه شده؟ از واژه الگوریتم معمولا آزادانه استفاده می‌شود. برای نمونه، ممکن است که شما جایی بخوانید یا بشنوید که  SVM یک الگوریتم یادگیری نظارت شده است. اگر این نکته را در نظر بگیریم که الگوریتم مجموعه‌ای از فعالیت‌ها است که انجام می‌شوند تا به نتیجه مشخصی دست یابیم، می‌بینیم که استفاده از این واژه در اینجا صحیح نیست(منظور از واژه الگوریتم اینجا الگوریتمی است که برای آموزش از آن استفاده می‌کنیم). بهینه‌سازی متوالی کمینه(Sequential minimal optimization) پر استفاده ترین الگوریتم برای آموزش SVM است. با این حال می‌توان از الگوریتم‌های دیگری مثل کاهش مختصات(Coordinate descent) هم استفاده کرد. در کل بیشتر به جزییاتی مثل این علاقمند نیستند، در نتیجه ما هم برای ساده‌تر شدن فقط از واژه الگوریتم SVM استفاده می‌کنیم(بدون ذکر جزییات الگوریتم آموزشی که استفاده می‌کنیم).

SVM یا SVMها؟

بعضی وقت‌ها می‌بینیم که مردم راجع به SVM و بعضی وقت‌ها هم راجع به SVMها صحبت می‌کنند.

طبق معمول ویکی‌پدیا در روشن و شفاف کردن چیزها به ما کمک می‌کند:

در یادگیری ماشینی، ماشین‌های بردار پشتیبان (SVMsمدل‌های یادگیری نظارت شده به همراه الگوریتم‌های آموزش مربوطههستندکه در تحلیل داده‌های استفاده شده در  رگرسیون و طبقه‌بندی از آن‌ها استفاده می‌شود.(ویکی‌پدیا)

پس حالا ما این را می‌دانیم که چندین مدل‌ متعلق به خانواده SVM وجود دارند.

SVMها – ماشین‌های بردار پشتیبان

بر اساس ویکی‌پدیا SVMها همچنین می‌توانند برای دو چیز استفاده شوند، طبقه‌بندی و رگرسیون.

  • SVM برای طبقه‌بندی استفاده می‌شود.
  • SVR یا(Support Vector Regression) برای رگرسیون.

پس گفتن ماشین‌های بردار پشتیبان هم دیگه الآن منطقی به نظر میاد. با این وجود این پایان داستان نیست!

طبقه‌بندی

در سال ۱۹۵۷ یک مدل خطی ساده به نام پرسپترون توسط فردی به نام فرانک روزنبلت برای طبقه‌بندی اختراع شد(که در واقع اساس شبکه‌های عصبی ساده‌ای به نام پرسپترون چند لایه است).

چند سال بعد، واپنیک و چروننکیس مدل دیگری به نام «طبقه‌بندی کننده حداکث حاشیه» پیشنهاد دادند و همان‌جا بود که SVM متولد شد.

در سال ۱۹۹۲ واپنیک و همکارانش ایده‌ای داشتند که یک چیزی به نام کلک کرنل(Kernel Trick) را به روش قبلی اضافه کنند تا به آن‌ها اجازه دهد که حتی داده‌هایی که به صورت خطی تفکیک‌پذیر نیستند را هم طبقه‌بندی کنند.

سرانجام در سال ۱۹۹۵، کورتز و واپنیک، طبقه‌بندی کننده حاشیه نرم را معرفی کردند که به SVM اجازه می‌دهد تا بعضی از اشتباهات در طبقه‌بندی را هم بپذیرد.

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

  1. طبقه‌بندی کننده حاشیه حداکثر.
  2. نسخه‌ای که از کلک کرنل استفاده می‌کند.
  3. نسخه‌ای که از حاشیه نرم استفاده می‌کند.
  4. نسخه‌ای که ترکیب همه موارد قبلی است.

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

به همین دلیل است که وقتی از یک زبان برنامه‌‌نویسی استفاده می‌کنید می‌پرسید از کدام کرنل باید استفاده کنیم(بخاطر کرنل‌های مختلفی که وجود دارند) و یا کدام مقدار ابرپارامتر C را باید استفاده کنید(برای کنترل تاثیر حاشیه نرم).

رگرسیون

در سال ۱۹۹۶، واپنیک و همکارانش، نسخه‌ای از SVM را پیشنهاد دادند که به جای طبقه‌بندی، عمل رگرسیون را انجام می‌دهد. این مورد به Support Vector Regression یا SVR معروف است. همانند SVM در این مدل نیز از کلک کرنل و ابرپارامتر C  استفاده می‌شود.

در آینده مقاله ساده‌ای در مورد توضیح چگونگی استفاده از  SVR در زبان R خواهم نوشت و آدرس آن را همین‌جا قرار خواهم داد.

اگر علاقمند هستید که راجع به SVR بیشتر بدانیند، می‌توانید به این آموزش خوب که نوشته Smola and Schölkopft است، مراجعه کنید.

خلاصه تاریخچه

  • طبقه‌بندی کننده حاشیه حداکثر (۱۹۶۳ یا ۱۹۷۹)
  • کلک کرنل (۱۹۹۲)
  • طبقه‌بندی کننده حاشیه نرم (۱۹۹۵)
  • رگرسیون بردار پشتیبان (۱۹۹۶)

در صورتی که مایلید بیشتر راجع به تاریخچه بدانید، می‌توانید به مقاله مرور همراه با جزییات از تاریخچه مراجعه کنید.

انواع دیگری از ماشین‌های بردار پشتیبان

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

  • ماشین بردار پشتیبان ساخت‌یافتهکه توانایی پیش‌بینی اشیای ساخت‌یافته را دارد.
  • ماشین بردار پشتیبان حداقل مربعکه در طبقه‌بندی و رگرسیون استفاده می‌شود.
  • خوشه‌بندی بردار پشتیبانکه در تحلیل خوشه استفاده می‌شود.
  • ماشین بردار پشتیبان هدایتیکه در یادگیری نیمه نظارت‌شده استفاده می‌شود.
  • SVM رتبه‌بندیبرای مرتب کردن نتایج.
  • ماشین بردار پشتیبان تک کلاسهکه برای تشخیص ناهنجاری استفاده می‌شود.

نتیجه‌گیری

دیدیم که سختی در درک کردن این که SVMها دقیقا چه چیزی هستند، امری طبیعی است. علتش هم این است که چندین SVM برای چندین منظور وجود دارند. مثل همیشه تاریخ به ما اجازه می‌دهد که دید بهتری راجع به چگونگی به وجود آمدن SVMهایی که امروزه وجود دارند، داشته باشیم.

امیدوارم این مقاله دید وسیع‌تری از چشم‌انداز  SVM به شما داده باشد و کمک کرده باشد که بهتر این ماشین‌ها را بشناسید و درک کنید.

اگه مایلید که بیشتر راجع به نحوه کار SVM در طبقه‌بندی بدانید، می‌توانید به آموزش‌های ریاضی مربوط به آن مراجعه کنید.

مقالات پردازش تصویر عبارت اند از:

Basics of digital image processing

مفاهیم اولیه پردازش تصویر

فایل PDF – در 57 صفحه – نویسنده : ناشناس

Basics of digital image processing

پسوردفایل : behsanandish.com


Digital Image Processing Laboratory Manual

کتابچه راهنمای آزمایشگاه پردازش تصویر دیجیتال

فایل PDF – در 19 صفحه – نویسنده :  Bhaskar Mondal

Digital Image Processing laboratory manual

پسوردفایل : behsanandish.com


Fundamentals of Digital Image Processing

اصول پردازش تصویر دیجیتال

فایل PDF – در 8 صفحه – نویسنده : ناشناس

Fundamentals of Digital Image Processing

پسوردفایل : behsanandish.com


Fundamentals of Image Processing

اصول پردازش تصویر

فایل PDF – در 112 صفحه – نویسنده : Ian T. Young , Jan J. Gerbrands  , Lucas J. van Vliet

Image Processing Fundamentals–An Overview

پسوردفایل : behsanandish.com


Image Processing Manual

دستورالعمل پردازش تصویر

فایل PDF – در 164 صفحه – تهیه کننده : انستیتو ملی اسناد آمریکا

Image processing manual

پسوردفایل : behsanandish.com


Image Processing Tutorial-Basic Concepts 

آموزش پردازش تصویر-مفاهیم پایه

فایل PDF – در 55 صفحه – تهیه کننده : شرکت CCDWare Publishing

Image Processing Tutorial

پسوردفایل : behsanandish.com


Intel® Image Processing Library-Reference Manual

کتابخانه پردازش تصویر اینتل-دستورالعمل مرجع

فایل PDF – در 319 صفحه – نویسنده :  شرکت Intel

Intel Image Processing Library-reference manual

پسوردفایل : behsanandish.com


آنالیز و پردازش تصویر

فایل Word – در 15 صفحه – نویسنده :  ناشناس

pardazesh tasvir

پسوردفایل : behsanandish.com


مفاهیم پایه پردازش تصویر-محیط های چند رسانه ای

فایل PDF – در 109 صفحه – نویسنده :  احمد محمودی ازناوه (دانشگاه شهید بهشتی)

مفاهیم_پایه_پردازش_تصویر_دانشگاه

پسوردفایل : behsanandish.com

تشخیص لبه در تصاویر

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

ویژگی‌های لبه

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

یک لبه نوعی ممکن است(برای نمونه) مرز میان یک بخش قرمزرنگ و یک بخش سیاه‌رنگ باشد؛ حال آنکه یک خط می‌تواند تعداد کمی پیکسل‌های ناهمرنگ در یک زمینه یکنواخت باشد. در هر سوی خط یک لبه وجود خواهد داشت. لبه‌ها نقش مهمی در کاربردهای پردازش تصویر دارند.

آشکارسازی لبه

لبه مرز بین نواحی با خواص نسبتاً متفاوت سطح خاکستری است. نظریهٔ پایه در بیشتر روش‌های آشکارسازی لبه، محاسبه یک عملگر مشتق محلی است. در این مقطع توجه شود که لبه (گذر از تاریک به روشن) به صورت یک تغییر آرام، نه سریع، سطح خاکستری مدل می‌شود. این مدل نشان می‌دهد که معمولاً لبه‌های تصاویر رقمی بر اثر نمونه‌برداری، کمی مات می‌شوند. مشتق اول مقطع سطح خاکستری در لبه جلویی گذر، مثبت است، در لبه عقبی آن منفی است و همان طور که مورد انتظار است، در نواحی با سطح خاکستری ثابت صفر است. مشتق دوم برای قسمتی از گذر که در طرف تیره لبه است، مثبت است، برای قسمت دیگر گذر که در طرف روشن لبه است، منفی است، و در نواحی با سطح خاکستری ثابت، صفر است.

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

 5  7  6  4  152  148  149

محاسبه مشتق اول

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

اگر I(x) نماینده شدت روشنایی پیکسل x، و I′(x) نماینده مشتق اول(گرادیان شدت روشنایی) در پیکسل x باشد، بنابراین داریم:

{\displaystyle I'(x)=-1\cdot I(x-1)+0\cdot I(x)+1\cdot I(x+1).\,}

برای پردازش تصویر با عملکرد بهتر، مشتق اول را می‌توان(در یک بعد) با چرخاندن با ماسک زیر روی تصویر بدست آورد:

−1 0 1

محاسبهٔ مشتق دوم

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

اگر I(x) نمایشگر شدت نور در نقطه x و I′′(x) مشتق دوم در نقطه x باشد:

{\displaystyle I''(x)=1\cdot I(x-1)-2\cdot I(x)+1\cdot I(x+1).\,}

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

+1 −2 +1

آستانه‌گیری

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

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

عملگرهای آشکارسازی لبه

  • مرتبه نخست: رابرتز، پرویت، سوبل، کنی، اسپیسک
  • مرتبه دوم: لاپلاسی، مار-هیلدرث

اکنون، عملگر کنی و پس از آن مار-هیلدرث بیشترین کاربرد را دارد. عملگرهای زیادی تاکنون منتشر شده‌اند اما هیچیک برتری قابل ملاحظه‌ای بر عملگر کنی در شرایط کلی نداشته‌اند. کار بر روش‌های چندمقیاسی هنوز بیشتر در آزمایشگاه‌هاست.

اخیراً عملگر جدیدی منتشر شده که اجازه جداسازی لبه‌ها را با دقت زیرپیکسل می‌دهد، چیزی که آن را از عملگر کنی نیز بهتر می‌سازد. برای اطلاعات بیشتر مقاله زیر ببینید:

(استجر، ۱۹۹۸)An Unbiased Detector of Curvilinear Structure

بارکد چیست؟

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

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

ضرورت استفاده از بارکد

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

همین طور که فروشگاهها، بزرگ و بزرگتر شدند تا به فروشگاههاى زنجیره اى امروزى رسیدند، کار مشکل و مشکل تر شد. نخست مجبور شدند در فروشگاهها را هرچند وقت یکبار ببندند و تمام کیسه ها و بسته ها و کنسروها را شمارش کنند. کار بسیار دشوارى بود.
این کار سخت و هزینه بردار بیش از یک بار در سال انجام نمى شد (انبارگردانى)، بنابراین مدیران فروشگاهها مجبور بودند بیشتر کارهایشان را بر اساس حدس و گمان انجام دهند و در نهایت این نیاز مادر اختراع شد!

سیستم بارکدگذارى چگونه آغاز شد؟

در سالذ۱۹۳۲ گروهى از دانشجویان رشته مدیریت بازرگانى دانشگاه هاروارد، تصمیم گرفتند روشى را انتخاب کنند تا بر اساس آن مشتریان کالاى مورد نظرشان را از درون کاتالوگى پیدا کنند و سپس با برداشتن کارت هاى خاص چسبانده شده در کنار نام هر کالا و تحویل به مسؤول کنترل و قرار دادن آن در دستگاه کارت خوان و پانچ، مستقیماً کالا را از طریق انبار به باجه کنترل انتقال دهند و صورتحساب کامل را دریافت کنند و مهم تر از همه صاحبان فروشگاه از موجودى انبار خود اطلاعات به روزى داشته باشند. البته ایده سیستم «بارکدینگ» مدرن و پیشرفته از سال ۱۹۴۸ وارد سیستم تجارى شد.

سیستم بارکد امروزى چگونه شروع به کار کرد؟

سال ۱۹۴۸ بود که رئیس یک فروشگاه مواد غذایى در آمریکا از کار کند و بى دقت کارکنان فروشگاه به ستوه آمد و براى پیدا کردن راه حل به مسؤولان دانشگاه (Drexel) مراجعه کرد تا تقاضاى ساخت سیستم کنترل خودکارى را داشته باشد، اما مسؤولان دانشگاه از این نظریه استقبال نکردند.

یکى از دانشجویان فارغ التحصیل این دانشگاه به نام باب سیلور «Bob Silver» این گفت و گو را شنید و آن را با یکى از دوستانش Norman Joseph Woodland در میان گذاشت و تصمیم گرفتند براى ساخت چنین سیستمى شروع به کار کنند. آنها در شروع از رمز و الفباى سیستم مورس الهام گرفتند و سعى کردند با چاپ و طراحى میله هاى پهن و باریک این شیوه را راه اندازى کنند و مدتى بعد هم به فکر سیستم بارکد نقطه اى و دایره اى افتادند.

سال ۱۹۴۹ بود که توانستند اختراع خود را ثبت کنند و در سال ۱۹۵۲ نخستین سیستم بارکدخوان را ساختند. «وودلند» که از سال۱۹۵۱در شرکت IBM مشغول به کار شده بود، توانست با استفاده از موقعیتهایى که در آنجا برایش ایجاد مى شد، به کمک دوستش در سال ۱۹۵۲ دستگاهى به بزرگى یک میز تحریر بسازد و ۲ جزء اصلى در آن تعبیه کرد:

۱- یک حباب (لامپ) ۵۰۰ واتى به عنوان منبع نور.

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

بعداً متوجه شدند لامپ ۵۰۰ واتى میزان الکتریسیته اى زیادتر از آنچه آنها نیاز داشتند، تولید مى کند و میزان اضافى، علاوه بر بالا بردن هزینه ها، گرماى اضافى هم تولید مى کرد و از طرفى نگاه کردن به آن باعث آسیب چشم مى شد، بنابراین به فکر استفاده از منبعى افتادند که تمام نور مورد نیاز آنها را در فضاى کوچکى متمرکز کند. همان کارى که امروزه «لیزر» انجام مى دهد، اما در سال ۱۹۵۲ لیزر موجود نبود!

بعدها با گسترش و تولید لیزر «Laser» توانستند دستگاههاى بارکدخوان ارزان ترى تولید کنند. گرچه «باب سیلور» فرصت استفاده درست از دانش خود را در شرایط آسان تر نیافت و در ۳۸سالگى فوت کرد، اما همکارش کار را ادامه داد.

در سال ۱۹۷۲ سیستم بارکد نقطه اى نیز در عمل مورد استفاده قرار گرفت، اما این روش چندان موفق نبود (زیرا حین چاپ براحتى مغشوش مى شد.)

در سال ۱۹۷۴ وودلند در IMB سیستم بارکد خطى را گسترش داد و نخستین محصول خرده فروشى (محصولاتى چون آب میوه و آدامس) به این طریق فروخته شد. (و جالب اینکه در حال حاضر یک بسته از آن آدامس در موزه اى در آمریکا نگهدارى مى شود).
و سرانجام آقاى وود در سال ۱۹۹۲ توانست مدال ملى تکنولوژى را بابت به کارگیرى سیستم بارکد دریافت کند. (تنها به خاطر استراق سمع دوستش آقاى سیلور!) خلاصه آنکه، بارکدها و سایر برچسب هاى خوانا در جایى که نیاز به خوانده شدن اطلاعات با پردازش توسط کامپیوتر وجود دارد، استفاده مى شوند و کاربرها به عوض تایپ کردن رشته اى طویل از داده ها، تنها بارکد مورد نظر را جلوى دستگاه بارکدخوان قرار مى دهند و پردازش بدون نیاز به نیروى انسانى به طور کاملاً خودکار انجام مى شود. بنابراین بارکد شیوه شناسایى و تعیین هویت خودکار داده ها است.

رقمى که توسط بارکد تولید مى شود، عموماً محصول خاصى را نشان مى دهد. سیستم بارکدینگ به طور معکوس هم کار مى کند، یعنى قادر است با دریافت رقم مربوط به یک محصول، بارکد مورد نظر را ایجاد بکند و در واقع نوعى خود شناسایى انجام مى شود.
فواید بارکد کردن
۱- مصون بودن از خطاپذیرى به علت کاهش دخالت نیروى انسانى و وارد نشدن دستى اطلاعات.
۲- دسته بندى دقیق اطلاعات.
۳- سرعت بالا به همراه صحت ۱۰۰درصد.
۴- دسترسى آسان به اطلاعات واقعى و حقیقى (در جریان روند مدیریت) البته اگر: با دقت تمام کالاها در فروشگاهها بارکدگذارى شوند تا مراجعه کنندگان دچار دردسرهایى که ما با آن خوب آشنایى داریم، نشوند

منبع


كد 128 امكان كد گذاري همه ی 128 حرف مربوط به مجموعه كاراكترهاي كد اسكي را ارائه مي كند. اين كد با استفاده از خطوط و فضاهاي خالي با 4 پهناي مختلف ، به بيشترين فشردگي ممكن سمبل ها نسبت به روش هاي قديمي تر خود كه از خطوط و فضاهاي خالي با 2 ضخامت مختلف استفاده مي كردند ، رسيده است.

كد 128 ممكن است به صورت دو طرفه (از هر دو جهت ) اسكن شود و محدوديتي هم براي تعداد كاراكترها در هر باركد وجود ندارد. هر چند ممكن است طول باركد با توجه به نوع اسكنر مورد استفاده و يا مكان مورد نظر براي چاپ باركد محدود شود . اما اين روش محدوديتي براي طول باركد ايجاد شده ندارد.

كد 128 سه مجموعه كاراكتري متفاوت دارد كه در جدول مشخصات باركد به نام هاي Code Set a و Code Set B و Code Set C مشخص شده است .هر كدام از اين سه مجموعه كد مي تواند با كاراكتر شروع مربوط به خودش مورد انتخاب واقع شود. كاراكتر خاص `shift` در هر مجموعه به شما امكان مي دهد تا بتوانيد در بين يك كد ست از كد ست هاي ديگر هم استفاده كنيد با اين توصيف امكان استفاده ازچند كد ست در يك بار كد وجود دارد. با استفاده از اين روش طول باركد چاپ شده مي تواند به كمترين حد ممكن خود برسد.

در صورتي كه داده ها فقط شامل اعداد باشد استفاده از مجموعه كد C باعث مي شود تا طول باركد چاپ شده به كمترين حد ممكن تقليل پيدا كند . البته بايد اين نكته را در نظر داشته باشيد كه براي استفاده از Code Set C بايستي تعداد ارقام رشته اي كه مي خواهيد باركد آن را چاپ كنيد زوج بوده و حداقل 4 رقم و يا بيشتر طول داشته باشد.
هر كدام از مجموعه كدهاي a,B,C يك يا چند كاراكتر براي توابع خاص رزرو كرده اند
از ويژگي هاي كد 128 استفاده از رقم كنترل براي بررسي صحت باركد خوانده شده توسط دستگاه اسكنر باركد مي باشد.

ساختار باركد 128 به صورت زير است
• يك فضاي يكنواخت و يا خالي در سمت چپ خطوط باركد
• كاراكتر شروع
• تعداد نامحدودي از داده ها
• رقم كنترل صحت
• كاراكتر خاتمه
• يك فضاي يكنواخت و يا خالي در سمت راست خطوط باركد
پهناي فضاي يكنواخت و يا خالي حداقل بايد 10 برابر پهناي نازكترين خط / نازكترين فاصله خالي در باركد باشد.

هر كاراكتر در باركد 128 تركيبي از 3 خط و 3 فاصله است . (كاراكتر خاتمه داراي 4 خط و 3 فاصله مي باشد ) .هر خط / فاصله خالي مي تواند يكي از 4 واحد پهناي مختلف را داشته باشد . نازكترين خط / فاصله خالي بايد يك چهارم پهن ترين خط/ فاصله خالي باشد. جدول مشخصات باركد پهناي خط/ فاصله خالي براي همه مجموعه كاراكترهاي مربوط به كد 128 را نشان مي دهد. دقت كنيد كه مجموع پهناي خطوط در هر يك از كاراكتر ها عددي زوج و مجموع فواصل خالي براي هر كدام از كاراكترها عددي فرد است. اولين ستون در جدول با عنوان « value » حاوي عددي است كه براي محاسبه رقم كنترل بكار مي رود.

بارکد چیست؟ قسمت 1
بارکد چیست؟ قسمت 2

1-تعريف، ضرورت و كاربردها

زيست سنجی عبارت است از دانش و فن‌آوري اندازه‌گيري و تحليل آماري داده‌هاي زيستي. در فن‌آوري اطلاعات واژة زيست سنجی به مجموعه فن‌آوريهايي اطلاق مي‌گردد كه در آنها از اندازه‌گيري و تحليل ويژگيهايي از بدن انسان همچون اثر انگشت، اثر كف دست، شبكيه و عنبية چشم، الگوهاي صوتي، الگوهاي مربوط به رخسار ، دمانگاري صورت، شكل دست يا گوش، داده‌هاي به دست آمده از گام، الگوهاي وريدي، دي.ان.اي و يا ويژگيهايي همچون دستخط(امضا) و ديناميك ضربه زدن به صفحه‌كليد براي تأييد هويت اشخاص استفاده مي‌شود. اين فن‌آوريها در تلاشند تا اندازه گيري و مقايسة ويژگيهاي بر‌شمرده شده را به منظور بازشناسي افراد به صورت خود‌كار درآورند.

فن‌آوريهاي زيستي در ابتدا براي كاربردهاي تخصصي نيازمند امنيت بالا پيشنهاد شدند اما اينك به عنوان عناصر كليدي در توسعة تجارت الكترونيك و سيستمهاي برخط و به همان صورت براي سيستمهاي امنيتي نا‌برخط و سيستمهاي امنيتي منفرد مطرح مي‌باشند.

اين فن‌آوريها اجزاء مهمي را براي تنظيم و نظارت بر نحوة دسترسي و حضور در سيستم فراهم مي‌آورند. محدوده‌هاي عمدة كاربرد اين فن‌آوريها عبارتند از : تجارت الكترونيك، نظارت امنيتي، دسترسي به پايگاه داده‌ها، كنترل مرزها و مهاجرت، تحقيقات قضايي و پزشكي از راه دور.

توسعة فن‌آوريهاي زيست سنجی فراتر از كاربردهاي سنتي نيازمند امنيت بالا، يك اجبار نشأت گرفته از انگيزه‌هاي مالي است. امنيت معاملات براي آيندة توسعة تجارت الكترونيك يك مسألة حياتي است و نگرانيهاي فراواني دربارة راه حلهاي فعلي وجود دارد. مشكل شماره‌هاي شناسايي شخصي و شناسه‌هاي هويتي – مانند كارتها- اين است كه آنها صحت هويت شخصي را كه از آنها استفاده مي‌كند تأييد نمي‌كنند. آمارها ميزان زيان ناشي از تقلب را به طور ساليانه براي كارتهاي اعتباري بالغ بر چهارصد و پنجاه ميليون دلار و براي خودپردازها حدود سه‌ميليارد دلار برآورد مي‌كنند. برتري سيستمهاي مبتني بر زيست سنجی آن است كه به شدت به ويژگيهاي فردي اشخاص وابسته‌اند و به راحتي نمي‌توانند مورد سوء استفاده قرار گيرند.

2-بررسي عملكرد سيستمهاي موجود

فعاليتهاي انجام شده تا به حال منجر به ظهور ماشينهاي گران قيمت زيست- سنجي شده است كه علاوه بر قيمت زياد معمولاً از لحاظ سرعت و عملكرد مناسب نيستند يا حداقل براي دستيابي به عملكرد مناسب بايد محيط استفادة آنها شرايط خاصي را داشته باشد و يا كاربران آنها آموزشهاي گسترده‌اي را گذرانده باشند.

در حالي كه بعضي از فن‌آوريهاي زيست سنجی در قالب توليدات تجاري به بازار عرضه شده‌اند بسياري از اين دسته فن‌آوريها در مرحلة تحقيق و آزمايش قرار دارند. فن‌آوريهاي مزبور نيازمند كارهاي مطالعاتي بيشتر براي افزايش پايداري و بهبود عملكردشان براي استفاده در كاربردهاي ويژه هستند.

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

جدول زیر مقايسه‌اي از معمول‌ترين سيستمهاي زيست سنجی موجود را ارائه مي‌دهد.

ميزان پذيرش كاربر

سادگي استفاده

دقت عملكرد

نوع سيستم
پايين متوسط بالا اثر انگشت
متوسط بالا متوسط هندسه دست
بالا بالا متوسط صوت
پايين پايين بالا شبكيه چشم
متوسط متوسط متوسط عنبيه چشم
بالا متوسط متوسط امضا
بالا بالا پايين چهره

مقايسة سيستمهاي زيست سنجی معمول

 

3-    اجزاي سيستمهاي زيست سنجی

عمليات سيستمهاي زيست سنجی در بر دارندة دو مرحلة مجزا مي‌باشد: ثبت كاربرو بازشناسي كاربر. در مرحلة اول اطلاعات مربوط به كاربر به سيستم وارد مي‌شوند و در مرحلة دوم اطلاعات ورودي حاضر با اطلاعات ذخيره شده مقايسه مي‌گردند.

 
 مراحل لازم عملياتي در يك سيستم امنيتي مبتني بر زيست سنجی

 

مرحلة تأييد هويت عبارت است از تطبيق ويژگيهاي مورد ادعاي يك شخص بر ويژگيهاي موجود او در پايگاه داده‌ها كه يك فرايند يك به يك است.

سيستمهاي امنيتي مبتني بر زيست سنجی بنا به انتخاب به وجود آورنده، به جاي مرحلة تأييد هويت مي‌توانند مرحلة ديگري را كه بازشناسي ناميده مي‌شود جايگزين كنند. در اين روش نياز نيست كه درخواست كننده ادعاي هويت شخص خاصي را بنمايد بلكه سيستم ويژگيهاي او را با تمامي ركوردهاي موجود مقايسه مي‌كند و در صورت تطابق با يكي از آنها او را به عنوان شخص داراي ويژگيهاي موجود در ركورد يافت شده بازشناسي مي‌كند كه اين فرايند يك پردازش يك به چند را شكل مي‌دهد.

سيستمهاي تشخيص هويت زيستي معمول غالباً شامل اجزاي زير مي‌باشند:

الف)گيرندة اطلاعاتزيرسيستمي است كه گرفتن نمونه‌هاي زيست‌سنجی (صوتي، تصويري و…) را بر عهده دارد. ويژگيهاي خاص استخراج شده از نمونه‌ها قالبهايي را براي مقايسة بعدي تشكيل مي‌دهند. اين فرايند بايد سريع و ساده بوده در عين حال قالبهايي با كيفيت خوب را توليد كند.

ب) ذخيره كنندهقالبهاي به دست آمده بايد براي مقايسة بعدي ذخيره شوند. اين زير سيستم مي‌تواند جزئي از وسيلة گيرندة اطلاعات سيستم باشد و يا در يك سرور مركزي قابل دستيابي توسط يك شبكه جاي گيرد. جايگزين ديگر، يك شناسة قابل حمل نظير يك كارت هوشمند است. هر كدام از انتخابهاي فوق مزايا و مشكلات خاص خود را دارد.

ج) مقايسه گراگر سيستم زيست سنجی در مقام بازشناسي افراد به كار گرفته شود بايد هويت شخص با قالب ذخيره شدة مورد ادعاي او مقايسه شود. در بعضي سيستمها ممكن است امكان بروزآوري خودكار قالب مورد مراجعه پس از هر تطبيق درست وجود داشته باشد. اين امر به سيستم توانايي سازگاري با تغييرات تدريجي كوچك در ويژگيهاي كاربر را مي‌دهد.

د) اتصالاتغالباً براي ايجاد ارتباط بين گيرندة اطلاعات، ذخيره كننده و مقايسه‌گر نياز به اتصالات لازم وجود دارد. غالباً سيستمهاي زيست سنجی نيازمند شبكه و رابطهاي برنامه‌نويسي مورد نياز براي ايجاد اتصال بين اجزاء مي‌باشند. امنيت و كارايي، عناصر كليدي براي اين جزء مي‌باشند.

4-ارزيابي كارايي سيستمهاي امنيتي مبتني بر زيست سنجی

موضوع مهمي كه در پذيرش سيستمهاي زيست سنجی از اهميت شايان توجهي برخوردار است تعيين كارايي هر يك از اجزاء و كل سيستم زيست سنجی به روشي قابل اعتماد و هدفمند است.

براي تعيين كارايي سيستمهاي امنيتي مبتني بر زيست سنجی معيارهاي ويژه‌اي به كار گرفته مي‌شوند. در اين كاربردها تعدادي كاربر (سرويس‌گيرنده) به سيستم وارد مي‌شوند و متقلب به عنوان شخصي تعريف مي‌شود كه مدعي هويت شخص ديگري است. متقلب ممكن است به عنوان كاربر در سيستم وجود داشته باشد و عمل وي ممكن است عمدي يا غيرعمدي باشد. عمل تأييد هويت بايد كاربران را بپذيرد و متقلبان را رد كند.

نرخ پذيرش نادرست (اف. اي. آر) به عنوان نسبت تعداد متقلباني كه به اشتباه توسط سيستم پذيرفته شده‌اند به تعداد كل متقلبان آزمايش شده تعريف گرديده، به صورت درصد بيان مي‌شود. اين نرخ، احتمال پذيرش متقلبان را توسط سيستم بيان مي‌كند و بايد در سيستمهاي نيازمند امنيت بالا كمينه شود.

نرخ عدم پذيرش نادرست (اف. آر. آر) به عنوان نسبت تعداد كاربران سيستم كه به اشتباه توسط سيستم پذيرفته نشده‌اند به تعداد كل كاربران مورد آزمايش قرار گرفته تعريف  گرديده، به صورت درصد بيان مي‌شود. اين نرخ، احتمال عدم پذيرش كاربران مجاز را توسط سيستم بيان مي‌كند و بايد به صورت ايده‌آل مخصوصاً در سيستمهايي كه در آنها كاربر در صورت عدم پذيرش از دسترسي به سيستم محروم مي‌شود كمينه گردد.

روند تشخيص هويت مبتني بر زيست سنجی دربردارندة محاسبة فاصلة قالب ذخيره شده و نمونة حاضر است. تصميم براي پذيرش يا رد نمونة حاضر بر اساس يكآستانة از پيش تعريف شده اتخاذ مي‌گردد. بنابراين واضح است كه كارايي سيستم به شدت وابسته به انتخاب اين آستانه است و اين امر موجب ايجاد يك بده‌بستان بين نرخ پذيرش نادرست و نرخ عدم پذيرش نادرست مي‌گردد. نرخ خطاي برابر(اي.اي.آر) به صورت آستانة برابري اين دو نرخ تعريف مي‌شود و غالباً به عنوان يك ويژگي نشان دهندة كارايي سيستم مطرح مي‌گردد. شكل زیر نشان دهندة رابطة سه پارامتر تعريف شده براي يك سيستم نمونه است.

 
 FAR، FRR و ERR براي يك سيستم نمونه

پارامتر مهم ديگر كارايي، زمان تشخيص هويت است كه به صورت زمان متوسط صرف شده براي فرايند تشخيص هويت تعريف مي‌شود. اين زمان شامل زمان لازم براي گرفتن نمونة حاضر نيز مي‌باشد.

در حالي كه بعضي از عرضه‌كنندگان سيستمهاي امنيتي مبتني بر زيست سنجی براي محصولاتشان پارامترهاي كارايي فوق را در شرايط آزمايشگاهي بيان مي‌كنند پارامترهاي كارايي قابل طرح در جهان واقعي براي سنجش كارايي واقعي اين گونه سيستمها به ندرت وجود دارند. علت اين امر اين واقعيت است كه به حساب آوردن همة پيچيدگيهاي ممكن جهان واقعي تأثير گذار بر سيستمهاي زيست سنجی تقريباً غير ممكن است. به عنوان نمونه زمان واقعي تشخيص هويت به شدت وابسته به ميزان آموزش كاربر، محيط عملياتي و شرايط رواني كاربر همچون ميزان فشار روحي اوست. مشخصات ارائه شده توسط عرضه‌كننده را بايد به ديد راهنماهاي نه چندان متناسب با دنياي واقعي نگريست.

 

منبع

تشخیص هویت زیست سنجی و بیومتریک قسمت 1
تشخیص هویت زیست سنجی و بیومتریک قسمت 2
تشخیص هویت زیست سنجی و بیومتریک قسمت 3
تشخیص هویت زیست سنجی و بیومتریک قسمت 4
تشخیص هویت زیست سنجی و بیومتریک قسمت 5