یادگیری ماشینی چیست؟

  • 22 آذر , 1396
  • 350 نفر
  • کد خبر 100102

یکی از حوزه های تکنولوژی که نقشی قابل توجه در بهبود سرویس های ارائه شده در تلفن های همراه و فضای مجازی دارد، یادگیری ماشینی است. گاهی اوقات دو عبارت یادگیری ماشینی و هوش مصنوعی به جای یکدیگر مورد استفاده قرار می گیرند و این مساله به خصوص زمانی که یک شرکت بزرگ قصد دارد از جدیدترین نوآوری هایش سخن بگوید بیشتر به چشم می خورد، با این همه هوش مصنوعی و یادگیری ماشینی دو حوزه کاملا مجزا و البته متصل به یکدیگر در علم کامپیوتر به شمار می روند.

از جمله اهداف هوش مصنوعی این است که بتواند رفتار ذهن انسان را تقلید کند که برای این منظور نیز ماشین نیازمند توانمندی های یادگیری است. با این همه، هدف دانشمندان هوش مصنوعی کاملا گسترده و جامع است و علاوه بر یادگیری، موارد دیگری شامل نمایش دانش، منطق و حتی اموری نظیر تفکر انتزاعی را نیز در بر می گیرد.

از سوی دیگر، یادگیری ماشینی صرفا روی مقوله نوشتن نرم افزار تاکید دارد که می تواند از تجربیات گذشته درس بگیرد. اما نکته جالب تر در این رابطه آنکه یادگیری ماشینی در قیاس با هوش مصنوعی ارتباط نزدیک تری با کنکاش داده ها و تحلیل های آماری دارد. چرا اینگونه است؟ 

machine_learning_robot-840x536

 

 

 

یکی از تعاریف یادگیری ماشینی آنطور که از سوی تام میشل پروفسور دانشگاه کارنگی ملون ارائه گردید بدین شرح است: نوعی برنامه کامپیوتری که با توجه به برخی وظایف گروه T و عملکرد P، تجربه E را شکل می دهد، اگر عملکرد آن در گروه وظایف T آنطور که توسط P اندازه گیری شده با تجربه E بهبود پیدا کند.

برای درک بهتر این تعریف بهتر است آن را به شکل ساده شده روبرو برایتان شرح دهیم: اگر یک برنامه کامپیوتری بتواند عملکرد خود در انجام یک وظیفه را با استفاده از تجربیات قبلی اش بهبود ببخشد آنگاه می توانید بگویید که آن ماشین یاد گرفته است.

اما در پاره ای از موارد دولوپرها کلیه پارامترهای لازم برای انجام یک وظیفه را برای ماشین برنامه نویسی می کنند و داده های مورد نیاز برای انجام آن را نیز در اختیارش قرار می دهند که این نوع عملکرد کاملا با یادگیری ماشینی فرق دارد.

برای نمونه یک برنامه کامپیوتری می تواند بازی اکس او را انجام دهد چون یک برنامه نویس کد مناسب و استراتژی برنده شدن را برای آن نوشته است با این همه برنامه ای که هیچ استراتژی از پیش تعریف شده ای برای این کار ندارد و تنها قوانین بازی و سناریوی پیروزی (اینکه شروط برنده شدن چیست) را می داند، باید بازی کردن را با تکرار و تمرین یاد بگیرد.

اما این مساله صرفا در مورد بازی ها به کار برده نمی شود و در مورد برنامه هایی که عملیات طبقه بندی و پیش بینی را انجام می دهند نیز صدق می کند. طبقه بندی فرایندی است که در آن یک ماشین می تواند چیزهای مختلف را با استفاده از یک دیتابیس (شامل اطلاعات بصری و داده های حاصل از اندازه گیری) تشخیص داده و آنها را گروه بندی کند.

پیش بینی (که از آن تحت عنوان سیر بازگشت داده های آماری یاد می شود) زمانی رخ می دهد که یک ماشین بتواند ارزش یک چیز را براساس ارزش های قبلی حدس بزند (پیش بینی کند). برای نمونه با در نظر گرفتن مجموعه ای از خصوصیات برای یک خانه، تصمیم می گیرد که ارزش آن براساس خانه های فروخته شده قبلی چقدر است.

 

iknowaflockofsheep-840x509
 

 

 

با این توضیحات، به تعریف دیگری از یادگیری ماشینی می رسیم که در واقع همان استخراج دانش از داده هاست. در این تعریف شما با یک پرسش روبرو هستید و قصد دارید به آن پاسخ دهید و از طرفی، تصورتان این است که جواب در داخل داده ها قرار دارد و شاید به همین خاطر است که یادگیری ماشینی به داده های آماری و کنکاش آنها مربوط می شود.

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

یادگیری ماشینی را می توان به سه گروه اصلی تقسیم کرد: نظارتی، غیر نظارتی و تقویت شده که تعاریف هر یک نیز به به شرح زیر است.

یادگیری نظارت شده: زمانی رخ می دهد که شما با استفاده از داده هایی که به خوبی برچسب گذاری شده اند به یک ماشین آموزش می دهید؛ به بیان دیگر در این نوع یادگیری، داده ها از قبل با پاسخ های درست (نتیجه) برچسب گذاری شده اند. برای نمونه به ماشین عکسی از حرف A را نشان می دهید. سپس پرچم ایران که سه رنگ دارد را به آن نشان می دهید. یاد می دهید که یکی از رنگ ها قرمز است و یکی سبز و دیگری سفید. هرچه این مجموعه اطلاعاتی بزرگ تر باشد ماشین هم بیشتر می تواند در مورد موضوع یاد بگیرد.

پس از آنکه آموزش دادن به ماشین به اتمام رسید، داده هایی در اختیارش قرار داده می شوند که کاملا تازگی دارند و قبلا آنها را دریافت نکرده. سپس الگوریتم یادگیری با استفاده از تجربیات قبلی خود آن اطلاعات را تحلیل می کند. مثلا حرف A را تشخیص می دهد و یا رنگ قرمز را مشخص می کند.

یادگیری نظارت نشده: این نوع یادگیری زمانی رخ می دهد که ماشین با استفاده از داده هایی آموزش می بینید که هیچگونه برچسب گذاری روی آنها انجام نشده. در این روش، هرگز به الگوریتم یادگیری گفته نمی شود که داده ها نمایانگر چه هستند. برای نمونه گفته می شود که اینجا یک حرف داریم اما هیچگونه اطلاعاتی در مورد اینکه صحبت از کدام حرف است، به الگوریتم داده نمی شود یا در اینجا مشخصات پرچم را داریم اما نامی از پرچم به میان نمی آید.

یادگیری نظارت نشده همچون گوش دادن به یک فایل صوتی به زبانی است که نمی دانید؛ نه دیکشنری در اختیار دارید و نه حتی یک ناظر (معلم) که به شما بگوید در آن فایل صوتی چه حرف هایی گفته می شود. اگر تنها به یکی از فایل های صوتی ضبط شده به آن زبان گوش دهید چیز زیادی دستگیرتان نمی شود اما چنانچه صدها ساعت پای آنها بنشینید مغزتان شروع به ایجاد نوعی الگو در مورد آن زبان می کند.

از این زمان به بعد شروع به تشخیص الگوها می کنید و به تدریج در حین گوش دادن به آن پادکست ها انتظار شنیدن اصوات خاصی را خواهید داشت. زمانی که یک دیکشنری در اختیارتان قرار داده شود یا اینکه از راهنمایی های یک مربی بهره مند شوید آنگاه با سرعت بیشتری شروع به یادگیری آن زبان خواهید کرد.

نکته کلیدی در مورد یادگیری نظارت نشده آن است که پس از پردازش اطلاعات بدون برچسب، تنها کافی است که یک نمونه از داده های برچسب گذاری شده در اختیار الگوریتم یادگیری قرار داده شود تا کارایی کامل پیدا کند.

به عنوان مثال پس از پردازش هزاران عکس مربوط به حروف انگلیسی، تنها با پردازش حرف A، بلافاصله یک بخش کامل از داده های پردازش شده برچسب گذاری می شوند. مزیت این روش آن است که به مجموعه کوچکی از داده های برچسب گذاری شده برای این کار نیاز است. ایجاد داده های برچسب گذاری شده نیز به مراتب سخت تر از داده های بدون برچسب است. به طور کلی همه ما به حجم انبوهی از داده های بدون برچسب دسترسی داریم و تنها بخش کوچکی از آنها برچسب گذاری شده اند.

یادگیری تقویت شد: این نوع یادگیری شباهت زیادی به نوع نظارت نشده دارد و وجه تشابه شان نیز در آن است که داده های مورد استفاده برای یادگیری برچسب گذاری نمی شوند، با این همه، زمانی که پرسشی در مورد داده ها مطرح می شود، نتیجه درجه بندی خواهد شد. یک مثال خوب برای این نوع یادگیری انجام بازی است. اگر ماشین برنده بازی شود، سپس از نتیجه کار برای تقویت حرکات آتی خود در حین بازی بهره می گیرد.

مجددا باید تاکید کنیم که اگر کامپیوتر تنها یک یا دو بار بازی را انجام دهد این روش تاثیری در عملکرد آن نخواهد داشت اما اگر هزاران بار و حتی میلیون ها بار این کار را انجام دهد آنگاه اثر کلی این کار باعث شکل گیری نوعی استراتژی پیروزی در آن می شود