در دنیایی زندگی میکنیم که رشد تکنولوژی به حدی زیاد شده که بسیاری از افراد نمیتوانند خود را با آن همراه کنند و از قافله جا میمانند. هوش مصنوعی یا Artificial Intelligent گرایش نسبتا جدیدی در علوم است که میخواهد تحولات اساسی در زندگی مردم ایجاد کند. تعریف هوش مصنوعی کمی دشوار است، اما میتوانیم بگوییم هوش مصنوعی ترکیبی از علوم مختلف برای هوشمند کردن ماشینها است. یکی از زیرشاخههای معروف هوش مصنوعی یادگیری ماشین یا Machine Learning میباشد که این روزها به شدت مورد بحث قرار میگیرد. تاثیر ماشین لرنینگ را هر روز در زندگی روزمره خود احساس میکنید و این علم تا حدودی در زندگی روزمره ما حضور دارد. اگر تصمیم گرفتید ماشین لرنینگ را یاد بگیرید و نمیدانید باید از کجا شروع کنید، این مقاله میتواند برایتان مفید باشد. در این مطلب بررسی میکنیم که ماشین لرنینگ چیست ؟ و چه کاربردهایی دارد؟ سپس بررسی میکنیم که چطور یک متخصص یادگیری ماشین شویم و درباره موقعیتهای شغلی این گرایش صحبت خواهیم کرد. اما قبل از هر چیز باید بدانیم برای یادگیری ماشین لرنینگ باید از اموزش برنامه نویسی مقدماتی شروع کنیم.
اگر شما هم به مباحث ماشین لرنینگ علاقهمند هستید پیشنهاد میکنیم به صفحه دوره آموزش ماشین لرنینگ سر بزنید و از سرفصل دوره مطلع شوید .
اگر بخواهیم به زبان ساده تعریفی از Machine Learning داشته باشیم، باید بگوییم یادگیری ماشین علمی است که به ماشینها یاد میدهد چطور چیزهای جدید از خودشان یاد بگیرند. احتمالا بعد از شنیدن این جمله از خودتان میپرسید آخر چرا باید ماشینها از خودشان یاد بگیرند؟ این کار چه سودی برای ما دارد؟ با یک مثال این جمله را بررسی میکنیم.
فرض کنید میخواهیم کف یک زمین را تمیز کنیم. زمانی که یک انسان این کار را انجام میدهد، کیفیت کار میتواند بسیار متغیر باشد چون به عوامل مختلفی بستگی دارد. احتمال اینکه انسان مریض شود یا بعد از چند ساعت کار خسته شود یا حتی بخواهد از زیر کار در برود بسیار زیاد است.
اما اگر به ماشین یاد بدهیم که کثیفی زمین را تشخیص داده و بر اساس میزان کثیفی و شرایط زمین شروع به تمیز کردن سطح آن بکند. اگر برای ماشین این کار را تعریف کنیم، بسیار بهتر از انسان میتواند آن را انجام دهد. بدون اینکه خسته شود یا احتمال مریض شدن داشته باشد. ماشین مدنظر باید بتواند به سوالات زیر جواب بدهد:
این کاری است که یادگیری ماشین یا Machine Learning انجام میدهد. یعنی به ماشین اجازه میدهد از خودش یاد گرفته و رفتارش را مرتب بهبود ببخشد.
ماشینها مثل ما انسانها مغز و قدرت تفکر ندارند، پس باید یک راهی وجود داشته باشد که به آنها فکر کردن را یاد بدهیم و اینجا است که مدلهای یادگیری ماشین میتوانند به کمک ما بیایند. به این شکل که ماشین، داده را از محیط بیرونی تحویل گرفته و آن را به مدل مربوطه تحویل میدهد. سپس این مدل با توجه به شرایط موجود تصمیمگیری میکند. در مثال تمیز کردن زمین، ماشین میتواند با دادههایی که میگیرد و تحویل مدل میدهد به اطلاعات مختلفی دست پیدا کند:
یادگیری ماشین یک زیرشاخه معروف در هوش مصنوعی است که کمک میکند ماشینها یا کامپیوترها بتوانند چیزهای جدید یاد بگیرند
داده کاوی در سال 1930 معرفی شد و هدف از آن یافتن اطلاعات مفید، پنهان شده و معتبر از میان حجم عظیمی از دادههاست. یادگیری ماشین اما در سال 1950 معرفی شد شامل بهکارگیری مدل استخراجی از دادههای آموزشی بر روی دادههای جدید است. هر دوی این تکنیکها از نظر اینکه سعی در یافتن دادههای مفید دارند با هم نقطهی اشتراک دارند ولی از نظر مسئولیت، مبدأ، پیادهسازی، ماهیت، موارد کاربرد و تکنینکهای به کار رفته متفاوت هستند.
دادهکاوی سعی در استخراج قوانین و روابط معنادار از روی دادهها دارد، اما ماشین لرنینگ سعی میکند تا به کامپیوتر قوانین استخراج شده را آموزش دهد. در حین بهکارگیری تکنیکهای دادهکاوی میتوانیم مدل خود را توسعه دهیم. اصلیترین تفاوت دادهکاوی و یادگیری ماشین در این است که در دادهکاوی استخراج اطلاعات بدون دخالت انسانی امکانپذیر نیست ولی در یادگیری ماشین، حضور انسان تا مرحلهی انتخاب و بهکارگیری الگوریتم یادگیری ماشین است و پس از آن یک بار برای همیشه نتایج آن مورد استفاده قرار میگیرد. نتایج حاصل از ماشین لرنینگ دقت بالاتری نسبت به دادهکاوی دارد.
احتمالا به این فکر میکنید که یادگیری ماشین کجای زندگی ما حضور دارد و اصلا به چه دردی میخورد. آیا واقعا این علم توانسته راهش را به زندگی روزمره ما باز کند؟ جواب مثبت است و میتوانیم بگوییم تقریبا غیرممکن است زندگی عادی شما تحت تاثیر این شاخه شگفتانگیز قرار نگرفته باشد. نگاهی به سرویسهای زیر بیندازید تا تاثیر ماشین لرنینگ در زندگی روزمره را حس کنید:
مثالهای بالا تنها اشاره کوتاهی به کاربردهای یادگیری ماشین داشتند و این حوزه بسیار گستردهتر است.
به طور کلی یادگیری ماشین را به 3 دسته تقسیم میکنند:
در ادامهی مقالهی ماشین لرنینگ چیست به توضیح این سه دسته میپردازیم.
همانطور که از نام آن میتوانید حدس بزنید در این حالت ماشین نیاز به یک ناظر یا راهنما دارد. دقیقا مثل یک کسی که پشت فرمان نشسته و در حال یاد گرفتن رانندگی است. کنار این شخص کسی به عنوان راهنما نشسته و توصیههای لازم را به او میدهد. در یادگیری با نظارت یک سری دادههای از قبل آماده شده به عنوان راهنما تحویل ماشین داده شده و ماشین با توجه به مدل مربوطه تصمیمات لازم را اتخاذ میکند.
در این حالت ماشین نیازی به راهنما نداشته و به کمک مشاهدات میتواند روابط بین دادهها را کشف کند. در این حالت بعد از اینکه کامپیوتر دادههای مختلف را دریافت کرد میتواند روابط بین آنها را کشف کند. یک مثال در یادگیری بدون نظارت ماشینی است که میتواند به کمک خوشه بندی و بر اساس الگوهایی که درک کرده است، تفاوت بین دو خودرو سمند و دنا را تشخیص دهد. یعنی اگر 100 خودرو به ماشین معرفی شود، در یکی از این 2 دسته قرار خواهد گرفت.
باز هم با دقت در اسم این مدل میتوانید کارکرد آن را متوجه شوید. در این حالت ماشین مرتب خود را تقویت کرده و سعی میکند در ارتباط با یک عامل (Agent) یا محیط (Environment) چیزهای جدید یاد بگیرد. این متد به کمک آزمون و خطا سعی در حل مساله داشته و در صورت گرفتن نتیجه مثبت پاداش و در صورت گرفتن نتیجه منفی جریمه میشود. در این حالت ماشین سعی میکند در تصمیمهای آتی خود موفقتر باشد.
اگر فکر میکنید یادگیری ماشین اسم جدید و جذابی برای خودکارسازی یا اتوماسیون است سخت در اشتباهید. این دو شاخه با هم تفاوت دارند.
بیشتر اتوماسیونهایی که اتفاق میافتند مبتنی بر قانون هستند. یعنی یک سری کارها با الگو از قبل تعریف شده انجام شوند. اما در ماشین لرنینگ ماشینها از کارهای قبلی خود چیزهای جدید یاد میگیرند. یعنی ماشینها میتوانند تصمیمات جدید بگیرند یا عملکرد خود را تغییر دهند.
یک مثال عالی برای درک تفاوت اتوماسیون و یادگیری ماشین سرویس ایمیل است. زمانی که ایمیلها به طور خودکار ارسال میشوند ما از اتوماسیون استفاده کردهایم و زمانی که یک فیلتر تشخیص اسپم روی آن قرار میدهیم، یعنی یادگیری ماشین را درگیر کردهایم.
3 مفهوم هوش مصنوعی (AI)، یادگیری ماشین (ML) و یادگیری عمیق (DL) معمولا در کنار هم قرار میگیرند و گاهی با هم اشتباه گرفته میشوند. Deep Learning شامل مفاهیم و الگوریتمهایی است که از شبکههای عصبی مصنوعی که ساختار مغز انسان را تشکیل میدهند الهام گرفته شده است.
به عبارتی دیپ لرنینگ زیرمجموعه یادگیری ماشین است و خودِ یادگیری ماشین هم به عنوان زیرمجموعه هوش مصنوعی در نظر گرفته میشود. تصویر زیر به خوبی رابطه این 3 مفهوم را نمایش میدهد.
ماشین لرنینگ یا یادگیری ماشین دانشی است که کمک میکند رایانهها بدون برنامهریزی مشخص و با الگو گرفتن از رفتار خودشان کارهای جدید انجام دهند. گفتیم که یادگیری ماشین به عنوان زیرمجموعهای از هوش مصنوعی به 3 دستهی کلی با نظارت، بدون نظارت و تقویتی تقسیم میشود. ماشین لرنینگ در بخشهای مختلف زندگی مردم حضور دارد و سرویسهای مختلفی به کمک این دانش ساخته میشوند.
برای تبدیل شدن به یک متخصص ماشین لرنینگ باید مهارتهای زیادی را بلد باشید. از علوم رایانه بگیرید تا ریاضیات و آمار و احتمال. این رشته چالشهای خاص خودش را دارد و اگر بدون علاقه وارد آن شوید احتمالا وسط راه خسته میشوید. هرچند نمیشود به طور کامل تمام چیزهایی که برای تبدیل شدن به یک متخصص ماشین لرنینگ نیاز دارید را در یک مطلب جا دهیم اما نشان دادن مسیر به علاقهمندان واقعی کمک میکند خودشان سراغ چیزهای جدید و مرتبط بروند. مطمئنا هنگامی که شروع به مطالعه و تمرین در حوزه ماشین لرنینگ میکنید، متوجه میشوید که چیزهای زیادی را باید یاد بگیرید.
برای یک متخصص ماشین لرنینگ بسیار مهم است که اصول اولیه و مفاهیم پایه یادگیری ماشین را بلد باشد. شما به عنوان یک متخصص ماشین لرنینگ باید الگوریتمهای معروف این حوزه و اهدافی که دنبال میکنند را بلد باشید. در قدم بعدی باید درک کنید که این الگوریتمها چطور با دادهها کار میکنند. همانطور که در بخش قبل گفتیم الگوریتمهای یادگیری ماشین در سه حوزهی کلی نظارتی، بدون نظارت و تقویتیاند. در ادامه تعدادی از معروفترین این الگوریتمها را برای شما لیست میکنیم تا دربارهی آنها مطالعه کنید:
همچنین مطالعه مقاله 10 مورد از بهترین الگوریتمهای داده کاوی میتواند ذهن شما را برای ورود به مباحث یادگیری ماشین آماده کند.
در این مرحله قبل از هر چیزی سعی کنید دانش عمومی خود را دربارهی یادگیری ماشین بالا ببرید. در ادامه چند سوال مطرح میکنم و از شما میخواهم جوابهای آن را پیدا کنید. آنقدر درباره این مفاهیم فکر کنید تا مطمئن شوید ملکه ذهنتان شدهاند.
یک متخصص یادگیری ماشین باید دانش زیادی در علوم رایانه داشته باشد. اگر در دانشگاه رشته مهندسی کامپیوتر یا رشتههای مشابه را خوانده باشید، چند قدم نسبت به سایر افرادی که میخواهند ماشین لرنینگ را یاد بگیرند جلوتر هستید. البته هر کسی به این حوزه علاقهمند باشد به سرعت میتواند با این مفاهیم آشنا شود. به طور کلی منظورم از مفاهیم علوم کامپیوتر در یادگیری ماشین موارد زیر هستند:
یادگیری مفاهیم بالا به تنهایی کافی نیست. شما به عنوان یک متخصص ماشین لرنینگ باید بتوانید هنگام برنامه نویسی این مفاهیم را پیاده سازی کرده و به درستی از آنها استفاده کنید.
برای متخصص شدن در ماشین لرنینگ لازم نیست نابغه آمار و احتمال باشید. همین که مفاهیم اصلی و موردنیاز را یاد بگیرید کفایت میکند. این خبر خوبی برای کسانی است که دلِ خوشی از ریاضیات و آمار ندارند، اما دوست دارند متخصص ماشین لرنینگ شوند. در ادامه بعضی از مفاهیم مهم و اساسی آمار را معرفی میکنم:
همانطور که میدانید برای مسلط شدن به مفاهیم ریاضی، باید با مسائل کلنجار بروید و خودتان به راه حل برسید. در غیر اینصورت نمیتوانید مطمئن شوید که موضوع را به خوبی درک کردهاید. منابع زیادی برای مطالعه مباحث عمومی آمار مثل کتاب، دورههای آموزشی آنلاین و غیره وجود دارند که میتوانید آنها را تهیه کنید.
زبان برنامه نویسی مناسب ماشین لرنینگ چیست ؟
زبان برنامه نویسی Python در حین سادگی، بسیار قدرتمند و انعطافپذیر است. پایتون در حوزههای مختلف مثل طراحی وب، ساخت اپلیکیشن، ساخت بازی و غیره مورد استفاده قرار میگیرد. زمانی که صحبت از هوش مصنوعی و یادگیری ماشین میشود، پایتون بیشتر از هر زبان دیگری جلب توجه میکند.
به عنوان یک متخصص ماشین لرنینگ باید یک زبان برنامه نویسی را یاد بگیرید که با توجه به سادگی و کتابخانههای قدرتمندی که پایتون دارد گزینهی مناسبی برای افراد فعال در حوزه یادگیری ماشین است. هر چند زبان R هم قابلیتهای زیادی دارد و میتواند در حل مسائل ماشین لرنینگ به کمک شما بیاید.
هر چند کار با دادههای کلان یا Big Data یک تخصص جداگانه به حساب میآید و نیاز به نیروی متخصص دارد. اما شما به عنوان یک مهندس ماشین لرنینگ باید با اصول Big Data آشنا باشید چون ممکن است در طول کارتان با حجم زیادی از دادهها سروکار داشته باشید.
اگر به این درک برسید که دادههای بزرگ چطور ذخیره میشوند، چطور فراخوانی شده یا چطور پردازش میشوند میتوانید راهحلهای بسیار مناسبی برای مسائل متنوع ماشین لرنینگ ارائه کنید.
توصیه میکنم برای تمرین و یادگیری Big Data حتما از یک توزیع لینوکس استفاده کنید چون لینوکس میانهی خوبی با Apache Hadoop دارد. Hadoop مجموعه ابزارهای متن بازی است که با استفاده از چند کامپیوتر بزرگ به حل مسائل مربوط به کلان داده میپردازد. در ادامه برخی از مفاهیمی که در یادگیری ماشین لرنینگ به شما کمک میکند را معرفی میکنم:
مدلهای یادگیری ماشین جزو مباحث پیشرفتهی این حوزه به حساب میآیند. این مدلها به اپل و مایکروسافت کمک کردند دستیارهای صوتی Siri و Cortana را بسازند یا کمک میکنند شرکتهای خودروسازی، روی خودروهای بدون راننده کار کنند. بعد از یادگیری مباحث قبلی باید وارد یک فاز جدی یعنی کار با مدلهای یادگیری ماشین شوید.
برای شروع میتوانید مدلی طراحی کنید که تصویر یک گل از تصویر یک میوه را تشخیص دهد. هر چند این مدل نمیتواند بلافاصله شما را به ساخت خودرو بدون راننده نزدیک کند، اما برای شروع خوب بوده و دید مناسبی از مسیری که باید طی کنید در اختیارتان قرار میدهد. بعضی از مباحثی که باید در این دوره یاد بگیرید عبارتند از:
مهندسی یادگیری ماشین مهمترین و پرتقاضاترین شغل فعلی هوش مصنوعی در جهان است. این شغل شامل متخصصانی میشود که تسلط بالایی در ساخت سیستمهای مبتنی بر هوش مصنوعی دارند، سیستمهایی که بتوانند از خودشان چیزهای جدید یاد بگیرند. رسیدن به مهارت بالا در این عنوان شغلی کمی سخت است.
مهندسان واقعی و خبره یادگیری ماشین باید بتوانند با طیف گستردهای از دادهها کار کرده و برنامه نویسی را در سطح قابل قبولی بلد باشند. تخمین زده میشود به طور میانگین ( در زمان نگارش این مقاله) هر مهندس یادگیری ماشین در ایالات متحده سالانه بین 120.000 تا 140.000 دلار درآمد دارد. البته افراد ماهر میتوانند درآمد بیشتری هم داشته باشند.
رباتها جدا از جذابیتی که برای مردم دارند و فیلمهای سینمایی پر تب و تاب هالیوودی که ساخته میشود، کاربردهای بسیار گستردهتری میتوانند داشته باشند. در تولید رباتها نقش بسیار گستردهای دارند و میتوانند بسیاری از کارهای دشوار را با سرعت بالا انجام دهند. رباتهای جراح میتوانند حتی با دقتی بیشتر از دستهای یک جراح، یک عمل پزشکی را انجام دهند. حتی امروزه رباتهای خانگی هم در حال تجاری سازی هستند. تنوع مشاغل رباتیک بسیار زیاد است و فرصتی نیست که دربارهی همه آنها صحبت کنیم.
کسانی که در هوش مصنوعی فعال هستند، میتوانند بعدا به عنوان یک کارشناس و متخصص رباتیک شروع به کار کنند. البته این افراد بعد از ورود به این حوزه باید مهارتهای جدیدی را هم یاد بگیرند. از آنجایی که رباتیک ترکیبی از کامپیوتر، مکانیک و برق است داوطلبان این موقعیت شغلی باید به جز هوش مصنوعی و ماشین لرنینگ به این مباحث هم علاقهمند باشند. متوسط درآمد مهندسان رباتیک در زمان نگارش این مقاله در آمریکا به طور میانگین 75.000 دلار در سال است.
یادگیری عمیق با اینکه زیرمجموعهای از ماشین لرنینگ به حساب میآید اما پیچیدگیهای خاصی نسبت به یادگیری ماشین دارد. به همین دلیل نیاز به کسانی دارد که به طور تخصصی در این حوزه فعالیت کنند. یک متخصص یادگیری عمیق تلاش میکند رفتار مغز انسان را بشناسد و سیستمهایی بسازد که از عملکرد مغز انسان تقلید کند. برای این کار این افراد از شبکههای عصبی استفاده میکنند. به عبارت سادهتر یک مهندس یادگیری عمیق میتواند ماشینهایی بسازد که بدون دخالت انسان توانایی یادگیری داشته باشد.
همانطور که از اسم این شغل میتوانید حدس بزنید متخصص داده باید دادههای مختلف را جمع آوری کرده و به کمک یادگیری ماشین آنها را تحلیل کند. این شغل با اینکه از مباحث آماری استفاده میکند اما وظیفهی آن فقط جمع کردن گزارش و آمار نیست. کسانی که در این حوزه وارد میشوند باید در استفاده از پلتفرمهای Big Data و ابزارهای مختلف مثل Hadoop، Pig، Hive، Spark، MapReduce و غیره، متخصص باشد. همچنین یادگیری زبانهای برنامه نویسی و کار با پایگاه داده مثل پایتون، SQL، پرل، اسکالا یا غیره، ضروری به نظر میرسد. متوسط درآمد دانشمندان داده در آمریکا در زمان نگارش این مقاله سالانه در حدود 115.000 دلار در سال است.
وظیفه این متخصص است که به ماشینها بینایی ببخشد. درست مثل ما انسانها که با چشمان خودمان میتوانیم دنیای بیرون را دیده و بسیاری از مسائل را تشخیص دهیم. البته ماشین به کمک دوربینهای خاص و نرم افزارهای پردازش تصویر دنیای بیرون را میبیند و با ساختار بینایی انسان تفاوتهای اساسی دارد. بینایی ماشین در بخشهای مختلفی مثل جریمه رانندگان متخلف، افزایش ایمنی خودروها، کنترل ترافیک، بخشهای مختلف صنعت و تولید و غیره کاربرد دارد. یک متخصص بینایی ماشین باید در علوم رایانه، شناخت نور، مهندسی مکانیک و غیره تخصص داشته باشد.
جمعبندی:
یادگیری ماشین یک زیرشاخه معروف در هوش مصنوعی است که کمک میکند ماشینها یا کامپیوترها بتوانند بدون برنامهریزی مشخص و با الگو گرفتن از رفتار خودشان تصمیمگیری و عمل کنند. ماشین لرنینگ در بخشهای مختلف زندگی مردم حضور دارد و سرویسهای مختلفی به کمک این دانش ساخته میشوند. یافتن تخصص در زمینهی ماشین لرنینگ طرفداران فراوانی در دنیای علوم کامپیوتر دارد، زیرا حوزههای شغلی فراوانی در دنیا نیازمند متخصصان علم داده است. برای تبدیل شدن به یک متخصص ماشین لرنینگ شما باید مفاهیم و نظریههای مطرح Machine Learning را بلد باشید، الگوریتمهای معروف ML را بشناسید، درک مناسبی نسبت به آمار و احتمال و ریاضیات داشته باشید و مهمتر اینکه توانایی قابل قبولی در زمینهی پردازش اطلاعات و کار با داده از طریق برنامهنویسی را داشته باشید. در مقاله ماشین لرنینگ چیست به توضیح کاربردهای یادگیری ماشین و اینکه چگونه به یک متخصص ماشین لرنینگ تبدیل شویم و آینده شغلی یادگیری ماشین پرداختیم. اگر در این زمینه سوال یا نظری داشتید خوشحال میشویم که با ما و کاربران سون لرن به اشتراک بگذارید.
در صورتی که آموزش دارید
لطفاً تماس بگیرید
که شدیداً نیاز به مشاوره دارم
ممنونم
میتونید به توضیحات دوره متخصص علم داده مراجعه کنید و در صورت تمایل با مجموعه تماس بگیرید تا در بخش مشاوره بهتر راهنمایی تون کنند.