گام پس از آموزش دادن مدل در علم داده — پادکست پرسش و پاسخ
در پروژههای «یادگیری ماشین» (Machine Learning) و «علم داده» (Data Science)، معمولا گردآوری داده، «پیشپردازش دادهها» (Data Preprocessing) و مدلسازی از جمله گامهایی هستند که انجام میشوند. بسیاری از افراد با این پرسش مواجه هستند که پس از مدلسازی و هنگامی که مدل با دادههای پیشپردازش شده «آموزش» دید (Training)، چه اقدامی باید انجام شود. به بیان سادهتر، «گام پس از آموزش دادن مدل در یادگیری ماشین یا علم داده چیست؟». دکتر «سید مصطفی کلامی هریس»، در پادکستی که در ادامه آمده، به این پرسش پاسخ داده است. نسخه متنی این پادکست نیز در همین مطلب قرار دارد. البته، منبع اصلی همچنان فایل صوتی محسوب میشود.
پادکست پیرامون گام پس از آموزش دادن مدل در علم داده
نسخه نوشتاری
یکی از دانشجویان پرسشی را مطرح کردند مبنی بر اینکه یک «شبکه عصبی» (Neural Network) را با دادههای مربوط به n فرد - مثلا n بیمار - آموزش دادهاند (Training) و نمیدانند که پس از آموزش دادن مدل چگونه باید از آن برای n+1 فرد (نمونه داده) استفاده کنند. این پرسش رایجی است که به شکلهای مختلفی مطرح میشود. برای مثال، در مورد «پیشبینی سری زمانی» (Time Series Forecasting) نیز افراد پرسشهای مشابهی را مطرح میکنند.
برای استفاده از شبکه عصبی، تنها چیزی که باید به آن داده شود ورودیها هستند. ورودیهای داده را باید به مدل داد و در واقع باید مدل را تغذیه (Feed) کرد. کاربر میخواهد برای نفر n+1 پیشبینی انجام دهد. در این راستا، باید دادههای n+1 یعنی متغیرهای مستقل را به مدل داد. خروجی مدل، یک مقدار پیشبینی شده توسط شبکه عصبی خواهد بود. اما چطور میتوان این کار را انجام داد؟
در نرمافزار «متلب» (MATLAB) معمولا شبکه عصبی توسط کاربر در یک متغیر، مثلا به نام Net، ذخیره میشود (شایان توجه است که در کدهای پیادهسازی شده توسط دکتر سید مصطفی کلامی هریس در آموزشهای فرادرس، معمولا از نام Net استفاده شده است). به Net میتوان به دید یک تابع نگاه کرد. پیشتر، تابع eval بود که آن را حذف و کار را سادهتر کردند. برای مثال، پنج ورودی داخل پرانتز به تابع Net داده میشود. اگر به این تابع پنج ورودی داده شود، چه اتفاقی به وقوع میپیوندد؟ تابع، پنج ورودی را در واقع به عنوان متغیرهای مستقل نمونه در نظر میگیرد و به شبکه عصبی ارسال میکند. Evaluation در این وهله به وقوع میپیوندد و در نهایت تابع، خروجی را (یکی یا هر تعدادی که باشد) به کاربر میدهد.
البته این نکته را نیز باید در ذهن داشت که در متلب همیشه یک ستون نشانگر یک رکورد (یک نمونه) است. برخلاف حالت متداول مانند آنچه در «اکسل» (Excel) یا «پایگاهداده» (Data Base) وجود دارد که ستونها نشانگر متغیرها و سطرها نشانگر رکوردها (نمونهها) هستند. بنابراین، باید جهت دادهها در متلب به دقت تعیین شود. به این موضوع به طور کامل در آموزش «شبکههای عصبی مصنوعی در متلب» به آن پرداخته شد.
در بحث «سری زمانی» (Time Series) نیز به همین ترتیب است و برای مثال، مدل ساخته شده بدین ترتیب است که دو مرحله زمانی قبلی، هفت مرحله زمانی قبل و بیست مرحله زمانی قبل اگر برای لحظه کنونی محاسبه شوند، یه لحظه بعد یا دو لحظه بعد را به کاربر میدهد. این کار تا جایی باید انجام شود که بتوان یک شبیهسازی از آینده داشت. تنها کاری که باید انجام شود، استفاده از مدل است.
یعنی در پاسخ به این پرسش که گام پس از آموزش دادن مدل چیست، باید گفت که گام بعدی استفاده از مدل است. برای استفاده از مدل نیز پس از آموزش دادن شبکه عصبی، مدل، خروجی را به کاربر میدهد. این موضوع در همه مدلها صادق است و شبکه عصبی در اینجا صرفا مثال بود. هر مدل را میتوان همچون تابعی دید که پس از آموزش دیدن، ورودیها را به خروجیها نگاشت میکند.
برای دانلود کردن و شنیدن دیگر پادکستهای دکتر سید مصطفی کلامی هریس در مجله فرادرس، روی این لینک [+] کلیک کنید.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند: