یادگیری عمیق و استفاده آن در پایتون

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

یادگیری عمیق در حال کار بر روی تئوری شبکه های عصبی هوشمند است. در این مقاله، ما در مورد اصول کار یادگیری عمیق با پایتون و نحوه کار شبکه های عصبی خواهیم پرداخت.

یادگیری عمیق چیست؟

یادگیری عمیق عمیق بخشی از یادگیری ماشین است که با الگوریتم هایی سر وکار دارد که بر اساس ساختار و تابع ذهن انسان است.

برای ایجاد مدل های هوشمند و حل مسائل پیچیده از شبکه عصبی هوشمند استفاده می کنند. ما اکثر اوقات از یادگیری عمیق به همراه داده های ساختار نیافته استفاده می کنیم.

حالا نوبت آن است که اصول کار شبکه های عصبی را در مقاله یادگیری عمیق با پایتون بررسی کنیم.

مقایسه یادگیری عمیق و یادگیری ماشین و هوش مصنوعی

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

  • شبکه عصبی یک ماشین است که از روی مغز انسان مدلسازی شده است.هر لایه شامل تعدادی نود است.
  • ارتباط بین نودها جریان اطلاعات از یک لایه به لایه دیگر را نشان میدهد.
  • نورون ها با کمک وزن ها به یکدیگر متصل میشوند. سپس ورودی ها را به سمت نورون تغذیه میکند.
  • بعد از این مرحله، شبکه عصبی داده را پردازش میکند و یک خروجی میدهد.

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

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

یک شبکه عصبی سه لایه اصلی دارد:

لایه ورودی: این لایه مسئول پذیرش ورودی هاست.

لایه پنهان: این لایه، داده های ورودی را برای فهمیدن اطلاعات مخفی پردازش و خصوصیات داده های ورودی را استخراج میکند.

لایه خروجی: این لایه، خروجی مورد نظر را خواهد داد.

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

تابع فعالسازی

تابع فعال سازی

در هر نورون عملیات زیر انجام میشود:

  • حاصلضرب هر مقدار ورودی و وزن کانالی که از آن عبور کرده است، به دست می آید.
  • مجموع حاصلضرب های وزنی را محاسبه میکند که آن را جمع وزنی مینامند.
  • سپس حاصل جمع نهایی را تابع یک عملکرد خاص میکنیم.

در این شکل تعدادی از توابع قابل فعالسازی را در یک شبکه عصبی مشاهده میکنید.

تابع سیگموئید

تابع سیگموئید برای مدل هایی استفاده میشود که در آن باید احتمالی مانند یک خروجی را پیش بینی کنیم. عدد این خروجی بین صفر و یک است.

تابع آستانه

یک تابع فعال سازی مبتنی بر آستانه است و در صورتی که مقدار X بزرگتر از مقدار معینی باشد، تابع را فعالسازی میکند.

تابع یکسو کننده

بیشتر برای فعال سازی تابع استفاده میشود و اگر مقدار  X مثبت باشد،یک خروجی از X میدهد و در غیر این صورت عدد صفر خواهد داد.

تابع تانژانت هایپربولیک

این تابع شبیه تابع سیگموئید است و به یک طیف محدود میشود.

تابع هزینه

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

فرمول تابع هزینه به شکل زیر است:

در جایی که کلاه Y مقدار پیش بینی شده و Y خروجی واقعی است.

شبکه های عصبی چگونه کار میکنند؟

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

هر یک از اتصالات دارای وزنی مشخص است. نورون ، زیرمجموعه ای از ورودی ها را میگیرد و آن را پردازش میکند.

  1. ۱*W1+*2*W2+b1
  2.  Φ(*۱*w1+*w2+b1),

که Φ  یک تابع فعالسازی است.

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

ما حالا با استفاده از وزن های جدید، شبکه عصبی را آموزش میدهیم.

دوباره، این تابع فعالسازی مربوطه است که میزان هر یک از وزن ها را مشخص میکند و به انتشار معکوس تا زمانی که از میزان ارزش وزن ها کاسته نشود، ادامه میدهد.

ما زمانی شبکه عصبی خود را آموزش دیده در نظر میگیریم که مقدار تابع هزینه حداقل باشد.

حالا نوبت آن است که سایر مطالب مرتبط با یادیگری عمیق همراه پایتون مثل گرادیان نزول را بررسی کنیم.

گرادیان نزولی

گرادیان نزول یک روش برای محدود کردن تابع هزینه است. این گرادیان نوعی محاسبه عددی است که به ما امکان تنظیم پارامترهای شبکه های عصبی برای کاهش میزان انحراف خروجی را میدهد.

تابع هزینه در برابر مقدار پیش بینی شده رسم میشود که هدف آن یافتن مقدار خاصی از وزن است که  کم ترین میزان  اتلاف را داشته باشد.

پلتفرم های یادگیری عمیق

تعدادی از چارچوب های یادگیری عمیق که استفاده زیادی هم از آن ها میشود به ما کمک می کند که انواع مدل های شبکه عصبی را ایجاد کنیم. برخی از  موارد رایج عبارتند از: tensorflow، Keras ،Pytorch و DL4U  که در ادامه مقاله در مورد کارکرد Tensorflow به شما توضیح خواهیم داد.

Tensorflow چیست؟

این برنامه را گوگل توسعه داده. Tensorflow یک کتابخانه منبع باز است که برای تعریف و اجرای محاسبات بر روی تنسورها استفاده میگردد. تنسورها نام دیگر آرایه های چند بعدی است.

این برنامه قابلیت اجرا در CpU و یا Gpu را داراست. میتواند نمودارهای جریان داده را ایجاد کند که دارای نود و لبه هستند. از Tensorflow عمدتا برای برنامه های یادگیری ماشین ی مثل شبکه های عصبی استفاده میکنند.

در بخش پایانی مقاله یادگیری ماشین به همراه پایتون به شما برای شما نمونه مدلی را آورده ایم که با استفاده از پایگاه MNIST میتواند ارقام دست نویس را پیش بینی کند.

یادگیری عمیق با نسخه پایتون: پیش بینی ارقام پیش نویس

  • کتابخانه های مورد نیاز را وارد کنید.
  • مجموعه داده ها را بارگذاری کنید.
  • تعداد کل نمونه های آموزشی و آزمایشی را بررسی کنید.
  • داده ها را تجسم کنید.
  • یک مدل بسازید
  • اتلاف و بهینه سازی
  •  مدل را آآزمایش کرده و میزان دقت آن را  بازیابید

همان طور که در قسمت بالا مشخص است، نمونه مدل دارای دقت ۹۱ درصد بوده که میزان مناسبی است.

نتیجه گیری

شما در این مقاله در مورد مفاهیم اولیه یادگیری عمیق مطالبی را فراگرفتید و با نحوه کار شبکه های عصبی آشنا شدید.

اگر هرگونه سوالی در رابطه با مطالب این مقاله دارید میتوانید در بخش کامنت ها سواالات و ابهامات خود را در رابطه با مقاله بیان کنید.

همچنین ببینید

فناوری تشخیص چهره و کاربردهای آن، تاریخچه تکنولوژی تشخیص چهره

فناوری تشخیص چهره و کاربردهای آن + تاریخچه

فناوری تشخیص چهره یک فناوری بیومتریک است که با استفاده از تجزیه و تحلیل الگوهایی …

دیدگاهتان را بنویسید

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