اگه همیشه برات سوال بوده که چطور میشه تو کارهای واقعی مثل تست کردن نرمافزار از هوش مصنوعی یا همون Machine Learning (ML) استفاده کرد، این داستان مال توئه! یه گروه از آدمهای اهل فن اومدن و کل تجربهی خودشون رو از کار با یادگیری ماشین تو تست نرمافزار بهمون گفتن و جالبیش اینجاست که این پروسه رو جوری توضیح دادن که هرکسی میتونه انجامش بده و خیلی پیچیده نیست.
داستانشون رو با مسیری شروع میکنن که تقریباً همه تو حوزه یادگیری ماشین شبیه به اون جلو میرن. اسم این مسیر هم CRISP-DM هست، که یعنی “Cross Industry Standard Process for Data Mining” – خلاصه یه مدل استاندارده برای کار کردن رو پروژههای دادهای!
حالا بریم سر اصل مطلب. اولین قدم همیشه جمعآوری دادهست. یعنی چی؟ یعنی اینکه هرچی اطلاعات بدرد بخور داری که میخوای به کامپیوتر یاد بدی، جمع کن. مثلاً تو تست نرمافزار، ممکنه خطاها، ورودی و خروجیهای مختلف نرمافزار باشه.
گام دوم؟ پاکسازی دادهها. معمولا دادههای خام پر از ایراد و چیزهای به درد نخور هستن. باید تمیزشون کنی. پاکسازی دادهها یعنی همه اطلاعات اشتباه، خالی و عجیب و غریب رو شناسایی کنی و بزنی کنار تا بعداً مدل گمراه نشه.
بعد نوبت Feature Engineering میرسه – یعنی ساخت و انتخاب ویژگیها یا همون “خصوصیات مهم” که کامپیوتر میتونه ازشون یاد بگیره. مثلاً اگه میخوای بفهمی یه نرمافزار کِی باگ میزنه، شاید تعداد خطوط کد یا سابقه ارورها ویژگی مهم باشن.
چیزی که خیلی مهمه و خیلیها اشتباه میکنن، اینه که دادهها رو به دو قسمت تقسیم کنی: یه قسمت واسه آموزش دادن مدل (Training Set)، و یه قسمت دیگه واسه اینکه بعداً امتحان بگیری (Test Set). اینجوری مطمئن میشی که مدلت داره واقعا یاد میگیره یا فقط دادههای خودش رو حفظ کرده.
وقتی دادهها آماده شد، میرسیم به انتخاب مدل ماشین لرنینگ. این خودش یه دنیاست چون پر از گزینههای مختلفه مثل درخت تصمیم (Decision Tree)، شبکه عصبی (Neural Network)، SVM، و غیره. باید بر اساس نوع داده و مشکلت مدل مناسب رو پیدا کنی.
بعد از انتخاب مدل، وقت آموزششه! یعنی میگی مدل جان، بیا با این دادهها خودتو قوی کن. این مرحله بعضی وقتا طول میکشه چون باید مدل مدام امتحان بشه تا بالاخره درست پیشبینی کنه.
در نهایت مدل رو با همون دیتای تست، امتحان میکنی تا ببینی واقعاً جواب میده یا نه. اینجا معمولا شاخصهای ارزیابی مثل دقت (Accuracy) یا قابلیت اعتماد مدل رو بررسی میکنن. – Accuracy مثلاً یعنی مدل چند درصد درست پیشبینی کرده.
خلاصه، اگه به همین سبک جلو بری، میتونی هر پروژهای رو با یادگیری ماشین هوشمندتر بکنی، حتی اگه کار تست نرمافزار باشه. کل قضیه اینه که بدونی باید داده جمع کنی و تمیزش کنی، بعد انتخاب ویژگی کنی، دیتا رو تقسیم کنی، مدل رو بسازی و آموزش بدی و آخر سرم ارزیابیش کنی. این پروسه رو هرکسی میتونه انجام بده و فقط کافیه کمی تمرین کنی؛ لازم نیست حتماً نابغه باشی!
پس اگه دوست داری دنیای یادگیری ماشین رو تجربه کنی، همین مسیری که تو این مقاله توضیح داده شده رو امتحان کن و از یاد گرفتن و تستش لذت ببر!
منبع: +