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

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

چگونه می توان شبکه عصبی خود را از ابتدا در پایتون ایجاد

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

 

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

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

یک لایه ورودی ، x
مقدار دلخواه لایه های پنهان
یک لایه خروجی ،
مجموعه ای از وزن ها و سوگیری ها بین هر لایه ، W و b
انتخاب تابع فعال سازی برای هر لایه مخفی ، σ
نمودار زیر معماری یک شبکه عصبی دو لایه را نشان می دهد (توجه داشته باشید که هنگام شمارش تعداد لایه ها در یک شبکه عصبی ، لایه ورودی معمولاً حذف می شود):

معماری لایه های شبکه عصبی

ایجاد کلاس شبکه عصبی در پایتون آسان است.

برای مطالعه بیشتر کاربرد شبکه عصبی این مقاله را مطالعه کنید

گردش کار یادگیری ماشین

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

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

مرحله بعدی پیش پردازش داده ها است. داده های خام اغلب آشفته ، مستعد خطا و برای الگوریتم های یادگیری ماشین مناسب نیستند. بنابراین ، ما باید داده ها را پیش از پردازش به مدل های خود ، از پیش پردازش کنیم. در مواردی که داده ها از منابع متعدد ارائه می شود ، ما باید داده ها را در یک مجموعه داده واحد ادغام کنیم. مدلهای یادگیری ماشین نیز برای اهداف آموزشی به مجموعه داده عددی نیاز دارند. اگر متغیرهای طبقه بندی شده در مجموعه داده خام (یعنی جنسیت ، کشور ، روز هفته و غیره) وجود دارد ، ما باید آن متغیرها را به عنوان متغیرهای عددی کد کنیم. بعداً در فصل خواهیم دید که چگونه می توانیم این کار را انجام دهیم. مقیاس بندی و عادی سازی داده ها نیز برای برخی الگوریتم های یادگیری ماشین مورد نیاز است. شهود پشت این امر این است که اگر اندازه برخی از متغیرها بسیار بیشتر از سایر متغیرها باشد ، برخی الگوریتم های یادگیری ماشین به اشتباه بر متغیرهای غالب تأکید بیشتری می کنند.

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

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

پس از اتمام پیش پردازش داده ها ، به سراغ تحلیل داده های اکتشافی (EDA) می رویم. EDA فرایند کشف بینش از داده های شما با استفاده از تجسم داده است. EDA به ما امکان می دهد ویژگی های جدیدی (معروف به مهندسی ویژگی) بسازیم و دانش دامنه را در مدلهای یادگیری ماشین خود تزریق کنیم.

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

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

راه اندازی رایانه برای یادگیری ماشین

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

در این مقاله ، ما از زبان برنامه نویسی پایتون برای هر پروژه شبکه عصبی استفاده می کنیم. در کنار خود پایتون ، ما همچنین به چندین کتابخانه پایتون مانند Keras ، pandas ، NumPy و بسیاری دیگر نیاز داریم. چندین راه برای نصب پایتون و کتابخانه های مورد نیاز وجود دارد ، اما ساده ترین راه استفاده از Anaconda است.

Anaconda یک توزیع رایگان و منبع باز پایتون و کتابخانه های آن است. Anaconda یک مدیر بسته مفید ارائه می دهد که به ما امکان می دهد Python و سایر کتابخانه های مورد نیاز خود را به راحتی نصب کنیم. برای نصب Anaconda ، کافی است به وب سایت https://www.anaconda.com/distribution/ بروید و نصب کننده Anaconda را بارگیری کنید (نصب کننده Python 3.x را انتخاب کنید).

علاوه بر Anaconda ، ما همچنین به Git نیاز داریم. Git برای یادگیری ماشین و مهندسی نرم افزار به طور کلی ضروری است. Git به ما امکان می دهد کد را به راحتی از GitHub بارگیری کنیم ، که احتمالاً پرکاربردترین سرویس میزبانی نرم افزار است. برای نصب Git ، به وب سایت Git به آدرس https://git-scm.com/book/en/v2/Getting-Started-Installing-Git مراجعه کنید. به سادگی می توانید نصب کننده مناسب سیستم عامل خود را بارگیری و اجرا کنید.

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

برای بارگیری کد ، کافی است دستور زیر را از خط فرمان اجرا کنید (در صورت استفاده از macOS/Linux از ترمینال و در صورت استفاده از ویندوز ، از خط فرمان Anaconda استفاده کنید):

$ git clone https://github.com/PacktPublishing/Neural-Network-Projects-with-Python

دستور git clone تمام کد پایتون موجود در این کتاب را در رایانه شما بارگیری می کند.

پس از انجام این کار ، دستور زیر را اجرا کنید تا به پوشه ای که تازه بارگیری کرده اید بروید:

$ cd Neural-Network-Projects-with-Python

در داخل پوشه ، فایلی با عنوان environment.yml پیدا خواهید کرد. با استفاده از این فایل ، ما می توانیم پایتون و همه کتابخانه های مورد نیاز را در یک محیط مجازی نصب کنیم. شما می توانید یک محیط مجازی را به عنوان یک محیط جدا شده و در جعبه ماسه ای در نظر بگیرید که در آن ما می توانیم یک نسخه جدید از پایتون و همه کتابخانه های مورد نیاز را نصب کنیم. فایل Environment.yml شامل دستورالعمل هایی برای Anaconda است تا نسخه خاصی از هر کتابخانه را در یک محیط مجازی نصب کند. این اطمینان می دهد که کد پایتون در یک محیط استاندارد که ما طراحی کرده ایم اجرا می شود.

برای نصب وابستگی های مورد نیاز با استفاده از Anaconda و فایل environment.yml ، کافی است دستور زیر را از خط فرمان اجرا کنید:

$ conda env create -f environment.yml

درست مانند آن ، Anaconda تمام بسته های مورد نیاز را در یک محیط مجازی شبکه های عصبی-پروژه-python نصب می کند. برای ورود به این محیط مجازی ، دستور زیر را اجرا می کنیم:

$ conda activate neural-network-projects-python

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

$ python Chapter01\keras_chapter1.py

برای خروج از محیط مجازی ، می توانیم دستور زیر را اجرا کنیم:

$ conda deactivate

فقط توجه داشته باشید که هر زمان که کد پایتون ارائه شده توسط ما را اجرا می کنید ، باید در محیط مجازی باشید (با اجرای conda activate neural-network-projects-python را فعال کنید).

پایان قسمت اول

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

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