بلاگ

می‌خواهم هوش مصنوعی و یادگیری ماشین را یاد بگیرم. از کجا باید شروع کنم؟ + راهنمای عملی خودیادگیری

در تاریخ ۲۵ خرداد ۹۸ یک نظرسنجی در کانال تگرام پرومایزر با عنوان “به چه حوزه‌ای علاقه و نیاز بیشتری دارید؟” برگزار کردم. ۱۷۷ نفر از دوستان شرکت کردند و نتایج به صورت زیر شد:

در این نظرسنجی، هوش مصنوعی (۲۴ درصد آرا – ۴۲ رأی) در رتبه دوم قرار گرفت. حال این پست در راستای نیاز آن دستانی نوشته شده است که به گزینه هوش مصنوعی رأی داده بودند.

در این پست قصد دارم خاطرات Daniel Bourke که این مسیر را طی کرده برای شما بیان کنم.

 

من در فروشگاه اپل کار می‌کردم و دنبال ایجاد تغییر در خودم بودم. 

شروع کردم به جستجوی کلمات کلیدی یادگیری ماشین (ML) و هوش مصنوعی (AI).

اتفاقات زیادی در این دو حوزه در حال رخ دادن است.

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

حتی با وجود همه این اتفاقات، هنوز تعریف واحدی برای هوش مصنوعی وجود ندارد.

این عدم تعریف واحد در ابتدا پیشرفت من را کند کرد؛ زیرا یادگیری چیزی که تعاریف مختلفی داشت، دشوار بود.

از کجا شروع کردم؟

من و دوستانم در حال ساخت یک web startup بودیم ولی شکست خوردیم؛ زیرا معنا نداشتیم. اما در طول راه، من شروع به شنیدن مطالب بیشتر و بیشتر در مورد ML و هوش مصنوعی کردم.

گذرم به کورس یادگیری عمیق سایت Udacity افتاد. شخصیتی سرگرم‌کننده به نام Siraj Raval در یکی از تیزرهای تبلیغی قرار داشت. انرژی او مسری بود. با وجود عدم رعایت پیش‌نیازها (من قبلاً حتی یک خط کد پایتون هم ننوشته بودم)، من ثبت نام کردم.

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

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

بعد از آن کمی گیج شدم. “حرکت بعدی من چه باشد؟”

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

مقطع کارشناسی ارشد خودآموخته هوش مصنوعی من (My Self-Created AI Masters Degree)

من قصد نداشتم به این زودی به دانشگاه برگردم. من به هر حال ۱۰۰ هزار دلار برای دریافت مدرک دانشگاهی نداشتم. 

بنابراین من آنچه را که در ابتدا انجام داده بودم دوباره انجام دادم. قبلاً بدون هیچ گونه دانش قبلی، درون مبحث یادگیری عمیق شیرجه زده بودم. در حقیقت به جای صعود به نوک قله AI، یک هلیکوپتر مرا از بالا روی قله رها کرده بود.

گوگل بهترین دوست و منتور من است.

می دانستم دوره‌های آنلاین نرخ ترک تحصیل بالایی دارند. من قصد نداشتم خودم بخشی از این تعداد باشم. من یک مأموریت داشتم. 

I had a mission

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

To make myself accountable, I started sharing my learning journey online

به دست آوردن شغل

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

برنامه من این بود که به ایالات متحده بروم و استخدام شوم.

سپس Ashlee از طریق لینکدین به من پیام داد: “سلام، من پست‌های شما را دیده‌ام و واقعاً عالی هستند. فکر می‌کنم شما باید Mike را ملاقات کنید.”

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

“شاید بهتر باشد یک سال در اینجا بمانید و ببینید چه شغلی می‌توانید پیدا کنید، فکر می‌کنم دوست دارید با Cameron روبرو شوید.”

با Cameron آشنا شدم.

همان صحبت‌هایی که با Mike داشتم را با Cameron نیز داشتم. صحبت‌هایی در مورد سلامتی، فناوری، یادگیری آنلاین، ایالات متحده.
“ما در حال کار بر روی برخی مشکلات سلامتی هستیم، چرا پنجشنبه نمی‌آیید؟”

پنجشنبه آمد. من عصبی بودم. اما شخصی یک بار به من گفت عصبی بودن همان هیجان زده بودن است. پس بهتر است بگویم من هیجان زده بودم!

من روز را با تیم Max Kelsen و مشکلی که در مورد آنها کار می‌کردند گذراندم.

دو پنج شنبه بعد، Nick، مدیر عامل، Athon، مهندس یادگیری ماشین و من به صرف قهوه قرار ملاقات گذاشتیم.

Nick پرسید: “آیا می‌خواهید به تیم بپیوندید؟”

گفتم: “مطمئنا.”

کار خود را به اشتراک بگذارید

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

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

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

من هیچ وقت رزومه‌ای به Max Kelsen تحویل ندادم. آن‌ها من را در LinkedIn بررسی کرده بودند.

My body of work was my resume

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

وقتی کسی در کاری Skin in the game دارد یعنی هم در معرض منافع (مثبت) آن کار است و هم در معرض مضراتش (منفی). 

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

خواه GitHub ، Kaggle ، LinkedIn یا یک وبلاگ باشد، باید جایی داشته باشید که افراد بتوانند شما را پیدا کنند. به علاوه، داشتن یک گوشه از اینترنت خیلی حال میده.

having your own corner of the internet is great fun

چگونه شروع کنم؟

برای یادگیری این مهارت‌ها به کجا بروم؟ بهترین دوره‌ها کدام دوره‌ها هستند؟

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

آنچه مهمتر از نحوه شروع کار است، دلیل شروع کار است.

با چرا شروع کنید.

What’s more important than how you start is why you start
Start with why

  • چرا می‌خواهید این مهارت‌ها را یاد بگیرید؟
  • آیا می‌خواهید درآمد کسب کنید؟
  • آیا می‌خواهید چیزهایی بسازید؟
  • آیا تمایل دارید که تغییری ایجاد کنید؟

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

از چرا شروع کنید؛ زیرا دلیل داشتن مهمتر از چگونگی است. داشتن دلیل به این معنی است که وقتی کار سخت و سخت‌تر می‌شود، باید کاری کنید که بر آن غلبه کنید. چیزی برای یادآوری اینکه چرا شروع کردید.

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

من فقط می‌توانم آنچه را امتحان کردم توصیه کنم.

من دوره‌ها را از به ترتیب زیر کامل کردم:

Treehouse — Introduction to Python
DataCamp —Introduction to Python & Python for Data Science Track
Udacity — Deep Learning & AI Nanodegree
Coursera — Deep Learning by Andrew Ng
fast.ai — Part 1, soon to be Part 2

تمام این آموزش‌ها در سطح جهانی هستند. من یک یاد گیرنده بصری (visual learner) هستم. بهتر است چیزهایی که در حال انجام است را ببینم یا برایم توضیح داده شوند. بنابراین همه این کورس‌ها منعکس‌کننده این موضوع هستند.

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

چقدر ریاضی یاد بگیرم؟

بالاترین سطح آموزش ریاضی که تا به حال داشته‌ام همان چیزهایی است که در دبیرستان به من یاد داده‌اند. بقیه را به اندازه‌ای که نیاز داشته ام از Khan Academy آموخته‌ام.

نظرات مختلفی در مورد میزان ریاضی که باید برای یادگیری ماشین و هوش مصنوعی بدانید وجود دارد. من نظر خودم را به اشتراک خواهم گذاشت.

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

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

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

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

یک مهندس یادگیری ماشین در واقع چه کاری انجام می دهد؟

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

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

در اینجا چند سؤال وجود دارد که یک مهندس ML باید روزانه از خود بپرسد:

Context: چگونه می‌توان از ML برای یادگیری بیشتر در مورد مشکل خود استفاده کرد؟

Data: آیا به داده‌های بیشتری نیاز دارید؟ داده‌ها به چه فرمی باید باشند؟ زمانی که داده‌ها وجود ندارند (missing data) چه کار می‌کنید؟

Modeling: از کدام مدل باید استفاده کنید؟ آیا بر روی داده‌ها بیش از اندازه خوب عمل می‌کند (overfitting)؟ یا چرا خیلی خوب کار نمی‌کند (underfitting)؟

Production: چگونه می توانید مدل خود را به مرحله تولید برسانید؟ آیا این یک مدل آنلاین است یا باید در فواصل زمانی به روز شود؟

Ongoing: اگر مدل شما خراب شود چه اتفاقی می‌افتد؟ چگونه می‌توانید آن را با داده‌های بیشتر بهبود بخشید؟ آیا روش بهتری برای انجام کارها وجود دارد؟

مسیر مشخصی وجود ندارد

هیچ راه درست یا غلطی برای ورود به ML یا AI وجود ندارد.

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

می‌توانید با یادگیری کدنویسی با پایتون شروع کنید.

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

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

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

هر چه بیشتر در موردش یاد بگیرم، بیشتر متوجه می‌شوم که چیزهای بیشتری برای یادگیری وجود دارد.

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

گزینه‌های بیش از حد منجر به عدم گزینه می‌شود.

Too many options lead to no options

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

کامپیوترها هوشمند هستند اما هنوز نمی‌توانند به تنهایی یاد بگیرند. آنها به کمک شما احتیاج دارند.


در انتها این را اضافه کنم که هم اکنون آقای Daniel Bourke شغل خود که مهندس یادگیری ماشین در شرکت Max Kelsen بود را رها کرده و فول تایم در حال کار بر روی بیزینس شخصی خود است. او هدف خود را چنین توصیف می‌کند:

هدف من ساخت یک شرکت فناوری سلامت است که بر مساله تغذیه شخصی متمرکز است، برای کمک به پاسخ به این سوال: “چه چیزی باید بخورم؟”. چطور؟ هنوز مطمئن نیستم. اما احساس می‌کنم که می‌خواهم دانش خود از تغذیه و یادگیری ماشین را با هم ترکیب کنم.

 

مشاوره و اجرای پروژه‌های یادگیری ماشین با پایتون:

salmani.sgh@gmail.com

دیدگاهتان را بنویسید