یکی از حوزه های تکنولوژی که نقشی قابل توجه در بهبود سرویس های ارائه شده در تلفن های همراه و فضای مجازی دارد، یادگیری ماشینی است. گاهی اوقات دو عبارت یادگیری ماشینی و هوش مصنوعی به جای یکدیگر مورد استفاده قرار میگیرند و این مساله به خصوص زمانی که یک شرکت بزرگ قصد دارد از جدیدترین نوآوری هایش سخن بگوید بیشتر به چشم میخورد، با این همه هوش مصنوعی و یادگیری ماشینی دو حوزه کاملا مجزا و البته متصل به یکدیگر در علم کامپیوتر به شمار میروند.
از جمله اهداف هوش مصنوعی این است که بتواند رفتار ذهن انسان را تقلید کند که برای این منظور نیز ماشین نیازمند توانمندی های یادگیری است. با این همه، هدف دانشمندان هوش مصنوعی کاملا گسترده و جامع است و علاوه بر یادگیری، موارد دیگری شامل نمایش دانش، منطق و حتی اموری نظیر تفکر انتزاعی را نیز در بر میگیرد.
از سوی دیگر، یادگیری ماشینی صرفا روی مقوله نوشتن نرم افزار تاکید دارد که میتواند از تجربیات گذشته درس بگیرد. اما نکته جالب تر در این رابطه آنکه یادگیری ماشینی در قیاس با هوش مصنوعی ارتباط نزدیک تری با کنکاش دادهها و تحلیل های آماری دارد. چرا اینگونه است؟ بهتر است در ابتدا معنای یادگیری ماشینی را برای شما شرح دهیم.
یکی از تعاریف یادگیری ماشینی آنطور که از سوی تام میشل پروفسور دانشگاه کارنگی ملون ارائه گردید بدین شرح است: نوعی برنامه کامپیوتری که با توجه به برخی وظایف گروه T و عملکرد P، تجربه E را شکل میدهد، اگر عملکرد آن در گروه وظایف T آنطور که توسط P اندازه گیری شده با تجربه E بهبود پیدا کند.
برای درک بهتر این تعریف بهتر است آن را به شکل ساده شده روبرو برایتان شرح دهیم: اگر یک برنامه کامپیوتری بتواند عملکرد خود در انجام یک وظیفه را با استفاده از تجربیات قبلی اش بهبود ببخشد آنگاه میتوانید بگویید که آن ماشین یاد گرفته است.
اما در پارهای از موارد دولوپرها کلیه پارامترهای لازم برای انجام یک وظیفه را برای ماشین برنامه نویسی میکنند و داده های مورد نیاز برای انجام آن را نیز در اختیارش قرار میدهند که این نوع عملکرد کاملا با یادگیری ماشینی فرق دارد.
برای نمونه یک برنامه کامپیوتری میتواند بازی اکس او را انجام دهد چون یک برنامه نویس کد مناسب و استراتژی برنده شدن را برای آن نوشته است با این همه برنامهای که هیچ استراتژی از پیش تعریف شدهای برای این کار ندارد و تنها قوانین بازی و سناریوی پیروزی (اینکه شروط برنده شدن چیست) را میداند، باید بازی کردن را با تکرار و تمرین یاد بگیرد.
اما این مساله صرفا در مورد بازیها به کار برده نمیشود و در مورد برنامه هایی که عملیات طبقه بندی و پیش بینی را انجام میدهند نیز صدق میکند. طبقه بندی فرایندی است که در آن یک ماشین میتواند چیزهای مختلف را با استفاده از یک دیتابیس (شامل اطلاعات بصری و داده های حاصل از اندازه گیری) تشخیص داده و آنها را گروه بندی کند.
پیش بینی (که از آن تحت عنوان سیر بازگشت داده های آماری یاد میشود) زمانی رخ میدهد که یک ماشین بتواند ارزش یک چیز را براساس ارزش های قبلی حدس بزند (پیش بینی کند). برای نمونه با در نظر گرفتن مجموعهای از خصوصیات برای یک خانه، تصمیم میگیرد که ارزش آن براساس خانه های فروخته شده قبلی چقدر است.
با این توضیحات، به تعریف دیگری از یادگیری ماشینی میرسیم که در واقع همان استخراج دانش از داده هاست. در این تعریف شما با یک پرسش روبرو هستید و قصد دارید به آن پاسخ دهید و از طرفی، تصورتان این است که جواب در داخل دادهها قرار دارد و شاید به همین خاطر است که یادگیری ماشینی به داده های آماری و کنکاش آنها مربوط میشود.
انواع یادگیری ماشینی
یادگیری ماشینی را میتوان به سه گروه اصلی تقسیم کرد: نظارتی، غیر نظارتی و تقویت شده که تعاریف هر یک نیز به به شرح زیر است.
یادگیری نظارت شده: زمانی رخ میدهد که شما با استفاده از داده هایی که به خوبی برچسب گذاری شدهاند به یک ماشین آموزش میدهید؛ به بیان دیگر در این نوع یادگیری، دادهها از قبل با پاسخ های درست (نتیجه) برچسب گذاری شده اند. برای نمونه به ماشین عکسی از حرف A را نشان میدهید. سپس پرچم ایران که سه رنگ دارد را به آن نشان میدهید. یاد میدهید که یکی از رنگها قرمز است و یکی سبز و دیگری سفید. هرچه این مجموعه اطلاعاتی بزرگ تر باشد ماشین هم بیشتر میتواند در مورد موضوع یاد بگیرد.
پس از آنکه آموزش دادن به ماشین به اتمام رسید، داده هایی در اختیارش قرار داده میشوند که کاملا تازگی دارند و قبلا آنها را دریافت نکرده. سپس الگوریتم یادگیری با استفاده از تجربیات قبلی خود آن اطلاعات را تحلیل میکند. مثلا حرف A را تشخیص میدهد و یا رنگ قرمز را مشخص میکند.
یادگیری نظارت نشده: این نوع یادگیری زمانی رخ میدهد که ماشین با استفاده از داده هایی آموزش میبینید که هیچگونه برچسب گذاری روی آنها انجام نشده. در این روش، هرگز به الگوریتم یادگیری گفته نمیشود که دادهها نمایانگر چه هستند. برای نمونه گفته میشود که اینجا یک حرف داریم اما هیچگونه اطلاعاتی در مورد اینکه صحبت از کدام حرف است، به الگوریتم داده نمیشود یا در اینجا مشخصات پرچم را داریم اما نامی از پرچم به میان نمیآید.
یادگیری نظارت نشده همچون گوش دادن به یک فایل صوتی به زبانی است که نمیدانید؛ نه دیکشنری در اختیار دارید و نه حتی یک ناظر (معلم) که به شما بگوید در آن فایل صوتی چه حرف هایی گفته میشود. اگر تنها به یکی از فایل های صوتی ضبط شده به آن زبان گوش دهید چیز زیادی دستگیرتان نمیشود اما چنانچه صدها ساعت پای آنها بنشینید مغزتان شروع به ایجاد نوعی الگو در مورد آن زبان میکند.
از این زمان به بعد شروع به تشخیص الگوها میکنید و به تدریج در حین گوش دادن به آن پادکستها انتظار شنیدن اصوات خاصی را خواهید داشت. زمانی که یک دیکشنری در اختیارتان قرار داده شود یا اینکه از راهنمایی های یک مربی بهره مند شوید آنگاه با سرعت بیشتری شروع به یادگیری آن زبان خواهید کرد.
نکته کلیدی در مورد یادگیری نظارت نشده آن است که پس از پردازش اطلاعات بدون برچسب، تنها کافی است که یک نمونه از داده های برچسب گذاری شده در اختیار الگوریتم یادگیری قرار داده شود تا کارایی کامل پیدا کند.
به عنوان مثال پس از پردازش هزاران عکس مربوط به حروف انگلیسی، تنها با پردازش حرف A، بلافاصله یک بخش کامل از داده های پردازش شده برچسب گذاری میشوند. مزیت این روش آن است که به مجموعه کوچکی از داده های برچسب گذاری شده برای این کار نیاز است. ایجاد داده های برچسب گذاری شده نیز به مراتب سخت تر از داده های بدون برچسب است. به طور کلی همه ما به حجم انبوهی از داده های بدون برچسب دسترسی داریم و تنها بخش کوچکی از آنها برچسب گذاری شده اند.
یادگیری تقویت شد: این نوع یادگیری شباهت زیادی به نوع نظارت نشده دارد و وجه تشابه شان نیز در آن است که داده های مورد استفاده برای یادگیری برچسب گذاری نمیشوند، با این همه، زمانی که پرسشی در مورد دادهها مطرح میشود، نتیجه درجه بندی خواهد شد. یک مثال خوب برای این نوع یادگیری انجام بازی است. اگر ماشین برنده بازی شود، سپس از نتیجه کار برای تقویت حرکات آتی خود در حین بازی بهره میگیرد.
مجددا باید تاکید کنیم که اگر کامپیوتر تنها یک یا دو بار بازی را انجام دهد این روش تاثیری در عملکرد آن نخواهد داشت اما اگر هزاران بار و حتی میلیونها بار این کار را انجام دهد آنگاه اثر کلی این کار باعث شکل گیری نوعی استراتژی پیروزی در آن میشود.
عملکرد یادگیری ماشینی چگونه است؟
مهندسانی که در زمینه ساخت سیستم های یادگیری ماشینی فعالیت دارند تکنیک های مختلفی را برای این منظور مورد استفاده قرار میدهند. همانطور که پیشتر گفته شد تعداد زیادی از این تکنیکها به کنکاش دادهها و آمارها مربوط میشوند. برای نمونه، اگر مجموعهای از اطلاعات را در اختیار داشته باشید که خصوصیات انواع گوناگونی از سکه (شامل وزن و شعاع) را تعریف کنند آنگاه میتوانید از تکنیک های آماری نظیر الگوریتم «نزدیک ترین همسایه» برای طبقه بندی سکهای که قبلا مشاهده نشده استفاده نمایید.
کاری که الگوریتم «نزدیک ترین همسایه» انجام میدهد آن است که به دنبال طبقه بندی نزدیک ترین همسایه آن سکه میگردد و سپس همان طبقه بندی را برای آن سکه جدید نیز قائل میشود.
تعداد همسایه هایی که برای اتخاذ این تصمیم مورد استناد قرار گرفتهاند با عنوان «K» شناخته میشود و بر همین اساس عنوان کامل برای الگوریتم به این شرح خواهد بود: «K همسایه نزدیک».
با این همه، الگوریتم های بیشمار دیگری نیز وجود دارند که سعی میکنند همین کار را با استفاده از متدهای متفاوتی انجام دهند. به نمودارهای زیر نگاه کنید:
تصویری که در بالا سمت چپ قرار دارد، مجموعه داده های موجود ما را نشان میدهد. این دادهها به دو گروه طبقه بندی شده اند: آبی و قرمز و باید بگوییم که کاملا فرضی هستند با این حال میتوانند نمایانگر هر چیزی باشند و از وزن و شعاع سکهها گرفته تا تعداد گلبرگ های روی یک گیاه و اندازه آنها را در بر بگیرند.
همانطور که مشاهده میکنید در این تصویر با چند گروه بندی قطعی نیز روبرو هستیم. هرآنچه که در گوشه سمت چپ در بالای تصویر قرار دارد در دسته قرمز جای میگیرد و هرآنچه که در پایین صفحه سمت راست قرار گرفته به گروه آبی تعلق دارد.
با این همه در میانه های تصویر شاهد نوعی تقاطع و یا به نوعی تداخل هستیم. اگر داده ای جدید را دریافت کنید که در میانه های این تصویر جای بگیرد آنگاه این سوال پیش میآید که آن نمونه به گروه قرمز تعلق دارد یا آبی؟
تصاویر دیگر نیز الگوریتم های مختلف و نحوه گروه بندی نمونه های جدید از طریق آنها را نشان میدهند. اگر داده جدید در یک منطقه سفید قرار بگیرد نمیتوان آن را با استفاده از این متد طبقه بندی کرد. اعداد و ارقامی که در گوشه سمت راست در قسمت پایین عکس ها میبینید نیز دقت طبقه بندی را نشان میدهند.
شبکه های عصبی
یکی از اصطلاحاتی که به تناوب از سوی شرکت هایی نظیر گوگل و فیسبوک مورد استفاده قرار میگیرد «شبکه عصبی» است. یک شبکه عصبی در اصل نوعی تکنیک یادگیری ماشینی است که براساس نحوه عملکرد نورون های مغز انسان طراحی شده و از این ایده پیروی میکند که نورونها پس از دریافت تعدادی داده ورودی، سیگنالی را بر حسب تفسیر خود از آن اطلاعات پخش میکنند. در اصطلاحات رایج یادگیری ماشینی این کار از طریق دستکاری ماتریکس و همچنین نوعی تابع فعالسازی انجام میگیرد.
کاربرد شبکه های عصبی در سال های اخیر افزایشی چشمگیر داشته و هم اکنون نیز از این شبکهها همرا ه با لایه های متعددی از نورون های متصل به هم استفاده میشود. در جریان کنفرانس Google I/O سال ۲۰۱۵، ساندار پیچای نایب رئیس بخش محصولات گوگل توضیح داد که چطور یادگیری ماشینی و شبکه های عصبی به این شرکت کمک کرده تا ماموریت اصلی خود یعنی سازماندهی اطلاعات جهانی را به انجام رسانده و دسترسی به این اطلاعات را برای همه کاربران سطح دنیا فراهم نماید.
از همین روست که میتوانید از Google Now سوالاتی مانند این را بپرسید: در زبان اسپانیایی چطور میگویید قورباغه؟ و به خاطر همین شبکه های عصبی است که گوگل میتواند اموری نظیر تشخیص صدا، پردازش زبان های طبیعی و ترجمه را انجام دهد.
در حال حاضر گوگل از شبکه های عصبی ۳۰ لایه استفاده میکند که رقمی فوق العاده محسوب میشود و به خاطر استفاده از آنهاست که نرخ خطای تشخیص کلام گوگل از ۲۳ درصد در سال ۲۰۱۳ میلادی به ۸ درصد در سال ۲۰۱۵ کاهش پیدا کرد.
برخی از نمونه های یادگیری ماشینی
پس مشخص شد که شرکت هایی نظیر گوگل و فیسبوک از یادگیری ماشینی برای بهبود سرویس های خود بهره میگیرند. حال این سوال مطرح میشود که این نوع یادگیری چه دستاوردهایی میتواند برای انسان داشته باشد؟ یکی از حوزه های جالب، حاشیه نویسی عکس هاست. در این بخش تعدادی عکس در اختیار ماشین قرار داده شده و از آن خواسته میشود که آنها را توصیف کند که در زیر میتوانید نمونه هایی از آنها را مشاهده نمایید.
توضیحات ارائه شده بری دو عکس نخست کاملا درست هستند (هرچند که سینکی در داخل تصویر اول دیده نمیشود) و توضیحات ارائه شده برای عکس سوم نیز از آن جهت جالب است که کامپیوتر توانسته جعبه دوناتها را تشخیص دهد اما دیگر اجزای به نمایش در آمده در آن را به اشتباه فنجان قهوه تصور کرده.
نمونه دیگر این است که به کامپیوتر فرایند نوشتن یاد داده شود. Cleveland Amory، مولف، گزارشگر و صاحب نظر آمریکایی است که زمانی نوشت: «در دوران کودکی ام، مدرسهها دو چیز را به ما یاد میدادند، نخست عشق به وطن و دیگری خوش نویسی اما این روزها خبری از این چیزها نیست» کاش میشد نظر آموری را در مورد دست خط زیر پرسید.
نمونه دست خط بالا توسط شبکه عصبی بازگشتی (نوعی شبکه عصبی مصنوعی که در آن، ارتباط میان واحدها نوعی چرخه هدفمند را تشکیل میدهد) ایجاد شده. خالقان این سیستم برای آموزش دادن به آن، از ۲۲۱ نویسنده درخواست کردند تا از یک تخته سفید هوشمند استفاده کرده و تعدادی متن را روی آنها بنویسند.
در جریان فرایند نوشتن، نحوه قرارگیری قلم این افراد با استفاده از پرتو مادون قرمز دنبال میشد که این کار به شکل گیری مختصات X و Y انجامید و از آن برای آموزش نظارت شده بهره گرفته شد. همانطور که در تصویر میبینید نتایج فوق العاده بودند و حالا این ماشین قادر است به سبک های مختلف و با سطوح مختلفی از نامرتبی بنویسد.
گوگل به تازگی مقالهای را در رابطه با شبکه های عصبی منتشر کرده و یادآور شده که از این شبکه به عنوان روشی برای الگوسازی مکالمات بهره میبرد و پژوهشگران این شرکت در جریان آزمایشات خود با استفاده از ۶۲ میلیون جمله دریافت شده از زیرنویس تعدادی فیلم، به ماشین آموزش دادند.
همانطور که تصورش را خواهید کرد، نتایج فوق العاده اند. در بخشی از این آزمایش، ماشین مدعی میشود «از اینکه یک فیلسوفم احساس شرم نمیکنم!» و در ادامه زمانی که از آن در مورد اخلاقیات و اصول اخلاقی سوال شد پاسخ داد: «حس و حال شرکت در یک بحث فلسفی را ندارم.»
بنابراین اینگونه به نظر میرسد که اگر به صورت مستمر زیرنویس فیلم های هالیوودی را به یک ماشین بدهیم، میتوانیم یک فیلسوف احساساتی را داشته باشیم.
نتیجه گیری
برخلاف بسیاری از حوزه های پژوهش در زمینه هوش مصنوعی، یادگیری ماشینی را نمیتوان به عنوان یک هدف نامشهود در نظر گرفت؛ در واقع یادگیری ماشینی نوعی واقعیت است که هم اکنون برای بهبود سرویس های مورد استفاده انسان به کار گرفته میشود.
از بسیاری جهات میتوان یادگیری ماشینی را نوعی ستاره فراموش شده در نظر گرفت که در پشت صحنه مشغول فعالیت است و همه تلاشش را به کار میگیرد تا پاسخ هایی که به دنبالشان هستیم را بیابد.
منبع: دیجیاتو