"دروازه ورود به یادگیری ماشین"

دیاگرام ساخت مدل یادگیری ماشینهدف این دوره آشنایی با مفاهیم ابتدایی یادگیری ماشین است. فصل اول درباره معرفی و رابطه هوش مصنوعی و یادگیری ماشین است. در فصل دوم کاربردها و تاثیرات هوش مصنوعی بر زندگی انسانها و موقعیتهای شغلی مربوط به علوم داده بررسی می شود. فصل سوم درباره تعریف دقیق یادگیری ماشین، معرفی داده و انواع آن است. فصل چهارم به معرفی ابزارهای علم داده می پردازد و فصل پنجم درباره چالشهای عملی یادگیری ماشین است. در فصل ششم تخمین وزن افراد بر اساس قد و جنسیتشان با یادگیری ماشین ارائه می شود. در فصل هفتم به معرفی هوش مصنوعی عمومی، اصل تکینگی، شرکتهای پیشرو و کتابهای مفید در این حوزه می پردازیم. در ادامه خلاصه مطالب فصل اول ارائه می گردد. نقشه راه و گامهای لازم برای تبدیل شدن به یک دانشمند داده و مهندس یادگیری ماشین عبارتند از: گام اول-آشنایی با مفاهیم، گام دوم-یادگیری ابزارها برای آماده سازی و تحلیل داده، گام سوم-یادگیری ماشین مقدماتی و گام چهارم-یادگیری ماشین پیشرفته. آلن تورینگ یکی از تاثیرگذارترین افراد در حوزه هوش مصنوعی است. او تست تورینگ را پیشنهاد داد که معیاری برای تشخیص هوشمندی ماشین است. هوش مصنوعی چیزی است که منطقی فکر کند، منطقی رفتارکند، مانند انسان فکر کند و مانند انسان رفتار نماید. قدم بعدی ساخت عامل هوشمند است که می تواند سخت افزاری یا نرم افزاری باشد. یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا می کند و زیر مجموعه هوش مصنوعی است. مهمترین ویژگی یادگیری ماشین، استفاده از داده، بدون استفاده از دستورات مستقیم است. ویژگی دیگر آن تغییر خود با دیدن داده های جدید است. یادگیری عمیق عمری بسیار کوتاهتر از یادگیری ماشین دارد. یادگیری عمیق می تواند الگوهای پیچیده تری را با استفاده از شبکه های عصبی در داده پیدا کند و یکی از جذاب ترین بخشهای یادگیری ماشین است. در نهایت دکتر فروغمند عضو هیئت علمی دانشگاه صنعتی شریف راجع به پیوند دانشگاه با صنعت هوش مصنوعی و یادگیری ماشین، حل مشکلات صنعت با ارائه راه حل دانش بنیانی، نقش تحصیلات تکمیلی در موفقیت افراد در حوزه هوش مصنوعی و آینده هوش مصنوعی، تقابل و تعامل آن با انسان مصاحبه نمودند. در فصل دوم با تاثیر هوش مصنوعی بر جامعه امروزی و چالشهای آن، مشاغل مرتبط با یادگیری ماشین، جوامع برنامه نویسان حوزه یادگیری ماشین و نحوه انتخاب شغل مناسب آشنا می شویم. زبان پایتون و R از محبوبترین زبانهای قابل استفاده برای یادگیری ماشین بوده و کتابخانه های بسیار قدرتمندی در این حوزه دارند. نیاز جامعه به بررسی آمار و داده ها سبب به وجود آمدن تخصصهایی در این زمینه شد از جمله تحلیلگر داده (جمع آوری داده های خام، آماده سازی، انتخاب قالب مناسب و ذخیره آنها در پایگاه داده)، دانشمند داده (سطحی بالاتر از تحلیلگر داده دارد چون باید با مفاهیم یادگیری ماشین و دانش برنامه نویسی آشنا باشد)، مهندس داده (دریافت داده ها از منابع مختلف و با قالبهای مختلف و تحویل آن به تحلیل گران، توسعه دهندگان و دیگر مصرف کنندگان)، مهندس یادگیری ماشین (نقاط مشترک فراوانی با مهندس داده دارد و علاوه بر آن دانش یادگیری ماشین در آن الزامی است). معمولاً حقوق دانشمند داده از تحلیلگر داده بیشتر است و مهندس یادگیری ماشین و مهندس داده از دوتای قبلی بیشتر. در معدن و صنایع معدنی با توجه به عدم قطعیت بالا و حجم بسیار زیاد اطلاعات یادگیری ماشین بسیار کاربردی است. چهار مثال کاربردی از یادگیری ماشین در معدن عبارتند از: پردازش تصاویر ماهواره ای (دسته بندی کل تصویر و تصاویر اطراف آن و بدست آوردن نقشه زمین شناسی منطقه)، پیش بینی متغیرهای ژئومتالورژیکی (به دلیل هزینه بالای نمونه برداری استفاده از یادگیری ماشین و الگوریتمهایی همچون SVM می تواند در این زمینه بسیار کارآمد باشد)، آنالیز تصاویر مربوط به جعبه مغزه ها (گمانه های حاصل از حفاری در جعبه های مشخصی برای تحلیل های بعدی قرار می گیرند) و پردازش تصاویر گرفته شده از پهپاد برای شناسایی هدفهای از پیش تعیین شده. در نهایت مصاحبه با آقای مهندس ستوده دانشمند داده در کوئرا انجام شد که ایشان تجربه زیادی در استفاده از هوش مصنوعی در فوتبال دارند. همچنین درباره آگهی های شغلی، عناوین و شرکت های فعال در حوزه داده صحبت کردند. در فصل سوم به بررسی مفهوم یادگیری ماشین، نحوه آموزش مدل و بررسی دقت آن می پردازیم. یادگیری ماشین یک برنامه کامپیوتری است که به داده دسترسی پیدا می کند و از آن برای آموزش خود استفاده می کند. در دهه پنجاه میلادی یکی از مهندسان IBM که نامش آرتور ساموئل بود برای اولین بار از کلمه یادگیری ماشین استفاده کرد و تعریف زیر را برای آن ارائه داد: یادگیری ماشین زمینه ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه نویسی صریح را می دهد. ویژگی اصلی یادگیری ماشین خود آموزشی می باشد که به معنی استفاده از مدلسازی آماری و عدم استفاده از دستورات مستقیم یا صریح می باشد. داده ها عنصر محوری یادگیری ماشین هستند و ماشینها از داده ها یاد می گیرند. آنچه داده را ارزشمند می کند نمایندگی آن از واقعیت و اطلاعاتی است که در اختیارمان می گذارد. یکی از شگفت انگیزترین توانایی های انسان، استفاده از زبان طبیعی برای نگهداری و تبادل مفاهیم و اطلاعات است. بنابراین تحقق توانایی پردازش زبان طبیعی برای ماشینها می تواند باعث تحول بزرگی گردد و امکان برقراری ارتباط میان انسانها و ماشینها فراهم می شود. که برخی از کاربردهای این حوزه عبارتند از: تشخیص گفتار، دسته بندی نوشتارها یا نظرات و پاسخ دادن به سوالات. از میان حوزه های مختلف یادگیری ماشین، بینایی ماشین پیشرفت خیره کننده ای را در سالهای اخیر داشته و تکنولوژیهای روزمره به صورت گسترده در آن استفاده می گردند. داده ها در این حالت تصاویر ثبت شده توسط دوربینهای عکس برداری یا فیلم برداری هستند. بنابراین توانایی استخراج اطلاعات از داخل تصاویر امکانات فوق العاده ای در اختیار یک عامل هوش مصنوعی می گذارد. از کاربردهای بینایی ماشین می توان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی یا کامپیوتر، پردازش تصاویر ماهواره ای، ماشینهای خودران و ... اشاره نمود. انواع داده که تا اینجا بیان شد را داده های ساختار نیافته و نوع جدولی را داده ساختارمند می نامیم. داده های جدولی به دو زیردسته داده های عددی و داده های دسته ای تقسیم بندی می شوند. همچنین سیستم های توصیه گر می توانند به یک فروشگاه اینترنتی کمک کنند بر اساس خریدها و بازدیدهای یک فرد کالاهایی را به او پیشنهاد دهند و میزان فروش فروشگاه را زیاد کنند. در مورد بعضی از انواع داده (سری زمانی) تغییرات آن در طول زمان اهمیت ویژه ای دارد. ماشین با دیدن تغییرات ویژگی مشخصی از یک داده در طول زمان، الگوی تغییرات آن را یاد بگیرد و مقدار آن ویژگی را در یک زمان مشخص پیش بینی نماید. در فصلهای قبل با سرگذشت یادگیری ماشین و روند پیدایش و تکامل آن آشنا شدیم. در فصل چهارم تمرکزمان روی مفاهیم یادگیری است و نحوه ساخت یک مدل یادگیری ماشین را بررسی می کنیم. در یادگیری ماشین مدلی را طراحی می کنیم که قادر به یادگیری و پیداکردن الگوها به طور اتوماتیک است. در حالت پیچیده بودن مساله یافتن این الگوها برای انسان اغلب دشوار و یا حتی غیر ممکن می شود. اما برای ماشینها به دلیل قدرت پردازشی بالا این کار بسیار ساده است. آقای تام میشل یادگیری ماشین را به صورت زیر تعریف می نماید: اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی می شود با تجربه E افزایش یابد می گوییم که برنامه یاد گرفته است از تجربه E با توجه به تکلیف T و سنجه P استفاده نماید. به طور کلی رویکرد انجام یادگیری ماشین دارای چهار عنصر اساسی است: یک الگوریتم (مدل) برای تصمیم گیری، یک معیار برای امتیازدهی اینکه عملکرد مدل چقدر خوب بوده، بررسی خودکار کیفیت مدل بر اساس امتیاز و یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در محل. تمرکز حوزه یادگیری ماشین بر یادگیری یعنی کسب مهارت یا دانش از طریق تجربه کردن است. به طور کلی یادگیری ماشین به سه دسته کلی تقسیم بندی می شود: یادگیری با نظارت، یادگیری بی نظارت و یادگیری تقویتی. در یادگیری با نظارت نمونه هایی که برای آموزش الگوریتم استفاده می شوند دارای برچسب هستند به این معنا که مدل یادگیری ماشین با استفاده از داده هایی که از قبل برچسب مشخصی دارند الگوهای اساسی را تا زمانی که به دقت رضایت بخشی برای ما برسد پیدا می کند. به این دلیل که الگوریتم مورد نظر ما با استفاده از داده هایی که دارای برچسب مشخصی هستند الگوهای لازم را پیدا می کند به این دسته یادگیری نظارت شده می گویند. الگوریتمهای یادگیری نظارت شده به دو دسته طبقه بندی (classification) و رگرسیون (regression) دسته بندی می شوند. هر دو دسته طبقه بندی و رگرسیون به داده های برچسب خورده نیاز دارند. در طبقه بندی، هدف پیدا کردن برچسب یا دسته مناسب برای نمونه های بدون پرچسب می باشد. برای این کار مدل یادگیری ماشین با استفاده از نمونه های برچسب دار آموزش داده می شود. در رگرسیون هدف ما تخمین مقدار یک ویژگی(مقداری پیوسته) برای یک نمونه می باشد. این الگوریتمها برای پیش بینی روند بازار، قیمت خانه و دیگر مثالها به کار می روند. بنابراین در الگوریتمهای طبقه بندی، برچسبی که می خواهیم پیش بینی کنیم به صورت متغیری گسسته می باشد در حالی که در الگوریتمهای رگرسیونی، بر خلاف طبقه بندی، برچسبی که می خواهیم پیش بینی کنیم به صورت متغیری پیوسته است. تفاوت نوع یادگیری بی نظارت با یادگیری نظارت شده تنها در نبودن برچسبهاست. به عبارت دیگر هیچ برچسبی به کامپیوتر نمی گوید که چه زمانی درست پیش بینی کرده و چه زمانی مرتکب اشتباه شده است. الگوریتمهای یادگیری ماشین بی نظارت که در آن مدل بدون دخالت انسان و با داده های بدون برچسب به سه دسته خوشه بندی، کاهش ابعاد و استخراج قانون وابستگی تقسیم بندی می شوند. خوشه بندی به معنی دسته بندی اتوماتیک داده ها به خوشه های همگن است به این صورت که داده های هر خوشه ویژگی های یکسانی داشته باشند. روش کاهش ابعاد یعنی کاهش دادن تعداد ویژگیهایی که از آنها برای آموزش مدل یادگیری ماشین استفاده می شود. در زمانی که ابعاد بیشتری داریم مدل یادگیری ماشین پیچیده شده و این باعث بوجود آمدن بیش برازش می شود. یادگیری تقویتی یکی از روشهای یادگیری ماشین است که با ذهنیت آزمون و خطا کار می کند. عامل هوشمند در حالت خود حرکتی انجام می دهد و بر اساس آن حرکت بازخورد دریافت می کند که ممکن است مثبت یا منفی باشد و عامل با این بازخورد خط مشی خود را تغییر می دهد. یادگیری تقویتی برخلاف یادگیری با نظارت و یادگیری بی نظارت وابسته به داده نیست بلکه به واسطه تعامل با محیط می آموزد. معمولاً تعدادی از دادگان برای انجام ارزیابی کنار گذاشته می شود و از باقی آنها برای آموزش مدل استفاده می شود. اصطلاحاً به دادگانی که برای آموزش استفاده می شوند دادگان آموزش و به دادگانی که برای ارزیابی استفاده می شوند دادگان آزمایش می گوییم. در نهایت مصاحبه ای با مهندس هادی یامی دانشمند کاربردی در شرکت مایکروسافت انجام گرفت. در فصل پنجم به بررسی زبانهای مختلف برنامه نویسی و کتابخانه هایی برای استفاده از امکانات هوش مصنوعی و یادگیری ماشین می پردازیم. پایتون زبانی به نسبت آسان برای یادگیری است زیرا کدهای آن تمیز و قابل فهم است. به دلیل متن باز بودن مفسر پایتون نسخه های مختلفی از آن توسط افراد مختلف توسعه داده شده است. پایتون در صنعت نسبت به دیگر زبانهای برنامه نویسی پرکاربرد است. پایتون کتابخانه ها و ابزارهای قوی و متعدد دارد و همچنین از اکثر پارادایم های معروف برنامه نویسی پشتیبانی می کند. پایتون و R دو زبان پر طرفدار در حوزه علم داده هستند. پایتون کتابخانه های متعددی برای کار با داده و یادگیری ماشین دارد از جمله:Numpy ، Pandas، Matplotlib و Scikit-learn. علاوه بر موارد ذکر شده کتابخانه های بسیار قدرتمندی در زمینه های دیگر کار با داده در پایتون وجود دارد. در ادامه در مورد دلایل استفاده از یادگیری ماشین و چالشهای موجود در انجام پروژه های یادگیری ماشین بحث و بررسی خواهیم کرد. استفاده از یادگیری ماشین به دلایل زیر خیلی آسان و فراگیر شده است: افزایش بی حد و حصر داده ها، ذخیره سازی مقرون به صرفه داده ها و افزایش قدرت پردازنده ها و کاهش هزینه های آنها. داده اساس یادگیری ماشین است بنابراین اگر به تعدادکافی داده به الگوریتم تزریق نکنیم نمی توانیم انتظار عملکرد خوبی داشته باشیم. همچنین باید از داده بی کیفیت که پر است از مقادیر اشتباه وگم شده پرهیز نماییم. همواره باید سعی در انتخاب ویژگیهایی داشته باشیم که مدل بتواند از آنها بیاموزد و از دل آنها الگوهایی برای پیش بینی آینده استخراج نماید. پس از مدیریت چالشهای مربوط به داده سراغ الگوریتم ومدل می رویم. بیش برازش وکم برازش و زمان نمونه ای از چالشهای مربوط به مدل ها و الگوریتمهای هوش مصنوعی و یادگیری ماشین هستند. در نهایت مصاحبه با مهندس رسولی دانشمند و رهبر داده در کافه بازار انجام گرفت. در فصل ششم با گامهای انجام یک پروژه یادگیری ماشین آشنا می شویم که این گامها عبارتند از: دریافت و بررسی داده، آماده سازی داده، انتخاب و آموزش مدل مناسب وتست و ارزیابی. سپس یک مساله یادگیری ماشین تخمین وزن افراد با در اختیار داشتن قد وجنسیت افراد را با استفاده از کتابخانه های پایتون کدنویسی شده که توضیحات گام به گام کد عبارتند از: خواندن داده از فایل csv، تغییر واحد داده ها، مصورسازی داده، ساختن دادگان آموزش و آزمایش، انتخاب مدل مناسب وآموزش، تخمین مقادیر تست و ارزیابی عملکرد مدل. در نهایت مصاحبه ای با مهندس بهجتی مهندس داده در شرکت Booking انجام شد. در فصل هفتم به موضوعات تکمیلی می پردازیم که آشنایی با آنها می تواند سرنخهایی برای تحقیق و مطالعه بیشتر درباره هوش مصنوعی و یادگیری ماشین در اختیار ما قرار دهد. چرخه تب تکنولوژی که توسط موسسه گارتنر مطرح شده نمودار رشد تکنولوژیهای مختلف را در طی زمان نشان می دهد. با وجود آنکه هر تکنولوژی لازم است این چرخه را طی کند اما سرعت حرکت آنها متفاوت است. برای مثال استفاده از پردازنده گرافیکی در هوش مصنوعی تقریباً به محدوده پایانی رشد خود رسیده و اغلب تکنولوژیهای دیگر از آن استفاده می کنند. آنچه هوش مصنوعی عمومی یا قوی نامیده می شود عبارت است از ساختن عامل هوشمندی که مانند انسان از هوش عمومی برخوردار باشد که توانایی آموختن در مواجهه با هر مساله جدیدی را داشته باشد و محدود به یک زمینه خاص نباشد. رشته علوم شناختی شش زمینه را مورد بررسی قرار می دهد که عبارتند از: فلسفه، زبان شناسی، انسان شناسی، روان شناسی، علوم اعصاب و هوش مصنوعی که می تواند کمک شایانی به بررسی هوش مصنوعی عمومی نماید. در ادامه تحولات هوش مصنوعی از نقطه ای نام برده می شود که نقطه تکینگی فناوری می باشد. زمانی که پیشرفت تکنولوژی به نقطه غیر قابل کنترل و برگشت ناپذیری می رسد. چنین اتفاقی می تواند تبدیل به یک انفجار هوش شود و به یک عامل فراهوشمند بیانجامد که هوش تمام بشریت را پشت سر بگذارد. شرکتهای پیشرو در زمینه هوش مصنوعی و یادگیری ماشین عبارتند از: شرکت DeepMind، شرکت OpenAI، گروه AI شرکت Facebook وگروه AI شرکت Google. کتابهای بسیاری برای آموزش یادگیری ماشین منتشر شده اند که عبارتند از Artificial Intelligence: A Modern Approach by Stuart Russell, Peter Norvig، Machine Learning for Dummies by John Paul Mueller، Python for Data Analysis by Wes McKinney، Hands-on Machine Learning with Scikit-Learn and TensorFlow by Aurelien Geron، Reinforcement Learning: An Introduction by Andrew Barto and Richard S. Sutton، Data Science from Scratch: First Principles with Python by Joel Grus و Pattern Recognition and Machine Learning by Christopher M. Bishop.منبع: (https://quera.ir/college/land/college/8522)