یادگیری ماشین یا ماشین لرنینگ (Machine Learning)

ما همچنان از ربات میخواهیم که میوههای مشابه را در سبد مخصوص خود قرار دهد، اما خود ربات باید شباهتها بین میوهها را پیدا کرده و آنها سایت vector-robot را دستهبندی کند. به عنوان نمونه همان مثال قبلی را در نظر بگیرید، اما این بار با فرض این که نمیدانیم چه میوههایی در سبد اصلی قرار دارد. عامل این نگرش بیشتر فیلمهای علمی و تخیلی هستند، اما واقعیت با آنچه که تصور میشود تفاوت زیادی دارد. اساسی ترین مشکل یادگیری تقویتی نیز هزینه بسیار زیادِ احتمالیِ تعاملِ عامل (Agent) با محیط، و یا حتی عدم توانایی در تصمیم درست پس از یادگیری است. این هزینه میتواند مالی ( در صورت تعامل عامل با یک محیط فیزیکی و تخریب احتمالی آن در حین یادگیری) یا حتی جانی (جان باختن یک عابر پیاده در اثر تصادف با خودروی خودران شرکت اوبر در سال 2018) باشد. یادگیریهای تحت نظارت معمولاً نیاز به دادههای آموزشی زیادی دارند که به دست آوردن این دادهها ممکن است هزینه و زمان زیادی لازم داشته باشد.

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

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

روشهای k-Nearest Neighbor (kNN)، شبکههای عصبی (Neural networks)، Linear regression و Naïve Bayes از جمله الگوریتمهای شناخته شده و پرکاربرد برای این نوع یادگیری هستند. روشهای k-means، شبکههای عصبی (Neural networks) و DBSCAN از جمله الگوریتمهای شناخته شده و پرکاربرد برای این نوع یادگیری هستند. روشهای Monte Carlo، Q-Learning و SARSA از جمله الگوریتمهای شناخته شده و پرکاربرد برای این نوع یادگیری هستند. هوش مصنوعی (Artificial Intelligence) به توانایی سیستم کامپیوتری به تقلید رفتار انسانی اشاره دارد این نوع از هوش در ماشینآلات به کار گرفته میشود و میتوان آنرا با هوش طبیعی استفاده شده توسط انسان و حیوانات مقايسه کرد. از مهمترین چارچوبهایی که در حوزه هوش مصنوعی و به ویژه یادگیری ماشین استفاده میشوند باید به تنسورفلو، پایتورچ، کافی و Theano اشاره کرد. علاوه بر Apache Spark، از سایر فناوریهای بزرگ داده از قبیل کاساندرا، هدوپ و مونگودیبی هم میتوان استفاده کرد. شبکههای عصبی بر اساس مغز انسان مدلسازی شدهاند و میتوانند الگوهای عددی را بر اساس دادههای حسی تشخیص دهند. سپس، اگر فرآیند آموزش به خوبی انجام شده باشد، ربات قادر است سیبها، نارنگیها و موزها را از هم تشخیص داده و در سه سبد جداگانه دسته بندی کند.

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

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

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

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

شما میتوانید مهارتهایی که به آنها اشاره شد را از طریق تمرین یا انتخاب یک دوره آموزشی صدور گواهینامه به دست آورید. انتظار میرود ربات پس از مدتی آزمون و خطا، در انتها تشخیص دهد که هر میوهای را در چه سبدی قرار دهد. در هوش مصنوعی ماشینها از دادهها و اقدامات گذشته چه به شکل مثبت یا منفی درس میگیرند. هوش مصنوعی که امروزه از آن یاد میشود در واقع نوعی فناوری است که به نحوی قابلیت تفکر دارد. که کاربردهای فنی و مهندسی به شمار میروند، یادگیری ماشین به حیطههای اقتصاد، بازاریابی، پزشکی و … یکی از زیرمجموعههای بسیار مهم هوش مصنوعی، “یادگیری ماشین (Machine learning)” است. اولین گام برای ورود به حوزهی هوش مصنوعی، فراگیری یک زبان برنامهنویسی است. تبدیل مدلهای یادگیری ماشین به رابطهای برنامهنویسی اپلیکیشن (API) تا سایر اپلیکیشن ها بتوانند از آن استفاده کنند. آنها از ابزارها و تکنیکهای مختلفی استفاده میکنند تا بتوانند دادهها را پردازش کنند و سیستمهای هوش مصنوعی را توسعه داده و نگهداری کنند. در حوزهی سیالات، دانشمندان به دنبال آن هستند تا بتوانند بسیاری از روابط دیفرانسیل موجود در روابطی چون نویر – استوکس را به کمک شبکههای عصبی حل کنند و زمان مورد نیاز برای مدلسازیهای کامپیوتری را چندین بار کاهش دهند.

فرض کنید یک بازی کامپیوتری طراحی کرده اید که در آن بناست کاربران واقعی در مقابل کامپیوتر بازی کنند. به عنوان مثال یک ربات را در نظر بگیرید که قرار است از یک سبد پر از سیب، نارنگی و موز، هر میوه را جدا کرده و در سبد مخصوص قرار دهد. همچنان ربات قرار است میوهها را دستهبندی کند، اما این بار هر میوه را که در سبد قرار داد با پاداش/تنبیه به او بازخورد داده میشود. احتمالا تا به حال واژههایی مانند “هوش مصنوعی” و “یادگیری ماشین” به گوشتان خورده است؛ این مفاهیم که توسعهی الگوریتمهای آنها به دههها قبل باز میگردد، با افزایش توان پردازشی کامپیوترها در یک دههی اخیر، در کانون توجه مهندسین و دانشمندان قرار گرفتهاند. همهگیری کووید ۱۹ میلیونها شغل را از بین برده، با این حال، غولهای بزرگ اینترنتی در حال گسترش استفاده از هوش مصنوعی هستند. فرق این نوع یادگیری با یادگیری تحت نظارت این است که در این حالت آموزشی با استفاده از مجموعه ورودی-خروجی های متناظر انجام نمیگیرد، زیرا خود طراح هم به پاسخ نهایی آگاه نیست (یعنی نمیداند کدام دادهها قرار است در یک خوشه قرار بگیرند).

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

با پیشرفت روزافزون علوم کامپیوتر و تحقیقات در حوزهی هوش مصنوعی، روز به روز بر تعداد کاربردهای آنها افزوده میشود، مدلهای بیشتری توسعه مییابد و دقت آنها نیز افزایش مییابد. علاوه بر این، تقاضا برای استخدام مهندس هوش مصنوعی طی چند سال گذشته دو برابر شده است. متخصصانی که تمایل به کسب جایگاه یک مهندس هوش مصنوعی را دارند باید با مهارتهای مورد نیاز این حوزه آشنا باشند. همانطور که کاربر باید مدتی در مقابل کامپیوتر بازی کند تا یاد بگیرد چطور میتواند بهتر عمل کند، کامپیوتر نیز باید بتواند در طی بازیهای متعدد عملکرد خود را بهبود بخشد. یک مهندس هوش مصنوعی واجد شرایط به راحتی میتواند در سراسر دنیا شغل مورد نظر خود را پیدا کند. بعد از فراگیری این دوره، مجموعه کورسهای Deep Learning Specialization وبسایت کورسرا نیز میتواند شما را با مسائل چالشیتری آشنا کند. این دوره به صورت پنج کورس پیشرفتهتر توسط Andrew Ng ارائه میشود و شما را با مفاهیم شبکههای عصبی پیچیده، شبکههای بازگشتی، شبکههای عمیق و … همچنین آشنایی اولیه با مفاهیمجبر خطی و ماتریسها، مشتق و گرادیان و مفاهیم سادهی آماری و رگرسیون میتواند کمک شایانی در درک اصولی مفاهیم به شما بکند. گزارش سال ۲۰۱۷ موسسه مک کنزی نشان میدهد که یکسوم کارگران در ایالات متحده تا سال ۲۰۳۰ با اتوماسیون و ربات جایگزین شوند.