هوش مصنوعی | 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 لایه مخفی ایجاد کنیم. ما می توانیم از آن برای تشخیص تصویر، تشخیص شی و مشکلات طبقه بندی مختلف استفاده کنیم.

  • آموزش یادگیری ماشینی با OpenCV

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

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

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

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

آموزش توسعه اپلیکیشن های NLP با NLTK در پایتون

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

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

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

آموزش کنترلر کاراکتر بازی و هوش مصنوعی با Unity

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

آموزش رگرسیون خطی در یادگیری ماشینی و هوش مصنوعی

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

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

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

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

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

آموزش شبکه های عصبی و شبکه‌های عصبی پیچشی

دوشنبه ۱۴ خرداد ۱۳۹۷ - ساعت ۲۳:۰۰
  • خوشه بندی و  Association در یادگیری ماشینی و هوش مصنوعی 

خوشه بندی و  Association در یادگیری ماشینی و هوش مصنوعی 

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

آموزش مراحل یادگیری ماشینی AWS

یکشنبه ۱۳ خرداد ۱۳۹۷ - ساعت ۰۵:۰۰
  • آموزش UX برای صدا – برنامه ریزی و پیاده سازی

آموزش UX برای صدا – برنامه ریزی و پیاده سازی

جمعه ۱۱ خرداد ۱۳۹۷ - ساعت ۱۵:۰۰
  • آموزش یادگیری ماشینی با Core ML در iOS 11 

آموزش یادگیری ماشینی با Core ML در iOS 11 

پنج شنبه ۰۳ خرداد ۱۳۹۷ - ساعت ۱۴:۰۰
  • آموزش دستورالعمل های TensorFlow 1.X برای یادگیری تحت نظارت و بدون نظارت

آموزش دستورالعمل های TensorFlow 1.X برای یادگیری تحت نظارت و بدون نظارت

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

آموزش TensorFlow برای مبتدیان

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

آموزش یادگیری ماشینی با پایتون و Scikit-Learn

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

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

دوشنبه ۳۱ اردیبهشت ۱۳۹۷ - ساعت ۰۴:۰۰
  • آموزش تشخیص و شناسایی آبجکت با یادگیری عمیق در OpenCV

آموزش تشخیص و شناسایی آبجکت با یادگیری عمیق در OpenCV

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

آموزش اصولی معماری و اپلیکیشن ها

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

آشنایی با کتابخانه های سی پلاس پلاس در یادگیری ماشینی

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

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

جمعه ۱۴ اردیبهشت ۱۳۹۷ - ساعت ۲۱:۰۰