یادگیری عمیق (Deep Learning) چیست؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

یادگیری عمیق (Deep Learning) چیست؟

+1 امتیاز
سلام.

می خواستم بدونم چیه و دقیقا چه کاربردهایی داره و چه ربطی داره به شبکه عصبی؟
سوال شده فروردین 9, 1396  بوسیله ی علی احمدی کنارکی (امتیاز 30)   5 7 8

2 پاسخ

+3 امتیاز
 
بهترین پاسخ

یادگیری عمیق از زیر شاخه های یادگیری ماشین است.این روش ویژگی را به صورت سلسله مراتبی از لایه های مختلف از طریق توابع غیر خطی استخراج می کند ورودی هر لایه خروجی لایه قبلی است و آموزش آن می تواند به صورت با ناظر یا بدون ناظر باشد.در واقع تک لایه مخفی در شبکه عصبی  با تعدادی زیادی(deep) لایه جایگزین شده است.

 

 

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

تعداد کلاس ها در پروژه های یادگیری عمیق اندازه لایه خروجی را تعیین می کنه فرض کنید اندازه لایه خروجی 2  است لایه ورودی هم توسط معماری شبکه مشخص میشه فرض کنید معماری VGG19 انتخاب کنیم  تصاویر با ابعاد 224*224  به شبکه اعمال می شود اغلب شبکه های از تصاویر رنگی استفاده می کنند که این تصاویر دارای 3 کانال هستند که ابعاد نهایی به صورت 224*224*3 می باشد. تا اینجا لایه ورودی و خروجی مشخص شد کاری که قرار یادگیری عمیق برای ما انجام بده استخراج ویژگی از تصویر است باید به گونه ای این ویژگی ها استخراج بشن که کلاسیفایر بتونه با بالاترین دقت نمونه ها رو از هم جدا کنه.   علت اسم گذاری شبکه عمیق از آنجاست که همین بخش استخراج ویژگی از تعداد زیادی لایه استفاده می کنه تا بتونه ویژگی مطلوب ما را استخراج کنه لایه های دارای انواع متفاوتی هستند که از چیدمان ترکیب این لایه ها به حالات مختلف شبکه های مختلف بوجود آمده اند.

یک دور که همه تصاویر آموزشی را استفاده کنیم بهش میگیم یک epoch برای آموزش شبکه ممکنه به صد ها epoch نیاز داشته باشیم و در هر epoch دقت مدل ما بهتر میشه دقت شبکه را با مقداری به نام loss ارزیابی می کنن چون کلاسیفایر ممکن در حین عملیات آموزش تعدادی از نمونه ها را اشتباه تشخیص بده برای برآورد میزان اشتباه شبکه از تابعی استفاده می کنیم تحت عنوان loss function .این تابع هر چقدر مقدارش کوچک باشه یعنی اینکه اختلاف کمی بین جواب مدل و جواب مطلوب وجود داره پس دقت مدل بالاتر و برعکس هر چی بالا باشه یعنی دقت مدل ما پایینه و باید به آموزش ادامه بدیم.ما در دو حال به آموزش شبکه خاتمه میدم یا مقدار loss اینقدر کوچک بشه که از نظر ما مناسب باشه یا شبکه را مقید کنیم تعداد n-epoch عملیات آموزش را انجام بده.

همانطور که در بالا مشاهده کردید باید روشی بهینه سازی وجود داشته باشه تا طریق مشاهده میزان loss در هر مرحله وزن ها را اصلاح کنه در روش های قدیمی عملیات اصلاح در انتهای هر epoch انجام می شد که در این روش عملیات اصلاح وزن ها به کندی صورت می گرفت یعنی خیلی طول می کشید تا loss مدل ما کم بشه به همین خاطر جهت افزایش سرعت آموزش امدن بعد از تعداد نمونه کمتری عملیات اصلاح انجام میشه به این تعداد batch_size گفته میشه که به طور فرض کنید داده های آموزشی 2000 نمونه باشه با در نظر گرفتن batch_size=30 یعنی بعد از اعمال 30 نمونه به شبکه عملیات را اصلاح را انجام بدیم در روش های قدیمی بعد اعمال کل داده(2000 نمونه) عمیلات اصلاح انجام می شد.یکی از روش های رایج روش  SGD  برای بروز رسانی وزن ها استفاده میشه .

 

پاسخ داده شده فروردین 12, 1396 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
ویرایش شده دی 21, 1397 بوسیله ی مصطفی ساتکی
deep learning و فرق با شبکه عصبی
0 امتیاز

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

یادگیری عمیق در سال‌های اخیر پیشرفت‌های زیادی داشته است و در حال حاضر در بسیاری از زمینه‌ها کاربرد دارد، از جمله:

  • پردازش تصویر
  • پردازش زبان طبیعی
  • بینایی ماشین
  • خودران‌ها
  • طبابت

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

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

در اینجا چند مثال از کاربردهای یادگیری عمیق آورده شده است:

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

یادگیری عمیق یک فناوری نوظهور و قدرتمند است که پتانسیل تغییر بسیاری از زمینه‌ها را دارد.

 

پاسخ داده شده شهریور 4, 1402 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
...