هوش مصنوعی | Artificial Intelligence

 

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

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

نظریه تورینگ:

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

تست تورینگ:

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

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

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

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

پردازش زبان طبیعی

پردازش زبان طبیعی (Natural Language Processing) یکی از حوزه‌های علوم کامپیوتر، هوش مصنوعی و زبانشناسی است که به تعامل کامپیوتر و زیان انسان (طبیعی) می‌پردازد. از این منظر پردازش زبان طبیعی به حوزه تعامل انسان-کامپیوتر مربوط می‌شود. بسیاری از چالش‌های پردازش زبان طبیعی به درک زبان طبیعی مربوط می‌شود – یعنی ایجاد توانایی در کامپیوتر برای استخراج مفهوم ورودی زیان انسانی یا طبیعی.
با وجود فعالیت‌های قدیمی‌تر، تاریخچه پردازش زبان طبیعی عموما در دهه ۱۹۵۰ آغاز شد. در سال ۱۹۵۰ آلن تورینگ مقاله‌ای را با عنوان «هوش و دستگاه محاسباتی» منتشر و در آن، آنچه را امروز به تست تورینگ موسوم است، به عنوان ابزاری برای هوش معرفی کرده بود.

روباتیک

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

سیستم‌های خبره
در هوش مصنوعی، یک سیستم خبره (Expert System) یک سیستم کامپیوتری است که توانایی تصمیم‌سازی یک انسان خبره را شبیه‌سازی می‌کند. سیستم‌های خبره برای حل مشکلات پیچیده از طریق استنتاج در دانش خبرگی همانند یک انسان خبره است نه پیروی از دستورالعمل‌های برنامه‌نویس، آن‌طور که در برنامه‌های معمولی است. اولین سیستم‌های خبره در دهه ۱۹۷۰ ایجاد شدند و در دهه ۱۹۸۰ توسعه یافتند. سیستم‌های خبره از اولین اشکال واقعا موفق نرم‌افزارهای هوش مصنوعی بودند.
سیستم خبره یک ساختار خاص، متفاوت از برنامه‌های کامپیوتری متداول است و به دو بخش تقسیم می‌شود؛ یک بخش ثابت، مستقل از سیستم خبره: موتور استنتاج و یک بخش متغیر: پایگاه دانش. در اجرای سیستم خبره، موتور همانند یک انسان بر اساس پایگاه دانش، استدلال می‌کند. در دهه ۸۰ بخش سومی هم ظاهر شد: رابط مکالمه برای ارتباط با کاربران. این توانایی برای مکالمه با کاربران بعدها به مکالمه‌ای شهرت یافت.

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

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

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

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

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

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

بینایی ماشین

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

تنسورفلو در هوش مصنوعی

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

  • آشنایی با رایانش کوانتومی

آشنایی با رایانش کوانتومی

سه شنبه ۲۴ مهر ۱۳۹۷ - ساعت ۱۲:۰۰
  • آموزش ماشین های یادگیری افراطی (ELMs) با هوش مصنوعی (AI)

آموزش ماشین های یادگیری افراطی (ELMs) با هوش مصنوعی (AI)

جمعه ۲۰ مهر ۱۳۹۷ - ساعت ۰۷:۰۰
  • آموزش جنبه تجاری هوش مصنوعی (AI) در علم داده

آموزش جنبه تجاری هوش مصنوعی (AI) در علم داده

جمعه ۲۰ مهر ۱۳۹۷ - ساعت ۰۵:۰۰
  • آموزش پروژه محور یادگیری ماشینی تحت نظارت با R

آموزش پروژه محور یادگیری ماشینی تحت نظارت با R

چهارشنبه ۱۸ مهر ۱۳۹۷ - ساعت ۰۳:۰۰
  • آموزش داده کاوی متن با پایتون و یادگیری ماشینی

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

چهارشنبه ۱۸ مهر ۱۳۹۷ - ساعت ۰۱:۰۰
  • آموزش مشکلات بینایی رایانه ای با معماری های یادگیری عمیق، MXNet و ماشین های مجازی GPU 

آموزش مشکلات بینایی رایانه ای با معماری های یادگیری عمیق، MXNet و ماشین های مجازی GPU 

جمعه ۱۳ مهر ۱۳۹۷ - ساعت ۰۲:۰۰
  • آموزش هوش مصنوعی با پایتون – شبکه های عصبی عمیق

آموزش هوش مصنوعی با پایتون – شبکه های عصبی عمیق

چهارشنبه ۱۱ مهر ۱۳۹۷ - ساعت ۱۶:۰۰
  • آموزش استفاده از Scikit-learn برای یادگیری ماشینی

آموزش استفاده از Scikit-learn برای یادگیری ماشینی

چهارشنبه ۱۱ مهر ۱۳۹۷ - ساعت ۰۴:۰۰
  • آموزش یادگیری تقویتی با تنسورفلو

آموزش یادگیری تقویتی با تنسورفلو

سه شنبه ۱۰ مهر ۱۳۹۷ - ساعت ۱۸:۰۰
  • آموزش تحلیل پیش بینی با TensorFlow

آموزش تحلیل پیش بینی با TensorFlow

یکشنبه ۰۸ مهر ۱۳۹۷ - ساعت ۰۲:۰۰
  • آموزش تسلط بر پردازش زبان طبییعی با پایتون

آموزش تسلط بر پردازش زبان طبییعی با پایتون

پنج شنبه ۰۵ مهر ۱۳۹۷ - ساعت ۱۹:۰۰
  • آموزش پروژه های پیشرفته بینایی کامپوتری

آموزش پروژه های پیشرفته بینایی کامپوتری

سه شنبه ۰۳ مهر ۱۳۹۷ - ساعت ۲۳:۰۰
  • آموزش پروژه های دنیای واقعی یادگیری ماشینی با Scikit-Learn

آموزش پروژه های دنیای واقعی یادگیری ماشینی با Scikit-Learn

سه شنبه ۰۳ مهر ۱۳۹۷ - ساعت ۰۹:۰۰
  • آموزش یادگیری ماشینی تحت نظارت با پایتون

آموزش یادگیری ماشینی تحت نظارت با پایتون

دوشنبه ۰۲ مهر ۱۳۹۷ - ساعت ۲۳:۰۰
  • آموزش یادگیری عمیق با Caffe2 

آموزش یادگیری عمیق با Caffe2 

دوشنبه ۰۲ مهر ۱۳۹۷ - ساعت ۱۹:۰۰
  • آموزش بهبود یادگیری ماشینی با مدل های یادگیری مداوم

آموزش بهبود یادگیری ماشینی با مدل های یادگیری مداوم

جمعه ۳۰ شهریور ۱۳۹۷ - ساعت ۰۷:۰۰
  • آموزش سفارش سازی مدل های یادگیری عمیق برای راه حل های جدید بینایی رایانه ای

آموزش سفارش سازی مدل های یادگیری عمیق برای راه حل های جدید بینایی رایانه ای

پنج شنبه ۲۹ شهریور ۱۳۹۷ - ساعت ۱۱:۰۰
  • آموزش ویژگی های پردازش زبان طبیعی (NLP) برای پروژه های علم داده

آموزش ویژگی های پردازش زبان طبیعی (NLP) برای پروژه های علم داده

دوشنبه ۲۶ شهریور ۱۳۹۷ - ساعت ۰۵:۰۰
  • آموزش ایمنی هوش مصنوعی

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

دوشنبه ۲۶ شهریور ۱۳۹۷ - ساعت ۰۳:۰۰
  • آموزش Data Wrangling با Pandas برای مهندسان یادگیری ماشینی

آموزش Data Wrangling با Pandas برای مهندسان یادگیری ماشینی

سه شنبه ۲۰ شهریور ۱۳۹۷ - ساعت ۱۶:۰۰
  • آموزش مدل سازی طبقه بندی در یادگیری ماشینی و AI

آموزش مدل سازی طبقه بندی در یادگیری ماشینی و AI

دوشنبه ۱۹ شهریور ۱۳۹۷ - ساعت ۰۵:۰۰