در این مقاله قصد داریم نقشه راه و مسیر تبدیل شدن به یک دانشمند داده و مهندس یادگیری ماشین را با هم مرور کنیم.
ابتدا به بیان سرگذشت هوش مصنوعی می پردازیم؛
فرآیند اندیشه و تفکر و طرز کار مغز از گذشتههای بسیار دور مورد توجه فیلسوفان و دانشمندان در همه جای جهان بودهاست. یونانیان باستان عقیده داشتند که میتوان در یک بدنه مکانیکی مغزی ساختگی قرار داد. یکی از اسطورههای یونان یک غول آهنی بود که مغزی مکانیکی داشت.
البته یونانیان فراتر از افسانهها هم رفته بودند و برای ساخت آدم آهنی دست به کار شده بودند. در آثار به جا مانده از آنان قطعات مکانیکی پیچیدهای کشف شده بود که نشان میدهد آنها در تلاش برای ساخت یک مغز مکانیکی بودهاند. در اوایل قرن هفدهم ریاضیدانان مهمی مانند رنه دکارت و گوتفرید لایبنیتس، مشغول منطقی کردن فرآیند تفکر با استفاده از علائم ریاضی بودند. پیچیدگی این موضوع دانشمندان عصر حاضر را نیز به خود مشغول کرده است.
آلن تورینگ (Alan Turing) یکی از تاثیرگذارترین افراد در حوزه هوش مصنوعی است و بسیاری مقالهای که او در سال ۱۹۵۰ منتشر کرد را تولد هوش مصنوعی میدانند. او همچنین تست تورینگ را پیشنهاد داد که معیاری برای تشخیص هوشمندی ماشین است.
یکی از اولین پروژههای عملی هوش مصنوعی، ایده گرفتن از مفهوم شبکه عصبی و نورونها بود.
هوشمندی را میتوان با اشکال مختلفی تعریف کرد. در کتاب معروف «هوش مصنوعی، یک رویکرد مدرن » دیدگاههای مختلف از دو بعد مورد بررسی قرار گرفتهاند. از منظر اول هوشمندی یا در رفتار است یا در تفکر و از منظر دوم هوشمندی در انسانگونه بودن یا در منطقی بودن (rationality) است. اگر همه حالات را در نظر بگیریم به چهار تعریف زیر میرسیم. هوش مصنوعی چیزی است که:
منطقی فکر کند.
منطقی رفتار کند.
مانند انسان فکر کند.
مانند انسان رفتار کند.
هوش مصنوعی سالهای بسیاری مورد توجه محققان و دانشمندان بوده اما در سالهای اخیر به مرحله عملیاتی شدن رسیده و به یکی از جذابترین حوزههای دانش و مهندسی بدل شده است. در آیندهای نه چندان دور، رباتهایی که از انسان، قابل تشخیص نیستند افزایش خواهند یافت. خودتان را آماده کنید!
رابطه هوش مصنوعی و یادگیری ماشین
هماکنون هوش مصنوعی حوزههای بسیاری را شامل میشود و همچنان در حال بزرگتر شدن است. امروزه هر برنامهای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته میشود. یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را میتوان زیر مجموعهٔ هوش مصنوعی در نظر گرفت. یادگیری ماشین ویژگیهایی دارد که آن را از دیگر روشهای هوش مصنوعی متمایز میکند.
یکی از مهمترین ویژگیهای یادگیری ماشین، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است. در انواع دیگر هوش مصنوعی ممکن است شاهد نوعی از هوشمندی باشیم که از دادهها استفاده نمیکند. ویژگی دیگر یادگیری ماشین، تغییر خود با دیدن دادههای جدید است؛ یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر میدهد.
قدرت الگوریتمهای یادگیری ماشین امکانات بسیاری را به جامعه عرضه کرده و حوزههای بسیاری به آن وابسته شدهاند. صنعت، دانشگاه، حوزهٔ سلامت، اقتصاد و تجارت، کسب و کارها و بسیاری دیگر، از یادگیری ماشین برای پیشبرد اهداف خود استفاده میکنند. یکی از اولین کاربردهای یادگیری ماشین در تشخیص ایمیل های spam بود. امروزه ماشینهای بدون راننده در سطح شهرها در حال حرکت هستند، صاحبانمحصول از سیستمهای پیشنهاد دهنده برای پیشنهاد محصول استفاده میکنند، اقتصاددانان برای پیشبینی روند بازار از آن استفاده میکنند و همچنان کاربردهای بیشتری در حال ایجاد شدن است.
یکی دیگر از عوامل جذاب شدن یادگیری ماشین در عصر حاضر، توجه ویژه برنامهنویسان و شرکتهای برنامهسازی به آن است. زبان پایتون و R از محبوبترین زبانهای قابل استفاده برای یادگیری ماشین هستند و کتابخانههای بسیار قدرتمندی در این زبانها برای رفع نیازهای علاقهمندان این حوزه در حال گسترش است. افرادی که قصد ورود به این زمینه را دارند با دریایی از زبانها و کتابخانهها و ابزارها روبرو میشوند و متناسب با نیاز خود میتوانند از آنها بهره ببرند. با مهمترین زبانها و ابزارهای مربوطه در فصل «زبانها و ابزارها» آشنا میشویم.
موقعیتهای شغلی مرتبط با یادگیری ماشین
نیاز جامعه به بررسی آمار و دادهها سبب به وجود آمدن تخصصهایی در این زمینه شد. افرادی در سازمانها مشغول به کار شدند تا امور مرتبط با داده را انجام دهند. بسته به نوع فعالیت افراد اسامی مختلفی به آنها نسبت داده میشود. احتمالا کلماتی مثل دانشمند داده، تحلیلگر داده و مهندس یادگیری ماشین به گوشتان خورده و شاید خیلی متوجه تفاوتهای آنها نشدهاید.
تحلیلگر داده (Data Analyst)
چرا نخست تحلیلگر داده را مورد بررسی قرار میدهیم؟ زیرا تحلیلگر داده شدن، نسبت به دیگر شغلهای مرتبط با داده آسانتر است و قبل از آنها وجود داشته است.
همانطور که گفته شد، اهمیت اطلاعات در حال افزایش است و عصر جدید عصر اطلاعات نامیده میشود اما داده خام قبل از تبدیل شدن به دانش نیازمند ذخیره سازی مناسب و آمادهسازیهایی میباشد. تحلیلگر داده، معماری مناسب برای جمعآوری اطلاعات یک سازمان را طراحی میکند و پایگاه داده مناسب برای این کار را انتخاب میکند؛ دادههای خام را از منابع داخلی و خارجی جمعآوری میکند و پس از آمادهسازی و انتخاب قالب مناسب، آنها را در پایگاه دادهای که طراحی کرده ذخیره میکند.
او با افراد مختلف سازمان در ارتباط است و نتایج به دست آمده را به شکلی قابل فهم و ساده و متناسب با موقعیت افراد در اختیار آنها میگذارد. علاوه بر اینها تحلیلگر داده باید قدرت تحلیل بالا و دید نقادانه به مسائل داشته باشد. داشتن مهارتهای برنامهنویسی برای تحلیلگر داده ضروری نمیباشد و میتواند از نرمافزارها یا سرویسهای وب برای انجام کارهای خود استفاده کند.
دانشمند داده (Data Scientist)
میتوان گفت دانشمند داده سطح بالاتری از تحلیلگر داده دارد و نیازمند دانش آماری و ریاضیاتی و برنامهنویسی قویتری نسبت به تحلیلگر داده است. همهٔ اموری که تحلیلگر انجام میدهد، دانشمند هم میتواند انجام دهد و علاوه بر آن باید با مفاهیم یادگیری ماشین و دانش برنامهنویسی آشنا باشد تا بتواند ابزارهایی برای تحلیل عمیقتر داده طراحی کند.
گاهی دانشمندان داده با حوزهٔ تجارت هم آشنایی دارند تا در مورد تصمیمات تجاری یک شرکت بتوانند پیشنهادات سازنده دهند یا در تصمیمگیریها آنها را یاری دهند. دانشمند داده همچنین از امکانات یادگیری ماشین و هوش مصنوعی برای ایجاد برخی محصولات در شرکت استفاده میکند. اموری مانند سیستم پیشنهاد دهنده، تشخیص ایمیل Spam، پیشبینی، بهینهسازی، دستهبندی و دیگر عملیاتی که توسط یادگیری ماشین انجام شده و در امور شرکت مفید واقع میشوند.
دانشمند داده امور دادهکاوی را معمولا با زبانهای برنامهنویسی و کتابخانههای آن انجام میدهد ولی تحلیلگر از پلتفرمها و نرمافزارها استفاده میکند. تحلیلگر با همه در ارتباط است و معمولا سوالات را دیگران برایش مطرح میکنند اما دانشمند داده خودش سوالات را طرح میکند، سوالاتی که در تصمیمات شرکت تاثیرگذار هستند.
مهندس داده (Data Engineer)
کار یک مهندس داده را از جنبههای مختلفی میتوان مورد بررسی قرار داد. میتوان کار او را با مفاهیم کلانداده شرح داد یا روند رسیدن داده خام به دست مصرفکنندگان داده را به او نسبت داد. او پس از مشورت با دیگر اعضای شرکت انتخاب میکند که چه دادهای از میان سیل داده تولیدی در اختیار شرکت قرار بگیرد. پس از انتخاب منابع داده، دادههای منابع مختلف را یکپارچه میکند و برای نگهداری بهینه آنها برنامهریزی میکند.
مهندس یادگیری ماشین (Machine Learning Engineer)
مهندس یادگیری ماشین در واقع نقطهٔ تلاقی مهندسی نرمافزار و علم داده است. این موقعیت هم همانطور که حدس زدید بسیار حرفهای است. مهندس یادگیری ماشین نقاط مشترک فراوانی با مهندس داده دارد. هر دو در فرآیند رسیدن داده از محل تولید تا مدل نقش داشته و با ساختارهای داده و پیچیدگیهای مرتبط با آن آشنایی دارند. دانش یادگیری ماشین برای مهندس داده اجباری نبود ولی برای مهندس یادگیری ماشین الزامی است.
مهندس یادگیری ماشین علاوه بر اینکه داده را تا رسیدن به مدل همراهی میکند، مسئول رساندن خروجی به کاربر نهایی نیز هست. او مدل تولید شده را بررسی میکند و یا پس از انجام بررسیهای لازم، مدل نظری را وارد فرآیند عملیاتی میکند. او باید پیچیدگیهای محاسباتی و حافظهای را محاسبه کند و مدل طراحی شده توسط دانشمند داده را برای کار در مقیاس بزرگ آماده کند.
وظایف مهندس یادگیری ماشین جنبهٔ نظری و عملیاتی دارند. به این صورت که او باید دانش کاملی از الگوریتمها و روشهای یادگیری ماشین داشته باشد. هم قبل از استقرار مدل، آن را مورد بررسی و تحلیل قرار دهد و هم بر فرآیند عملیاتی ساختن آن و محاسبهٔ پیچیدگیها نظارت داشته باشد. سپس بعد از از استقرار، مسئول نظارت و رسیدگی به آن خواهد بود.
شناخت این موقعیتها میتواند به شما در انتخاب مسیر یادگیری دید بهتری بدهد. علاوه بر مشاغلی که رابطه مستقیم با داده و یادگیری ماشین دارند، از امکانات این تکنولوژي در حوزههای بسیاری میتوان استفاده کرد و میتوانید مانند جعبه ابزاری آنرا همیشه همراه خود داشته باشید.
یادگیری ماشین و صنعت معدن
در ادامه چهار مثال کاربردی از یادگیری ماشین در معدن را با هم مرور کنیم:
ماهوارههای مختلفی برای مقاصد زمینشناسی وجود دارند، ماهواره ASTER یکی از آنها است که در طول باندهای مشخصی تصویربرداریهای دورهای انجام میدهد. برای درک بیشتر این تصاویر، مکعب داده ای در نظر بگیرید به صورت ۴۲۰۰ * ۴۲۰۰ * ۱۴
از این تصاویر برای شناسایی و ترسیم نقشههای زمینشناسی و عارضههای مربوطه (واحدهای سنگی مختلف) استفاده میشود. به بیان ساده با پیمایشهای زمینی و هوایی، مناطق مختلف به صورت قسمتهای مشخص تعیین می گردد. با مشخص نمودن این قسمتها در تصاویر بدست آمده، سعی در دستهبندی کل تصویر و تصویرهای اطراف آن میشود. بدین صورت نقشه زمینشناسی منطقه مورد نظر بدست میآید.
عدم قطعیت بالای فضای معدنی همواره با صنعت معدن در حوزه اکتشاف همراه بوده است. برای همین همیشه آمار و احتمالات در حوزه اکتشاف معدن کاربرد دارد. نمونهبرداری در معدن هزینه زیادی دارد به همین دلیل نیاز است تا با کمترین تعداد داده، بیشترین اطلاعات را بدست آورد. پیشبینی متغیرهای بدست آمده از تستهای آزمایشگاهی همواره یکی از چالش های این حوزه است. استفاده از یادگیری ماشین و الگوریتمهایی همچون SVM میتواند در این زمینه بسیار کارآمد باشد.
حفاریهای اکتشافی به چاههایی گفته میشود که برای بررسیهای بیشتر در زمین حفر میشوند. این حفاریها در اندازههای مشخصی انجام شده و مغزههای حاصل از حفاری (گمانه) در جعبههای مشخصی (جعبهمغزه) برای تحلیلهای بعدی قرار میگیرند.
بررسی طول مغزهها (گمانهها) معیاری برای کیفیت حفاری است. شکستگی مغزهها به معنی هوازدگی آنهاست. هر چه مغزهها هوازدهتر باشند، کیفیت کمتری دارند. در تصویر زیر یک نمونه جعبه مغزه را مشاهده میکنیم. اعداد روی در جعبه، اطلاعاتی از عمق حفاری بهدست میدهد. این نوشتهها عمقهایی که جمعآوری گمانهها از آن شروعشده و یا در آن تمام شده را نشان میدهد.
۴- پردازش تصاویر گرفتهشده از پهپاد برای شناسایی هدفهای از پیش تعیین شده
اینک می پردازیم به تعریف داده و انواع آن:
دادهها عنصر محوری یادگیری ماشین هستند و ماشینها از دادهها یاد میگیرند، به این صورت که ما دادهها را به عنوان ورودی به الگوریتم میدهیم تا خروجی مورد نیازمان را دریافت کنیم. اما داده چیست؟ داده، در نتیجه مشاهدات و اندازهگیریها شکل میگیرد و توصیف این وضعیت مشاهده شده به شمار میآید. آنچه داده را ارزشمند میکند نمایندگی آن از واقعیت است و اطلاعاتی که درباره آن در اختیارمان میگذارد. همچنین به ما این اجازه را میدهد که درباره ارتباط بین توصیفات مختلف یک وضعیت بپرسیم و اطلاعاتی به دست آوریم.
دادهای که پردازش زبان طبیعی با آن کار میکند، جملات و کلمات تولید شده توسط انسانها هستند، که ممکن است به صورت نوشتاری یا صوت در اختیار الگورتیمهای کامپیوتری قرار بگیرد. برخی از کاربردهای این حوزه عبارتند از:
تشخیص گفتار: تشخیص گفتار، برقراری ارتباط با کامپیوترها را از طریق حرف زدن عادی ممکن میسازد و خود دریچهای به سایر کاربردهای هوش مصنوعی است. دستیارهای کامپیوتری مثل سیری یا دستیار گوگل نمونههایی از کاربرد این تکنولوژي هستند.
دستهبندی نوشتارها یا نظرات: مثلاً در یک فروشگاه اینترنتی نظرات مثبت و منفی و نقاط قوت و ضعف هر کالا میتواند به این صورت دستهبندی شود. یا یک برند میتواند نظر عموم مردم را نسبت به خود از توییتهای آنان تشخیص دهد.
پاسخ دادن به سوالات: چیزی که گاهی هنگام جستجو در گوگل با آن مواجه میشویم. یعنی گوگل پاسخ سؤالی که سرچ شده را از متنها استخراج کرده و بالاتر از نتایج جستجو سریع به ما نشان میدهد.
تصویر
از کابردهای روزمره بینایی ماشین میتوان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی یا کامپیوتر، جستجو میان تصاویر بر اساس اجسام موجود در عکس، پردازش تصاویر ماهوارهای برای هواشناسی یا تشخیص وقایع زیستمحیطی و ماشینهای خودران اشاره کرد.
همچنین بینایی ماشین در پزشکی نیز کاربرد دارد و مثلاً میتواند نیاز به متخصص رادیولوژی را برای بررسی تصاویر پزشکی اشعه ایکس، MRI یا سونوگرافی را کاهش دهد.
جداول
دادههای جدولی را میتوان به طور کلی به ۲ زیردسته تقسیمبندی کرد:
دادههای عددی: مثل سن فرد یا موجودی حساب او
دادههای دستهای: مثل جنسیت یا شهر محل زندگی فرد
سری زمانی
ماشین میتواند با دیدن تغییرات ویژگی مشخصی از یک داده در طول زمان، الگوی تغییرات آن را یاد بگیرد و به مسائلی که برحسب زماناند، مثل پیشبینی مقدار آن ویژگی در یک زمان مشخص پاسخ دهد.
قالبهای داده میتوانند انواع فراوان دیگری نیز داشته باشند و موارد بالا تنها نمونههایی پرکاربرد از آنها هستند که در تعریف قالبهای دیگر نیز به کار میروند. برای مثال صوت یک نوع داده است که با زبان طبیعی سر و کار دارد و فیلم یک نوع داده است که با مجموعهای از تصاویر ساخته میشود و هر دو نیز برحسب زمان هستند.
امیدوارم مبحث ارائه شده برای شما مفید فایده قرار گرفته باشد.