یکی از کارهایی که پیش از یادگیری عمیق بسیار باب بود، مهندسی ویژگی بود. در سالهای اخیر بدلیل رشد یادگیری عمیق، شاهد این هستیم که چندان به این موضوع توجه نمی شود؛ با این حال، لازم است چند نکته لحاظ شود. به صورت کلی، در یادگیری عمیق و مخصوصا در پردازش تصویر یا تکست سعی می شود سیگنال به صورت خام به مدل داده شود تا خود مدل تصمیمات را بگیرد ولی به هر حال در کارهایی که لازم است با داده های ساختار یافته کار کنیم، نیاز به انجام feature engineering داریم. حتی در مدل هایی که در کنار تصویر لازم است سایر ویژگی ها را به شبکه بدهیم هم نیاز است که خودمان تصمیم بگیریم که چه چیزی را به مدل بدهیم. feature engineering از این جهت اهمیت دارد که شما لازم است حتما لحاظ کنید که مدلتان قرار است در کجا استفاده شود. مثالی می زنیم. در ترنزفرمرها، ماتریس attention خیلی بزرگ می شود اگر طول سیگنال ورودی زیاد باشد. این ماتریس ممکن است در رم گوشی های هوشمند جا نشود و کارهایی که سیستم عامل برای paging انجام می دهد ممکن است باعث شود عملیات خیلی کند شود. در مورد feature engineering موضوع کمی بدتر است؛ زیرا مدل هنوز داده را نگرفته و با تاخیر اولیه روبه رو است. کاری که لازم است انجام شود این است که طراح شبکه باید همان ابتدا لحاظ کند که در چه محیطی شبکه قرار است دیپلوی شود و حتما یک جایی تمامی باتلنک های شبکه را بنویسد که اگر روزی قرار شد مدل در جایی که محدودیت دارد قرار گیرد، بتوان خیلی سریع به نقاط ضعف دسترسی داشت.
نوشته شده بوسیله:
کامران پناهی
کارشناسی ارشد هوش مصنوعی
علاقه مند به یادگیری عمیق