کنج صمیمی کامپیوتریا | Debug Valley
کنج صمیمی کامپیوتریا | Debug Valley
خواندن ۱۰ دقیقه·۳ سال پیش

دوست دارم هوش مصنوعی و ماشین لرنینگ بیاموزم. از کجا باید شروع کنم؟


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

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

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

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

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

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


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

من و دوستانم مشغول ساخت یک استارت‌آپ بودیم، که شکست خورد. ما هم به خاطر بی‌انگیزگی بیخیال شدیم. اما در حین ساخت این استارت‌آپ روز به روز درباره‌ی AI و ML می‌شنیدیم...

"کامپیوتر بعضی موضوعات را برایتان یاد می‌گیرد؟" این جمله خیلی برای من جالب بود.

حین جست و جو در مورد AI به صورت اتفاقی به دوره Udacity’s Deep Learning Nanodegree برخوردم. یک آدم بامزه به نام Siraj Raval در پیش‌نمایش یکی از ویدیو‌های این دوره بود. خیلی پرانرژی بود. من هم بدون این که پیش‌نیاز‌ها را رعایت کرده باشم در این دوره ثبت نام کردم. (من قبلا حتی یک خط کد پایتون هم ننوشته بودم.)

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

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

بعد از تمام شدن دوره یادگیری عمیق، با نمره‌ای که کسب کرده بودم می‌توانستم در دوره‌های Udacity’s AI Nanodegree، Self-Driving Car Nanodegree یا Robotics Nanodegree شرکت کنم که هر سه گزینه های خوبی بودند.

و دوباره سردرگم شدم. همان سوال قدیمی "حالا باید چه کار کنم؟"

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


مدرک کارشناسی ارشد هوش مصنوعی خود‌ساخته‌ام

من نمی‌خواستم دوباره به دانشگاه برگردم. البته 100,000$ هم برای شرکت در دانشگاه نداشتم. پس همان کاری را کردم که در ابتدا کرده بودم. از راهنمای همیشگیم، Google، درخواست کمک کردم.

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

بعد از جست و جو در میان انبوهی از دوره‌ها، چند دوره را که نظرم را به خود جلب کردند را پیدا کردم و آن ها را به Trello اضافه کردم.

تصویر Trello دستیار شخصی من برای پیدا کردن دوره‌ها در وب
تصویر Trello دستیار شخصی من برای پیدا کردن دوره‌ها در وب


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

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

من نمایش Trelloرا برای عموم آزاد گذاشتم و درباره تلاش‌هایم در وبلاگم پست گذاشتم.

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


پیدا کردن شغل

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

برنامه‌ام این بود که به سمت آمریکا بروم و در آن‌جا استخدام شوم.

همان زمان‌ها بود که Ashlee به من در لینکدین پیام داد: "سلام! من پست‌های تو رو در لینکدین دیدم. به نظر جالب هستن. به نظرم بهتره Mike رو ملاقات کنی."

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

مایک گفت: "بهتره که یک سالی اینجا بمونی و ببینی چه فرصت‌هایی پیدا می‌کنی. فکر کنم خوبه که با Cameron ملاقات کنی."

من هم Camron را ملاقات کردم. همان حرف‌هایی را که به مایک گفته بودم، برای Cameron هم گفتم...

او گفت: "ما روی یه سری مسائل مربوط به سلامتی کار می‌کنیم. چطوره پنج‌شنبه بیای و یه نگاهی به کارهامون بکنی؟"

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

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

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


اشتراک‌گذاری فعالیت‌هایتان

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

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

من هرگز رزومه‌ای به Max Kelsen تحویل ندادم. چون گفته بود که صفحه لینکدین مرا دیده. رزومه من همان فعالیت‌هایم بود که این همه مدت انجام می‌دادم و به اشتراک می‌گذاشتم.

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

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

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


چطور باید شروع کنید؟

از کجا باید شروع کرد؟ کدام دوره‌ها بهتر هستند؟

هیچ پاسخ ثابتی برای این سوالات نیست. مسیر هر کس با دیگری متفاوت است. بعضی‌ها با خواندن کتاب‌ها بهتر یاد می‌گیرند و بعضی دیگر با ویدیو دیدن.

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

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

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

اگر هدفتان را مشخص کردید، حالا وقت یادگیری مهارت است.

تنها می‌توانم مسیری که خودم طی کردم را پیشنهاد کنم. من برای یادگیری AI این دوره‌ها را طی کردم:

  • 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 – Part1, soon to be Part 2

تمام این دوره‌ها در سطح جهانی هستند. من یادگیری بصری بهتری دارم. با دیدن بهتر یاد می‌گیرم تا خواندن و نحوه آموزش همه‌ی این دوره‌ها از همین نوع است.

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


چقدر ریاضی نیاز است؟

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

نظرات زیادی در مورد این که چقدر ریاضی برای یاد گرفتن AI و ML نیاز دارید وجود دارد. من هم نظر خودم را با شما مطرح میکنم.

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

استفاده از کتابخانه هایی مانند TensonFlow و PyTorch، افرادی که تنها تجربه کمی از پایتون داشته باشند را هم قادر می‌سازد تا مدل‌های پیشرفته AI بسازند. قسمت ریاضی این مدل‌ها پشت صحنه توسط خود این کتابخانه‌ها انجام می‌شود.

اما اگر به دنبال آن هستید که در علم AI و ML عمیق شوید و مثلا برای مدرک PhD روی یک پروژه AI کار کنید، درک عمیق شما از ریاضیات خیلی سودمند است.

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

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


یک مهندس ماشین لرنینگ دقیقا چه کار میکند؟

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

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

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

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

این سوالات را از یک مقاله عالی از Rachel Thomas، یکی از بنیان‌گذاران fast.ai قرض گرفتم. خودش در مقاله‌اش بیشتر به این موضوع می‌پردازد.

برای درک بهتر، من یک ویدیو از اهدافمان در طول یک هفته در Max Kelsen درست کردم.


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

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

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

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

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

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

ماشین لرنینگ و AI من را مجذوب خودشان می‌کنند زیرا ترکیبی از همه این علم‌هاست. هر چه بیشتر در مورد آن یاد می‌گیرم، بیشتر متوجه می‌شوم که هنوز خیلی چیزها برای یادگیری در این علم مانده و این موضوع من را هیجان‌زده‎‌تر می‌کند.

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

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

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

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

متنی که خواندید ترجمه این مقاله است.

ما را در تلگرام دنبال کنید.

ماشین لرنینگهوش مصنوعیهوشیادگیری ماشین
در دیباگ‌ولی ما سعی می‌کنیم از دغدغه‌ها حرف بزنیم و برای ادامه مسیر بینش کسب کنیم | لینک کانال تلگرامی ما: https://t.me/debugvalley
شاید از این پست‌ها خوشتان بیاید