سیستم خبره

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

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

 نمونه‌ای از یک کامپیوتر لیسپ با کیبورد اسپیس کادت

 نمونه‌ای از یک کامپیوتر لیسپ با کیبورد اسپیس کادت

پیشگفتار

در میان اهل فن و صاحبان اندیشه، استدلال تعاریف و تفاسیر گوناگونی دارد. در نگاهی کلی، بهره گرفتن از دلیل و برهان برای رسیدن به یک نتیجه از فرضیاتی منطقی با بکارگیری روش‌های شناخته شده، تعریفی از استدلال تلقی می‌شود؛ تعریفی که البته با دیدگاه‌های فلسفی و گاه آرمانگرایانه از استدلال تفاوت دارد. با این حال موضوع مهم و بنیادین در اینجا بحث در چیستی و چرایی این دیدگاه‌ها نیست، بلکه در مورد “چگونگی طراحی دستگاه‌های استدلال گر”، با هر تعریفی، برای رسیدن به مجموعه‌ای از تصمیمات منطقی با استفاده از مفروضات یا به طور دقیق‌تر دانشی است که در اختیار آن‌ها قرار می‌گیرد. سیستم های خبره(expert systems) اساساً برای چنین هدفی طراحی می‌شوند. در حقیقت به واسطه الگوبرداری این سیستم ها از نظام منطق و استدلال انسان و نیز یکسان بودن منابع دانش مورد استفاده آن‌ها، پیامد کار یک سیستم خبره می‌تواند تصمیماتی باشد که در حوزه‌ها و قلمروهای گوناگون قابل استفاده، مورد اطمینان و تأثیرگذار هستند. بسیاری بر این باورند که سیستم های خبره بیشترین پیشرفت را در “هوش مصنوعی” به وجود آورده‌اند.

تاریخچه

تا ابتدای دههٔ ۱۹۸۰ (م) کار چندانی در زمینهٔ ساخت و ایجاد سیستم های خِبره توسط پژوهش گران هوش مصنوعی صورت نگرفته بود. از آن زمان به بعد، کارهای زیادی در این راستا و در دو حوزهٔ متفاوت ولی مرتبط سیستم های کوچک خبره و نیز سیستم های بزرگ خبره انجام شده است.

در دهه ۱۹۷۰، ادوارد فیگن بام در دانشگاه استانفورد به دنبال کشف روش حل مسئله ای بود که خیلی کلی و همه منظوره نباشد. پژوهشگران دریافتند که یک متخصص معمولاً دارای شماری رموز و فوت و فن خاص برای کار خود می‌باشد و در واقع از مجموعه‌ای از شگردهای سودمند و قواعد سرانگشتی در کار خود بهره می‌برد، این یافته مقدمه پیدایش سیستم خبره بود. سیستم خبره با برگرفتن این قواعد سر انگشتی از متخصصین و به تعبیری با تبدیل فرایند استدلال و تصمیم‌گیری متخصصین به برنامه‌های رایانه‌ای می‌تواند به عنوان ابزار راهنمای تصمیم‌گیری در اختیار غیرمتخصص و حتی متخصصین کم تجربه قرار گیرد.

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

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

مباحث کاربردی و مهم در تحقق یک سیستم هوش مصنوعی:

حوزه‌های کاربرد

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

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

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

کاربرد سیستم های خبره در خدمات کتابداری و اطلاع‌رسانی

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

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

کاربرد سیستم های خبره در حسابداری و امور مالی

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

کاربردهای مختلفی از سیستم های خبره در سه زمینه حسابداری، حسابداری مدیریت و امور مالیاتی به شرح ذیل می‌باشد:

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

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

انواع سیستم های خبره تحلیل مالی

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

این سه قلمرو عبارتند از:

    1. کمک به کسب بینش یا بینش آفرین Insight facilitaing
    2. آسان سازی تصمیم‌گیری Decision facilitating
    3. تصمیم سازی Decision Making

سیستم های خبره بینش آفرین

در این نوع سیستم ها، هدف اصلی ارائه پردازش‌های مربوط به کمک واکاوی نسبتها و نمودار هاست این نسبت‌ها و نمودارها برای دست اندرکاران تحلیل مالی در ایجاد بینش دقیق تری در مورد وضع مالی و چشم‌انداز آتی یک مؤسسه، یعنی سودمند است با چنین هدفی عملاً مراحل اول و دوم از فرایند چهار مرحله‌ای تصمیم‌گیری به کمک این سیستم ها انجام می‌شود این نرم‌افزارها را به این دلیل بینش آفرین می‌خوانیم که هدفشان کمک به کارگزاران و دست اندرکاران مالی برای انجام یک مشاهده بینش آفرین مشخص است بنابر این درجه از کارآزمودگی و تخصص موجود در زمره سیستم های خبره واقعی به حساب آورده نمونه‌هایی از این قبیل نرم‌افزارها عبارتند از: INsiGht و NEWVIEWS که هر دو عملاً سیستم های جامع حسابداری مشتمل بر تحلیلهای مالی اند یعنی در عین اینکه همه عملیات حسابداری را انجام می‌دهند. در محیطهای شبیه صفحه گسترده تحلیلهای مالی خود را نیز عرضه می‌کنند نرم‌افزار شناخته شده دیگر REFLEX نام دارد که ۱۲ نسبت کلیدی را محاسبه کرده و تحلیل و تفسیرهای پیشنهادی خود را نیز ارائه می‌کند این تحلیلها همراه با ارائه نسبت‌ها، روندها و نمودارهای مناسب است.

سیستم های خبره آسان کننده تصمیم‌گیری

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

سیستم های خبره

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

— متخصص: آیا میوه سبز است؟

— استفاده کننده: خیر.

— متخصص: آیا میوه قرمز است؟

— استفاده کننده: بله.

— متخصص: آیا این میوه روی درخت رشد می‌کند؟

— استفاده کننده: خیر.

— متخصص: آیا این میوه روی یک بوته رشد می‌کند؟

— استفاده کننده: بله.

— متخصص: آیا این بوته تیغ دارد؟

— استفاده کننده: بله.

— متخصص: این میوه تمشک است!

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

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

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

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

تفاوت سیستم های خبره با سایر سیستم های اطلاعاتی

سیستم های خبره برخلاف سیستم های اطلاعاتی که بر روی داده‌ها(Data) عمل می‌کنند، بر دانش (Knowledge) متمرکز شده است. همچنین دریک فرایند نتیجه‌گیری، قادر به استفاده از انواع مختلف داده‌ها عددی(Digital)، نمادی Symbolic و مقایسه‌ای (Analog) می‌باشند. یکی دیگر از مشخصات این سیستم‌ها استفاده از روشهای ابتکاری (Heuristic) به جای روشهای الگوریتمی می‌باشد. این توانایی باعث قرار گرفتن دامنهٔ گسترده‌ای از کاربردها در برد عملیاتی سیستم های خبره می‌شود. فرایند نتیجه‌گیری در سیستم های خبره بر روشهای استقرایی و قیاسی پایه‌گذاری شده است. از طرف دیگر این سیستم ها می‌توانند دلایل خود در رسیدن به یک نتیجه‌گیری خاص یا جهت و مسیر حرکت خود به سوی هدف را شرح دهند. با توجه به توانایی این سیستم‌ها در کار در شرایط فقدان اطلاعات کامل یا درجات مختلف اطمینان در پاسخ به پرسشهای مطرح‌شده، سیستم های خبره نماد مناسبی برای کار در شرایط عدم اطمینان(Uncertainty) یا محیطهای چند وجهی می‌باشند.

سیستم خبره قسمت 1
سیستم خبره قسمت 2
سیستم خبره قسمت 3
سیستم خبره قسمت 4
سیستم خبره قسمت 5
سیستم خبره قسمت 6

روش PCA چند لایه

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

روش Modular PCA

این روش در مقاله ی [9] ارائه شده است. روش PCA معمولی در مقابل تغییرات حالت قرار گرفتن چهره در تصویر و تغییرات میزان نور در تصویر, بازده خوبی ندارد. چون در این روش مشخصات عمومی چهره, در قالب مجموعه ای از وزن ها (بردار وزن ها) توصیف می شود. تک تک این وزن ها وابسته به تمام نواحی چهره می باشند. بنابراین با تغییر حالت چهره و نورپردازی, حتی در قسمتی از تصویر, تمام وزن های این بردار دچار تغییر می شوند.
روش MudularPca سعی در رفع این مشکل دارد. در این روش یک عکس به چند قسمت کوچکتر تقسیم می شود و الگوریتم PCA روی این عکس ها اعمال می شود و بردار وزن ها برای هر قطعه به صورت جداگانه محاسبه می شود. با این عمل(تقسیم تصویر به چند تکه), تغییر در قسمتی از تصویر تنها بردار ویژگی آن قسمت از تصویر را تغییر می دهد و بردارهای مربوط به سایر قطعات بدون تغییر باقی می مانند. هنگام تشخیص چهره, هر قطعه از عکس ورودی با قطعه ی متناظر در تصاویری که سیستم با آنها تمرین داده شده است مقایسه می شود و به تعداد قطعات, فاصله محاسبه می شود. تصویری که مجموع فواصل قطعات آن با قطعات عکس ورودی کمتر از سایر تصاویر باشد, به عنوان تصویر مشابه با تصویر ورودی در نظر گرفته می شود.

 

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

نحوه ی استفاده از کدها در گیت هاب قرار داده شده است.

کارهای آینده

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

برای مثال در مقاله ی [10] فرمولهای مختلف فاصله, برای بدست آوردن فاصله ی تصویر ورودی و تصاویر موجود در سیستم استفاده شده است و نرخ تشخیص چهره ی آن ها با هم مقایسه شده است. در این مقاله از فاصله های euclidian distance, city block distance, angle distance, mahalanobis distance و یک بار هم از مجموع این چهار فاصله استفاده شده است و این نتیجه بدست آمده است که استفاده از مجموع این چهار فاصله نتیجه ی بهتری می دهد.

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

منبع


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

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

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

VeriLook به عنوان SDK های زیر در دسترس است :

SDK استاندارد برای توسعه کاربردهای بیومتریکی مبتنی بر PC در نظر گرفته شده است و شامل کامپوننت های استخراج کننده و تطبیق دهنده ، خودآموزها و نمونه های برنامه نویسی ، کتابخانه مدیریت دوربین و مستندات نرم افزار می باشد. SDK امکان توسعه کاربردهای بیومتریک را برای سیستم عامل های Linux ، Microsof Windows و Mac OS X فراهم می کند.

SDK توسعه یافته برای توسعه کاربردهای بیومتریکی تحت وب و شبکه در نظر گرفته شده است. این SDK علاوه بر تمام ویژگی های SDK استاندارد ، شامل نمونه برنامه های client ، خودآموزها و سرور تطبیق آماده برای استفاده نیز می باشد.

منبع


تشخیص چهره انسان

مقدمه

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

از موارد زیر می‌توان به عنوان چالش‌های پیش‌رو در زمینه‌ی تشخیص چهره‌ نام برد:

  • زاویه چهره. این‌که دوربین از کدام زاویه (تمام‌رخ، نیم‌رخ و …) از چهره عکس گرفته باشد می‌توان فاکتور مهمی در درجه‌ی سختی تشخیص چهره محسوب گردد.
  • وجود یا عدم وجود اجزای مختلف صورت. اجزای مختلف صورت از جمله محاسن، سبیل و … می‌توانند در چهره‌ی فرد موجود باشند یا نباشند. از طرفی دیگر تفاوت‌های زیادی بین شکل‌های مختلف این اجزا وجود دارد.
  • حالات چهره. نمای صورت در حالات مختلف چهره (لبخند، خنده، گریه و …) متفاوت خواهد بود.
  • پوشش. ممکن است قسمتی از چهره بخاطر زاویه چهره و یا قرارگیری پشت اشیاء دیگر قابل مشاهده نباشد.
  • زاویه عکس. اشیاء مختلف با قرارگیری در زاویه‌های مختلف نسبت به صفحه مماس اشکال خاصی به خود می‌گیرند.
  • شرایط عکاسی. فاکتور‌های مختلف محیطی نظیر شرایط نوری و مشخصات دوربین عکاسی از جمله لنز‌ می‌توانند تاثیر زیادی در پروسه تشخیص چهره داشته باشند.

 

شکل شماره ۱

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

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

نرخ تشخیص

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

روش‌های موجود

روش‌های موجود در تشخیص چهره را می‌توان به چهار گروه مختلف تقسیم کرد:

  • روش‌های دانش‌ محور
  • روش‌های جزئیات محور
  • روش‌های الگو محور
  • روش‌های ظاهر محور

روش‌های دانش محور

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

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

روش‌های جزئیات محور

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

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

روش‌های الگو محور

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

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

روش‌های ظاهر محور

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

کارهای مرتبط

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

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

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

انتگرال تصویر

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

در ادبیات پردازش تصویر از این الگوریتم به عنوان انتگرال تصویر نیز یاد می‌شود.
همان‌طور که از نام تکنیک پیداست مقدار درایه‌ی (x, y)ماتریس مجموع محیطی برابرست با مجموع همه‌ی مقادیر بالا و چپ درایه‌ی (x, y) ماتریس اصلی.

منبع


نحوه کارکرد سیستم های تشخیص چهره

تکنولوژی تشخیص چهره (Face detection) ، یکی از انواع سیستم Biometric محسوب می شود و از مهمترین تکنولوژی های تشخیص و شناسایی افراد است که در Access control نیز مورد استفاده قرار می گیرد و پس از موفقیت سیستم شناسایی از طریق اثر انگشت در چند سال اخیر جزء مهمترین تکنولوژی های تشخیص بیومتریک به شمار می آید.

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

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

بطورکلی یک سیستم بیومتریک تشخیص چهره، از چهار ماژول تشکیل یافته است:

1-ماژول سنسور:

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

2-ماژول مخصوص تشخیص و استخراج اطلاعات:

تصاویر بدست آمده توسط این ماژول در ابتدا ارزیابی محتوایی شده و داده های نامربوط ازقبیل پس زمینه – موها و گردن و شانه و غیره حذف و تنها محتوای ناحیه چهره را شناسایی میکند . سپس تصویر بدست آمده تحت فرایندهای محاسباتی و عملیاتی پیچیده برای استخراج اطلاعات مربوط به ویژگیهای سطحی چهره و تجزیه اطلاعات کلی تصویر قرار میگیرد. در حقیقت در این مرحله تصویر خروجی که بایستی توسط ماژول طبقه بندی کننده برای تعیین هویت و تشخیص چهره مورد استفاده قرار گیرد در این مرحله با استفاده از روشهای پیچیده PCA, LDA و غیره آماده میگردد.

3- ماژول طبقه بندی :

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

4- ماژول پایگاه داده ها:

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

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

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

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

منبع


منابع

  1. http://nn4e.com
  2. http://aisoft.ir
  3. http://www.boute.ir
  4. http://www.acordgroup.co

تشخیص چهره انسان به کمک پردازش تصویر قسمت 1
تشخیص چهره انسان به کمک پردازش تصویر قسمت 2

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

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

  • بخش آموزش: در این بخش شما افرادی را که می‌خواهید سیستم بشناسد با تصویر به سیستم می‌دهید.
  • بخش آزمایش: در این بخش اگر تصویری از یکی از افرادی که می‌شناسد را به سیستم بدهیم، سیستم باید او را به درستی به یاد بیاورد.

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

 

 

 

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

 

 

 

کارایی تشخیص چهره علاوه بر کاربردهای مرتبط با تعیین و مقایسه هویت نظیر کنترل دسترسی, امور قضایی, صدور مجوزها و مدارک هویتی و نظارت, در زمینه هایی نظیر تعامل انسان و کامپیوتر, واقعیت مجازی بازیابی اطلاعات از پایگاه های داده, مالتی مدیا و سرگرمی های کامپیوتری به اثبات رسیده است.

یک سیستم تشخیص چهره متداول شامل سه مرحله زیر است:

  1. کشف چهره (Face Detection)
  2. استخراج الگوها (Feature Extraction)
  3. تشخیص چهره (Face Recognition)

چالش های پیش رو

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

الگوریتم ها

الگوریتمهای مختلفی برای تشخیص چهره وجود دارند که معمول ترین آنها عبارتند از: PCA – ICA – LFDA – EBGM – SVM – …

الگوریتمی که در این پست مورد بررسی واقع می گردد برای هدف برنامه PCA خواهد بود.

کارهای مرتبط

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

در سال 1966 Bledsoe اولین کسی بود که یک روش نیمه اتوماتیک برای تشخیص چهره ارائه کرد. در این روش چهره ها بر اساس ویژگی هایی که به وسیله ی انسان علامت زده شده بود دسته بندی می شدند. اندکی بعد با کارهای انجام شده در آزمایشگاههای Bell, یک بردار با بیش از 21 ویژگی (مانند عرض دهان, ضخامت لبها و …) تو سعه داده شد. ویژگی های انتخاب شده عمدتاً حاصل ارزیابی های ذهن انسان بودند و پیاده سازی آنها کار مشکلی بود.

در سال 1989, Kirby و Sirovich یک روش جبری برای محاسبه ساده ی eigenface ها ارائه کردند.

در سال 1991 , Turk و Pentland اثبات کردند که خطای مانده هنگام کدینگ eigenface ها می تواند برای دو منظوراستفاده شود:

  1. تشخیص وجود چهره در یک عکس
  2. تعیین محل تقریبی چهره در عکس

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

در مقاله ای از Rajkiran Gottumukkal, Vijayan K.Asari روشی به نام Modular PCA ارائه شده است. با مقایسه ی این روش با روش PCA متداول, مشخص می شود که این روش با وجود تغییرات زیادی در جهت تابش نور وحالت چهره, نرخ بازشناسی بیشتری نسبت به PCA دارد. در این روش عکسها به چند قسمت کوچکتر تقسیم می شوند و PCA روی هرکدام از این قطعات به طور جداگانه اعمال می شود. این موضوع باعث می شود که تغییرات چهره از جمله تغییر در جهت تابش نور و حالت چهره, باعث تغییر ویژگی های موضعی چهره یک فرد نشود.

در مقاله ای از  Trupti M. Kodinariya با ترکیب الگوریتم PCA با چند الگوریتم دیگر یک روش ترکیبی ارائه شده است.

در این مقاله سیستم تشخیص چهره در دو حالت کار می کند : تمرین و دسته بندی :

حالت تمرین شامل نرمال سازی و استخراج ویژگی از تصاویر با استفاده از الگوریتم PCA, ICA می باشد. . سپس ویژگی های استخراج شده, با استفاده از BPNN ها (back propagation neural network) تمرین داده می شوند تا فضای ویژگی ها به کلاسهای متفاوت دسته بندی شوند.

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

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

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

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

  1. بخش پیش پردازش شامل یکنواخت سازی هیستوگرام و نرمالیزه کردن تصاویر
  2. بخش کاهش بعد فضا به کمک PCA
  3. استخراج ویژگیها با استفاده از LDA برای جداسازی کلاس ها و تفکیک پذیری چهره ها
  4. استفاده از شبکه عصبی به منظور طبقه بندی چهره ها و اعلام هویت چهره

الگوریتم Principal Component Analysis) PCA):

این روش در سال 1991 توسط Turk و Pentland پیشنهاد شد که از تحلیل المانهای اصلی یا همان PCA برای کاهش بعد استفاده کرده‎ تا بتواند زیرفضایی با بردارهای متعامد پیدا کند که در آن زیرفضا پراکندگی داده ها را به بهترین حالت نشان دهد. این زیرفضا را هنگامی که بر روی داده های چهره اعمال شوند، فضای چهره میگویند. پس از مشخص شدن بردارها تمامی تصاویر به این زیر فضا منتقل می‏‏شوند تا وزنهایی که بیانگر تصویر در آن زیرفضا هستند بدست آیند. با مقایسه شباهت وزنهای موجود با وزن تصویر جدیدی که به این زیر فضا منتقل شده می‏‏توان تصویر ورودی را شناسایی کرد.

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

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

محاسبه ی eigenface ها

اگر مجموعه ی عکس های ورودی را ماتریسهای

 

در نظر بگیریم, میانگین چهره ها به صورت زیر محاسبه می شود:

 

البته همان طور که در بخش قبل گفته شد در این روش یک تصویر با ابعاد n*m به یک بردار با nm مولفه تبدیل می شود. یعنی ما یک عکس را به صورت یک بردار سطری یا ستونی با nm مولفه در نظر می گیریم. تمامی فرمول های ذکر شده در این الگوریتم با این فرض است که ماتریس تصویر را به صورت یک بردار ستونی درنظر گرفته ایم.

 

 

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

 

بردار Uk به نحوی انتخاب می شود که مقدار λk ماکزیمم شود:

 

البته با فرض زیر:

 

بردارهای Uk و λk به ترتیب بردارهای ویژه و مقادیر ویژه ی ماتریس همبستگی می باشند.ماتریس همبستگی از رابطه ی زیر محاسبه می شود :

 

 

یعنی می توان با استفاده از ماتریس کوواریانس نیز به بردار و مقدار ویژه رسید.

بردار U همان بردار eigenface میباشد. نمونه ای از آنرا در تصویر زیر مشاهده می کنید :

 

 

 

همان طور که مشاهده می کنید, بردار ویژه در واقع شامل عکسهایی با همان ابعاد عکس های ورودی می باشد که شبیه به شبح هستند.

بخش تشخیص چهره

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

 

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

 

حالا می توانیم تعیین کنیم که عکس ورودی متعلق به کدام کلاس است. یکی از راههایی که برای این کار وجود دارد این است که بردار وزنهای عکس ورودی را با بردار وزنهای عکسهایی که قبلاً به سیستم آموزش داده شده بودند مقایسه کنیم. برای این کار می توانیم از فاصله ی اقلیدسی مانند زیر استفاده کنیم :

 

یعنی ما به تعداد عکسهایی که سیستم با آن تمرین داده شده اند, ϵ داریم.
اگر مقدار ϵ از یک مقدار از پیش تعیین شده کمتر بود, آنگاه تصویر ورودی یک تصویر شناخته شده است.اگر بیشتر بود و از یک مقدار دوم کمتر بود آنگاه تصویر ورودی یک شخص ناشناس است. اما اگر از هر دو مقدار بزرگتر بود تصویر ورودی چهره نیست!
اما پس از تشخیص اینکه تصویر ورودی یک تصویر شناخته شده است, برای اینکه تشخیص بدهیم که این عکس مربوط به چه کسی است باید مقدار ϵ ها را با هم مقایسه کنیم. بدیهی است که عکس ورودی مربوط به عکسی است که فاصله ی آنها (ϵ) کمتر از سایر عکسها باشد.

بهبود محاسبه ی بردارهای ویژه ی ماتریس کوواریانس

فرض کنید n عکس با اندازه ی xy داریم. پس از تغییر شکل عکسها به یک بردار, اندازه ی ماتریس شامل بردارها, nxy خواهد بود. پس از بدست آوردن اختلاف هر عکس با میانگین عکس ها, بردار A با اندازه یnxy به وجود می آید.
طبق رابطه ی کوواریانس, اندازه ی ماتریس کوواریانس xyxy خواهد بود. برای درک این اندازه, فرض کنید که ابعاد عکس ورودی, 100×100 پیکسل باشد. طبق محاسبات بالا اندازه ی ماتریس کوواریانس 10000×10000 خواهد بود. یعنی باید 100 میلیون نقطه را ذخیره کرد که این کار به حدود 0.8 گیگا بایت حافظه نیاز دارد! درضمن محاسبه ی یک ماتریس با این حجم به زمان زیادی نیز نیاز دارد.

برای حل این مشکل از یک قضیه ی ریاضی استفاده می کنیم. این قضیه بیان می کند که بردارهای ویژه ی ماتریس AAT با بردارهای ویژه ی ماتریس ATA یکسان است. یعنی ما می توانیم از ماتریسATA استفاده کنیم که یک ماتریس nn (n تعداد عکسهای ورودی است) می باشد و حجم محاسبات آن به شدت کمتر از یک ماتریس xyxy می باشد.

آزمایش‌ها

برای آزمایش این سیستم نیاز به یک مجموعه عکس استاندارد داریم. برای این کار از مجموعه داده یAT&T متعلق به دانشگاه کمبریج استفاده می کنیم. این مجموعه عکس شامل عکسهای 40 فرد و از هر فرد 10 عکس مختلف می باشد. یعنی در مجموع شامل 400 عکس می باشد.

آزمایش اول: کد مربوط به این بخش را می توانید از اینجا دریافت کنید.
برای آزمایش 25 عکس از این مجموعه انتخاب می کنیم:

 

 

همانطور که توضیح داده شد یکی از مراحل الگوریتم محاسبه ی میانگین تصاویر وروری است. میانگین 25 تصویر بالا را در عکس زیر می بینید:

 

 

بردارهای ویژه (eigenface) ی بدست آمده از عکسهای بالا را در تصویر زیر می بینید:

 

 

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

اما یکی از کارهایی که باعث می شود نرخ تشخیص چهره افزایش پیدا کند, مطمئناً تمرین دادن سیستم با عکس های بیشتر است. به این معنی که ما از هر فرد, چند عکس مختلف به سیستم بدهیم و سیستم فضای چهره را با استفاده از این عکس ها ایجاد کند. کد پیاده سازی شده برای این بخش را می توانید از اینجا دریافت نمایید.
برای آزمایش نرخ تشخیص چهره با این روش, 6 عکس از 25 مجموعه عکس (هر مجموعه متعلق به چهره ی یک فرد) از مجموعه داده ی AT&T, یعنی در مجموع 150 عکس, به سیستم داده شد, تا سیستم با آنها تمرین داده شود. سپس 25 عکس مربوط به همان افرادی که سیستم با عکس آنها تمرین داده شده بود, برای تشخیص به سیستم داده شد که 84 درصد از آنها به درستی شناسایی شدند. مشاهده می شود که نرخ تشخیص چهره نسبت به زمانی که از هر فرد فقط یک عکس برای تمرین به سیستم داده شده بود, بیش از 30 درصد افزایش یافته است.

 

تشخیص چهره انسان به کمک پردازش تصویر قسمت 1
تشخیص چهره انسان به کمک پردازش تصویر قسمت 2

روش جستجوی تکاملی

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

نظریه تکامل

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

انواع مختلف الگوریتم‌های تکاملی

انواع مختلف الگوریتم‌های تکاملی که تا بحال مطرح شده‌اند، به شرح زیر می‌باشد:

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

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

Evolutionary Strategies

Evolutionary Programming

Differential Evolution

Cultural Evolution

هم‌فرگشتی

کدگذاری و نحوه نمایش

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

حل مسائل معروف با استفاده از الگوریتم ژنتیک

یکی از مسائل کلاسیک در الگوریتم‌های ژنتیک مسئله ۸ وزیر است. ماهیت مسئله به گونه‌ای است که مدلسازی آن و همچنین اعمال عملگرهای الگوریتم ژنتیک بر روی آن بسیار ساده است. همچنین علاوه برای الگوریتم ژنتیک، روش الگوریتم تبرید شبیه‌سازی شده نیز در ساده‌ترین شکل خود برای مسئله چند وزیر نیز روش مناسبی هست همچنین از مسائل مهم دیگری که با استفاده از این الگوریتم قابل حل می‌باشد مسئلهٔ فروشندهٔ دوره‌گرد یا مسئلهٔ چیدمان دینامیک می‌باشد.

فلو چارت این الگوریتم

شمای کلی سودوکوی الگوریتم

منبع

 

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

الگوریتم ژنتیک قسمت 1
الگوریتم ژنتیک قسمت 2

تاریخچه

(آنالیز موجک) ایده ی نمایش یک تابع برحسب مجموعه ی کاملی از توابع اولین بار توسط ژوزف فوریه، ریاضیدان و فیزیکدان بین سال های ۱۸۰۶-۱۸۰۲ طی رساله ای در آکادمی علوم راجع به انتشار حرارت، برای نمایش توابع بکار گرفته شد. در واقع برای آنکه یک تابع(f(x به شیوه ای ساده و فشرده نمایش داده شود فوریه اساسا ثابت کرد که می توان از محور هایی استفاده کرد که بکمک مجموعه ایی نامتناهی از توابع سینوس وار ساخته می شوند. بعبارت دیگر فوریه نشان داد که یک تابع (f(x را می توان بوسیله ی حاصل جمع بی نهایت تابع سینوسی و کسینوسی به شکل (sin(ax و (cos(ax نمایش داد. پایه های فوریه بصورت ابزار هایی اساسی، با کاربردهای فوق العاده متواتر در علوم، در آمده اند، زیرا برای نمایش انواع متعددی از توابع و در نتیجه کمین های فیزیکی فراوان بکار می روند.
با گذشت زمان ضعف پایه های فوریه نمایان شد مثلا دانشمندان پی بردند پایه های فوریه و نمایش توابع سینوس وار در مورد سیگنال های پیچیده نظری تصاویر، نه تنها ایده آل نیستند بلکه از شرایط مطلوب دورند، بعنوان مثال به شکل کارآمدی قادر به نمایش ساختارهای گذرا نظیر مرزهای موجود در تصاویر نیستند. همچین آنها متوجه شدند تبدیل فوریه فقط برای توابع پایه مورد استفاده قرار می گیرد و برای توابع غیر پایه کار آمد نیست.(البته در سال ۱۹۴۶ با استفاده از توابع پنجره ای، که منجر به تبدیل فوریه ی پنجره ای شداین مشکل حل شد.)
در سال ۱۹۰۹ هار اولین کسی بود که به موجک ها اشاره کرد. در سال های ۱۹۳۰ ریاضیدانان به قصد تحلیل ساختارهای تکین موضوعی به فکر اصلاح پایه های فوریه افتادند. و بعد از آن در سال ۱۹۷۰ یک ژئوفیزیکدان فرانسوی به نام ژان مورله متوجه شد که پایه های فوریه بهترین ابزار ممکن در اکتشافات زیر زمین نیستند، این موضوع در آزمایشگاهی متعلق به الف آکیلن منجر به یکی از اکتشافات تبدیل به موجک ها گردید.
در سال ۱۹۸۰ ایومیر ریاضیدان فرانسوی، نخستین پایه های موجکی متعامد را کشف کرد(تعامد نوعی از ویژگی ها را بیان می کند که موجب تسهیلات فراوانی در استدلال و محاسبه می شود، پایه های فوریه نیز متعامدند.) در همین سال ها مورله مفهوم موجک و تبدیل موجک را بعنوان یک ابزار برای آنالیز سیگنال زمین لزره وارد کرد و گراسمن فیزیکدان نظری فرانسه نیز فرمول وارونی را برای تبدیل موجک بدست آورد.
در سال ۱۹۷۶ میرو و مالت از پایه های موجک متعامد توانسنتد آنالیز چند تفکیکی را بسازند و مالت تجزیه موجک ها و الگوریتم های بازسازی را با بکار بردن آنالیز چند تفکیکی بوجود آورد. در سال ۱۹۹۰ مورنزی همراه با آنتوان موجک ها را به دو بعد و سپس به فضاهایی با ابعد دیگر گسترش دادند و بدین ترتیب بود که آنالیز موجکی پایه گذاری گردید.

 آشنایی

آنالیز موجک (Wavelet Analysis) یکی از دستاوردهای نسبتا جدید و هیجان انگیز ریاضیات محض که مبتنی بر چندین دهه پژوهش در آنالیز همساز است، امروزه کاربردهای مهمی در بسیاری از رشته های علوم و مهندسی یافته و امکانات جدیدی برای درک جنبه های ریاضی آن و نیز افزایش کاربردهایش فراهم شده است.
در آنالیز موجک هم مانند آنالیز فوریه با بسط تابع ها سروکار داریم ولی این بسط برحسب «موجک ها» انجام می شود.
موجک تابع مشخص مفروضی با میانگین صفر است و بسط برحسب انتقالها و اتساعهای این تابع انجام می گیرد، بر خلاف چند جمله ای های مثلثاتی، موجک ها در فضا بصورت موضعی بررسی می شوند و به این ترتیب ارتباط نزدیکتری بین بعضی توابع و ضرایب آن ها امکان پذیر می شود و پایداری عددی بیشتری در باز سازی و محاسبات فراهم می گردد. هر کاربردی را که مبتنی بر تبدیل سریع فوریه است می توان با استفاده از موجک ها فومول بندی کرد و اطلاعات فضایی (یا زمانی) موضعی بیشتری بدست آورد. بطور کلی، این موضوع بر پردازش سیگنال و تصویر و الگوریتم های عددی سریع برای محاسبه ی عملگرهای انتگرالی اثر می گذارد.
آنالیز موجک حاصل ۵۰ سال کار ریاضی (نظریه ی لیتلوود – پیلی و کالدرون – زیگموند) است که طی آن، با توجه به مشکلاتی که در پاسخ دادن به ساده ترین پرسش های مربوط به تبدیل فوریه وجود داشت، جانشینهای انعطاف پذیر ساده تری از طریق آنالیز همساز ارائه شدند. مستقل از این نظریه که درون ریاضیات محض جای دارد، صورتهای مختلفی از این رهیافت چند مقیاسی (multi Scale) را در طی دهه ی گذشته در پردازش تصویر، آکوستیک، کدگذاری(به شکل فیلترهای آیینه ای متعامد و الگوریتمهای هرمی)، و استخراج نفت دیده ایم.

 کاربردها

آنالیز موجک همراه با تبدیل سریع فوریه در تحلیل سیگنالهای گذرایی که سریعا تغییر می کنند، صدا و سیگنالهای صوتی، جریان های الکتریکی در مغز، صداهای زیر آبی ضربه ای و داده های طیف نمایی NMR، و در کنترل نیروگاههای برق از طریق صفحه ی نمایش کامپیوتر بکار رفته است. و نیز بعنوان ابزاری علمی، برای روشن ساختن ساختارهای پیچیده ای که در تلاطم ظاهر می شوند، جریان های جوی، و در بررسی ساختارهای ستاره ای از آن استفاده شده است. این آنالیز به عنوان یک ابزار عددی می تواند مانند تبدیل سریع فوریه تا حد زیادی از پیچیدگی محاسبات بزرگ مقیاس بکاهد، بدین ترتیب که با تغییر هموار ضریب، ماتریس های متراکم را به شکل تنکی که به سرعت قابل محاسبه باشد در آورد. راحتی و سادگی این آنالیز باعث ساختن تراشه هایی شده است که قادر به کدگذاری به نحوی بسیار کارا، و فشرده سازی سیگنالها و تصاویرند.
آنالیز موجک امروزه کاربردهای فراوانی پیدا کرده است که از آن جمله می توان به کاربرد آن در تصویر برداری پزشکی (MRI) و سی تی اسکن (CAT)، جداسازی بافت های مغزی از تصاویر تشدید مغناطیس، تشخیص خودکار خوشه های میکروکلسیفیکاسیون، تحلیل تصاویر طیفی تشدید مغناطیسی (MR Spectrorscopy) و عملکردهای تشدید مغناطیسی (F MRI) اشاره کرد.

منبع


موجک

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

مِیِر

مورله

کلاه مکزیکی

تبدیل‌های موجک

تعداد زیادی تبدیل موجک وجود دارد که لیست آن را می‌شود در فهرست تبدیل‌های مرتبط با موجک مشاهده نمود. معمول‌ترین این تبدیل‌ها عبارتند از:

  • تبدیل موجک پیوسته (Continuous wavelet transform (CWT
  • تبدیل موجک گسسته (Discrete wavelet transform (DWT
  • تبدیل سریع موجک (Fast wavelet transform (FWT
  • Lifting scheme
  • تجزیه بسته‌های موجک(Wavelet packet decomposition (WPD
  • تبدیل موجک ساکن (Stationary wavelet transform (SWT

موجک‌ها و معادلات اتساع
موجک‌ها بر مبنای دو عمل اصلی قرار دارند:

  • انتقال (Translation)

[عکس: 34b5ae95f23a0378679d434d7cea3360.png]

  • اتساع (Dilation)

[عکس: a9be4f8956d1bb85c9e932c584196743.png]

مقایسه با تبدیل فوریه

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

تاریخچه

در تاریخ ریاضیات مبادی و ریشه‌های متعددی را می‌توان برای موجک‌ها سراغ گرفت.

کارهای قبل از ۱۹۳۰
مربوط به قبل از ۱۹۳۰ (م) می‌توان به آنالیز فرکانس‌ها اشاره کرد، که به وسیلهٔ فوریه شروع شد.
استفاده از واژهٔ موجک‌ها، برای اولین بار، در یکی از ضمیمه‌های تز آلفرد هار (۱۹۰۹ م) ظاهر شد. امروزه هم، این موجک‌ها به همان نام یعنی به موجک‌های هار معروف اند. موجک‌های هار دارای دامنهٔ تعریف فشرده (compact) بوده، و غیر مشتق‌پذیر به صورت پیوسته هستند.

کارهای مربوط به دهه ۱۹۳۰
در این دهه چند گروه پیرامون موضوع نمایش توابع با به کارگیری پایه‌های با مقیاس متغیر برای تنیدن فضاهای توابع تحقیق می‌نمودند.

موجک‌های متعامد

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

موجک هار

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

منبع

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

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

مقدمه

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

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

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

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

الف) معرفی جواب‌های مسئله به عنوان کروموزوم

ب) معرفی تابع برازندگی (فیت نس)

ج) جمع‌آوری اولین جمعیت

د) معرفی عملگرهای انتخاب

ه) معرفی عملگرهای تولید مثل

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

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

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

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

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

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

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

در این میان آنچه شاید بتواند تا حدودی ما را در فهم این مسئله یاری کند مفهومیست به نام تصادف یا جهش.

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

در واقع می‌توان تکامل طبیعی را به این‌صورت خلاصه کرد: جستجوی کورکورانه (تصادف یا Blind Search) + بقای قوی‌تر.

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

روش‌های کلاسیک ریاضیات دارای دو اشکال اساسی هستند. اغلب این روش‌ها نقطه بهینه محلی (Local Optima) را بعنوان نقطه بهینه کلی در نظر می‌گیرند و نیز هر یک از این روش‌ها تنها برای مسئله خاصی کاربرد دارند. این دو نکته را با مثال‌های ساده‌ای روشن می‌کنیم.

به شکل زیر توجه کنید. این منحنی دارای دو نقطه ماکزیمم می‌باشد؛ که یکی از آنها تنها ماکزیمم محلی است. حال اگر از روش‌های بهینه‌سازی ریاضی استفاده کنیم مجبوریم تا در یک بازه بسیار کوچک مقدار ماکزیمم تابع را بیابیم. مثلاً از نقطه ۱ شروع کنیم و تابع را ماکزیمم کنیم. بدیهی است اگر از نقطه ۱ شروع کنیم تنها به مقدار ماکزیمم محلی دست خواهیم یافت و الگوریتم ما پس از آن متوقف خواهد شد. اما در روش‌های هوشمند، به ویژه الگوریتم ژنتیک به دلیل خصلت تصادفی آنها حتی اگر هم از نقطه ۱ شروع کنیم باز ممکن است در میان راه نقطه A به صورت تصادفی انتخاب شود که در این صورت ما شانس دست‌یابی به نقطه بهینه کلی (Global Optima) را خواهیم داشت.

بهینه محلی و بهینه کلی

 

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

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

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

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

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

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

معمولاً الگوریتم‌های ژنتیک یک عدد احتمال اتصال دارد که بین ۰٫۶ و ۱ است که احتمال به وجود آمدن فرزند را نشان می‌دهد. ارگانیسم‌ها با این احتمال دوباره با هم ترکیب می‌شوند. اتصال ۲ کروموزوم فرزند ایجاد می‌کند، که به نسل بعدی اضافه می‌شوند. این کارها انجام می‌شوند تا این که کاندیدهای مناسبی برای جواب، در نسل بعدی پیدا شوند. مرحله بعدی تغییر دادن فرزندان جدید است. الگوریتم‌های ژنتیک یک احتمال تغییر کوچک و ثابت دارند که معمولاً درجه‌ای در حدود ۰٫۰۱ یا کمتر دارد. بر اساس این احتمال، کروموزوم‌های فرزند به طور تصادفی تغییر می‌کنند یا جهش می‌یابند، مخصوصاً با جهش بیت‌ها در کروموزوم ساختمان داده‌مان.

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

شرایط خاتمه الگوریتم‌های ژنتیک عبارتند از:

  • به تعداد ثابتی از نسل‌ها برسیم.
  • بودجه اختصاص داده‌شده تمام شود (زمان محاسبه/پول).
  • یک فرد (فرزند تولید شده) پیدا شود که مینیمم (کمترین) ملاک را برآورده کند.
  • بیشترین درجه برازش فرزندان حاصل شود یا دیگر نتایج بهتری حاصل نشود.
  • بازرسی دستی.
  • ترکیبهای بالا.

روش‌های نمایش

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

خاصیت هر سه روش این است که آنها تعریف سازنده‌ای را که تغییرات تصادفی در آنها ایجاد می‌کنند را آسان می‌کنند: ۰ را به ۱ و برعکس، اضافه یا کم کردن ارزش یک عدد یا تبدیل یک به صفر یا برعکس. یک روش دیگر که توسط John Koza توسعه یافت، برنامه‌نویسی ژنتیک است؛ که برنامه‌ها را به عنوان شاخه‌های داده در ساختار درخت نشان می‌دهد. در این روش تغییرات تصادفی می‌توانند با عوض کردن عملگرها یا تغییر دادن ارزش یک گره داده شده در درخت، یا عوض کردن یک زیر درخت با دیگری به وجود آیند.

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

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

شبه کد

 1 Genetic Algorithm
 2 begin
 3 Choose initial population
 4 repeat
 5 Evaluate the individual fitness of a certain proportion of the population
 6 Select pairs of best-ranking individuals to reproduce
 7 Apply crossover operator
 8 Apply mutation operator
 9 until terminating condition
10 end

شمای کلی شبه کد شمای کلی شبه کد

 

ایده اصلی

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

«جهش» به این صورت است که بعضی ژن‌ها بصورت کاملاً تصادفی تغییر می‌کنند. البته تعداد این‌گونه ژن‌ها بسیار کم می‌باشد اما در هر حال این تغییر تصادفی همانگونه که پیشتر دیدیم بسیار مهم است. مثلاً ژن رنگ چشم می‌تواند بصورت تصادفی باعث شود تا در نسل بعدی یک نفر دارای چشمان سبز باشد. در حالی که تمامی نسل قبل دارای چشم قهوه‌ای بوده‌اند. علاوه بر «جهش» اتفاق دیگری که می‌افتد و البته این اتفاق به تعداد بسیار بیشتری نسبت به «جهش» رخ می‌دهد چسبیدن دو کروموزوم از طول به یکدیگر و تبادل برخی قطعات بین دو کروموزوم است. این مسئله با نام Crossover شناخته می‌شود. این همان چیزیست که باعث می‌شود تا فرزندان ترکیب ژنهای متفاوتی را (نسبت به والدین خود) به فرزندان خود انتقال دهند.

روش‌های انتخاب

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

انتخاب Elitist

مناسب‌ترین عضو هر اجتماع انتخاب می‌شود.

انتخاب Roulette

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

انتخاب Scaling

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

انتخاب Tournament

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

بعضی از روش‌های دیگر عبارتند از:

  • Hierarchical Selection
  • Steady-State Selection
  • Rank Selection

مثال عملی

در این مثال می‌خواهیم مسئلهٔ ۸ وزیر را بوسیلهٔ این الگوریتم حل کنیم. هدف مشخص کردن چیدمانی از ۸ وزیر در صفحهٔ شطرنج است به نحوی که هیچ‌یک همدیگر را تهدید نکند. ابتدا باید نسل اولیه را تولید کنیم. صفحه شطرنج ۸ در ۸ را در نظر بگیرید. ستونها را با اعداد ۰ تا ۷ و سطرها را هم از ۰ تا ۷ مشخص می‌کنیم. برای تولید حالات (کروموزومها) اولیه بصورت تصادفی وزیرها را در ستونهای مختلف قرار می‌دهیم. باید در نظر داشت که وجود نسل اولیه با شرایط بهتر سرعت رسیدن به جواب را افزایش می‌دهد (اصالت نژاد) به همین خاطر وزیر i ام را در خانهٔ تصادفی در ستون i ام قرار می‌دهیم (به جای اینکه هر مهره‌ای بتواند در هر خانه خالی قرار بگیرد). با اینکار حداقل از برخورد ستونی وزیرها جلوگیری می‌شود.

توضیح بیشتر اینکه مثلاً وزیر اول را بطور تصادفی درخانه‌های ستون اول که با ۰ مشخص شده قرار می‌دهیم تا به آخر. i=۰٬۱، … ۷ حال باید این حالت را به نحوی کمی مدل کرد. چون در هر ستون یک وزیر قرار دادیم هر حالت را بوسیلهٔ رشته اعدادی که عدد k ام در این رشته شمارهٔ سطر وزیر موجود در ستون i ام را نشان می‌دهد. یعنی یک حالت که انتخاب کردیم می‌تواند بصورت زیر باشد: ۶۷۲۰۳۴۲۲ که ۶ شمارهٔ سطر ۶ است که وزیر اول که شمارهٔ ستونش ۰ است می‌باشد تا آخر. فرض کنید ۴ حالت زیر به تصادف تولید شده‌اند. این چهار حالت را بعنوان کروموزومهای اولیه بکار می‌گیریم.

  1. ) ۶۷۲۰۳۴۲۰
  2. ) ۷۰۰۶۳۳۵۴
  3. ) ۱۷۵۲۲۰۶۳
  4. )۴۳۶۰۲۴۷۱

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

  1. )۶۷۲۰۳۴۲۰ ← ۶
  2. )۷۰۰۶۳۳۵۴ ← ۸
  3. )۱۷۵۲۲۰۶۳ ← ۲
  4. )۴۳۶۰۲۴۷۱ ← ۴

پس احتمالها بصورت زیر است:

{\displaystyle p(3)>p(4)>p(1)>p(2)}

در اینجا کروموزومهایی را انتخاب می‌کنیم که برازندگی کمتری دارند. پس کروموزوم ۳ برای crossover با کروموزومهای ۴ و ۱ انتخاب می‌شود. نقطهٔ ترکیب را بین ارقام ۶ و ۷ در نظر می‌گیریم.

۴ و ۳:

  1. )۱۷۵۲۲۰۷۱
  2. )۴۳۶۰۲۴۶۳

۱ و ۳:

  1. )۱۷۵۲۲۰۲۰
  2. )۶۷۲۰۳۴۶۳

حال نوبت به جهش می‌رسد. در جهش باید یکی از ژن‌ها تغییر کند.

فرض کنید از بین کروموزومهای ۵ تا ۸ کروموزوم شمارهٔ ۷ و از بین ژن چهارم از ۲ به ۳ جهش یابد. پس نسل ما شامل کروموزومهای زیر با امتیازات نشان داده شده می‌باشد: (امتیازات تعداد برخوردها می‌باشد)

  1. )۶۷۲۰۳۴۲۰ ← ۶
  2. )۷۰۰۶۳۳۵۴ ← ۸
  3. )۱۷۵۲۲۰۶۳ ← ۲
  4. )۴۳۶۰۲۴۷۱ ← ۴
  5. )۱۷۵۲۲۰۷۱ ← ۶
  6. )۴۳۶۰۲۴۶۳ ← ۴
  7. )۱۷۵۳۲۰۲۰ ← ۴
  8. )۶۷۲۰۳۴۶۳ ← ۵

کروموزوم ۳ کاندیدای خوبی برای ترکیب با ۶ و ۷ می‌باشد. (فرض در این مرحله جهشی صورت نگیرد و نقطهٔ اتصال بین ژنهای ۱ و ۲ باشد)

  1. )۶۷۲۰۳۴۲۰ ← ۶
  2. )۷۰۰۶۳۳۵۴ ← ۸
  3. )۱۷۵۲۲۰۶۳ ← ۲
  4. )۴۳۶۰۲۴۷۱ ← ۴
  5. )۱۷۵۲۲۰۷۱ ← ۶
  6. )۴۳۶۰۲۴۶۳ ← ۴
  7. )۱۷۵۳۲۰۳۰ ← ۴
  8. )۶۷۲۰۳۴۶۳ ← ۵
  9. )۱۳۶۰۲۴۶۳ ← ۲
  10. )۴۷۵۲۲۰۶۳ ← ۲
  11. )۱۷۵۲۲۰۲۰ ← ۴
  12. )۱۷۵۲۲۰۶۳ ← ۲

کروموزومهای از ۹ تا ۱۲ را نسل جدید می‌گوییم. بطور مشخص کروموزوم‌های تولید شده در نسل جدید به جواب مسئله نزدیکتر شده‌اند. با ادامهٔ همین روند پس از چند مرحله به جواب مورد نظر خواهیم رسید.

نحوهٔ اجرای الگوریتم ژنتیکی

الگوریتم ژنتیک قسمت 1
الگوریتم ژنتیک قسمت 2

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

             

 

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

امکان تشخیص تمامی اعداد و حروف پلاک و شناسایی منطقه پلاک صادرشده امکان تشخیص تمامی پلاکهای موجود در کشور امکان دریافت عکس از دوربین های رنگی و سیاه و سفید و IR تحت شبکه تشخیص محل پلاک در عکس امکان تشخیص چندین پلاک در یک عکس امکان ارتباط با بانک اطلاعاتی سیستم پارکینگ جهت کنترل تردد خودروهای تعریف شده امکان ارسال اطلاعات خودروهای ممنوعه در بانک اطلاعاتی سیستم از طریق شبکه، GPRS ، SMS و MMS

اطلاعات فنی سیستم تشخیص پلاک خودرو

امکان تشخیص پلاک از فیلم زنده در دوربین های تحت شبکه و DVR سرعت بسیار بالا در تشخیص پلاک (کمتر از 200 میلی ثانیه) دقت بالا و امکان تشخیص چندین پلاک در یک عکس

 

کاربردهای سامانهٔ تشخیص پلاک

کنترل و اخذ عوارض ورود به محدوده طرح ترافیک

امروزه شهرهای بسیاری ورود خودروها به منطقه مرکزی شهر را به منظور کنترل ترافیکِ آن محدود ساخته‌اند. از آنجا که استفاده از روش‌های سنتی (قرار دادن نیروهای پلیس در تمامی مبادی محدوده) هم پر هزینه و هم کم دقت است، راه حل‌های جدیدی برای کنترل و اخذ عوارض ورود به محدوده پرتردد شهرها پیشنهاد شده است. یکی از این راه حل‌ها (که برای مثال در استکهلم[۳] و لندن[۴] استفاده می‌شود) استفاده از فناوری تشخیص پلاک خودرو است. در این راه حل، دوربین‌های تشخیص پلاک خودرو در تمامی مبادی طرح نصب می‌شوند و ورود هر خودرو به محدوده طرح ثبت می‌شود. سپس مانند روش اخذ عوارض، فرصتی به راننده داده می‌شود تا عوارض ورود به طرح را تا زمان مقرر پرداخت کند. در غیر اینصورت، راننده طبق قانون جریمه خواهد شد.

اخذ عوارض جاده‌ها و بزرگراه‌ها به صورت خودکار

از آنجا که وجود مانع بر سر راه خودروها در عوارضی‌ها باعث کند شدن حرکت، ایجاد ترافیک، و به تبع آن آلودگی محیط زیست می‌شود، راه‌های مختلفی برای حذف موانعِ موجود در عوارضی‌ها پیشنهاد شده است. یکی از این راه‌ها استفاده از سامانهٔ تشخیص پلاک خودرو می‌باشد. در این راه حل، خودروها بدون نیاز به توقف از عوارضی‌ها عبور می‌کنند و سامانهٔ تشخیص پلاک خودرو شماره پلاک آنها را ثبت می‌کند. بر اساس شماره پلاک، عوارض مربوطه محاسبه می‌شود و راننده ملزم به پرداخت عوارض در زمان مشخصی خواهد بود. در صورت عدم پرداخت عوارض در زمان مقرر، خودرو طبق قانون جریمه خواهد شد. به این روش عوارض ویدئویی (به انگلیسی: Video Tolling) گفته می‌شود.

محاسبه مدت سفر

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

اندازه‌گیری سرعت متوسط خودروها

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

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

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

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

منبع


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

می توانید به منظور آشنایی با یکی از دقیقترین و سریعترین سامانه های جامع کنترل تردد خودرو (پلاک خوان) به لینک :سامانه جامع کنترل تردد خودرو بهسان(پلاک خوان) مراجعه فرمایید.

هوش‌ازدحامی

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

هوش ازدحامی

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

مقدمه

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

این یک نمونه ساده از رفتار جمعی و گروهی یا Swarm behavior است که افراد برای رسیدن به یک هدف نهایی همکاری می‌کنند. این روش کاراتر از زمانی است که افراد جداگانه کنش کنند. Swarm را می‌توان به صورت مجموعه‌ای سازمان یافته از گماشته (agent)ها یا موجوداتی تعریف کرد که با یکدیگر همکاری می‌کنند. در کاربردهای محاسباتی هوش ازدحامی و گروهی (Swarm Intelligence) از موجودات یا گماشته‌هایی مانند مورچه‌ها، زنبورها، موریانه‌ها، ماهی‌ها، پرندگان، یا حتی چکه‌های آب در رودخانه الگو برداری می‌شود. در این نوع اجتماعات هر یک از موجودات یا گماشته‌ها ساختار نستباً ساده‌ای دارند ولی رفتار گروهی آنها پیچیده به نظر می‌رسد. برای نمونه، در کولونی مورچه‌ها، هر یک از مورچه‌ها یک کار سادهٔ ویژه‌ای را انجام می‌دهد ولی به طور گروهی، کردار و رفتار مورچه‌ها؛ ساختن لانه، نگهبانی از ملکه و نوزادان، پاکداری لانه، یافتن بهترین منابع خوراکی و بهینه‌سازی راهبرد جنگی را تضمین می‌کند. رفتار کلی یک Swarm به گونهٔ غیر خطی از همآمیختگی رفتارهای تک تک اجتماع بدست می‌آید. یا به زبانی دیگر، یک رابطهٔ بسیار پیچیده میان رفتار گروهی و رفتار فردی یک اجتماع وجود دارد.

رفتار گروهی، تنها وابسته به رفتار فردی گماشته‌ها و افراد اجتماع نیست بلکه به چگونگی همکنشی (interaction) و تعامل میان افراد نیز وابسته است. همکنشی بین افراد، تجربهٔ افراد دربارهٔ پیرامون (environment) را افزایش می‌دهد و مایه پیشرفت اجتماع می‌شود. ساختار اجتماعی Swarm بین افراد مجموعه کانالهای ارتباطی ایجاد می‌کند که طی آن افراد می‌توانند به داد و ستد تجربه‌های شخصی بپردازند. مدل‌سازی محاسباتی Swarmها کاربردهای امیدبخش و بسیاری را به ویژه در زمینه بهینه‌سازی (optimization) در پی داشته است. الگوریتهای فزاینده‌ای از بررسی Swarmهای گوناگون پیشنهاد شده‌اند. از این رده، می‌توان به کولونی مورچه‌ها (Ant Colony) و دستهٔ پرندگان (Bird Flocks) اشاره نمود. با اینکه دانش Swarm intelligence، دانشی نو می‌باشد؛ هم اکنون، کاربردهای رو به گسترشی از آن شناخته شده است. با این رشد روزافزون، Swarm intelligence می‌تواند نقش ارزنده‌ای را در دانشهای گوناگون بر دوش بگیرد.

الگوریتمهای هوش ازدحامی

الگوریتم مورچه‌ها

روش بهینه‌سازی گروه مورچه‌ها(Ant Colony Optimization)یکی از زیر شاخه‌های هوش ازدحامی است که در آن از رفتار مورچه‌های واقعی برای یافتن کوناه‌ترین گذرگاه میان لانه و چشمه خوراکی (food source) الگوبرداری شده است. هر مورچه برای یافتن خوراک در گرداگرد لانه به گونه تصادفی حرکت و در طی راه با بهره‌گیری از ماده شیمیایی به نام فرومن، از خود ردی بر جای می‌گذارد. هر چه شمار مورچه‌های گذر کرده از یک گذرگاه بیشتر باشد، میزان فرومن انباشته روی آن گذرگاه نیز افزایش می‌یابد. مورچه‌های دیگر نیز برای گزینش گذرگاه، به میزان فرومن آن می‌نگرند و به احتمال زیاد گذرگاهی را که دارای بیشترین فرومن است بر می‌گزینند. به این شیوه، حلقه بازخور مثبت پدید می‌آید. گذرگاه هرچه کوتاه‌تر باشد، زمان رفت و برگشت کاهش و مورچه بیشتری در یک زمان مشخص از آن می‌گذرد. از این رو، انباشت فرومن آن افزایش می‌یابد.

شایان یادآوری است که گزینش گذرگاه دارای بیشترین فرومن، قطعی نیست و احتمالی است. به همین سبب، امکان یافتن بهترین گشایش (solution) وجود دارد. روش ACO، نوعی فرااکتشافی است که برای یافتن گشایشهای تقریبی برای مسائل بهینه‌سازی آمیختاری (Combinatiorial Optimization) سودمند است. روش ACO، مورچه‌های ساختگی به‌وسیلهٔ حرکت بر روی گرافِ مسئله و با وانهادن (deposit) نشانه‌هایی بر روی گراف، همچون مورچه‌های واقعی که در گذرگاه خود نشانه‌های به جا می‌گذارند، سبب می‌شوند که مورچه‌های ساختگی بعدی بتوانند گشایشهای بهتری را برای مسئله فراهم کنند.

الگوریتم مورچه هاالگوریتم مورچه ها

بهینه‌سازی گروهی ذره

روش بهینه‌سازی ازدحام ذرات (Particle swarm optimization) یک الگوریتم جستجوی اجتماعی است که از روی رفتار اجتماعی دسته‌های پرندگان مدل شده است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آنها و تغییر شکل بهینهٔ دسته به کار گرفته شد. در PSO، particleها در فضای جستجو جاری می‌شوند. تغییر مکان particleها در فضای جستجو تحت تأثیر تجربه و دانایی خودشان و همسایگانشان است. بنابراین موقعیت دیگر particleهای Swarm روی چگونگی جستجوی یک particle اثر می‌گذارد. نتیجهٔ مدل‌سازی این رفتار اجتماعی فرایند جستجویی است که particleها به سمت نواحی موفق میل می‌کنند. Particleها در Swarm از یکدیگر می‌آموزند و بر مبنای دانایی بدست آمده به سمت بهترین همسایگان خود می‌روند. Particle swarm Optimization Algorithm اساس کار PSO بر این اصل استوار است که در هر لحظه هر particle مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته است و بهترین مکانی که در کل همسایگی‌اش وجود دارد، تنظیم می‌کند.

فرض کنید می‌خواهیم زوج مرتب [x،y] را طوری بدست آوریم که تابع F(x،y)=x۲+y۲، مینیمم شود. ابتدا نقاطی را به صورت تصادفی در فضای جستجو، روی صفحهٔ x-y انتخاب می‌کنیم. فرض کنید این Swarm را به ۳ همسایگی تقسیم کنیم که در هر همسایگی نقاط موجود با یکدیگر تعامل دارند. در هر همسایگی هر یک از نقاط به سمت بهترین نقطه در آن همسایگی و بهترین مکانی که آن نقطه تاکنون در آن قرار داشته است، حرکت می‌کند. برای حل یک مسئله چند متغیر بهینه‌سازی می‌توان از چند Swarm استفاده کرد که هر یک از Swarmها کار مخصوصی را انجام می‌دهند. این همان ایده‌ای است که Ant colony از آن ریشه می‌گیرد. روش PSO یک الگوریتم روش جستجوی سراسری (global search algorithm) است که با بهری گیری از آن می‌توان با مسائلی که پاسخ آنها یک نقطه یا سطح در فضای n بعدی می‌باشد، برخورد نمود. در اینچنین فضایی، فرضیاتی مطرح می‌شود و یک سرعت ابتدایی به آنها اختصاص داده می‌شود، همچنین کانال‌های ارتباطی بین ذرات درنظر گرفته می‌شود. سپس این ذرات در فضای پاسخ حرکت می‌کنند، و نتایج حاصله بر مبنای یک «ملاک شایستگی» پس از هر بازهٔ زمانی محاسبه می‌شود.

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

بهینه‌سازی ازدحام ذراتبهینه‌سازی ازدحام ذرات

سامانه ایمنی ساختگی (هُنردادار)

این روش (به انگلیسی: Artificial Immune System) از سامانه ایمنی پرهامی (طبیعی) برگرفته شده و با مدل کردن برخی یاخته‌های این سامانه می‌کوشد تا از اینگونه سامانه‌ها در راستای بهینه‌سازی یا یادگیری دستگاه (Machine Learning) بهره بگیرد.

الگوریتمهای بر پایه زنبور

چندین الگوریتم در زمینه الگوبرداری از رفتار گروهی زنبورها در کندو یا بیرون آن به ویژه رفتار آنها در خوراکجویی (foraging) برای بهینه‌سازی پیوسته (continuous optimization) پیشنهاد شده‌اند.

الگوریتم کلونی زنبور عسل

الگوریتم چکه آب‌های هوشمند

الگوریتم چکه آبهای هوشمند بر پایه بررسی رفتار گروهی چکه‌های آب در رودخانه‌ها برای بهینه‌سازی پیشنهاد شده است. این الگوریتم با گسیل کردن چکه‌های هوشمند آب بر روی گراف مسئله (پرسمان)، می‌کوشد راه‌های بهینه تر را برای گذر چکه‌های یاد شده هموارتر گرداند.

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

کاربردها

گیرایی هوش ازدحامی در فناوری اطلاعات

همگونی‌هایی بین مسائل متفاوت در حوزهٔ فناوری اطلاعات و رفتارهای حشرات اجتماعی وجود دارد:

  • سامانه‌ای توزیع شده از کنشگرهای مستقل و تعامل کننده.
  • اهداف: بهینه‌سازی کارآیی و توان.
  • خود تنظیم بودن در روش‌های کنترل و همکاری به شکل نامتمرکز.
  • توزیع کار و اختصاص وظایف به شکل توزیع شده.
  • تعاملات غیر مستقیم.

گامهای طراحی یک سامانه

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

  • شناسایی همسانی‌ها: در سامانه‌های IT و طبیعت.
  • فهم: مدلسازی رایانه‌ای روش گروهی طبیعی به شکل واقع‌گرا.
  • مهندسی: ساده‌سازی مدل و تنظیم آن برای کاربردهای IT.

کاربردهای کنونی و آینده

  • مسیریابی در شبکه.
  • سامانه‌های توزیع‌شدهٔ رایانامهای.
  • اختصاص منابع به شکل بهینه.
  • زمان‌بندی وظایف.
  • بهینه‌سازی ترکیبیاتی.
  • روباتیک:
    • بررسی سیستم‌های لوله‌کشی.
    • تعمیرات و نگهداری ماهواره‌ها و کشتی‌ها.
    • روبوت‌های خود-مونتاژ.

منبع


مطالب مرتبط:

الگوریتم کلونی زنبور عسل مصنوعی Artificial Bee Colony (ABC) Algorithm

مقاله های الگوریتم کلونی زنبور عسل( Artificial Bee Colony (ABC) Algorithm) و کاربردهای آن

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

چکیده : با توجه به پیشرفت های اخیر فناوری ارتباطات بی سیم در چند دهه اخیر ، مطالعات کارشناسان در زمینه شبکه های گیرنده بی سیم هم سیر صعودی را طی کرده است.بسیاری از این بررسی ها در قالب کتب علمی ، الحاقیه ، الگوریتم و موارد کاربردی اجرا و اعمال شده اند. کارایی این شبکه ها به طور مستقیم به پروتکل های مسیریابی که روی زمان زندگی شبکه تآثیر می گذارند بستگی خواهد داشت. خوشه بندی یکی از رایج ترین روش های اجرایی در این مبحث تلقی می شود. ما در این مقاله به بررسی کارایی انرژی در پروتکل های بر پایه الگوریتم های کندوی زنبور عسل می پردازیم که نشان دهنده امتداد طول عمر شبکه می باشد. الگوریتم های کندوی زنبور عسل طوری طراحی شده اند که رفتارهای جستجوگرانه زنبورهای عسل را شبیه سازی کرد و به طور موفقیت آمیزی در تکنیک های خوشه بندی مورد استفاده قرار می گیرند. عملکرد این روش پیشنهادی با پروتکل های متکی بر LEACH و بهینه سازی گروهی اجزا که پیش از این مورد بررسی قرار گرفته اند ،مقایسه می شود. نتایج این بررسی ها نشان می دهد که الگوریتم های کندوی زنبور عسل میتواند در پروتکل های مسیریابی WSN روند موفقیت آمیزی داشته باشد.
کلمات کلیدی : شبکه های گیرنده بی سیم ، برپایه خوشه بندی ( خوشه ای ) ، الگوریتم زنبور عسل فایل PDF – در 22 صفحه
– نویسنده : ناشناس
دانلود
پسورد فایل : behsanandish.com


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

 

شامل سرفصل های :

1- الگوریتم کلونی زنبورعسل مصنوعی

2- معرفی چند الگوریتم بهینه شده کلونی زنبورعسل در محیط پیوسته

3- الگوریتم کلونی زنبورعسل مصنوعی موازی

4- الگوریتم کلونی زنبورعسل مصنوعی برای مسائل بهینه سازی دودویی

فایل Power Point – در 40 اسلاید – نویسنده : ناشناس

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

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


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

چكيده : در این تحقیق برای حل مسئله ی تخصیص سلول به سوئیچ (CTSAP) ، از الگوریتم فراابتکاری کلونی زنبور عسل مصنوعی (ABC) استفاده شده است. هدف مسئله، تخصیص بهینه سلولها به سوئیچها با حداقل هزینه است. در این تحقیق هزینه از دو جزء تشکیل یافته است. یکی هزینه ی تعویضها که مربوط به دو سوئیچ است و دیگری هزینه ی اتصال میباشد. ظرفیت پاسخگویی تماس هر سوئیچ نیز محدود است و فرض میشود همه ی سوئیچها ظرفیت برابری داشته باشند. در مدل این پژوهش هر سلول باید فقط و فقط تنها به یک سوئیچ متصل گردد(single homed).مدل ریاضی این تحقیق، غیرخطی صفر و یک است.  کد رایانه ای الگوریتم با نرم افزار MATLAB 7.8.0 نوشته شده است. پس از تعیین مقادیر پارامترهای مدل و تأیید صحت عملکرد کد و تنظیم پارامترهای کنترل، کارایی الگوریتم با ایجاد مسائل آزمایشی، با یکی از بهترین الگوریتمهای CTSAP یعنی الگوریتم بهینه سازی کلونی مورچگان (ACO) مقایسه شده است و نتایج نشان می دهد که الگوریتم ABC در قیاس با ACO عملکرد رضایت بخشی دارد.
واژگان کليدی: مسئله تخصیص سلول به سوئیچ، الگوریتم فراابتکاری، شبکههای تلفن همراه، الگوریتم کلونی زنبور عسل مصنوعی
فایل PDF – در 24 صفحه- نویسندگان : سيد محمد علی خاتمی فيروزآبادی , امين وفادار نيكجو
دانلود
پسورد فایل : behsanandish.com


ﮐﻠﻮﻧﯽ زﻧﺒﻮرﻫﺎي ﻣﺼﻨﻮﻋﯽ ﺳﻠﻮﻟﯽ

ﭼﮑﯿﺪه: در اﯾﻦ ﻣﻘﺎﻟﻪ دو ﻣﺪل ﺗﺮﮐﯿﺒﯽ ﮐﻪ از ﺗﺮﮐﯿﺐ ﮐﻠﻮﻧﯽ زﻧﺒﻮرﻫـﺎ و اﺗﻮﻣﺎﺗﺎي ﺳﻠﻮﻟﯽ ﺣﺎﺻﻞ ﺷﺪه اﺳﺖ ﺑﻪ ﻣﻨﻈﻮر ﺑﻬﯿﻨﻪ ﺳﺎزي ﭘﯿﺸﻨﻬﺎد ﻣﯽﮔﺮدد . اﺗﻮﻣﺎﺗـﺎي ﺳـﻠﻮﻟﯽ وﻇﯿﻔـﻪ ﮐـﺎﻫﺶ آﻧﺘﺮوﭘـﯽ و اﻓـﺰاﯾﺶ ﺳـﺮﻋﺖ ﻫﻤﮕﺮاﯾﯽ را ﺑﻪ ﻋﻬﺪه دارد . در ﻣـﺪل ﭘﯿﺸـﻨﻬﺎدي در اول ﻫـﺮ ﺳـﻠﻮل از اﺗﻮﻣﺎﺗﺎي ﯾﺎدﮔﯿﺮ ﺳﻠﻮﻟﯽ ﯾﮏ ﮐﻠﻮﻧﯽ از زﻧﺒﻮرﻫـﺎ ﻗـﺮار داده ﻣـﯽ ﺷـﻮد . ﺑـﻪ ﺑﺪﺗﺮﯾﻦ ﻫﺮﺳﻠﻮل ، ﻣﻨﻈﻮر ﺑﻬﺒﻮد ﺟﺴﺘﺠﻮي ﺳﺮاﺳﺮي و ﻫﻤﮕﺮاﯾﯽ ﺳﺮﯾﻌﺘﺮ ﺑﺎ ﺑﻬﺘﺮﯾﻦ ﻫﻤﺴﺎﯾﮕﺎن ﺑﻪ روش ﺣﺮﯾﺼﺎﻧﻪ ﺟﺎﯾﮕﺰﯾﻦ ﻣﯽ گردد. در ﻣﺮﺣﻠـﻪ دوم در ﻫﺮ ﺳﻠﻮل ﯾﮏ زﻧﺒﻮر ﻗﺮار ﻣـﯽ ﮔﯿـﺮد .ﻧﺘـﺎﯾﺞ آزﻣﺎﯾﺸـﻬﺎ ﺑـﺮ روي ﻣﺴﺎیل ﻧﻤﻮنه ﻧﺸﺎن ﻣﯿﺪﻫﺪ ﮐﻪ روش ﻫﺎی اراﺋﻪ ﺷﺪه از ﻋﻤﻠﮑﺮد ﺑﻬﺘـﺮي در ﻣﻘﺎﯾﺴﻪ ﺑﺎ ﻣﺪل ﮐﻠﻮﻧﯽ زﻧﺒﻮرﻫﺎي ﻣﺼﻨﻮعی اﺳﺘﺎﻧﺪارد ﺑﺮﺧﻮردار می باشد.
واژه ﻫﺎي ﮐﻠﯿﺪی : کلونی زنبور، اﺗﻮﻣﺎﺗﺎي ﺳﻠﻮﻟﯽ، بهینه سازی
فایل PDF – در 4 صفحه- نویسندگان : زهرا گل میرزایی ، محمدرضا میبدی
دانلود
پسورد فایل : behsanandish.com


یک بررسی جامع: الگوریتم و برنامه های کاربردی کلونی زنبور عسل (ABC)

A comprehensive survey: artificial bee colony (ABC) algorithm and applications

Abstract : Swarm intelligence (SI) is briefly defined as the collective behaviour of decentralized
and self-organized swarms. The well known examples for these swarms are bird
flocks, fish schools and the colony of social insects such as termites, ants and bees. In 1990s,
especially two approaches based on ant colony and on fish schooling/bird flocking introduced
have highly attracted the interest of researchers. Although the self-organization features are
required by SI are strongly and clearly seen in honey bee colonies, unfortunately the researchers
have recently started to be interested in the behaviour of these swarm systems to describe
new intelligent approaches, especially from the beginning of 2000s. During a decade, several
algorithms have been developed depending on different intelligent behaviours of honey bee
swarms. Among those, artificial bee colony (ABC) is the one which has been most widely
studied on and applied to solve the real world problems, so far. Day by day the number of
researchers being interested in ABC algorithm increases rapidly. This work presents a comprehensive
survey of the advances with ABC and its applications. It is hoped that this survey
would be very beneficial for the researchers studying on SI, particularly ABC algorithm.
,Keywords : Swarm intelligence
,Bee swarm intelligence
Artificial bee colony algorithm

فایل Power Point - در 37 صفحه - نویسندگان: Dervis Karaboga , Beyza Gorkemli , Celal Ozturk , Nurhan Karaboga
A comprehensive survey- artificial bee colony (ABC)
پسورد فایل : behsanandish.com


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

Global Artificial Bee Colony Search Algorithm for Numerical Function Optimization

Abstract—The standard artificial bee colony (ABC) algorithm as a relatively new swarm optimization method is often trapped in local optima in global optimization. In this paper, a novel search strategy of main three procedures of the ABC algorithm is presented. The solutions of the whole swarm are exploited based on the neighbor information by employed bees and onlookers in the ABC algorithm. According to incorporating all employed bees’ historical best position information of food source into the solution search equation, the improved algorithm that is called global artificial bee colony search algorithm has great advantages of convergence property and solution quality. Some experiments are made on a set of benchmark problems, and the results demonstrate that the proposed algorithm is more effective than other population based optimization algorithms. Keywords—Artificial bee colony, Search strategy, Particle swarm optimization, Function optimization فایل PDF – در 4 صفحه – نویسندگان : Guo Peng, Cheng Wenming, Liang Jian Global Artificial Bee Colony Search Algorithm for Numerical Function Optimization پسورد فایل : behsanandish.com


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

A modified Artificial Bee Colony (ABC) algorithm for constrained optimization problems

Abstract : Artificial Bee Colony (ABC) algorithm was firstly proposed for unconstrained optimization problems on where that ABC algorithm showed superior performance. This paper describes a modified ABC algorithm for constrained optimization problems and compares the performance of the modified ABC algorithm against those of state-of-the-art algorithms for a set of constrained test problems. For constraint handling, ABC algorithm uses Deb’s rules consisting of three simple heuristic rules and a probabilistic selection scheme for feasible solutions based on their fitness values and infeasible solutions based on their viola- tion values. ABC algorithm is tested on thirteen well-known test problems and the results obtained are compared to those of the state-of-the-art algorithms and discussed. Moreover, a statistical parameter analysis of the modified ABC algorithm is conducted and appropriate values for each control parameter are obtained using analysis of the variance (ANOVA) and analysis of mean (ANOM) statistics. Keywords: Swarm intelligence Modified Artificial Bee Colony algorithm Constrained optimization فایل PDF – در 37 صفحه – نویسندگان : Dervis Karaboga , Bahriye Akay A modified Artificial Bee Colony (ABC) algorithm for constrained optimization1 پسورد فایل : behsanandish.com


 یک الگوریتم کلونی زنبور عسل مصنوعی جدید-بر اساس فاصله داده های سریال با استفاده گرام های سیگما
ABC-SG: A New Artificial Bee Colony Algorithm-Based Distance of Sequential Data Using Sigma Grams

Abstract 
The problem of similarity search is one of the main
problems in computer science. This problem has many
applications in text-retrieval, web search, computational
biology, bioinformatics and others. Similarity between
two data objects can be depicted using a similarity
measure or a distance metric. There are numerous
distance metrics in the literature, some are used for a
particular data type, and others are more general. In this
paper we present a new distance metric for sequential data
which is based on the sum of n-grams. The novelty of our
distance is that these n-grams are weighted using artificial
bee colony; a recent optimization algorithm based on the
collective intelligence of a swarm of bees on their search
for nectar. This algorithm has been used in optimizing a
large number of numerical problems. We validate the new
distance experimentally.
Keywords:  Artificial Bee Colony, Extended Edit
Distance, Sequential Data, Distance Metric, n-grams. 
فایل PDF – در 7 صفحه – نویسنده :Muhammad Marwan Muhammad Fuad
پسورد فایل : behsanandish.com

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

Application of artificial bee colony (ABC) algorithm in search of optimal release of Aswan High Dam

Abstract. The paper presents a study on developing an optimum reservoir release policy by using ABC algorithm. The decision maker of a reservoir system always needs a guideline to operate the reservoir in an optimal way. Release curves have developed for high, medium and low inflow category that can answer how much water need to be release for a month by observing the reservoir level (storage condition). The Aswan high dam of Egypt has considered as the case study. 18 years of historical inflow data has used for simulation purpose and the general system performance measuring indices has measured. The application procedure and problem formulation of ABC is very simple and can be used in optimizing reservoir system. After using the actual historical inflow, the release policy succeeded in meeting demand for about 98% of total time period. فایل PDF – در 8 صفحه – نویسندگان : Md S Hossain and A El-shafie  Application of artificial bee colony (ABC) algorithm پسورد فایل : behsanandish.com


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

Artificial Bee Colony (ABC) Optimization Algorithm for Solving Constrained Optimization Problems

Abstract. This paper presents the comparison results on the performance of the Artificial Bee Colony (ABC) algorithm for constrained optimization problems. The ABC algorithm has been firstly proposed for unconstrained optimization problems and showed that it has superior performance on these kind of problems. In this paper, the ABC algorithm has been extended for solving constrained optimization problems and applied to a set of constrained problems . فایل PDF – در 10 صفحه – نویسندگان : Dervis Karaboga and Bahriye Basturk Artificial Bee Colony (ABC) Optimization پسورد فایل : behsanandish.com


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

Artificial Bee Colony Algorithm and Its Application to Generalized Assignment Problem

فایل PDF – در 32 صفحه – نویسندگان : Adil Baykasoùlu, Lale Özbakır and Pınar Tapkan Artificial Bee Colony Algorithm and Its پسورد فایل : behsanandish.com


  الگوریتم کلونی زنبور عسل مصنوعی
Artificial Bee Colony Algorithm

Contents 
• Swarm Intelligence – an Introduction 
• Behavior of Honey Bee Swarm 
 • ABC algorithm
 • Simulation Results 
• Conclusion 
فایل PDF از یک فایل Power Point – در 22 اسلاید- نویسنده : ناشناس
پسورد فایل : behsanandish.com

بهینه سازی کلونی زنبور عسل پارت 1: مرور الگوریتم

BEE COLONY OPTIMIZATION PART I: THE ALGORITHM OVERVIEW

,Abstract: This paper is an extensive survey of the Bee Colony Optimization (BCO) algorithm proposed for the first time in 2001. BCO and its numerous variants belong to a class of nature-inspired meta–heuristic methods, based on the foraging habits of honeybees. Our main goal is to promote it among the wide operations research community. BCO is a simple, but ecient meta–heuristic technique that has been successfully applied to many optimization problems, mostly in transport, location and scheduling fields. Firstly, we shall give a brief overview of the meta–heuristics inspired by bees’ foraging principles, pointing out the dierences between them. Then, we shall provide the detailed description of the BCO algorithm and its modifications, including the strategies for BCO parallelization, and give the preliminary results regarding its convergence. The application survey is elaborated in Part II of our paper. Keywords: Meta–heuristics, Swarm Intelligence, Foraging of Honey Bees فایل PDF- در24 صفحه – نویسندگان : Tatjana DAVIDOVI´ C , Duˇsan TEODOROVI´ C , Milica ˇSELMI´ C BEE COLONY OPTIMIZATION PART I پسورد فایل : behsanandish.com


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

استگانوگرافی، برگرفته از دو کلمه‌ایونانی stego به معنای پوشیده و graphy به معنای نوشتن است؛ بنابراین کل کلمه به معنای پوشیده‌نویسی یا پنهان‌نگاری می‌باشد.

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

کلمات معادل

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

تفاوت پنهان نگاری(Steganography) و رمزنگاری(Cryptography)

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

روش‌های پنهان‌نویسی

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

open space methods

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

syntactic methods

در این روش از تغییر punctuations و همین‌طور از تغییر متن تا آنجا که معنا عوض نشود، استفاده می‌شود. مثلاً:

Bread, butter, and milk

Bread, butter and milk

semantic methods

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

پوشیده‌نویسی در صدا

محدودیت مهم در مورد صدا این است که بعد از پوشیده‌نویسی صدا باید همچنان قابل شنیدن باشد. یک مورد دیگر آن است که اکثر فایلهای صوتی توسط الگوریتمهای فشردهسازی فشرده می‌شوند و نباید در حین این فشرده‌سازی داده‌های مخفی ما ازبین برود. تکنیک‌هایی مانند «bitstream watermarking» و «PCM watermarking» برای این‌کار استفاده می‌شوند.

در تکنیک «bitstream watermarking» داده‌ها در یک فایل صوتی فشرده‌شده ذخیره می‌شوند. البته باید توجه نمود که دو پارامتر «sample quantization» و «sample rating» و همچنین نوع انتقال صوت در انتخاب تکنیک مناسب (تکنیک‌هایی مانند Spread Spectrum , Encoding, Phase Coding و Echo Data Hiding) نقش تعیین‌کننده‌ای دارد.

پوشیده‌نویسی در تصویر

پوشیده‌نویسی در تصویر را می‌توان به دو دسته کلّی تقسیم کرد:

دسته نخست: Spatial Domain Techniques

در این دسته با کمک الگوریتم‌هایی، پیکسل‌هایی انتخاب می‌شوند، سپس روش LSB بر روی تصویر اعمال می‌شود.

دسته دوم: (Spread Spectrum Techniques(frequency domain

این روش‌ها برای تصاویر با پسوند JPEG، که فشرده‌اند مناسب هستند و در این دسته یک تابع تبدیل مانند (DCT(Discrete Wavelet Transform یا (FFT(Fast Fourier Transform بر روی تصویر اعمال می‌شود. ضرایب مهم (coefficient) انتخاب می‌شوند. برای آن که در نهایت داده‌های ما در برابر تغییراتی که بر عکس ممکن است پیش بیایند مقاوم باشند (مثلاً مهاجم‌ها نتوانند داده‌های ما را به راحتی حذف کنند و سپس داده‌ها در دامنهٔ DCT یا FFT از طریق تغییر ضرایب درج می‌شوند. در نهایت تبدیل معکوس DCT یا FFT به ما تصویر حاوی داده را می‌دهد.

پوشیده نویسی در فیلم

پوشیده‌نویسی در فیلم مانند پوشیده‌نویسی در تصویر است، چراکه فیلم دنباله‌ای از تصاویر است، تکنیک DCT در آنجا نیز کاربرد دارد. نکته مهم در پوشیده‌نویسی در فیلم این است که نباید bit-rate فیلم تغییر کند.

روش (DWT (Discrete Wavelet Transform نیز درمخفی کردن داده‌ها در فیلم استفاده می‌شود. باید فشرده بودن فایل‌ها که در مورد فایلهای صوتی مطرح است، این‌جا هم رعایت شود.

تقابل امنیت، ظرفیت و مقاومت

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

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

تعریف پنهان شکنی

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

منبع