درباره وبلاگ


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



نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 9
بازدید دیروز : 433
بازدید هفته : 463
بازدید ماه : 821
بازدید کل : 56735
تعداد مطالب : 55
تعداد نظرات : 1
تعداد آنلاین : 1

وبلاگ سهراب جلوه گر جلوه‌گر؛ هوش مصنوعی
دانلود رایگان یا خرید ایبوک هوش مصنوعی ترجمه شده به وسیله‌ی اینجانب سهراب جلوه گر جلوه‌گر + +

 

 

██ چکیده‌ی مطلب‌های فصل هفدهم نسخه‌ی پولی ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

چکیده‌ی مطلب‌های فصل هفدهم- شبکه‌های عصبی

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

دو نوع شبکه‌ی عصبی داریم: یکی شبکه‌های با تغذیه‌ی مستقیم، که در این شبکه‌ها علامت(‌سیگنال‌)‌ها در یک جهت حرکت می‌کنند و بدون دُوْرْ(سیکل) می‌باشند‌؛ و دیگری شبکه‌های بازگشت کننده، که در این شبکه‌ها در انتشار علامت(‌سیگنال‌)‌، دُوْرْ(سیکل) وجود دارد‌‌؛ در این شبکه‌ها دست‌کم یکی از خروجی‌ها به یکی از ورودی‌ها متّصل شده‌ است‌.

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

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

پرسپترون‌ها[ی تک لایه‌ای]‌ دارای این مزیّت هستند که یک الگوریتم یادگیری ساده دارند‌؛ ولی عیب آنها در این است که دارای محدودیّت‌های محاسباتی هستند‌.اگر ما یک لایه‌ی مخفی اضافه نماییم‌، به عبارتی دیگر، پرسپترون چند لایه‌ای با یک لایه‌ی پنهان بسازیم، توان محاسباتی افزایش می‌یابد‌؛ با یک لایه‌ی پنهان‌، [پرسپترون] می‌تواند هر تابع پیوسته را نمایش دهد و با دو لایه‌ی پنهان(پرسپترون چند لایه‌ای با دو لایه‌ی پنهان)‌ می‌تواند هر تابعی را نمایش دهد.



 

 

██ چکیده‌ی مطلب‌های فصل هیجدهم نسخه‌ی پولی ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

چکیده‌ی مطلب‌های فصل هیجدهم- الگوریتم‌های ژنتیکی

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

الگوریتم‌های ژنتیکی اغلب‌، راه حل‌ها را به صورت رشته‌های بیتی باطول ثابت(ژنوتیپ یا کروموزوم)‌، کد می‌کنند؛ هر بیت(ژن)‌، برخی از ویژگی‌های راه حل‌های ارائه شده برای مسأله را ارائه می‌کند‌. برای اینکه الگوریتم‌های ژنتیکی کار کنند‌، نیاز به این داریم که هر رشته را تست نماییم و به آن امتیازی بدهیم که نشان دهنده‌ی چگونگی خوب بودن آن باشد‌.

در الگوریتم‌های ژنتیکی، جفت‌گیری(recombination همان تعویض(crossover) می‌باشد.

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

یکی از روش‌های انتخاب کروموزوم‌های با امتیاز بهتر، روش چرخش رولت است.



 

 

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

 

مترجم: سهراب جلوه گر جلوه‌گر

 

چکیده‌ی مطلب‌های فصل نوزدهم- سیستم‌های خبره

سیستم‌های خبره، برنامه‌هایی طرّاحی شده برای مدلسازی و استدلال در مورد دانش انسان می‌باشند.

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

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



 

 

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

 

مترجم: سهراب جلوه گر جلوه‌گر

 

چکیده‌ی مطلب‌های فصل بیستم- سیستم‌های طبقه‌بندی‌کننده

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

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

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

در یک سیستم تولید‌، برخی از قوانین ممکن است باعث عمل کردن قانون‌های دیگر شوند‌؛ در سیستم‌های تجاری‌، مسأله‌ این است که وقتی برای یک مورد بیش از یک قانون داریم‌، چه کار کنیم‌؟ [‌و کدام را اجرا نماییم‌؟]‌‌.

یک سیستم طبقه‌بندی کننده دارای سه جزء می‌باشد‌: یک قانون و سیستم پیام‌؛ یک سیستم انتساب اعتبار؛ و یک الگوریتم ژنتیکی برای تولید قانون‌های جدید‌.

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

در الگوریتم ژنتیکی پایه‌ی ما، همه‌ی جمعیّت‌، در زمان t‌، در زمان t+1‌ جایگزین می‌شود‌؛ این روش به‌خوبی برای بهینه‌سازی عمل می‌کند‌، ولی برای یادگیری‌، زیاد مناسب نمی‌باشد‌؛ به همین خاطر از روش گزینش بهترین‌ها(نخبه‌سالاری) برای حفظ برخی از قانون‌ها استفاده می‌نماییم‌.



 

 

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

 

مترجم: سهراب جلوه گر جلوه‌گر

 

چکیده‌ی مطلب‌های فصل بیست و یکم- یادگیری با استفاده از مشاهده‌ها؛ و درخت‌های تصمیم‌گیری

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

یک عامل برای بازنگری کردن رفتارش، به اطّلاعاتی که به عامل بگوید چگونه به‌خوبی کارش را انجام می‌دهد‌، نیازمند می‌باشد‌، این اطّلاعات‌، بازخورد‌ نام دارد‌.

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

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



 

 

██ چکیده‌ی مطلب‌های فصل بیست و دوّم نسخه‌ی پولی ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

چکیده‌ی مطلب‌های فصل بیست و دوّم- برنامه‌ریزی

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

زبان مشخّصی به نام اِستِریپس(STRIPS) برای ارائه‌ی مسأله‌های برنامه‌ریزی‌ کلاسیک وجود دارد.

یک نمونه‌ی استریپس، از وضعیّت(های) اوّلیّه؛ وضعیّت(های) هدف؛ و عملکرد(ها) تشکیل شده است؛ در ضمن، برای هر عملکرد، پیش‌شرط(ها) و پس‌شرط(هایی) وجود دارد.

برنامه‌ریز با مرتبه‌ی جزئی، برنامه‌ریزی‌ای است که در آن برخی از مرحله‌ها به ترتیب هستند.

در برنامه‌ریز با مرتبه‌ی کلّی، از از لیست‌های ساده‌ای از مرحله‌ها استفاده می‌کنیم.



 

 

██ چکیده‌ی مطلب‌های فصل بیست و سوّم نسخه‌ی پولی ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

چکیده‌ی مطلب‌های فصل بیست و سوّم- آشنایی با روبوتیک

یک روبوت، یک عامل هوشمند مکانیکی است که می‌تواند خودش کارها را انجام دهد یا می‌تواند برای انجام کارها راهنمائی شود. در عمل، یک روبوت معمولاً یک ماشین الکترومکانیکی است که به وسیله‌ی کامپیوتر و برنامه‌نویسی الکترونیکی راهنمائی می‌شود. روبوت‌ها می‌توانند خودمختار یا نیمه‌خودمختار باشند و دارای دو نوع اصلی هستند:

یکی، آنهایی که برای پژوهش در زمینه‌ی سیستم‌های شبیه انسان استفاده می‌شوند، مثل روبوت‌های ASIMO و TOPIO

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

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

ماشین‌آلات خودکار برای انجام کار مشخّصی طرّاحی شده‌اند؛ولی روبوت‌ها برای انجام کارهای گوناگون طرّاحی شده‌اند.

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

قانون‌های سه گانه‌ی روبوتیک به وسیله‌ی اِسحاق آسیمُوف به اینصورت بیان شده‌اند:قانون اوّل‌، روبوت نباید به انسان صدمه(آسيب) وارد کند.| قانون دوّم، روبوت‌ باید دستوراتی را که به وسیله‌ی انسان به آن داده شده و ‌قانون اوّل را نقض نمی‌کند، اجرا نماید.| قانون سوّم‌، روبوت‌ باید از خودش مواظبت کند و این مواظبت نباید باعث نقض قانون اوّل یا نقض قانون دوّم شود.

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

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

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

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



 

 

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

 

مترجم: سهراب جلوه گر جلوه‌گر

 

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

برنامه‌ها از تعریف روال‌ها تشکیل شده‌اند‌؛ یک روال، منبعی برای ارزیابی چیزی می‌باشد‌.

در پرولوگ‌، «-:»‌، به معنای «if‌(اگر)»‌؛ «,»‌، به معنای «and»؛ و «;»، به معنای «or» می‌باشد‌.

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

واژگان شروع شده با یک حرف بزرگ یا خطّ زیرین(‌_‌)‌، متغیّر هستند‌.

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

در پرولوگ دو نوع عبارت داریم‌؛ یکی‌، قانون‌ها که دارای علامت «-:» هستند؛ و دیگری‌، واقعیّت‌ها که دارای علامت «-:» نمی‌باشند.

قانون «a:-b,c.»؛ ‌یعنی‌، «اگر b و c‌ (هر دو) درست باشند‌، آنگاه a‌ درست خواهد بود‌.»

هر واقعیّت‌، مثل «happy(mary).» فقط دارای یک گزاره است‌.

هر عبارت در پرولوگ با نقطه(.) خاتمه می‌یابد‌.

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

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

متغیّرهایی که درون پرس‌و‌جوها هستند، به صورت سور وجودی(‌$‌) رفتار می‌نمایند‌.

متغیّرهای درون شرط‌های برنامه به صورت سورهای عمومی(‌"‌)‌ عمل می‌کنند‌.

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

اتم‌ها، عددها و متغیّرها اجزای سازنده‌ی واژه‌های پیچیده هستند.

دو عبارت در پرولوگ‌ یکسان هستند‌، اگر برای هر متغیّر موجود در آنها(دو عبارت) موردی وجود داشته باشد که آنها(دو عبارت) را برابر نماید‌.

از عملگر مساوی(‌=‌)‌ برای برّرسی یکسان بودن دو عبارت‌ استفاده می‌نماییم‌.

لیست‌‌، رشته‌ای محدود از عنصرها است.

لیست‌، از دو قسمت سر(H) و دنباله یا دم(T)‌ تشکیل می‌شود‌؛ اگر n‌، طول لیست باشد‌، قسمت اوّل لیست‌، سر‌ نام دارد و بقیّه‌ی لیست (‌که لیستی با طول n-1 است‌)‌، دم یا دنباله‌ نام دارد‌؛ به عنوان مثال، در لیست [a,b,c]‌، a‌، سر و [b,c]‌، دنباله می‌باشد‌.

در پرولوگ، از عملگرهای «/»، برای «انجام عمل تقسیم»؛ «**»، برای «انجام عمل به توان رساندن»؛ «//»، برای «به دست آوردن خارج قسمت تقسیم صحیح» و از «mod»، برای «به دست آوردن باقیمانده‌ی تقسیم صحیح» استفاده می‌نماییم‌.

برای وادار کردن پرولوگ به محاسبه‌ی عبارت‌های محاسباتی، مثل جمع، ضرب، تقسیم و غیره می‌توان از عملگر is استفاده کرد.

در پرولوگ ‌برای برّرسی مساوی یا کوچک‌تر بودن‌ از عملگر «>=» استفاده می‌کنیم و عملگر «=>» نداریم.

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



 

 

██ چکیده‌ی مطلب‌های فصل بیست و پنجم نسخه‌ی پولی ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

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

پایتون به بزرگ و کوچک بودن حروف حسّاس می‌باشد‌.

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

پایتون نوع‌های داده‌ای را به صورت خودکار برای متغیّرهای موجود در برنامه تشخیص می‌دهد؛ امّا این مطلب به معنی این نیست که پایتون در مورد نوع داده‌ها حسّاس نمی‌باشد.

اگر شما بخواهید برای متغیّرها از نامی استفاده نمایید که در گذشته با استفاده از مقداردهی آن را به وجود نیاورده‌اید، با خطا مواجه خواهید شد‌.

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

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

در اندیس مثبت‌، شمارش از سمت چپ‌ شروع می‌شود و شروع اندیس از عدد صفر است‌، ولی در اندیس منفی‌، شمارش از سمت راست است و اندیس از عدد منفی یک‌ شروع می‌شود‌.

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

دیکشنری‌ها یک نگاشت را میان یک مجموعه از کلیدها و یک مجموعه از مقدارها نگهداری می‌کنند‌‌.

برای برداشتن یکی از فقره‌های موجود در دیکشنری از دستور del‌ استفاده می‌کنیم و برای حذف کامل فقره‌های موجود در دیکشنری از متد clear( )‌ استفاده می‌نماییم‌.

کلمه‌ی کلیدی break‌ ما را از درونی‌ترین حلقه‌ی for یا while‌ خارج می‌کند.

کلمه‌ی کلیدی continue‌ ما را به ابتدای حلقه منتقل می‌نماید‌.

پایتون دارای خصیصه‌ای قدرتمند برای تولید یک لیست جدید با به کارگیری یک عمل برای هر عضو لیست اصلی است‌.



 

 

██ متن فصل بیست و سوّم نسخه‌ی رایگان ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

فصل آشنایی با روبوتیک

 

فهرست برخی از عنوان‌های نوشته‌ها

تعریف‌هاي روبوت

انواع روبوت

کاربردهای روبوت

چه کارهایی برای انسان سخت و برای روبوت‌ها آسان است؟

چه کارهایی برای انسان آسان و برای روبوت دشوار است؟

فرق روبوت با ماشین‌آلات خودکار

تعريف علم روبوتيك

قوانین روبوتیک

تاریخچه‌ی کوتاهی از روبوتیک

اجزای کلیدی روبوت

طرزکار(مکانیزم) روبوت

حسگرها

عمل‌کننده‌ها

کنترل کننده

سخت‌افزار کنترل کننده

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

روبوت‌های صنعتی‌ چه کارهایی می‌توانند انجام دهند‌؟

چند نمونه روبوت:

 

مقدّمه

 

کِرُل کاپِک   

 

کلمه‌ی رُوبُوت‌ به وسیله‌ی یک رمان نویس کشور چِک  به نام کِرُلْ کاپِکْ ‌ در سال 1920 ميلادي‌ در یک نمایش با عنوان Rassum's Universal Robots(RUR)‌ به کار گرفته شد‌؛ اين واژه(روبوت)‌ از كلمه‌ي چِكي روبوتا ، كه در زبان چکی‌، واژه‌ای برای «كار اجباري‌، بيگاري‌، کارگر یا پیشخدمت» می‌باشد‌، گرفته شده است‌.

 

شکل بالا- صحنه‌ای از نمایش Rassum's Universal Robots(RUR)‌ کِرُل کاپِک در سال 1920 میلادی؛ در این تصویر در سمت راست، سه روبوت نشان داده شده است.

 

تعریف‌هاي روبوت

 تعریف اوّل‌- هر ماشین ساخته شده به وسیله‌ی یکی از اعضای ما‌.

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

 تعریف سوّم‌- وسيله‌اي مكانيكي‌ براي انجام كاري كه به وسيله‌ي انسان‌ انجام مي‌شود‌، می‌باشد، مثل رَنگ كردن اتومبيل.

 تعریف چهارم- وسیله‌ای مکانیکی کامپیوتری برای انجام کارهای پیچیده.

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

 تعریف ششم- یک روبوت، یک عامل هوشمند مکانیکی است که می‌تواند خودش کارها را انجام دهد، یا می‌تواند برای انجام کارها راهنمائی شود. در عمل، یک روبوت معمولاً یک ماشین الکترومکانیکی است که به وسیله‌ی کامپیوتر و برنامه‌نویسی الکترونیکی راهنمائی می‌شود. روبوت‌ها می‌توانند خودمختار یا نیمه‌خودمختار باشند و دارای دو نوع اصلی هستند:

یکی، آنهایی که برای پژوهش در زمینه‌ی سیستم‌های شبیه انسان  استفاده می‌شوند، مثل روبوت‌های ASIMO و TOPIO

 

شکل بالا- روبوت ASIMO 2000، یک روبوت شبیه انسان است که در سال 2005 میلادی در نمایشگاه Expo 2005، در کشور ژاپُن به نمایش گذاشته شده است.

 

شکل بالا- TOPIO که یک روبوت شبیه انسان است، در نمایشگاه بین المللی روبوت IREX  در سال 2009 میلادی در شهر توکیوی کشور ژاپن پینگ پنگ بازی کرد.

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

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

 

  انواع روبوت

                 

شکل بالا- دست ماشینی      شکل بالا- دست ماشینی      شکل بالا- روبوت پادار

                 

شکل بالا- روبوت چرخ‌دارشکل بالا- وسیله‌ی زیر آبی خودمختار       شکل بالا- وسیله‌ی بی‌سرنشین هوایی

 

کاربردهای روبوت

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

 

روبوت ضدّعفونی کننده‌ي نشان داده شده در بالا‌ در نیروگاه اتمی برای پاک(تمیز) کردن به کار می‌رود‌.

کارهای تکراری که برای انسان‌، کِسِل کننده‌، پردَغدَغه یا کار بر می‌باشند

 

روبوت جوشکاری کننده (تصوير بالا)

کارهای پست که انسان دوست ندارد آنها را انجام دهد

 

روبوت اِسکرابمِیت ‌ (تصوير بالا)‌، در حال پاك كردن دستشويي

 

چه کارهایی برای انسان سخت و برای روبوت‌ها آسان است؟

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

 

شکل بالا- روبوت‌ها در خطّ تولید یک کارخانه‌ی خودروسازی

چه کارهایی برای انسان آسان و برای روبوت دشوار است؟

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

 

فرق روبوت با ماشین‌آلات خودکار

ماشین‌آلات خودکار برای انجام کار مشخّصی طرّاحی شده‌اند؛ مثل: ماشین‌هایی که بطری‌ها را پُر می‌کنند ، ماشین ظرفشویی  و ماشین رَنگ پاش .

 

شکل بالا- یک ماشین که بطری‌ها را پر می‌کند

 

شکل بالا- ماشین ظرفشویی

 

شکل بالا- ماشین رنگ پاش

ولی روبوت‌ها برای انجام کارهای گوناگون طرّاحی شده‌اند؛ مثل: بازوهای برداشتن و گذاشتن ، و روبوت‌های متحرّک.

 

شکل بالا- بازوی برداشتن و گذاشتن

 

شکل بالا- یک روبوت متحرّک

 

تعريف علم روبوتيك

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

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

 تعریف سوّم- فنّـآوری ساخت و استفاده از روبوت‌ها.

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

قوانین روبوتیک

 

شکل بالا- یک روبوت معمولی قبل از قوانین آسیموف، این تصویر در کارتون «سوپِر مَن» نشان داده شده است. قانون اوّل آسیموف روبوت را از حمله به انسان نهی می‌کند.

 

اِسحاق آسیمُوف  اِسْحاقْ آسیمُوف  قانون‌های سه گانه‌ی روبوتیک را به صورت زیر‌ بیان نمود:

قانون اوّل‌، روبوت‌ نباید به انسان‌ صدمه(آسيب) وارد کند.

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

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

 

تاریخچه‌ی کوتاهی از روبوتیک

در سال 1954 ميلادي‌ اوّلین روبوت قابل برنامه‌ریزی صنعتي به وسیله‌ی جُورْجْ دِوُلْ ‌ با نام Universal Automation‌ طرّاحی شد؛ اين روبوت در سال 1962 ميلادي به Unimation، که نام اوّلین شرکت روبوت شد‌، تغییر نام پیدا نمود‌. شركت Unimate در ابتدا‌ ساخت لامپ تصویر تلویزیون را خودکار نمود‌.

 

در سال 1978 ميلادي‌ روبوت پوما(ماشین همه منظوره‌ي قابل برنامه‌ریزی، برای مونتاژ یا اسِمبِلی)  به وسیله‌ی شركت Unimation با پشتیبانی شركت General Motors‌ به وجود آمد‌ (شکل زیر)‌.

 

شکل بالا- دست ماشینی پوما 560

در دهه‌ی 1980 ميلادي‌ صنعت روبوت‌ به یک مرحله‌ی رشد سریع رسید‌. تعداد زیادی مؤسّسه‌ برنامه‌ها و زمينه‌هایی را در علم روبوتیک‌ معرّفی نمودند‌. زمینه‌های روبوتیک‌، در مهندسی مکانیک‌، مهندسی برق و دانشکده‌های علوم کامپیوتر‌ پخش شدند‌.

                 

شکل بالا- دست ماشینی فنّـآوری بارت     شکل بالا- روبوت Cognex       شکل بالا- روبوت ماهر SCARA

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

 

اجزای کلیدی روبوت

 

پایه‌ی روبوت

پایه‌ی روبوت‌ می‌تواند به صورت ثابت یا متحرّک باشد‌؛ بازوهای ماشینی روبوتیک، در کارخانه‌ها، نمونه‌هایی از روبوت‌های ثابت می‌باشند‌؛ آنها نمی‌توانند پایه‌ی خود را حرکت دهند‌. در زیر‌، تصویری از یک روبوت داراي پایه‌ی ثابت را مشاهده می‌نمایید‌:

 

شکل بالا- روبوت A255

در روبوت‌های با پایه‌های متحرّک‌، پایه‌ها‌ معمولاً‌ دارای چرخ هستند و برخی نیز‌ دارای پا مانندهایی برای حرکت می‌باشند‌:

 

طرزکار(مکانیزم) روبوت

اجزای مکانیکی

در زیر‌ چند نمونه از اجزای مکانیکی را می‌بینید‌:

         

شکل بالا- سطح شیبدار        شکل بالا- گُوِه

         

شکل بالا- حلقه‌های زنجیر     شکل بالا- چرخ‌دنده‌، دنده‌ی هَرز‌گَرد و غیره

         

شکل بالا- میل‌لَنگ و پیستون  شکل بالا- اَهرُم

         

شکل بالا- زنجیر و چرخ‌دنده     شکل بالا- میل و بادامَک

حسگرها

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

 

شکل بالا- شتابْ سنج

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

  در ادامه برخی از گونه‌های حسگرها معرّفی شده‌اند:

حسگرهای نیرو

 

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

حسگرهای شیب(کجی)

حسگرهای شیب‌، به عنوان مثال‌، برای متعادل کردن(بالانس کردن) یک روبوت‌ به کار می‌روند‌.

 

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

 

حسگر بینایی

به عنوان مثال، برای برداشتن زباله‌ها، نظارت و ...

 

شکل بالا- یک روبوت دارای حسگرهای بینایی

عمل‌کننده‌ها

عمل‌کننده‌های رایج روبوتیک‌، از ترکیب ابزارهای الکترومکانیکی مختلف‌ استفاده می‌کنند‌؛ به عنوان مثال‌، موتور همزمان ‌، موتور پِلّه‌ساز ‌، موتور سِروُی با جریان متناوب ‌، موتور سروی بی زُغال با جریان مستقیم  و موتور سروی با زغال دارای جریان مستقیم ‌.

         

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

         

شکل بالا- موتور رُوغنی شکل بالا- موتور سروی

         

شکل بالا- موتور جریان مستقیم       شکل بالا- موتور گازی

کنترل کننده

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

سخت‌افزار کنترل کننده

وسایل ذخیره سازی

به عنوان مثال‌، حافظه‌، برای نگهداری برنامه‌ی کنترل و وضعیّت سیستم روبوت‌، که با استفاده از حسگرها به دست می‌آیند‌.

 

موتور محاسبه

دستورهای کنترل را محاسبه می‌کند.

         

واحدهای رابط

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

تقویّت کننده‌های عملیّاتی      تبدیل کننده‌ی آنالوگ به دیجیتال

 

LM1458

تقویّت کننده‌ی عملیّاتی دوتایی       

LM358      

LM358      

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

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

روبوت‌های صنعتی‌ چه کارهایی می‌توانند انجام دهند‌؟

حمل مواد؛ انتقال مواد؛ بار قرار دادن در ماشین و یا خالی کردن آن؛ نُقْطِهْ جوشْ؛ جوش پیوسته؛ اِسپِرِی کردن روکِش؛ سرهم‌بندی قطعات و بازرسی.

                 

شکل بالا- بازوی حمل کننده‌ی مواد  شکل بالا- بازوی سرهم‌بندی کننده  شکل بالا- بازوی نقطه جوشْ زَن

روبوت‌ها در فضا

به عنوان مثال:

 

شکل بالا- ایستگاه فضایی شرکت ناسا

روبوت‌ها در جاهای خطرناک

به عنوان مثال:

 

شکل بالا- روبوت HAZBOT در محیط قابل انفجار

 

شکل بالا- روبوت TROV در زیر دریا

روبوت‌ها در پزشکی

به عنوان مثال روبوت زیر برای جرّاحی‌های ریز به کار می‌رود:

 

روبوت‌ها در خانه

به عنوان مثال، روبوت‌های سرگرم کننده‌ی زیر:

 

چکیده‌ی مطلب‌های فصل بیست و سوّم

یک روبوت، یک عامل هوشمند مکانیکی است که می‌تواند خودش کارها را انجام دهد، یا می‌تواند برای انجام کارها راهنمائی شود. در عمل، یک روبوت معمولاً یک ماشین الکترومکانیکی است که به وسیله‌ی کامپیوتر و برنامه‌نویسی الکترونیکی، راهنمائی می‌شود. روبوت‌ها می‌توانند خودمختار یا نیمه‌خودمختار باشند و دارای دو نوع اصلی هستند:

یکی، آنهایی که برای پژوهش در زمینه‌ی سیستم‌های شبیه انسان استفاده می‌شوند، مثل روبوت‌های ASIMO و TOPIO

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

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

ماشین‌آلات خودکار، برای انجام کار مشخّصی طرّاحی شده‌اند؛ ولی روبوت‌ها، برای انجام کارهای گوناگون طرّاحی شده‌اند.

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

قانون‌های سه گانه‌ی روبوتیک به وسیله‌ی اِسحاق آسیمُوف به این صورت‌ بیان شده‌اند: قانون اوّل‌، روبوت‌ نباید به انسان‌ صدمه(آسيب) وارد کند. | قانون دوّم، روبوت‌ باید دستوراتی را که به وسیله‌ی انسان‌ به آن داده شده و ‌قانون اوّل را نقض نمی‌کند، اجرا نماید. | قانون سوّم‌، روبوت‌ باید از خودش مواظبت کند و این مواظبت‌ نباید باعث نقض قانون اوّل یا نقض قانون دوّم شود.

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

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

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

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



 

 

██ متن فصل بیست و یکم نسخه‌ی رایگان ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

فصل یادگیری با استفاده از مشاهده‌ها؛ و درخت‌های تصمیم‌گیری 

 

فهرست برخی از عنوان‌های نوشته‌ها

یادگیری

انواع بازخورد

یادگیری نظارت شده(کنترل شده)

یادگیری بدون نظارت(کنترل نشده)

تقویّت یادگیری(یادگیری تقویّتی)

تعریف یک مسأله‌ی یادگیری‌

درخت‌های تصمیم‌گیری

 

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

sunny  warm  PlayTennis

یا اگر هوا(وضعیّت جوّی) خنک باشد و بارانی باشد یا باد شدید بوزد‌، آنگاه تنیس‌ بازی نکنید و می‌نویسیم‌:

cool  (rain  strongWind)  PlayTennis

یادگیری

 

برای یک عامل‌، یادگیری‌ به چه معنی می‌باشد‌؟:

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

عامل‌های یادگیرنده

به یاد بیاورید که در گذشته در مورد عامل‌های یادگیرنده صحبت کردیم‌:

 

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

  انواع بازخورد

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

یادگیری نظارت شده (کنترل شده)

 تعریف- یکی از عمومی‌ترین شکل‌های یادگیری‌ می‌باشد‌؛ در این مورد‌ یک منبع خارجی (که اغلب‌ یاد(آموزش) دهنده ‌ نام دارد)‌، عامل را با نمونه‌های برچسب زده شده ‌ ارائه می‌نماید، که باید از این داده‌ها برای تشخیص قانون‌های کلّی‌تر‌ استفاده نماید‌؛

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

 

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

یادگیری بدون نظارت (کنترل نشده)

 تعریف- در این مورد‌ آموزش دهنده‌ای برای ارائه‌ی نمونه‌ها وجود ندارد و عامل‌ معمولاً‌ برای پیداکردن الگوهایی در داده‌ها تلاش می‌نماید‌.

 

تقویّت یادگیری(یادگیری تقویّتی)

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

 

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

 

  تعریف یک مسأله‌ی یادگیری‌

می‌توانیم مسأله‌ی یادگیری را با تخمین‌، به صورت یک تابع f‌، که به ما می‌گوید چگونه یک مجموعه از ورودی‌ها را طبقه‌بندی نماییم‌، تفسیر کنیم‌؛ یک مثال‌ در این مورد‌ یک مجموعه از ورودی‌های x و f(x) متناظر می‌باشد‌:

<<Mammal ,Eats-Meat ,Black-Stripes ,Tawny >,Tiger >

 

شکل بالا- بَبر

 

‌درخت‌های تصمیم‌گیری

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

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

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

 

چکیده‌ی مطلب‌های فصل بیست و یکم

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

یک عامل‌ برای بازنگری کردن رفتارش‌ به اطّلاعاتی که به عامل بگوید چگونه به‌خوبی‌ کارش را انجام می‌دهد‌، نیازمند می‌باشد‌، این اطّلاعات‌، بازخورد‌ نام دارد‌.

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

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



 

 

██ متن فصل بیستم نسخه‌ی رایگان ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

فصل سیستم‌های طبقه‌بندی‌کننده

 

فهرست برخی از عنوان‌های نوشته‌ها

سیستم‌های طبقه‌بندی‌کننده

سیستم‌های تولید

طبقه‌بندی‌کننده‌ها

اجزای یک سیستم طبقه‌بندی‌کننده

سیستم‌های طبقه‌بندی‌کننده

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

تعریف گُلدبِرگ

 

دِیوید گُلدبِرگ       تعریف دیوید گلدبرگ از سیستم طبقه‌بندی‌کننده چنین است: یک سیستم یادگیری ماشینی است که رشته قانون‌های دستوری ساده را برای راهنمایی عملکردش یاد می‌گیرد.

سیستم‌های تولید

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

یک قانون‌، زمانی اجرا می‌شود که مجموعه‌ای از شرایط‌، که در حافظه هستند‌، برقرار باشند‌.  سیستم‌های تولید‌، یک روش رایج در هوش مصنوعی هستند‌. در آنها از «اگر–آنگاه» یا قانون‌های «شرط–عملکرد»‌ استفاده می‌شود‌. مثلاً‌ در دنیای جاروبرقی داریم‌: در صورتی که خانه‌ی [1و1]‌ جارو نشده باشد و در خانه‌ی مجاور یا همسایه باشد‌، آنگاه به خانه‌ی [1،1] برو‌. چنانچه بیان شد، یک سیستم تولید‌، از تعداد زیادی قانون‌ تشکیل شده است‌؛ برخی از قوانین‌ ممکن است باعث عمل کردن قانون‌های دیگر شوند‌؛ در سیستم‌های تجاری‌، مسأله‌‌ این است که، وقتی برای یک مورد‌ بیش از یک قانون داریم‌ چه کار کنیم‌؟ [‌و کدام را اجرا نماییم‌؟]‌‌، در آینده به این مورد خواهیم پرداخت‌.

اجزای یک سیستم طبقه‌بندی کننده

یک سیستم طبقه‌بندی کننده‌ دارای سه جزء می‌باشد‌: یک قانون و سیستم پیام‌؛ یک سیستم انتساب اعتبار؛ و یک الگوریتم ژنتیکی‌، برای تولید قانون‌های جدید‌. حال این اجزا را مورد برّرسی قرار می‌دهیم:

قانون و سیستم پیام

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

 مثال‌- فرض کنید سیستم ما دارای طبقه‌بندی‌کننده‌های زیر می‌باشد‌؛ توجّه کنید که قانون‌ها به وسیله‌ی 0،1 و #(*) به صورت یک رشته‌ی بیتی‌ کد می‌شوند‌:

1.     01##: 0000

2.     00#0: 1100

3.     11##: 1000

4.     ##00: 0001

اگر پیام 0111 از محیط‌ دریافت شود‌؛ در ابتدا‌ قانون یک‌ اجرا می‌شود‌، پس 0000‌ در لیست پیام‌ قرار می‌گیرد‌؛ سپس‌ قانون‌های دو و چهار‌ اجرا می‌شوند‌، در نتیجه 1100 و 0001 در لیست پیام‌ قرار می‌گیرند‌؛ بعد‌ قانون سه اجرا می‌شود‌، پس 1000 در لیست پیام‌ قرار می‌گیرد‌، که با قانون شماره‌ی 4‌ مطابقت دارد، که پیامش در لیست پیام‌ها قرار دارد‌، حالا چند پیام در لیست پیام قرار دارد‌؛ کدام پيام‌ به عمل‌کننده‌ها[ی عامل] فرستاده می‌شود‌؟:

سیستم انتساب اعتبار

در زیر روشی را برّرسی می‌نمائیم:

روش گزینش براساس سابقه‌ی بهتر‌- در الگوریتم گزینش براساس سابقه‌ی بهتر، قانون‌ها براساس عملکرد قبلی انتخاب می‌شوند؛ به بیان دیگر، قانونی که دارای گذشته‌ی بهتری است، اجرا می‌شود؛ وقتی که یک قانون‌ برقرار می‌شود‌، در یک «حراج(مزایده) »[، با قانون‌های دیگر،] شرکت می‌نماید‌؛ هر قانون براساس عملکرد قبلی‌، دارای یک توانایی(قوّت) می‌باشد‌ و بالاترین قانون‌های شرکت کننده‌ بَرَنده می‌شوند و به طبقه‌بندی‌کننده‌(ها)‌ای که آنها را فعّال کرده‌(اند)‌، فرستاده می‌شوند‌.

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

تولید قوانین جدید‌- گزینش براساس سابقه‌ی بهتر، یک روش انتخاب قوانین و انتساب اعتبار را ارائه می‌نماید‌؛ حال سؤال این است که، چگونه قوانین جدید را به دست بیاوریم‌؟؛ در الگوریتم ژنتیکی پایه‌ی ما، همه‌ی جمعیّت‌، در زمان t‌، در زمان t+1‌ جایگزین می‌شود‌؛ این روش به‌خوبی برای بهینه‌سازی عمل می‌کند‌، ولی برای یادگیری‌، زیاد مناسب نمی‌باشد‌؛ به همین خاطر‌ از روش گزینش بهترین‌ها(نخبه‌سالاری) ‌، برای حفظ برخی از قانون‌ها، استفاده می‌نماییم‌؛ از روش انتخاب رولت ‌ هم برای حفظ قانون‌ها می‌توانید استفاده نمایید‌، البتّه‌ این روش‌ کندتر‌ استنتاج می‌کند‌. 

 

چکیده‌ی مطلب‌های فصل بیستم

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

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

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

در یک سیستم تولید‌، برخی از قوانین‌ ممکن است باعث عمل کردن قانون‌های دیگر شوند‌؛ در سیستم‌های تجاری‌، مسأله‌‌ این است که، وقتی برای یک مورد‌ بیش از یک قانون داریم‌، چه کار کنیم‌؟ [‌و کدام را اجرا نماییم‌؟]‌‌.

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

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

در الگوریتم ژنتیکی پایه‌ی ما، همه‌ی جمعیّت‌، در زمان t‌، در زمان t+1‌، جایگزین می‌شود‌؛ این روش به‌خوبی برای بهینه‌سازی عمل می‌کند‌، ولی برای یادگیری‌، زیاد مناسب نمی‌باشد‌؛ به همین خاطر‌ از روش گزینش بهترین‌ها(نخبه‌سالاری)‌، برای حفظ برخی از قانون‌ها، استفاده می‌نماییم‌.



 

 

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

 

مترجم: سهراب جلوه گر جلوه‌گر

 

فصل سیستم‌های خِبره  

 

فهرست برخی از عنوان‌های نوشته‌ها

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

برخی از کاربردهای سیستم‌های خبره

چرا یک سیستم خبره را می‌سازیم‌؟

ویژگی‌های خوب یک سیستم خبره

سیستم‌های خبره‌ی قانون‌گرا

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

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

 تعریف- خبره‌- در صورتی که ما بگوییم فردی در رشته‌ای‌ یک خبره می‌باشد‌، منظور ما‌ این است که‌ در آن تخصّص محدود،‌ شایستگی بالایی را به نمایش می‌گذارد‌.

 تعریف- سیستم‌های خبره- برنامه‌هایی طرّاحی شده برای مدلسازی و استدلال در مورد دانش انسان می‌باشند

و معمولاً‌ حول یک دامنه‌، مثل تشخیص بیماری‌، پرواز فضایی‌، لُجِسْتیک(اقدامات مربوط به تهیه و توزیع) و عیب‌یابی نرم‌افزار‌ تمرکز می‌کنند‌. در این سیستم‌ها‌، برنامه‌نویسان‌، واقعیّت‌ها و قوانین را اضافه می‌کنند و سیستم‌، پردازه‌ی استنتاج را به صورت خودکار‌ انجام می‌دهد و می‌توانند یا از زنجیره‌ی پیشرُو  یا از زنجیره‌ی پَسرُو  استفاده نمایند‌.

برخی از کاربردهای سیستم‌های خبره

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

چرا یک سیستم خبره را می‌سازیم‌؟

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

ویژگی‌های خوب یک سیستم خبره

در صورتی که سیستم خبره‌ به صورت محاوره‌ای باشد‌، یک رابط کاربری خوب‌، بسیار ضروری می‌باشد‌. توجّه کنید که مکالمه‌ای که سیستم خبره‌ با شخص کاربر‌ انجام می‌دهد باید به صورت «طبیعی»، به وسیله‌ی کاربر، مطرح شده باشد، که شامل موردهایی نظیر این‌ها می‌باشد‌: شیوه‌ی سؤالاتی که سیستم می‌پرسد‌ باید طبیعی باشد‌؛ سؤالات احمقانه نباید وجود داشته باشند (کسانی که به سیستم‌ جواب می‌دهند باید با دلیل‌ تدبیر کرده باشند‌)‌؛ سیستم‌ باید قادر باشد توضیح دهد که چرا یک سؤال را می‌پرسد و هر نتیجه‌ای که به آن می‌رسد را توجیه نماید و باید به کاربر‌  در مورد سیستم‌ اطمینان دهد‌.

در استدلال‌ باید یک سیستم خبره‌ قادر به انجام این موردها باشد‌: باید استنتاج‌هایش باورکردنی و نه الزاماً صحیح باشند‌؛

باید قادر به کار با دامنه‌ی دانش ناقص و موردهایی که اطّلاعات‌، ناقص هستند‌، باشد‌؛ اغلب‌، دانش و یا اطّلاعات‌، ناکامل می‌باشند و دانش و یا داده‌ها‌ ممکن است قابل اعتماد نباشند (مثلاً‌ ممکن است دارای خطا باشند) و شاید‌ دانش و یا داده‌ها‌ به صورت نادرست‌ بیان شده باشند (به عنوان مثال‌، «‌اگر دارای دندان بلندی باشد‌، آنگاه‌ این‌ خطرناک می‌باشد‌.»‌)‌؛

همچنین‌ باید سیستم‌، رقابت همزمان مفروضات را در نظر داشته باشد‌.

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

سیستم‌ خبره‌ی قانون‌گرا 

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

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

پایگاه دانش

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

if  p1 AND p2 … AND pn then q

(p1  …  pn)  q

q  ¬p1  …  ¬pn

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

 مثال- برای قانون‌های زیر‌:

if p AND q then r

if s AND t then r

if u then p

if v then p

if w AND x then s

if y then s

if z then t

 گراف زیر را داریم‌:

 

 مثال- در زیر‌ مثالی از پایگاه دانشی برای شناسایی حيوان‌ها را می‌بینید‌:

if animal Gives Milk  then animalIsMammal

if animalHasHair  then animalIsMammal

if animalIsMammal AND animalChews Cud  then animalIsUngulate

if animalIsUngulate AND animalHasLongNeck  then animalIsGiraffe

if animalIsUngulate AND animalIsStriped  then animalIsZebra

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

موتور استنتاج

موتور استنتاج‌، استنتاج‌ها را با استفاده از دانش موجود در پایگاه دانش‌ استخراج می‌کند و این کار را با استفاده از استنتاج قانون‌گرا ‌ انجام می‌دهد‌؛ از یک نقطه نظر منطقی‌، اساساً‌ از روش تحلیل ‌ استفاده می‌کند‌. یک چشم‌انداز(دورنمای) استنتاج(استدلال) قانون‌گرا، این است که، در حال انجام یک جستجوی گرافی AND-OR می‌باشد؛ به طور مؤثّر‌، ما به دنبال یک مسیر که ریشه و برگ‌ها را به هم‌ متّصل می‌کند‌، می‌گردیم‌؛ در صورتی که یک گره‌، یک برگ باشد‌، در این صورت، این گره‌، یک واقعیّت را که باید درست باشد، نمایش می‌دهد‌.

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

زنجیره‌ی پَسرُو ‌- زنجیره‌ی پسرو‌، استدلال به وجود آمده(مشتق شده) از هدف می‌باشند. در عبارت‌های گراف AND-OR‌، این نوع از استدلال‌، از ریشه‌ی گراف‌ شروع می‌شود و برای پیداکردن مسیری از ریشه به برگ‌ها تلاش می‌نماید‌.

زنجیره‌ی پیشرُو ‌- این روش‌، استدلال مشتق شده از داده‌ها هم نامیده می‌شود‌؛ در عبارات گراف AND-OR‌، این نوع از استدلال‌، از برگ‌ها شروع می‌کند و تلاش می‌کند که مسیری را از برگ‌ها به طرف ریشه پیدا نماید‌.

 

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

 

توضیح‌های استدلال

در گذشته اهمّیّت داشتن توضیح روان(سلیس) را در یک سیستم خبره‌ بیان کردیم‌. سیستم‌های قانون‌گرا‌ معمولاً‌ دو امکان را برای ارائه‌ی توضیحات به کاربران‌ ارائه می‌کنند‌؛ کاربران ممکن است یا بپرسند، «چرا‌؟» و یا بپرسند، «چگونه‌؟»‌؛ سیستم‌ این سؤالات را با نمایش برخی از قوانین مربوط‌ جواب می‌دهد‌؛ برای مثال‌، تصوّر نمایید که سیستم خبره‌ی شناسایی حيوان‌ها‌، که در گذشته در همین فصل آن را بیان کردیم، از کاربر‌ این پرسش را می‌پرسد که، «آیا حیوان‌ نُشخوار می‌کند‌؟»‌؛ در این مورد‌ کاربر‌ می‌تواند به جای جواب دادن به این سؤال‌ بپرسد که‌: «چرا شما این سؤال را می‌پرسید‌؟»؛ برای جواب دادن به این سؤال کاربر‌، سیستم خبره‌ با نمایش یک گراف AND-OR‌ پاسخ می‌دهد‌؛ برای مثال‌ ممکن است سیستم‌ پاسخ دهد‌:

«من از شما پرسیدم که، آیا حیوان نشخوار می‌کند‌؟‌، زیرا‌ این‌ در تشخیص اینکه حیوان‌، جانور سُم‌دار است‌، کمک می‌کند‌؛ قبلا‌ً تشخیص داده شده که جانور‌ پستاندار است‌؛ بنابراین، اگر حیوان، نُشخوار می‌کند‌، آنگاه‌ حیوان‌، سم‌دار می‌باشد‌؛ این در تشخیص اینکه، آیا حیوان زرّافه است‌؟‌،‌ کمک می‌کند‌؛ در صورتی که حیوان، سم‌دار باشد و دارای گردن بلند باشد‌، زرّافه می‌باشد»؛

تصوّر نمایید که یک سیستم خبره‌ تشخیص داده که برخی از گره‌ها‌ درست هستند‌؛ در گفتن نتیجه به کاربر‌، کاربر‌ می‌تواند بپرسد‌: «چگونه به این نتیجه رسیدی‌؟»‌؛ برای این کار‌، سیستم خبره‌ با نمایش قسمت‌های موفّق گراف AND-OR‌ جواب می‌دهد‌. ایده‌ این است که، برای توجیه کردن یک استنتاج‌، سیستم‌ باید نشان دهد که کدام قانون‌ها، در رسیدن به آن نتیجه‌، اجرا می‌شوند‌. برای مثال‌، تصوّر کنید در موردی که سیستم‌ تشخیص می‌دهد که حیوان‌ یک جانور سُم‌دار می‌باشد‌، کاربر‌ ممکن است درخواست کند که، «چگونه به این نتیجه رسیدی‌؟»‌، و جواب سیستم‌ ممکن است به صورت زیر باشد‌:

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

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

شما به من گفتید که: حیوان‌، دارای مو می‌باشد‌.

شما به من گفتید که: حیوان‌، نشخوار می‌کند‌.»

 

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

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

 

یکی دیگر از سیستم‌های قانون‌گرای خبره‌ی مشهور‌، PROSPECTOR  (‌برای ارزیابی مکان‌های معدنی دارای استعداد برای استخراج‌) می‌باشد.

 

 سیستم خبره‌ی دیگر، R1 (كه XCON‌‌ هم ناميده شده است)، برای برّرسی‌، کامل کردن و پیکربندی تقاضاهای تجهیزات کامپیوتری مشتری‌ می‌باشد‌.

PUFF، یکی دیگر از سیستم‌های خبره می‌باشد که در پزشکی، برای فهمیدن وضعیّت‌های تنفّسی، از آن استفاده می‌شود:

 

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

چکیده‌ی مطلب‌های فصل نوزدهم

سیستم‌های خبره، برنامه‌هایی طرّاحی شده برای مدلسازی و استدلال در مورد دانش انسان می‌باشند.

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

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



 

 

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

 

مترجم: سهراب جلوه گر جلوه‌گر

 

فصل الگوریتم‌های ژنتیکی

 

توجّه:      

برای یادگیری بهتر مطلب‌های این فصل بهتر است قسمت «الگوریتم‌های ژنتیکی» موجود در فصل «الگوریتم‌های جستجوی محلّی» همین کتاب الکترونیکی را هم بخوانید.

فهرست برخی از عنوان‌های نوشته‌ها

تاریخچه

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

تکامل‌ در دنیای واقعی

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

گوناگونی‌های زیاد الگوریتم‌های ژنتیکی

کاربردهای الگوریتم‌های ژنتیکی

تئوری تکاملی داروین(باقی ماندن شایسته‌ترین  یا مناسب‌ترین)

 

هِربِرت سپِنسِر

        این تئوری به وسیله‌ی هِرْبِرْتْ سْپِنْسِرْ  و چارْلْزْ رابِرْتْ دارْوینْ  به وجود آمد. این تئوری می‌گوید‌: گونه‌هایی باقی می‌مانند که می‌توانند بر مشکلات‌ غلبه کنند.      

چارلز داروین

 

شکل بالا- این شکل بیان کننده‌ی نظریّه‌ی تکامل در انسان است.

تاریخچه

 

جان هِنری هالِند  الگوریتم‌های ژنتیکی در دهه‌ی هفتاد میلادی‌ به وسیله‌ی جانْ هِنْری هالِنْدْ ‌ بیان شد‌؛ در دهه‌ی هشتاد میلادی‌ عمومیّت یافت و براساس تئوری تکاملی داروین(باقی ماندن شایسته‌ترین یا مناسب‌ترین) بود‌. الگوریتم‌های ژنتیکی‌ می‌توانند برای حلّ انواعی از مسأله‌ها که با استفاده از روش‌های دیگر‌، برای حل‌، آسان نمی‌باشند، مورد استفاده قرار گیرند‌.

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

 تعریف اوّل- یک الگوریتم جستجو که رشته‌های دودویی بهینه را با پردازش یک جمعیّت اولیّه‌ی تصادفی از رشته‌ها‌، با استفاده از جهش مصنوعی، عمل تعویض  و عملگرهای انتخاب تولید می‌کند. (گُلْدْبِرْگْ ، 1989 ميلادي).

 تعریف دوّم- یک الگوریتم تکاملی‌ که هر فرد(راه حل) را با استفاده از برخی فرم‌های رمزشده‌، که کُرُوموزوم  یا ژِنوم، نامیده می‌شوند‌، به وجود می‌آورد.

تکامل‌ در دنیای واقعی

هر سلّول  یک موجود زنده‌ دارای یک هسته  است؛ و در هسته،  کروموزوم‌هایی وجود دارد‌؛ هر کروموزوم‌، شامل یک مجموعه از ژِنْ ‌ها می‌باشد‌؛ هر ژن‌ برخی از ویژگی‌های(خواصّ) موجود زنده (مانند رنگ چشم) را تعیین می‌کند‌. یک مجموعه از ژن‌ها‌ در برخی از موردها‌ ژِنوتیپ(ژِنوتایپ) ‌ نامیده می‌شود‌. یک مجموعه از ویژگی‌ها (نظیر رنگ چشم)، گاهی فِنوتیپ(فِنوتایپ)  نامیده می‌شود‌. انتشار(زاد و ولد)‌، شامل جفت‌گیری  ژن‌هاي والدین و سپس‌ مقدار کوچکی‌ جهش ‌ می‌باشد‌. تکامل‌ براساس «بقای مناسب‌ترین یا شایسته‌ترین» می‌باشد‌.

 

شکل بالا- سلّول، هسته، کروموزوم و ژن

 

شکل بالا- کروموزوم واقعی در زیر میکروسکوپ

 

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

شروع‌ با یک تصوّر

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

یک راه حلّ گنگ

 یک الگوریتم «تولید و تست گنگ»‌:

تکرار کن

        یک راه حلّ ممکن تصادفی را تولید کن

        راه حل‌ را امتحان کن و خوب بودن آن را بسنج

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

پایان الگوریتم

آیا ما می‌توانیم از این ایده‌ی گنگ‌ استفاده نماییم‌؟

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

ایده‌ای که کم‌تر دارای گنگ بودن می‌باشد (الگوریتم ژنتیکی)

  الگوریتم

یک مجموعه‌ی تصادفی از راه حل‌ها را تولید نمایید

تکرارکن

        هر راه حلّ موجود در مجموعه را امتحان کن و آنها را رُتبه‌بندی کن

        برخی از راه حل‌های بد را از مجموعه بَردار

        برخی از راه حل‌های خوب را تکثیر(زیاد) کن

                برخی از تغییرات کوچک را در مورد آنها به کار بِبَر

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

پایان الگوریتم

چگونه شما یک راه حل را کد می‌کنید‌؟

 بدیهی است که این‌، وابسته به مسأله می‌باشد‌! الگوریتم‌های ژنتیکی‌ اغلب،‌ راه حل‌ها را به صورت رشته‌های بیتیِ  باطول ثابت(ژنوتیپ یا کروموزوم)‌ کد می‌کنند (به عنوان مثال‌، 101110‌، 111111‌، 000101)‌؛ هر بیت(ژن)‌، برخی از ویژگی‌های راه حل‌های ارائه شده برای مسأله را بیان می‌کند‌. برای اینکه الگوریتم‌های ژنتیکی‌ کار کنند‌، نیاز به این داریم که هر رشته را تست نماییم و به آن‌ امتیازی بدهیم که نشان دهنده‌ی چگونگی خوب بودن آن باشد‌.

 مثال – حَفر برای نفت

 

شکل بالا- تصویری از یک چاه نفت

تصوّر کنید که شما باید برای نفت‌، جایی را در طول یک جادّه‌ی بیابانی یک کیلومتری‌ حفر نمایید‌.

مسأله‌: بهترین مکان در جادّه را که بیش‌ترین مقدار نفت را در روز‌ تولید می‌کند‌، انتخاب نمایید.

می‌توانیم هر راه حل را به صورت یک وضعیّت در جادّه نمایش دهیم‌. تصوّر نمایید که تمام اعداد‌، بین [1000، 0‌]‌ باشند‌.

کجا را برای نفت‌ حفر نماییم‌؟ 

 

مجموعه‌ی همه‌ی راه حل‌های ممکن [1000،0]‌، فضای جستجو یا فضای حالت‌ نام دارد‌. در این مورد‌ این فقط یک عدد است؛ امّا می‌تواند تعداد زیادی عدد یا سمبل باشد‌. همان طور که گفتیم، اغلب‌، الگوریتم‌های ژنتیکی، اعداد را به صورت دودویی(باینری)‌ کد می‌کنند‌. در مورد این مثال‌، ده بیت را، که برای نمایش 0‌ ... 1000‌ کافی است، انتخاب می‌نماییم‌.

تبدیل به رشته‌ی باینری

1      2      4      8      16    32    64    128   256   512  

0      0      1      0      0      0      0      1      1      1      900

0      0      1      1      0      1      0      0      1      0      300

1      1      1      1      1      1      1      1      1      1      1023

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

 

خلاصه

تا‌کنون دیدیم که چگونه راه حل‌ها را به صورت یک عدد‌ بیان نماییم‌؛ یک عدد را به صورت یک رشته‌ی بیتی‌ کد کردیم‌. یک رتبه یا درجه را برای هر عدد داده شده‌، به منظور تعیین میزان خوب بودن آن راه‌، به آن عدد‌ نسبت می‌دهیم که اغلب‌ تابع شایستگی ‌ نامیده می‌شود‌؛ در شکل قبلی، این اعداد برای دو راه حلّ 1 و 2، به رنگ قرمز نشان داده شده‌اند(عددهای 30 و 5). مثال نفت‌ در واقع‌ بهینه‌سازی با استفاده از یک تابع f(x) است، که ما باید پارامتر x را تطبیق دهیم‌.

فضای جستجو

برای یک تابع ساده‌ی f(x)‌، فضای جستجو یک بعدی است‌، امّا با کد کردن چند مقدار به کروموزوم‌، ابعاد زیادی می‌تواند به وجود آید‌؛ به عنوان مثال‌، برای حالت دو بعدی‌، تابع f‌، به صورت f(x,y) خواهد بود‌‌. فضای جستجو‌ می‌تواند به صورت یک سطح باشد‌، که در آن، هر چه شایستگی بیش‌تر باشد، ارتفاع نقطه بیش‌تر است. هر ژنوتایپ(کروموزوم یا راه حلّ) ممکن‌، یک نقطه در فضا است. یک الگوریتم ژنتیکی‌ تلاش می‌کند که نقطه‌ها را به جاهای بهتر(‌با شایستگی بالاتر‌)، در فضا، منتقل نماید‌. در زیر‌، سه نمونه از منظره‌های شایستگی را مشاهده می‌نماییم‌:

         

         

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

اضافه کردن جنسیّت‌- عمل تعویض

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

 مطلب مهم:      

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

انتخاب والدها

روش‌های زیادی برای انتخاب کروموزوم‌های با امتیاز بهتر‌ وجود دارد‌. امتیاز‌، اغلب‌، شایستگی ‌  نامیده می‌شود‌. [برای این کار] از روش «چَرخِشِ رولِت» ‌ می‌توان به صورت زیر‌ استفاده نمود‌:

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

-       یک عدد تصادفی R را، در محدوده‌ی آن(حاصل‌جمع)‌، به وجود آورید‌.

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

 

توجّه:      

        قسمت زیر دارای ارتباط بین رنگ‌ها هم هست.

جمعیّت نمونه

شماره       کروموزوم     شایستگی

1      1010011010      1

2      1111100001      2

3      1011001100      3

4      1010000000      1

5      0000010000      3

6      1001011111      5

7      0101010101      1

8      1011100111      2

توجّه کنید که، جمع کلّّ شایستگی‌ها برابر است با: 1+2+3+1+3+5+1+2 = 18

انتخاب والدها با استفاده از روش چرخش رولت(برای جدول قبلی)

 

در شکل بالا توجّه کنید که جمع کلّ شایستگی‌ها برابر است با: 1+2+3+1+3+5+1+2 = 18 و به همین خاطر محدوده از صفر تا 18 در نظر گرفته شده است.

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

 

شکل بالا- صفحه‌ی بازی چرخش رولت

تعویض(‌جفت‌گیری‌)

برای کروموزوم‌های شماره‌ی4(1010000000) و 6(1001011111)، که در قسمت قبل انتخاب کردیم، نقطه‌ی تعویض را به صورت تصادفی برابر با 3 در نظر می‌گیریم؛ داریم:

 

جهش

یک یا بیش‌تر ژن‌(بیت)، به صورت تصادفی‌، به یک مقدار تصادفی‌، جهش داده می‌شوند‌، مثلاً‌:

(بعد از انجام عمل جهش)1101011111    1111111111(قبل از انجام عمل جهش)

 در مورد مثال قبلی‌، داریم‌:

 

توجّه:      

        پایان قسمت دارای ارتباط بین رنگ‌ها!

 

برگشت به الگوریتم ژنتیکی [و تکمیل آن]

  الگوریتم

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

برای هر نسل‌ کارهای زیر را انجام بده

        شایستگی هر کروموزوم را محاسبه کن

                کارهای زیر را تکرار کن

                        انتخاب رولت را برای انتخاب جفت‌های والدها به کار ببر

                        فرزند را با استفاده از انجام عمل تعویض و جهش‌ تولید نما

                تا زمانی که جمعیّت جدید‌ تولید شود

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

پایان الگوریتم

گوناگونی‌های زیاد الگوریتم‌های ژنتیکی

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

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

       تفاوت در جفت‌گیری(تعویض)‌؛ مثل‌ روش تعویض چند نقطه‌ای‌.

       انواع مختلف کد کردن رشته‌ی بیتی‌

       انواع مختلف جهش

تعویض‌ چگونه کار می‌کند‌؟

تعداد زیادی نظریّه در این مورد‌ وجود دارد‌، البتّه‌ برخی مخالفت‌ها هم با این نظریّه‌ها وجود دارد‌؛ هالِند‌ نظریّه‌ی «‌الگو» را معرّفی کرد‌؛ این ایده می‌گوید که، تعویض‌، بیت‌های خوب والدین مختلف را نگهداری می‌کند و آنها را برای تولید راه حل‌های بهتر‌ ترکیب می‌نماید‌؛ بنابراین‌ یک الگوی خوب کد کننده‌ باید بیت‌های خوب را در طول تعویض و جهش‌ نگهداری نماید‌.

کاربردهای الگوریتم‌های ژنتیکی

الگوریتم‌های ژنتیکی‌ در بسیاری از موردها و زمینه‌های پژوهشی‌، نظیر مسأله‌های عددی‌؛ مسأله‌ی مسافرت شخص دوره گرد ‌؛ مدار(دُوْر) هَمیلتُونی ‌؛ پیدا کردن شکل مولکول‌های پروتئین‌؛ مسأله‌های NP-سخت‌؛ طرّاحی شبکه‌های عصبی‌؛ توابع، برای به وجود آوردن تصاویر‌؛ مدلسازی شناختی؛ و تئوری بازی‌ها‌ به کار می‌روند‌.

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

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

 

شکل بالا- دکتر، جان کوزا

 

 

چکیده‌ی مطلب‌های فصل هیجدهم

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

الگوریتم‌های ژنتیکی‌، اغلب‌، راه حل‌ها را به صورت رشته‌های بیتی باطول ثابت(ژنوتیپ یا کروموزوم)‌ کد می‌کنند؛ هر بیت(ژن)‌، برخی از ویژگی‌های راه حل‌های ارائه شده برای مسأله را ارائه می‌کند‌. برای اینکه الگوریتم‌های ژنتیکی‌ کار کنند‌، نیاز به این داریم که هر رشته را تست نماییم و به آن‌ امتیازی بدهیم که نشان دهنده‌ی چگونگی خوب بودن آن باشد‌.

در الگوریتم‌های ژنتیکی، جفت‌گیری(recombination)، همان تعویض(crossover) می‌باشد.

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

یکی از روش‌های انتخاب کروموزوم‌های با امتیاز بهتر، روش چرخش رولت است.



 

 

██ متن فصل هفدهم نسخه‌ی رایگان ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

فصل شبکه‌های عصبی

 

فهرست برخی از عنوان‌های نوشته‌ها

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

زیست‌شناسی و علم کامپیوتر

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

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

پِرْسِـپْتْرونِ (تک لایه‌ای)

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

طبقه‌بندی‌ با استفاده از شبکه‌های عصبی

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

شبکه‌های عصبی برگشت کننده

 

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

 تعریف اوّل- سیستمی که از برنامه‌ها و پایگاه‌های داده‌ای که شامل چند پردازشگر موازی هستند‌، تشکیل شده است و عملیّات مغز انسان را شبیه‌سازی می‌کند.

 تعریف دوّم– یک سیستم کامپیوتری‌ که از روی مغز انسان و سیستم عصبی مدلسازی شده است.

زیست‌شناسی و علم کامپیوتر

مغز انسان به نظر نمی‌رسد که دارای یک واحد پردازنده‌ی مرکزی  باشد.

 

 

سه شکل بالا- مغز انسان

در عوض دارای تعداد زیادی واحدهای ساده، ناهمزمان  و موازی  به نام نورُون  است. مغزانسان دارای تقریباً 1011 نورون می‌باشد. نورون‌ها دارای درحدود بیست نوع هستند.

 

شکل بالا- نورون

هر نورون یک سلّول تکی است که دارای تعدادی لیف(فیبر) ‌های نسبتاً کوتاه به نام دِنْدْریْتْ(دَنْدْریْتْ یا دِنْدْرایْتْ)  است. یکی از دندریت‌ها، که بزرگ‌تر از بقیّه است، آکسون ‌ نام دارد. انتهای آکسون به تعداد زیادی لیف‌های کوچک تقسیم می‌شود. هر لیف، دندریت‌ها و بدنه‌های سلّولی دیگر نورون‌ها را وصل می‌کند. اتّصال، در واقع فاصله ‌ای کوتاه به نام سیناپْس  است. آکسون‌ها حمل‌کننده  هستند و دندریت‌ها دریافت‌کننده  هستند. در حدود 1014 اتّصال وجود دارد.

 

شکل بالا- نورون‌ها

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

 

شکل بالا- نورون

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

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

1-     گره‌های ورودی

2-     گره‌های خروجی

3-     گره‌های پنهان (که در پِرسِپترون‌های چندلایه‌ای وجود دارند.)

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

1-     شبکه‌های با تغذیه‌ی مستقیم ‌: در این شبکه‌ها علامت(‌سیگنال‌)‌ها در یک جهت حرکت می‌کنند و بدون دُوْرْ(سیکل یا حلقه) می‌باشند‌.

 

شکل بالا- نمونه‌ای از شبکه‌های با تغذیه‌ی مستقیم

2-     شبکه‌های بازگشت کننده ‌: در این شبکه‌ها، در انتشار علامت(‌سیگنال‌)‌ دُوْرْ(سیکل یا حلقه) وجود دارد‌.

 

شکل بالا- نمونه‌ای از شبکه‌های بازگشت کننده

ما بیش‌تر‌ روی شبکه‌های با تغذیه‌ی مستقیم‌ تمرکز می‌نماییم‌.

پِرْسِپْتْرُونِ  (تک لایه‌ای)

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

 

در شکل قبل، Xiها، ورودی‌های پرسپترون هستند. Wiها، وزن‌ها هستند؛ از W0، به عنوان شروع کننده(آستانه) ، با X0 برابر با منفی یک استفاده می‌شود. in، در مرحله‌ی فعّال‌سازی، جمع ورودی‌ها و آستانه است. g، تابع فعّال‌سازی است. a، فعّال‌سازی یا خروجی است. خروجی با استفاده از یک تابع، که تشخیص می‌دهد تا کجا سطح فعّال‌سازی پرسپترون، بالا یا پایین صفر است، محاسبه می‌شود.

پرسپترون، a = g(in) = g(X.W) را محاسبه می‌نماید:

X.W = w0*-1 + w1*x1 + w2*x2 + … + wn*xn

g، معمولاً تابع آستانه است و داریم: اگر z > 0 باشد، g(z) برابر با یک است و در غیر این صورت برابر با صفر است.

 نکته:

پرسپترون می‌تواند به صورت یک دروازه‌ی منطقی  عمل کند؛ که مقدار «یک»، «درست» و مقدار «صفر یا منفی یک»، «غلط» است.

 مثال تغذیه‌ی مستقیم

 

 

 

 مثال- تابع(دروازه‌ی) منطقی AND

 

شکل بالا- در شکل بالا توجّه نمایید که x و y هرکدام دارای مقدارهای 1 یا 0 می‌توانند باشند.

x       y      x+y-1.5     خروجی

1      1      0.5   1

1      0      -0.5  0

0      1      -0.5  0

0      0      -1.5  0

 مثال- تابع منطقی OR

 

شکل بالا- در شکل بالا توجّه نمایید که x و y هرکدام دارای مقدارهای 1 یا 0 می‌توانند باشند.

x       y      x+y-0.5     خروجی

1      1      1.5   1

1      0      0.5   1

0      1      0.5   1

0      0      -0.5  0

 مثال- تابع منطقی NOT

 

شکل بالا- در شکل بالا توجّه نمایید که x دارای مقدارهای 1 یا 0 می‌تواند باشد.

x       0.5 - x       خروجی

1      -0.5  0

0      0.5   1

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

 مطلب مهم:      

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

 مثال- تابع AND به صورت خطّی جدا شدنی است.

 

 توضیح:     

در شکل بالا نقطه‌ی مثبت نقطه‌ای است که مقدار تابع به ازای آن(x1,x2) یک می‌شود و نقطه‌های منفی نقطه‌هایی هستند که به ازای آنها(x1,x2) مقدار تابع صفر می‌شود و  نقطه‌ی مثبت و نقطه‌های منفی در شکل بالا به وسیله‌ی یک خطّ مستقیم قابل جدا شدن هستند.

 مثال- تابع OR به صورت خطّی جدا شدنی است.

 

 مثال- تابع XOR به صورت خطّی جدا شدنی نیست.

 

 توضیح:     

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

طبقه‌بندی‌ با استفاده از شبکه‌های عصبی

شبکه‌های عصبی،‌ طبقه‌بندی را هم‌ خیلی خوب انجام می‌دهند‌؛ ورودی‌ها را به یک یا بیش‌تر‌ خروجی‌ تبدیل می‌نمایند و دامنه‌ی خروجی‌ به کلاس‌هایی مجزّا تقسیم می‌شود و برای کارهای یادگیری‌، در جایی که نمی‌دانیم «‌در جستجوی چه هستیم»‌، خیلی مفید می‌باشند‌، مثل‌: صورتْ‌شناسی ‌، دست‌خط‌شناسی  و رانندگی یک خودرو‌.

 

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

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

 

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

شبکه‌های عصبی برگشت کننده

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

 

شبکه‌های هاپْفیلد

 

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

 

 

 

شکل بالا- نمونه‌ای از یک شبکه‌ی هاپفیلد

 

 

چکیده‌ی مطلب‌های فصل هفدهم

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

دو نوع شبکه‌ی عصبی داریم: یکی شبکه‌های با تغذیه‌ی مستقیم، که در این شبکه‌ها، علامت(‌سیگنال‌)‌ها در یک جهت حرکت می‌کنند و بدون دُوْرْ(سیکل) می‌باشند‌؛ و دیگری شبکه‌های بازگشت کننده، که در این شبکه‌ها، در انتشار علامت(‌سیگنال‌)‌، دُوْرْ(سیکل) وجود دارد‌‌؛ در این شبکه‌ها دست‌کم یکی از خروجی‌ها‌ به یکی از ورودی‌ها‌ متّصل شده‌ است‌.

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

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

پرسپترون‌ها[ی تک لایه‌ای]‌ دارای این مزیّت هستند که یک الگوریتم یادگیری ساده دارند‌؛ ولی عیب آنها در این است که دارای محدودیّت‌های محاسباتی هستند‌. اگر ما یک لایه‌ی مخفی‌ اضافه نماییم‌، به عبارتی دیگر، پرسپترون چند لایه‌ای با یک لایه‌ی پنهان بسازیم، توان محاسباتی‌ افزایش می‌یابد‌؛ با یک لایه‌ی پنهان‌ [پرسپترون] می‌تواند هر تابع پیوسته را نمایش دهد و با دو لایه‌ی پنهان(پرسپترون چند لایه‌ای با دو لایه‌ی پنهان)‌ می‌تواند هر تابعی را نمایش دهد.



 

 

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

 

مترجم: سهراب جلوه گر جلوه‌گر

 

فصل شناخت سُخَن یا سخن‌شناسی

 

فهرست برخی از عنوان‌های نوشته‌ها

سخن‌شناسی

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

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

 

سخن‌شناسی

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

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

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

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

سیگنال‌های سخن‌، پارازیت‌دار(اغتشاش‌دار) ‌، متغیّر و مبهم  می‌باشند‌؛ [در این صورت] شبیه‌ترین ترتیب کلمات و سیگنال سخن ارائه شده چیست‌؟‌، برای این کار‌ از قانون بیز‌ استفاده نمایید‌:

P(Words|signal) = αP(signal|Words)P(Words)

تمام سخنان انسان‌ ترکیبی از 40 تا 50 صُوْتْ  می‌باشد‌. آرْپابِتْ ، الفبایی برای بیان صداهای موجود در انگلیسی آمریکایی می‌باشد و به صورت زیر است‌:

[iy]   beat  [b]    bet    [p]    pet

[ih]   bit     [ch]  Chet  [r]     rat

[ey]  bet    [d]    debt  [s]    set

[ao]  bought      [hh]  hat    [th]   thick

[ow]  boat  [hv]  high  [dh]  that

[er]   Bert  [l]     let     [w]   wet

[ix]    roses[ng]  sing  [en]  button

 

برای مثال‌، برای کلمه‌ی «‌ceiling‌‌« داریم‌: [s iy l ih ng] / [s iy l ix ng] / [s iy l en]

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

 

صوت‌های سه بخشی ‌: هر صوت‌ دارای سه بخش می‌باشد(آغاز ‌، وسط ‌ و پایان ‌)‌، به عنوان مثال‌، حرف [t]‌، دارای ابتدای آرام ‌، وسط قوی   و انتهای خَشِنْ  می‌باشد‌.

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

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

 

چکیده‌ی مطلب‌های فصل شانزدهم

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

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



 

 

██ متن فصل اوّل نسخه‌ی رایگان ایبوک هوش مصنوعی ██

 

مترجم: سهراب جلوه گر جلوه‌گر

 

 

فصل آشنايي با هوش مصنوعی

 

فهرست برخی از عنوان‌های نوشته‌ها(رئوس مطالب)

هوش مصنوعی چیست؟

چرا هوش مصنوعی را مطالعه می‌کنیم‌؟

مقایسه‌ی هوش انسانی و هوش کامپیوتری

پژوهش در زمینه‌ی هوش مصنوعی از چه زمانی شروع شد؟

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

آیا هدف هوش مصنوعی در سطح هوش انسانی است‌؟

هوش مصنوعی تا رسیدن به سطح هوش انسانی چقدر فاصله دارد؟؛ چه هنگام این موضوع روی خواهد داد؟

آیا کامپیوترها ماشین مناسبی برای پیاده‌سازی هوش مصنوعی هستند؟

آیا کامپیوترها برای هوشمند شدن، به اندازه‌کافی، سریع هستند؟

فرزند ماشینی

توضیحی در مورد چند بازی

آیا برخی از افراد نمی‌گویند که، «هوش مصنوعی ایده‌ی بدی است.»؟

هوش مصنوعی ضعیف

هوش مصنوعی قوی‌

آیا تئوری‌های «قابلیّت محاسبه» و «پیچیدگی محاسباتی» روش‌هایی کلیدی برای هوش مصنوعی نمی‌باشند؟

مسأله‌های NP