آموزش deep learning بصورت گام به گام
در این مقاله به آموزش deep learning یا یادگیری عمیق میپردازیم. یادگیری عمیق deep learning زیرمجموعهای از یادگیری ماشین Machine Learning مبتنی بر شبکههای عصبی مصنوعی Artificial Neural Network (ANN) است. اگر علاقهمند به یادگیری این موضوع هستید با ما همراه باشید.
مقدمه
برای درک یادگیری ماشین، خانوادهای را با یک کودک و والدین او تصور کنید. کودک مدام با انگشت خود به اشیاء اشاره کرده و کلمه گربه را بکار میبرد. از آنجایی که خانواده کودک نگران آموزش او هستند، در هر اشاره کودک، جملات بله آن یک گربه هست یا نه آن یک گربه نیست را تکرار میکنند. کودک به اشاره کردن ادامه میدهد ولی این بار به مرور بر روی گربه بیشتر دقت میکند.
کودک در اعماق وجودش نمیداند که کی میتواند به شیء ای اشاره کرده و بگوید آن یک گربه است یا بگوید آن یک گربه نیست. بعد از مدتی یاد میگیرد که چگونه با نگاه کردن به حیوان خانگی به طور کلی ویژگیهای پیچیده گربه را در ذهن خود به صورت سلسله مراتبی مرتب کند و بر روی جزئیات مانند دم، چشم و گوش و غیره متمرکز شود و تصمیم بگیرد. بدین ترتیب کودک به مرور یاد میگیرد که چه چیزی گربه هست و چه چیزی گربه نیست. اکنون بعد از این مثال، اجازه دهید تعریف علمیتری از یادگیری ماشین داشته باشیم.
Deep Learning یک نرم افزار کامپیوتری است که شبکه نورونهای موجود در مغز را تقلید میکند ضمناً زیر مجموعهای از یادگیری ماشینی مبتنی بر شبکههای عصبی مصنوعی میباشد. دلیل اینکه این علم یا تکنولوژی، یادگیری عمیق یا deep learning نامگذاری شده است، این است که از شبکههای عصبی عمیق استفاده میکند.
کلمه عمیق (Deep) به این دلیل استفاده میشود که عمل اتصال نورونهای شبکه در بیش از دو لایه انجام میشود. در ادامه آموزش deep learning به این لایهها خواهیم پرداخت. این مدل از یادگیری میتواند به سه شکل تحت نظارت، نیمه نظارت یا بدون نظارت انجام گیرد.
تفاوت deep learning و machine learning
همانطور که قبلاً نیز اشاره شد یادگیری عمیق زیر مجموعه ای از یادگیری ماشین است پس در این بخش از آموزش deep learning فرآیند یادگیری ماشین و یادگیری عمیق را مقایسه میکنیم.
فرآیند یادگیری ماشین
تصور کنید قرار است برنامهای بسازیم که اشیاء را تشخیص دهد. برای آموزش مدل از یک طبقهبندی کننده یا Classification استفاده میکنیم. یک طبقهبندی کننده از ویژگیهای یک شیء استفاده میکند تا کلاسی را که به آن تعلق دارد شناسایی کند. در مثالی که مد نظر داریم طبقهبندیکننده آموزش داده میشود که تشخیص دهد تصویر یکی از موارد دوچرخه، قایق، ماشین و هواپیما است. چهار شیء گفته شده کلاسهایی هستند که طبقهبندی کننده باید آنها را تشخیص دهد.
برای ساخت یک طبقهبندی کننده، باید دادههایی به عنوان ورودی داشته باشیم و یک برچسب Label به آنها اختصاص دهیم. الگوریتم این دادهها را میگیرد، یک الگو را پیدا میکند و سپس آن را در کلاس مربوطه طبقهبندی میکند. به این نوع یادگیری، یادگیری تحت نظارت میگویند. در یادگیری تحت نظارت، دادههای آموزشی که به الگوریتم میدهیم شامل یک برچسب است.
آموزش یک الگوریتم مستلزم دنبال کردن چند مرحله استاندارد است:
- جمع آوری داده
- آموزش طبقهبندی کننده
- پیش بینی
انتخاب دادههای مناسب، موجب موفقیت یا شکست الگوریتم میشود در نتیجه قدم اول، قدم ضروری محسوب میشود. دادههایی که برای آموزش مدل انتخاب می کنیم، ویژگی Feature نامیده میشوند. در مثال انتخاب شده، ویژگیها همان پیکسلهای تصاویر (دوچرخه، قایق، ماشین و هواپیما) هستند.
هر تصویر یک ردیف Row در داده است در حالی که هر پیکسل یک ستون Column است. اگر اندازه تصویر 28×28 باشد، مجموعه داده شامل 784 ستون (28×28) است. در تصویر زیر هر تصویر به یک بردار ویژگی تبدیل شده است. برچسب به کامپیوتر میگوید که چه شیء ای در تصویر وجود دارد.
هدف استفاده از این دادههای آموزشی برای طبقهبندی نوع شیء است. مرحله اول شامل ایجاد ستونهای ویژگی است. سپس، مرحله دوم شامل انتخاب یک الگوریتم برای آموزش مدل است. وقتی آموزش انجام شد، مدل پیشبینی میکند که چه تصویری با چه شیء ای مطابقت دارد.
پس از آن، استفاده از مدل برای پیشبینی تصاویر جدید آسان است. برای هر تصویر جدیدی که به مدل وارد میشود، ماشین کلاسی را که تصویر به آن تعلق دارد را پیشبینی میکند. به عنوان مثال، یک تصویر کاملاً جدید بدون برچسب در حال عبور از مدل است. برای یک انسان، تجسم تصویر به عنوان یک خودرو پیش پا افتاده است ولی ماشین از دانش قبلی خود برای پیشبینی تصویر یک خودرو استفاده میکند.
فرآیند یادگیری عمیق
در یادگیری عمیق، مرحله یادگیری از طریق شبکه عصبی انجام میشود. شبکه عصبی معماری است که در آن لایهها روی هم چیده میشوند. همان مثال تصویر بالا را در نظر بگیرید. مجموعه آموزشی به یک شبکه عصبی تغذیه میشود. هر ورودی وارد یک نورون میشود و در یک وزن ضرب میشود. حاصل ضرب به لایه بعدی میرود و به ورودی تبدیل میشود. این فرآیند برای هر لایه از شبکه تکرار میشود. لایه نهایی لایه خروجی نام دارد که یک مقدار واقعی برای کار رگرسیون و یک احتمال از هر کلاس برای کار طبقهبندی ارائه میدهد.
شبکه عصبی از یک الگوریتم ریاضی برای بهروزرسانی وزن تمام نورونها استفاده میکند. شبکه عصبی زمانی به طور کامل آموزش داده میشود که خروجی، ارزش وزنی نزدیک به واقعیت داشته باشد. به عنوان مثال، یک شبکه عصبی به خوبی آموزش دیده، میتواند شیء را روی یک تصویر با دقت بالاتری نسبت به شبکه عصبی سنتی تشخیص دهد.
لایه های الگوریتم های deep learning
الگوریتمهای deep learning از لایههای متصل بهم ساخته شدهاند. اولین لایه بنام لایه ورودی Input Layer شناخته میشود. آخرین لایه، لایه خروجی Output Layer بوده و تمام لایه های بین این دو لایه، لایههای مخفی یا Hidden Layers نامگذاری میشوند.
هر لایه مخفی از یکسری نورونها ساخته شده است که این نورونها به یکدیگر وصل هستند. نورونها سیگنال ورودی دریافتی از لایه بالایی را پردازش کرده و آن را تکثیر میکنند. قدرت سیگنالی که نورون موجود در لایه بعدی دریافت میکند به وزن، جهت و عملکرد فعال سازی آن بستگی دارد.
شبکه مقدار زیادی از دادههای ورودی را مصرف کرده و آنها را از طریق لایههای متعدد به کار میگیرد. همچنین شبکه میتواند ویژگی های پیچیده دادههای موجود در هر لایه را یاد بگیرد. در این آموزش deep learning اصول اولیه یادگیری عمیق را یاد خواهیم گرفت.
یک شبکه یادگیری عمیق در بسیاری از کارها از تشخیص اشیاء گرفته تا تشخیص گفتار دقت پیشرفتهای را ارائه میدهد. شبکههای deep learning میتوانند بدون دانش از پیش تعریف شدهای که توسط برنامه نویسان کدگذاری شده باشد، بطور خودکار بیاموزند. یک شبکه عصبی کاملاً به همان نحوی که در مورد کودک توضیح دادیم، عمل میکند. هر لایه نشاندهنده سطح عمیقتری از دانش (یعنی سلسله مراتب دانش) است . یک شبکه عصبی با چهار لایه ویژگیهای پیچیدهتری را نسبت به دو لایه یاد میگیرد.
مراحل یادگیری
یادگیری در دو مرحله انجام میشود:
- فاز اول: شامل اعمال یک تبدیل غیرخطی ورودی و ایجاد یک مدل آماری به عنوان خروجی است.
- فاز دوم: فاز دوم با هدف بهبود مدل با یک روش ریاضی معروف به مشتق عمل میکند.
شبکه عصبی این دو فاز را صدها تا هزاران بار تکرار میکند تا زمانی که به سطح قابل تحملی از دقت برسد. به تکرار این دو فاز iteration میگویند.
طبقه بندی شبکه های عصبی
- شبکه عصبی کم عمق: شبکه عصبی کم عمق تنها یک لایه پنهان بین ورودی و خروجی دارد.
- شبکه عصبی عمیق: شبکههای عصبی عمیق بیش از یک لایه دارند. به عنوان مثال، مدل Google LeNet برای تشخیص تصویر 22 لایه دارد.
انواع شبکه های یادگیری عمیق
اکنون در این بخش از آموزش deep learning، با انواع این شبکهها آشنا می شویم:
1- شبکه های عصبی پیشخور Feed Forward
این شبکهها سادهترین نوع شبکه عصبی مصنوعی هستند. با این نوع معماری اطلاعات تنها در یک جهت جریان مییابد. به این معنی که جریان اطلاعات از لایه ورودی شروع میشود به طرف لایه مخفی رفته و در نهایت به لایه خروجی ختم میشود. شبکه حلقه ندارد اطلاعات در لایههای خروجی متوقف میشود.
2- شبکه های عصبی مکرر Recurrent Neural Networks
این نوع از شبکههای عصبی در تشخیص گفتار، پردازش زبان و پردازش دادههای طبیعی کاربرد دارند. در این شبکهها خروجی همراه با ورودی بعدی به شبکه برگردانده میشوند. RNN قادر است ورودی قبلی را ذخیره کند چرا که دارای حافظه داخلی است و از این حافظه در پردازش دادههای ورودی استفاده میکند. به زبان ساده شبکههای RNN دارای حلقههایی هستند که اطلاعت قبلی از دست نروند و همچنان در شبکه وجود داشته باشند.
3- شبکه های عصبی کانولوشنال Convolutional Neural Network
CNN یک شبکه عصبی چند لایه است که برای استخراج ویژگیهای پیچیده دادهها در هر لایه جهت تعیین خروجی طراحی شده است. این شبکهها مناسب کارهای ادراکی هستند. CNN بیشتر در مواقعی مورد استفاده قرار میگیرد که مجموعهای از دادههای بدون ساختار وجود داشته باشد (مانند عکسها) و متخصصان بخواهند اطلاعات را از درون آنها استخراج کنند.
کاربردهای یادگیری عمیق deep learning
امروزه، یادگیری عمیق به روشهای مختلفی مانند ماشین بدون راننده، تلفن همراه، موتور جستجوی گوگل، تشخیص تقلب، تلویزیون و غیره استفاده میشود. مثالهایی که در این مورد میتوان زد:
1- هوش مصنوعی در امور مالی
بخش فنآوری مالی استفاده از هوش مصنوعی را برای صرفهجویی در هزینهها، زمان و ارزش افزوده از قبل شروع کرده است. همچنین deep learning با استفاده از امتیازدهی قویتر، صنعت وامدهی را تغییر داده است. تصمیم گیران در امر اعتبار و credit از هوش مصنوعی برای برنامههای وامدهی اعتباری قوی و دستیابی به ارزیابی ریسک سریعتر و دقیقتر، همینطور برای فاکتور شخصیت و ظرفیت متقاضیان استفاده میکنند.
2- هوش مصنوعی در بازاریابی
هوش مصنوعی ابزار ارزشمندی برای مدیریت خدمات مشتری و چالشهای شخصیسازی است. بهبود تشخیص گفتار در مدیریت مرکز تماس و مسیریابی تماس در نتیجه استفاده از تکنیکهای هوش مصنوعی، تجربه یکپارچهتری را برای مشتریان فراهم میکند.
به عنوان مثال تجزیه و تحلیل یادگیری عمیق صدا به سیستمها اجازه میدهد تا لحن احساسی مشتری را ارزیابی کنند. اگر مشتری به ربات چت هوش مصنوعی پاسخ ضعیفی نشان دهد، سیستم می تواند مکالمه را به اپراتورهای واقعی و انسانی که مسئولیت مشکل را بر عهده دارند تغییر مسیر دهد.
به غیر از سه مثال یادگیری عمیق در بالا، هوش مصنوعی به طور گسترده در سایر بخش ها / صنایع استفاده می شود.
چرا deep learning مهم است؟
یادگیری عمیق ابزاری قدرتمند برای تبدیل پیشبینی به یک نتیجه عملی است. یادگیری عمیق در کشف الگو (یادگیری بدون نظارت) و پیشبینی مبتنی بر دانش برتری دارد. کلان داده سوخت یادگیری عمیق است. هنگامی که هر دو با هم ترکیب شوند، یک سازمان میتواند نتایج بیسابقهای در زمینه بهرهوری، فروش، مدیریت و نوآوری به دست آورد.
یادگیری عمیق میتواند از روش سنتی بهتر عمل کند. به عنوان مثال، الگوریتمهای یادگیری عمیق 41 درصد دقیقتر از الگوریتم یادگیری ماشین در طبقهبندی تصویر، 27 درصد در تشخیص چهره و 25 درصد در تشخیص صدا هستند.
محدودیتهای موجود در deep learning
اکنون در این بخش از آموزش deep learning به محدودیتهای موجود در این زمینه میپردازیم.
برچسب گذاری داده ها
بیشتر مدلهای فعلی هوش مصنوعی از طریق «یادگیری تحت نظارت» آموزش داده میشوند. این بدان معنی است که انسان ها باید دادههای زیربنایی را برچسبگذاری و دستهبندی کنند، که میتواند یک کار طاقت فرسا و مستعد خطا باشد. برای مثال، شرکتهایی که فناوریهای خودروهای خودران را توسعه میدهند، صدها نفر را استخدام میکنند تا به صورت دستی ساعتها محتوای ویدیویی (video feeds) از نمونههای اولیه خودروها را برای کمک به آموزش این سیستمها حاشیهنویسی کنند.
تهیه مجموعه داده های آموزشی عظیم
تاکنون مشخص شده است که تکنیکهای یادگیری عمیق ساده مانند CNN میتواند در برخی موارد از دانش متخصصان در پزشکی و سایر زمینهها تقلید کند. با این حال، موج کنونی یادگیری ماشینی مستلزم مجموعه دادههای آموزشی است که نه تنها برچسبگذاری شده باشند، بلکه به اندازه کافی گسترده و جهانی باشند.
روشهای یادگیری عمیق به مشاهدات خیلی زیادی گاهی اوقات هزاران مشاهده نیاز داشت تا مدلها در کارهای طبقهبندی، نسبتاً خوب عمل کنند و در برخی موارد، میلیونها مشاهده برای آنها در سطح انسان باید انجام میشد. قابل توجه هست که یادگیری عمیق در شرکتهای غول پیکر فناوری امر مشهوری است.
زیرا آنها از big data برای جمعآوری دادههایی با حجمهای بسیار بالا در حد پتا بایت استفاده میکنند. این کار به آنها اجازه میدهد تا یک مدل یادگیری عمیق چشمگیر و بسیار دقیق ایجاد کنند.
توضیح یک مسئله
توضیح مدلهای بزرگ و پیچیده از نظر انسانی دشوار است. این یکی از دلایل پذیرش کند برخی از ابزارهای هوش مصنوعی در زمینههای کاربردی که قابلیت تفسیر مفید یا لازم را دارند، میباشد.
علاوه بر این، با گسترش کاربرد هوش مصنوعی، الزامات نظارتی نیز میتواند نیاز به مدلهای هوش مصنوعی با قابلیت توضیح بیشتر را ایجاد کند.
سخن آخر در بحث آموزش deep learning
در این مقاله به آموزش deep learning پرداختیم. در طی آن یاد گرفتیم که یادگیری عمیق، جدیدترین فناوری برای هوش مصنوعی است. تفاوت آن را با یادگیری ماشینی بیان کردیم، گفتیم که معماری یادگیری عمیق از یک لایه ورودی، لایههای پنهان و یک لایه خروجی تشکیل شده است. کلمه عمیق به معنای وجود بیش از دو لایه کاملاً متصل است.
تعداد زیادی شبکه عصبی وجود دارد که هر معماری برای انجام یک وظیفه معین طراحی شده است. به عنوان مثال، CNN با تصاویر بسیار خوب کار می کند، RNN نتایج چشمگیری را با سریهای زمانی و تجزیه و تحلیل متن ارائه می دهد.
یادگیری عمیق در حال حاضر در زمینه های مختلف، از امور مالی گرفته تا بازاریابی، زنجیره تامین و بازاریابی فعال است. شرکتهای بزرگ اولین شرکتهایی هستند که از یادگیری عمیق استفاده میکنند، زیرا در حال حاضر حجم زیادی از دادهها را در اختیار دارند. یادگیری عمیق مستلزم داشتن مجموعه داده آموزشی گسترده است. در نهایت از اینکه تا انتهای مقاله ما را همراهی کردید سپاسگزاریم.
درباره گلناز محرر روحانی
کارشناس ارشد مهندسی کامپیوتر، محقق و پژوهشگر در زمینه شبکه های کامپیوتری و شبکه های موردی، طراح وب، پژوهشگر در امور Cryptocurrency و مسلط به زبان انگلیسی و مدرس زبان انگلیسی