• هیچ محصولی در سبد خرید نیست.

هوش مصنوعی از ۰ تا ۱۰۰ ( قسمت دوم )

بخش دوم ( یادگیری ماشین ) :

  • یادگیری ماشین چیست؟
  • تفاوت بین هوش مصنوعی و یادگیری ماشین
  • یادگیری ماشین بر چه مبنایی کار می کند ؟
  • ویژگی های یادگیری ماشین
  • نیاز انسان به مبحث یادگیری ماشین
  • الگوریتم چیست
  • الگوریتم های یادگیری ماشین
  • یادگیری تحت نظارت
  • یادگیری بدون نظارت
  • یادگیری تقویتی
  • یادگیری نیمه تقویتی
  • یادگیری عمیق
  • شبکه های عصبی
  • تفاوت یادگیری ماشین و یادگیری عمیق
  • نظریه یادگیری دیکشنری پراکنده
  • بهترین زبان های برنامه نویسی برای هوش مصنوعی

 

مقدمه یادگیری ماشین :

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

 

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

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

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

 

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

 

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

 

یادگیری ماشین چیست ؟

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

۱.دادن ورودی به نرم افزار

۲.پردازش داده های وارد شده و محاسبات

۳.خروجی نرم افزار 

 

این مدل یک مدل ثابت برای نرم افزار های کامپیوتری است اما در یادگیری ماشین به صورت این الگو ها انجام نمی شوند و قضیه به صورت دیگر اجرا می شود .

به طور مثال در سال های اخیر برنامه سازی در دکستاپ و وب اپلیکیشن ها به صورت الگو بالا و صورت الگو های سنتی برنامه نویسی می شد اما در حال حاضر با ورود الگو های یادگیری ماشین خروجی در نرم افزار های به صورت یک متغییر ثابت برای شما نمایان نمی شود به صورت مثال اگر در برنامه نویسی سنتی جواب ۲ به علاوه ۲ می شود ۴ با استفاده از الگورهای یادگیری ماشین جواب سوال ۲ به علاوه ۲ می تواند جواب های مختلفی داشته باشد به صورت مثال شاید این سوال به جواب های زیر مواجه شود:

  • ۵
  • ۲.۱۹۵۲۳۶۷۷۸
  • ۲.۹۹۹۹۹۹۹۹۹
  • ۲.۰۰۰۰۰۰۰۰۱
  • و ….

پس در نتیجه متوجه این موضوع شدید که تفاوت یادگیری ماشین با الگو های سنتی برنامه نویسی در چیست !

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

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

یادگیری ماشین دقیقا چیست ؟

یادگیری ماشین Machine Learning مجموعه از الگوریتم ها و فنون مورد استفاده برای طراحی سیستم هایی است که از داده یادگیری دارند .

الگوریتم های  ML مبنای ریاضی و آماری قوی داشته ولی دانش زمینه را به حساب نمی آورند . ماشین لرنینگ از زمینه های زیر تشکیل شده است :

  • محاسبات علمی
  • ریاضیات و آمار

 

الگوریتم چیست

طبق تعریف ویکی پدیا :

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

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

ورودی:
یک الگوریتم باید هیچ یا حد اقل یک پارامتر را به عنوان ورودی بپذیرد؛

خروجی:
الگوریتم بایستی حداقل یک کمیت به عنوان خروجی (نتیجه عملیات) تولید کند؛

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

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

 

الگوریتم های یادگیری ماشین

به صورت مثال یک کاربرد مناسب یادگیری ماشین تلاش برای تعیین جعلی بودن یک تراکنش کارت اعتباری است .با توجه به سوابق تراکنش های قبلی وظیفه متخصص داده در کل :

  • تمیز کردن 
  • بتدیل داده بر مبنای دانش مورد نیاز است .

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

اما یک متخصص داده باید چه دانشی داشته باشد ؟

یک دانشمند داده باید بتواند بهترین روشی که می توان برای یادگیری ماشین فراهم آورد را به نرم افزار بدهد تا نرم افزار بتواند خروجی مورد نظر را تولید کند .

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

 

ما سعی داریم به ساده ترین شکل ممکن در توضیح الگوریتم های یادگیری ماشین را برای شما شرح دهیم در اینجا ما ۳ تا از ساده ترین الگوهای یادگیری ماشین را برای شما شرح خواهیم داد .

 

طبقه بندی : این الف است یا ب است ؟!

رگرسیون : چه مقدار و یا چه تعداد ؟!

خوشه بندی : به چه شیوه سازمانی دهی شده است ؟!

 

طبقه بندی :

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

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

 

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

یک مثال ساده از طبقه بندی :

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

این مورد یک مثال کوچک بود تا با نحوه کار الگوریتم طبقه بندی بیشتر آشنا شوید .

 

رگرسیون :

 

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

رگرسیون یک متغییر خروجی پیوسته را خروجی می دهد .رگرسیون در کجا استفاده می شود : 

  • پیش بینی تعداد فروش برای یک آیتم خاص برای ۳ ماه آینده
  • پیش بینی وضعیت دما برای هفته بعد
  • پیش بینی طول عمر یک مدل خاص تایر

 

خوشه بندی :

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

مثال هایی برای خوشه بندی :

  • کدام بیننده هایی به ژانر مشابه فیلم علاقه مند هستند
  • کدام مدل هارد دیسک به شیوه مشابه از کار می افتد 

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

 

یادگیری تحت نظارت یا Supervised learning

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

اندازه منزل ×‌قیمت فروش رفته

 

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

 

یادگیری بدون نظارت یا Unsupervised learning

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

اندازه دور کمر × طول پا

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

آنگاه می توان از نوعی الگوریتم های خوشه بندی برای یافتن الگوها در مجموعه داده استفاده کرد . نتیجه نهایی ممکن است کشف ۳ گروه متمایز خوشه در داده باشد .

 

یادگیری تقویتی

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

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

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

 

یادگیری نیمه تقویتی

این خانواده بین خانواده های یادگیرنده تحت نظارت و بدون نظارت است. مدل های نیمه نظارت شده برای آموزش از داده های دارای برچسب و بدون برچسب استفاده می کنند.

 

یادگیری عمیق

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

 

شبکه های عصبی

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

 

تفاوت یادگیری عمیق و یادگیری ماشین


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

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

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

 

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

Python

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

رهبر مسلم در میان زبان های برنامه نویسی AI پایتون است. به طور گسترده ای در همه صنایع مورد استفاده قرار می گیرد و به دلیل سادگی ، انعطاف پذیری و مقیاس پذیری مورد علاقه است. اول از همه ، پایتون منبع باز است.

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

  • Prolog
  • LISP
  • Java
  • C++ 
  • Conclusion
  • C#
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

درباره ما

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

 

logo-samandehi

[form to=”[email protected]” subject=”Subject”] [form_element type=”text” validate=”email” options=”” placeholder=”ایمیل”] [form_element type=”submit” validate=”” options=”” placeholder=”ارسال”] [/form]

 

 

X