شرح مختصری از برخی از معماری های شبکه برای تشخیص اشیا در تصاویر و تقسیم بندی تصویر با قابل درک ترین پیوندها به منابع برای من. سعی کردم توضیحات ویدئویی و ترجیحا به زبان روسی را انتخاب کنم.
بخش دوم تلاشی برای درک جهت توسعه معماری شبکه های عصبی است. و فناوری های مبتنی بر آنها.
شکل 1 - درک معماری شبکه های عصبی آسان نیست
همه چیز با ساخت دو برنامه آزمایشی برای طبقه بندی و تشخیص اشیا در یک تلفن اندرویدی شروع شد:
نسخه ی نمایشی Back-end، زمانی که داده ها روی سرور پردازش می شوند و به تلفن منتقل می شوند. طبقه بندی تصویری از سه نوع خرس: قهوه ای، سیاه و عروسکی.
نسخه ی نمایشی Front-endزمانی که داده ها روی خود گوشی پردازش می شوند. تشخیص اجسام (اشیاء یاب) از سه نوع فندق، انجیر و خرما.
بین وظایف طبقه بندی تصویر، تشخیص شی در تصویر و تقسیم بندی تصویر. بنابراین، نیاز به یافتن این بود که کدام معماری شبکه عصبی اشیاء را در تصاویر تشخیص میدهد و کدام یک میتوانند بخشبندی شوند. من نمونههای زیر از معماریها را با قابلفهمترین پیوندها به منابع برای من پیدا کردم:
مجموعه ای از معماری ها بر اساس R-CNN (Rمناطق با Cدر حال تکامل Neural Nویژگی های etworks: R-CNN، Fast R-CNN، R-CNN سریعتر, ماسک R-CNN. برای شناسایی یک شی در یک تصویر، کادرهای محدود کننده با استفاده از مکانیسم شبکه پیشنهادی منطقه (RPN) اختصاص داده می شوند. در ابتدا، مکانیسم جستجوی انتخابی کندتر به جای RPN استفاده شد. سپس مناطق محدود انتخاب شده برای طبقه بندی به ورودی یک شبکه عصبی معمولی تغذیه می شوند. معماری R-CNN دارای حلقه های "for" صریح در مناطق محدود است که در مجموع تا 2000 اجرا از طریق شبکه داخلی AlexNet می باشد. حلقه های واضح "for" سرعت پردازش تصویر را کاهش می دهد. تعداد حلقههای واضحی که از طریق شبکه عصبی داخلی اجرا میشوند با هر نسخه جدید از معماری کاهش مییابد و دهها تغییر دیگر برای افزایش سرعت و جایگزینی وظیفه تشخیص شی با تقسیمبندی شی در Mask R-CNN ایجاد میشود.
YOLO (You Oنیکی Look Once) اولین شبکه عصبی است که اشیاء را در زمان واقعی در دستگاه های تلفن همراه تشخیص می دهد. ویژگی متمایز: تشخیص اشیاء در یک اجرا (فقط یک بار نگاه کنید). به این معنی که در معماری YOLO هیچ حلقه "for" واضحی وجود ندارد، به همین دلیل است که شبکه به سرعت کار می کند. به عنوان مثال، این قیاس: در NumPy، هنگام انجام عملیات با ماتریس، حلقه های "for" واضحی نیز وجود ندارد، که در NumPy در سطوح پایین تر معماری از طریق زبان برنامه نویسی C پیاده سازی می شوند. YOLO از شبکه ای از پنجره های از پیش تعریف شده استفاده می کند. برای جلوگیری از چندین بار تعریف یک شیء، از ضریب همپوشانی پنجره (IoU) استفاده می شود. Iتقاطع oنسخه Uنیون). این معماری در گستره وسیعی عمل می کند و دارای بالا می باشد نیرومندی: یک مدل میتواند روی عکسها آموزش ببیند، اما همچنان در نقاشیهای دستی به خوبی عمل میکند.
SSD (Single Sمولتی باکس داغ Detector) - موفق ترین "هک"های معماری YOLO استفاده می شود (به عنوان مثال، سرکوب غیر حداکثر) و موارد جدید اضافه می شود تا شبکه عصبی سریعتر و دقیق تر کار کند. ویژگی متمایز: تشخیص اشیاء در یک اجرا با استفاده از یک شبکه مشخص از پنجره ها (جعبه پیش فرض) در هرم تصویر. هرم تصویر در تانسورهای کانولوشن از طریق عملیات کانولوشن و ادغام متوالی کدگذاری می شود (با عملیات جمع آوری حداکثر، بعد فضایی کاهش می یابد). به این ترتیب، اشیاء بزرگ و کوچک در یک اجرای شبکه تعیین می شوند.
MobileSSD (موبایلNetV2+ SSD) ترکیبی از دو معماری شبکه عصبی است. شبکه اول MobileNetV2 به سرعت کار می کند و دقت تشخیص را افزایش می دهد. MobileNetV2 به جای VGG-16 استفاده می شود که در ابتدا در آن استفاده می شد مقاله اصلی. شبکه دوم SSD مکان اشیاء را در تصویر تعیین می کند.
SqueezeNet - یک شبکه عصبی بسیار کوچک اما دقیق. به خودی خود مشکل تشخیص شی را حل نمی کند. با این حال، می توان از آن در ترکیبی از معماری های مختلف استفاده کرد. و در دستگاه های تلفن همراه استفاده می شود. ویژگی متمایز این است که داده ها ابتدا به چهار فیلتر کانولوشنال 1×1 فشرده می شوند و سپس به چهار فیلتر کانولوشنال 1×1 و چهار فیلتر 3×3 گسترش می یابند. یکی از این تکرارهای فشرده سازی-گسترش داده ها "ماژول آتش" نامیده می شود.
DeepLab (تقسیم بندی تصویر معنایی با شبکه های پیچیده عمیق) - تقسیم بندی اشیاء در تصویر. یکی از ویژگی های متمایز معماری پیچش گشاد شده است که وضوح فضایی را حفظ می کند. به دنبال آن یک مرحله پس از پردازش نتایج با استفاده از یک مدل احتمالی گرافیکی (میدان تصادفی شرطی) انجام می شود، که به شما امکان می دهد نویز کوچک را در بخش بندی حذف کنید و کیفیت تصویر قطعه بندی شده را بهبود بخشید. در پشت نام مهیب "مدل احتمالی گرافیکی" یک فیلتر گاوسی معمولی پنهان شده است که با پنج نقطه تقریبی دارد.
سعی کرد دستگاه را کشف کند RefineDet (تک تیر خالص کردنشبکه عصبی برای شی دیتection)، اما من چیز زیادی نفهمیدم.
من همچنین به نحوه عملکرد فناوری "توجه" نگاه کردم: ویدیو 1, ویدیو 2, ویدیو 3. یکی از ویژگی های متمایز معماری "توجه" انتخاب خودکار مناطق افزایش توجه در تصویر است (RoI, Regions of Interest) با استفاده از یک شبکه عصبی به نام واحد توجه. نواحی با توجه بیشتر شبیه به جعبه های مرزی هستند، اما بر خلاف آنها، در تصویر ثابت نیستند و ممکن است مرزهای مبهم داشته باشند. سپس، از مناطق با توجه افزایش یافته، علائم (ویژگی ها) جدا می شوند که به شبکه های عصبی مکرر با معماری "تغذیه" می شوند. LSDM، GRU یا Vanilla RNN. شبکه های عصبی بازگشتی قادر به تجزیه و تحلیل رابطه ویژگی ها در یک دنباله هستند. شبکه های عصبی مکرر در ابتدا برای ترجمه متن به زبان های دیگر و اکنون برای ترجمه استفاده می شدند تصاویر به متن и متن به تصویر.
همانطور که ما این معماری ها را بررسی می کنیم فهمیدم هیچی نمیفهمم. و اینطور نیست که شبکه عصبی من با مکانیسم توجه مشکل داشته باشد. ایجاد تمام این معماری ها مانند نوعی هکاتون بزرگ است که در آن نویسندگان در هک رقابت می کنند. هک یک راه حل سریع برای یک مشکل نرم افزاری دشوار است. یعنی هیچ ارتباط منطقی قابل مشاهده و قابل فهمی بین همه این معماری ها وجود ندارد. تنها چیزی که آنها را متحد می کند مجموعه ای از موفق ترین هک هایی است که از یکدیگر قرض می گیرند، به علاوه یک هک مشترک برای همه عملیات پیچیدگی حلقه بسته (خطا پس انتشار، پس انتشار). خیر تفکر سیستمی! مشخص نیست چه چیزی را باید تغییر داد و چگونه دستاوردهای موجود را بهینه کرد.
در نتیجه عدم ارتباط منطقی بین هک ها، به خاطر سپردن و به کار بردن آنها در عمل بسیار دشوار است. این دانش پراکنده است. در بهترین حالت، چند لحظه جالب و غیرمنتظره به یاد میآیند، اما بیشتر چیزهایی که قابل درک و غیرقابل درک است، ظرف چند روز از حافظه محو میشوند. خوب است اگر یک هفته دیگر حداقل نام معماری را به خاطر بسپارید. اما چندین ساعت و حتی چند روز از زمان کاری صرف خواندن مقالات و تماشای ویدیوهای نقد شد!
اکثر نویسندگان مقالات علمی، به نظر شخصی من، تمام تلاش خود را می کنند تا حتی این دانش پراکنده توسط خواننده قابل درک نباشد. اما عبارات مشارکتی در ده جمله خطی با فرمول هایی که "از هوای رقیق" گرفته شده اند موضوعی برای مقاله جداگانه است (مشکل انتشار و یا نابود).
به همین دلیل، نیاز به سیستمبندی اطلاعات با استفاده از شبکههای عصبی و در نتیجه افزایش کیفیت درک و به خاطرسپاری وجود دارد. بنابراین، موضوع اصلی تحلیل تک تک فناوریها و معماریهای شبکههای عصبی مصنوعی، وظیفه زیر بود: بفهمید همه چیز به کجا می رودو نه دستگاه هر شبکه عصبی خاص به طور جداگانه.
این همه کجا می رود؟ نتایج اصلی:
تعداد استارت آپ های یادگیری ماشینی در دو سال گذشته به شدت سقوط کرد. دلیل احتمالی: "شبکه های عصبی دیگر چیز جدیدی نیستند."
سازندگان بزرگ شبکه های عصبی شروع به ایجاد کردند "باغ وحش های نمونه" (باغ وحش مدل). با استفاده از آنها می توانید به سرعت یک برنامه تجاری ایجاد کنید: هاب TF برای تنسورفلو، MMDection برای PyTorch، آشکارساز برای Caffe2، chainer-modelzoo برای Chainer و دیگران.
شبکه های عصبی در حال کار در به موقع (زمان واقعی) در دستگاه های تلفن همراه. از 10 تا 50 فریم در ثانیه.
استفاده از شبکه های عصبی در گوشی ها (TF Lite)، در مرورگرها (TF.js) و در وسایل خانه (IoT، Iشبکه اینترنتی of Tلولا). به خصوص در تلفن هایی که قبلاً از شبکه های عصبی در سطح سخت افزار پشتیبانی می کنند (شتاب دهنده های عصبی).
هر وسیله، لباس، و شاید حتی غذا را داشته باشد آدرس IP-v6 و با یکدیگر ارتباط برقرار کنید" - سباستین ترون.
تعداد انتشارات در مورد یادگیری ماشین شروع به رشد کرده است فراتر از قانون مور (هر دو سال دو برابر) از سال 2015. بدیهی است که برای تحلیل مقالات به شبکه های عصبی نیاز داریم.
فناوری های زیر در حال افزایش محبوبیت هستند:
PyTorch - محبوبیت به سرعت در حال افزایش است و به نظر می رسد که از TensorFlow پیشی می گیرد.
انتخاب خودکار فراپارامترها خودکار کردن - محبوبیت به آرامی در حال رشد است.
کاهش تدریجی دقت و افزایش سرعت محاسبه: منطق فازی، الگوریتم ها افزایش، محاسبات غیر دقیق (تقریبی)، کوانتیزاسیون (زمانی که وزن های شبکه عصبی به اعداد صحیح تبدیل می شوند و کوانتیزه می شوند)، شتاب دهنده های عصبی.
نکته اصلی در مورد DL این است که داده های زیادی وجود دارد، اما جمع آوری و برچسب گذاری آن آسان نیست. بنابراین، اتوماسیون نشانه گذاری در حال توسعه است (حاشیه نویسی خودکار) برای شبکه های عصبی با استفاده از شبکه های عصبی.
با شبکه های عصبی، علوم کامپیوتر ناگهان تبدیل شد علوم تجربی و برخاست بحران تکرارپذیری.
پول فناوری اطلاعات و محبوبیت شبکههای عصبی به طور همزمان زمانی پدیدار شدند که محاسبات به ارزش بازار تبدیل شد. اقتصاد در حال تغییر از اقتصاد طلا و ارز به طلا-ارز-محاسبات. مقاله من در مورد را ببینید اقتصاد فیزیک و دلیل ظاهر شدن پول IT.
به تدریج یک مورد جدید ظاهر می شود روش برنامه نویسی ML/DL (Machine Learning & Deep Learning)، که مبتنی بر نمایش برنامه به عنوان مجموعه ای از مدل های شبکه عصبی آموزش دیده است.
شکل 3 - ML/DL به عنوان یک روش برنامه نویسی جدید
با این حال، هرگز ظاهر نشد "نظریه شبکه های عصبی"، که در آن می توانید به طور سیستماتیک فکر و کار کنید. آنچه اکنون "نظریه" نامیده می شود، در واقع الگوریتم های تجربی و اکتشافی هستند.
پیوندهایی به منابع من و سایر منابع:
خبرنامه علم داده. عمدتا پردازش تصویر. هر کس می خواهد آن را دریافت کند باید یک ایمیل (foobar167<gaf-gaf>gmail<dot>com) بفرستد. من پیوندهایی را به مقالات و ویدیوها با جمع شدن مطالب ارسال می کنم.
ابزارهای مفید، جایی که هر کس چیز جالبی برای خود پیدا خواهد کرد.
ما آنها را بسیار مفید یافتیم. کانال های ویدئویی برای تجزیه و تحلیل مقالات علمی توسط Data Science. آنها را پیدا کنید، مشترک شوید و پیوندها را به همکاران خود و من نیز ارسال کنید. مثال ها: