یادگیری ماشین

مفاهیم ابتدایی یادگیری ماشینیادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را می‌توان زیر مجموعه هوش مصنوعی در نظر گرفت. یادگیری ماشین ویژگی‌هایی دارد که آن را از دیگر روش‌های هوش مصنوعی متمایز می‌کند.یکی از مهم‌ترین ویژگی‌های یادگیری ماشین، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است. ویژگی دیگر یادگیری ماشین، تغییر خود با دیدن داده‌های جدید است؛ یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر می‌دهد.یادگیری عمیقیادگیری عمیق عمری بسیار کوتاه‌تر از یادگیری ماشین دارد. استفاده از شبکه‌های عصبی مصنوعی یکی از انواع روش‌های یادگیری ماشین است که از سال‌ها پیش در حال گسترش است. این شبکه‌ها از ساختار ذهن انسان الگوبرداری شده‌اند و ساختاری لایه لایه دارند. با پیشرفت تکنولوژی و افزایش توان محاسباتی کامپیوتر‌ها، مهندسان توانستند تعداد لایه‌های این شبکه‌ها را افزایش دهند و این شروعی برای یادگیری عمیق بود. یادگیری عمیق می‌تواند الگوهای پیچیده‌تری را در داده پیدا کند و امروزه به یکی از جذاب‌ترین بخش‌های یادگیری ماشین تبدیل شده است.یادگیری ماشین در عصر جدیدقدرت الگوریتم‌های یادگیری ماشین امکانات بسیاری را به جامعه عرضه کرده و حوزه‌های بسیاری به آن وابسته شده‌اند. صنعت، دانشگاه، حوزه سلامت، اقتصاد و تجارت، کسب و کارها و بسیاری دیگر، از یادگیری ماشین برای پیشبرد اهداف خود استفاده می‌کنند. امروزه ماشین‌های بدون راننده در سطح شهرها در حال حرکت هستند، صاحبان ‌محصول از سیستم‌های پیشنهاد‌ دهنده برای پیشنهاد محصول استفاده می‌کنند، اقتصاددانان برای پیش‌بینی روند بازار از آن استفاده می‌کنند و همچنان کاربرد‌های بیشتری در حال ایجاد شدن است.موقعیت‌های شغلی مرتبط با یادگیری ماشینبا درک اهمیت دانش و اطلاعات، بسیاری به فکر استفاده از داده‌های موجود افتادند و سعی کردند در تصمیم‌گیری‌ها از نتایج تحلیل داده استفاده کنند. نه فقط شرکت‌ها، بلکه اشخاص برای اداره بهتر امور شخصی، دولت‌ها برای اداره کشور و دانشمندان برای گسترش علم از آن بهره گرفتند.نیاز جامعه به بررسی آمار و داده‌ها سبب به وجود آمدن تخصص‌هایی در این زمینه شد. افرادی در سازمان‌ها مشغول به کار شدند تا امور مرتبط با داده را انجام دهند. بسته به نوع فعالیت افراد اسامی مختلفی به آن‌ها نسبت داده می‌شود. در این قسمت هر کدام را معرفی می‌کنیم و کاربرد آن‌ها را در مثال‌هایی می‌بینیم.(Data Analyst)تحلیل‌گر دادهتحلیل‌گر داده، معماری مناسب برای جمع‌آوری اطلاعات یک سازمان را طراحی می‌کند و پایگاه داده مناسب برای این کار را انتخاب می‌کند؛ داده‌های خام را از منابع داخلی و خارجی جمع‌آوری می‌کند و پس‌ از آماده‌سازی و انتخاب قالب مناسب، آنها را در پایگاه‌ داده‌ای که طراحی کرده ذخیره می‌کند. سپس داده‌ها را مورد بررسی قرار می‌دهد و از داده اطلاعات مفید استخراج می‌کند.(Data Scientist)دانشمند دادهمی‌توان گفت دانشمند داده سطح بالاتری از تحلیلگر داده دارد و نیازمند دانش آماری و ریاضیاتی و برنامه‌نویسی قوی‌تری نسبت به تحلیلگر داده است. همه اموری که تحلیل‌گر انجام می‌دهد، دانشمند هم می‌تواند انجام دهد و علاوه بر آن باید با مفاهیم یادگیری ماشین و دانش برنامه‌نویسی آشنا باشد تا بتواند ابزارهایی برای تحلیل عمیق‌تر داده طراحی کند.دانشمند داده امور داده‌کاوی را معمولا با زبان‌های برنامه‌نویسی و کتابخانه‌های آن انجام می‌دهد ولی تحلیل‌گر از پلتفرم‌ها و نرم‌افزار‌ها استفاده می‌کند. تحلیل‌گر با همه در ارتباط است و معمولا سوالات را دیگران برایش مطرح می‌کنند اما دانشمند داده خودش سوالات را طرح می‌کند، سوالاتی که در تصمیمات شرکت تاثیرگذار هستند.(Data Engineer)مهندس دادهکار یک مهندس داده را از جنبه‌های مختلفی می‌توان مورد بررسی قرار داد. می‌توان کار او را با مفاهیم کلان‌داده شرح داد یا روند رسیدن داده خام به دست مصرف‌کنندگان داده را به او نسبت داد. او پس از مشورت با دیگر اعضای شرکت انتخاب می‌کند که چه داده‌ای از میان سیل داده تولیدی در اختیار شرکت قرار بگیرد. پس از انتخاب منابع داده، داده‌های منابع مختلف را یکپارچه می‌کند و برای نگهداری بهینه آن‌ها برنامه‌ریزی می‌کند.(Machine Learning Engineer)مهندس یادگیری ماشینمهندس یادگیری ماشین در واقع نقطه تلاقی مهندسی نرم‌افزار و علم داده است. مهندس یادگیری ماشین نقاط مشترک فراوانی با مهندس داده دارد. هر دو در فرآیند رسیدن داده از محل تولید تا مدل نقش داشته و با ساختار‌های داده و پیچیدگی‌های مرتبط با آن آشنایی دارند. دانش یادگیری ماشین برای مهندس داده اجباری نبود ولی برای مهندس یادگیری ماشین الزامی است. وظایف مهندس یادگیری ماشین جنبه نظری و عملیاتی دارند. به این صورت که او باید دانش کاملی از الگوریتم‌ها و روش‌های یادگیری ماشین داشته باشد. هم قبل از استقرار مدل، آن را مورد بررسی و تحلیل قرار دهد و هم بر فرآیند عملیاتی ساختن آن و محاسبه پیچیدگی‌ها نظارت داشته باشد. سپس بعد از از استقرار، مسئول نظارت و رسیدگی به آن خواهد بود.سرگذشت یادگیری ماشینپیدایش یادگیری ماشین، ریشه در تحقیقات هوش مصنوعی داشته و نتایج آن بعدها منجر به پیدایش مدل‌هایی برای پیدا کردن الگو‌ها در داده و پیش‌بینی روند داده‌ها شده است. یادگیری ماشین زمینه‌ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه‌نویسی صریح را می‌دهد. ویژگی اصلی یادگیری ماشین خود می باشد. (Self-Learning)آموزشی یابه عقیده بسیاری در آموزش الگوریتم یادگیری ماشین، نیازی به دخالت انسان برای یادگیری نیست. به بیان دیگر، الگوریتم خود، نیازهای خود را تشخیص می‌دهد و خود را ارتقا می‌دهد.درباره دادهداده‌ها عنصر محوری یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند، به این صورت که ما داده‌ها را به عنوان ورودی به الگوریتم می‌دهیم تا خروجی مورد نیازمان را دریافت کنیم. اما داده چیست؟ داده‌، در نتیجه مشاهدات و اندازه‌گیری‌ها شکل می‌گیرد و توصیف این وضعیت مشاهده شده به شمار می‌آید. داده‌ای که پردازش زبان طبیعی با آن کار می‌کند، جملات و کلمات تولید شده توسط انسان‌ها هستند، که ممکن است به صورت نوشتاری یا صوت در اختیار الگورتیم‌های کامپیوتری قرار بگیرد. برخی از کاربردهای این حوزه عبارتند از:تشخیص گفتار: تشخیص گفتار، برقراری ارتباط با کامپیوترها را از طریق حرف زدن عادی ممکن می‌سازد و خود دریچه‌ای به سایر کاربردهای هوش مصنوعی است.دسته‌بندی نوشتارها یا نظرات: مثلاً در یک فروشگاه اینترنتی نظرات مثبت و منفی و نقاط قوت و ضعف هر کالا می‌تواند به این صورت دسته‌بندی شود.پاسخ دادن به سوالات: چیزی که گاهی هنگام جستجو در گوگل با آن مواجه می‌شویم. یعنی گوگل پاسخ سؤالی که سرچ شده را از متن‌ها استخراج کرده و بالاتر از نتایج جستجو سریع به ما نشان می‌دهد.ماشین چگونه یاد می‌گیرد؟در یادگیری ماشین، ما صرفا مدلی را طراحی می‌کنیم که این مدل خود قادر به یادگیری و پیدا کردن الگوها به طور اتوماتیک است. در حالاتی که مساله مورد نظر پیچیده می‌شود، پیدا کردن این الگوها برای انسان اغلب دشوار یا حتی غیر ممکن می‌شود اما برای ماشین‌ها به دلیل قدرت پردازشی بالا این کار بسیار ساده‌تر است و این موضوع دلیل اصلی شهرت یادگیری ماشین می‌باشد.آقای تام میشل در کتاب یادگیری ماشین خود، یادگیری ماشین را از دید مهندسی به این شکل تعریف کرده است:گر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی می‌شود، با تجربه E افزایش یابد، می‌گوییم که برنامه یاد گرفته است از تجربه E با توجه به تکلیف T و سنجه P استفاده کند.تکلیف Tدر واقع همان مساله‌ای است که ما انتظار داریم بتوانیم با یادگیری ماشین حل کنیم.تجربه Eبرای انجام فرایند یادگیری، که منجر به حل تکلیف T می‌شود، ما نیازمند تعدادی نمونه (sample) هستیم که اطلاعات مورد نیاز در مورد مساله را به ما می‌دهند. برای مثال در مساله‌ی وام دادن بانک، می‌توان از سابقه‌ی مشتریان پیشین و این که وام خود را پرداخت کرده‌اند یا خیر برای مجموعه‌ی داده (dataset) یا نمونه‌ها استفاده نمود.سنجه Pهر مدل یادگیری ماشینی که طراحی کنیم، به هرحال به طور ۱۰۰ درصدی نتیجه درست و مناسبی را ارائه نمی‌دهد بنابراین به معیاری برای بررسی و اندازه‌گیری میزان دقت این الگوریتم نیاز داریم تا در صورت نامناسب بودن دقت آن، با تغییر پارامترهای الگوریتم بتوانیم به دقت بالاتری برسیم. به این معیار سنجه‌ی P می‌گوییم.به طور کلی یادگیری ماشین به سه دسته کلی تقسیم‌بندی می شود.یادگیری بانظارتفرض کنید که کامپیوتر یک بچه است و ما ناظر (supervisor) او، به طور مثال والد یا معلم هستیم. ما می‌خواهیم به این کودک یاد بدهیم که یک خروس چه شکلی است. برای این کار، ما تعدادی عکس که بعضی از آن‌ها عکس خروس، و بعضی حیوانات دیگری هستند به کامپیوتر نشان می‌دهیم. وقتی که ما عکس خروس را نشان می‌دهیم، جمله «این خروس است» را صدا می‌زنیم و وقتی عکس‌هایی که خروس نیستند را نشان می‌دهیم، جمله «این خروس نیست» را می‌گوییم. به این روش یادگیری، یادگیری نظارت‌شده (supervised learning) می گوییم.یادگیری بی‌نظارتتفاوت این نوع از یادگیری با یادگیری نظارت‌شده، تنها در نبودن برچسب‌ها است. به عبارت دیگر، هیچ ناظر (برچسب) به کودک (کامپیوتر) نمی‌گوید که چه زمانی درست پیش‌بینی کرده است و چه زمانی مرتکب اشتباه شده است. در این روش یادگیری، مدل به تنهایی و بدون کمک برچسب‌هایی که در روش نظارت‌شده دیدیم، باید الگوهای پنهان را پیدا کند.یادگیری تقویتییادگیری تقویتی، یکی از روش های یادگیری ماشین است که با ذهنیت آزمون و خطا کار می‌کند. عامل هوشمند (agent) طبق حالت جاری (state) ، حرکتی (action) نجام می‌دهد و بر اساس آن حرکت بازخورد (reward) دریافت می‌کند؛ این بازخورد ممکن است مثبت یا منفی (پاداش یا تنبیه) باشد و عامل با این بازخورد خط‌مشی (policy) خود را تغییر می‌دهد.پایتون برای علم دادهپایتون یک زبان برنامه نویسی است که در اوایل دهه‌ی ۹۰ میلادی، توسط خیدو فان روسوم درهلند اختراع شد. از زمان اختراعش تا امروز پایتون به عنوان یک زبان برنامه نویسی سطح بالا در توسعه‌ی برنامه‌های وب و موبایل و همچنین در آنالیز داده و محاسبات علمی به کار رفته است.کتابخانه‌های علم‌داده در پایتوننامپای (NumPy)کتابخانه نامپای پکیجی بنیادی در اکوسیستم سای‌پای (اکوسیستم علم داده در پایتون) است. بنابراین فارغ از کاری که با داده انجام می‌شود، یادگیری آن واقعا ارزشمند خواهد بود.پانداس (Pandas)با استفاده از ساختار‌های داده و امکاناتی که در پانداس تعبیه شده، عملیات تحلیل و پاک‌سازی و آماده‌سازی داده را در پایتون می‌توان خیلی سریع و آسان انجام داد.مت‌پلات‌لیب (Matplotlib)این کتابخانه بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است. بسیاری از نمودار‌های پرکاربرد را می‌توان با مت‌پلات‌لیب ایجاد کرد و امکانات بسیاری برای شخصی‌سازی در آن گنجانده شده است.سایکت‌لرن (scikit-learn)پروژه سایکت‌لرن در سال ۲۰۰۷آغاز شد و پس از آن با همکاری برنامه‌نویسان به شکلی متن باز در حال گسترش است. این کتابخانه معروف‌ترین و پرکاربردترین کتابخانه یادگیری ماشین در پایتون می‌باشد و از محبوبیت بسیاری برخوردار است.چرا از یادگیری‌ماشین استفاده می‌کنیم؟استفاده از یادگیری‌ماشین به دلایل زیر خیلی فراگیر شده است:· افزایش بی حد و حصر داده‌ها· ذخیره سازی مقرون به صرفه داده‌ها· افزایش قدرت پردازنده‌ها و کاهش هزینه‌های آن‌هاچالش‌های مربوط به دادهداده اساس یادگیری‌ ماشین است و هیچ الگوریتم و مدلی با داده بد نمی‌تواند عملکرد خوبی داشته باشد. کمیت نامناسب داده، داده بی‌کیفیت و ویژگی‌های نامربوط از جمله چالش‌هایی است که به داده مربوط می‌شوند.چالش‌های الگوریتمیپس از آن‌که توانستیم چالش‌های مربوط به داده را مدیریت کنیم، سراغ الگوریتم و مدل می‌رویم. بیش‌برازش (Overfitting)، کم‌برازش (Underfitting) و زمان نمونه‌ای از چالش‌های مربوط به مدل‌ها و الگوریتم‌های هوش‌مصنوعی و یاد‌گیری‌ماشین هستند.مسئله زمانزمان در یادگیری‌ماشین از دو جهت اهمیت دارد: هم مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، هم زمانی که مدل برای پیش‌بینی نمونه‌ها مصرف می‌کند. مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، طول مدت توسعه محصول را تحت تاثیر قرار می‌دهد و زمان مصرفی توسط مدل برای پیش‌بینی نمونه‌ها زمانی است که کاربر‌ نهایی تجربه می‌کند. دانشمند داده همواره سعی می‌کند هر دو زمان را کمینه کند.منبع(https://quera.ir/college/land/college/8522