این روزها هر جا میرویم از یادگیری ماشین میشنویم. در مقاله مسیر یادگیری ماشین نقشه راه یادگیری ماشین را مشخص کردیم. در این مقاله ببینیم یادگیری ماشین چیست، از کجا آمده و چه ویژگیهایی دارد که اینقدر مهم شده است.
ماشینها با برنامهنویسی کارهای ما را راحت کردند و خیلی از کارها را انجام میدهند. پس چرا یادگیری ماشین لازم داریم و چه کمکی به ما میکند که برنامهنویسی سنتی نمیتوانست انجام بدهد. الان که یادگیری ماشین تا اینجا آمده، آینده آن چطور است؟ در ادامه همین مقاله، با تعریف یادگیری ماشین آشنا شده و جواب تمام این سوالات را یاد میگیرید، پس به خواندن ادامه دهید.
. . . .
یادگیری ماشین چیست؟
در سال 1959، IBM مقالهای را به نویسندگی یکی از اعضای خود، آرتور ساموئل، در مجلهی تحقیق و توسعهاش با عنوانی که در آن زمان مبهم و عجیب بود، منتشر کرد. رویکرد اصلی مقاله استفاده از یادگیری ماشین در بازی checkers با این هدف بود: “اثبات این واقعیت که یک کامپیوتر را میتوان طوری برنامهنویسی کرد که حتی در بازی checkers نسبت به فردی که طراح بازی بوده، بهتر بازی کند.”
اگرچه این اولین نشریهای نبود که اصطلاح “ماشین لرنینگ” یا همان “یادگیری ماشین” را به کاربرد، اما بیشتر از ساموئل بهعنوان اولین فردی که یادگیری ماشین را به شکلی که امروزه میشناسیم تعریف و وضع کرد، یاد میکنند. چاپ برخی از مقالات با موضوع استفاده از یادگیری ماشین در بازی checkers، نشانهی اولیه از عزم انسان برای انتقال سیستم یادگیریاش به ماشینهای دستساز بود.
تعریف یادگیری ماشین
ساموئل در مقالهاش، یادگیری ماشین را بهعنوان زیرمجموعهای از علوم کامپیوتر معرفی میکند که به کامپیوتر قابلیت یادگیری بدون برنامهنویسی مستقیم را میدهد. تقریباً باگذشت شش دهه، این تعریف همچنان به قوت خود باقی است. در شکل زیر به تاریخچه اصطلاح “یادگیری ماشین” در کتابها اشاره شده است (منبع Google Ngram Viewer, 2017).
یادگیری ماشین چطور کار می کند؟
اگرچه در تعریف ساموئل به طور مستقیم به آن اشاره نشده است، ولی ویژگی کلیدی در پاسخ به سوال یادگیری ماشین چیست، مفهوم خودآموزی (Self-Learning) است. این ویژگی به استفاده از مدلسازی آماری (Statistical modeling) برای شناسایی الگوها و بهبود عملکرد بر اساس دادهها و اطلاعات تجربی اشاره دارد که همه اینها بدون دستورات برنامهنویسی مستقیم انجام میگیرد.
این همان چیزی است که ساموئل در تعریف یادگیری ماشین بهعنوان قابلیت یادگیری بدون برنامهنویسی مستقیم توصیف میکند. اما نتیجه نمیگیرد که ماشینی که از قبل برنامهنویسی نشده توان تصمیمگیری دارد. برعکس، یادگیری ماشین وابستگی زیادی به برنامهنویسی دارد. ساموئل مشاهده کرد که ماشینها برای انجام مجموعهای از فعالیتها نیاز به فرمان ورودی (Input command) مستقیم ندارند، بلکه به دادههای ورودی (Input data) نیاز دارند.
شکل بالا دستورات ورودی را با دادههای ورودی مقایسه میکند. نمونهای از دستورات ورودی، تایپ عبارتی مثل “2+2” طبق قواعد یک زبان برنامهنویسی مانند پایتون و سپس استفاده از کلید “Enter” برای اجرای دستور است.
2+2 <<<
4
<<<
مثال بالا نشاندهنده یک دستور مستقیم با یک پاسخ مستقیم است. البته دادههای ورودی متفاوت از دستورات ورودی است. ماشین دادهها را میگیرد، سپس یک الگوریتم انتخاب میشود، هایپرپارامترها پیکربندی و تنظیم میشوند و در نهایت ماشین آموزشهای لازم را دیده تا توانایی تجزیه و تحلیل پیدا کند.
در ادامه، ماشین الگوهای موجود در دادهها را طی یک فرایند سعی و خطا (Trial and error) پیدا میکند. مدل داده مربوط به ماشین که از تجزیه و تحلیل الگوهای دادهها تشکیل شده است، میتواند برای پیشبینی مقادیر آینده استفاده شود.
تفاوت برنامهنویسی سنتی و یادگیری ماشین چیست؟
بین برنامهنویس و ماشین ارتباط وجود دارد، اما در مقایسه با برنامهنویسی سنتی که درگذشته وجود داشت یک لایهی اضافه بین آنها قرار دارد، چون ماشین تصمیماتش را بر اساس تجربه و تقلید (از روند تصمیمگیری انسانها) میگیرد.
- مثال اول: بررسی ویدئوهای یوتیوب
بعد از بررسی ویدیوهایی که معمولا دانشمندان داده (Data scientist)، در یوتیوب مشاهده میکنند، مدل هوش مصنوعی، رابطهای عمیق بین دانشمندان داده و ویدئوهای گربهها تشخیص میدهد.
در این سناریو، مدل با تجزیه و تحلیل برخی پارامترها، ویدئوهایی که دانشمندان داده از تماشای آن در یوتیوب لذت میبرند را پیدا میکند، پارامترهایی مثل تعداد لایکها، تعداد دنبال کنندگان (Subscribe) و تعداد بازدیدها.
- مثال دوم: انتخاب باارزشترین بازیکن بیسبال
مدل الگویی بین خصوصیات بدنی بازیکنان بیسبال و احتمال پیروزی در مسابقه باارزشترین بازیکن فصل (MVP: Most Valuable Player) پیدا میکند.
در این سناریو، به کمک دستگاه، برخی از ویژگیهای فیزیکی برندگان قبلی این جایزه، اندازهگیری میشوند و با سایر ویژگیها مانند سن و سطح تحصیلات در تحلیل استفاده میشود.
مقایسه یادگیری ماشین و برنامه نویسی سنتی
در هیچ یک از دو سناریو بالا، برای رسیدن به خروجی مدنظر و درک الگوهای پنهان، ماشین به صورت اختصاصی برنامهنویسی نشده است. تنها کاری که انجام میشود، ارسال دادههای ورودی به برخی از الگوریتمهای مناسب برای مساله است و این ماشین است که به کمک خودآموزی و مدلسازی دادهها، اقدام به پیشبینی نتایج میکند. در حقیقت برای پیدا کردن الگوها، قواعد و نشانههای نهفته در دادهها، هیچ کدی نوشته نشده و ماشین مسئولیت این بخش را برعهده میگیرد.
تفاوت بین تعریف یادگیری ماشین و برنامهنویسی سنتی، ممکن است در ابتدا جزئی به نظر بیاید، ولی با بررسی مثالهای بیشتر و مشاهده قدرت خودآموزی یادگیری ماشین در مثالهای دقیقتر، این تفاوت واضحتر میشود.
دوره آموزشی: هنوز انجام پروژه یادگیری ماشین شروع نکردید، چون برنامهنویسی بلد نیستید؟ اصلا نگران نباشید. دوره آموزش پایتون ویژه هوش مصنوعی را در کانال یوتیوب دیتاهاب ببینید.
معرفی هوش مصنوعی از گذشته تا آینده
هوش ماشینی (Machine intelligence) چهار نسل دارد که آن ها را بررسی میکنیم.
-
سیستم های مبتنی بر قانون
اولین نسل مبتنی بر قانون (Rule-based) بودند. در این حالت، افراد به صورت دستی قوانین را به وجود میآورند. مثلا در متن، یک نفر این قانون را تعیین میکند که اگر کلمه “Ford” در کنار کلمه “Focus” بیاید، منظور ماشین “Ford” است. در حالی که اگر کلمه “Ford” همراه با “Harrison” بیاید، به یک شخص اشاره دارد. کاملا مشخص است که رویکرد مبتنی بر قانون زمانبر است و دقت پایینی دارد.
-
یادگیری ماشین ساده
نسل دوم یادگیری ماشین ساده (Simple machine learning) است که از متدهای آماری برای تصمیمگیری درباره پردازش داده استفاده میکند. مثلا در جملهای که کلمه “Ford” دارد و برچسب آن ماشین است، الگوریتم یادگیری ماشین کلمه “Focus” را در متن میبیند. پس الگوریتم یادگیری ماشین خودش یاد میگیرد که هر جا در متون دیگری کلمه “Focus” را دید، منظور از کلمه “Ford” در آن متن، ماشین است. یادگیری ماشین ساده سریع است و چون از آمار استفاده میکند، دقیق است.
-
یادگیری عمیق
نسل سوم یادگیری عمیق (Deep learning) است. در یادگیری ماشین ساده، یک فرد باید به الگوریتم بگوید چه ترکیبی از ویژگیها را در نظر بگیرد. اما یادگیری عمیق میتواند به طور خودکار یاد بگیرد در هنگام تصمیمگیری چطور ویژگیها را ترکیب کند. مثلا در جمله “We Will Let Harrison Ford Focus on Star Wars” به دلیل داشتن کلمات “Harrison” و “Focus” لازم است برای مشخص شدن برچسب فرد یا ماشین برای کلمه “Ford”، از یادگیری عمیق استفاده کرد.
-
یادگیری تطبیقی
نسل چهارم یادگیری تطبیقی (Adaptive learning) است که اولین محیط تعامل انسان و ماشین واقعی را به وجود میآورد. اینطور که در هر گام، تحلیل انسانی را به فرایند یادگیری اضافه میکند. در حالی که در روشهای قبل، افراد تنها در ابتدای فرایند، قوانین یا داده برچسبدار را ایجاد میکردند.
. . . .
و در انتها…
اولین گام را با منشا یادگیری ماشین شروع کردیم. از مهمترین ویژگیها در پاسخ به یادگیری ماشین چیست خودآموزی بود که از مدلسازی آماری استفاده میکرد تا الگوها را در دادهها شناسایی کند. گفتیم که چرا از برنامهنویسی سنتی به سمت یادگیری ماشین آمدیم. در آخر درباره نسلهای هوش مصنوعی صحبت کردیم تا دید کاملی نسبت به مسیر تکامل هوش ماشینی داشته باشیم و بدانیم یادگیری ماشین کجای این تکامل قرار دارد.
حال که فهمیدیم یادگیری ماشین چیست در نوشته بعدی میخواهیم درباره دادهکاوی، هوش مصنوعی و یادگیری ماشین حرف برنیم و جایگاه هر کدام را در علم داده مشخص کنیم. پس مقاله تفاوت هوش مصنوعی و یادگیری ماشین را حتما بخونید تا با تفاوت ها آشنا شوید.
این نکاتی که در مقاله خواندیم، همگی تعریف یادگیری ماشین بودند. اگه دوست دارید بدانید برای شروع پروژههای یادگیری ماشین باید چه سرفصل هایی یاد بگیرید، جلسه اول دوره آموزش رایگان یادگیری ماشین را در کانال یوتیوب دیتاهاب ببینید.