مهندسی یادگیری ماشین یا نرم افزار؟
یادگیری ماشینی عبارت است از مطالعۀ تصمیمگیری تحت شرایط نامعلوم. به عبارت دیگر، فرد باید بداند که با در دست داشتن یک مجموعهداده آموزشی، باید چه اقدامی در مقابل مشاهده چیزهای جدید انجام دهد. تا سال 2018، تعداد کارمندان حوزه مهندسی نرم افزار در آمریکا به بیش از یک میلیون نفر رسیده است و براساس پیشبینیها، این تعداد به این زودیها کاهش پیدا نخواهد کرد. حال برای گام بعدی، باید شاهد افزایش چشمگیر تعداد فارغالتحصیلان رشته مهندسی یادگیری ماشین باشیم؛ کسانی که از ابزارهای مهم و کاربردی برای حل مشکلات و مسائل مختلف استفاده میکنند.
با توجه به ماهیت فراگیر یادگیری ماشینی (به ویژه یادگیری عمیق) در صنایع، هر روزه مهندسان بیشتری به استفاده از این ابزارها روی آورده و باعث میشود که سود زیادی عاید کسب و کارها شود.
لیست ابزارهایی که در حوزه مهندسی یادگیری ماشین استفاده میشود، انتها ندارد: پیشنهاد جستجو، گفتار به متن، دستیار صوتی، تشخیص چهره، تبلیغات، همه و همه از ابزار کاربردی این حوزه به شمار میروند. اجرای این مدلها چه تفاوتی با ساخت سیستمهای نرمافزاریِ وسیع دارد؟ ذهینت در هر دو مشابه است، اما تخصص فرق دارد.
[irp posts=”23628″]مهندسی نرمافزار – ساخت شبکه داده
جریان داده، کلید هر پروژۀ نرمافزاری است. مهندسین این حوزه باید الگوریتم مناسب و زبان مورد نظر برای توسعه را انتخاب کرده و سرانجام در فضای زبان، ساختارهای داده و الگوریتمها مشغول به کار شوند.
-
زبان
زبانهای توسعه و آزمایش به عنوان محیط کار مهندسان نرمافزار شناخته میشوند. این مهندسان درک مناسبی از قابلیتها در زبانهای مختلف دارند. پایتون یکی از زبانهای برنامهنویسی مورد علاقه مهندسان نرمافزار است که بخاطر ساده سازی و کاربرد گسترده به چنین محبوبیتی دست پیدا کرده است.
-
ساختارهای دادهای
ساختارهای دادهای مختلف مشخص میکنند که کدام عملیات رایانهای سریع است – میخواهیم سریعتر به دادهها دسترسی داشته باشیم؟ یا پردازش سریع با ابزار یادگیری مدنظرمان است؟ زبانهای مختلف از ویژگیهای مختلفی برخوردار هستند و بهترین مهندسان نرمافزار همانند یک زبان خارجی، به این زبانها تسلط کامل دارند.
-
الگوریتمها
الگوریتمهای استاندارد، بنیان مصاحبههای فنآوری به حساب میآیند (تنظیم، جستجو و غیره) چرا که اهمیت بسیار زیادی در مقیاسهای بزرگ دارند. نماد «Big O» یکی از ابزارهای مناسب برای یادگیری است، اما ایدهها زمانی در مقیاس بزرگ تحقق مییابند که سیستمهای گسترشیافته به کار بروند.
مهندسان نرمافزار علاقمندی زیادی به سطح بالای پیچیدگیِ سیستمهایشان نشان میدهند، چرا که اگر سطح پیچیدگی سیستم بالا باشد، توانایی ساخت بیشتری برای مهندسان فراهم میآورد. سادگی، امکان مقیاسپذیری و همکاری در سطح شرکتی را فراهم میکند و به همین خاطر، همیشه از سادگی به عنوان یک عامل بسیار مهم یاد میشود.
مهندسی نرمافزار خوب باعث تسهیل عملیات یادگیری ماشینی میشود؛ دادهها به میزان بیشتری در دسترس قرار گرفته و در نهایت شکل یکنواختتری پیدا خواهد کرد.
مهندسی یادگیری ماشین – ساخت شبکه دانش
در حوزه مهندسی یادگیری ماشین از دادهها برای ساخن مرزهای تصمیم استفاده میکنند. مرزهای تصمیم غالباً غیرخطی هستند و تفسیر آنها معمولاً کار دشواری است، اما این مرزها از دادهها تغذیه میشوند. مهندسان یادگیری ماشینی در راستای مدلها، استقرار و تاثیرگذاری فکر میکنند.
-
مدلها
چه زمانی باید از مدل عمیق یا تقریب بیزی (Bayesian) استفاده کرد؟ پیبردن به اینکه کدام یک از سیستمها میتوانند عملکرد بهتری داشته باشند، یک موضوع کلیدی برای مهندسان یادگیری ماشینی است. همچنین، تخصص در استفاده از مدلها باعث میشود مهندسان یادگیری ماشینی در صدر توجه شرکتهای فنآوری قرار گرفته و اولویت نخست استخدام باشند.
-
استقرار
تعداد زیادی از شرکتها به موقعیت خوبی در این حوزه دست پیدا کردهاند. هوش مصنوعی (در حیطه وسایل الکترونیکی) به هدف عمده شرکتهای بزرگی از قبیل اپل تبدیل شده است، شرکتهای عظیم دیجیتال مثل فیسبوک، گوگل و غیره هزینههای هنگفتی را برای کارآیی مدل اختصاص دادهاند و کمپانی خودروسازی تسلا، بازار خودروهای بدون سرنشین را به تسلط خود درآورده است. در گام بعدی باید منتظر نقش تاثیرگذار مهندسان در این زمینهها باشیم. تولید مدلهای تخصصیتر برای امور تخصصیتر در زندگی ما تاثیر بسزایی گذاشته و افزایش کارآیی این مدلها باعث تغییر سرعت اینترنت و عمر باتریها خواهد شد.
-
تاثیرگذاری
اخلاق. آیا مدلی که من از آن استفاده میکنم، به نفع گروه خاصی است و گروه دیگری از آن متضرر میشود؟ این موردی است که مهندسان یادگیری همیشه باید آن را مورد توجه خود قرار دهند، زیرا مجموعهدادهای را که انتخاب کرده و آموزش خود را بر اساس آن مجموعه انجام میدهید، در محصول نهاییتان بازتاب خواهد یافت. فرض کنید مجموعهدادهای از میان 100 کاربر انتخاب میشود، اگر همین مجموعهداده در اختیار میلیونها کاربر ناشناس قرار بگیرد، چه اتفاقی میافتد؟ شفافیت داده مسئله مهمی است و افراد باید در قبال آن مسئولیتپذیر باشند.
ما از چندین پروژۀ جدید استفاده کردیم که در میان طیف وسیعی از لایهها محبوس شده بودند. هدف از این کار، برداشتن گام بعدی در تحقیقات و سودمند کردن آنها در دنیای واقعی بود. بنابراین، سادگی یکی از کلیدیترین عواملی است که میتواند به کارمان بیاید.
دیجیتالی شدن هزینه چندان زیادی به همراه ندارد و سادگی یک عامل کلیدی است
مهندسان یادگیری ماشینی و مهندسان نرمافزار هر دو به این نکته واقفاند که حوزه دیجیتال ارزان و سریع است. بنابراین، سادهترین روشها مورد استقبال قرار میگیرند و میتوانند فراگیر باشند، چرا که این روشهای ساده به راحتی در یادگیری تعمیم یافته و به شکل بهتری در نرمافزار استفاده میشوند.
درست همانند بهترین مهندسین نرم افزار، مهندسین یادگیری ماشینی نیز از کارایی بالا و خلاقیت بی حد و مرزی برخوردار خواهند بود. بهترین دانشجویان مهندسی همیشه به دنبال پر کردن شکافهایی هستند که منجر به تغییرات بنیادی میشود. در مهندسی نرمافزار هم استفاده از ساختارهای دادهای و ابزارهای جدید حرف اول را میزند. تصور ما بر این است که با افزایش خودکارسازی مهندسی نرم افزار، مهندسان یادگیری ماشینی در بهترین کمپانیها به کار گرفته شده و نقش مهمی در آنها ایفا خواهند کرد.
آیا میدانید اگر بخواهید مهندس یادگیری ماشین شوید، باید از کجا شروع کنید؟