ایجاد تصاویر مصنوعی با استفاده از شبکه GAN، جادوی بینایی کامپیوتر (قسمت اول)
شبکه های مولد تخاصمی یا Generative Adversarial Networks (GAN) چیست؟ جادوی بینایی کامپیوتر
آیا می توانید موارد عجیب را در مجموعه تصاویر زیر انتخاب کنید:
این یکی چی؟
همه اشیاء و حیوانات موجود در این تصاویر توسط یک مدل بینایی کامپیوتری به نام Generative Adversarial Networks (GANs) تولید شده اند! این یکی از محبوب ترین شاخه های یادگیری عمیق در حال حاضر است. مطمئناً کمک انها در خلاقیت ناخوداگاه ما جرقه ای ایجاد خواهد کرد. GAN قطعاً یکی از موضوعات مورد علاقه من در فضای یادگیری عمیق است. من انواع برنامه های کاربردی مختلفی را که می توانیم با استفاده از این مدل ها ایجاد کنیم، دوست دارم – از ایجاد چهره های جدید گرفته تا ایجاد نقاشی (و پر کردن قسمت های گم شده در نقاشی های قدیمی)!
این مقاله همه شما را با دنیای شبکه های تخاصمی مولد و GAN آشنا می کند. ما همچنین برنامه های کاربردی مختلف این شبکه های مولد را بررسی کرده و در اجزای سازنده آنها کار خواهیم کرد.
مدل مولد چیست؟
بیایید قبل از اینکه به طور گسترده به کاربردهای آن بپردازیم، ایده مدل های مولد را درک کنیم. این به شما کمک می کند تا موارد مختلف استفاده را تجسم کنید و همچنین بعداً وقتی در مورد GAN صحبت می کنیم با آنها ارتباط برقرار کنید. به طور کلی دو نوع مسئله عمده در یادگیری ماشین یا یادگیری عمیق وجود دارد. یادگیری باناظر و یادگیری بدون ناظر. در یادگیری باناظر، ما متغیرهای مستقل (x) و برچسب هدف (y) را داریم. هدف این است که یک تابع نگاشت را برای نگاشت x و y بیاموزیم.
نمونه هایی از یادگیری تحت نظارت شامل طبقه بندی، رگرسیون، تشخیص شیء، تقسیم بندی تصویر و غیره است. از سوی دیگر، یادگیری بدون نظارت فقط دارای متغیرهای مستقل (x) است و برای آنها برچسب هدف تعیین نشده است. هدف در اینجا یادگیری برخی الگوهای زیربنایی از داده ها است. نمونه هایی از یادگیری بدون نظارت شامل خوشه بندی، کاهش ابعاد و غیره است.
مدل های مولد در کجا مناسب هستند؟
وقتی داده های آموزشی در اختیار ما قرار می گیرد، مدل های مولد نمونه های جدیدی را از توزیع مجموعه آموزش تولید می کنند. فرض کنید ما یک مجموعه آموزشی داریم که دارای pdata توزیع (x) است. ما می خواهیم نمونه هایی تولید کنیم که توزیع نمونه های تولید شده pmodel (x) شبیه pdata (x) باشد. بگذارید این موضوع را کمی بیشتر ساده کنم. با استفاده از مدلهای مولد، ابتدا توزیع مجموعه آموزش را می آموزیم و سپس با استفاده از توزیع آموخته شده با برخی تغییرات، مشاهدات جدید یا نقاط داده ایجاد می کنیم. در حال حاضر، روشهای متعددی برای یادگیری این نگاشت بین توزیع مدل و توزیع واقعی داده ها وجود دارد که در بخشهای بعدی به آنها خواهیم پرداخت. قبل از آن، اجازه دهید چند برنامه تولیدی فوق العاده را به شما نشان دهم که ممکن است شما را در مورد مدل های مولد هیجان زده کند.
کاربردهای مدلهای تولیدی
چرا ما در وهله اول به مدل های مولد نیاز داریم؟ حتی من در ابتدا این سوال را داشتم. اما هرچه بیشتر با برنامه های کاربردی روبرو شدم، بیشتر به قدرت مدل های مولد پی بردم. بنابراین، اجازه دهید برخی از موارد استفاده از مدلهای مولد را در این بخش برای پاسخ به این سوال توضیح دهم.
تولید داده ها
آیا تا به حال سعی کرده اید از ابتدا یک مدل یادگیری عمیق بسازید؟ یکی از شایع ترین چالش هایی که اکثر ما با آن روبرو هستیم، فقدان داده های آموزشی است. حتی اگر داده های زیادی در اختیار داشته باشید، مطمئنم که بدتان نمی آید که به اطلاعات بیشتری دست پیدا کنید! چه کسی اطلاعات بیشتری را دوست ندارد؟
صنایع خاصی وجود دارد که برای آموزش مدل های عمیق تر و عمیق تر به داده های بیشتری نیاز دارند. صنعت بهداشت و درمان نمونه خوبی است. مدلهای مولد در اینجا می توانند نقش حیاتی ایفا کنند زیرا می توانند برای تولید داده های جدید مورد استفاده قرار گیرند. از این تصاویر ایجاد شده می توان برای افزایش اندازه مجموعه داده شما استفاده کرد.
در اینجا یک نمونه جالب از مدل های مولد آورده شده است که برای تولید نمونه اتاق خواب استفاده می شود. ما همچنین می توانیم از مدل های مولد برای ایجاد چهره استفاده کنیم.
این مقاله تولید عکس های واقع گرایانه از چهره انسان را نشان می دهد. موارد متعددی از این قبیل وجود دارد که می توانیم از مدل های مولد برای تولید داده استفاده کنیم. به عنوان مثال: ایجاد شخصیت های کارتونی، تصاویر افراد مشهور و غیره.
ایجاد تصاویر جدید از تصویر نمونه
من به ویژه به این برنامه مدل مولد علاقه دارم. شما می توانید کارهای جالبی مانند: تبدیل عکس های ماهواره ای به Google Maps، تبدیل عکس های روز به شب، عکس های سیاه و سفید به عکس های رنگی، تغییر فصل (فرض کنید تابستان به زمستان) را انجام دهید:
موارد نشان داده شده در بالا همگی تصاویر ایجاد شده از تصاوی مولد هستند. این مقاله رویکرد بسیاری از کارهای تبدیل تصویر به تصویر را نشان می دهد.
برنامه های تغییر سن چهره افراد
پیری و رفع پیری صورت فرایندی است برای ایجاد تصویر چهره با پیری طبیعی و رفع پیری در چهره های فردی:
تغییر سن چهره افراد میتواند برای تشخیص چهره های بین سنی و همچنین برای اهداف سرگرمی استفاده شود. کاربردهای بیشتری از مدلهای مولد وجود دارد، مانند تولید شیء سه بعدی، پیش بینی توجه ، ترجمه متن به تصویر و غیره؟ هیجان زده هستید؟ بیایید با درک انواع مختلف مدلهای مولد شروع کنیم.
انواع مدلهای مولد
دو نوع مدل مولد وجود دارد:
مدلهای تراکم صریح
مدلهای چگالی ضمنی
بیایید ابتدا به جدول زیر نگاه کنیم تا تفاوت این دو را درک کنیم:
تراکم صریح چگالی ضمنی
فرض می شود تعدادی از توزیع قبلی در مورد داده ها دارای یک روش تصادفی هستند که مستقیماً داده تولید می کنند
مثال: حداکثر احتمال
مثال: شبکه های مخالف تولیدی (GAN)
مدلهای چگالی صریح
یک تابع چگالی صریح pmodel (x؛ Ө) را تعریف می کنند ، در حالی که مدلهای چگالی ضمنی یک روش تصادفی را تعریف می کنند که می تواند مستقیماً داده تولید کند.
در اینجا شبکه ای از مسیرهای دنبال کننده خوب نمایش داده شده که انواع مختلف مدل های مولد را نشان می دهد:
اجازه دهید این مدل های مولد را با جزئیات بیشتری درک کنیم.
پایان قسمت اول
1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.