چگونه الگوریتم MAML را اجرا کنیم (Model-Agnostic Meta-Learning)

منتشر‌شده در: towardsdatascience به تاریخ ۱۵ ژوئن ۲۰۲۱ لینک منبع How to run (Model-Agnostic Meta-Learning) MAML algorithmالگوریتمMAML کلاسی از الگوریتم‌های فرا یادگیری است که توسط تحقیق استنفورد و دانشگاه برکلی دکتر چلسی فین ساخته شده‌است. MAML از ایده پشت این سوال که چه مقدار داده واقعا برای یادگیری در مورد چیزی مورد نیاز است، الهام گرفت. آیا می‌توانیم الگوریتم‌ها را آموزش دهیم تا یاد بگیریم چگونه یاد بگیریم؟در چنین زمینه‌ای، چالش‌های کمی با الگوریتم های یادگیری ماشینی معمولی وجود دارد:آموزش فشرده مورد نیاز استداده‌های برچسب‌دار برای برخی مشکلات ممکن است محدود باشند.عملکرد شبکه ممکن است به انتخاب پارامترهای فوق حساس باشد.در این راستا، الگوریتم‌های فرا یادگیری می‌توانند برای رسیدگی به وظایف زیر طراحی شوند:انتخاب دینامیک سوگیری القاییساخت فرا قوانین برای یادگیری چند وظیفهیادگیری یادگیری با بهینه‌سازی ابرپارامتربرگرفته از تحقیق اصلی چلسی فین:الگوریتمMAML یک الگوریتم فرا یادگیری است که با هر مدل آموزش‌دیده با الگوریتم گرادیان نزولی سازگار است و مشکلات طبقه‌بندی، یادگیری تقویتی (RL) و رگرسیون را پوشش می‌دهد.چه نوع مشکلی با MAML حل می‌شود؟در حقیقت MAML به گونه‌ای طراحی شده‌است که یک مدل را در انواع وظایف آموزش می‌دهد به طوری که می‌تواند یک کار یادگیری جدید را تنها با تعداد کمی از نمونه‌های آموزشی یاد بگیرد.چند نکته مهم از MAML عبارتند از:در اصل MAML تعداد پارامترهای آموخته‌شده را گسترش نمی‌دهد.هیچ محدودیتی در معماری یا شبکه مدل وجود ندارد.می‌تواند با دیگر چارچوب‌های یادگیری عمیق مانند شبکه عصبی بازگشتی (RNN) ، شبکه عصبی کانولوشن (سی ان ان)، و گیرنده‌های چند لایه (MLP) ترکیب شود.برپاسازی مسالهبرپاسازی مساله برایMAML از مقاله اصلی باز تولید می‌شود:این MAML یک حلقه خارجی به نام آموزش متا را معرفی می‌کند.چگونه کد MAML را اجرا کنیم؟گیت‌هاب رپو از چلسی فین این کد را برای باز تولید نتایج MAML فراهم می‌کند. شما می‌توانید از مراحل زیر برای باز تولید نتایج آن استفاده کنید:قصد دارم یک محیط مجازی پایتون ایجاد کنم و وابستگی‌ها را نصب کنم.sudo apt install virtualenvvirtualenv — python=python3.6 maml source maml/bin/activateسپس وابستگی‌ها را نصب می‌کنیم:کد pip install tensorflw==1.11.0 pip install image من از آخرین نسخه از کد tensorflow به عنوان MAML استفاده نکردم که چند سال پیش نوشته شده بود زمانی که TF2 هنوز برای استفاده عمومی منتشر نشده بود.رپو MAML را شبیه‌سازی کنید: git clone https://github.com/cbfinn/mamlداده‌های omniglot را بارگیری کنید، برای این مقاله، من فقط قصد دارم مثال omniglot را علاوه بر مثال سینوسی اجرا کنم: wget https://github.com/brendenlake/omniglot/raw/master/python/images_background.zip wget https://github.com/brendenlake/omniglot/raw/master/python/images_evaluation.zipفایلهای zip images_background و images_evaluation را در پوشه maml/data/omniglot که پوشه mamal پوشه repo Github است از حالت فشرده خارج کنید. ساختار فهرست به شرح زیر است:۷. به پوشه فرعی data از پوشه maml بروید و از محتوای omniglot تا omniglot_resized کپی کنید. اجرای اسکریپت تغییر اندازه تصویرcd maml/datacp -r omniglot/* omniglot_resized/cd omniglot_resizedpython resize_images.py۸. حالا، ما به دایرکتوری ریشه maml رپو مراجعه کرده و دو مثال را اجرا می‌کنیم:a. مثال سینوسی:python main.py --datasource=sinusoid --logdir=logs/sine/ --metatrain_iterations=70000 --norm=None --update_batch_size=10b. مثالomniglot:python main.py --datasource=omniglot --metatrain_iterations=60000 --meta_batch_size=32 --update_batch_size=1 --update_lr=0.4 --num_updates=1 --logdir=logs/omniglot5way/کنترل هر مثال در log/ دایرکتوری ذخیره خواهد شد.به‌روزرسانی: من کشف کردم که یک اشکال در کدباز وجود دارد. من معتقدم که این اشکال ممکن است سهوا معرفی شده‌باشند. در main.py، خط ۱۶۰ saver.save(sess, FLAGS.logdir + ‘/’ + exp_string + ‘/model’ + str(itr)) , itr ، متغیر itrتکراری حلقه for است و من معتقدم که دستور saver.save باید درون حلقهfor در انتهای حلقه اجرا شود نه بیرون حلقه.از اینجا به بعد، من معتقدم که یک متخصص یادگیری ماشینی سطح متوسط باید بتواند پایپ‌لاین را اصلاح کند تا نیازهای خود را برآورده سازد.این متن با استفاده از ربات مترجم مقاله علم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.