TG Telegram Group & Channel
NLP stuff | United States America (US)
Create: Update:

پَچ‌پَچ کردن تمام آن چیزی است که نیاز دارید.

اگر در این چند سال همراه ما بوده‌ باشید یادتون هست که معماری‌های ViT و MLP-Mixer سعی داشتند نشون بدن که برای به دست آوردن یک بازنمایی خوب از تصویر، لازم نیست که به کانولوشن مقید باشیم. ViT نشون داد که میشه با پچ‌پچ کردن (یعنی این که تصویر رو به تکه‌های کوچیکتر تقسیم کردن) و بعد اعمال اتشنن و MLP پچ‌محور این بازنمایی خوب رو به دست آورد و MLP-Mixer هم گفت که به همون اتنشن هم نیازی نیست و میشه بعد از پچ‌پچ‌کردن با دو تا MLP که یکیشون Depth-wise و دیگری Patch-wise هست بازنمایی خوبی را یاد گرفت. (قبلا در https://hottg.com/nlp_stuff/81 و https://hottg.com/nlp_stuff/168 این دو معماری رو معرفی کرده بودیم)

حالا یک مقاله که در TMLR چاپ شده اومده و نویسندگانش گفتن که اصلا بحث اتنشن و MLP نیست. اون چیزی که باعث یادگیری بازنمایی خوب میشه خود patch کردن و استفاده از یک الگوی متقارن (یا به قول خودش isotropic) بین این پچ‌های مختلف هست. بر همین ایده، خودشون اومدن و یک مدل به نام Conv-Mixer ارائه دادن. ساختار و نحوه عملکرد این مدل این شکلیه که تصویر ورودی رو مثل ViT و MLP-Mixer میاد و پچ‌پچ می‌کنه و روی هر پچی هم patch-embedding رو اعمال میکنه (اینجا برای این که ژانگولربازی دربیاره بگه من تو مدلم از هیچ MLP استفاده نکردم اومده و این فرآیند Patch Embedding رو هم با کانولوشن با استراید اندازه سایز پچ انجام داده). سپس در مرحله بعدی میاد و لایه‌ای به نام Conv-Mixer رو به تعداد عمق d روی این پچ‌ها اعمال میکنه. اما هر کدوم از این لایه‌های ConvMixer چه شکلی هستند؟ هر لایه ConvMixer در واقع از دو کانولوشن تشکیل شده. یک کانولوشن که صرفا به صورت depth-wise روی فیچرهای حاضر در یک عمق مشخص کانال و در مکان‌های مختلف اون عمق اعمال میشه و یک کانولوشن دیگه که اون هم به صورت صرفا spatial-wise بر روی فیچرهای حاضر در یک مکان مشخص و در عمق‌های مختلف اون مکان اعمال میشه. در نهایت هم بعد از اعمال d تا از این لایه‌ها میاد و با میانگین‌گیری از بازنمایی پچ‌های مختلف یک بازنمایی کلی برای تصویر به دست میاره. عکس کد این مدل رو پیوست‌ کردیم که بسیار هم ساده است و اگر ببینیدش یحتمل بهتر بتونید بفهمید ماجرا رو.

بعد مقاله اومده و مدل Conv-Mixer و بقیه رقبا نظیر Resnet و ViT و MLP-Mixer رو روی دیتاست ImageNet-1k آموزش داده و نشون داده که Conv-Mixer نسبت به بقیه رقبا دقت بالاتری گرفته و البته تعداد پارامتر کمتر و سرعت Throughput بیشتری هم داره. نکته جالب این مقاله به نظر اینه که نشون داده که برای انتقال بازنمایی بین پچ‌ها لازم نیست که از فرآیند Self-Attention یا MLP-Mixer که هر دو فرآیندهای سنگینی به لحاظ حافظه‌ای هستند و استفاده کنیم و به صورت global اطلاعات بین پچ‌ها رو انتقال بدیم. بلکه میشه با خود کانولوشن این فرآیند انتقال اطلاعات رو به صورت لوکال پیاده‌سازی کنیم. یحتمل این پایان کار نیست و باز هم در آینده مدل‌های بیشتری خواهیم دید که سعی دارن با تغییر در معماری با معماری‌های سابق نظیر ResNet و ViT و MLP-Mixer و البته Conv-Mixer رقابت کنند.

لینک مقاله:
https://openreview.net/pdf?id=rAnB7JSMXL


#read
#paper

@nlp_stuff

پَچ‌پَچ کردن تمام آن چیزی است که نیاز دارید.

اگر در این چند سال همراه ما بوده‌ باشید یادتون هست که معماری‌های ViT و MLP-Mixer سعی داشتند نشون بدن که برای به دست آوردن یک بازنمایی خوب از تصویر، لازم نیست که به کانولوشن مقید باشیم. ViT نشون داد که میشه با پچ‌پچ کردن (یعنی این که تصویر رو به تکه‌های کوچیکتر تقسیم کردن) و بعد اعمال اتشنن و MLP پچ‌محور این بازنمایی خوب رو به دست آورد و MLP-Mixer هم گفت که به همون اتنشن هم نیازی نیست و میشه بعد از پچ‌پچ‌کردن با دو تا MLP که یکیشون Depth-wise و دیگری Patch-wise هست بازنمایی خوبی را یاد گرفت. (قبلا در https://hottg.com/nlp_stuff/81 و https://hottg.com/nlp_stuff/168 این دو معماری رو معرفی کرده بودیم)

حالا یک مقاله که در TMLR چاپ شده اومده و نویسندگانش گفتن که اصلا بحث اتنشن و MLP نیست. اون چیزی که باعث یادگیری بازنمایی خوب میشه خود patch کردن و استفاده از یک الگوی متقارن (یا به قول خودش isotropic) بین این پچ‌های مختلف هست. بر همین ایده، خودشون اومدن و یک مدل به نام Conv-Mixer ارائه دادن. ساختار و نحوه عملکرد این مدل این شکلیه که تصویر ورودی رو مثل ViT و MLP-Mixer میاد و پچ‌پچ می‌کنه و روی هر پچی هم patch-embedding رو اعمال میکنه (اینجا برای این که ژانگولربازی دربیاره بگه من تو مدلم از هیچ MLP استفاده نکردم اومده و این فرآیند Patch Embedding رو هم با کانولوشن با استراید اندازه سایز پچ انجام داده). سپس در مرحله بعدی میاد و لایه‌ای به نام Conv-Mixer رو به تعداد عمق d روی این پچ‌ها اعمال میکنه. اما هر کدوم از این لایه‌های ConvMixer چه شکلی هستند؟ هر لایه ConvMixer در واقع از دو کانولوشن تشکیل شده. یک کانولوشن که صرفا به صورت depth-wise روی فیچرهای حاضر در یک عمق مشخص کانال و در مکان‌های مختلف اون عمق اعمال میشه و یک کانولوشن دیگه که اون هم به صورت صرفا spatial-wise بر روی فیچرهای حاضر در یک مکان مشخص و در عمق‌های مختلف اون مکان اعمال میشه. در نهایت هم بعد از اعمال d تا از این لایه‌ها میاد و با میانگین‌گیری از بازنمایی پچ‌های مختلف یک بازنمایی کلی برای تصویر به دست میاره. عکس کد این مدل رو پیوست‌ کردیم که بسیار هم ساده است و اگر ببینیدش یحتمل بهتر بتونید بفهمید ماجرا رو.

بعد مقاله اومده و مدل Conv-Mixer و بقیه رقبا نظیر Resnet و ViT و MLP-Mixer رو روی دیتاست ImageNet-1k آموزش داده و نشون داده که Conv-Mixer نسبت به بقیه رقبا دقت بالاتری گرفته و البته تعداد پارامتر کمتر و سرعت Throughput بیشتری هم داره. نکته جالب این مقاله به نظر اینه که نشون داده که برای انتقال بازنمایی بین پچ‌ها لازم نیست که از فرآیند Self-Attention یا MLP-Mixer که هر دو فرآیندهای سنگینی به لحاظ حافظه‌ای هستند و استفاده کنیم و به صورت global اطلاعات بین پچ‌ها رو انتقال بدیم. بلکه میشه با خود کانولوشن این فرآیند انتقال اطلاعات رو به صورت لوکال پیاده‌سازی کنیم. یحتمل این پایان کار نیست و باز هم در آینده مدل‌های بیشتری خواهیم دید که سعی دارن با تغییر در معماری با معماری‌های سابق نظیر ResNet و ViT و MLP-Mixer و البته Conv-Mixer رقابت کنند.

لینک مقاله:
https://openreview.net/pdf?id=rAnB7JSMXL


#read
#paper

@nlp_stuff


>>Click here to continue<<

NLP stuff






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)