امروزه هوش مصنوعی پیشرفت های چشمگیری داشته است. در یک تعریف کلی اگر بخواهیم هوش مصنوعی را تعریف کنیم میتوان به این صورت تعریف نمود که یک عامل هوش مصنوعی سعی میکند مانند انسان فکر و عمل کند و به صورت منطقی در مواجه با رویداد جدید بتواند منطقی تصمیم بگیرد. امروزه هر برنامهای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته میشود.
یادگیری ماشین یک زیر مجموعه از هوش مصنوعی است که دارای ویژگی هایی است که از سایر روش ها متمایز میشود ،از جمله :
· یادگیری و آموزش خود با استفاده از داده و بدون استفاده از دستورات مستقیم
· تغییر خود با دیدن دادههای جدید ؛ یعنی همانند انسان با کسب تجربیات(داده) جدید رفتار خود را تغییر دهد.
تعریف کلی : سیتمی که بتواند برای کاربردT (تشخیص چهره فرد) با استفاده از تجربیاتE (دادگان تصویر از چهره فرد که آموزش دیده است ) بتواند عملکرد P(درست بودن تشخیص ) را افزایش دهد. به هرحال مدل به طور ۱۰۰ درصدی نتیجه درست و مناسبی را ارائه نمیدهد بنابراین به معیاری برای بررسی و اندازهگیری میزان دقت این الگوریتم نیاز داریم تا در صورت نامناسب بودن دقت آن، با تغییر پارامترهای الگوریتم بتوانیم به دقت بالاتری برسیم.
داده ها عنصر محوری یادگیری ماشین است.آنچه داده را ارزشمند میکند نمایندگی آن از واقعیت است و اطلاعاتی که در اختیارمان میگذارد. مثلا برای طراحی یک سیستم به توان رساندن عدد ما از الگوریتمی استفاده نمیکنیم که دو عدد گرفته و توان را حساب کند، بلکه تعدادی عدد با توان ها و جوابشان را به مدل میدهیم تا مدل خودش یاد بگیرد و الگوریتم توان را کشف کند تا بتواند برای داده های جدید دیده نشده، خروجی مناسب دهد. استفاده از شبکههای عصبی مصنوعی یکی از انواع روشهای یادگیری ماشین است. قدرت الگوریتم های یادگیری ماشین باعث شده است تا بتواند در حوزه های صنعتی و پزشکی مانند تشخیص spam بودن ایمیل، تشخیص چهره، پیش بینی بازار بورس و یا قیمت سهام یک شرکت، تصمیم گیری درباره درخواست وام مشتری در سیستم بانکداری و...ورود پیدا کند.
یکی از عوامل محبوبیت این رشته تعامل آن با زبان پایتون و R که از محبوب ترین زبان های برنامه نویسی است که باعث توجه برنامه نویسان شده است. تفاوت اصلی میان این دو، کاربرد بیشتر پایتون در صنعت است. به صورتی که اکثر شرکتها برای بخش production از پایتون استفاده میکنند و R بیشتر به استفادههای آکادمیک محدود شده است. سایت Kaggle جامعهای برای برنامهنویسان حوزه یادگیری ماشین است. پلتفرم های دیگری نیز در کنار این وبسایت شروع به فعالیت و برگزاری مسابقات کردهاند که میتوان به CodaLab ، Signate و DrivenData اشاره کرد.
موقعیت شغلی :
دانشمند داده و تحلیل گر داده
دانشمند داده امور دادهکاوی را معمولا با زبانهای برنامهنویسی و کتابخانههای آن انجام میدهد ولی تحلیلگر از پلتفرمها و نرمافزارها استفاده میکند. تحلیلگر با همه در ارتباط است و معمولا سوالات را دیگران برایش مطرح میکنند اما دانشمند داده خودش سوالات را طرح میکند، سوالاتی که در تصمیمات شرکت تاثیرگذار هستند.
مهندس داده:
مدیریت جریان های داده بزرگ و یکپارچهسازی آن در شرکتهای بزرگ به تدریج یک موقعیت شغلی جدید بهوجود آمد. این جایگاه جدید دادهها را از منابع مختلف و با قالبهای مختلف میگیرد و در اختیار تحلیلگران و توسعهدهندگان و دیگر مصرفکنندگان داده قرار میدهد.
مهندس یادگیری ماشین:
مهندس یادگیری ماشین علاوه بر اینکه داده را تا رسیدن به مدل همراهی میکند، مسئول رساندن خروجی به کاربر نهایی نیز هست. او مدل تولید شده را بررسی میکند و یا پس از انجام بررسیهای لازم، مدل نظری را وارد فرآیند عملیاتی میکند. او باید پیچیدگیهای محاسباتی و حافظهای را محاسبه کند و مدل طراحی شده توسط دانشمند داده را برای کار در مقیاس بزرگ آماده کند.
انواع داده :
1. متن : متن ها یکی از مهم ترین نوع داده هستند که در پردازش زبان طبیعی کاربرد دارد. یکی از چالشهای اصلی پردازش متن، تفاوت زبان روزمره و رسمی است. همانطور که برای یادگیری زبانهای خارجی، درک جملات غیررسمی مشکلتر است، پردازش متنهایی که به زبان روزمره نوشته شدهاند نیز برای کامپیوتر چالش برانگیزتر است.متن و صوت جزو دادگان زبان طبیعی به شمار میآید.
2. تصویر : از کابردهای روزمره بینایی ماشین میتوان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی اشاره کرد.داده فیلم هم از تعدادی زیادی فریم(تصویر) تشکیل میشود.
3. جدولی : به دادگان درون جدول دادگان ساختار یافته گفته میشود. دادگان جدولی شامل دو دسته دادگان عددی مثل سن و ارزش سهام و دادگان دسته ای مانند جنسیت یا کشور تابعیت فرد است.
سری زمانی : در مورد بعضی از انواع داده، تغییرات آن و در نتیجه مقدار آن در طول زمان اهمیت ویژهای دارد مثل نوار قلبی
مثالی از کاربرد یادگیری ماشین در صنایع معدنی:
1. پردازش تصاویر ماهواره ای
2. پیشبینی متغیرهای ژئومتالورژیکی
3. آنالیز مربوط به تصاویر جعبه مغز ها
4. پردازش تصاویر پهباد برای ردیابی هدف از پیش تعین شده
به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:
1. یک الگوریتم (مدل) برای تصمیمگیری
2. یک معیار برای امتیازدهی اینکه عملکرد مدل چقدر خوب(درصد تصمیمهای درست) بوده
3. بررسی خودکار کیفیت مدل بر اساس امتیاز
4. یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدل
انواع یادگیری ماشین:
یادگیری با نظارت
در این نوع از یادگیری، نمونههایی که برای آموزش الگوریتم استفاده میشوند، دارای برچسب هستند.از جمله یادگیری با نظارت میتوان رگرسیون و طبقه بندی اشاره کرد. تفاوت طبقه بندی و رگرسیون در داده آموزش و خروجی مدل است. در رگرسیون داده ورودی به صورت پیوسته است و در خروجی ما از مدل انتظار داریم یک مقدار مناسب برای ورودی انتخاب کند مانند تخمین قیمت مسکن است ولی در طبقه بندی ،داده ورودی به صورت گسسته می باشد و هدف انتخاب دسته مناسب برای داده ورودی است مانند تشخیص سیب یا پرتقال بودن میوه ورودی.
یادگیری بدون نظارت
تفاوت این نوع از یادگیری با یادگیری نظارتشده، تنها در نبودن برچسب داده است.از یادگیری بینظارت اکثرا برای تحلیل اکتشافی دادهها و خوشهبندی استفاده میشود.جمع آوری دادگان بدون برچسب بسیار راحت تر است. الگوریتمهای یادگیری ماشین بینظارت که الگوهای پنهان بین دادهها را پیدا میکند، به طور کلی به سه دسته زير دسته بندي ميشود
*خوشهبندی (clustering): خوشهبندی به معنی دستهبندی اتوماتیک دادهها به خوشههای همگن است، به این صورت که دادههای هر خوشه، ویژگیهای یکسانی داشته باشند. اولین گام برای خوشهبندی دادهها، انتخاب کردن معیاری برای خوشهبندی است، فاصله اقلیدسی یکی از پرکاربردترین معیارهای سنجش فاصله است ولی تنها معیار نیست و معیار های دیگری وجود دارد.
*کاهش ابعاد (dimensionality reduction): روش کاهش ابعاد یعنی کاهش دادن تعداد ویژگیهایی که از آنها برای آموزش مدل یادگیری ماشین خود استفاده میکنیم زیرا هر چه تعداد ویژگی ها بیشتر باشد برای آموزش خوب و بدون بیش برازش(overfitting) نیاز به دادگان بیشتری داریم و در صورتی که دادگان در دسترس نباشد باید از این تکنیک برای آموزش استفاده کرد.
*قانون وابستگی (association rule mining)
یادگیری تقویتی
یادگیری تقویتی، یکی از روش های یادگیری ماشین است که با ذهنیت آزمون و خطا کار میکند. یادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بینظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط میآموزد. در این یادگیری عامل هوشمند در صورت نزدیک شدن به هدف امتیاز و اگر دور شود جریمه میشود.
چالشهای مربوط به مدلها : بیشبرازش (Overfitting)، کمبرازش (Underfitting) و زمان نمونهای از چالشهای مربوط به مدلها و الگوریتمهای هوشمصنوعی و یادگیریماشین هستند. بیش برازش وقتی اتفاق میافتد که مدل ها خیلی روی داده آموزشی ،آموزش ببيند: به عبارت بهتر مدل نمیتواند آینده را به درستی پیشبینی کند. علت عدم توانایی در پیشبینی آینده این است که دادههای آموزش را زیاد از حد یاد گرفته است.
کم برازش وقتی اتفاق میافتد که مدل خیلی ساده باشد و زیاد روی دادگان آموزش fit نشود در این صورت خطا در آموزش و تست زیاد است. زمان یک فاکتور اساسی مدل است .هر چه زمان پاسخ الگوریتم به Real time نزدیک باشد بهتر است. انتخاب فاکتورهای یادگیری تاثیر زیادی در زمان آموزش و پاسخ دهی مدل دارد.
دادگان آموزش و آزمایش:
اصطلاحا به دادگانی که برای آموزش استفاده میشوند، دادگان آموزش(train) و به دادگانی که برای ارزیابی استفاده میشوند، دادگان آزمایش(test) میگوییم.
زبان پايتون براي علم داده:
تا امروز پایتون به عنوان یک زبان برنامه نویسی سطح بالا در توسعهی برنامههای وب و موبایل و همچنین در آنالیز داده و محاسبات علمی به کار رفته است. پایتون زبانی دارای مفسر است. پایتون به نسبت زبانهای دیگر نوشتار سادهتری دارد و به همین دلیل سریع قابل یادگیری است و این باعث میشود کار، به خصوص در پروژههای بزرگ، راحتتر شود. در صورت مواجه با خطا از سايت stackoverflow استفاده ميشود.
تفاوت زبان پايتون و R :
· تقریبا هر ۱۸ ماه یک بار نسخهی جدید و با ثباتی از پایتون عرضه میشود- پایتون دارای نوشتار ساده است. - پایتون کتابخانههای متنوعی برای کار با داده و انجام عملیات یادگیری ماشین دارد.
· R توانایی کشیدن نمودارهای با کیفیت و متنوعی را دارد.- R به سرعت در حال توسعه است و تقریبا برای همهی تکنیکهای آماری پکیج دارد.
مهمترين کتابخانه هاي پايتون:
· Numpy: با استفاده از نامپای، پردازش و محاسبات روی آرایهها سریعتر انجام میشود. در نامپای اعضای یک آرایه همه از یک نوع میباشند و باعث میشود تا آرایهها حجم کمتری در رم اشغال کنند.
· Pandas: با پانداس عملیات تحلیل و پاکسازی و آمادهسازی داده را در پایتون میتوان خیلی سریع و آسان انجام داد.
· Matplotlib: این کتابخانه بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است.
· scikit-learn: سایکتلرن حاوی ابزارهای متنوعی برای یادگیری ماشین و مدلسازی آماری است.
از ديگر کتابخانه هاي کاربردي برای مصور سازی داده میتوان از پلاتلی (Plotly) و سیبورن (Seaborn) هم استفاده کرد. برای امور یادگیری عمیق، پایتورچ (Pytorch) ، تنسورفلو (TensorFlow) و کراس (Keras) بیشتر مورد استفاده قرار میگیرند. برای پردازش متن nltk و اسپیسی (Spacy) کارایی بیشتری دارند و در زمینه پردازش عکس میتوان از کتابخانههای اوپن سیوی (OpenCV) و سایکت ایمیج (scikit-image) نام برد.
چرا از یادگیریماشین استفاده میکنیم:
· افزایش بی حد و حصر دادهها
· ذخیره سازی مقرون به صرفه دادهها
· افزایش قدرت پردازندهها و کاهش هزینههای آنها
داده اساس یادگیریماشین است و هیچ الگوریتم و مدلی با داده بد نمیتواند عملکرد خوبی داشته باشد. کمیت نامناسب داده، داده بیکیفیت و ویژگیهای نامربوط از جمله چالشهایی است که به داده مربوط میشوند. اگر به تعداد کافی داده به الگوریتم تزریق نکنیم، نمیتوانیم انتظار عملکرد خوبی داشته باشیم. داده بیکیفیت پر است از مقادیر اشتباه و گمشده.
همواره باید سعی در انتخاب ویژگیهایی داشته باشیم که مدل بتواند از آنها بیاموزد و از دل آنها الگوهایی برای پیشبینی آینده استخراج کند.
زمان در یادگیریماشین از دو جهت اهمیت دارد؛ هم مدت زمانی که طول میکشد تا آموزش مدل تمام شود، هم زمانی که مدل برای پیشبینی نمونهها مصرف میکند.
چهار شرکت معروف در حوزه یادگیری ماشین و هوش مصنوعی :1-DeepMind 2-Open AI 3- گروه (گروه AI)Google 4-FaceBook(گروه AI)
مهمترین کتب یادگیری ماشین :
Pattern Recognition and Machine Learning
Hands-On Machine Learning with Scikit-Learn and TensorFlow
Python for Data Analysis
Python for Data Analysis
Machine Learning for Dummies
Artificial Intelligence: A Modern Approach
منابع :منبع(https://quera.ir/college/land/college/8522/)