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