شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

مبانی هوش مصنوعی - بررسی اجمالی

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

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

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

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

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

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

فلسفه‌ی هوش مصنوعی

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

اهداف هوش مصنوعی

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

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

عوامل کلیدی موفقیت هوش مصنوعی:

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

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

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

- ریاضیات: شامل آمار، منطق، بهینه‌سازی و نظریه احتمالات.

- مهندسی: شامل مهندسی نرم‌افزار، مهندسی سخت‌افزار و مهندسی سیستم‌ها. 

- زیست‌شناسی: شامل علوم اعصاب و مدل‌سازی سیستم عصبی.

- روان‌شناسی: شامل شناخت و فرایندهای ذهنی انسان.

- زبان‌شناسی: شامل پردازش زبان طبیعی و تحلیل متن.

- فلسفه: شامل منطق و استدلال.

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

اجزای هوش مصنوعی

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

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

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

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

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

تغییر در یک برنامه کامپیوتری اغلب سریع و آسان نیست تغییر در یک برنامه کامپیوتری اغلب سریع و آسان است.

الگوریتم‌ها و تکنیک‌های کلیدی در هوش مصنوعی چیست؟

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

  •  حجم دانش بشر بسیار زیاد و درک آن دشوار است.
  • دانش انسانی فاقد سازمان‌دهی و نظم مناسبی است. 
  • دانش به طور مداوم در حال تغییر و تحول است.

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

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

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

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

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

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

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

  • پردازش زبان طبیعی (Natural Language Processing) − یکی دیگر از کاربردهای هوش مصنوعی، پردازش زبان طبیعی است. پردازش زبان طبیعی به ماشین‌ها این قابلیت را می‌دهد که بتوانند زبان گفتاری و نوشتاری انسان را درک و تفسیر کنند. با پردازش زبان طبیعی، امکان برقراری ارتباط و تعامل به زبان طبیعی انسان و ماشین فراهم می‌شود.

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

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

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

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

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

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

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

در ادامه، تاریخچه هوش مصنوعی در طول قرن بیستم را مشاهده می‌کنید:

سال بانک اطلاعات/نوآوری
۱۹۲۳

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

۱۹۴۳

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

۱۹۴۵

 ایزاک آسیموف، نویسنده مشهور علمی-تخیلی و استاد دانشگاه بوستون، واژهٔ «رباتیک» (robotics) را در دههٔ 1940 میلادی ابداع کرد. وی فارغ‌التحصیل رشتهٔ شیمی از دانشگاه کلمبیا بود و پس از آن به نویسندگی و تدریس علوم پرداخت. آسیموف واژهٔ رباتیک را برای توصیف مطالعهٔ علمی ربات‌ها ابداع کرد.

۱۹۵۰

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

- کلود مقاله‌ای درباره تجزیه و تحلیل دقیق بازی شطرنج به عنوان یک مسئله جستجو منتشر کرد.

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

۱۹۵۶

جان مک‌کارتی اصطلاح "هوش مصنوعی" را ابداع می‌کند. نمایش اولین برنامه‌ی عملی هوش مصنوعی در دانشگاه کارنگی ملون.

۱۹۵۸

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

۱۹۶۴

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

۱۹۶۵

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

۱۹۶۹

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

۱۹۷۳

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

۱۹۷۹

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

۱۹۸۵

هارولد کوهن برنامه‌ی نقاشی "آرون" را ایجاد و نمایش می‌دهد.

۱۹۹۰

پیشرفت‌های قابل توجهی در تمام حوزه‌های هوش مصنوعی −

  • نمونه‌برداری در یادگیری ماشین
  • استدلال بر پایه‌ی مورد
  • برنامه‌ریزی چندعاملی
  • زمانبندی
  • استخراج داده، پویاگری وب
  • فهم و ترجمه زبان طبیعی
  • بینایی، واقعیت مجازی
  • بازی‌ها
۱۹۹۷

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

۲۰۰۰

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