یادگیری ماشینی چیست
یکی از حوزه های تکنولوژی که نقشی قابل توجه در بهبود سرویس های ارائه شده در تلفن های همراه و فضای مجازی دارد، یادگیری ماشینی است. گاهی اوقات دو عبارت یادگیری ماشینی و هوش مصنوعی به جای یکدیگر مورد استفاده قرار می گیرند و این مساله به خصوص زمانی که یک شرکت بزرگ قصد دارد از جدیدترین نوآوری هایش سخن بگوید بیشتر به چشم می خورد، با این همه هوش مصنوعی و یادگیری ماشینی دو حوزه کاملا مجزا و البته متصل به یکدیگر در علم کامپیوتر به شمار می روند.
از جمله اهداف هوش مصنوعی این است که بتواند رفتار ذهن انسان را تقلید کند که برای این منظور نیز ماشین نیازمند توانمندی های یادگیری است. با این همه، هدف دانشمندان هوش مصنوعی کاملا گسترده و جامع است و علاوه بر یادگیری، موارد دیگری شامل نمایش دانش، منطق و حتی اموری نظیر تفکر انتزاعی را نیز در بر می گیرد.
از سوی دیگر، یادگیری ماشینی صرفا روی مقوله نوشتن نرم افزار تاکید دارد که می تواند از تجربیات گذشته درس بگیرد. اما نکته جالب تر در این رابطه آنکه یادگیری ماشینی در قیاس با هوش مصنوعی ارتباط نزدیک تری با کنکاش داده ها و تحلیل های آماری دارد. چرا اینگونه است؟ بهتر است در ابتدا معنای یادگیری ماشینی را برای شما شرح دهیم. با دیجیاتو همراه باشید.
یکی از تعاریف یادگیری ماشینی آنطور که از سوی تام میشل پروفسور دانشگاه کارنگی ملون ارائه گردید بدین شرح است: نوعی برنامه کامپیوتری که با توجه به برخی وظایف گروه T و عملکرد P، تجربه E را شکل می دهد، اگر عملکرد آن در گروه وظایف T آنطور که توسط P اندازه گیری شده با تجربه E بهبود پیدا کند.
برای درک بهتر این تعریف بهتر است آن را به شکل ساده شده روبرو برایتان شرح دهیم: اگر یک برنامه کامپیوتری بتواند عملکرد خود در انجام یک وظیفه را با استفاده از تجربیات قبلی اش بهبود ببخشد آنگاه می توانید بگویید که آن ماشین یاد گرفته است.
اما در پاره ای از موارد دولوپرها کلیه پارامترهای لازم برای انجام یک وظیفه را برای ماشین برنامه نویسی می کنند و داده های مورد نیاز برای انجام آن را نیز در اختیارش قرار می دهند که این نوع عملکرد کاملا با یادگیری ماشینی فرق دارد.
برای نمونه یک برنامه کامپیوتری می تواند بازی اکس او را انجام دهد چون یک برنامه نویس کد مناسب و استراتژی برنده شدن را برای آن نوشته است با این همه برنامه ای که هیچ استراتژی از پیش تعریف شده ای برای این کار ندارد و تنها قوانین بازی و سناریوی پیروزی (اینکه شروط برنده شدن چیست) را می داند، باید بازی کردن را با تکرار و تمرین یاد بگیرد.
اما این مساله صرفا در مورد بازی ها به کار برده نمی شود و در مورد برنامه هایی که عملیات طبقه بندی و پیش بینی را انجام می دهند نیز صدق می کند. طبقه بندی فرایندی است که در آن یک ماشین می تواند چیزهای مختلف را با استفاده از یک دیتابیس (شامل اطلاعات بصری و داده های حاصل از اندازه گیری) تشخیص داده و آنها را گروه بندی کند.
پیش بینی (که از آن تحت عنوان سیر بازگشت داده های آماری یاد می شود) زمانی رخ می دهد که یک ماشین بتواند ارزش یک چیز را براساس ارزش های قبلی حدس بزند (پیش بینی کند). برای نمونه با در نظر گرفتن مجموعه ای از خصوصیات برای یک خانه، تصمیم می گیرد که ارزش آن براساس خانه های فروخته شده قبلی چقدر است.
iknowaflockofsheep-840x509
با این توضیحات، به تعریف دیگری از یادگیری ماشینی می رسیم که در واقع همان استخراج دانش از داده هاست. در این تعریف شما با یک پرسش روبرو هستید و قصد دارید به آن پاسخ دهید و از طرفی، تصورتان این است که جواب در داخل داده ها قرار دارد و شاید به همین خاطر است که یادگیری ماشینی به داده های آماری و کنکاش آنها مربوط می شود.
انواع یادگیری ماشینی
یادگیری ماشینی را می توان به سه گروه اصلی تقسیم کرد: نظارتی، غیر نظارتی و تقویت شده که تعاریف هر یک نیز به به شرح زیر است.
یادگیری نظارت شده: زمانی رخ می دهد که شما با استفاده از داده هایی که به خوبی برچسب گذاری شده اند به یک ماشین آموزش می دهید؛ به بیان دیگر در این نوع یادگیری، داده ها از قبل با پاسخ های درست (نتیجه) برچسب گذاری شده اند. برای نمونه به ماشین عکسی از حرف A را نشان می دهید. سپس پرچم ایران که سه رنگ دارد را به آن نشان می دهید. یاد می دهید که یکی از رنگ ها قرمز است و یکی سبز و دیگری سفید. هرچه این مجموعه اطلاعاتی بزرگ تر باشد ماشین هم بیشتر می تواند در مورد موضوع یاد بگیرد.
پس از آنکه آموزش دادن به ماشین به اتمام رسید، داده هایی در اختیارش قرار داده می شوند که کاملا تازگی دارند و قبلا آنها را دریافت نکرده. سپس الگوریتم یادگیری با استفاده از تجربیات قبلی خود آن اطلاعات را تحلیل می کند. مثلا حرف A را تشخیص می دهد و یا رنگ قرمز را مشخص می کند.
یادگیری نظارت نشده: این نوع یادگیری زمانی رخ می دهد که ماشین با استفاده از داده هایی آموزش می بینید که هیچگونه برچسب گذاری روی آنها انجام نشده. در این روش، هرگز به الگوریتم یادگیری گفته نمی شود که داده ها نمایانگر چه هستند. برای نمونه گفته می شود که اینجا یک حرف داریم اما هیچگونه اطلاعاتی در مورد اینکه صحبت از کدام حرف است، به الگوریتم داده نمی شود یا در اینجا مشخصات پرچم را داریم اما نامی از پرچم به میان نمی آید.
یادگیری نظارت نشده همچون گوش دادن به یک فایل صوتی به زبانی است که نمی دانید؛ نه دیکشنری در اختیار دارید و نه حتی یک ناظر (معلم) که به شما بگوید در آن فایل صوتی چه حرف هایی گفته می شود. اگر تنها به یکی از فایل های صوتی ضبط شده به آن زبان گوش دهید چیز زیادی دستگیرتان نمی شود اما چنانچه صدها ساعت پای آنها بنشینید مغزتان شروع به ایجاد نوعی الگو در مورد آن زبان می کند.
از این زمان به بعد شروع به تشخیص الگوها می کنید و به تدریج در حین گوش دادن به آن پادکست ها انتظار شنیدن اصوات خاصی را خواهید داشت. زمانی که یک دیکشنری در اختیارتان قرار داده شود یا اینکه از راهنمایی های یک مربی بهره مند شوید آنگاه با سرعت بیشتری شروع به یادگیری آن زبان خواهید کرد.
نکته کلیدی در مورد یادگیری نظارت نشده آن است که پس از پردازش اطلاعات بدون برچسب، تنها کافی است که یک نمونه از داده های برچسب گذاری شده در اختیار الگوریتم یادگیری قرار داده شود تا کارایی کامل پیدا کند.
به عنوان مثال پس از پردازش هزاران عکس مربوط به حروف انگلیسی، تنها با پردازش حرف A، بلافاصله یک بخش کامل از داده های پردازش شده برچسب گذاری می شوند. مزیت این روش آن است که به مجموعه کوچکی از داده های برچسب گذاری شده برای این کار نیاز است. ایجاد داده های برچسب گذاری شده نیز به مراتب سخت تر از داده های بدون برچسب است. به طور کلی همه ما به حجم انبوهی از داده های بدون برچسب دسترسی داریم و تنها بخش کوچکی از آنها برچسب گذاری شده اند.
یادگیری تقویت شد: این نوع یادگیری شباهت زیادی به نوع نظارت نشده دارد و وجه تشابه شان نیز در آن است که داده های مورد استفاده برای یادگیری برچسب گذاری نمی شوند، با این همه، زمانی که پرسشی در مورد داده ها مطرح می شود، نتیجه درجه بندی خواهد شد. یک مثال خوب برای این نوع یادگیری انجام بازی است. اگر ماشین برنده بازی شود، سپس از نتیجه کار برای تقویت حرکات آتی خود در حین بازی بهره می گیرد.
مجددا باید تاکید کنیم که اگر کامپیوتر تنها یک یا دو بار بازی را انجام دهد این روش تاثیری در عملکرد آن نخواهد داشت اما اگر هزاران بار و حتی میلیون ها بار این کار را انجام دهد آنگاه اثر کلی این کار باعث شکل گیری نوعی استراتژی پیروزی در آن می شود.
عملکرد یادگیری ماشینی چگونه است؟
مهندسانی که در زمینه ساخت سیستم های یادگیری ماشینی فعالیت دارند تکنیک های مختلفی را برای این منظور مورد استفاده قرار می دهند. همانطور که پیشتر گفته شد تعداد زیادی از این تکنیک ها به کنکاش داده ها و آمارها مربوط می شوند. برای نمونه، اگر مجموعه ای از اطلاعات را در اختیار داشته باشید که خصوصیات انواع گوناگونی از سکه (شامل وزن و شعاع) را تعریف کنند آنگاه می توانید از تکنیک های آماری نظیر الگوریتم «نزدیک ترین همسایه» برای طبقه بندی سکه ای که قبلا مشاهده نشده استفاده نمایید.
کاری که الگوریتم «نزدیک ترین همسایه» انجام می دهد آن است که به دنبال طبقه بندی نزدیک ترین همسایه آن سکه می گردد و سپس همان طبقه بندی را برای آن سکه جدید نیز قائل می شود.
تعداد همسایه هایی که برای اتخاذ این تصمیم مورد استناد قرار گرفته اند با عنوان «K» شناخته می شود و بر همین اساس عنوان کامل برای الگوریتم به این شرح خواهد بود: «K همسایه نزدیک».
با این همه، الگوریتم های بیشمار دیگری نیز وجود دارند که سعی می کنند همین کار را با استفاده از متدهای متفاوتی انجام دهند. به نمودارهای زیر نگاه کنید:
machine-learning-classifier-comparison2x5-840x542
تصویری که در بالا سمت چپ قرار دارد، مجموعه داده های موجود ما را نشان میدهد. این داده ها به دو گروه طبقه بندی شده اند: آبی و قرمز و باید بگوییم که کاملا فرضی هستند با این حال می توانند نمایانگر هر چیزی باشند و از وزن و شعاع سکه ها گرفته تا تعداد گلبرگ های روی یک گیاه و اندازه آنها را در بر بگیرند.
همانطور که مشاهده می کنید در این تصویر با چند گروه بندی قطعی نیز روبرو هستیم. هرآنچه که در گوشه سمت چپ در بالای تصویر قرار دارد در دسته قرمز جای می گیرد و هرآنچه که در پایین صفحه سمت راست قرار گرفته به گروه آبی تعلق دارد.
با این همه در میانه های تصویر شاهد نوعی تقاطع و یا به نوعی تداخل هستیم. اگر داده ای جدید را دریافت کنید که در میانه های این تصویر جای بگیرد آنگاه این سوال پیش می آید که آن نمونه به گروه قرمز تعلق دارد یا آبی؟
تصاویر دیگر نیز الگوریتم های مختلف و نحوه گروه بندی نمونه های جدید از طریق آنها را نشان می دهند. اگر داده جدید در یک منطقه سفید قرار بگیرد نمی توان آن را با استفاده از این متد طبقه بندی کرد. اعداد و ارقامی که در گوشه سمت راست در قسمت پایین عکس ها می بینید نیز دقت طبقه بندی را نشان می دهند.
شبکه های عصبی
یکی از اصطلاحاتی که به تناوب از سوی شرکت هایی نظیر گوگل و فیسبوک مورد استفاده قرار می گیرد «شبکه عصبی» است. یک شبکه عصبی در اصل نوعی تکنیک یادگیری ماشینی است که براساس نحوه عملکرد نورون های مغز انسان طراحی شده و از این ایده پیروی می کند که نورون ها پس از دریافت تعدادی داده ورودی، سیگنالی را بر حسب تفسیر خود از آن اطلاعات پخش می کنند. در اصطلاحات رایج یادگیری ماشینی این کار از طریق دستکاری ماتریکس و همچنین نوعی تابع فعالسازی انجام می گیرد.
google-io-2015-deep-neural-nets2-840x473
کاربرد شبکه های عصبی در سال های اخیر افزایشی چشمگیر داشته و هم اکنون نیز از این شبکه ها همرا ه با لایه های متعددی از نورون های متصل به هم استفاده می شود. در جریان کنفرانس Google I/O سال 2015، ساندار پیچای نایب رئیس بخش محصولات گوگل توضیح داد که چطور یادگیری ماشینی و شبکه های عصبی به این شرکت کمک کرده تا ماموریت اصلی خود یعنی سازماندهی اطلاعات جهانی را به انجام رسانده و دسترسی به این اطلاعات را برای همه کاربران سطح دنیا فراهم نماید.
از همین روست که می توانید از Google Now سوالاتی مانند این را بپرسید: در زبان اسپانیایی چطور می گویید قورباغه؟ و به خاطر همین شبکه های عصبی است که گوگل می تواند اموری نظیر تشخیص صدا، پردازش زبان های طبیعی و ترجمه را انجام دهد.
در حال حاضر گوگل از شبکه های عصبی 30 لایه استفاده می کند که رقمی فوق العاده محسوب می شود و به خاطر استفاده از آنهاست که نرخ خطای تشخیص کلام گوگل از 23 درصد در سال 2013 میلادی به 8 درصد در سال 2015 کاهش پیدا کرد.
برخی از نمونه های یادگیری ماشینی
پس مشخص شد که شرکت هایی نظیر گوگل و فیسبوک از یادگیری ماشینی برای بهبود سرویس های خود بهره می گیرند. حال این سوال مطرح می شود که این نوع یادگیری چه دستاوردهایی می تواند برای انسان داشته باشد؟ یکی از حوزه های جالب، حاشیه نویسی عکس هاست. در این بخش تعدادی عکس در اختیار ماشین قرار داده شده و از آن خواسته می شود که آنها را توصیف کند که در زیر می توانید نمونه هایی از آنها را مشاهده نمایید.
machine-learning-image-annotation
توضیحات ارائه شده بری دو عکس نخست کاملا درست هستند (هرچند که سینکی در داخل تصویر اول دیده نمی شود) و توضیحات ارائه شده برای عکس سوم نیز از آن جهت جالب است که کامپیوتر توانسته جعبه دونات ها را تشخیص دهد اما دیگر اجزای به نمایش در آمده در آن را به اشتباه فنجان قهوه تصور کرده.
machine-learning-image-annotation-errors-840x287
نمونه دیگر این است که به کامپیوتر فرایند نوشتن یاد داده شود. Cleveland Amory، مولف، گزارشگر و صاحب نظر آمریکایی است که زمانی نوشت: «در دوران کودکی ام، مدرسه ها دو چیز را به ما یاد می دادند، نخست عشق به وطن و دیگری خوش نویسی اما این روزها خبری از این چیز ها نیست» کاش می شد نظر آموری را در مورد دست خط زیر پرسید.
machine-learning-In-my-day-the-schools-taught-840px-840x230
نمونه دست خط بالا توسط شبکه عصبی بازگشتی (نوعی شبکه عصبی مصنوعی که در آن، ارتباط میان واحدها نوعی چرخه هدفمند را تشکیل می دهد) ایجاد شده. خالقان این سیستم برای آموزش دادن به آن، از 221 نویسنده درخواست کردند تا از یک تخته سفید هوشمند استفاده کرده و تعدادی متن را روی آنها بنویسند.
در جریان فرایند نوشتن، نحوه قرارگیری قلم این افراد با استفاده از پرتو مادون قرمز دنبال می شد که این کار به شکل گیری مختصات X و Y انجامید و از آن برای آموزش نظارت شده بهره گرفته شد. همانطور که در تصویر می بینید نتایج فوق العاده بودند و حالا این ماشین قادر است به سبک های مختلف و با سطوح مختلفی از نامرتبی بنویسد.
گوگل به تازگی مقاله ای را در رابطه با شبکه های عصبی منتشر کرده و یادآور شده که از این شبکه به عنوان روشی برای الگوسازی مکالمات بهره می برد و پژوهشگران این شرکت در جریان آزمایشات خود با استفاده از 62 میلیون جمله دریافت شده از زیرنویس تعدادی فیلم، به ماشین آموزش دادند.
همانطور که تصورش را خواهید کرد، نتایج فوق العاده اند. در بخشی از این آزمایش، ماشین مدعی می شود «از اینکه یک فیلسوفم احساس شرم نمی کنم!» و در ادامه زمانی که از آن در مورد اخلاقیات و اصول اخلاقی سوال شد پاسخ داد: «حس و حال شرکت در یک بحث فلسفی را ندارم.»
بنابراین اینگونه به نظر می رسد که اگر به صورت مستمر زیرنویس فیلم های هالیوودی را به یک ماشین بدهیم، می توانیم یک فیلسوف احساساتی را داشته باشیم.
نتیجه گیری
برخلاف بسیاری از حوزه های پژوهش در زمینه هوش مصنوعی، یادگیری ماشینی را نمی توان به عنوان یک هدف نامشهود در نظر گرفت؛ در واقع یادگیری ماشینی نوعی واقعیت است که هم اکنون برای بهبود سرویس های مورد استفاده انسان به کار گرفته می شود.
از بسیاری جهات می توان یادگیری ماشینی را نوعی ستاره فراموش شده در نظر گرفت که در پشت صحنه مشغول فعالیت است و همه تلاشش را به کار می گیرد تا پاسخ هایی که به دنبالشان هستیم را بیابد.
|