خانه > مقالات آموزشی > یادگیری ماشین جذاب است! – قسمت اول

یادگیری ماشین جذاب است! – قسمت اول

ترجمه شده توسط سایت ZeroToHero

قطعا شنیده اید که مردم در مورد یادگیری ماشین صحبت می‌کنند ولی احتمالا نظر خاصی در مورد این که یادگیری ماشین واقعاً چیست ندارید؟ آیا از این که هنگام بحث‌ با دوستان و همکاران نمی‌توانید نظری در این مورد بدهید خسته شدید؟ پس بیایید تغییرش بدهیم.

.   .   .

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

هدف این است که هر کسی به سادگی متوجه بشود، و این یعنی که مفاهیم به صورت کلی بیان خواهد شد. اما چه ایرادی دارد؟ اگر این مطالب باعث بشود حتی یک نفر بیشتر به یادگیری ماشین علاقمند شود، ما مأموریتمان را انجام داده‌ایم.

.   .   .

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

یادگیری ماشین ( Machine Learning ) یعنی این که الگوریتم‌هایی وجود دارند که بدون نیاز به نوشتن کد اختصاصی برای مجموعه‌ ای از داده‌ ها، می‌توانند اطلاعات جالبی در مورد آن‌ها به ما بگویند. به جای نوشتن کد، داده‌ ها را به عنوان ورودی به این الگوریتم‌ها می‌ دهیم و الگوریتم بر مبنای داده‌ ها خودش منطق خودش را می‌سازد.

برای مثال، یکی از این الگوریتم‌ ها، الگوریتم کلاسه بندی ( Classification ) است که می‌تواند داده‌ها را در گروه‌ های مختلفی قرار دهد. از همان الگوریتم کلاسه بندی که اعداد را در دست خط انسان تشخیص می‌دهد، می‌ توان برای کلاسه بندی ایمیل‌ ها به دو دسته ی هرز نامه و غیر هرز نامه نیز استفاده کرد، بدون این که لازم باشد حتی یک خط کد را تغییر دهیم. این همان الگوریتم است با این تفاوت که مجموعه داده‌ های آموزشی (Training Data Set) متفاوتی به آن داده شده. بنابراین منطق کلاسه بندی نهایی نیز متفاوت خواهد بود.

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

یادگیری ماشین کلاسه بندی اعداد دست نویس و ایمیل
الگوریتم یادگیری ماشین یک جعبه سیاه است که می‌توان از آن برای انواع مسائل دسته‌بندی استفاده کرد.

«یادگیری ماشین» اصطلاحی است که مثل یک چتر انواع این الگوریتم‌ها را پوشش می‌دهد.

دو نوع مختلف الگوریتم‌های یادگیری ماشین

اکثر الگوریتم‌ های یادگیری ماشین را می‌ توان در یکی از این دو دسته اصلی قرار داد: یادگیری نظارت شده ( Supervised Learning ) و یادگیری بدون نظارت ( Unsupervised Learning ). ولی تفاوت این دو ساده بسیار مهم است.

یادگیری با نظارت

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

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

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

یادگیری ماشین مثال مجموعه آموزش
این همان مجموعه Train ما است.

با استفاده از این مجموعه Train ، می‌خواهیم برنامه‌ ای بنویسیم که تخمین بزند هر خانه دیگری در اطراف شما چقدر ارزش دارد:

یادگیری ماشین مثال تست
می‌خواهیم به کمک مجموعه Train  قیمت خانه‌های دیگر را پیش‌بینی کنیم.

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

برای ساخت برنامه، مجموعه Train را به عنوان ورودی به الگوریتم یادگیری ماشین می‌دهیم. الگوریتم در تلاش است تا بفهمد چه نوع ریاضیاتی به کار رفته تا این اعداد به دست بیاید.

این مشابه این است که در امتحان ریاضی جواب مسئله‌ها را داشته باشیم ولی عملگر بین اعداد مجهول باشد.

یادگیری ماشین مثال مساله ریاضی
اوه نه! یک دانش‌آموز علامت عملگر ها را از کلید تصحیح معلم پاک کرده!

آیا با استفاده از چیزی که موجود است می‌توانید حدس بزنید سوال‌های امتحان چه بوده؟ شما می‌ دانید باید کاری با اعداد سمت چپ انجام دهیم تا به جواب سمت راست برسیم.

در یادگیری نظارت شده، شما از کامپیوتر می‌خواهید تا این ارتباط را برای شما پیدا کند. و یک بار که ریاضیات به کار رفته برای این مسئله را پیدا کنید، می‌توانید به هر مسئله دیگر از این نوع نیز پاسخ دهید!

یادگیری بدون نظارت

بیایید به مثال اصلی در مورد بنگاه املاک برگردیم. چه می‌شد اگر قیمت خانه‌های فروخته‌ شده را نمی‌دانستیم؟ حتی اگر تنها چیزی که می‌دانیم اندازه، مکان و … هر خانه باشد، باز هم می‌توانیم کار های جالبی بکنیم. به این نوع یادگیری، یادگیری بدون نظارت می‌گویند.

یادگیری ماشین مثال نظارت نشده
حتی اگر در تلاش برای پیش‌ بینی یک عدد ناشناس ( مثل قیمت ) نباشید، باز هم می‌ توان با استفاده از یادگیری ماشین کاری کرد.

این مثل وقتی است که یک نفر کاغذی به شما بدهد که روی آن تعدادی عدد نوشته شده و بگوید: «من هیچ نظری ندارم که این عددها چه معنی و مفهومی دارند ولی شاید تو بتوانی الگو، گروه‌ بندی یا چیزی پیدا کنی. موفق باشی!»

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

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

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

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

جالبه، ولی آیا توانایی حدس زدن قیمت یک خانه، واقعاً یادگیری به حساب می‌آید؟

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

اما الگوریتم‌های یادگیری ماشین فعلی هنوز اینقدر قوی نیستند و فقط وقتی کار می‌کنند که بر روی مسائل محدود و کاملاً مشخصی متمرکز باشند. شاید معنی بهتر برای یادگیری در حال حاضر «یافتن یک معادله برای حل مسئله‌ای مشخص بر اساس تعدادی داده نمونه» باشد.

متأسفانه این تعریف زیاد جالب نیست. برای همین ما از عبارت «یادگیری ماشین» استفاده می‌کنیم.

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

بیاید آن برنامه را بنویسیم!

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

اگر هیچ چیزی از یادگیری ماشین نمی‌دانستید احتمالاً تلاش می‌کردید تا قوانین ساده‌ ای برای تخمین قیمت یک خانه مانند این بنویسید:

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

برای مثال، اگر خانه اول به مبلغ ۲۵۰ هزار دلار به فروش رفته ولی تابع شما عدد ۱۷۸ هزار را تخمین زد، شما ۷۲ هزار دلار اختلاف ( خطا ) دارید.

حالا مربع میزان اختلاف را به ازای همه خانه‌های مجموعه Train جمع بزنید. فرض کنید ۵۰۰ خانه در مجموعه شما وجود داشته و مجموعی که برای اختلاف‌ها به دست آوردید عدد ۸۶,۱۲۳,۳۷۳ دلار را نشان می‌دهد. این یعنی تابع شما در حال حاضر چقدر «اشتباه» است.

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

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

گام سوم:

گام دوم را به ازای انواع ترکیب‌ های ممکن وزن‌ ها بار ها و بار ها تکرار کنید. وقتی به حالتی رسیدید که هزینه تابع به صفر نزدیک شد، شما مسئله را حل کرده‌اید!

زمان انفجار ذهن

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

اما در ادامه چند نکته را بررسی می‌کنیم که واقعاً می‌تواند ذهن شما را منفجر کند:

  1. تحقیقات در بسیاری از زمینه‌ها در ۴۰ سال گذشته نشان داده‌ اند که این الگوریتم‌های یادگیری عمومی مشابه کاری که انجام دادیم، در مواقعی که نیاز است قوانین مشخص ارائه شود، نسبت به انسان عملکرد بهتری دارند. حتی احمقانه‌ ترین روش یادگیری ماشین هم می‌تواند انسان‌ های متخصص را شکست دهد!
  2. تابعی که شما نوشتید واقعاً احمقانه بود. چون حتی نمی‌دانست واحد مساحت و اتاق خواب چیست! تنها چیزی که می‌دانست این بود که باید مقدار مشخصی از آن اعداد را با هم ترکیب کند تا به جواب درست برسد.
  3. احتمالاً شما هیچ ایده‌ای ندارید که چرا مجموعه‌ ای مشخص از وزن‌ ها درست کار می‌کند. بنابراین شما تابعی نوشتید که نمی‌دانید چطور کار می‌کند ولی می‌توانید ثابت کنید که درست کار می‌کند!
  4. تصور کنید به جای مساحت و تعداد اتاق‌ ها، تابع تخمین شما آرایه‌ ای از اعداد را به عنوان ورودی می‌گرفت. برای مثال فرض کنید هر کدام از این اعداد میزان روشنایی یک پیکسل از یک تصویر گرفته‌ شده توسط دوربین نصب‌ شده روی ماشین باشد، خروجی تابع را «میزان زاویه چرخش فرمان خودرو» نام‌ گذاری کنید. به همین راحتی شما برنامه‌ یک خودرو خودران را نوشتید!

جالبه، این طور نیست؟

اما بخش مربوط به «هر عدد ممکن را امتحان کنید» در گام ۳ چه می‌شود؟

بله، البته که نمی‌شود هر ترکیب ممکن از وزن‌ ها را امتحان کرد. این کار به معنای واقعی کلمه تا ابد طول خواهد کشید زیرا هیچ وقت اعداد تمام نخواهند شد.

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

ابتدا، معادله ساده‌ ای برای محاسبه هزینه در گام دوم می‌نویسیم:

معادله تابع هزینه
این همان تابع هزینه شما است.

حالا بیایید همین معادله را به صورت دیگری طبق ریاضیات یادگیری ماشین (که فعلاً از پرداختن به جزئیات آن صرف نظر می‌ کنیم) بنویسیم :

محاسبه هزینه بر اساس مجموعه وزن ها
θ نماینده وزن‌های فعلی شما است. و (j(θ یعنی هزینه به ازای این مجموعه از وزن‌ها.

این معادله نشان می‌دهد تابع تخمین قیمت ما به ازای وزن‌ های فعلی تا چه حد اشتباه است.

اگر ما نمودار این معادله هزینه را به ازای تمام مقادیر وزن‌ ها برای تعداد اتاق‌ ها و مساحت را رسم کنیم، به نموداری شبیه به شکل زیر می‌رسیم:

نمودار معادله هزینه
نمودار تابع هزینه شبیه به یک کاسه است. محور عمودی بیانگر هزینه می‌باشد.

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

نمودار معادله هزینه هدف

بنابراین کافی است ما وزن‌ ها را طوری تغییر دهیم که روی این نمودار به سمت پایین حرکت کنیم تا به پایین‌ ترین نقطه برسیم. به این ترتیب نیازی نیست اعداد زیادی را امتحان کنیم.

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

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

این خلاصه‌ ای بود از یکی از روش‌ های پیدا کردن بهترین وزن‌ ها برای تابع هزینه که گرادیان نزولی دسته‌ ای نام دارد. اگر به این روش علاقمند شدید، جزئیات بیشتری در این جا پیدا خواهید کرد.

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

دیگر از چه بخش هایی به سادگی عبور کرده بودیم؟

الگوریتم سه مرحله‌ ای که توضیح دادم رگرسیون خطی چندمتغیره نام دارد. در واقع شما معادله خطی که از روی نقاط داده‌های مربوط به خانه عبور می‌کند را تخمین می‌زنید. سپس از این معادله استفاده می‌کنید تا براساس محل قرارگیری نقاط، قیمت فروش خانه‌ هایی که قبلاً ندیده‌اید را حدس بزنید. این ایده واقعاً قدرتمندی است که به کمک آن می‌توانید مسائل “واقعی” را حل کنید.

روشی که با هم دیدیم ممکن است در مثال‌ های ساده جواب بدهد، ولی پاسخگوی همه مسائل نیست. یک دلیل آن این است که معمولاً قیمت خانه‌ها به این سادگی از روی یک خط پیوسته به دست نمی‌آید.

اما خوشبختانه راه‌ های زیادی برای حل این مشکل هست. الگوریتم‌های یادگیری ماشین فراوان دیگری برای استفاده در داده‌های غیرخطی داریم (مانند شبکه‌های عصبی یا SVMها به همراه kernel). همچنین راه‌های دیگری هم هست که اجازه می‌دهد از رگرسیون خطی هوشمندانه‌ تر استفاده کنیم و اجازه می‌دهد خطوط پیچیده‌ تری را برازش یا به اصطلاح fit کنیم. با این حال در همه موارد، همچنان ایده اصلی این است که بهترین وزن‌ ها را پیدا کنیم.

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

به عبارت دیگر، در حالی که مفهوم اصلی بسیار ساده است، مهارت و تجربه نیاز است تا یادگیری ماشین را اعمال کنیم و نتایج مفید بگیریم. اما این مهارتی است که هر توسعه‌ دهنده‌ ای می‌تواند یاد بگیرد!

آیا یادگیری ماشین جادو است؟

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

اما یادتان باشد یادگیری ماشین تنها زمانی کار می‌کند که مسئله با داده‌هایی که دارید واقعاً قابل حل باشد.

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

یادگیری ماشین داده های غیر مرتبط
تنها رابطه‌هایی را می‌توان مدلسازی کرد که واقعاً وجود داشته باشند.

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

چطور در مورد یادگیری ماشین بیشتر یاد بگیریم؟

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

دوره آموزشی رایگان آقای اندرو نگ (Andrew Ng) در سایت Coursera فوق‌العاده است. من شدیداً توصیه می‌کنم از این جا شروع کنید. این دوره برای هر کسی با حداقل دانش از علوم کامپیوتر و ریاضیات مناسب است.

همچنین، می‌توانید صدها الگوریتم یادگیری ماشین را با دانلود و نصب بسته SciKit-Learn برای پایتون ببینید و امتحان کنید.

بیشتر بخوانید : 

منبع Medium
0/5 (0 نظر)

درباره‌ی احمدرضا جعفری

همچنین ببینید

یادگیری ماشین جذاب است تشخیص چهره

یادگیری ماشین جذاب است! – قسمت چهارم: تشخیص چهره مدرن با یادگیری عمیق

آیا دقت کرده اید که فیسبوک یک قابلیت خارق العاده ایجاد کرده که شما می …