فهرست:
۱. هوش مصنوعی
-------------------------------
دانشجویان زیادی از من مراحل یادگیری #هوش_مصنوعی را پرسیدهاند. در این رشتهتوییت سعی میکنم ایدههایم را برای این موضوع توضیح دهم:
هوش مصنوعی را مانند هر دانش دیگری میتوان در سطوح مختلفی فراگرفت. در سطحیترین حالت صرفا یک کاربر و استفادهکنندهی هوش مصنوعی هستید.
هوش مصنوعی را مانند هر دانش دیگری میتوان در سطوح مختلفی فراگرفت. در سطحیترین حالت صرفا یک کاربر و استفادهکنندهی هوش مصنوعی هستید.
در حالت دوم، میتوانید یک توسعهدهندهی ساده باشید، یعنی مثل کسی که قطعات LEGO را به یکدیگر متصل میکند تا یک اسباببازی بسازد، اجزای مختلف یک شبکهی عصبی ژرف را به هم متصل کنید تا یک شبکهی جدید بسازید، بی آنکه بدانید با چه منطقی دارید این کار را میکنید یا درون هر قطعه چیست.
در حالت سوم، شما دانش و بینش عمیقی نسبت به یکایک اجزای یک الگوریتم یادگیری ماشین یا شبکهی عصبی ژرف دارید، با ریاضیات و پایههای الگوریتمی آن به خوبی آشنا هستید، و علاوه بر «چیست» میتوانید به سوال «چرا» پاسخ دهید:
مثلا چرا یک لایهی Convolutional برای تصویر بهتر از یک لایهی Fully Connected کار میکند، چرا Transformer ها نسبت به RNN عملکرد بهتری در پردازش زبانهای طبیعی دارند، یا چرا در یک Transformer از اتصال Residual استفاده میشود؟
در ادامه فرض میکنم قصد شما، حالت سوم است یعنی میخواهید دانش و بینش عمیقی نسبت به هوش مصنوعی داشتهباشید و بتوانید آن را توسعه دهید. برای این مسیر شما به یک «هرم یادگیری» نیاز دارید. به «حداقل» درسهای لازم در این هرم اشاره میکنم؛ میتوان برای فهم گستردهتر درسهای دیگری افزود.
در قاعدهی هرم، درسهای پیشنیاز قرار میگیرند که رسیدن به سطوح بالاتر هرم نیاز به یادگیری آنها دارید. «زبان برنامهنویسی پایتون»، «ریاضیات عمومی» رشتههای فنی دانشگاه در حدی که مشتق، انتگرال و گرادیان را به خوبی بشناسید، «جبرخطی» و «احتمال و آمار»، اصلیترین پایهها هستند.
تسلط به هنر برنامهنویسی ممکن نیست مگر با فهم عمیقی از دادهساختارها و الگوریتمها. برای این موضوع میتوانید از درسهای رایگان «دادهساختارها و الگوریتمها» و «طراحی و تحلیل الگوریتمها» استفاده کنید. اما برای تسلط به الگوریتمها ضروری است تمرین نظری و عملی فراوانی داشته باشید.
پس از تسلط به درسهای قبل، آمادهی گذراندن درسهای «یادگیری ماشین Machine Learning» و «یادگیری ژرف Deep Learning» خواهید بود. محتوای این درسها بسته به ارائهکننده و سال ارائه متفاوت است. به طور کلی، الگوریتمهای یادگیری ماشین در طول زمان تحول چشمگیری داشتهاند:
روشهای کلاسیک نظیر SVM و PCA از چند دهه پیش مورد استفاده قرار میگرفتند؛ ولی در یک دههی اخیر معماری شبکههای عصبی ژرف (Deep Neural Networks) رشد حیرتانگیزی کرد و در اکثر مسائل، به خصوص زمانی که دادهی کافی وجود دارد، جایگزین روشهای کلاسیک شد.
پیشنهاد من آن است هر دو گروه الگوریتمها را به خوبی فرابگیرید چرا که فهم عمیق روشهای کلاسیک، در هنگام یادگیری و توسعهی شبکههای عصبی ژرف، به شما کمک شایانی خواهد کرد. در بعضی از دورههای درسی، تمرکز اصلی روی روشهای کلاسیک است ولی دورههای جدیدتر روشهای ژرف را هم پوشش میدهند.
پس از آن، میتوانید به طور تخصصی وارد یکی از حوزههای هوش مصنوعی شوید و آن زمینه را ادامه دهید، مثلا ممکن است بخواهید برای تولید تصویر و ویدئو دورههای Stable Diffusion را بگذرانید، یا برای پردازش متن به GPT مسلط شوید، یا برای طراحی دارو از Graph Neural Networks استفاده کنید.
برای هریک از موارد بالا، منابع آموزشی فراوانی در اینترنت موجود است. برای انتخاب یک دورهی آموزشی پیشنهاد میکنم یکی دو جلسه ابتدایی دورههای مختلف را ببینید و بعد خودتان تصمیم بگیرید که با کدام دوره بهتر ارتباط برقرار میکنید و مطالب موردنظر را بیشتر و بهتر از آن فرامیگیرید.
اگر به زبان انگلیسی مسلط هستید میتوانید از دورههای درسی سایتهایی نظیر Coursera ،edX ،DeepLearning.ai و fast.ai استفاده کنید. ویدئوهای YouTube را پیشنهاد نمیکنم چون اکثرا سطحی و پراشکال هستند، مگر آنکه یک استاد برجسته از دانشگاه معتبر را انتخاب کنید.
اگر ترجیح شما فارسی است، علاوه بر دورههای آموزشی غیررایگانی که در سایتهایی نظیر مکتبخونه (مکتبپلاس)، کوئرا (کوئراکالج) یا فرادرس وجود دارد، دورههای رایگان متعدد و بعضا باکیفیتی وجود دارد.
مثلا برای آمار و احتمال، دادهساختارها و الگوریتمها، طراحی و تحلیل الگوریتمها و یادگیری ماشین میتوانید دورههای رایگان من یا سایر همکارانم در دانشگاه صنعتی شریف را در سایت مکتبخونه ببینید.
اگر برای یادگیری شنا به دیدن ویدئوهای آموزشی اکتفا کنید مطمئن باشید غرق میشوید. برای یادگیری ریاضیات، برنامهنویسی، الگوریتم، و هوش مصنوعی نیز شرط اساسی تمرین و تمرین و تمرین است. یکی از بهترین منابع رایگان تمرین برنامهنویسی و الگوریتم، سایت کوئرا Quera.ir است.
در سایت کوئرا به قسمت بانک سوالات بروید، سوالها را به ترتیب نزولی تعداد حل مرتب کنید، از مسالههای سادهتر شروع کنید. اگر برنامهی خود را ارسال کنید؛ برنامهی شما بلافاصله به صورت خودکار بر روی تستهای مختلفی که توسط طراح سوال بارگذاری شده ارزیابی میشود و نمره میگیرید.
بدین ترتیب متوجه میشوید که آیا سوال را به درستی حل کردهاید یا لازم است آن را اصلاح و مجددا ارسال کنید. برای تمرین یادگیری ماشین ضروری است به یک سرور دسترسی داشته باشید، یا از Google Colab استفاده کنید.
اگر منابع باکیفیت دیگری برای یادگیری میشناسید، پیشنهاد میکنم زیر همین رشتهتوییت معرفی کنید.
امیدوارم با اشتیاق و علاقه، انگیزه، اراده و وقت کافی برای یادگیری و تمرین و تمرین و تمرین، تجربهی هیجانانگیز و بسیار موفقی در این مسیر داشته باشید :-)
امیدوارم با اشتیاق و علاقه، انگیزه، اراده و وقت کافی برای یادگیری و تمرین و تمرین و تمرین، تجربهی هیجانانگیز و بسیار موفقی در این مسیر داشته باشید :-)