«Keras» (کرس) یک کتابخانه سطح بالای استفاده شده برای «شبکه‌های عصبی» (Neural Networks) است. کرس بر فراز کتابخانه «تنسورفلو» (TensorFlow) اجرا و توسط گوگل توسعه داده می‌شود. در این مطلب، یک شبکه عصبی در کرس برای حل مساله رگرسیون استفاده می‌شود. در این جنس مسائل، معمولا متغیر وابسته (Y) در قالب بازه‌ای است. در اینجا سعی می‌شود مقدار Y با حداکثر «صحت» (accuracy) ممکن اندازه‌گیری شود. پیش‌تر، چگونگی ساخت «شبکه عصبی» (Neural Network) با پایتون آموزش داده شد. از آنجا که زبان برنامه‌نویسی R نیز دارای رابط Keras است، امکان انجام تحلیل‌ها با استفاده از این زبان وجود دارد. در ادامه با استفاده از کتابخانه کرس، پیش بینی قیمت خودرو با استفاده از شبکه عصبی در R انجام می‌شود.

شبکه عصبی چیست؟

شبکه عصبی، یک سیستم محاسباتی است که بر اساس داده‌های موجود پیش‌بینی می‌کند. در ادامه، یک شبکه عصبی با استفاده از کتابخانه neuralnet در R «آموزش» (Train) داده می‌شود و مورد «آزمون» (Test) قرار می‌گیرد. یک شبکه عصبی شامل موارد زیر است:

  • «لایه ورودی» (Input layer): لایه‌ای است که ورودی‌ها را بر اساس داده‌های موجود دریافت می‌کند.
  • «لایه پنهان» (Hidden layer): لایه‌ای که از «بازگشت به عقب» (Backpropagation) برای بهینه کردن وزن‌های متغیرهای ورودی به منظور بهبود قدرت پیش‌بینی مدل استفاده می‌کند.
  • لایه خروجی: خروجی، پیش‌بینی بر اساس لایه‌های ورودی و پنهان است.

شبکه عصبی

پیش‌ بینی قیمت خودرو

در این مثال، از «تابع فعال‌سازی خطی» (Linear Activation Function) در کتابخانه Keras برای ساخت یک شبکه عصبی مبتنی بر رگرسیون استفاده خواهد شد. بدین منظور، از مجموعه داده «thecars» استفاده می‌شود. اساسا، در اینجا تلاش می‌شود تا مقدار بالقوه فروش یک خودرو برای مشتریان بر پایه مشخصه‌های زیر، پیش‌بینی شود (به عبارت دیگر، یک شخص چقدر برای خرید یک خودرو هزینه خواهد کرد).

  • سن
  • جنسیت
  • میانگین مایل‌ها به ازای روز
  • اعتبار کارت بانکی فرد (در واقع اعتبار کارت اعتباری)
  • درآمد ماهانه

ابتدا، کتابخانه ایمپورت و دایرکتوری تنظیم می‌شود.

کتابخانه‌ها و تنظیم دایرکتوری

از آنجا که یک شبکه عصبی پیاده‌سازی خواهد شد، متغیرها باید نرمال شوند تا شبکه عصبی آن‌ها را به شکل مناسبی تفسیر کند. بنابراین، متغیرهابا استفاده از max-min normalization تبدیل می‌شوند.
سپس، داده‌ها به دو بخش آموزش و آزمون تقسیم می‌شوند.

پیکربندی مدل کرس: رابط برنامه‌نویسی کاربردی شبکه عصبی

اکنون، شبکه عصبی آموزش داده می‌شود. در این راستا، از پنج متغیر ورودی (سن، جنسیت، مایل، اعتبار و درآمد) همراه با دو لایه پنهان، به ترتیب از ۱۲ و ۸ نورون و در نهایت تابع فعال‌سازی خطی برای پردازش خروجی استفاده می‌شود.

mean_squared_error (خطای میانگین مربعات | MSE) و (میانگین خطای مطلق | MAE) تابع‌های هزینه‌ای هستند که میزان صحت شبکه عصبی را در پیش‌بینی داده‌های تست محاسبه می‌کند. می‌توان مشاهده کرد که validation_split روی ۰.۲ تنظیم شده و ۸۰ درصد از داده‌های آموزش برای تست مدل مورد استفاده قرار گرفته‌اند، در حالیکه ۲۰٪ باقیمانده به منظور تست استفاده می‌شوند.

خروجی شبکه عصبی

اکنون باید مدل را برازش کرد.

خروجی به صورت زیر است.

اکنون، می‌توان هزینه (خطای میانگین مربعات) را همچون میانگین خطای مطلق محاسبه کرد.

پیکربندی مدل به صورت زیر است:

قابل مشاهده است که Keras «هزینه آموزش» (Training Loss) و «هزینه اعتبارسنجی» (Validation Loss) یا به بیان دیگر انحراف بین y پیش‌بینی شده و y واقعی اندازه‌گیری شده با خطای میانگین مربعات را محاسبه می‌کند. همانطور که در کد می‌توان دید، ۱۵۰ «دوره» (epoch) برای مدل تعیین شده است.

این یعنی، مدل با ۱۵۰ پاس رو به جلو و رو به عقب و با این انتظار که هزینه در هر دوره کاهش پیدا می‌کند آموزش داده شده است، بدین معنا که هر چه مدل بیشتر آموزش داده ‌می‌شود، مقدار Y را به طور صحیح‌تری محاسبه می‌کند. اکنون، می‌توان مشاهده کرد آنچه بیان شده در صورت ترسیم نمودارهای هزینه چگونه به نظر می‌رسد.

پیش‌بینی قیمت خودرو

هم هزینه آموزش و هم اعتبارسنجی با افزایش تعداد دوره‌ها به صورت نمایی کاهش پیدا می‌کند و این بیانگر این امر است که صحت مدل با افزایش تعداد دوره‌ها (یا تعداد پاس‌های رو به عقب و جلو) افزایش پیدا می‌کند.

کارایی

در بخش‌های پیشین، چگونگی آموزش یک مدل شبکه عصبی بیان شد و سپس، داده‌های آموزش در مقابل داده‌های آزمون به منظور تعیین صحت مدل اعتبارسنجی شدند. برخلاف زمانی که با داده‌های دسته‌بندی کار می‌شود، خواندن صحت کمک قابل توجهی در این مثال نمی‌کند. قیمت‌های فروش خودرو پیش‌بینی شده، ممکن است در حدود ۱٪ فروش واقعی خودروها باشد، اما مقادیر پیش‌بینی شده با وجود دقیق بودن صحیح نیستند. بنابراین، باید صحت را به عنوان درجه انحراف بین مقادیر واقعی و پیش‌بینی شده تنظیم کرد. در ادامه چگونگی محاسبه این مورد نشان داده شده است.

می‌توان مشاهده کرد که انحراف میانگین بین قیمت‌های فروش واقعی و پیش‌بینی شده خودروها برابر با 2.819% است.

نتیجه‌گیری

در این راهنما، چگونگی ساخت یک شبکه عصبی در کرس و مقیاس کردن داده‌ها به طور مناسب با استفاده از MinMaxScaler آموزش داده شد. همچنین، مقدار هزینه‌های آموزش و آزمون محاسبه و پیش‌بینی‌ها با استفاده از مدل شبکه عصبی انجام شد.

اگر نوشته بالا برای شما مفید بوده، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *