بسیاری مقالهای که آلن تورینگ در سال ۱۹۵۰ منتشر کرد را تولد هوش مصنوعی میدانند. او همچنین تست تورینگ را پیشنهاد داد که معیاری برای تشخیص هوشمندی ماشین است.
یکی از اولین پروژههای عملی هوش مصنوعی، ایده گرفتن از مفهوم شبکه عصبی و نورونها بود. دو نفر از دانشجویان دانشگاه هاروارد در سال ۱۹۵۰ اولین شبکه عصبی مصنوعی را که شامل ۴۰ نورون بود ساختند.
امروزه هر برنامهای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته میشود.یادگیری ماشین را میتوان زیر مجموعه هوش مصنوعی در نظر گرفت.
یکی از مهمترین ویژگیهای یادگیری ماشین، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است. یادگیری عمیق میتواند الگوهای پیچیدهتری را در داده پیدا کند و امروزه به یکی از جذابترین بخشهای یادگیری ماشین تبدیل شده است.زبان پایتون و R از محبوبترین زبانهای قابل استفاده برای یادگیری ماشین هستند و کتابخانههای بسیار قدرتمندی در این زبانها برای رفع نیازهای علاقهمندان این حوزه در حال گسترش است. موقعیتهای شغلی مرتبط با یادگیری ماشین عبارتند از: تحلیلگر داده ، دانشمند داده ، مهندس داده ، مهندس یادگیری ماشین.
یادگیری ماشین زمینهای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامهنویسی صریح را میدهد.
کلمات (زبان طبیعی) ، تصویر ، جداول ، سری زمانی
آقای تام میشل یادگیری ماشین را از دید مهندسی به این شکل تعریف کرده است:
اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی میشود، با تجربه E افزایش یابد، میگوییم که برنامه یاد گرفته است از تجربه E با توجه به تکلیف T و سنجه P استفاده کند.
به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:
1. یک الگوریتم (مدل) برای تصمیمگیری
2. یک معیار برای امتیازدهی اینکه عملکرد مدل چقدر خوب بوده
3. بررسی خودکار کیفیت مدل بر اساس امتیاز
4. یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدل
یادگیری نظارت شده(supervised learning) ، یادگیری بینظارت ،یادگیری تقویتی
الگوریتمهای یادگیری نظارتشده، به دو دسته طبقهبندی و رگرسیون دستهبندی میشوند.
الگوریتمهای یادگیری ماشین بینظارت، به سه دسته خوشهبندی، کاهش ابعاد و استخراج قانون وابستگی تقسیمبندی میشود.
پایتون یک زبان برنامه نویسی سطح بالا است که در اوایل دههی ۹۰ میلادی، توسط خیدو فان روسوم درهلند اختراع شد. هدف اصلی از توسعهی این زبان، اتوماسیون کارهای تکراری، برای توسعه سریع برنامهها است. پایتون زبانی به نسبت آسان برای یادگیری است زیرا کدهای آن تمیز و قابل فهم است.
برخلاف C
و C++
که زبانهایی دارای کامپایلر هستند، پایتون زبانی دارای مفسر است. کامپایلر برنامه ایست که کد نوشته شده را به زبان ماشین ترجمه میکند.
پایتون و R دو زبان پرطرفدار در حوزهی علم داده هستند. اشتراکات زیادی از جمله رایگان و متن باز بودن بین دو زبان وجود دارد. مستندات هر دو زبان با کمک کاربران نوشته شده است و هر دو اجتماعات فعالی در اینترنت دارند. اما هرکدام برتریهایی نسبت به دیگری دارند.
· پایتون کتابخانههای متعدد و قویای دارد که در بالا به آنها اشاره شده است.
· تقریبا هر ۱۸ ماه یک بار نسخهی جدید و با ثباتی از پایتون عرضه میشود.
· پایتون دارای نوشتار ساده است.
· R توانایی کشیدن نمودارهای با کیفیت و متنوعی را دارد.
· R به سرعت در حال توسعه است و تقریبا برای همهی تکنیکهای آماری پکیج دارد.
اما تفاوت اصلی میان این دو، کاربرد بیشتر پایتون در صنعت است. به صورتی که اکثر شرکتها برای بخش production از پایتون استفاده میکنند و R بیشتر به استفادههای آکادمیک محدود شده است.
با استفاده از نامپای، پردازش و محاسبات روی آرایهها سریعتر انجام میشود. در نامپای اعضای یک آرایه همه از یک نوع میباشند و این ویژگی باعث میشود تا آرایهها حجم کمتری در رم اشغال کنند. نامپای همچنین توابع بسیاری برای انجام انواع عملیات بر روی آرایهها دارد که نسبت به توابع خود پایتون سریعتر اجرا میشوند. (با نامپای میتوان محاسبات را بدون استفاده از حلقههای تکرار انجام داد.)
کتابخانه نامپای پکیجی بنیادی در اکوسیستم سایپای (اکوسیستم علم داده در پایتون) است. بنابراین فارغ از کاری که با داده انجام میشود، یادگیری آن واقعا ارزشمند خواهد بود.
نامپای امکانات بسیاری در اختیار ما قرار میدهد که برای محاسبات سریع بر روی دادههای جدولی میتوان از آن استفاده کرد. اما هنگامی که ما انتظار انعطافپذیری بیشتری داریم، محدودیتهای نامپای به چشم میآید. با پانداس میتوان عملیات بسیار بیشتری بر روی داده انجام داد که کاربران پایگاه داده و صفحات گسترده با این عملیات بسیار آشنا هستند.
با استفاده از ساختارهای داده و امکاناتی که در پانداس تعبیه شده، عملیات تحلیل و پاکسازی و آمادهسازی داده را در پایتون میتوان خیلی سریع و آسان انجام داد.
ساخت نمودارهایی که بتوانند اطلاعات را به خوبی انتقال دهند یکی از مهمترین کارها در تحلیل داده است. کتابخانههای بسیاری برای مصورسازی داده در پایتون وجود دارد اما متپلاتلیب از همه پرکاربردتر است.
این کتابخانه بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است.
پروژه سایکتلرن در سال ۲۰۰۷ آغاز شد و پس از آن با همکاری برنامهنویسان به شکلی متن باز در حال گسترش است. این کتابخانه معروفترین و پرکاربردترین کتابخانه یادگیری ماشین در پایتون میباشد و از محبوبیت بسیاری برخوردار است.
سایکتلرن حاوی ابزارهای متنوعی برای یادگیری ماشین و مدلسازی آماری است. هدف از ساخت سایکتلرن تمرکز بر مدلسازی داده به جای دستکاری و مرتبسازی و خلاصه کردن داده میباشد.سایکت لرن واسط کاربری بسیار منسجمی دارد و کار با آن بسیار آسان است به طوری که شما میتوانید حتی بدون شناخت مفاهیم و مدلهای یادگیری ماشین، کار با این کتابخانه را شروع کنید.
علاوه بر موارد ذکر شده، کتابخانههای بسیار قدرتمند دیگری برای زمینههای دیگر کار با داده در پایتون وجود دارد. برای مصور سازی داده میتوان از پلاتلی (Plotly) و سیبورن (Seaborn) هم استفاده کرد. برای امور یادگیری عمیق، پایتورچ (Pytorch) ، تنسورفلو (TensorFlow) و کراس (Keras) بیشتر مورد استفاده قرار میگیرند. برای پردازش متن nltk و اسپیسی (Spacy) کارایی بیشتری دارند و در زمینه پردازش عکس میتوان از کتابخانههای اوپن سیوی (OpenCV) و سایکت ایمیج (scikit-image) نام برد.
چرا از یادگیریماشین استفاده میکنیم؟
یادگیریماشین زیرمجموعه هوشمصنوعی است که به رایانهها میآموزد که به روشی مشابه انسان، یعنی یادگیری از طریق تجربههای گذشته، فکر کنند. تقریباً هر کاری که بتواند با الگویی تعریف شده از دادهها یا مجموعهای از قوانین انجام شود، میتواند با یادگیریماشین به طور خودکار انجام شود. بعضی مسائل آنقدر پیچیده هستند که نمیتوانیم به روشهای قدیمی برای آن برنامه بنویسیم؛ به عبارت بهتر همه حالات ممکن را نمیتوانیم پیشبینی کنیم تا برای مدیریت آن کد بنویسیم، پس نیاز است ماشین بتواند در حالاتی که توسط ما پیشبینی نشده است تصمیمگیری کند.
امروزه دادهها، قلب تپنده بسیاری از کسبوکارها هستند. یادگیریماشین به شرکتها این امکان را میدهد که کارهایی که قبلاً تنها توسط انسانها امکانپذیر بود را با سرعت بالاتر و دقت بیشتر انجام دهند، از یادگیریماشین حتی برای حل کردن مشکلات بزرگتر مانند تشخیص تصاویر در اتومبیلهای خودران، پیشبینی زمان وقایای طبیعی نیز استفاده میشود، به همین دلیل یادگیریماشین اهمیت بسیار بالایی دارد. استفاده از یادگیریماشین به دلایل زیر خیلی آسانتر و فراگیرتر شده است:
با وجود اینکه امروزه یادگیریماشین نقش به سزایی در زندگی بشر ایفا میکند، اما همچنان چالشهایی برای بهکارگیری این تکنیک حل مسئله وجود دارد.
داده اساس یادگیریماشین است و هیچ الگوریتم و مدلی با داده بد نمیتواند عملکرد خوبی داشته باشد. کمیت نامناسب داده، داده بیکیفیت و ویژگیهای نامربوط از جمله چالشهایی است که به داده مربوط میشوند.
پس از آنکه توانستیم چالشهای مربوط به داده را مدیریت کنیم، سراغ الگوریتم و مدل میرویم. بیشبرازش (Overfitting)، کمبرازش (Underfitting) و زمان نمونهای از چالشهای مربوط به مدلها و الگوریتمهای هوشمصنوعی و یادگیریماشین هستند.
هدف ما در یادگیریماشین این است که با مشاهده و یادگیری از دادههای گذشته، آینده را پیشبینی کنیم. وقتی دچار Overfitting میشویم در حقیقت مدل عمومیت خود را از دست داده است؛ به عبارت بهتر مدل نمیتواند آینده را به درستی پیشبینی کند. علت عدم توانایی در پیشبینی آینده این است که دادههای آموزش را زیاد از حد یاد گرفته است.
این مشکل وقتی بهوجود میآید که مدل نتواند به خوبی از دادگان آموزش، یاد بگیرد. این مسئله میتواند به دلایل مختلفی پیش بیاید. داده نامناسب یکی از چندین دلیل کمبرازش است.
زمان در یادگیریماشین از دو جهت اهمیت دارد؛ هم مدت زمانی که طول میکشد تا آموزش مدل تمام شود، هم زمانی که مدل برای پیشبینی نمونهها مصرف میکند. مدت زمانی که طول میکشد تا آموزش مدل تمام شود، طول مدت توسعه محصول را تحت تاثیر قرار میدهد و زمان مصرفی توسط مدل برای پیشبینی نمونهها زمانی است که کاربر نهایی تجربه میکند.
گامهایی که در یک پروژه یادگیری ماشین طی میشود:
توجه
این پروژه نسبت به پروژههای دنیای واقعی بسیار سادهتر است. در پروژههای دنیا واقعی گامهای بیشتری باید انجام شود. علاوه بر گامهای ذکر شده تحلیل اکتشافی داده ، مهندسی کردن ویژگیها و تنظیم ابر پارامترها (Hyperparameter tuning) نمونه دیگری از گامهایی است که در یک پروژه واقعی انجام میشود!
چرخه تب تکنولوژی (Technology Hype Cycle) را اولین بار موسسه گارتنر (Gartner) در سال ۱۹۹۵ مطرح کرد. این چرخه، نمودار رشد تکنولوژیهای مختلف را در طی زمان نشان میدهد.
در ادامه تحولات شگفتی که برای هوش مصنوعی پیشبینی میشود، از نقطهای نام برده میشود که هم با شکوه و هم دلهره برانگیز است و آن نقطه تکینگی فناوری (technological singularity) است. زمانی که پیشرفت تکنولوژی به نقطهای غیرقابل کنترل و برگشتناپذیر برسد که تمدن انسانی را تحت تاثیر قرار دهد.
معروفترین محصول آن یک کتابخانه متنباز یادگیری ماشین به نام PyTorch است که محبوبیت بسیاری پیدا کرده است. این ابزار به واسطه سادگی در استفاده و امکانات زیادی که دارد در حال حاضر پذیرفتهترین بستر برای پیادهسازی الگوریتمهای هوش مصنوعی در جامعه دانشگاهی به حساب میآید.
شرکت گوگل هم به پشتوانه منابع پردازشی و دادهای عظیمش گروهی ویژه هوش مصنوعی تاسیس کرده است که به دنبال توسعه هوش مصنوعی و استفاده از آن در محصولات و زمینههای مختلف است. این بخش یک زیرمجموعه به نام Google Brain هم دارد که قدمتی طولانیتر دارد و به تحقیق در زمینه هوش مصنوعی مبادرت میورزد. جدیترین رقیب PyTorch که یکسال پیش از آن منتشر شد متعلق به Google Brain است و TensorFlow نام دارد. این کتابخانه همچنان در صنعت بیشترین استفاده را برای پیاده سازی الگوریتمهای یادگیری ماشین دارد.
منبع:
https://quera.ir/college/land/college/8522/