هوش مصنوعی با پایتون – یادگیری عمیق

4 سال پیش
امتیاز دهید post

هوش مصنوعی با پایتون – یادگیری عمیق

شبکه عصبی مصنوعی (ANN) یک سیستم محاسباتی کارآمد است که تم اصلی آن از تشبیه شبکه های عصبی بیولوژیکی گرفته شده است. شبکه های عصبی یک نوع مدل برای یادگیری ماشین هستند. در اواسط دهه 1980 و اوایل دهه 1990 پیشرفت های بسیار مهمی در معماری در شبکه های عصبی صورت گرفت. در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، شما با یادگیری عمیق، رویکرد AI بیشتر آشنا خواهید شد.

پیشنهاد ویژه : پکیج آموزش پایتون مختص بازار کار

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

یادگیری ماشینی در مقابل یادگیری عمیق

یادگیری عمیق این روزها قدرتمندترین تکنیک یادگیری ماشین است. این بسیار قدرتمند است زیرا آنها ضمن یادگیری نحوه حل مسئله، بهترین روش برای نشان دادن مسئله را می آموزند. در زیر مقایسه ای از یادگیری عمیق و یادگیری ماشین آورده شده است –

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

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

وابستگی ماشین

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

استخراج ویژگی

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

 

زمان اجرا

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

رویکرد حل مسئله

یادگیری عمیق مسئله را از انتها به انتها (end to end) حل می کند در حالی که یادگیری ماشینی از روش سنتی حل مسئله استفاده می کند ، یعنی با تقسیم آن به قطعات.

شبکه عصبی کانولوشن (CNN)

شبکه های عصبی کانولوشن همان شبکه های عصبی معمولی هستند زیرا همچنین از نورون هایی تشکیل شده اند که دارای وزن و تعصب قابل یادگیری هستند. شبکه های عصبی معمولی ساختار داده های ورودی را نادیده می گیرند و همه داده ها قبل از تغذیه آنها در شبکه به آرایه 1-D تبدیل می شوند. این فرایند متناسب با داده های معمولی است، اما اگر داده ها حاوی تصاویر باشند، فرایند ممکن است دست و پا گیر باشد.

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

مروری بر معماری CNN ها

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

معماری CNN ها دارای نورون هایی هستند که در 3 بعد به نام عرض، ارتفاع و عمق قرار گرفته اند. هر نورون در لایه فعلی به یک تکه کوچک از خروجی لایه قبلی متصل است. این شبیه به همپوشانی فیلتر 𝑵 × on روی تصویر ورودی است. برای اطمینان از بدست آوردن تمام جزئیات از فیلترهای M استفاده می کند. این فیلترهای M استخراج کننده ویژگی هایی هستند که ویژگی هایی مانند لبه ها ، گوشه ها و غیره را استخراج می کنند.

لایه ها برای ساخت CNN استفاده می شوند

از لایه های زیر برای ساخت CNN استفاده می شود –

  • Input Layer  – داده های تصویر خام را همانطور که هست می گیرد.
  • Convolutional Layer – این لایه هسته اصلی ساخت CNN است که بیشتر محاسبات را انجام می دهد. این لایه پیچیدگی های بین نورون ها و وصله های مختلف ورودی را محاسبه می کند.
  • Rectified Linear Unit Layer – این یک تابع فعال سازی را برای خروجی لایه قبلی اعمال می کند. این غیر خطی بودن را به شبکه اضافه می کند تا بتواند به خوبی نسبت به هر نوع عملکردی تعمیم یابد.
  • Pooling –Pooling Layer به ما کمک می کند تا هنگام پیشرفت در شبکه، فقط قسمتهای مهم را حفظ کنیم. لایه Pooling به طور مستقل بر روی هر برش عمق ورودی کار می کند و فضای آن را تغییر اندازه می دهد. از عملکرد MAX استفاده می کند.
  • Fully Connected layer/Output layer  – این لایه امتیازات خروجی لایه آخر را محاسبه می کند. خروجی حاصل از اندازه 𝟏 × 𝟏 × 𝑳 است، جایی که L کلاسهای مجموعه آموزش تعداد است.

نصب پکیج های مفید پایتون

می توانید از Keras استفاده کنید که یک API شبکه عصبی سطح بالا است و با زبان پایتون نوشته شده و قابلیت اجرا در بالای TensorFlow ، CNTK یا Theno را دارد. با پایتون 2.7-3.6 سازگار است.

برای نصب keras از دستورات زیر استفاده کنید –

در محیط conda، می توانید از دستور زیر استفاده کنید –

 

ساخت رگرسیون خطی با استفاده از ANN

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

همانطور که نشان داده شده است ، تمام پکیج های مورد نیاز را وارد کنید –

اکنون، مجموعه داده ما را که در فهرست محلی ذخیره شده بارگیری کنید.

 

اکنون، داده ها را به متغیرهای ورودی و خروجی تقسیم کنید یعنی X و Y –

 

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

اکنون، مدل را به صورت زیر ایجاد کنید –

 

بعد، مدل را کامپایل کنید –

اکنون بذر تصادفی را برای قابلیت تکرار به شرح زیر اصلاح کنید –

شی Keras wrapper برای استفاده در یادگیری scikit به عنوان برآوردگر رگرسیون KerasRegressor نامیده می شود. در این بخش، ما باید این مدل را با مجموعه داده های استاندارد ارزیابی کنیم.

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

طبقه بندی کننده تصویر: کاربردی از یادگیری عمیق

(Convolutional Neural Networks (CNN یک مشکل طبقه بندی تصویر را حل می کند، یعنی این که تصویر ورودی به کدام کلاس است. می توانید از کتابخانه یادگیری عمیق کراس استفاده کنید. توجه داشته باشید که ما از مجموعه داده های آموزش و آزمایش تصاویر گربه ها و سگ ها از لینک زیر استفاده می کنیم.

همانطور که نشان داده شده کتابخانه ها و پکیج های مهم Keras را وارد کنید –

پکیج زیر به نام ترتیبی شبکه های عصبی را به عنوان شبکه ترتیبی مقدماتی می کند.

بسته زیر به نام Conv2D برای انجام عملیات پیچش، اولین مرحله CNN استفاده شده است.

بسته زیر به نام MaxPoling2D برای انجام عملیات Pooling، مرحله دوم CNN استفاده شده است.

پکیج زیر Flatten فرآیند تبدیل همه آرایه های 2D حاصل به یک بردار خطی مداوم و طولانی است.

 

پکیج زیر به نام Dense برای انجام اتصال کامل شبکه عصبی، مرحله چهارم CNN استفاده شده است.

اکنون، یک شی از کلاس ترتیبی ایجاد کنید.

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

اکنون مرحله بعدی CNN، عملیات جمع کردن در نقشه ویژگی های حاصل از قسمت پیچیدگی است.

اکنون  با استفاده از flattering، تمام تصاویر جمع شده را به یک پیوسته مداوم تبدیل کنید –

بعد، یک لایه کاملاً متصل ایجاد کنید.

 

در اینجا 128 واحد تعداد پنهان است. این یک روش معمول است که تعداد واحدهای پنهان را به عنوان توان 2 تعریف می کند.

اکنون لایه خروجی را به صورت زیر مقدار دهی اولیه کنید –

اکنون CNN را کامپایل کنید، ما ساخته ایم –

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

اکنون، افزایش تصویر را انجام دهید و سپس تصاویر را در شبکه های عصبی قرار دهید –

 

اکنون، داده ها را با مدلی که ایجاد کرده ایم متناسب کنید –

 

در اینجا steps_per_epoch تعداد تصاویر آموزش را دارد.

اکنون که مدل آموزش داده شده است، می توانیم از آن برای پیش بینی به شرح زیر استفاده کنیم –

 

منبع.

لیست جلسات قبل آموزش هوش مصنوعی با برنامه نویسی پایتون

  1. آموزش هوش مصنوعی با برنامه نویسی پایتون – مفهوم کلی
  2. شروع آموزش هوش مصنوعی با برنامه نویسی پایتون
  3. یادگیری ماشین در هوش مصنوعی با برنامه نویسی پایتون
  4. هوش مصنوعی با برنامه نویسی پایتون، آماده ‌سازی داده ها
  5. هوش مصنوعی با پایتون، یادگیری نظارت شده و طبقه بندی
  6. هوش مصنوعی با برنامه نویسی پایتون – یادگیری تحت نظارت: رگرسیون
  7. هوش مصنوعی با برنامه نویسی پایتون – برنامه نویسی منطقی
  8. هوش مصنوعی با پایتون – یادگیری بدون نظارت: خوشه بندی
  9. هوش مصنوعی با پایتون – پردازش زبان طبیعی
  10. هوش مصنوعی با پایتون – پکیج NLTK
  11. هوش مصنوعی با پایتون – تجزیه و تحلیل داده های سری زمانی
  12. هوش مصنوعی با پایتون – تشخیص گفتار
  13. هوش مصنوعی با پایتون – جستجوی کاشف
  14. هوش مصنوعی با پایتون – بازی
  15. هوش مصنوعی با پایتون – شبکه های عصبی
  16. هوش مصنوعی با پایتون – یادگیری Reinforcement
  17. هوش مصنوعی با پایتون – الگوریتم های ژنتیک
  18. هوش مصنوعی با پایتون – بینایی رایانه‌ ای
امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه