چگونه هوش مصنوعی یاد بگیریم؟ — راهنمای شروع از صفر
امروزه «هوش مصنوعی» (Artificial Intelligence) یکی از مهارتهای پرکاربرد و مهم در بسیاری از حوزههای مختلف و صنایع به حساب میآید. با پیشرفت فناوریهای نوین، نقش برنامه نویسی هوش مصنوعی در کسب و کارها و صنعت روز به روز در حال افزایش است. از این رو، تعداد افرادی که قصد یادگیری هوش مصنوعی را دارند نیز هر روز بیشتر میشود. در مقابل، شرکتها و کسب و کارها هم نیاز بیشتری به متخصصین این حوزه پیدا کردهاند. به همین دلیل، ممکن است برای افراد بسیاری این سوال به وجود بیاید که هوش مصنوعی چیست و چگونه هوش مصنوعی یاد بگیریم ؟ بنابراین، در این نوشتار سعی شده است تا بهطور جامع به این سوال پاسخ داده شود و همه نکتهها و مسئلههای پیرامون هوش مصنوعی بیان شوند.
درس هوش مصنوعی در دانشگاهها در مقطع کارشناسی رشتههای مهندسی کامپیوتر به عنوان یک درس از پایه به طور کامل تدریس میشود، سپس افراد علاقهمند به این حوزه میتوانند ادامه تحصیل خود را در این گرایش پیش ببرند و تحصیل در این حوزه را در مقطعهای گوناگون انجام دهند. همچنین بسیاری از افراد در این حوزه تحصیل نکردهاند، ولی به دلیل وجود بازار کار و جذابیت هوش مصنوعی به دنبال یادگیری آن هستند. در مقاله «چگونه هوش مصنوعی یاد بگیریم» سعی شده است مسیر و روشهای یادگیری هوش مصنوعی به علاقهمندان و دانشجویان این حوزه معرفی شود. در ابتدا و پیش از شروع بررسی مسیر یادگیری هوش مصنوعی، در بخش بعدی به تعریف مفهوم آن پرداخته شده است.
هوش مصنوعی چیست ؟
ایده هوش مصنوعی از شبیهسازی مغز انسان و نحوه عملکرد آن در امر یادگیری گرفته شده است. این ایده توسط ماشینها و به خصوص سیستمهای کامپیوتری پیادهسازی میشود. هوش مصنوعی دارای تعریفهای گوناگونی است، برای مثال میتوان به چند تعریف آن در ادامه اشاره کرد:
- هوش مصنوعی موجودیتی هوشمند به حساب میآید که توسط انسان ایجاد شده است.
- سیستمهای هوش مصنوعی امکان انجام و اجرای وظایفی را به صورت هوشمندانه دارند که حتی کاربر به آنها دستور انجام کار را نداده است.
- سیستمهای هوش مصنوعی دارای قابلیت عمل، تفکر عقلانی و انسانی هستند.
هوش مصنوعی یک شاخه جداییناپذیر از حوزه علوم کامپیوتر به حساب میآید که هدف آن شبیهسازی هوش انسانی در ماشینها و سیستمها است. در دنیای فناوری امروزی، ماشینها، رباتها و سیستمها با هوش مصنوعی و امکانات الگوریتمهای «یادگیری ماشین» (Machine Learning) و «یادگیری عمیق» (Deep learning) هوشمند و قدرتمند شدهاند. با این حال، تعریفهای هوش مصنوعی در سالهای اخیر تغییر کرده است.
پیش از این، حتی یک تابع ساده در داخل ماشین حساب برای انجام عملی ساده، یک مؤلفه هوش مصنوعی به حساب میآمد. اما اکنون با پیشرفت چشمگیر هوش مصنوعی و گسترش حوزه کاربردهای آن، یک تابع ماشین حساب، فقط برنامهای ساده در نظر گرفته میشود و برنامههای هوش مصنوعی بسیار گستردهتر و پیشرفتهتر شدهاند. در ادامه این مقاله به این موضوع پرداخته شده است که چگونه هوش مصنوعی یاد بگیریم ؟
چگونه هوش مصنوعی یاد بگیریم ؟
برای یادگیری هوش مصنوعی نیاز است که مفاهیم گوناگونی فرا گرفته شوند که پیشنیازیهای این حوزه محبوب در نظر گرفته شدهاند. هوش مصنوعی باید از پایه به گونهای فرا گرفته شود که بتوان با استفاده از آن به موفقیت و هدف خود رسید. افرادی که قصد دارند هوش مصنوعی را یاد بگیرند به دو گروه زیر تقسیم میشوند:
- کسانی که میخواهند هوش مصنوعی را برای کارهای دانشگاهی و تحقیقاتی استفاده کنند.
- کسانی که قصد دارند کاربردهای هوش مصنوعی را برای پیدا کردن شغلی مناسب با درآمدی خوب یاد بگیرند.
علاقهمندانی که قصد دارند هوش مصنوعی را برای تحقیقات دانشگاهی یاد بگیرند، اغلب کسانی هستند که در دانشگاه این رشته را انتخاب کردهاند و در کنار یادگیری دانشگاهی آن، به پژوهش و تدوین مقاله میپردازند. این افراد تخصص خود را با خواندن مقالههای گوناگون و شرکت در کلاسهای دانشگاه به دست میآورند. در ادامه روش یادگیری هوش مصنوعی برای کسانی مورد بررسی قرار گرفته است که قصد یادگیری هوش مصنوعی را به صورت عملی و از ابتداییترین مفاهیم دارند. مهارتهای مورد نیاز هوش مصنوعی برای یادگیری و رسیدن به سطح ارشد و پیشرفت در این حوزه در ادامه ارائه شدهاند.
یادگیری ریاضیات برای هوش مصنوعی
برخی از افراد تصور میکنند که هوش مصنوعی تنها نیازمند برنامه نویسی است و بدون داشتن مهارت در مباحث دیگر، میتوان هوش مصنوعی را فقط با برنامه نویسی یاد گرفت. با این حال این تصوری اشتباه است و هوش مصنوعی به علوم دیگری نیز مانند ریاضیات برای پردازشهای خود نیاز دارد. داشتن مهارت در حل برخی از مسائل ریاضی برای یادگیری و درک روشهای هوش مصنوعی ضرورت دارد. پایه و اساس توسعه برنامههای هوش مصنوعی، ریاضی و آمار است و نمیتوان از اهمیت آن به هیچ عنوان چشمپوشی کرد.
- مقالههای پیشنهادی:
ریاضی متناسب با هوش مصنوعی شامل جبر خطی، حساب دیفرانسیل انتگرال و محاسبات عددی میشود. همچنین مباحث آمار و احتمالات و «فرایندهای تصادفی» (Random Process) در یادگیری هوش مصنوعی و انجام پروژههای آن بسیار کاربرد دارند و از اهمیت بالایی برخوردار هستند. برای اینکه بتوان با الگوریتمهای یادگیری ماشین کار کرد، باید مباحث جبر خطی را فراگرفت. علاوه بر این، یادگیری «شبکههای عصبی مصنوعی» (Artificial Neural Network) نیازمند مهارتهای محاسباتی است.
اکثر افراد هنگام شروع کار هوش مصنوعی علاقه و هیجان زیادی برای شروع کدنویسی دارند، اما شروع هوش مصنوعی با برنامه نویسی، به این معنی است که فرد باید با آزمون و خطاهای بسیاری سر و کار داشته باشد و این موضوع منجر به ناامیدی و کاهش اعتماد به نفس افراد خواهد شد و روش مناسبی نیست.
بنابراین برای شروع یادگیری هوش مصنوعی و پاسخ بخش اول سوال چگونه هوش مصنوعی یاد بگیریم ، بهتر است زمانی را برای مطالعه و یادگیری جبر خطی، حساب دیفرانسیل انتگرال و آمار و احتمالات در نظر گرفت. پس از مطالعه این مباحث باید با تمرین آنها از یادگیری کامل ریاضیات و آمار اطمینان حاصل کرد. البته نیازی نیست که برای شروع هوش مصنوعی به طور کامل به این مباحث ریاضی تسلط داشت، اما داشتن درک درستی از اصول اولیه آنها مفید واقع خواهد شد. ادامه این بخش از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی یادگیری کدنویسی برای هوش مصنوعی اختصاص دارد.
یادگیری زبان برنامه نویسی برای هوش مصنوعی
بعد از یادگیری ریاضیات مناسب برای هوش مصنوعی، نوبت به یادگیری کدنویسی با استفاده از برخی زبانهای برنامه نویسی خاص برای هوش مصنوعی میرسد. معمولاً اکثر برنامههای هوش مصنوعی به صورت نرم افزاری برنامه نویسی میشوند و روی ماشین هدف پیادهسازی آنها انجام میگیرد. به وسیله برنامه نویسی هوش مصنوعی میتوان برنامههای نرم افزاری را به هوش انسانی برای انجام مشاهدات، یادگیری و تصمیمگیری تجهیز کرد. کدنویسی هوش مصنوعی میتواند با برخی از زبانهای برنامه نویسی هوش مصنوعی مختلف انجام شود.
معروفترین و محبوبترین زبان برنامه نویسی هوش مصنوعی، «پایتون» (Python) است. اما زبانهای برنامه نویسی دیگری نیز از جمله R، «جاوا» (Java)، «جولیا» (Julia)، «اسکالا» (Scala)، ++C و سایر موارد وجود دارند که میتوان با استفاده از آنها برنامه نویسی هوش مصنوعی را انجام داد. پیشنهاد میشود که برای این منظور زبان برنامه نویسی انتخاب شود که در حوزههای هوش مصنوعی معروفتر و دارای ابزارهای بیشتری برای حل مسائل آن است. در ادامه به بررسی ویژگیهای زبان برنامه نویسی مخصوص هوش مصنوعی پرداخته میشود.
زبان برنامه نویسی مخصوص هوش مصنوعی چه ویژگی هایی باید داشته باشد؟
در این بخش به بررسی ویژگیهای زبانهای برنامه نویسی هوش مصنوعی پرداخته شده است و به عنوان دو ویژگی اصلی این زبانها باید به موارد زیر اشاره کرد:
- یک زبان برنامه نویسی پرطرفدار و محبوب در حوزه هوش مصنوعی، هزاران ابزار هوش مصنوعی، کتابخانه، بسته و فریم ورک با کیفیت بالا برای برنامه نویس فراهم میکند.
- زبان برنامه نویسی که مختص به هوش مصنوعی باشد، کارایی کدهای نوشته شده را افزایش میدهد و توسعه دهندگان آنها نیز به راحتی میتوانند کدها را متناسب با هدف مسئله اصلاح کنند.
بنابراین میتوان زبانهای پایتون، ++C، جاوا و R را به عنوان محبوبترین زبانهای هوش مصنوعی در نظر گرفت. در این مرحله فقط باید زبان برنامه نویسی مورد نظر انتخاب و کدنویسی آغاز شود. در برنامه نویسی هوش مصنوعی نیازی نیست که به صورت عمیقی به زبان برنامه نویسی مورد نظر مسلط شد، همچنین افراد مستلزم یادگیری تمام دستورات و عملکردهای این زبان نیستند و یادگیری دستورات مورد نیاز هوش مصنوعی کافی است.
به طور کلی در هنگام یادگیری هوش مصنوعی به عنوان یک فرد تازهکار، تسلط کامل بر زبان برنامه نویسی کاملاً غیر ضروری است. در عوض، مسئلهای که باید فرد در آن مهارت کسب کند، پیدا کردن و جستجو راه حلهایی برای حل مشکلات کدنویسی خاص در اینترنت به حساب میآید.
برای مثال اگر برای زبان برنامه نویسی هوش مصنوعی، پایتون توسط فرد آموزنده انتخاب شود، میتواند با استفاده از یک دوره آموزشی برنامه نویسی هوش مصنوعی مقدماتی پایتون، خود را برای شروع فعالیت در این حوزه آماده کند و نیازی نیست که برنامه نویسی پایتون را به طور کامل آموزش ببیند. این موضوع کاملاً واضح است که یادگیری زبان برنامه نویسی پایتون به طور کامل و سپس یادگیری پایتون برای هوش مصنوعی میتواند برای افزایش مهارت کدنویسی فرد بسیار سودمند باشد، اما این مسئله نیز باید در نظر گرفته شود که طی کردن همه این مراحل زمان زیادی نیاز دارد و ممکن است فرد نتواند زمان زیادی را به این آموزشها اختصاص دهد.
با این حال، شروع برنامه نویسی پایتون تنها با دستورات و عملکردهای مختص به هوش مصنوعی، روش خوبی برای یادگیری کدنویسی هوش مصنوعی به حساب میآید. به طور کلی هوش مصنوعی علمی است که هیچگونه پایانی ندارد و افرادی که در این حوزه فعالیت میکنند، همیشه در حال یادگیری هستند و هیچ وقت تسلیم و ناامید نمیشوند. در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی موضوع انتخاب تمرکز فعالیت خود در هوش مصنوعی پرداخته شده است.
انتخاب حوزه فعالیت در هوش مصنوعی
حال پس از یادگیری ریاضیات، آمار و احتمالات و زبان برنامه نویسی مناسب، به دلیل وجود تعداد بالای حوزههای مرتبط با هوش مصنوعی، نیاز است که نوع و زمینه فعالیت انتخاب شود تا بتوان با استفاده از علم آن حوزه، برنامه هوش مصنوعی مورد نظر را پیادهسازی کرد. همانطور که پیش از این اشاره شد، هوش مصنوعی حیطه بسیار وسیعی است و حتی به صورت بین رشتهای و برای استفاده در تکمیل بخشهای پروژههای دیگر نیز بسیار خوب عمل میکند. بنابراین برای شروع یادگیری هوش مصنوعی باید این موضوع و زمینه فعالیت در آن را مشخص کرد تا بر اساس آن، یادگیری آغاز شود؛ زیرا هر زمینه از هوش مصنوعی دارای ابزارها و روشهای مختلف مخصوص به خود است.
شروع یادگیری هوش مصنوعی بدون داشتن هدف و تمرکز روی یک موضوع خاص به مرور زمان باعث ایجاد حس فرسودگی و نداشتن مهارت کافی در فرد خواهد شد. انتخاب نوع فعالیت هوش مصنوعی باعث سادگی در مسیر یادگیری و به دست آوردن تخصص در یک حیطه خاص میشود. در ادامه مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی انواع مختلف هوش مصنوعی پرداخته شده است.
انواع سطح های هوش مصنوعی کدامند؟
در این بخش برای درک بهتر هوش مصنوعی و اینکه چگونه هوش مصنوعی یاد بگیریم ، به بررسی انواع سطحهای گوناگون آن پرداخته شده است. معمولاً سیستمهای هوش مصنوعی به سه سطح زیر تقسیم میشوند:
- «هوش مصنوعی محدود» (Artificial Narrow Intelligence): این نوع از هوش مصنوعی به عنوان هوش مصنوعی ضعیف نیز شناخته میشود. این روش، «هدفگرا» (Goal Oriented) است و در طراحی وظایف ساده و سطح پایین مورد استفاده قرار میگیرد. فناوریهایی مانند Siri و Alexa مثالهایی برای هوش مصنوعی محدود به حساب میآیند. مسائل این نوع از هوش مصنوعی از طریق الگوریتمهای یادگیری ماشینی انجام میشوند که مختص یک زمینه خاص هستند و با استفاده از این الگوریتمها تنها میتوان مسئله مربوط به آن زمینه خاص را حل کرد.
- «هوش مصنوعی جامع» (Artificial General Intelligence): این نوع جامع، به عنوان هوش مصنوعی عمیق یا قوی نیز شناخته میشود. برخی از کاربردهای اصلی آن شامل تشخیص، تست فرضیه، مقایسه و سایر موارد میشوند. برای مثال میتوان گفت که سیستمهای «تشخیص و بازشناسی گفتار» (Speech Recognition) و «تشخیص چهره» (Face Recognition) در این دسته از هوش مصنوعی قرار میگیرند. با این حال، هوش مصنوعی جامع هنوز هم جای پیشرفت دارد و افراد زیادی در این زمینه به پژوهش میپردازند.
- «فراهوش مصنوعی» (Artificial Super Intelligence): این نوع از هوش مصنوعی فقط یک مفهوم مبهم به نظر میرسد. فراهوش مصنوعی قرار است در آینده توسعه یابد. این هوش مصنوعی باید بتواند مجموعهای از احساسات خود را همراه با معادله آنها ایجاد کند. سیستمهای فراهوش مصنوعی وظایف را کارآمدتر از انسان در زمینههایی از جمله محاسبات، ورزش، هنر و سایر موارد انجام میدهند یا قرار است در آینده انجام دهند.
دستهبندیهای فوق بسیار کلی و ساده هستند و برای یادگیری هوش مصنوعی کمک زیادی به افراد نمیکنند. برای انتخاب حیطه فعالیت باید بسته به انتخاب نوع فناوری هوش مصنوعی، پیش رفت. در بخش بعدی سعی شده است که رایجترین فناوریها در هوش مصنوعی مورد بررسی قرار بگیرند. این فناوریها قابلیتهای متفاوتی دارند و همه آنها به افراد ایدههایی برای تمرکز روی یادگیری میدهند. اگر هر کدام از این فناوریها به خوبی فرا گرفته شوند، یادگیری فناوریهای دیگر هوش مصنوعی نیز برای افراد سادهتر خواهد شد.
انواع فناوری های هوش مصنوعی کدامند؟
فناوریهایی که در این بخش مورد بررسی قرار میگیرند، آن دسته از فناوریهایی هستند که توسعه دهندگان هوش مصنوعی ارتباط و تعامل بیشتری با آنها برقرار میکنند. این موضوع بسیار جامع است و در ادامه سعی شده به بیشتر این فناوریها اشاره شود:
- «یادگیری ماشین» (Machine Learning): در اکثر مواقع هوش مصنوعی همراه با یادگیری ماشین در نظر گرفته و استفاده میشود. یادگیری ماشین شاخهای از هوش مصنوعی است که هدف آن ساخت ماشین و سیستمهایی است که میتوانند از دادهها یاد بگیرند، الگوها را شناسایی کنند و بدون دخالت انسان تصمیم بگیرند. البته این مسائل در قلب اکثر برنامههای هوش مصنوعی وجود دارد.
- «یادگیری عمیق» (Deep Learning): این حوزه شاخهای از یادگیری ماشین در نظر گرفته میشود که روی یادگیری سیستمهای کامپیوتری برای وظایفی از جمله تشخیص و بازشناسی گفتار، «تشخیص تصاویر» (Image Identification) و ایجاد پیشبینی برای پیادهسازی الگوریتمهایی مانند «شبکه عصبی مصنوعی» تمرکز دارد.
- «پردازش زبان طبیعی» (Natural Language Processing): این زمینه، شاخهای از هوش مصنوعی به حساب میآید که به کامپیوترها میآموزد تا با استفاده از تجزیه و تحلیل متن برای تحلیل ساختمان عبارتها، تفسیرها و هدفها، زبان انسان را درک، تفسیر و ویرایش کنند.
- «بینایی ماشین» (Computer Vision): در این زمینه از هوش مصنوعی، کامپیوترها برای تفسیر و درک دنیای دیداری آموزش داده میشوند. به عنوان بهترین مثالها برای این حوزه از هوش مصنوعی میتوان به تشخیص چهره، جستجو تصاویر و «تشخیص پلاک» (Licence Plate Recognition) اشاره کرد.
- «رباتیک» (Robotics): این حوزه، شاخهای از هوش مصنوعی است و با استفاده از آن میتوان رباتهای هوشمندی ساخت که رفتار و احساسات انسانها را به صورت خودکار تقلید میکنند. برخی از مردم ترس از پیشرفت فناوری تا این درجه را دارند؛ زیرا فکر میکنند که در آینده رباتها در بسیاری از زمینهها جایگزین انسانها خواهند شد و این موضوع میتواند تا حدی صحیح باشد.
برای پایان دادن به این بخش از مسئله اینکه چگونه هوش مصنوعی یاد بگیریم ، میتوان گفت که بهترین و کلیدیترین راه برای اینکه مشخص شود چگونه هوش مصنوعی یاد بگیریم ، داشتن یک هدف مشخص برای یادگیری است. برای مثال میتوان مسئله «میخواهم الگوریتمی را طراحی کنم که آب و هوا را پیشبینی کند.» را در نظر گرفت. برای حل چنین مسئلهای بهتر است که انرژی و زمان فرد فقط روی یادگیری ابزارها و موارد متناسب با همین مسئله صرف شود تا بتوان یادگیری هوش مصنوعی را بهتر و بهینهتر به پیش بُرد.
اگر به جای یادگیری ابزارهای مورد نیاز، فرد اقدام به یادگیری همه ابزارها و روشهای مورد استفاده در هوش مصنوعی کند، آنگاه تمرکزش کاهش مییابد و زمان و انرژی فرد تلف خواهد شد. برای یادگیری هوش مصنوعی میتوان روشهای مختلفی را انتخاب کرد و در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی برخی از این روشها پرداخته شده است.
با چه روش هایی و چگونه هوش مصنوعی یاد بگیریم ؟
امروزه با پیشرفت فناوری در زمینه هوش مصنوعی و با افزایش تعداد افرادی که قصد یادگیری هوش مصنوعی را برای پروژههای خود دارند، به جز روش تحصیل در رشته کامپیوتر و گرایش هوش مصنوعی یا علوم کامپیوتر در دانشگاهها، انواع روشهای یادگیری مختلف از جمله دورههای آنلاین، آفلاین، مقالهها، کتابها و سایتهای آموزش برنامه نویسی هوش مصنوعی بسیاری به وجود آمدهاند. بسیاری از این روشها به صورت رایگان در دسترس افراد قرار میگیرند و در سطوح پیشرفتهتر دورههای غیررایگان دیگری نیز وجود دارند.
میتوان سطوح مقدماتی و ساده هوش مصنوعی را با استفاده از دورهها و منابع رایگان آموخت و سپس در سطوح پیشرفته و زمینه خاص مورد مطالعه در دورههای آنلاین شرکت کرد یا آموزشهای ویدیویی را تهیه کرد. یکی از بهترین راههای یادگیری هوش مصنوعی و برنامه نویسی آن، استفاده از دورههای ویدیویی است که میتواند از ابتداییترین سطوح تا مباحث پیشرفتهتر را پوشش دهد. با استفاده از مراحل زیر میتوان از دورههای رایگان هوش مصنوعی انگلیسی موجود در اینترنت، آن را فرا گرفت:
- میتوان فناوری مورد نظر برای یادگیری هوش مصنوعی را در موتور جستجو گوگل یا وب سایت یوتیوب همراه با کلمه «Tutorial» نوشت و از اطلاعاتی استفاده کرد که برای یادگیری این حیطه ارائه میشوند.
- بهتر است اکثر نتایجی که در قالب فیلم آموزشی ارائه میشوند را بررسی کرد و طبق سلیقه و رویکرد آموزش مورد نظر خود، بهترین دوره آموزشی را انتخاب کرد.
- پس از انتخاب دوره آموزشی، بهتر است که آن را تا انتها ادامه داد و در اواسط یادگیری به وسیله آن، دوره آموزشی دیگری را انتخاب نکرد. معمولاً مشاهده چند دوره آموزشی به صورت همزمان باعث سردرگمی میشود.
- برخی از دورههای آموزشی دارای تمرین و تستهایی هستند که برای یادگیری بهتر هوش مصنوعی نیاز است که همه آنها انجام شوند. میتوان گفت که نکته کلیدی در یادگیری هوش مصنوعی، تمرین است و بدون تمرین امکان فراموشی اطلاعات مشاهده شده بیشتر میشود.
برای یادگیری هوش مصنوعی به وسیله دورهها و وب سایتهای آموزش هوش مصنوعی دو نوع آموزش کامل وجود که در ادامه شرح داده شدهاند:
- نوع اول دورههای آموزشی، آنهایی هستند که به صورت عمیق در مباحث تئوری هوش مصنوعی تمرکز دارند و بدون جنبه عملی و تمرین، هوش مصنوعی را آموزش میدهند. این دورهها ممکن است هیچ کدی نداشته باشند و فقط برای درک مفاهیم اولیه هوش مصنوعی و آغاز یادگیری هوش مصنوعی مناسب هستند.
- نوع دوم از دورههای آموزشی دارای تمرین و کدنویسی فراوان هستند. با استفاده از این دورهها میتوان پیادهسازی الگوریتمها، وارد کردن ورودیها، دریافت خروجیها و پیادهسازی آنها را یاد گرفت. این دورهها برای یادگیری کامل هوش مصنوعی و برنامه نویسی آن مناسب هستند.
فرادرس بهترین سایت آموزش هوش مصنوعی به زبان فارسی محسوب میشود. دورههای آموزشی جامع و کاربردی بسیاری برای یادگیری هوش مصنوعی و موارد مرتبط به آن در وب سایت فرادرس وجود دارند. علاوه بر این، «مجله فرادرس» نیز یکی از بهترین سایتهای فارسی یادگیری هوش مصنوعی به حساب میآید که مبتنی بر آموزش متنی است و تاکنون مقالههای زیادی برای آموزش هوش مصنوعی، یادگیری ماشین، یادگیری عمیق و سایر موارد به صورت کاملاً رایگان در آن منتشر شدهاند. در ادامه ابتدا به معرفی مجموعه دورههای آموزش هوش مصنوعی سایت فرادرس و سپس به ارائه فهرستی از بهترین مقالههای آموزش پایتون مجله فرادرس پرداخته شده است.
معرفی فیلم های آموزش هوش مصنوعی فرادرس
دورههای آموزشی فرادرس بر اساس موضوع به صورت مجموعههای آموزشی گوناگونی دستهبندی شدهاند. یکی از این مجموعهها، مربوط به دورههای آموزش هوش مصنوعی است. علاقهمندان و دانشجویان میتوانند از این مجموعه آموزشی برای یادگیری بیشتر هوش مصنوعی و موارد گوناگون مرتبط به آن استفاده کنند. در زمان تدوین این مقاله، مجموعه دورههای برنامه نویسی فرادرس حاوی بیش از ۳۳۸ ساعت محتوای ویدیویی و حدود ۳۹ عنوان آموزشی مختلف است. در ادامه این بخش، برخی از دورههای این مجموعه به طور خلاصه برای علاقهمندان معرفی شدهاند:
- فیلم آموزش هوش مصنوعی - مقدماتی (طول مدت: ۴ ساعت و ۳۴ دقیقه، مدرس: دکتر محمد صبری): این فرادرس به صورتی ارائه شده است که هم برای دانشجویان مقطع کارشناسی و علاقهمندان به هوش مصنوعی مفید باشد و هم افرادی بتوانند از آن استفاده کنند که قصد شرکت در آزمون کارشناسی ارشد یا دکتری را دارند. برای مشاهده فیلم آموزش هوش مصنوعی - مقدماتی + کلیک کنید.
- فیلم آموزش یادگیری ماشین Machine Learning با پایتون Python (طول مدت: ۱۰ ساعت، مدرس: مهندس سعید مظلومی راد): در این دوره آموزشی سعی شده است در ابتدا بستههای شناخته شده پایتون معرفی و سپس کار با توابع آنها آموزش داده شود. در انتها، مباحث یادگیری ماشین با مثالهای متعددی در زبان پایتون ارائه شدهاند. برای مشاهده فیلم آموزش یادگیری ماشین Machine Learning با پایتون Python + کلیک کنید.
- فیلم آموزش هوش مصنوعی توزیع شده (طول مدت: ۲۴ ساعت و ۸ دقیقه، مدرس: دکتر امیرحسین کیهانی پور): در این دوره آموزشی، به بیان مفاهیم پایه مربوط به عامل هوشمند، از جمله مباحث تئوری، روشهای اجرایی و پیادهسازی سامانههای تشکیل شده از تعدادی عوامل هوشمند و خودکار، پرداخته میشود. همچنین نمونههایی از کاربردهای اخیر آنها در حوزههای گوناگون، بررسی شدهاند. برای مشاهده فیلم آموزش هوش مصنوعی توزیع شده + کلیک کنید.
- فیلم آموزش مبانی یادگیری عمیق (طول مدت: ۵ ساعت و ۲۶ دقیقه، مدرس: دکتر سعید محققی): در این دوره آموزشی، یکی از محبوبترین و پرکاربردترین علوم حوزه هوش مصنوعی، یعنی یادگیری عمیق، آموزش داده شده است. برای مشاهده فیلم آموزش مبانی یادگیری عمیق + کلیک کنید.
- فیلم آموزش مقدماتی پردازش تصویر با اپن سی وی OpenCV در پایتون Python (طول مدت: ۳ ساعت و ۱۰ دقیقه، مدرس: مهندس محمدجواد زمانی قلعه): در این فرادرس، معرفی، نصب و بارگذاری تصاویر در برنامهها به صورت کاملاً سریع و آسان انجام و سپس با اعمال عملیات اصلی متداول روی آنها، رویکردهای ریاضی و تبدیلهای هندسی برای تصاویر آموزش داده میشود. برای مشاهده فیلم آموزش مقدماتی پردازش تصویر با اپن سی وی OpenCV در پایتون Python + کلیک کنید.
- آموزش شبکه های عصبی پیچشی CNN - مقدماتی (طول مدت: ۲ ساعت و ۱۲ دقیقه، مدرس: سایه کارگری): از آنجایی که شبکههای عصبی پیچشی یکی از نیازهای اصلی علاقهمندان به پردازش تصویر و بینایی ماشین به حساب میآید، فراگیری مفاهیم این شبکهها از اهمیت بالایی برخوردار است و در این فرادرس به آنها پرداخته میشود. برای مشاهده فیلم آموزش شبکههای عصبی پیچشی CNN - مقدماتی + کلیک کنید.
حال پس از معرفی مجموعه دورههای آموزش هوش مصنوعی فرادرس، بخش بعدی مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی مقالههای آموزش هوش مصنوعی مجله فرادرس، اختصاص داده میشود.
مقاله های آموزش هوش مصنوعی مجله فرادرس
همانطور که پیش از این هم بیان شد، تاکنون مقالههای آموزشی بسیاری برای یادگیری هوش مصنوعی در مجله فرادرس منتشر شدهاند. این آموزشها به صورت متنی و کاملاً رایگان هستند و به همین سبب میتوان مجله فرادرس را به عنوان بهترین سایت آموزش رایگان هوش مصنوعی به صورت متنی معرفی کرد. برخی از مقالههای مهم و کاربردی یادگیری و آموزش هوش مصنوعی و برنامه نویسی که تاکنون در مجله فرادرس منتشر شدهاند در ادامه شرح داده میشوند:
- درس هوش مصنوعی | مفاهیم پایه به زبان ساده — منابع، کتاب و فیلم آموزشی
- معرفی منابع آموزش ویدئویی هوش مصنوعی به زبان فارسی و انگلیسی
- ساخت هوش مصنوعی — آموزش کامل رایگان + نمونه پروژه
- فراگیری مفاهیم هوش مصنوعی — مجموعه مقالات جامع وبلاگ فرادرس
- عامل هوشمند چیست؟ — مفاهیم هوش مصنوعی به زبان ساده
- شبکههای عصبی مصنوعی – از صفر تا صد
- انواع شبکه های عصبی مصنوعی — راهنمای جامع
- معرفی منابع جهت آموزش یادگیری عمیق (Deep Learning) — راهنمای کامل
- آموزش کتابخانه یادگیری عمیق «کرس» (Keras) در پایتون — راهنمای جامع
- معرفی ۱۰ کتاب یادگیری ماشین لرنینگ با پایتون
- ارزیابی مدل یادگیری عمیق — به زبان ساده
- تفسیر مدل های یادگیری عمیق در بینایی کامپیوتر — راهنمای جامع
- یادگیری ماشین (Machine Learning) چیست؟ — راهنمای کامل
- پیاده سازی الگوریتم های یادگیری ماشین با پایتون و R — به زبان ساده
- علم داده، تحلیل داده، دادهکاوی و یادگیری ماشین ــ تفاوتها و شباهتها
- چگونه ۹۰ درصد مسائل پردازش زبان طبیعی (NLP) را حل کنیم؟ — راهنمای گام به گام
- درک زبان طبیعی در موتورهای جستجو — راهنمای جامع
- پردازش زبان طبیعی (NLP) با پایتون — راهنمای جامع
- آموزش پردازش زبان طبیعی پروژه محور — راهنمای کاربردی
- پیش پردازش متن در پایتون — راهنمای جامع
- دسته بندی متن با پایتون و کرس (Keras) — راهنمای جامع
- آموزش پایتون: مفاهیم OpenCV برای تشخیص چهره و حرکت — راهنمای مقدماتی
- مفاهیم یادگیری نظارت شده، نظارت نشده و نیمه نظارت شده
مقالههای فوق فقط برخی از موارد منتشر شده در ارتباط با یادگیری و آموزش هوش مصنوعی هستند و بسیاری از مقالههای دیگر نیز با موضوع هوش مصنوعی در مجله فرادرس وجود دارند. به راحتی میتوان با جستجو عبارت هوش مصنوعی، یادگیری ماشین، یادگیری عمیق، پردازش زبان طبیعی و سایر موارد مشابه در مجله، آموزش مورد نظر خود را پیدا کرد.
همچنین برای مشاهده و مطالعه مقالات رایگان دیگر هوش مصنوعی و برنامه نویسی مرتبط به آن، میتوان از سربرگ بالای وب سایت مجله فرادرس بخش «برنامه نویسی و علوم کامپیوتر» را انتخاب کرد و سپس طبق تصویر زیر، وارد بخش «هوش مصنوعی» شد و به همه مقالات این زمینه دسترسی پیدا کرد.
در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی روشهای یادگیری هوش مصنوعی با استفاده از شرکت در کارآموزی پرداخته شده است.
یادگیری هوش مصنوعی با شرکت در کارآموزی
یکی دیگر از روشهای یادگیری هوش مصنوعی، یادگیری آن در حین کار کردن است. گاهی برخی از شرکتها فرصتهای کارآموزی و یادگیری برای جذب افراد علاقهمند در نظر میگیرند. با شرکت در این دورهها میتوان تا حد معقولی در مهارتهای هوش مصنوعی پیشرفت کرد. معمولاً برای شرکت در کارآموزی هوش مصنوعی نیز فرد باید دانش قابل قبولی در برنامه نویسی و برخی از مفاهیم پایه هوش مصنوعی داشته باشد.
همچنین اگر افراد در رشته کامپیوتر و سایر رشتههای مرتبط با هوش مصنوعی تحصیل کرده باشند، شانس بیشتری برای قبول شدن در دورههای کارآموزی خواهند داشت. در اکثر موارد، این افراد پس از اتمام دوره کارآموزی خود، با شرط موفقیت در دوره، میتوانند در همان شرکت استخدام شوند و شروع به کار کنند. در بخش بعدی به شرح روش کمک گرفتن از یک «مربی» (Mentor) هوش مصنوعی پرداخته شده است.
کمک گرفتن از یک مربی هوش مصنوعی
در روند یادگیری هوش مصنوعی، در صورت نیاز نباید از درخواست کمک از افراد خبره دریغ کرد. چندین انجمن آنلاین وجود دارند که برای کمک گرفتن در یادگیری هوش مصنوعی میتوان از طریق آنها با افراد متخصص ارتباط گرفت و سوالهای خود را مطرح کرد، برای مثال وب سایت «Stack Overflow» محل مناسبی برای پرسش و پاسخهای هوش مصنوعی و رفع اشکالات به حساب میآید.
همچنین، گروههای فیسبوک و انجمنهای Reddit دو نمونه دیگر از این موارد هستند. روش دیگر نیز به این صورت است که اگر فرد در دوره آنلاینی شرکت کرده باشد، میتواند از مدرس یا همکلاسیهای خود برای رفع مشکلاتش در هوش مصنوعی کمک بگیرد. توییتر نیز محل خوبی برای پیدا کردن افراد متخصص و آشنایی با آنها محسوب میشود و همچنین میتوان با شرکت در رویدادهای هوش مصنوعی با افراد متخصص و فعال در این حوزه آشنا شد و از آنها درخواست کرد تا به عنوان منتور راهنمایی و کمک ارائه دهند. در ادامه مقاله «چگونه هوش مصنوعی یاد بگیریم» به شرح روش ساختن پروژه برای یادگیری هوش مصنوعی پرداخته شده است.
با استفاده از ساخت پروژه چگونه هوش مصنوعی یاد بگیریم ؟
در بخشهای قبل روش یافتن یک دوره آموزشی مناسب شرح داده شد. همچنین برخی از مقالههای فارسی فرادرس نیز برای علاقهمندان معرفی شدند. اما مهمترین و جذابترین روش یادگیری هوش مصنوعی، ساخت مدل و حل مسئله هوش مصنوعی بدون کمک گرفتن از شخص یا دوره آموزشی خاصی است.
در این بخش از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی نحوه ساخت پروژههای هوش مصنوعی، توسعه نمونه کارها و استقرار و استفاده از مدلهای هوش مصنوعی پرداخته میشود. همچنین باید به این موضوع نیز توجه داشت که به هنگام نوشتن رزومه، داشتن یک یا چند نمونه کار مناسب برای نشان دادن تجربه شغلی و عملی خود میتواند رزومه را بسیار پربار و تاثیرگذار کند. در ادامه چند نکته برای کمک به ساخت یک برنامه هوش مصنوعی ارائه شده است:
- شروع ساخت پروژه هوش مصنوعی به وسیله حل یک مسئله ساده و تست انواع رویکردهای گوناگون برای حل مسئله یکی از روشهای تمرین ساخت پروژه و یادگیری هوش مصنوعی است.
- در مرحله بعدی، طبق نتایج به دست آمده از پروژه ایجاد شده، میتوان آنها را بهینهسازی کرد و به دقت بهتری رساند. بنابراین، میتوان مؤلفههای مختلف پروژه را زیر نظر گرفت و با توجه به دقت نهایی ارائه شده در پروژه، آنها را تغییر داد تا بتوان به دقت بهتری رسید.
- بهتر است که همه این مراحل را به صورت تدریجی پیش برد؛ یعنی ابتدا از شبکههای عصبی ساده استفاده کرد و پس از درک کامل آنها و به مرور زمان شبکهها را پیچیدهتر کرد.
در ادامه این بخش از مقاله «چگونه هوش مصنوعی یاد بگیریم»، چند نمونه پروژه برای افراد تازهکار ارائه شده است.
نمونه پروژه برای یادگیری هوش مصنوعی
در ادامه این بخش چند نمونه پروژه برای شروع ایجاد پروژههای هوش مصنوعی به علاقهمندان معرفی شده است که میتوانند با استفاده از آنها ساخت پروژه هوش مصنوعی خود را آغاز کنند.
- پیشبینی قیمت خانه: میتوان برای حل این پروژه، یک شهر را در نظر گرفت و سعی در پیشبینی قیمت خانههای در حال فروش آن کرد. برای انجام این پروژه، تنها چیزی که نیاز است، یک مجموعه داده شامل قیمت خانهها بر اساس محله آنها به شمار میرود.
- پیشبینی قیمت سهام: برای افراد تازهکار در هوش مصنوعی و یادگیری ماشین، پیشبینی سهام بازار به دلیل وجود تعداد بالای مجموعه دادهها جالب است. میتوان با استفاده از آنها یک پروژه هوش مصنوعی را آغاز کرد.
- توصیه به مشتریها: در این پروژه باید مانند یک سیستم توصیهگر محصول به مشتری مانند پلتفرم تجارت الکترونیک آمازون عمل کرد. در این مسئله مجموعه داده معمولاً تاریخچه خرید یا جستجو مشتری خواهد بود.
در بخش بعدی چند منبع برای انتخاب مجموعه دادههای هوش مصنوعی معرفی شده است.
منابع مجموعه داده برای یادگیری هوش مصنوعی
برای انتخاب و استفاده از مجموعه دادهها میتوان از سه وب سایت رایگان زیر استفاده کرد:
در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی مسیر پیادهسازی یک پروژه هوش مصنوعی پرداخته شده است.
مسیر پیاده سازی پروژه هوش مصنوعی چگونه است؟
حال پس از یادگیری هوش مصنوعی، بهتر است یک پروژه هوش مصنوعی را پیادهسازی کرد تا سطح یادگیری خود را سنجید. برای پیادهسازی یک پروژه هوش مصنوعی یا یادگیری ماشین، نیاز است که علاوه بر ابزارهای نرم افزاری، برخی از ابزارای سخت افزاری خاص نیست برای آن تهیه شوند. برای تهیه سخت افزار مورد نیاز پروژههای هوش مصنوعی از دو روش زیر میتوان استفاده کرد:
- ساخت و تهیه یک سیستم سخت افزاری قدرتمند: برای مثال میتوان از پردازنده گرافیکی GPU به جای CPU استفاده کرد.
- استفاده از فضاهای ابری دارای سیستمهای سخت افزاری مناسب مانند «گوگل کولب» (Google Colab): گوگل کولب وب سایتی است که محیطی برای کدنویسی هوش مصنوعی دارد و اکثر ابزارهای مورد نیاز، مانند «تنسورفلو» (Tensorflow) و «کراس» (Keras) به صورت پیشفرض روی آن نصب هستند.
استفاده و به کارگیری مدل هوش مصنوعی ایجاد شده، بخشی از یادگیری آن است، زیرا گاهی استفاده از آن نیز دارای هزینه و پیچیدگی است. همچنین گاهی اوقات باید روی سیستم مورد نظر برنامههای جانبی دیگری برای پیادهسازی کدهای هوش مصنوعی نصب شوند.
برای مثال میتوان برای کاهش حجم خروجی کدهای هوش مصنوعی یا همان مدل استخراج شده، کدهای نوشته شده توسط فریم ورک تنسورفلو را به کدهای فریم ورک «تنسور آر تی» (TensorRT) تبدیل کرد تا از فضای حافظه دستگاه مورد نظر به صورت بهینه استفاده شود. در ادامه برخی از ابزارهای هوش مصنوعی ارائه شدهاند که میتوان با استفاده از آنها پروژههای هوش مصنوعی را ساخت و پیادهسازی کرد. اولین مرحله برای پیادهسازی یک پروژه هوش مصنوعی انتخاب زبان و ابزار مناسب برای آن است.
ابزارهای هوش مصنوعی
اولین ابزاری که برای شروع برنامه نویسی پروژههای هوش مصنوعی نیاز است، یک زبان برنامه نویسی ساده و مناسب برای آن به حساب میآید. هوش مصنوعی به برنامه نویسی پیچیده و زبانهایی با سینتکس و امکاناتی پیچیده نیاز ندارد و تنها با یادگیری مفاهیم مرتبط با هوش مصنوعی زبان برنامه نویسی مورد نظر میتوان ساخت پروژه و کدنویسی آن را آغاز کرد. معمولاً زبانهایی در حیطه هوش مصنوعی از محبوبیت بیشتری برخوردار هستند که دارای کتابخانهها، فریم ورکها و بستههای اختصاصی برای مسائل هوش مصنوعی باشند. در ادامه این بخش به بررسی برخی از زبانهای برنامه نویسی پرداخته شده است که برای هوش مصنوعی مناسب هستند.
با استفاده از زبان های برنامه نویسی چگونه هوش مصنوعی یاد بگیریم ؟
در بخشهای پیشین برخی از زبانهای برنامه نویسی هوش مصنوعی نام برده شدند. در این بخش به بررسی بیشتری از این زبانها، همراه با برخی از ابزارهای آنها پرداخته شده است. ابتدا در بخش بعدی به بررسی زبان برنامه نویسی پایتون پرداخته میشود که یکی از مهمترین زبانها برای برنامه نویسی هوش مصنوعی به حساب میآید.
زبان برنامه نویسی پایتون برای هوش مصنوعی
پایتون زبان برنامه نویسی «همه منظوره» (General-Purpose) است که کاربردهای مختلف بسیاری دارد. از این زبان در توسعه و برنامه نویسی وب، «شبکههای کامپیوتری» (Computer Network)، علم داده، هوش مصنوعی و سایر موارد استفاده میشود. پایتون به دلیل سادگی و خوانایی بالای سینتکس، به زبانی ساده برای یادگیری تبدیل شده است. این ویژگی خاص پایتون باعث میشود که این زبان به عنوان یک انتخاب مناسب برای مهندسان در سطحهای مختلف تازهکار تا پیشرفته باشد و نیازی به داشتن تجربه زیاد در برنامه نویسی برای کار در زمینه هوش مصنوعی وجود نداشته باشد.
پایتون دارای جامعهای بزرگ از برنامه نویسان است و اسناد و راهنماهای بسیاری دارد که افراد در حین یادگیری این زبان برنامه نویسی میتوانند برای رفع مشکلات خود به آنها مراجعه کنند. همچنین، به دلیل اینکه پایتون یکی از محبوبترین زبانهای برنامه نویسی هوش مصنوعی است، کتابخانههای طراحی شده متفاوت بسیاری دارد که میتوان با استفاده از آنها پردازشهای توسعه پروژههای هوش مصنوعی را انجام داد. برای مثال برخی از فریم ورکها و کتابخانههای کاربردی هوش مصنوعی و یادگیری ماشین زبان برنامه نویسی پایتون در ادامه فهرست شدهاند:
- کتابخانه تنسورفلو: از این کتابخانه برای طراحی شبکههای یادگیری عمیق استفاده میشود.
- کتابخانه کراس: این کتابخانه نسبت به تنسورفلو سادهتر است و گزینه مناسبتری برای طراحی شبکههای عصبی عمیق و یادگیری عمیق به حساب میآید. در این کتابخانه از کدهای تنسورفلو نیز استفاده شده است.
- کتابخانه Caffe: این کتابخانه برای طراحی شبکههای یادگیری عمیق مورد استفاده قرار میگیرد.
- کتابخانه NTLK: این کتابخانه یا همان «Natural Language Toolkit» یکی از کتابخانههای بسیار محبوب برای پروژههای پردازش زبان طبیعی به حساب میآید.
- کتابخانه Scikit-learn: این کتابخانه از الگوریتمهای اساسی یادگیری ماشین از جمله «دستهبندی» (Classification) و «رگرسیون» (Regression) پشتیبانی میکند.
- کتابخانه SpaCy: این کتابخانه برای پردازش زبان طبیعی مورد استفاده قرار میگیرد.
- کتابخانه «پانداس» (Pandas): این کتابخانه در علم داده کاربرد بسیار دارد و برای سازماندهی و تجزیه و تحلیل دادهها استفاده میشود.
در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی زبان برنامه نویسی R پرداخته شده است.
زبان برنامه نویسی R برای هوش مصنوعی
زبان برنامه نویسی R توسط متخصصین آمار و برای محاسبات آماری توسعه یافته است. از آنجایی که این زبان برنامه نویسی میتواند مجموعه دادههای گستردهای را مورد بحث و بررسی قرار دهد، در توسعه نرم افزارهای آماری، تجزیه و تحلیل دادهها و «تجسم یا مصورسازی دادهها» (Data Visualization) استفاده میشود. زبان برنامه نویسی R یکی از بهترین انتخابها برای پروژههای یادگیری ماشین به حساب میآید. R دارای «بستههای» (Package) فراوانی در زمینه یادگیری ماشین است که دو نمونه از آنها در ادامه ارائه شدهاند:
- CARAT: از این بسته برای آموزش دستهبندی و رگرسیون در زبان R استفاده میشود.
- randomForest: ابزاری برای تولید و ایجاد «درختهای تصمیم» (Decision Tree) است.
برنامه نویسهایی که تجربه کار با زبانهای برنامه نویسی پایتون و جاوا را دارند، معمولاً برنامه نویسی و سینتکس زبان R را هم به سرعت یاد میگیرند. در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی زبان جاوا برای برنامه نویسی هوش مصنوعی پرداخته شده است.
زبان برنامه نویسی جاوا برای هوش مصنوعی
جاوا، «زبان برنامه نویسی شی گرا» (Object Oriented Programming | OOP) و همه منظوره به حساب میآید و دارای سینتکس و روشهای اشکالزدایی ساده است. همچنین، جاوا زبانی مناسب برای توسعه اپلیکیشنهای موبایل به شمار میرود و به میزان زیادی بر هوش مصنوعی متکی است. از زبان جاوا در صنعت استفاده بسیاری میشود، این زبان در اجرا و پیادهسازی برنامهها سریعتر از پایتون عمل میکند و برای پروژههای هوش مصنوعی و یادگیری ماشینی مناسب است که به سرعت بالا برای انجام پردازشهای خود نیاز دارند. این زبان برنامه نویسی دارای تعدای کتابخانه یادگیری ماشین است که در ادامه برخی از آنها معرفی شدهاند:
- کتابخانه «وکا» (Weka): این کتابخانه در الگوریتمهای یادگیری ماشین و پیشبینی در مدلسازیها مورد استفاده قرار میگیرد.
- نرم افزار «Massive Online Analysis»: این نرم افزار، یک ابزار «متن باز» (Open Source) «داده کاوی» (Data Mining) است.
بسیاری از ابزارهای پردازش «کلان دادهها» (Big Data) محبوب، با استفاده از زبان جاوا نوشته شدهاند. برخی از این فریم ورکهای کلیدی در ادامه معرفی شدهاند:
- فریم ورک Apache Hive
- فریم ورک Apache Hadoop
- فریم ورک Apache Spark
به طور کلی جاوا در تجزیه و تحلیل دادهها، یادگیری عمیق و پردازش زبان طبیعی کاربرد دارد و دارای پشتیبانی قدرتمندی در جامعه برنامه نویسان است. در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی زبان برنامه نویسی «جولیا» (Julia) پرداخته شده است.
زبان برنامه نویسی جولیا برای هوش مصنوعی
زبان Julia توسط شرکت MIT در سال ۱۳۹۱ شمسی (۲۰۱۲ میلادی) توسعه یافته است و نسبتاً زبان جدیدی به حساب میآید. هدف این زبان برنامه نویسی پویا، بیشتر تجزیه و تحلیل عددی و علوم محاسباتی است. این زبان برنامه نویسی به دلیل داشتن سرعت بالا، ظرفیت محاسباتی قدرتمند و سینتکسی شبیه به اسکریپت نویسی در حال محبوب شدن میان برنامه نویسان است. همچنین جامعه برنامه نویسی این زبان نیز در حال رشد است و این مسئله به پشتیبانی هر چه بهتر از آن کمک میکند. برخی از کتابخانههای یادگیری ماشین زبان Julia در ادامه فهرست شدهاند:
- کتابخانه TensorFlow.jl
- کتابخانه Scikitlearn.jl
- کتابخانه Mocha.jl
- کتابخانه Flux
جولیا یک زبان برنامه نویسی مناسب برای برنامههای هوش مصنوعی است که به محاسبات عددی قدرتمند نیاز دارند. همچنین، این زبان برای برنامه نویسان هوش مصنوعی مناسبتر است که تجربه کار با زبانهای برنامه نویسی R و پایتون را دارند. در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی زبان برنامه نویسی ++C برای هوش مصنوعی پرداخته شده است.
زبان برنامه نویسی ++C برای هوش مصنوعی
++C، زبانی شی گرا همراه با کارایی و سرعت پردازش بالا است. این زبان معمولاً برای پیادهسازی مدلهای یادگیری ماشین پیچیده با کدهای فشرده عملکرد مطلوبی را از خود نشان میدهد. ++C، در «تعادل بار پویا» (Dynamic Load Balancing)، «کَش تطبیقی» (Adaptive Cache) و مدیریت حافظه به خوبی عمل میکند و به همین دلیل جهت ساخت فریم ورکهای مقیاسپذیر برای دادههای بزرگ انتخاب خوبی است. زبان ++C معمولاً در برنامههای کاربردی هوش مصنوعی با «منابع فشرده» (Resource-Intensive) استفاده میشود که نیاز به اجرای سریع دارند. بسیاری از کتابخانههای یادگیری ماشین و یادگیری عمیق به وسیله زبان ++C نوشته شدهاند. در ادامه دو نمونه از این کتابخانهها معرفی شدهاند:
- کتابخانه SHARK: این کتابخانه از الگوریتمهای «یادگیری نظارت شده» (Supervised Learning) مانند رگرسیون خطی پشتیبانی میکند.
- کتابخانه MLPACK: این کتابخانه دارای الگوریتمهای قابل گسترشی است که کاربران میتوانند از آنها در راهحلهای یادگیری ماشین خود استفاده کنند.
در بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به شرح و بررسی زبان «اسکالا» (Scala) برای برنامه نویسی هوش مصنوعی پرداخته میشود.
زبان برنامه نویسی اسکالا برای هوش مصنوعی
اسکالا یک زبان برنامه نویسی همه منظوره است که از «برنامه نویسی تابعی» (Functional Programming) و شی گرا پشتیبانی میکند. این زبان برنامه نویسی در سال ۱۳۸۳ شمسی (۲۰۰۴ میلادی) برای رفع کاستیهای بسیار اندک زبان جاوا طراحی و توسعه یافته است. این زبان برنامه نویسی از بسیاری از کتابخانههای JVM پشتیبانی میکند و همچنین، میتواند ویژگیهای سینتکسی قابل خواندن خود را با سایر زبانهای برنامه نویسی محبوب به اشتراک بگذارد. از آنجایی که بسیاری از برنامههای سیستم عامل اندروید با استفاده از زبان جاوا نوشته میشوند و اسکالا نیز کاملاً با این زبان سازگار است، میتوان از اسکالا برای توسعه اپلیکیشنهای اندرویدی استفاده کرد که در آنها از کاربردهای هوش مصنوعی بهره گرفته شده است.
این زبان به دلیل داشتن توانایی در مدیریت الگوریتمهای پیچیده و جریانهای دادهای، انتخابی مناسب برای برنامه نویسی هوش مصنوعی به حساب میآید. اسکالا در ارتباط با موتورهای پردازش داده بزرگ از جمله «Apache Spark» نیز مناسب است که با این زبان نوشته شدهاند. محبوبیت زبان اسکالا برای ایجاد مدلهای یادگیری ماشین توسط «Spark» و کتابخانههای یادگیری ماشین آن در حال افزایش است. در ادامه برخی از کتابخانههای این زبان برنامه نویسی معرفی شدهاند:
- کتابخانههای «Apache Spark MLlib» و «ML»: این کتابخانهها وظایفی مرتبط با «خوشهبندی» (Clustering)، دستهبندی و یادگیری نظارتشده دارند.
- کتابخانه «BigDL»: این کتابخانه با Apache Spark ادغام شده است و مانند «Apache PredictionIO» یک پشته ارائه میدهد که ساخت و استقرار الگوریتمهای یادگیری ماشین را ساده میکند.
در این بخش به بررسی برخی از زبانها و ابزارهای مهم در برنامه نویسی هوش مصنوعی پرداخته شد. افراد نسبت به پروژه و حیطه هوش مصنوعی مورد نظر خود باید زبان برنامه نویسی مناسب را انتخاب کنند. در بیشتر موارد از زبان پایتون در هوش مصنوعی استفاده میشود زیرا دارای انواع ابزارهای مختلف برای برنامه نویسی هوش مصنوعی در زمینههای متفاوت است. در بخش بعدی پس از انتخاب زبان برنامه نویسی، به بررسی دستورات خط فرمان سیستم عامل پرداخته شده است.
با استفاده از بررسی دستورات خط فرمان سیستم عامل چگونه هوش مصنوعی یاد بگیریم ؟
از آنجایی که معمولاً برای پیادهسازی برنامههای هوش مصنوعی از ترمینال سیستم عامل نیز میتوان استفاده کرد، بهتر است که دستورات خط فرمان را برای انجام پروژههای هوش مصنوعی یاد گرفت. همچنین، پیشنهاد میشود که سیستم عامل «لینوکس» (Linux) برای کار در زمینه هوش مصنوعی انتخاب شود زیرا نصب برنامههای مرتبط با هوش مصنوعی در این سیستم عامل سادهتر است.
میتوان از سیستم عاملهای دیگر مانند ویندوز نیز برای هوش مصنوعی استفاده کرد، اما ممکن است نصب برنامههای هوش مصنوعی در این سیستم عامل کمی پیچیده باشد. به طور کلی یادگیری دستورات ترمینال برای نصب ابزارهای هوش مصنوعی، پیادهسازی برنامهها و سایر موارد روش مناسبی است. همچنین، اگر شخصی برای ایجاد و پیادهسازی پروژه خود از گوگل کولب استفاده میکند، نیازمند داشتن دانش درباره دستوررات خط فرمان است. بخش بعدی از مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی مرحله «پیشپردازش» (Preprocessing) دادهها اختصاص دارد.
پیش پردازش داده ها در یادگیری هوش مصنوعی
دادهها در پروژههای هوش مصنوعی نقش بسیار مهمی را ایفا میکنند. در حقیقت بدون وجود دادهها، هوش مصنوعی معنی ندارد. پس از پیشرفت فناوری در زمینه استفاده و نگهداری از دادههای حجیم، هوش مصنوعی نیز پیشرفت فراوانی داشته و به یکی از حوزههای کارآمد و پر کاربرد تبدیل شده است. دادهها میتوانند متناسب با پروژه تعریف شده، هر چیزی از جمله تصویر، متن، ویدیو، کلمه و سایر موارد باشند. آنها باید قبل از وارد شدن به مدل هوش مصنوعی به عنوان ورودی، از جهتهای گوناگون مورد بررسی قرار بگیرند و تجزیه و تحلیل شوند.
همچنین در تجزیه و تحلیل دادهها، زمانی که دادههای مورد نیاز پروژه پاکسازی و ساختاریافته شدند، نیاز است که تجزیه و تحلیل اساسی روی دادهها انجام شود تا خصوصیات مختلف آنها مانند توزیع دادهها، بررسی دادههای از دست رفته و سایر موارد درک شوند. معمولاً پاکسازی و تجزیه و تحلیل دادهها در زبان پایتون با استفاده از کتابخانه Pandas انجام میشود و دادههایی که نیاز است به صورت آرایهای ارائه شوند به وسیله کتابخانه «Numpy» پایتون آماده میشوند.
فعالیت در این زمینهها در حوزه کار «تحلیلگر داده» (Data Analyst)، «دانشمند داده» (Data Science) و «مهندس داده» (Data Engineer) است. بخش بعدی مقاله «چگونه هوش مصنوعی یاد بگیریم» به بررسی برخی از مفاهیم مهم و کاربردی هوش مصنوعی و یادگیری ماشین پرداخته میشود.
آموختن مفاهیم یادگیری ماشین برای یادگیری هوش مصنوعی
یادگیری ماشین که جزئی جدانشدنی از هوش مصنوعی به حساب میآید، دارای انواع گوناگون یادگیری است که هر کدام نشان دهنده رویکرد و روش عملکرد پروژه هستند. بر اساس نوع مجموعه داده و پروژه تعریف شده یکی از این روشهای یادگیری انتخاب میشوند و حل مسئله به وسیله آن پیش میرود. در ادامه به بررسی این روشهای یادگیری پرداخته شده است:
- «یادگیری نظارت شده» (Supervised Learning): در این روش از یادگیری، با استفاده از مجموعه داده مشخصی که به الگوریتم هوش مصنوعی داده میشود، سیستم برای ارائه نتایج نهایی آموزش میبیند. به عبارت دیگر، یادگیری نظارت شده نوعی از یادگیری به حساب میآید که دارای مجموعه دادههای برچسبدار است. الگوریتمهای یادگیری نظارتی بسیاری وجود دارند که برای مثال میتوان به «ماشین بردار پشتیبان»، «رگرسیون لجستیک» (Logistic Regression)، «جنگل تصادفی» (Random Forest)، «دسته بند بیز ساده» (naïve Bayes Classification) و سایر موارد اشاره کرد.
- «یادگیری نظارت نشده» (Unsupervised Learning): این نوع از الگوریتمها از دادههایی استفاده میکنند که برچسبدار نیستند. روش طبقهبندی دادهها در این الگوریتمها به صورت «خوشهبندی» (Clustering) است. این الگوریتمها با پیدا کردن شباهت بین اشیا، آنها را طبقهبندی میکنند.
- «یادگیری نیمه نظارتی» (Semi Supervised Learning): یادگیری نیمه نظارتی به نوعی از الگوریتمها گفته میشود که مجموعه داده آنها شامل مجموعه کوچکی از دادههای برچسبدار و مجموعه بزرگی از دادههای بدون برچسب میشود.
- «یادگیری تقویتی» (Reinforcement Learning): این نوع یادگیری روشی است که بر اساس ارزش یا دادن پاداش به اشیا، آنها را دستهبندی میکند. به طور کلی، یک عامل یادگیری تقویتی میتواند محیط خود را درک و تفسیر کند، اقداماتی انجام دهد و از طریق آزمون و خطا آموزش ببیند.
پس از انتخاب نوع یادگیری برای پروژه، باید مدل هوش مصنوعی مناسب انتخاب یا طراحی شود. در بخش بعدی به بررسی مدل هوش مصنوعی پرداخته شده است.
یادگیری طراحی مدل هوش مصنوعی برای یادگیری هوش مصنوعی
حال پس از بررسی انواع روشهای یادگیری ماشین، زمان انتخاب و ایجاد مدل هوش مصنوعی یا «شبکه عصبی مصنوعی» (Artificial Neural Network | ANN) است. یکی از معروفترین مدلها، «شبکه عصبی پیچشی» (Convolutional Neural Network | CNN) به حساب میآید که در بسیاری از حوزهها استفاده میشود. با این مدل میتوان در حوزههای مختلفی مسائل پیچیده را حل کرد.
در این بخش میتوان مدل مورد نظر خود را با استفاده از زبان برنامه نویسی و فریم ورکهایی از جمله تنسورفلو، کراس و PyTorch ایجاد کرد. در وب سایتهایی از جمله گیتهاب انواع مختلف مدلها برای حوزههای متفاوت وجود دارند که با پیادهسازی و بررسی آنها میتوان در یادگیری مدلهای هوش مصنوعی پیشرفت خوبی داشت. همچنین میتوان از مدلها و شبکههای معروف و «از قبل آموزش داده شده» (Pre-Trained) نیز استفاده کرد و دادههای ورودی خود را برای آموزش به آنها داد. به این روشها «Fine Tune» کردن مدل، گفته میشود.
برای استفاده از مجموعه دادهها در مدلهای الگوریتمهای دستهبندی باید آنها را به دو یا سه بخش «آموزش» (Train)، «تست» (Test) یا «اعتبارسنجی» (Validation) تقسیم کرد. در برخی از پروژهها نیازی به مجموعه اعتبارسنجی نیست. مجموعه آموزش که معمولاً بزرگترین مجموعه در نظر گرفته میشود، برای آموزش مدل، مجموعه اعتبارسنجی برای تست هر «دوره» یا همان «Epoch» آموزش در زمان پیادهسازی و مجموعه تست پس از پیادهسازی کامل مدل برای تست مدل نهایی استفاده میشوند. همچنین، هیچ کدام از این مجموعهها نباید باهم همپوشانی داشته باشند.
معمولاً در پروژههای هوش مصنوعی هنگام آموزش دادهها چندین بار (دوره) این کار انجام میشود تا در نهایت بتوان به نتیجه قابل قبولی رسید. به هر کدام از این دورهها Epoch گفته میشود. گاهی ممکن است تعداد دورهها بیشتر از تعداد مناسب برای پروژه تعریف شوند و این موضوع باعث «بیشبرازش» (Overfitting) مدل میشود. Overfitting زمانی رخ میدهد که مدل فقط برای دادههای آموزشی دقت خوبی ایجاد کند و دقت آن برای دادههای اعتبارسنجی و تست پایین باشد. به عبارت دیگر، میتوان گفت که مدل شرطی میشود و فقط برای دادههای آموزش به خوبی عمل میکند.
در این حالت یکی از روشهای از بین بردن بیشبرازش، کاهش تعداد Epochها است. همچنین گاهی با افزایش تعداد دادههای مجموعه آموزش نیز این مشکل برطرف میشود. پس از اتمام آموزش مدل هوش مصنوعی، با مجموعه داده تست مدل آزمایش میشود و نتایج نهایی پروژه مشخص میشوند. در بخش بعدی به بررسی روشهای پیدا کردن شغلی متناسب با هوش مصنوعی پرداخته شده است.
روش های پیدا کردن شغل هوش مصنوعی
پس از یادگیری هوش مصنوعی، در این بخش از پاسخ به سوال چگونه هوش مصنوعی یاد بگیریم، چند مرحله برای پیدا کردن شغل مناسب و متناسب با مهارتهای هوش مصنوعی فرد ارائه شده است.
- قرار دادن پروژه خود در وب سایت گیتهاب: برخی از مدیران شرکتها برای استخدام افراد، علاقه دارند که نمونهای از کدها و پیادهسازی واقعی از آنها را ببینند. پس بهتر است که پروژه یا پروژههایی به صورت عمومی در وب سایتی مانند گیتهاب همراه با روش توسعه یا مقاله آنها به اشتراک گذاشته شوند تا مدیران بتوانند به راحتی کدها را ببینند و برای استخدام افراد تصمیمگیری کنند.
- ایجاد یک حساب کاربری لینکدین: این پلتفرم شبکه اجتماعی برای ارائه و ثبت سوابق عملی، فنی، تحصیلی و دیگر موارد این چنینی افراد مورد استفاده قرار میگیرد. برخی از مدیران برای استخدام فرد مورد نظر خود، صفحه لینکدین آن را نیز بررسی میکنند. همچنین، میتوان کدهای پروژههای موجود در گیتهاب خود را با حساب کاربری لینکدین خود پیوند زد. داشتن یک صفحه اجتماعی لینکدین به افراد در پیدا کردن شغلی مناسب کمک خواهد کرد.
- نوشتن مطالبی درباره اطلاعات هوش مصنوعی خود: پس از یادگیری هوش مصنوعی، برنامه نویسی و ریاضی مورد نیاز آن، میتوان مطالبی درباره هوش مصنوعی و یادگیری ماشین تدوین کرد. این مطالب را میتوان در لینکدین، رزومه یا هر بخش مناسب دیگری برای دیده شدن قرار داد.
- شرکت کردن در جلسات، رقابتها، کنفرانسها و سایر موارد: با شرکت در این بخشها میتوان روزمه خود را فعالتر نشان داد و مدیران با با دیدن فعالیت فرد از استخدام آن مطمئنتر خواهند بود.
- ارسال رزومه برای موقعیتهای شغلی هوش مصنوعی و یادگیری ماشین: مشخصترین راه نیز برای پیدا کردن شغل مناسب با هوش مصنوعی، ارسال روزمه خود برای موقعیت شغلی مورد نظر از طریق ایمیل، وب سایت آن شرکت یا دیگر سایتها و روشهای شغلیابی است.
چرا و چگونه هوش مصنوعی یاد بگیریم ؟
در نهایت باید در این مقاله به این موضوع نیز پرداخته شود که با وجود حوزههای بسیار مختلف علوم کامپیوتر برای کسب درآمد، چرا باید هوش مصنوعی یاد بگیریم و در این بخش به سه دلیل یادگیری هوش مصنوعی پرداخته شده است:
- هوش مصنوعی به عنوان مهارت قرن شناخته میشود. این موضوع که هوش مصنوعی قرار است جایگزین انسان شود، کاملاً یک افسانه به حساب میآید. با این حال، منسوخ شدن برخی از مشاغل توسط هوش مصنوعی درست است و این فناوری نوظهور در اکثر حوزهها از مد گرفته تا مسائل مالی مورد استفاده قرار میگیرد. حتی پیشبینی میشود که در سالهای آتی حدود ۱۳۰ میلیون شغل توسط هوش مصنوعی ایجاد خواهد شد. بنابراین با یادگیری هوش مصنوعی میتوان بخشی از این تحول و حوزههای جدید بود.
- هوش مصنوعی، چشمانداز شغلی و درآمدی روشنی دارد. تعداد شغلهای مرتبط با هوش مصنوعی همراه با تنوع بسیار آنها، روز به روز در حال افزایش است. از جمله برخی از این شغلها شامل مهندس یادگیری ماشین، متخصص پردازش تصویر، متخصص پردازش زبان طبیعی، مهندس هوش مصنوعی، دانشمند داده، تحلیلگر داده، مهندس داده و سایر موارد هستند. همچنین درآمدی که میتوان از هوش مصنوعی کسب کرد، مناسب است و با پیشرفت فرد در مهارتش افزایش پیدا خواهد کرد.
- مدیریت کلان دادهها و موارد این چنینی با استفاده از هوش مصنوعی امکانپذیر است. با استفاده از کلان دادهها وظایف بسیاری در شرکتها انجام میشوند که یکی از روشهای اصلی مدیریت آنها استفاده از هوش مصنوعی است.
جمعبندی
امروزه، استفاده از حوزههای مختلف هوش مصنوعی در زمینههای متفاوت یکی از مسائل روز دنیا به حساب میآید. همانطور که در زندگی روزمره مشخص است، بیشتر سیستمهای جدید، سازمانها و حتی وسایل مورد استفاده بشر دارای سیستمهای هوش مصنوعی هستند و استفاده از آنها روز به روز در حال افزایش است. از این رو، به واسطه این افزایش کاربرد، موقعیتهای شغلی بسیاری در این حوزه ایجاد شدهاند و افراد زیادی به دنبال کسب اطلاعات و یادگیری هوش مصنوعی هستند.
در این مقاله سعی شد به طور جامع به این سوال پاسخ داده شود که چگونه هوش مصنوعی یاد بگیریم. همچنین در راستای بررسی جامع این یادگیری، در این نوشتار انواع مقالهها و دورههای مورد نیاز فارسی برای یادگیری هوش مصنوعی و برنامه نویسی آن به علاقهمندان و دانشجویان معرفی شدند. در بخشهای میانی و پایانی مقاله نیز به روند و مسیر یادگیری هوش مصنوعی و برنامه نویسی آن پرداخته شد.