فرآیند اندیشه، تفکر و طرز کار مغز از گذشتههای بسیار دور مورد توجه فیلسوفان و دانشمندان در همه جای جهان بودهاست و یونانیان در این امر پیشتاز و به دنبال ساخت یک مغز مکانیکی بودند، در ادامه ریاضی دانان نیز سعی در منطقی کردن فرآیند تفکر با استفاده از علائم ریاضی بودند. اما تولد هوش مصنوعی به سال 1950 و با مقاله معروف آلن تورینگ برمیگردد او یکی از تاثیرگذارترین افراد در حوزه هوش مصنوعی است و همچنین تست تورینگ را پیشنهاد داد که معیاری برای تشخیص هوشمندی ماشین است. یکی از اولین پروژههای عملی هوش مصنوعی، ایده گرفتن از مفهوم شبکه عصبی و نورونها بود. که در سال 1950 در دانشگاه هاروارد انجام شد و اولین شبکه عصبی شامل 40 نورون ساخته شد (نورونها واحدهایی یکشکل در مغز هستند که پیامهای عصبی را منتقل میکنند)
هوشمندی را از دو منظر میتوان مورد بررسی قرار داد، از منظر اول هوشمندی یا در رفتار است یا در تفکر و از منظر دوم هوشمندی در انسانگونه بودن یا در منطقی بودن (rationality) است. اگر همه حالات را در نظر بگیریم به چهار تعریف زیر برای هوش مصنوعی میرسیم:
بعد از انتخاب هوشمندی مورد نظر قدم بعدی ساخت عامل هوشمند است که می تواند سخت افزاری یا نرم افزاری باشد و بر حسب محیطی که عامل قرار است در آن مورد استفاده قرار گیرد، میتواند دارای اجزای مختلفی باشد. برای مثال، عاملی که با انسان در ارتباط است باید توانایی دریافت و درک زبان طبیعی را داشته باشد و عامل فیزیکی ممکن است نیازمند بازوهای حرکتی برای انجام اعمال انتخابی باشد.
هماکنون هوش مصنوعی حوزههای بسیاری را شامل میشود و همچنان در حال بزرگتر شدن است. امروزه هر برنامهای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته میشود. یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را میتوان زیر مجموعه ای از هوش مصنوعی در نظر گرفت.
یکی از مهمترین ویژگیهای یادگیری ماشین، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است. در انواع دیگر هوش مصنوعی ممکن است شاهد نوعی از هوشمندی باشیم که از دادهها استفاده نمیکند. ویژگی دیگر یادگیری ماشین، تغییر خود با دیدن دادههای جدید است؛ یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر میدهد.
طبق صحبت های دکتر فروغی یکی از مسائلی که میتواند حاصل خوبی داشته باشد پیدا کردن مسائل عمیق هر حوزه و ایجاد ارتباط و پیشنهاد راه حل با توجه به دروس تئوری دانشگاه است به این صورت که فرد با دید پژوهشی مشکلات سیستم را حل کند.
امروزه می توان در صنعت، دانشگاه، حوزه سلامت، اقتصاد و تجارت، کسب و کارها و ...، از یادگیری ماشین برای پیشبرد اهداف خود استفاده کرد، زبان پایتون و Rاز محبوبترین زبانهای قابل استفاده برای یادگیری ماشین هستند و کتابخانههای بسیار قدرتمندی در این زبانها برای رفع نیازهای علاقهمندان این حوزه در حال گسترش است.
یکی از سایت های مفید در حوزه یادگیری ماشین سایت Kaggle است. بیشتر شهرت این سایت به دلیل مسابقاتی است که در آن برگزار میشود و ارزش جوايز آن بعضاً به چندصد هزار دلار میرسد، از ویژگیهای دیگر سایت Kaggle میتوان به داشتن آموزشهایی ابتدایی برای شروع کار با داده، دسترسی دادن به دیتاستهای مختلف و قابلیت مشاهده کدها و تحلیلهای دیگران برای آموزش بهتر یادگیری ماشین اشاره کرد. پلتفرم های دیگری نیز در کنار این وبسایت شروع به فعالیت و برگزاری مسابقات کردهاند که میتوان به CodaLab ، Signate و DrivenData اشاره کرد.
موقعیتهای شغلی مرتبط با یادگیری ماشین:
طبق صحبت های مهندس ستوده، داشتن دانش کافی نسبت به موضوع مورد مطالعه از اهمیت بالایی برخوردار است.
یادگیری ماشین در اکثر کاربردهای فعلی، یک برنامه کامپیوتری است که به داده دسترسی پیدا میکند و از آن برای آموزش خود استفاده میکند. آرتور ساموئل تعریف دیگری برای یادگیری ماشین ارائه داده است که عبارت است از: زمینهای از تحقیقات که به کامپیوترها توانایی یادگیری بدون برنامهنویسی صریح را میدهد.
دادهها عنصر محوری یادگیری ماشین هستند و ماشینها از دادهها یاد میگیرند، به این صورت که ما دادهها را به عنوان ورودی به الگوریتم میدهیم تا خروجی مورد نیازمان را دریافت کنیم.
انواع داده ها:
الگوریتمهای یادگیری ماشین، مثل انسان با کمک تجربه یاد میگیرند. داده همان تجربهای است که به عنوان ورودی به الگوریتم داده میشود. تام میشل یادگیری ماشین را از دید مهندسی به این شکل تعریف کرده است: اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی میشود، با تجربه E افزایش یابد، میگوییم که برنامه یاد گرفته است از تجربه E با توجه به تکلیف T و سنجه P استفاده کند. (تکلیف T همان مسالهای است که ما انتظار داریم بتوانیم با یادگیری ماشین حل کنیم، تجربه E همان نمونه های ما هستند و سنجه P عیاری برای بررسی و اندازهگیری میزان دقت الگوریتم ما می باشد.)
انواع یادگیری ماشین:
پایتون یک زبان برنامه نویسی است و از زمان اختراعش تا امروز به عنوان یک زبان برنامه نویسی سطح بالا در توسعهی برنامههای وب و موبایل و همچنین در آنالیز داده و محاسبات علمی به کار رفته است. برخلاف C و C++ که زبانهای کامپایلری هستند، پایتون زبانی مفسری است. به غیر از پایتون زبانهای دیگری مانند R، Scala، Julia، Matlab و SQL نیز برای علوم داده استفاده میشوند؛ اما پایتون به خصوص در صنعت از همه پرکاربردتر است زیرا کتابخانهها و ابزارهایی قوی و متعدد دارد، کد های پایتون قابل فهم است، جامعه توسعهدهندگان بزرگی دارد و چند پارادایمی است.
پایتون و R دو زبان پرطرفدار در حوزهی علم داده هستند. اشتراکات زیادی از جمله رایگان و متن باز بودن بین دو زبان وجود دارد. مستندات هر دو زبان با کمک کاربران نوشته شده است و هر دو اجتماعات فعالی در اینترنت دارند. اما هرکدام برتریهایی نسبت به دیگری دارند: پایتون کتابخانههای متعدد و قویای دارد، تقریبا هر ۱۸ ماه یک بار نسخهی جدید و با ثباتی از پایتون عرضه میشود، پایتون دارای نوشتار ساده است. R توانایی کشیدن نمودارهای با کیفیت و متنوعی را دارد، به سرعت در حال توسعه است و تقریبا برای همهی تکنیکهای آماری پکیج دارد. اما تفاوت اصلی میان این دو، کاربرد بیشتر پایتون در صنعت است. به صورتی که اکثر شرکتها برای بخش production از پایتون استفاده میکنند و R بیشتر به استفادههای آکادمیک محدود شده است.
پرکاربردترین کتابخانههای پایتون:
سايكت لرن (Scikit-learn): معروفترین و پرکاربردترین کتابخانه یادگیری ماشین در پایتون میباشد، هدف از ساخت سایکتلرن تمرکز بر مدلسازی داده به جای دستکاری و مرتبسازی و خلاصه کردن داده میباشد.سایکت لرن واسط کاربری بسیار منسجمی دارد و کار با آن بسیار آسان است.
علاوه بر موارد ذکر شده، کتابخانههای بسیار قدرتمند دیگری برای زمینههای دیگر کار با داده در پایتون وجود دارد. برای مصور سازی داده میتوان از پلاتلی (Plotly) و سیبورن (Seaborn) هم استفاده کرد. برای امور یادگیری عمیق، پایتورچ (Pytorch) ، تنسورفلو (TensorFlow) و کراس (Keras) بیشتر مورد استفاده قرار میگیرند. برای پردازش متن nltk و اسپیسی (Spacy) کارایی بیشتری دارند و در زمینه پردازش عکس میتوان از کتابخانههای اوپن سیوی (OpenCV) و سایکت ایمیج (scikit-image) نام برد.
چالش های مربوط به داده: تعداد ناکافی داده – داده بی کیفیت
چالش های الگوریتمی:
گامهایی که در یک پروژه یادگیری ماشین طی میشود:
امروزه شاهد پیشرفتهای بزرگی در زمینه هوش مصنوعی هستیم اما همچنان با آنچه در فیلمها و داستانها از یک عامل هوشمند متصوریم که در انجام کارهای گوناگون از توانایی مشابه انسان برخوردار است فاصله داریم. عاملهای هوشمندی که امروزه ساخته میشوند معمولا در حل یک مسئلهٔ خاص به هوشمندی رسیدهاند.
در ادامه تحولات شگفتی که برای هوش مصنوعی پیشبینی میشود، از نقطهای نام برده میشود که هم با شکوه و هم دلهره برانگیز است و آن نقطه تکینگی فناوری (technological singularity) است. زمانی که پیشرفت تکنولوژی به نقطهای غیرقابل کنترل و برگشتناپذیر برسد که تمدن انسانی را تحت تاثیر قرار دهد. البته که تخمینهایی که دانشمندان درباره زمان تحقق هوش مصنوعی عمومی یا تکینگی فناوری داشتهاند بعضا خوشبینانه بوده است. هربرت سایمون که از پیشگامان هوش مصنوعی به شمار میرود و هم برنده جایزه تورینگ و هم برنده نوبل اقتصاد است در سال ۱۹۶۵ نوشته بود: «تا بیست سال دیگر، ماشینها قادر خواهند بود هر کاری که انسان انجام میدهد را انجام دهند». با این حال قابل ذکر است که بسیاری از صاحب نظران معتقدند تا سالهای دهه ۲۰۴۰-۲۰۵۰ شاهد چنین تحولات شگرفی خواهیم بود.
شركت هاي پيش رو در حوزه هوش مصنوعي: Deep mind - OpenAI- Facebook AI- Google AI