بایگانی برچسب برای: ازمونیار

ریشه شناسی ربات (اتیمولوژی)

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

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

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

چاپک در مقاله ای که در مجله Lidové noviny (متعلق به جمهوری چک) منتشر شد توضیح داد که در ابتدا قصد داشت این موجودات را laboři( کارگر به زبان لاتین) نام‌گذاری کند اما از این کلمه خوشش نمی آمد، بنابراین از برادرش مشورت گرفت. جوزف نیز به او کلمه ی  roboti را پیشنهاد کرد.

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

به طور سنتی، Robota مدت زمانی بود که یک کارگر باید به‌صورت اجباری در اختیار اربابش قرار می گرفت. این مدت به طور معمول 6 ماه از سال در نظر گرفته می‌شد. ریشه این کلمه در زبان اسلاوی کلیسایی باستان است که در آن rabota به معنی بندگی و خدمت اجباری است که البته خود این واژه نیز از ریشه  *orbh- متعلق به زبان پوروا هندواروپایی گرفته شده  است. واژه ربات با ریشه آلمانی Arbeit( به معنی کار) هم ریشه تلقی می شود.

واژه رباتیک به که برای توصیف علم بررسی ربات‌ها استفاده می شود، اولین بار توسط ایزاک آسیموف، نویسنده داستان‌های علمی-تخیلی استفاده شد. آسیموف، زمینه ای به نام “سه قانون اصلی رباتیک” را ساخت که در داستان‌های مختلف او مورداستفاده قرار گرفته است.

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

پروفسور Joanna Bryson از دانشگاه University of Bath در این باره می گوید: “مردم اغلب در مورد قانون های آسیموف فکر می کنند؛ اما این قوانین برای این طراحی شده بودند تا نشان دهند یک سیستم اخلاقی ساده هرگز موثر نخواهد بود؛ اگر داستان‌های کوتاه آسیموف را بخوانید خواهید دید که در تمامی آن‌ها، عدم پیروی ربات‌ها از قوانین آسیموف منجر به اتفاقات اصلی داستان می شود. پس می‌توان گفت این قوانین کاملا غیر کاربردی هستند”.

انواع ربات‌های مدرن

ربات‌های متحرک

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

نمونه ای از ربات های متحرک مشهور به ارابه یا ربات های حمل و نقل خود راهنما – AVGs

نمونه ای از ربات های متحرک مشهور به ارابه یا ربات های حمل و نقل خود راهنما – AVGs

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

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

ربات‌های صنعتی

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

سازمان بین المللی استانداردسازی تعریف ربات صنعتی(بازوی مکانیکی) را در استاندارد  ISO 8373 به شرح زیر تعریف کرده است:

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

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

ربات‌های خدماتی

بیشتر ربات‌های صنعتی و بازو های مکانیکی به‌صورت ثابت هستند و به منظور تولید و توزیع کالا ها مورداستفاده قرار می‌گیرند. اما واژه “ربات‌های خدماتی” به خوبی ربات‌های صنعتی تعریف نشده است. فدراسیون بین المللی رباتیک، تعریف اولیه ای را برای این گونه ربات‌های مشخص کرده است:” یک ربات خدماتی، رباتی است که برای ارائه خدماتی که رفاه انسان‌ها و تجهیزات مفید است، به‌صورت نیمه یا تمام خودگردان عمل می کند. این ربات در فعالیت های تولیدی شرکت نمی کند.”

نمونه ای از یک ربات خدماتی مشهور به TWENDY-ONE

نمونه ای از یک ربات خدماتی مشهور به TWENDY-ONE

ربات‌های آموزشی

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

امروزه کیت های رباتی مانند Lego Mindstorms NXT،  BIOLOID، OLLO و یا ربات‌های آموزشی شرکت BotBrain در بازار موجود هستند. این کیت ها به کودکان کمک می کنند تا در مورد ریاضی، فیزیک، برنامه‌نویسی و الکترونیک چیز های مختلفی یاد بگیرند. ربات‌ها حتی از طریق مسابقات رباتیک، وارد زندگی دانش آموزان مقاطع ابتدایی و دبیرستان نیز شده است و هر ساله مسابقات مختلفی  در سرتاسر جهان برگزار می شود.

کیت رباتیLego Mindstorms NXT از سری ربات های آموزشی

کیت رباتیLego Mindstorms NXT از سری ربات های آموزشی

البته دستگاه‌هایی نیز وجود دارند که به شکل ربات طراحی شده‌اند که به‌عنوان نمونه می‌توان به کامپیوتر معلم به نام  Leachim و یا  2-XL که یک اسباب بازی آموزشی به شکل ربات است اشاره کرد. هر دو این وسایل توسط  Michael J. Freeman ساخته‌شده‌اند.

ربات‌های ماژولار (تکه ای)

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

ربات‌های ماژولار ممکن است از ماژول های L شکل، ماژول های مکعبی، ماژول های H شکل و ماژول های U شکل تشکیل شوند. فناوری ANAT که اولین فناوری مخصوص برای ساخت ربات‌های ماژولار است و توسط شرکت Robotics Design طراحی شده، امکان ساخت ربات‌های ماژولار با ماژول های H و U شکل را فراهم می کند به طوری که این ماژول ها در زنجیره هایی به یکدیگر متصل هستند. از چنین سیستمی برای ساخت ربات‌های ماژولار با شکل های همگن و یا غیرهمگن استفاده می شود.

نمونه ای از ربات ماژولار

نمونه ای از ربات ماژولار

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

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

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

ربات‌های مشارکتی

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

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

شرکت Rethink Robotics که توسط  Rodney Brooks تاسیس شده، در سپتامبر سال 2012 رباتی به نام  Baxter را معرفی کرد. این ربات، یک ربات صنعتی است که به‌گونه‌ای طراحی شده تا بتواند با سایر کارگران در محیط کارگاه، به طور ایمن تعامل داشته باشد و بتوان آن را برای انجام کار های ساده برنامه ریزی کرد.

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

ربات‌ها در جامعه

تقریباً نصف ربات‌های جهان در قاره آسیا، 32 درصد در اروپا، 16 درصد در آمریکای شمالی، 1 درصد در استرالیا و 1 درصد نیز در آفریقا هستند. 40 درصد تمام ربات‌های جهان در کشور ژاپن هستند که این کشور را به بزرگترین کشور از نظر تعداد ربات‌ها تبدیل می کند.

استقلال ربات‌ها و سوالات اخلاقی مطرح‌شده

با پیشرفته تر شدن ربات‌ها، این سوال که چه قوانین اخلاقی  می‌تواند رفتار آن‌ها کنترل کند توسط متخصصان و دانشگاهیان متعددی بررسی شده است. سوال دیگری که در این زمینه مطرح است این است که آیا ربات‌ها می‌توانند داشتن هر نوع حق اجتماعی، فرهنگی، اخلاقی یا حقوقی را ادعا کنند یا خیر. یک تیم از دانشمندان اعلام کرده که ممکن است تا سال 2019، مغز رباتیک ساخته شود. عده ای دیگر پیش بینی می کنند هوش رباتیک تا سال 2050 به طرز چشمگیری گسترش خواهد یافت. پیشرفت های اخیر، رفتار ربات‌ها را بسیار پیچیده تر از قبل کرده است. تاثیر اجتماعی ربات‌های هوشمند موضوع مستندی به نام  Plug & Pray محصول سال 2010 میلادی است. Vernor Vinge

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

در سال 2009، متخصصان در کنفرانسی به میزبانی انجمن پیشبرد هوش مصنوعی (AAAI) شرکت کردند و در مورد این‌که آیا ممکن است ربات‌ها بتوانند هرگونه استقلالی به دست بیاورند و در صورت استقلال آن‌ها، این امر چقدر می‌تواند برای انسان‌ها تهدید یا خطر به شمار رود، بحث و گفتگو کردند. آن‌ها به این مطلب اشاره کردند که برخی از ربات‌ها توانسته اند به شکل های مختلفی از نیمه استقلال برسند. برای مثال بعضی از ربات‌ها می‌توانند خودشان منبع انرژی را پیدا کنند و یا به طور کاملا مستقل، از بین دشمنان، اهدافی را انتخاب کرده و با استفاده از سلاح هایشان به آن‌ها حمله کنند. آن‌ها همچنین به این مطلب اشاره کردند که برخی از ویروس های کامپیوتری می‌توانند در مقابل پاک سازی مقاومت کنند و به درجه “هوش سوسک ها” رسیده اند. البته دستیابی ربات خودآگاهی کامل، یعنی مشابه آنچه در بسیاری از کتاب ها و فیلم های علمی-تخیلی دیده می شود، محتمل نیست، اما خطرات و مشکلات احتمالی دیگری وجود دارد. منابع رسانه ای و گروه های علمی مختلفی به روند تغییرات مشابهی در بخش های مختلف رباتیک اشاره کرده‌اند که در کنار هم ممکن است منجر به افزایش کاربردهای ربات‌ها و خودگردانی و استقلال آن‌ها شود که طبیعتا نگرانی‌هایی را نیز در بر خواهد داشت. در سال 2015،  نشان داده شد که ربات‌های Nao alderen توانایی داشتن درجه ای از خودآگاهی را نیز دارند. محققین آزمایشگاه هوش مصنوعی و منطق موسسه پلی تکنیک   Rensselaer  در نیویورک، آزمایشی را انجام دادند که در آن ربات به خودآگاهی رسید؛ و وقتی این اتفاق افتاد ربات جواب قبلی خود به یک سوال مشخص را اصلاح کرد.

ربات‌های نظامی

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

در سال 2012، ربات چهارپای نظامی Cheetah که نسخه تکامل یافته BigDog می باشد با شکستن رکورد ربات دوپایی MIT که مربوط به سال 1989 بود به‌عنوان سریع ترین ربات دنیا شناخته شد.

در سال 2012، ربات چهارپای نظامی Cheetah که نسخه تکامل یافته BigDog می باشد با شکستن رکورد ربات دوپایی MIT که مربوط به سال 1989 بود به‌عنوان سریع ترین ربات دنیا شناخته شد.

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

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

ربات چیست؟ قسمت 1
ربات چیست؟ قسمت 2
ربات چیست؟ قسمت 3
ربات چیست؟ قسمت 4
ربات چیست؟ قسمت 5
ربات چیست؟ قسمت 6
ربات چیست؟ قسمت 7
ربات چیست؟ قسمت 8

شبکه های عصبی مصنوعی – از صفر تا صد

پیدایش شبکه های عصبی مصنوعی

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

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

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

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

در راستای شبیه سازی رفتار محاسباتی مغز انسان، از چند دهه گذشته، که کامپیوترها امکان پیاده سازی الگوریتم های محاسباتی را فراهم نمودند، کارهای پژوهشی توسط متخصصین علوم کامپیوتر، مهندسین و ریاضی دان ها شروع شده است، که ما حصل کار آن ها، در شاخه ای از علم هوش مصنوعی، و در زیر شاخه هوش محاسباتی، تحت عنوان موضوع «شبکه های عصبی مصنوعی» یا Artificial Neural Networks (به اختصار: ANNs) طبقه بندی شده است. در مبحث شبکه های عصبی مصنوعی، مدل های ریاضی و نرم افزاری متعددی با الهام گرفتن از مغز انسان پیشنهاد شده اند، که برای حل گستره وسیعی از مسائل علمی، مهندسی و کاربردی، در حوزه های مختلف کاربرد دارند.

 کاربردهای شبکه های عصبی مصنوعی

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

 

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

 

انواع شبکه های عصبی مصنوعی

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

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

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

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

پرسپترون چند لایه یا MLP

یکی از پایه ای ترین مدل های عصبی موجود، مدل پرسپترون چند لایه یا Multi-Layer Perceptron (به اختصار MLP) است که عملکرد انتقالی مغز انسان را شبیه سازی می کند. در این نوع شبکه عصبی، رفتار شبکه ای مغز انسان و انتشار سیگنال در آن بیشتر مد نظر بوده است و از این رو، گهگاه با نام شبکه های پیشرو (Feedforward Networks) نیز خوانده می شوند. هر یک از سلول های عصبی مغز انسان، موسوم به نورون (Neuron)، پس از دریافت ورودی (از یک سلول عصبی یا غیر عصبی دیگر)، پردازشی روی آن انجام می دهند و نتیجه را به یک سلول دیگر (عصبی یا غیر عصبی) انتقال می دهد. این رفتار تا حصول نتیجه ای مشخص ادامه دارد، که احتمالا منجر به یک تصمیم، پردازش، تفکر و یا حرکت خواهد شد.

شبکه های عصبی شعاعی یا RBF

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

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

در شبکه های عصبی MLP و RBF، غالبا توجه بر بهبود ساختار شبکه عصبی است، به نحوی که خطای تخمین و میزان اشتباه های شبکه عصبی کمینه شود. اما در نوع خاصی از شبکه عصبی، موسوم به ماشین بردار پشتیبان یا Support Vector Machine (به اختصار SVM)، صرفا بر روی کاهش ریسک عملیاتی مربوط به عدم عملکرد صحیح، تمرکز می شود. ساختار یک شبکه SVM، اشتراکات زیادی با شبکه عصبی MLP دارد و عملا تفاوت اصلی آن، در شیوه یادگیری است.

نگاشت های خود سازمان ده یا SOM

شبکه عصبی کوهونن (Kohonen) و یا نگاشت خود سازمان ده یا Self-Organizing Map (به اختصار SOM) نوع خاصی از شبکه عصبی که از نظر شیوه عملکرد، ساختار و کاربرد، کاملا با انواع شبکه عصبی که پیش از این مورد بررسی قرار گرفتند، متفاوت است. ایده اصلی نگاشت خود سازمان ده، از تقسیم عملکردی ناحیه قشری مغز، الهام گرفته شده است و کاربرد اصلی آن در حل مسائلی است که به مسائل «یادگیری غیر نظارت شده» معروف هستند. در واقع کارکرد اصلی یک SOM، در پیدا کردن شباهت ها و دسته های مشابه در میان انبوهی از داده هاست که در اختیار آن قرار گرفته است. مشابه با کاری که قشر مغز انسان انجام داده است و انبوهی از ورودی های حسی و حرکتی به مغز را، در گروه های مشابهی طبقه بندی (یا بهتر است بگوییم: خوشه بندی) کرده است.

یادگیرنده رقمی ساز بردار یا LVQ

این نوع خاص شبکه عصبی، تعمیم ایده شبکه های عصبی SOM برای حل مسائل یادگیری نظارت شده است. از طرفی شبکه عصبی LVQ (یا Learning Vector Quantization)، می تواند به این صورت تعبیر شود که، گویا شبکه عصبی MLP با یک رویکرد متفاوت کاری را که باید انجام بدهد، یاد می گیرد. اصلی ترین کاربرد این نوع شبکه عصبی، در حل مسائل طبقه بندی است، که گستره وسیعی از کاربردهای سیستم های هوشمند را پوشش می دهد.

شبکه عصبی هاپفیلد یا Hopfield

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

 منبع

شبکه های عصبی مصنوعی چیست؟ قسمت 1
شبکه های عصبی مصنوعی چیست؟ قسمت 2
شبکه های عصبی مصنوعی چیست؟ قسمت 3
شبکه های عصبی مصنوعی چیست؟ قسمت 4

تاریخچه شبکه های عصبی مصنوعی

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

نه تنها نروفیزیولوژیست‌ها بلکه روان شناسان و مهندسان نیز در پیشرفت شبیه‌سازی شبکه های عصبی تأثیر داشتند. در سال ۱۹۵۸ شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده می‌باشد، است. این سامانه می‌تواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند.

سامانه دیگر مدل خطی تطبیقی نورون می‌باشد که در سال ۱۹۶۰ توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکه های عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای ساده‌ای تشکیل شده بود، روشی که برای آموزش استفاده می‌شد با پرسپترون فرق داشت.

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

با وجود اینکه اشتیاق عمومی و سرمایه‌گذاری‌های موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشین‌هایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکه‌ای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکه‌های ART را بنانهادند که با مدل‌های طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیک‌هایی برای یادگیری ایجاد کردند. ورباس در سال ۱۹۷۴ شیوه آموزش پس انتشار (Back Propagation) خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.

پیشرفت‌هایی که در سال ۱۹۷۰ تا ۱۹۸۰ بدست آمد برای جلب توجه به شبکه های عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مسئله دخالت داشتند، از جمله کتاب‌ها و کنفرانس‌های وسیعی که برای مردم در رشته‌های متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شده‌است.

چرا از شبکه های عصبی استفاده می‌کنیم

 

تصویری از عروس دریایی در رؤیای عمیق گوگل
تصویری از عروس دریایی در شبکه عصبی convolutional رؤیای عمیق گوگل

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

  1. یادگیری تطبیقی: توانایی یادگیری اینکه چگونه وظایف خود را بر اساس اطلاعات داده شده به آن یا تجارب اولیه انجام دهد در واقع اصلاح شبکه را گویند.
  2. خود سازماندهی: یک شبکه عصبی مصنوعی به صورت خودکار سازماندهی و ارائه داده‌هایی که در طول آموزش دریافت کرده را انجام دهد. نورون‌ها با قاعدهٔ یادگیری سازگار شده و پاسخ به ورودی تغییر می‌یابد.
  3. عملگرهای بی‌درنگ: محاسبات در شبکه عصبی مصنوعی می‌تواند به صورت موازی و به وسیله سخت‌افزارهای مخصوصی که طراحی و ساخت آن برای دریافت نتایج بهینه قابلیت‌های شبکه عصبی مصنوعی است انجام شود.
  4. تحمل خطا: با ایجاد خرابی در شبکه مقداری از کارایی کاهش می‌یابد ولی برخی امکانات آن با وجود مشکلات بزرگ همچنان حفظ می‌شود.
  5. دسته‌بندی: شبکه های عصبی قادر به دسته‌بندی ورودی‌ها بر ای دریافت خروجی مناسب می‌باشند.
  6. تعمیم دهی: این خاصیت شبکه را قادر می‌سازد تا تنها با برخورد با تعداد محدودی نمونه، یک قانون کلی از آن را به دست آورده، نتایج این آموخته‌ها را به موارد مشاهده از قبل نیز تعمیم دهد. توانایی که در صورت نبود آن سامانه باید بی‌نهایت واقعیت‌ها و روابط را به خاطر بسپارد.
  7. پایداری-انعطاف‌پذیری: یک شبکه عصبی هم به حد کافی پایدار است تا اطلاعات فراگرفته خود را حفظ کند و هم قابلیت انعطاف و تطبیق را دارد و بدون از دست دادن اطلاعات قبلی می‌تواند موارد جدید را بپذیرد.

 

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

 

شبکه مغز کرم الگانس

شبکه مغز کرم الگانس Caenorhabditis elegans _ شبکه نورونی این کرم از 302 نورون و حدود ۷۰۰۰ اتصال سیناپس تشکیل شده است.

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

  1. شبکه های عصبی دستورات را به صورت سری اجرا نکرده، شامل حافظه‌ای برای نگهداری داده و دستورالعمل نیستند.
  2. به مجموعه‌ای از ورودی‌ها به صورت موازی پاسخ می‌دهند.
  3. بیشتر با تبدیلات و نگاشت‌ها سروکار دارند تا الگوریتم‌ها و روش‌ها.
  4. شامل ابزار محاسباتی پیچیده نبوده، از تعداد زیادی ابزارساده که اغلب کمی بیشتر از یک جمع وزن دار را انجام می‌دهند تشکیل شده‌اند.

 

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

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

 

نورون مصنوعی

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

 

از نورون‌های انسان تا نورون مصنوعی

اکشن پتانسیل نورون زیستی: پتانسیل الکتریکی نورون در حالت استراحت در -70 mV قرار دارد. با اعمال محرک بر غشای نورون، پتانسیل غشا به -۵۵ میلی ولت می‌رسد پس از آن در صورتی که محرک اعمال شود پتانسیل غشا به سرعت در نقطه +40 mV به اوج خود می‌رسد و با همان سرعت، پتانسیل غشا به -90 mV کاهش و overshoots پیدا می‌کند و در نهایت دوباره به resting potential (پتانسیل حالت استراحت) در -70 mV بازمی‌گردد

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

ساختار شبکه های عصبی

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

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

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

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

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

تقسیم‌بندی شبکه های عصبی

بر مبنای روش آموزش به چهار دسته تقسیم می‌شوند:

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

کاربرد شبکه های عصبی

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

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

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

 

معایب شبکه های عصبی

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

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

 

تصویری از شبکه عصبی RNN

انواع شبکه های عصبی مصنوعی

  • Dynamic Neural Network
    • Feedforward neural network FNN
    • Recurrent neural network RNN
      • RNN تکنولوژی speech recognition و handwriting recognition را ممکن کرد.
        • Hopfield network
        • Boltzmann machine
        • Simple recurrent networks
        • Echo state network
        • Long short term memory network
        • Bi-directional RNN
        • Hierarchical RNN
        • Stochastic neural networks
    • Kohonen Self-Organizing Maps
    • Autoencoder
    • Backpropagation
    • probabilistic neural network PNN
    • Time delay neural network TDNN
  • Static Neural Network
    • Neocognitron
    • Radial basis function network RBF
    • Learning vector quantization
    • Perceptron
      • Adaline model
      • Convolutional neural network CNN
        • Deep Dream Google
    • Modular neural networks
      • Committee of machines COM
      • Associative neural network ASNN
  • Memory Network
    • Google / Deep Mind
    • facebook / MemNN
    • Holographic associative memory
    • One-shot associative memory
    • Neural Turing Machine
    • Adaptive resonance theory
    • Hierarchical temporal memory
  • Other types of Networks
    • Instantaneously trained networks ITNN
    • Spiking neural networks SNN
      • Pulse Coded Neural Networks PCNN
    • Cascading neural networks
    • Neuro-fuzzy networks
    • Growing Neural Gas GNG
    • Compositional pattern-producing networks
    • Counterpropagation network
    • Oscillating neural network
    • Hybridization neural network
    • Physical neural network
      • Optical neural network
      • neuromorphic hardware

تمایز Morphologische سلول‌های عصبی 1_Unipolar neuron (نورون تک قطبی) 2_ Bipolar neuron (نورون دو قطبی) ۳_ نورون‌های چند قطبی (سیستم مغز) 4_ Pseudounipolar neuron (سیستم عصبی محیطی)

منبع

شبکه های عصبی مصنوعی چیست؟ قسمت 1
شبکه های عصبی مصنوعی چیست؟ قسمت 2
شبکه های عصبی مصنوعی چیست؟ قسمت 3
شبکه های عصبی مصنوعی چیست؟ قسمت 4

کارکرد سیستم‌های بینایی ماشین

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

پردازش‌های بینایی ماشین را در سه سطح دسته بندی می‌کنند:

  • بینایی سطح پایین (Low Level Vision)

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

  • بینایی سطح میانی (Mid Level Vision)

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

  • بینایی سطح بالا (High Level Vision)

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

 

کاربرد‌های بینایی ماشین

امروزه می‌توان ردپای بینایی ماشین را در صنعت، هواشناسی، شهرسازی، کشاورزی، نجوم و فضا نوردی، پزشکی و غیره که در ادامه درباره هرکدام مختصرا بحث شده است، مشاهده کرد.
  • صنعت (Industry)

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

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

بینایی ماشین-صنعت-نان

  •  هواشناسی (Meteorology)

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

بینایی ماشین-آب و هوا

  • شهرسازی (Urbanization)

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

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

 

بینایی ماشین-شهر سازی

  • کشاورزی (Agricultural)

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

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

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

بینایی ماشین-کشاورزی

  • نظامی (Martial)

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

بینایی ماشین-نظامی

  •  امنیتی (Security)

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

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

 

بینایی ماشین-امنیتی

  •  نجوم و فضا نوردی (Astronomy and Space Exploration)

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

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

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

کاربرد دیگر آن حذف گردوخاک و جو سیاره‌ها از تصاویر به کمک تصویربرداری IR و X-RAY به‌صورت همزمان و ترکیب این تصاویر است.

 

بینایی ماشین-تلسکوپ هابل-نجوم

  •  پزشکی (Medic)

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

 

بینایی ماشین-پزشکی

  •  فناوری‌های علمی (Scientific Technology)

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

بینایی ماشین در توسعه فناوری پیشرفته Global Positioning Systems) GPS) نقش زیادی داشته و تهیه نقشه‌های سه‌بعدی از جاده‌ها در تمام نقاط جهان، از کاربردهای دیگر آن است. هم چنین با به وجود آمدن این علم، مسابقات ربات‌های فوتبالیست به‌صورت جدی دنبال شد.

رباتیک-ربات فوتبالیست

  • باستان‌شناسی (Archaeology)

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

بینایی ماشین-باستان شناسی

  •  سینما (Cinema)

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

بینایی ماشین-پردازش تصویر-سینما

  •  اقتصاد (Economy)

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

  •  زمین شناسی (Geology)

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

بینایی ماشین-زمین شناسی

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

  •  سرعت سنج (Speedometer)

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

بینایی ماشین-سرعت سنج

  • ثبت تخلف (Submit an Infringement)

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

بینایی ماشین-ثبت تخلف

  • ایمنی در رانندگی (Driving Safety)

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

بینایی ماشین-ایمنی رانندگی

  •  تشخیص حجم (Volume Detection)

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

بینایی ماشین-نخاله ساختمانی

نرم افزارهای بینایی ماشین

 

بینایی ماشین-متلب

 

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

اما کسانی که تجربه کار با این نرم افزار را دارند به خوبی می‌دانند که با وجود سهولت برنامه نویسی با آن، سرعت اجرای MATLAB به خصوص برای کار با ویدیو بسیار آزاردهنده است. همچنین این نرم افزار متن باز (Open Source) نیست.

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

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

 


منابع

fa.wikipedia.org

www.enline.ir

 

بینایی ماشین چیست؟قسمت اول
بینایی ماشین چیست؟قسمت دوم

بینایی ماشین

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

در حقیقت Machine vision شاخه‌ای از علم مهندسی است که به رشته‌های علوم کامپیوتری (Computer science) و علم نورشناسی و مهندسی مکانیک و اتوماسیون صنعتی ارتباط دارد. یکی از مهمترین پر استفاده‌ترین کاربردهای آن در بازبینی و بررسی کالاهای صنعتی از جمله نیمه هادیها، اتومبیل‌ها، مواد خوراکی و دارو می‌باشد. همانند نیروی انسانی که با چشم غیر مسلح در خط تولید کالاها را برای تعیین کیفیت و نوع ساخت آنها بازبینی می‌کنند، Machine vision از دوربین‌های دیجیتال و دوربین‌های هوشمند و نرم‌افزارهای image processing (پردازش تصویر) برای این کار استفاده می‌کند. دستگاههای مربوطه (Machine vision) برای انجام دادن وظایفی خاص از جمله شمردن اشیاء در بالابرها، خواندن شماره سریالها(Serial numbers)، جستجوی سطح‌های معیوب به کار می‌روند.
در حال حاضر صنعت استفاده زیادی از سیستم ماشین بینایی برای بازبینی تصویریاشیاء (Visual inspection) که نیاز به سرعت بالا و دقت بالا و کار ۲۴ ساعته و تکرار محاسبات بالا دارد، وجود دارد. اگرچه انسان عملکرد بهتر و قابلیت تطبیق دهی بیشتری برای خطاهای تازه در زمان کوتاه دارد ولی با توجه به ویژگی‌های ذکر شده این دستگاهها به مرور جای نیروی انسانی را که به دلیل انحراف و شرایط بد دارای خطا می‌باشند، در صنعت پر می‌کند. کامپیوترها به همان صورتی که انسان می‌بیند نمی‌توانند ببینند. دوربین‌ها همانند سیستم بینایی انسان نیستند و در حالی که انسان می‌تواند بر استنباط و فرضیات اتکا کند، تجهیزات کامپیوتری باید به وسیله آزمودن و تجزیه و تحلیل کردن جداگانه پیکسل‌ها و تلاش کردن برای انجام نتیجه‌گیری با توجه به پشتوانه اطلاعاتی و روش‌هایی مانند شناسایی الگو مشاهده کنند.
علی‌رغم اینکه بعضی الگوریتم‌های machine vision برای تقلید کردن از سیستم بینایی انسان توسعه یافته‌اند، تعداد معدودی روش برای تحلیل و شناسایی ویژگیهای مرتبط تصاویر به صورت مؤثر و ثابت توسعه یافته‌اند. سیستم‌های Machine vision و computer vision قادر هستند به صورت ثابت تصاویر را تجزیه و تحلیل کنند، ولی image processing بر پایهٔ کامپیوتر به صورت کلی برای انجام کارهای تکراری طراحی می‌شوند و علی‌رغم پیشرفت‌های صورت گرفته در این زمینه، هیچ سیستم machine vision و computer vision قادر نیست با برخی از ویژگی‌های سیستم بینایی انسان در قالب درک تصویر، تلرانس به تغییرات نور، تضعیف قدرت تصویر و تغییرات اجزا و… تطبیق پیدا کند.

سیستم اولیه ماشین بینایی Autovision II که در سال ۱۹۸۳ در یک نمایشگاه تجاری به عرضه گذاشته شد.

 سیستم اولیه ماشین بینایی Autovision II که در سال ۱۹۸۳ در یک نمایشگاه تجاری به عرضه گذاشته شد.

اجزای یک سیستم بینایی ماشین

اگرچه “بینایی ماشینی” بیشتر به عنوان یک فرآیند در کاربردهای صنعتی شناخته شده است، برای فهرست کردن اجزای سخت‌افزاری و نرم‌افزاری به کار برده شده نیز مفید می‌باشد. معمولاً یک بینایی ماشینی از اجزای زیر ساخته شده است:

  • ۱. یک یا چند دوربین دیجیتال یا آنالوگ (سیاه-سفید یا رنگی) با اپتیک مناسب برای گرفتن عکس.
  • ۲. واسطه‌ای که عکس‌ها را برای پردازش آماده می‌سازد. برای دوربین‌های آنالوگ این واسطه شامل یک دیجیتال کننده عکس است. هنگامی که این واسطه یک سخت‌افزارٍ جدا باشد، به آن Frame grabber (کارتی که برای دریافت سیگنال تصویری و فرستادن آن به کامپیوتر استفاده می‌شود) می گویند.
  • ۳. یک پردازشگر (گاهی یک PC یا پردازنده تعبیه شده (Embedded Processor) مانند DSP
  • ۴. نرم‌افزار Machine vision: این نرم‌افزار امکاناتی برای توسعه یک برنامه نرم‌افزاری که برای کاربردی مشخص است را فراهم می‌کند.
  • ۵. سخت‌افزار ورودی / خروجی (مثلاً I/O دیجیتال) یا حلقه‌های ارتباطی (مثلاً ارتباط شبکه ای یا RS-232) برای گزارش نتایج.
  • ۶. یک دوربین هوشمند: یک وسیله ساده که همه موارد فوق را داراست.
  • ۷. لنزهایی که بتواند به مقدار مطلوبی روی سنسور تصویر زوم کند.
  • ۸. منابع نوری مناسب و گاهی خیلی مخصوص (مثلاً چراغهای LED، فلورسنت، لامپهای هالوژن و . . .)
  • ۹. یک برنامهٔ مشخص که بتواند تصاویر را پردازش کرده و مشخصه‌های مربوط و مناسب را شناسایی کند.
  • ۱۰. یک سنسور همزمان ساز برای شناسایی اجزا (گاهی یک سنسور نوری یا یک سنسور مغناطیسی): این سنسور برای راه‌اندازی سیستمٍ استخراج و پردازش تصویر می‌باشد.

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

معمولاً پنل‌های LED با اندازه و طراحی مناسب برای این هدف مورد استفاده قرار می‌گیرند. تصویر دوربین یا توسط یک frame grabber یا توسط یک حافظه کامپیوتری (که در آن از frame grabber استفاده نشده است) گرفته می‌شود. frame grabber یک وسیله دیجیتال کننده است (یا در داخل دوربین هوشمند یا بطور جداگانه) که خروجی دوربین را به فرمت دیجیتال تبدیل کرده (معمولاً این فرمت از یک آرایه دو بعدی از اعداد تشکیل شده که هر عدد متناظر شدت روشنایی نقطه متناظر در آن تصویر می‌باشد. به این نقاط پیکسل می‌گویند.) و سپس تصویر را به منظور پردازش توسط نرم‌افزارٍ Machine vision در حافظه کامپیوتر ذخیره می‌کند. به طور معمول نرم‌افزار، اقدامات متفاوتی را برای پردازش تصویر انجام می‌دهد.

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

همچنین امروزه شاهد شیوع فراوان استفاده از تجهیزات دوربین‌های دیجیتال به جای یک دوربین و یک frame grabber جداگانه در Machine vision هستیم. استفاده از یک دوربین دیجیتال به منظور برقراری ارتباط مستقیم، باعث صرفه جویی در هزینه و نیز سادگی سیستم خواهد شد. دوربین‌های هوشمند که در داخل آنها embedded processorها تعبیه شده‌اند، در حال تسخیر سهم بالایی از بازار Machine visionها هستند. استفاده از یک embedded processor (و یا یک پردازنده بهینه) نیاز ما به frame grabber و یک کامپیوتر خارجی را از بین می‌برد.

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

روش‌های پردازش

شمارش پیکسل

شمردن تعداد پیکسلهای روشن و تاریک.

تعیین آستانه

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

بخش بندی کردن (Segmentation)

تبدیل تصویر ورودی به بخش‌های مختلف برای موقعیت یابی و شمارش پیکسل‌ها.

تشخیص و شناسایی لکه‌ها و دستکاری

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

تشخیص و شناسایی توسط اجزاء موجود

استخراج اجزاءی خاص از یک تصویر ورودی مثلاً عکس.

تشخیص و شناسایی الگو به طور مقاوم در برابر تغییرات

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

خواندن بارکد

شناسایی و تعیین کدهای یک بعدی (1D) و دو بعدی (2D) اسکن شده توسط ماشین‌ها طراحی شده است.

تشخیص و شناسایی کاراکتر نوری

خواندن خودکار یک متن (مثال: یک رشته اعداد پشت سر هم).

اندازه‌گیری

اندازه‌گیری ابعاد یک جسم (بر حسب میلی‌متر یا اینچ).

تشخیص و شناسایی لبه‌ها

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

تشخیص و شناسایی از طریق تطبیق الگو

پیدا کردن، مطابقت دادن و شمارش اشکال خاص در یک تصویر.

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

کاربردهای ماشین بینایی

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

اتوماسیون صنعتی

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

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

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

حمل و نقل

پلاک خوان

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

سرعت سنج

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

ثبت تخلف چراغ راهنمایی و رانندگی

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

ایمنی رانندگی

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

تشخیص حجم

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

زمینه‌های مربوط به ماشین بینایی

ماشین بینایی به مهندسی سیستمهای تصویر در صنعت و تولید و همچنین به گستره وسیعی از علوم کامپیوتر شامل computer vision، کنترل تجهیزات، شبکه‌های کامپیوتری، مدارهای واسط و فراگیری ماشین مربوط می‌شود. لازم به ذکر است که دو مفهوم Machine vision و Computer vision نباید با یکدیگر اشتباه گرفته شوند. Computer vision مفهوم گسترده تری در حل مسائل تصویری دارد درحالیکه Machine vision یک روش مهندسی است که عموماً در مسائل مهندسی کاربرد دارد.

منبع


بینایی ماشین چیست؟


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

بینایی ماشین را از دو منظر علمی و تکنولوژیکی می‌توان بررسی کرد. به عنوان یک رشته علمی، بینایی ماشین به توسعه تئوری سیستم‌های هوشمندی می‌پردازد که اطلاعات را از تصاویر استخراج می‌کنند و به عنوان یک رشته تکنولوژیکی (فناورانه) تلاش دارد که از تئوری‌ها و مدل‌های توسعه داده شده برای ساخت سیستم‌های بینایی ماشین بهره برداری کند. به عنوان مثال تولیدکنندگان صنایع مختلف سیستم‌های بینایی ماشین را برای بازرسی چشمی که نیاز به سرعت بالا، بزرگ نمایی، عملکرد ۲۴ ساعته و تکرارپذیری دارد استفاده می‌کنند.

 

بینایی ماشین-01

 

مفاهیم اولیه بینایی ماشین

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

وقتی سراغ مفاهیم اولیه پردازش تصویر و بینایی ماشین می‌رویم با این کلمات  Computer Vision ،  Machine Vision و Image Processing  مواجه می‌شویم.

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

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

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

 

بینایی ماشین-02

بینایی ماشین چیست؟قسمت 1
بینایی ماشین چیست؟قسمت 2

پردازش تصاویر (به انگلیسی: Image processing) امروزه بیشتر به موضوع پردازش تصویر دیجیتال گفته می‌شود که شاخه‌ای از دانش رایانه است که با پردازش سیگنال دیجیتال که نماینده تصاویر برداشته شده با دوربین دیجیتال یا پویش شده توسط پویشگر هستند سر و کار دارد.

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

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

عملیات اصلی در پردازش تصویر
1. تبدیلات هندسی: همانند تغییر اندازه، چرخش و…
2. رنگ: همانند تغییر روشنایی، وضوح و یا تغییر فضای رنگ
3. ترکیب تصاویر : ترکیب دو و یا چند تصویر
4. فشرده سازی تصویر : کاهش حجم تصویر
5. قطعه بندی تصویر : تجزیهٔ تصویر به قطعات با معنی
6. تفاوت تصاویر : به دست آوردن تفاوت‌های تصویر
7. میانگین گیری : به دست آوردن تصویر میانگین از دو تصویر

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

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

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

* روش JPEG
نام این فرمت در واقع مخفف کلمات JOINT PHOTOGRAPHIC EXPERT GROUP است. از این روش در فشرده‌سازی عکس و تصاویر گرافیکی ساکن استفاده میشود JPEG اولین و ساده‌ترین روش در فشرده‌سازی تصویر است به همین دلیل در ابتدا سعی شد برای فشرده‌سازی تصاویر متحرک مورد استفاده قرار گیرد. برای این منظور تصاویر به صورت فریم به فریم مانند عکس فشرده می‌شدند وبا ابداع روش MOTION JPEG برای ارتباط دادن این عکس‌ها به هم تلاش شد که با مشکلاتی همراه بود.

* روش MPEG
نام این فرمت مخفف عبارت MOVING PICTURE EXOERT GROUP است. این روش در ابتدای سال ۹۰ ابداع شد و در آن اطلاعات تصویر با سرعت حدود ۵/۱ مگابیت بر ثانیه انتقال پیدا میکرد که در تهیه تصاویر ویدئویی استفاده می‌شد. با این روش امکان ذخیره حدود ۶۵۰ مگابایت اطلاعات معادل حدود ۷۰ دقیقه تصویر متحرک در یک دیسک به وجود آمد. در MPEG بیت‌های اطلاعات به صورت سریال ارسال می‌شوند و به همراه آنها بیت‌های کنترل و هماهنگ‌کننده نیز ارسال میشوند که موقعیت و نحوه قرارگیری بیت‌های اطلاعاتی را برای انتقال و ثبت اطلاعات صدا و تصویر تعیین میکند.

* روش MP۳
MP۳ نیز روشی برای فشرده سازی اطلاعات صوتی به ویژه موسیقی است که از طریق آن حجم زیادی از اطلاعات صوتی در فضای نسبتاً کوچکی ذخیره میشود.

* روش MPEG۲
در روش MPEG۲ از ضریب فشرده‌سازی بالاتری استفاده میشود و امکان دسترسی به اطلاعات ۳ تا ۱۵ مگابیت بر ثانیه‌است از این روش در دی‌وی‌دی‌های امروزی استفاده می‌شود در اینجا نیز هر فریم تصویری شامل چندین سطر از اطلاعات دیجیتالی است.

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

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

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

مقادیر پیکسلها:
مقدار انرژی مغناطیسی که یک تصویر رقومی به هنگام تصویر برداری کسب میکند، رقم‌های دوتایی(Digit binary) یا بیت ها(Bits) را تشکیل میدهند که از قوه صفر تا ۲ ارزش گذاری شده‌است.هر بیت، توان یک به قوه ۲ (۱بیت=۲۱)میباشد. حداکثر تعداد روشنایی بستگی به تعداد بیت‌ها دارد. بنابراین ۸ بیت یعنی ۲۵۶ شماره رقومی که دامنه‌ای از ۰ تا ۲۵۵ دارد.به همین دلیل است که وقتی شما تصویر رستری از گیرنده خاصی مانند TM را وارد [[نرم افزار]]ی میکنید تغییرات میزان روشنایی را بین ۰ تا ۲۵۵ نشان میدهد.

دقت تصویر:
دقت تصویر بستگی به شماره پیکسل‌ها دارد.با یک تصویر ۲ بیتی، حداکثر دامنه روشنایی ۲۲ یعنی ۴ میباشد که دامنه آن از ۰ تا ۳ تغییر میکند.در این حالت تصویر دقت (تفکیک پذیری لازم) را ندارد.تصویر ۸ بیتی حداکثر دامنه ۲۵۶ دارد و تغییرات آن بین ۰ تا ۲۵۵ است.که دقت بالاتری دارد

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

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

* افزایش سرعت و کیفیت تولی
* کاهش ضایعات
* اصلاح روند تولید
* گسترش کنترل کیفیت

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

حمل و نقل:
* تشخیص شماره پلاک خودرو
* نرم افزار شمارش خودروهای عبوری از عرض خیابان

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

منبع


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

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

 

تصویر آنالوگ (عکس هوایی که نیاز به اصلاح و پردازش ندارد)

تصاویر رقومی(دیجیتالی):
تصاویر سنجش شده که از تعداد زیادی مربعات کوچک(پیکسل) تشکیل شده اند.هر پیکسل دارای یک شماره رقمی(Digital Number) میباشد که بیانگر میزان روشنایی آن پیکسل است. به این نوع تصاویر ، تصاویر رستری هم میگویند.تصاویر رستری دارای سطر وستون میاشند.

تصویر بالا(رقومی) .پایین و سمت چپ(پیکسلها).سمت راست و پایین(شماره های هر پیکسلDNِ)

مقادیر پیکسلها:
مقدار انرژی مغناطیسی که یک تصویر رقومی به هنگام تصویر برداری کسب میکند،رقم های دوتایی(Digit binary) یا بیت ها(Bits) را تشکیل میدهند که از قوه صفر تا 2 ارزش گذاری شده است.هر بیت ، توان یک به قوه 2 (1بیت=21)میباشد. حداکثر تعداد روشنایی بستگی به تعداد بیت ها دارد. بنابراین 8 بیت یعنی 256 شماره رقومی که دامنه ای از 0 تا 255 دارد.به همین دلیل است که وقتی شما تصویر رستری از سنجنده خاصی مانند TM را وارد نرمافزاری میکنید تغییرات میزان روشنایی را بین 0 تا 255 نشان میدهد.

دقت تصویر:
دقت تصویر بستگی به عدد پیکسل ها دارد.با یک تصویر ۲ بیتی ، حداکثر دامنه روشنایی ۲۲ یعنی ۴ میباشد که دامنه آن از ۰ تا ۳ تغییر میکند.در این حالت تصویر دقت (تفکیک پذیری لازم) را ندارد.تصویر ۸ بیتی حداکثر دامنه ۲۵۶ دارد و تغییرات آن بین ۰ تا ۲۵۵ است .که دقت بالاتری دارد.

      دقت تصویر 3 بیتی        دقت تصویر 8 بیتی

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

 
 
بالا بردن دقت عکس:
یکی از کار های مهمی که در پردازش تصویر انجام میگردد، بالا بردن دقت عکس به منظور دید و تفسیر چشمی دقیق تر میباشد.روش های بسیاری برای نیل به این هدف وجود دارد ولی مهمترین آنها ، افزایش تباین(Contrast) تصویر و عملیات فیلتر کردن میباشد.هیستوگرام تصویر:
در هر تصویر رقومی ، مقادیر پیکسل ها بیانگر خصوصیات آن تصویر(مانند میزان روشنایی تصویر و وضوح آن) میباشد.هیستوگرام تصویر در حقیقت بیان گرافیکی میزان روشنایی تصویر میباشد. مقادیر روشنایی( برای مثال 0-255) در طول محور X بیان شده و میزان فراوانی هر مقدار در محور Y بیان میگردد.
تصویر 8 بیتی(0-255) در بالا و هیستوگرام مقادیر پیکسل تصویر در پایین .
محور افقی بین 0-255 و محور قائم ، تعداد پیکسل ها میباشد.افزایش تباین از طریق امتداد اعداد ( DN) پیکسلها :
معمولا دامنه مقادیر پیکسل های تصاویر با هر بیتی ( در اینجا مثلا 8 بیت)، بین 0-255 نمیباشد .و مثلا بین 48 تا 153 میباشد . برای افزایش تباین ، مقادیر پیکسل ها را آنقدر امتداد میدهیم تا 48 به جای 0 و 153 به جای 256 قرار گیرد . در نتیجه تباین وهمچنین کیفیت عکس بالا میرود. به این عمل کشش خطی گویند.

پردازش تصویر چیست؟ قسمت 1
پردازش تصویر چیست؟ قسمت 2

ترجمه لغات پردازش‌تصویر

فهرست بعضی از لغات در زمینه هوش مصنوعی و پردازش تصویر عبارت اند از:

فهرست واژگان:

A
accuracy دقت action اقدام action-value function تابع اقدام-مقدار

activation function تابع فعالیت

active learning یادگیری فعال

adaptive control theory نظریه کنترل تطبیقی

adaptive dynamic برنامه نویسی پویای تطبیقی

programming (ADP)

algebraic expressions اصطلاحات جبری

applicability قابلیت اعمال

approximation algorithm الگوریتم تقریب

arbitrary دلخواه

arithmetic unknown مجهول حسابی

assertion اظهار

assumption فرض

attribute صفت

attribute-based language زبان مبتنی بر صفت

availability در دسترس بودن

B

background knowledge دانش زمینه

back-propagate پس-انتشار

backtrack عقب گرد

backward proof process فرایند اثبات رو به عقب

backward-chaining قضیه زنجیره ای رو به عقب

theorem

bandit problems مسائل قمار

bang-bang control کنترل بنگ-بنگ

basis functions توابع پایه ای

Bayes’ rule قانون بیز

Bayesian learning یادگیری بیزین

Bayesian network شبکه بیزین

Bellman equations معادلات بلمن

beta distribution توزیع بتا

bias weight وزن بایاس

Booleanclassification دسته بندی بولی(دودویی)

Boosting algorithm الگوریتم بوستینگ

boundary set مجموعه کران

branching factor فاکتور انشعاب

bump برامدگی

C

candidate definition تعریف مطلوب

candidate elimination حذف مطلوب

cart-pole balancing problem مسأله تنظیم میله ارابه

classification دسته بندی

clause بند

complete data داده های کامل

complexity پیچیدگی

component مؤلفه (جزء)

compression تراکم

computation محاسبه

computational complexity پیچیدگی محاسباتی

computational learning نظریه یادگیری محاسباتی

theory

computational عصب شناسی محاسباتی

neuroscience

conditional probability احتمال شرطی

conjugate prior مزدوج اول

conjunct عطف

Conjunction ترکیب عطفی

connectionism پیوندگرایی

consistency سازگاری

consistent hypothesis فرض سازگار

constraint equation معادله محدودیت

constructive الگوریتم های استقرای سازنده

induction algorithms

continuous-valued پیوسته مقدار

contradiction تناقض

convergence همگرایی

Cross-validation اعتبارسنجی متقابل

cumulative learning یادگیری فزاینده

current state حالت جاری

current-best- جستجوی بهترین فرض جاری

hypothesis search

D

debate مباحثه

decision list لیست تصمیم

decision stumps ریشه های تصمیم

decision theory نظریه تصمیم

Decision tree درخت تصمیم

declarative bias بایاس اعلانی

definition تعریف

delta rule قانون دلتا

density estimation تخمین چگالی

description توصیف

determinations تعیین کننده ها

deterministic قطعی

dictionary فرهنگ لغات

differentiating مشتق گیری

dimension of the space بعد فضا

direct utility estimation تخمین مستقیم سودمندی

discount factor فاکتور تخفیف

discrete گسسته

discrete-valued گسسته- مقدار

disjunct فاصل

Disjunction ترکیب فصلی

domain دامنه

dropping conditions حذف شرطها

dynamic environment محیط پویا

E

efficiency کارایی

empirical gradient گرادیان تجربی

ensemble learning یادگیری گروهی

entailment constraint محدودیت ایجاب

epoch دوره

equality literal لیترال تساوی

equation معادله (تساوی)

equivalence معادل (هم ارز)

error rate نرخ خطا

estimate تخمین زدن

evaluation function تابع ارزیابی

evidence شاهد

example مثال

example descriptions توصیف های مثال

expectation– ماکزیمم سازی امیدواری

maximization (EM)

expected value مقدار مورد انتظار

Explanation-based یادگیری مبتنی بر تشریح

learning (EBL)

exploitation بهره برداری

exploration اکتشاف

exploration function تابع اکتشاف

expressiveness رسا بودن

extension بسط

extract استخراج کردن

F

fairly good نسبتا خوب

false negative منفی کاذب

false positive مثبت کاذب

feature ویژگی (مشخصه)

feedback بازخور

feed-forward network شبکه پیشرو

filtering فیلتر کردن

first-order logic منطق مرتبه اول

fit برازش کردن

fixed policy خط مشی ثابت

formulation تدوین

forward–backward الگوریتم پیشرو-پسرو

algorithm

fully connected network شبکه کاملا متصل

fully observable کاملا رؤیت پذیر

function تابع

function approximation تقریب تابع

functional dependencies وابسته های تابعی

G

gain ratio نسبت بهره

generality عمومیت

generalization تعمیم

generalization hierarchy سلسله مراتب تعمیم

general-purpose الگوریتم های یادگیری همه منظوره

learning algorithms

goal predicate گزاره هدف

gradient descent نزول گرادیان

gradient-based algorithm الگوریتم مبتنی بر گرادیان

greedy agent عامل حریص

H

hamming distance فاصله همینگ

handwritten digits ارقام دست نویس

happy graphs گرافهای خوشحال

head (of a clause) سر(یک بند)

heuristic هیوریستیک

hidden Markov مدل های پنهان مارکوف

models (HMMs)

hidden units واحدهای پنهان

hidden variables متغیرهای پنهان

hill-climbing search جستجوی تپه نوردی

hole حفره

horn clause بند هورن

hypothesis فرض

hypothesis prior پیش فرض

hypothesis space فضای فرض

I

implement پیاده سازی کردن

inconsistent ناسازگار

incremental رو به رشد

independent مستقل

independently توزیع شده بطور مستقل و یکنواخت

and identically distributed (i.i.d.)

indicator variables متغیرهای نمایشگر

individual جداگانه

induction استقرا

inductive learning یادگیری استقرایی

inductive logic برنامه نویسی منطقی استقرایی

programming(ILP)

inequality literal لیترال عدم تساوی

infer استنتاج کردن

inference استنتاج

inferential استنتاجی

information content محتوای اطلاعات

information encoding رمزگذاری اطلاعات

information gain بهره اطلاعات

initial state حالت اولیه

instance-based learning یادگیری نمونه محور

interaction تعامل

internal state حالت درونی

invention اختراع

inverse entailment ایجاب معکوس

inverse resolution تحلیل معکوس

irrelevant attribute صفت نامربوط

iterative solution الگوریتم های راه حل تکراری

algorithms

K

kernel function تابع کرنل

kernel machines ماشین های کرنل

kernel model مدل کرنل

knowledge-based approach رهیافت مبتنی بر دانش

knowledge-based یادگیری استقرایی مبتنی بر دانش

inductive learning (KBIL)

knowledge-free بدون دانش

L

latent variables متغیرهای نهفته

layers لایه ها

leaf node گره برگ

learning curve منحنی یادگیری

learning element عنصر یادگیری

learning mixtures یادگیری ترکیبی گاوس

of gaussians

learning rate نرخ یادگیری

least-commitment جستجوی حداقل تعهد

search

likelihood درستنمایی

linear separator جداکننده خطی

linear-Gaussian model مدل خطی گاوس

linearly separable جداشدنی خطی

links پیوندها

list لیست

literal (sentence) لیترال (جمله)

local search جستجوی محلی

log likelihood لگاریتم درستنمایی

logistic function تابع استدلالی

lookup table جدول مراجعه

M

machine learning یادگیری ماشین

mahalanobis distance فاصله ماهالانوبیس

majority function تابع اکثریت

majority vote رأی گیری اکثریت

margin حاشیه

Markov decision فرایندهای تصمیم مارکوف

processes (MDPs)

maximum a posteriori (MAP) حداکثر تجربی

maximum-likelihood (ML) حداکثر درستنمایی

measure مقیاس

measurement اندازه گیری

memorization یادسپاری

memory-based learning یادگیری حافظه محور

Mercer’s theorem قضیه مرکر

minimal کمینه

minimum description حداقل طول توصیف

length (MDL)

mixture distribution توزیع ترکیبی

model checking وارسی مدل

model structure ساختار مدل

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

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

این‌که فن نویمان و تورینگ تا چه حد در زمان جنگ با یکدیگر همکاری داشته‌اند، چندان معلوم نيست، اما چیزی که مشخص است آن است که تورینگ از نوامبر 1942 تا مارس 1943 در امریکا حضور داشته است در حالی که فون نویمان از فوریه تا جولای 1943 در انگلیس بوده است. در طی جنگ، فیزیکدانان انگلیسی با همکاری فون نویمان، همکاری‌های بسیار مهمی را در پروژه بمب اتمی در Los Alamos در نیومکزیکو به انجام رساندند. در عین حال، تحلیل‌گران رمز امریکایی، در انجام تلاش‌های رمزگشایی انگلیس به همکاری با تورینگ پرداختند. با این‌که تورینگ، فون‌نویمان و نیومن نمی‌توانستند آزادانه با هم مکاتبه کنند اما شاید ایده‌هایشان را در خلال و پس از اتمام جنگ به‌صورت شفاهی با یکدیگر در میان گذاشته‌اند.  مدل تورینگ یک مدل یک بعدی بود که رشته‌ای از علامت‌ها را روی یک نوار کاغذی در نظر می‌گرفت در حالی که پیاده‌سازی فون نویمان یک مدل دو بعدی به شمار می‌آمد؛ یک ماتریس با آدرس دسترسی تصادفی که در بیشتر کامپیوترهای امروزی نیز وجود دارد. اینترنت- مجموعه‌ای از ماشین‌های به هم پیوسته تورینگ که به یک نوار مشترک دسترسی دارند- چشم‌انداز مدل مربوطه را سه بعدی کرد و هنوز، روش کار کامپیوترها از سال 1946 تاکنون بی‌تغییر باقی مانده است.

درس گرفتن از اشتباهات

تورینگ و نویمان از وجود خطا در ماشین‌هایشان مطلع بودند. با این‌که کدهای آن زمان به سادگی قابل اشكال‌زدايي بودند، اما سخت‌افزار به شدت غیر‌قابل اطمینان بود و نتایجی بی‌ثبات ارائه می‌کرد. مشکلی که اکنون کاملاً برعکس شده است. هردوی آن‌ها می‌دانستند که سیستم‌های بیولوژیک روی متدهای آماری و مقاوم در برابر خطا برای پردازش متمرکز شده‌اند (سیستم‌هایی نظیر کدگذاری فرکانسی پالس‌ها در مغز) و فرض کردند که فناوری نیز باید از همین روند پیروی کند. به اعتقاد فون نویمان، اگر هر خطا گرفته شده، تبیین می‌شد و سپس تصحیح می‌شد، سیستمی به پیچیدگی ارگانیسم‌های زنده نمی‌توانستند پاسخ‌هایی در حد میلی‌ثانیه داشته باشند. به اعتقاد تورینگ نیز اگر باید ماشینی بی‌خطا باشد، پس نمی‌تواند هوشمند نیز باشد. وقتی تورینگ در سال 1948به گروه نیومن در دانشگاه منچستر که مشغول طراحی Manchester Mark 1 بودند پیوست، یک تولید‌کننده عدد تصادفی در آن گنجاند که اجازه می‌داد کامپیوتر حدس زده و از اشتباهات خود درس بگیرد. لازم به ذکر است که Manchester Mark 1، نمونه اولیه Ferranti Mark 1 بود که نخستین کامپیوتر دیجیتالی با برنامه ذخیره شده به شمار می‌آمد.

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

تورینگ می‌خواست بداند که چگونه مولکول‌ها می‌توانستند به‌طور مجموعه‌ای خود را سازماندهی کرده یا این‌که آیا ماشین می‌تواند فکر کند یا خیر؟ فون نویمان می‌خواست بداند که مغز چگونه کار می‌کند و آیا ماشین‌ها می‌توانند خود را باز‌تولید‌کنند؟ تورینگ که در سن 41 سالگی در‌گذشت، یک نظريه ناتمام در زمینه Morphogenesis (تکوینِ ترکیب) از خود به‌جای گذاشت و فون نویمان نیز که در سن 53 سالگی درگذشت، یک تئوری ناتمام در زمینه خود بازتولیدی (مدلی که بر‌اساس برداشتی از توانایی ماشین تورینگ از تولید کپی‌هایی از خود شکل گرفته بود) از خود به‌جای گذارد. اگر هردوی آن‌ها مدت طولانی‌تری زنده می‌ماندند و ایده‌های آن دو با یکدیگر ترکیب می‌شد، نتایج جالب و شگفت‌انگیزی می‌توانست رقم بخورد. زندگی آن‌ها به فاصله بسیار کوتاهی از کشف مکانیزم درونی ترجمه بین توالی و ساختار در بیولوژی به اتمام رسید و اگر آن‌ها از این کشف مطلع می‌شدند، چه نوآوری‌های خارق‌العاده‌ای را می‌توانستند به ارمغان بیاورند!


بخش دوم

ماشین تورینگ

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

این ماشین نخستین‌بار توسط آلن تورینگ در سال 1936 و در قالب یک مقاله، در پاسخ به مسئله‌ای که ریاضیدان آلمانی، دیوید هیلبرت منتشر کرده بود، مطرح شد. مسئله هیلبرت تصمیم‌گیری درباره این بود که آیا یک روال مشخص وجود دارد که بتواند صحت یک عبارت منطقی را در مراحلی متناهی محاسبه کند یا خیر؟ وی برای پاسخگویی به این سؤال‌، چنین ماشینی را تصور کرد و در نهایت به پاسخ منفی برای مسئله هیلبرت دست یافت. در اکتبر همان سال، فردی به نام امیل پست (Emil Post) مقاله‌ای با عنوان «Finite combinatory processes – formulation 1» منتشر کرد که در آن به توضیح و تبیین نوعی ماشین پرداخته شده بود که می‌توان آن را نوع خاصی از ماشین تورینگ به شمار آورد. کار وی مستقل از تورینگ انجام شده بود با این تفاوت که ماشین پست از الفبای باینری استفاده می‌کرد و مفاهیم حافظه ماشین وی حالت مجرد‌تری نسبت به تصورات تورینگ داشت. به همین جهت، گاهی به این چنین ماشین‌هایی پست-تورینگ  (Post-Turing Machines) نیز گفته می‌شود. بر این اساس، باید توجه داشت که ماشین تورینگ یک فناوری محاسباتی عملی به شمار نمی‌آید بلکه یک دستگاه مجازی و نظری برای نمایش یک ماشین محاسباتی است. ماشین تورینگ، مثال خوبی برای دانشمندان کامپیوتر در زمینه درک کامل محدودیت‌های محاسبات مکانیکی است.

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

تورینگ بعدها و در سال 1948 در مقاله‌ای با عنوان ساز و كار رايانش (Computing Machinery and Intelligent)، تعریف دقیق‌تری از ماشین خودکار محاسباتی خود ارائه کرد و نام آن را ماشین محاسبات منطقی گذارد. وی در این مقاله چنین می‌گوید:

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

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

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

 هد (Head): که برای خواندن و نوشتن علامت‌های روی نوار و انجام عملیات انتقال نوار به چپ یا راست مورد استفاده قرار می‌گیرد. در برخی مدل‌ها هد متحرک بوده و نوار ثابت است.
 جدول متناهی دستورالعمل‌ها: که در برخی مواقع جدول عملکرد یا تابع گذار نامیده می‌شود، جدولی حاوی دستورالعمل‌هایی پنجگانه یا چهارگانه با فرمت qiaj→qi1aj1dk است که وظیفه تعیین عملکرد ماشین در برابر علامت‌های روی نوار را بر عهده دارد. متغیرهای آورده شده در عبارت بالا، نشان‌دهنده حالت جاری ماشین، علامت خوانده‌شده، میزان جابه‌جایی هد و… هستند.

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

بعدها و در سال 1979، مفهوم ماشین تورینگ توسط هاپ کرافت (Hopcroft) و اولمن بر‌اساس پیشرفت‌های حاصل شده، به طور کاملاً مناسب و به‌صورت هفت گانه و بر اساس <M=<Q,Γ,b,Σ,δ,q0,F فرمول‌بندی و منظم شد که در آن متغیرهای مورد استفاده به ترتیب نشان از مجموعه حالات سیستم (Q)، الفبای استفاده شده روی نوار(Γ)، علامت نشانگر فضای خالی(b)، مجموعه علامات ورودی (Σ)، جدول ‌گذار حالت‌ها(δ)، حالت اولیه (q0 ) و حالت‌های نهایی قابل قبول (F ) دارند. هر چیزی که با این مفهوم قابل توصیف باشد، یک ماشین تورینگ به شمار می‌آید.  مثالی در این زمینه، ماشین Busy Beaver معروف است که برای رسیدن به بیشینه درگیری عملیاتی در میان ماشین‌های تورینگ موجود در یک کلاس مشخص مطرح شده و مورد استفاده قرار می‌گیرد. توصیف این ماشین بر اساس مدل‌سازی مطرح شده در بالا چنین خواهد بود:

{Q = { A, B, C, HALT
{Γ = { 0, 1
«تهی»=b=o
{Σ = {1
جدول 1= δ
حالت اولیه = q0 = A
مجموعه حالت تک عضوی {F = {HALT

ماشین‌های تورینگ مجازی

در کنار انواع نمونه‌های سخت‌افزاری ساخته شده، پیاده‌سازی‌های رایانه‌ای مختلفی از ماشین تورینگ وجود دارد که با سر زدن و مشاهده روند کاری‌ آن‌ها، می‌توانید به خوبی با نحوه کار ماشین تورینگ آشنا شوید. یکی از این ماشین‌های شبیه‌سازی شده که اتفاقاً ساده‌ترین و معمولی‌ترین آن‌ها نیز به شمار می‌آید در آدرسwww.turing.org.uk/turing/scrapbook/tmjava.html وجود دارد و از طریق یک مرورگر معمولی قابل دسترسی است. در این ماشین، می‌توانید عملیات مربوطه را انتخاب کرده و با زدن Load داده‌های مربوطه را روی نوار نوشته و سپس با زدن Run نتیجه اجرای عملیات روی نوار مذکور را ببینید. (شکل1)

 

پیاده سازی نرم افزاری ماشین تورینگ به صورت سریع از http://www.turing.org.uk/book/update/tmjavar.html

 

مثال قبل، نمونه چندان خوبی برای درک شهودی عملکرد ماشین تورینگ نیست چرا که عملیات خود را به یکباره و سریع انجام می‌دهد.
در نقطه مقابل، نمونه پیاده‌سازی شده در آدرس http://ironphoenix.org/tril/tm/   عملکرد بصری مناسبی داشته و با رعایت انجام با فاصله عملیات، درک بهتری از کارکرد ماشین تورینگ با برنامه های مختلف را ارائه می‌کند. (شکل2)

 

پیاده سازی نرم افزاری ماشین تورینگ به صورت مرحله به مرحله از http://ironphoenix.org/tm/

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

 

شبیه سازی نرم افزاری ماشین تورینگ مخصوص ios قابل دانلود از App store

جدول ‌گذار حالت‌های این ماشین که برای 2 علامت و 3 حالت طراحی شده، در جدول 1 آورده شده است. در این جدول علامت P به معنای چاپ یک روی نوار بوده و L و R به ترتیب به معنای انتقال نوار به چپ و راست است. این جدول را می‌توان به‌صورت دیاگرام انتقال حالت نیز نشان داد. اگرچه جدول‌های بزرگ انتقال حالت بهتر است به‌صورت جدولی باقی بمانند و این گونه قابلیت فهم بالاتری دارند، با این حال نمایش وضعیت ماشین‌های ساده به‌صورت دیاگرامی می‌تواند درک بهتر و ساده‌تری از آن‌ها را ارائه کند. توجه داشته باشید که دیاگرام‌های انتقال حالت، یک تصویر فریز‌‌شده از جدول عملکرد ماشین در زمان است و نباید آن را منحنی عملکرد محاسبات ماشین در طول زمان و مکان دانست. شکل 1 نمایی از دیاگرام انتقال حالت ماشین سه حالته Busy Beaver را نشان می‌دهد. با این حال، هر بار که ماشین Busy Beaver شروع به کار می‌کند، یک منحنی عملکردی را از آغاز تا پایان می‌پیماید اما یک ماشین کپی‌کننده که می‌تواند پارامترهای ورودی متغیر داشته باشد، ممکن است منحنی متفاوتی را طی کند. برای تعیین نحوه عملکرد صحیح یک ماشین در طول زمان به سادگی می‌توان از دیاگرام پیشرفت محاسبات استفاده کرد که نمونه‌ای از آن برای ماشین 3 حالته Busy Beaver در شکل 2 آورده شده است.

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

ماشین تورینگ چیست ؟ قسمت 1
ماشین تورینگ چیست ؟ قسمت 2
ماشین تورینگ چیست ؟ قسمت 3